@font-face {
    font-display: block;
    font-family: "bootstrap-icons";
    src: url("fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6") format("woff2"),
         url("fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6") format("woff");
}

/* Preserve the selected dashboard layout while making dense business data easier to read. */
.content { font-size: 13px; }
.breadcrumb, .updated, .account strong { font-size: 13px; }
.account small { font-size: 11px; }
.page-heading h1 { font-size: 25px; }
.page-heading p, .panel-head p { font-size: 13px; line-height: 1.6; }
.sync-button, .secondary-button { min-height: 38px; font-size: 13px; }
.stat-grid label { font-size: 13px; }
.stat-grid strong { font-size: 25px; }
.stat-grid strong small, .stat-grid p { font-size: 11px; }
.stat-icon { width: 40px; height: 40px; font-size: 18px; }
.panel-head h2 { font-size: 16px; }
.panel-head > a, .panel-head > span, .trend-total span, .chart-labels { font-size: 11px; }
.trend-total strong { font-size: 23px; }
.risk-row > div strong, .package-list strong { font-size: 13px; }
.risk-row > div small, .package-list p, .package-list time { font-size: 11px; line-height: 1.55; }
.empty-risk strong { font-size: 14px; }
.empty-risk span, .outline-button { font-size: 12px; }
th { font-size: 12px; }
td { font-size: 12px; line-height: 1.55; }
.mini-stat-grid span, .mini-stat-grid small, .filter-grid label > span,
.table-toolbar span, .table-toolbar label, .pagination, .calculation-note { font-size: 12px; }
.mini-stat-grid strong { font-size: 24px; }
.filter-grid input, .filter-grid select, .table-toolbar select, .balance-value { font-size: 13px; }
.table-toolbar strong { font-size: 15px; }
.detail-table code { font-size: 11px; }
.balance-hero span, .balance-hero small { font-size: 12px; }
.balance-hero strong { font-size: 27px; }
.analysis-presets a, .breakdown-row strong, .breakdown-row > em,
.ranking-list strong, .ranking-list em, .analysis-empty strong { font-size: 12px; }
.breakdown-row small, .ranking-list small, .analysis-empty span, .analysis-chart-foot { font-size: 10px; }
.readonly-badge, .asset-stat-grid span, .asset-result-head span, .asset-result-head small { font-size: 12px; }
.asset-stat-grid strong { font-size: 20px; }
.asset-tabs a, .asset-filter input, .asset-filter select, .asset-card-body strong,
.voice-card strong, .task-result-head > div > span { font-size: 13px; }
.asset-card-body span, .voice-card div > span, .voice-card small, .voice-card > .status,
.task-query-hero p, .task-result-grid span, .task-status,
.task-toolbar input, .task-toolbar select { font-size: 11px; }
.task-query-hero .eyebrow, .task-result-head code { font-size: 10px; }
.task-query-hero h2 { font-size: 24px; }
.task-query-form input, .task-result-grid strong { font-size: 13px; }
.health-hero p, .health-score span, .source-state, .source-card > p,
.source-card dt, .source-card dd, .sync-log-filter select, .health-status,
.guide-list span, .health-callout { font-size: 11px; }
.source-card h3, .guide-list strong { font-size: 13px; }
.account-panel-head h2, .account-card h2 { font-size: 16px; }
.account-panel-head p, .password-form label > span, .password-form input,
.password-form label > small, .save-password, .account-card > span,
.account-card dt, .account-card dd, .security-note strong, .security-note p { font-size: 12px; }

@media (max-width: 620px) {
    .page-heading h1 { font-size: 22px; }
    .stat-grid strong { font-size: 21px; }
    .sync-button { min-height: 38px; }
}

/* Voice assets: compact icon column and clearer horizontal card rhythm. */
.voice-grid {
    gap: 14px;
}

.voice-card {
    min-height: 104px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.voice-card:hover {
    transform: translateY(-1px);
    border-color: #bfd3f5;
    box-shadow: 0 7px 18px rgba(35, 72, 125, .08);
}

.voice-icon {
    width: 46px;
    height: 46px;
    border: 1px solid #dce8fb;
    color: #1769ff;
    background: #f0f5ff;
    font-size: 18px;
    box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .55);
}

.voice-card > div {
    min-width: 0;
    padding-left: 2px;
}

.voice-card strong {
    line-height: 1.45;
}

.voice-card div > span,
.voice-card small {
    line-height: 1.55;
}

.voice-card > .status {
    align-self: center;
    padding: 5px 8px;
}

/* The previous lookup-only table is retained server-side for compatibility but replaced visually by the richer ledger. */
#history {
    display: none;
}

.sync-progress i {
    display: inline-block;
    animation: app-spin .8s linear infinite;
}

#loginSyncNotice {
    align-items: center;
    gap: 12px;
    max-width: 760px;
    min-height: 52px;
    margin-bottom: 16px;
}

#loginSyncNotice[hidden] {
    display: none !important;
}

#loginSyncNotice:not([hidden]) {
    display: flex;
}

#loginSyncNotice > i {
    flex: 0 0 auto;
    font-size: 18px;
}

#loginSyncNotice > span {
    display: grid;
    gap: 3px;
}

#loginSyncNotice strong {
    color: inherit;
    font-size: 14px;
}

#loginSyncNotice small {
    color: inherit;
    line-height: 1.5;
    opacity: .82;
}

#loginSyncNotice.sync-complete {
    box-shadow: 0 10px 24px rgba(28, 173, 111, .12);
}

.task-ledger {
    margin-top: 18px;
    overflow: hidden;
}

.task-ledger-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 20px 15px;
}

.task-ledger-heading .eyebrow {
    color: #1769ff;
    font-size: 10px;
    letter-spacing: 1.2px;
}

.task-ledger-heading h2 {
    margin: 7px 0 5px;
    color: #25334b;
    font-size: 18px;
}

.task-ledger-heading p {
    margin: 0;
    color: #8794a7;
    font-size: 12px;
    line-height: 1.6;
}

.task-source-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0 20px 16px;
    padding: 10px 12px;
    border: 1px solid #dce8f8;
    border-radius: 7px;
    color: #5e7088;
    background: #f7faff;
    font-size: 11px;
    line-height: 1.65;
}

.task-source-note i {
    margin-top: 2px;
    color: #1769ff;
}

.task-detail-filter {
    display: grid;
    grid-template-columns: 190px repeat(4, minmax(180px, 1fr)) auto;
    align-items: end;
    gap: 12px;
    padding: 16px 20px 18px;
    border-top: 1px solid #edf0f4;
    background: #fbfcfe;
}

.task-detail-filter label > span {
    display: block;
    margin-bottom: 7px;
    color: #58677e;
    font-size: 12px;
}

.task-detail-filter input,
.task-detail-filter select {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #dce3ec;
    border-radius: 6px;
    color: #3e4d63;
    background: #fff;
    font-size: 12px;
    outline: none;
}

.task-detail-filter input:focus,
.task-detail-filter select:focus {
    border-color: #7eabff;
    box-shadow: 0 0 0 3px rgba(23, 105, 255, .08);
}

.task-detail-actions {
    display: flex;
    gap: 8px;
}

.task-ledger-wrap {
    max-width: 100%;
}

.task-ledger-table {
    min-width: 1840px;
}

.task-ledger-table th,
.task-ledger-table td {
    padding: 14px 13px;
    vertical-align: top;
}

.task-ledger-table td:first-child {
    min-width: 210px;
}

.task-ledger-table td small {
    display: block;
    margin-top: 5px;
    color: #94a0b1;
    font-size: 10px;
}

.task-source {
    display: inline-flex;
    margin: 0 0 0 7px;
    padding: 3px 6px;
    border-radius: 4px;
    color: #4c6f9f;
    background: #edf4ff;
    font-size: 9px;
    vertical-align: middle;
}

.task-source.usage {
    color: #8b651f;
    background: #fff5df;
}

.task-failure {
    max-width: 200px;
    color: #cf4c58 !important;
    white-space: normal;
}

.task-link-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #1769ff;
    font-size: 11px;
    white-space: nowrap;
}

@media (max-width: 1350px) {
    .task-detail-filter {
        grid-template-columns: repeat(3, minmax(180px, 1fr));
    }
}

@media (max-width: 760px) {
    .voice-grid {
        grid-template-columns: 1fr;
    }

    .voice-card {
        grid-template-columns: 44px minmax(0, 1fr) auto;
        padding: 13px;
    }

    .voice-icon {
        width: 42px;
        height: 42px;
    }

    .task-ledger-heading {
        flex-direction: column;
    }

    .task-detail-filter {
        grid-template-columns: 1fr;
    }

    .task-detail-actions .sync-button,
    .task-detail-actions .secondary-button {
        width: auto;
        min-width: 92px;
        padding-inline: 14px;
        font-size: 12px;
    }
}
