/* Elektro CRM product system — selected Operations Ledger direction */
@font-face {
    font-family: "Material Symbols Rounded";
    src: url("../fonts/material-symbols-rounded.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: block;
}

:root,
html[data-theme="light"] {
    color-scheme: light;
    --ec-canvas: #f7f8fa;
    --ec-surface: #ffffff;
    --ec-surface-subtle: #f1f3f6;
    --ec-surface-hover: #eef4ff;
    --ec-surface-selected: #e8f1ff;
    --ec-ink: #0b1218;
    --ec-text: #1f2a34;
    --ec-text-secondary: #586575;
    --ec-text-muted: #7c8794;
    --ec-border: #dde2e7;
    --ec-border-strong: #c4cbd3;
    --ec-blue: #1463ff;
    --ec-blue-hover: #0b4fd9;
    --ec-blue-soft: #edf5ff;
    --ec-green: #12834c;
    --ec-green-soft: #ecf9f1;
    --ec-amber: #b86b00;
    --ec-amber-soft: #fff7e6;
    --ec-red: #c9343a;
    --ec-red-soft: #fff0f1;
    --ec-sidebar: #ffffff;
    --ec-sidebar-text: #3a4652;
    --ec-sidebar-muted: #7c8794;
    --ec-sidebar-border: #e1e5ea;
    --ec-shadow: 0 16px 40px rgba(11, 18, 24, .08);
    --ec-radius-control: 2px;
    --ec-radius-surface: 3px;

    --bg: var(--ec-canvas);
    --panel: var(--ec-surface);
    --surface-subtle: var(--ec-surface-subtle);
    --surface-strong: #e7ebef;
    --text: var(--ec-text);
    --muted: var(--ec-text-secondary);
    --line: var(--ec-border);
    --line-strong: var(--ec-border-strong);
    --primary: var(--ec-blue);
    --primary-dark: var(--ec-blue-hover);
    --primary-soft: var(--ec-blue-soft);
    --success: var(--ec-green);
    --success-soft: var(--ec-green-soft);
    --warning: var(--ec-amber);
    --warning-soft: var(--ec-amber-soft);
    --danger: var(--ec-red);
    --danger-soft: var(--ec-red-soft);
}

html[data-theme="dark"] {
    color-scheme: dark;
    --ec-canvas: #090f14;
    --ec-surface: #111920;
    --ec-surface-subtle: #172129;
    --ec-surface-hover: #182b43;
    --ec-surface-selected: #17335a;
    --ec-ink: #f5f8fb;
    --ec-text: #e7edf3;
    --ec-text-secondary: #a8b4c0;
    --ec-text-muted: #7f8d9b;
    --ec-border: #27333d;
    --ec-border-strong: #3b4955;
    --ec-blue: #5b92ff;
    --ec-blue-hover: #79a8ff;
    --ec-blue-soft: #142947;
    --ec-green: #43c887;
    --ec-green-soft: #102d21;
    --ec-amber: #f1a33c;
    --ec-amber-soft: #362510;
    --ec-red: #ff6b70;
    --ec-red-soft: #3a171a;
    --ec-sidebar: #0c1319;
    --ec-sidebar-text: #c7d0d9;
    --ec-sidebar-muted: #7f8d9b;
    --ec-sidebar-border: #26313a;
    --ec-shadow: 0 18px 50px rgba(0, 0, 0, .28);

    --bg: var(--ec-canvas);
    --panel: var(--ec-surface);
    --surface-subtle: var(--ec-surface-subtle);
    --surface-strong: #202c35;
    --text: var(--ec-text);
    --muted: var(--ec-text-secondary);
    --line: var(--ec-border);
    --line-strong: var(--ec-border-strong);
    --primary: var(--ec-blue);
    --primary-dark: var(--ec-blue-hover);
    --primary-soft: var(--ec-blue-soft);
    --success: var(--ec-green);
    --success-soft: var(--ec-green-soft);
    --warning: var(--ec-amber);
    --warning-soft: var(--ec-amber-soft);
    --danger: var(--ec-red);
    --danger-soft: var(--ec-red-soft);
}

body {
    background: var(--ec-canvas);
    color: var(--ec-text);
    font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
    transition: background-color .18s ease, color .18s ease;
}

.material-symbols-rounded {
    display: inline-block;
    overflow: hidden;
    width: 1em;
    font-family: "Material Symbols Rounded";
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
    font-size: 20px;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "liga";
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Shared shell */
.site-os-global-bar {
    position: sticky;
    top: 0;
    z-index: 60;
    height: 54px;
    display: grid;
    grid-template-columns: 196px minmax(0, 1fr) auto;
    align-items: stretch;
    border-bottom: 1px solid #27313a;
    background: #0b1116;
    color: #dfe7ed;
}
.site-os-wordmark { display: flex; align-items: center; gap: 8px; padding: 0 16px; border-right: 1px solid #27313a; color: #f7f9fa; font: 600 12px "IBM Plex Mono", monospace; letter-spacing: .05em; }
.site-os-wordmark:hover { color: #fff; }
.site-os-wordmark i::after { content: "/"; color: #73808a; font-style: normal; }
.site-os-wordmark strong { font-weight: 600; }
.site-os-global-context { display: flex; align-items: center; min-width: 0; }
.site-os-global-context span { min-height: 54px; display: flex; align-items: center; padding: 0 18px; border-right: 1px solid #27313a; color: #f4f7f9; font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .04em; }
.site-os-global-user { display: flex; align-items: center; gap: 10px; padding: 0 12px; }
.site-os-global-clock { color: #98a6b1; font: 500 9px "IBM Plex Mono", monospace; letter-spacing: .02em; }
.site-os-avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #d1a22b; color: #182028; font: 600 9px "IBM Plex Mono", monospace; }
.site-os-account { position: relative; }
.site-os-account > summary { display: block; cursor: pointer; list-style: none; }
.site-os-account > summary::-webkit-details-marker { display: none; }
.site-os-account > div { position: absolute; z-index: 70; top: 38px; right: 0; min-width: 190px; display: grid; gap: 4px; padding: 12px; border: 1px solid #34414b; background: #111920; box-shadow: 0 16px 36px rgba(0,0,0,.28); }
.site-os-account > div strong { color: #f4f7f9; font-size: 11px; }
.site-os-account > div small { color: #8f9ca6; font-size: 9px; }
.site-os-account button { width: 100%; margin-top: 8px; padding: 8px; border: 1px solid #34414b; border-radius: 0; background: transparent; color: #dfe6eb; cursor: pointer; font: 600 9px "IBM Plex Sans", sans-serif; text-align: left; }

.app-frame { min-height: calc(100vh - 54px); grid-template-columns: 196px minmax(0, 1fr); }
.app-sidebar {
    top: 54px;
    height: calc(100vh - 54px);
    padding: 0 0 14px;
    border-right: 1px solid var(--ec-sidebar-border);
    background: var(--ec-sidebar);
    color: var(--ec-sidebar-text);
}
.app-brand { display: none; }
.app-brand:hover { color: var(--ec-ink); }
.app-brand-mark {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--ec-blue);
    color: #fff;
}
.app-brand strong { font-size: 15px; letter-spacing: -.01em; }
.app-brand small { color: var(--ec-sidebar-muted); }
.sidebar-project-context {
    display: grid;
    gap: 5px;
    margin: 0 0 12px;
    padding: 17px 16px;
    border: 1px solid var(--ec-sidebar-border);
    border-width: 0 0 1px;
    border-radius: 0;
    background: var(--ec-surface-subtle);
}
.sidebar-project-context > span {
    color: var(--ec-blue);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.sidebar-project-context strong { color: var(--ec-ink); font-size: 14px; line-height: 1.3; }
.sidebar-project-context small { color: var(--ec-sidebar-muted); font-family: "IBM Plex Mono", monospace; font-size: 11px; }
.sidebar-portfolio-context { min-height: 116px; display: grid; align-content: center; gap: 5px; padding: 16px; border-bottom: 1px solid var(--ec-sidebar-border); }
.sidebar-portfolio-context span { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .06em; }
.sidebar-portfolio-context strong { color: var(--ec-ink); font: 600 13px "IBM Plex Mono", monospace; }
.sidebar-portfolio-context small { overflow: hidden; color: var(--ec-text-secondary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.app-nav { gap: 2px; }
.app-nav-label { color: var(--ec-sidebar-muted); }
.app-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 43px;
    padding: 9px 14px;
    border-left: 2px solid transparent;
    border-radius: 0;
    color: var(--ec-sidebar-text);
    font-weight: 500;
}
.app-nav a .material-symbols-rounded { color: var(--ec-sidebar-muted); font-size: 19px; }
.app-nav a:hover { background: var(--ec-surface-subtle); color: var(--ec-ink); }
.app-nav a.active {
    border-left-color: var(--ec-blue);
    background: transparent;
    color: var(--ec-ink);
    box-shadow: none;
}
.app-nav a.active .material-symbols-rounded { color: var(--ec-blue); }
.theme-toggle {
    border: 0;
    background: transparent;
    color: var(--ec-sidebar-text);
    cursor: pointer;
    font: inherit;
}
.sidebar-theme-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    margin-top: auto;
    padding: 8px 11px;
    border-radius: 0;
}
.sidebar-theme-toggle:hover { background: var(--ec-surface-subtle); color: var(--ec-ink); }
.app-user {
    margin-top: 6px;
    border-top-color: var(--ec-sidebar-border);
    color: var(--ec-sidebar-text);
}
.app-user-menu > div { border-radius: var(--ec-radius-control); }

.main { padding: 30px 0 56px; }
.container { width: min(1380px, calc(100% - 48px)); }
.page-eyebrow { display: block; margin-bottom: 8px; color: var(--ec-text-muted); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .1em; }
.page-header h1 { margin-bottom: 7px; font-size: clamp(30px, 3vw, 36px); font-weight: 600; }
.page-header .muted { margin: 0; font-size: 13px; }
.panel, .metric, .auth-card { border-radius: var(--ec-radius-surface); box-shadow: none; }
.btn, button.btn { border-radius: var(--ec-radius-control); box-shadow: none; transform: none; }
.btn:hover, button.btn:hover { transform: none; box-shadow: none; }
input, select, textarea { border-radius: var(--ec-radius-control); }
.flash { border-radius: var(--ec-radius-control); }
.project-context-nav, .project-more-menu, .day-switcher, .operation-metrics, .secondary-work, .operations-panel, .delivery-note-card, .ledger-media-item { border-radius: var(--ec-radius-surface); box-shadow: none; }
.project-context-nav > a, .project-more > summary, .project-more-menu a, .day-switcher a { border-radius: var(--ec-radius-control); }
.field-capture-shell { border-radius: var(--ec-radius-surface); box-shadow: none; }

.portfolio-page .main { padding-top: 27px; }
.portfolio-page .page-header { min-height: 92px; align-items: center; margin-bottom: 18px; }
.portfolio-page .portfolio-table-panel { padding: 0; overflow: hidden; }
.portfolio-page .portfolio-table-panel table { min-width: 900px; }
.portfolio-page .portfolio-table-panel th { height: 54px; padding: 0 16px; vertical-align: middle; color: var(--ec-text-muted); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .08em; }
.portfolio-page .portfolio-table-panel td { height: 78px; padding: 14px 16px; vertical-align: middle; }
.portfolio-page .portfolio-table-panel tbody tr:last-child td { border-bottom: 0; }
.portfolio-page .portfolio-table-panel tbody tr:hover { background: var(--ec-surface-subtle); }
.project-code { color: var(--ec-blue); font: 600 11px "IBM Plex Mono", monospace; }
.project-name { color: var(--ec-ink); font-size: 13px; font-weight: 600; }
.project-status { display: inline-flex; align-items: center; gap: 7px; color: var(--ec-text-secondary); font-size: 11px; white-space: nowrap; }
.project-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ec-green); }
.project-status[data-status="preparation"]::before { background: var(--ec-amber); }
.numeric-cell { color: var(--ec-text); font: 500 11px "IBM Plex Mono", monospace; white-space: nowrap; }
.portfolio-page td.actions { min-width: 126px; display: table-cell; }
.table-action { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 7px; border: 1px solid transparent; color: var(--ec-text-secondary); font-size: 10px; font-weight: 600; }
.table-action:hover { color: var(--ec-blue); }
.table-action-primary { margin-right: 2px; border-color: var(--ec-border-strong); color: var(--ec-text); }
.table-action-primary:hover { border-color: var(--ec-blue); }
.app-user-avatar { background: var(--ec-blue-soft); color: var(--ec-blue); }
.app-user small { color: var(--ec-sidebar-muted); }
.app-user-menu > div { border-color: var(--ec-border); background: var(--ec-surface); }
.app-user-menu a, .app-user-menu button { color: var(--ec-text); }

html[data-theme="dark"] .panel,
html[data-theme="dark"] .metric,
html[data-theme="dark"] .auth-card,
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .tabs a,
html[data-theme="dark"] .project-context-nav,
html[data-theme="dark"] .project-more-menu,
html[data-theme="dark"] .day-switcher,
html[data-theme="dark"] .calendar-day,
html[data-theme="dark"] .calendar-head,
html[data-theme="dark"] .media-item,
html[data-theme="dark"] .operation-metrics {
    border-color: var(--ec-border);
    background: var(--ec-surface);
    color: var(--ec-text);
}
html[data-theme="dark"] .btn.secondary { border-color: var(--ec-border-strong); background: var(--ec-surface); color: var(--ec-text); }

/* Operations Ledger */
.operations-ledger-page .main { padding: 0 0 24px; }
.operations-ledger-page .container { width: min(1500px, calc(100% - 40px)); }
.operations-ledger-page .flash { margin: 18px 0 0; }

.ledger-page-header {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) auto;
    gap: 32px;
    align-items: center;
    padding: 30px 8px 26px;
    border-bottom: 1px solid var(--ec-border);
}
.ledger-project-code {
    color: var(--ec-blue);
    font-family: "IBM Plex Mono", monospace;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
}
.ledger-title-line { display: flex; align-items: center; gap: 10px; }
.ledger-title-line h1 { margin: 7px 0 4px; color: var(--ec-ink); font-size: clamp(32px, 3vw, 44px); font-weight: 600; letter-spacing: -.045em; }
.ledger-title-block p { margin: 0; color: var(--ec-text-secondary); font-size: 14px; }
.icon-button {
    width: 36px;
    height: 36px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--ec-text-muted);
}
.icon-button:hover { background: var(--ec-surface-subtle); color: var(--ec-blue); }
.ledger-day-health { display: grid; grid-template-columns: 76px 170px minmax(190px, auto); gap: 16px; align-items: center; }
.readiness-ring {
    position: relative;
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--ec-blue) calc(var(--readiness) * 1%), var(--ec-border) 0);
}
.readiness-ring::after { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: var(--ec-canvas); }
.readiness-ring span { position: relative; z-index: 1; color: var(--ec-ink); font-family: "IBM Plex Mono", monospace; font-size: 17px; font-weight: 600; }
.readiness-copy { display: grid; gap: 3px; }
.readiness-copy strong { color: var(--ec-ink); font-size: 14px; }
.readiness-copy span { color: var(--ec-text-secondary); font-size: 13px; }
.readiness-copy b { color: var(--ec-ink); font-family: "IBM Plex Mono", monospace; }
.health-alerts { display: grid; gap: 10px; padding-left: 20px; border-left: 1px solid var(--ec-border); }
.health-alerts > span { display: flex; align-items: center; gap: 9px; color: var(--ec-text-secondary); font-size: 13px; }
.health-alerts .material-symbols-rounded { font-size: 19px; }
.health-alerts .danger .material-symbols-rounded { color: var(--ec-red); }
.health-alerts .warning .material-symbols-rounded { color: var(--ec-amber); }
.health-alerts .neutral .material-symbols-rounded { color: var(--ec-green); }

.ledger-day-navigation {
    position: absolute;
    top: 24px;
    right: 28px;
    display: none;
    align-items: center;
    border: 1px solid var(--ec-border);
    border-radius: 8px;
    background: var(--ec-surface);
}
.ledger-day-navigation a { min-height: 38px; display: grid; place-items: center; padding: 0 10px; color: var(--ec-text); font-weight: 600; }

.site-control-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, .75fr);
    align-items: start;
    gap: 18px;
    margin: 22px 0 26px;
}
.next-action-panel,
.evidence-panel {
    min-width: 0;
    border: 1px solid var(--ec-border);
    border-radius: 10px;
    background: var(--ec-surface);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--ec-ink) 4%, transparent);
}
.control-panel-heading {
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ec-border);
}
.control-panel-heading > div { display: grid; gap: 3px; }
.control-panel-heading h2 { margin: 0; color: var(--ec-ink); font-size: 16px; letter-spacing: -.01em; }
.decision-counter,
.evidence-live {
    flex: 0 0 auto;
    color: var(--ec-text-secondary);
    font: 600 9px "IBM Plex Mono", monospace;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.evidence-live { display: inline-flex; align-items: center; gap: 6px; }
.evidence-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--ec-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ec-green) 13%, transparent); }
.next-action-list { display: grid; }
.next-action-row {
    position: relative;
    display: grid;
    grid-template-columns: 28px 32px minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
    min-height: 80px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ec-border);
}
.next-action-row:last-child { border-bottom: 0; }
.next-action-row.primary { background: color-mix(in srgb, var(--ec-blue) 5%, var(--ec-surface)); }
.next-action-row.blocker.primary { background: color-mix(in srgb, var(--ec-amber) 9%, var(--ec-surface)); }
.next-action-row.primary::before { position: absolute; top: 0; bottom: 0; left: -1px; width: 3px; background: var(--ec-blue); content: ""; }
.next-action-row.blocker.primary::before { background: var(--ec-red); }
.next-action-row.ready.primary::before,
.next-action-row.complete.primary::before { background: var(--ec-green); }
.next-action-rank { color: var(--ec-text-muted); font: 500 9px "IBM Plex Mono", monospace; }
.next-action-icon { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--ec-border); border-radius: 7px; color: var(--ec-blue); font-size: 18px; }
.next-action-row.blocker .next-action-icon { color: var(--ec-red); }
.next-action-row.warning .next-action-icon { color: var(--ec-amber); }
.next-action-row.ready .next-action-icon,
.next-action-row.complete .next-action-icon { color: var(--ec-green); }
.next-action-copy { min-width: 0; display: grid; gap: 4px; }
.next-action-copy > div { display: flex; align-items: center; gap: 8px; }
.next-action-copy strong { color: var(--ec-ink); font-size: 12px; }
.next-action-copy > div > span { padding: 2px 5px; border: 1px solid var(--ec-border); border-radius: 3px; color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; text-transform: uppercase; }
.next-action-copy p { margin: 0; color: var(--ec-text); font-size: 11px; line-height: 1.35; }
.next-action-copy small { color: var(--ec-text-secondary); font-size: 9px; line-height: 1.35; }
.next-action-meta { display: grid; gap: 3px; padding: 0 12px; border-left: 1px solid var(--ec-border); color: var(--ec-text-muted); font: 500 8px "IBM Plex Mono", monospace; white-space: nowrap; }
.next-action-link { min-height: 32px; display: inline-flex; align-items: center; gap: 4px; padding: 6px 8px; border: 1px solid var(--ec-border); border-radius: 5px; color: var(--ec-text); font-size: 10px; font-weight: 600; white-space: nowrap; }
.next-action-link:hover { border-color: var(--ec-blue); color: var(--ec-blue); }
.next-action-link .material-symbols-rounded { font-size: 15px; }
.evidence-panel { align-self: start; }
.evidence-coverage { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--ec-border); }
.evidence-coverage > div { min-width: 0; display: grid; gap: 2px; padding: 12px 9px; border-right: 1px solid var(--ec-border); text-align: center; }
.evidence-coverage > div:last-child { border-right: 0; }
.evidence-coverage strong { color: var(--ec-ink); font: 600 15px "IBM Plex Mono", monospace; }
.evidence-coverage span { overflow: hidden; color: var(--ec-text-secondary); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.evidence-event-list { max-height: 318px; overflow: auto; }
.evidence-event { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 9px; align-items: center; min-height: 53px; padding: 9px 12px; border-bottom: 1px solid var(--ec-border); }
.evidence-event:last-child { border-bottom: 0; }
.evidence-event > .material-symbols-rounded { color: var(--ec-blue); font-size: 18px; }
.evidence-event > div { min-width: 0; display: grid; gap: 2px; }
.evidence-event strong { overflow: hidden; color: var(--ec-text); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.evidence-event small { color: var(--ec-text-secondary); font-size: 9px; }
.evidence-event code { color: var(--ec-text-muted); font-size: 8px; }
.evidence-empty { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; padding: 20px 14px; color: var(--ec-text-secondary); }
.evidence-empty > .material-symbols-rounded { color: var(--ec-text-muted); }
.evidence-empty p { margin: 0; font-size: 10px; line-height: 1.5; }
.evidence-empty strong { display: block; margin-bottom: 2px; color: var(--ec-text); }

.ledger-timeline { padding: 28px 8px 34px; border-bottom: 1px solid var(--ec-border); overflow: hidden; }
.timeline-hours {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    margin: 0 10px 20px;
    color: var(--ec-text-secondary);
    font-family: "IBM Plex Mono", monospace;
    font-size: 11px;
}
.timeline-hours span { text-align: center; }
.timeline-stages {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: 0;
    padding: 24px 0 0;
    list-style: none;
}
.timeline-stages::before,
.timeline-stages::after { content: ""; position: absolute; top: 8px; left: 7%; height: 4px; border-radius: 4px; }
.timeline-stages::before { right: 7%; background: var(--ec-border-strong); }
.timeline-stages::after { width: calc((100% - 14%) * var(--flow-progress) / 100); max-width: 86%; background: var(--ec-blue); }
.timeline-stages li { position: relative; display: grid; gap: 3px; justify-items: center; color: var(--ec-text-muted); text-align: center; }
.timeline-point {
    position: absolute;
    z-index: 1;
    top: -22px;
    width: 15px;
    height: 15px;
    border: 3px solid var(--ec-border-strong);
    border-radius: 50%;
    background: var(--ec-canvas);
}
.timeline-stages li.done .timeline-point,
.timeline-stages li.current .timeline-point { border-color: var(--ec-blue); }
.timeline-stages li.done strong,
.timeline-stages li.current strong { color: var(--ec-blue); }
.timeline-stages strong { color: var(--ec-text); font-size: 13px; }
.timeline-stages small { font-size: 12px; }

.team-ledger { border-bottom: 1px solid var(--ec-border); }
.team-ledger-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 24px 8px 15px; }
.ledger-eyebrow { color: var(--ec-blue); font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.team-ledger-heading h2 { margin: 5px 0 0; color: var(--ec-ink); font-size: 18px; }
.team-ledger-heading .btn { min-height: 36px; gap: 5px; padding: 6px 10px; border-radius: 7px; font-size: 12px; }
.team-ledger-grid {
    display: grid;
    grid-template-columns: minmax(250px, 1.35fr) repeat(4, minmax(135px, .9fr)) 92px;
    align-items: center;
}
.team-ledger-grid-head {
    min-height: 42px;
    padding: 0 8px;
    border-top: 1px solid var(--ec-border);
    border-bottom: 1px solid var(--ec-border);
    color: var(--ec-text-secondary);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .025em;
}
.team-ledger-grid-head::after { content: ""; }
.team-ledger-grid-head > span { padding: 0 14px; }
.team-ledger-row { position: relative; min-height: 78px; padding: 0 8px; border-bottom: 1px solid var(--ec-border); background: var(--ec-surface); }
.team-ledger-row:last-child { border-bottom: 0; }
.team-ledger-row:hover { background: var(--ec-surface-hover); }
.team-ledger-row > * { min-width: 0; padding: 12px 14px; }
.team-ledger-row > *:not(:first-child) { border-left: 1px solid var(--ec-border); }
.worker-cell, .stage-cell { display: flex; align-items: center; gap: 11px; }
.worker-cell > div, .stage-cell > span:last-child { display: grid; min-width: 0; gap: 2px; }
.worker-cell strong, .stage-cell strong { overflow: hidden; color: var(--ec-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.worker-cell small, .stage-cell small { overflow: hidden; color: var(--ec-text-secondary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.ledger-avatar { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-family: "IBM Plex Mono", monospace; font-size: 12px; font-weight: 600; }
.ledger-avatar.blue { background: #2f72e8; }
.ledger-avatar.violet { background: #6b5bd2; }
.ledger-avatar.orange { background: #e57926; }
.ledger-avatar.green { background: #2fa65a; }
.ledger-avatar.amber { background: #d89b24; }
.stage-icon { flex: 0 0 24px; width: 24px; height: 24px; display: grid; place-items: center; border: 1.5px solid currentColor; border-radius: 50%; }
.stage-icon .material-symbols-rounded { font-size: 16px; }
.stage-icon.info { border: 0; border-radius: 0; color: var(--ec-blue); }
.stage-icon.success { color: var(--ec-green); }
.stage-icon.warning { color: var(--ec-amber); }
.stage-icon.danger { color: var(--ec-red); }
.stage-icon.neutral { color: var(--ec-text-muted); }
.muted-stage { color: var(--ec-text-muted); }
.row-actions { display: grid; justify-items: end; gap: 5px; }
.row-actions form { margin: 0; }
.row-approve-button {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    border: 1px solid var(--ec-blue);
    border-radius: 6px;
    background: var(--ec-blue);
    color: #fff;
    cursor: pointer;
    font: 600 11px "IBM Plex Sans", sans-serif;
}
.row-approve-button.secondary { background: transparent; color: var(--ec-blue); }
.ledger-empty-state { display: flex; gap: 12px; align-items: center; padding: 28px 20px; color: var(--ec-text-secondary); }
.ledger-empty-state > .material-symbols-rounded { color: var(--ec-amber); font-size: 28px; }
.ledger-empty-state > div { display: grid; gap: 3px; }
.ledger-empty-state strong { color: var(--ec-text); }

.attention-ledger { padding: 22px 8px 0; }
.attention-ledger-header { display: flex; justify-content: space-between; gap: 20px; padding: 0 0 10px; border-bottom: 1px solid var(--ec-border); }
.attention-ledger-header h2 { margin: 0; color: var(--ec-ink); font-size: 14px; }
.attention-ledger-header > span { color: var(--ec-text-secondary); font-size: 12px; }
.attention-ledger-row {
    display: grid;
    grid-template-columns: 28px minmax(150px, .8fr) minmax(260px, 2fr) auto;
    gap: 12px;
    align-items: center;
    min-height: 54px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ec-border);
    color: var(--ec-text-secondary);
    font-size: 12px;
}
.attention-ledger-row .material-symbols-rounded { font-size: 21px; }
.attention-ledger-row strong { color: var(--ec-text); }
.attention-ledger-row b { font-weight: 500; }
.attention-ledger-row.blocker .material-symbols-rounded,
.attention-ledger-row.blocker b { color: var(--ec-red); }
.attention-ledger-row.warning .material-symbols-rounded,
.attention-ledger-row.warning b { color: var(--ec-amber); }
.attention-ledger-row.ok .material-symbols-rounded,
.attention-ledger-row.ok b { color: var(--ec-green); }

.ledger-supporting-work { margin: 18px 8px 124px; border-top: 1px solid var(--ec-border); border-bottom: 1px solid var(--ec-border); }
.ledger-supporting-work > summary { min-height: 48px; display: flex; align-items: center; gap: 7px; color: var(--ec-text-secondary); cursor: pointer; font-size: 12px; font-weight: 600; list-style: none; }
.ledger-supporting-work > summary::-webkit-details-marker { display: none; }
.ledger-supporting-work[open] > summary .material-symbols-rounded { transform: rotate(180deg); }
.ledger-supporting-stack { display: grid; gap: 22px; padding-bottom: 22px; }
.operations-panel { padding: 18px; border: 1px solid var(--ec-border); border-radius: 9px; background: var(--ec-surface); }
.operations-split, .material-workbench { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 18px; align-items: start; }
.daily-checklist { display: grid; gap: 1px; border: 1px solid var(--ec-border); background: var(--ec-border); }
.daily-checklist-row, .daily-task-row { min-height: 52px; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 9px; align-items: center; padding: 9px 11px; background: var(--ec-surface); color: var(--ec-text); }
.daily-checklist-row div, .daily-task-row > span:nth-child(2) { display: grid; gap: 2px; }
.daily-checklist-row small, .daily-task-row small { color: var(--ec-text-secondary); font-size: 10px; }
.daily-checklist-row .material-symbols-rounded { color: var(--ec-text-muted); font-size: 19px; }
.daily-checklist-row.ok .material-symbols-rounded { color: var(--ec-green); }
.daily-checklist-row.warning .material-symbols-rounded, .daily-task-row > .material-symbols-rounded:first-child { color: var(--ec-amber); }
.daily-task-row { grid-template-columns: 22px minmax(0, 1fr) 18px; }
.daily-task-row:hover { background: var(--ec-surface-muted); }
.bulk-day-form, .delivery-note-stack { display: grid; gap: 12px; }
.form-panel-heading, .delivery-note-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.form-panel-heading > div, .delivery-note-heading > div { display: grid; gap: 3px; }
.form-panel-heading small, .delivery-note-heading small { color: var(--ec-text-secondary); font-size: 10px; }
.form-panel-heading > span, .delivery-note-heading > span { padding: 4px 7px; border: 1px solid var(--ec-border); border-radius: 99px; color: var(--ec-text-secondary); font: 600 9px "IBM Plex Mono", monospace; }
.bulk-entry-list { display: grid; gap: 1px; border: 1px solid var(--ec-border); background: var(--ec-border); }
.bulk-entry-row { display: grid; grid-template-columns: minmax(150px, .9fr) 76px 116px minmax(160px, 1.1fr); gap: 8px; align-items: end; padding: 9px; background: var(--ec-surface); }
.bulk-entry-row label, .material-entry-row label, .delivery-note-card > label, .delivery-item-row label { display: grid; gap: 4px; color: var(--ec-text-secondary); font-size: 9px; font-weight: 600; }
.bulk-worker { align-self: center; }
.bulk-worker small { color: var(--ec-text-secondary); font-size: 9px; font-weight: 400; }
.bulk-entry-row input, .bulk-entry-row select, .material-entry-row input, .material-entry-row select, .delivery-note-card input { min-width: 0; min-height: 36px; padding: 7px 8px; border: 1px solid var(--ec-border); border-radius: 5px; background: var(--ec-surface); color: var(--ec-text); font: inherit; }
.panel-primary-button, .panel-secondary-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 14px; border: 1px solid var(--ec-blue); border-radius: 6px; background: var(--ec-blue); color: #fff; font-weight: 600; cursor: pointer; }
.panel-secondary-button { background: transparent; color: var(--ec-blue); }
.material-usage-list { display: grid; margin-bottom: 16px; border-top: 1px solid var(--ec-border); }
.material-usage-row { min-height: 48px; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--ec-border); }
.material-usage-row .material-symbols-rounded { color: var(--ec-blue); font-size: 19px; }
.material-usage-row div { display: grid; gap: 2px; }
.material-usage-row small { color: var(--ec-text-secondary); font-size: 10px; }
.material-usage-row b { font: 600 11px "IBM Plex Mono", monospace; }
.material-quick-form { padding-right: 18px; border-right: 1px solid var(--ec-border); }
.material-entry-row { display: grid; grid-template-columns: minmax(150px, 1.15fr) minmax(130px, 1fr) 80px 70px minmax(160px, 1.2fr); gap: 8px; align-items: end; padding: 10px; border: 1px solid var(--ec-border); }
.delivery-note-stack { min-width: 0; }
.delivery-note-card { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--ec-border); border-radius: 7px; background: var(--ec-surface-muted); }
.delivery-item-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.delivery-item-row label { grid-template-columns: minmax(0, 1fr) 82px; align-items: center; }
.delivery-item-row small { padding-bottom: 9px; color: var(--ec-text-secondary); font-size: 9px; }
.ledger-supporting-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; padding: 0 0 22px; }
.supporting-heading { display: flex; justify-content: space-between; gap: 16px; align-items: end; margin-bottom: 12px; }
.supporting-heading h3 { margin: 3px 0 0; }
.supporting-heading a { font-size: 12px; font-weight: 600; }
.ledger-media-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ledger-media-item { overflow: hidden; border: 1px solid var(--ec-border); border-radius: 7px; background: var(--ec-surface); color: var(--ec-text); }
.ledger-media-item img { width: 100%; aspect-ratio: 16 / 10; display: block; object-fit: cover; }
.ledger-media-item span { display: block; overflow: hidden; padding: 7px 8px; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.ledger-muted { color: var(--ec-text-secondary); font-size: 12px; }
.supporting-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--ec-border); background: var(--ec-border); }
.supporting-links a { min-width: 0; display: grid; align-content: center; gap: 2px; padding: 12px; background: var(--ec-surface); color: var(--ec-text); text-align: center; }
.supporting-links .material-symbols-rounded { color: var(--ec-blue); margin: 0 auto 3px; }
.supporting-links strong { font-family: "IBM Plex Mono", monospace; font-size: 17px; }
.supporting-links small { overflow: hidden; color: var(--ec-text-secondary); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

.ledger-command-bar {
    position: fixed;
    z-index: 15;
    right: 20px;
    bottom: 18px;
    left: 260px;
    display: grid;
    grid-template-columns: minmax(170px, 1.2fr) repeat(4, minmax(90px, .7fr)) minmax(300px, 1.7fr);
    align-items: stretch;
    min-height: 82px;
    border: 1px solid var(--ec-border);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ec-surface) 94%, transparent);
    box-shadow: var(--ec-shadow);
    backdrop-filter: blur(14px);
}
.command-bar-close { display: none; }
.command-stat { display: grid; align-content: center; gap: 2px; padding: 13px 16px; border-right: 1px solid var(--ec-border); }
.command-stat strong { color: var(--ec-ink); font-family: "IBM Plex Mono", monospace; font-size: 17px; }
.command-stat small { color: var(--ec-text-secondary); font-size: 10px; }
.primary-stat { grid-template-columns: 24px auto; column-gap: 9px; }
.primary-stat .material-symbols-rounded { grid-row: 1 / 3; align-self: center; color: var(--ec-text-muted); }
.command-action { display: grid; align-content: center; gap: 5px; padding: 10px; }
.command-status { color: var(--ec-text-secondary); font-size: 10px; font-weight: 600; }
.command-status.success { color: var(--ec-green); }
.command-status.warning { color: var(--ec-amber); }
.command-action form { display: grid; gap: 3px; }
.command-action form > small { color: var(--ec-text-secondary); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.command-primary-button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    padding: 10px 16px;
    border: 1px solid var(--ec-blue);
    border-radius: 7px;
    background: var(--ec-blue);
    color: #fff;
    cursor: pointer;
    font: 600 14px "IBM Plex Sans", sans-serif;
}
.command-primary-button:hover { border-color: var(--ec-blue-hover); background: var(--ec-blue-hover); color: #fff; }

/* Site Operating System / desktop action cockpit */
.site-os-project-card,
.site-os-nav,
.site-os-sidebar-status { display: none; }

.ledger-header-actions { display: grid; justify-items: end; gap: 12px; }
.ledger-header-actions > span {
    color: var(--ec-text-secondary);
    font: 600 10px "IBM Plex Mono", monospace;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.site-os-open-closure {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 16px;
    border: 1px solid var(--ec-ink);
    border-radius: 3px;
    background: var(--ec-ink);
    color: var(--ec-canvas);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.site-os-open-closure:hover { background: var(--ec-blue); border-color: var(--ec-blue); color: #fff; }
.site-os-open-closure .material-symbols-rounded { font-size: 17px; }

.site-os-metric-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-right: 1px solid var(--ec-border);
    border-bottom: 1px solid var(--ec-border);
    border-left: 1px solid var(--ec-border);
    background: var(--ec-surface);
}
.site-os-metric-strip > div {
    min-height: 92px;
    display: grid;
    align-content: center;
    gap: 5px;
    padding: 14px 18px;
    border-right: 1px solid var(--ec-border);
}
.site-os-metric-strip > div:last-child { border-right: 0; }
.site-os-metric-strip span,
.site-os-metric-strip small {
    color: var(--ec-text-muted);
    font: 600 9px "IBM Plex Mono", monospace;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.site-os-metric-strip strong { color: var(--ec-ink); font: 600 24px/1 "IBM Plex Mono", monospace; }
.site-os-metric-strip .metric-attention strong { color: var(--ec-red); }

.site-control-side { min-width: 0; display: grid; align-self: start; gap: 16px; }
.closure-compiler-panel {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--ec-border);
    border-radius: 4px;
    background: var(--ec-surface);
}
.closure-compiler-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.closure-compiler-heading > div { display: grid; gap: 4px; }
.closure-compiler-heading h2 { margin: 0; color: var(--ec-ink); font-size: 16px; line-height: 1.25; letter-spacing: -.02em; }
.closure-compiler-heading > strong { color: var(--ec-ink); font: 600 26px/1 "IBM Plex Mono", monospace; }
.closure-compiler-subtitle { margin: 10px 0 14px; color: var(--ec-text-secondary); font-size: 10px; line-height: 1.45; }
.closure-progress { height: 4px; margin: 20px 0 15px; overflow: hidden; background: var(--ec-border); }
.closure-progress i { display: block; height: 100%; background: var(--ec-blue); }
.closure-stats { display: grid; gap: 0; margin: 0; }
.closure-stats > div { display: flex; align-items: center; justify-content: space-between; min-height: 35px; border-bottom: 1px solid var(--ec-border); }
.closure-stats dt { color: var(--ec-text-secondary); font-size: 11px; }
.closure-stats dd { margin: 0; color: var(--ec-ink); font: 600 11px "IBM Plex Mono", monospace; }
.closure-stats dd.danger { color: var(--ec-red); }
.closure-stats dd.success { color: var(--ec-green); }
.closure-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; margin: 0 0 15px; }
.closure-check-grid > span { min-width: 0; display: flex; align-items: center; gap: 5px; color: var(--ec-text-secondary); font-size: 9px; }
.closure-check-grid .material-symbols-rounded { font-size: 13px; }
.closure-check-grid .ok .material-symbols-rounded { color: var(--ec-green); }
.closure-check-grid .warning .material-symbols-rounded { color: var(--ec-amber); }
.closure-check-grid .danger .material-symbols-rounded { color: var(--ec-red); }
.closure-compiler-action {
    min-height: 39px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 15px;
    padding: 0 12px;
    border: 1px solid var(--ec-border-strong);
    border-radius: 2px;
    color: var(--ec-ink);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}
.closure-compiler-action:hover { border-color: var(--ec-blue); color: var(--ec-blue); }
.closure-compiler-action .material-symbols-rounded { font-size: 16px; }
.closure-compiler-action.blocked { justify-content: center; border-color: var(--ec-border); background: var(--ec-surface-subtle); color: var(--ec-text-muted); cursor: default; }
.closure-compiler-action.ready { justify-content: center; border-color: var(--ec-ink); background: var(--ec-ink); color: var(--ec-canvas); }
.next-action-index { align-self: stretch; display: grid; align-content: center; justify-items: start; gap: 5px; }
.next-action-index span { color: var(--ec-ink); font: 600 18px "IBM Plex Mono", monospace; }
.next-action-index i { color: var(--ec-text-muted); font: normal 600 7px "IBM Plex Mono", monospace; letter-spacing: .055em; }
.next-action-row.blocker .next-action-index span,
.next-action-row.blocker .next-action-index i { color: var(--ec-red); }
.next-action-row.ready .next-action-index span,
.next-action-row.ready .next-action-index i,
.next-action-row.complete .next-action-index span,
.next-action-row.complete .next-action-index i { color: var(--ec-green); }
.next-action-row.queued .next-action-index span { color: var(--ec-text-secondary); }
.next-action-row.queued .next-action-index i { color: var(--ec-amber); }
.next-action-row.queued .next-action-copy,
.next-action-row.queued .next-action-meta { opacity: .82; }
.next-action-copy small b { margin-right: 5px; color: var(--ec-ink); font: 600 8px "IBM Plex Mono", monospace; }
.next-action-footnote {
    min-height: 43px;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 16px;
    border-top: 1px solid var(--ec-border);
    color: var(--ec-text-muted);
    font-size: 9px;
}
.next-action-footnote .material-symbols-rounded { color: var(--ec-blue); font-size: 16px; }

.site-control-side .evidence-panel {
    border-color: #28323b;
    border-radius: 4px;
    background: #0b1116;
    color: #dce6ee;
}
.site-control-side .evidence-panel .control-panel-heading,
.site-control-side .evidence-panel .evidence-coverage,
.site-control-side .evidence-panel .evidence-coverage > div,
.site-control-side .evidence-panel .evidence-event { border-color: #28323b; }
.site-control-side .evidence-panel .ledger-eyebrow,
.site-control-side .evidence-panel .evidence-event small,
.site-control-side .evidence-panel .evidence-event code,
.site-control-side .evidence-panel .evidence-coverage span { color: #82909b; }
.site-control-side .evidence-panel h2,
.site-control-side .evidence-panel .evidence-event strong,
.site-control-side .evidence-panel .evidence-coverage strong { color: #f4f7f9; }
.site-control-side .evidence-panel .evidence-event > .material-symbols-rounded { color: #67d3a0; }
.site-control-side .evidence-panel .evidence-live { color: #a8b4bd; }
.site-control-side .evidence-intro { margin: 0; padding: 0 18px 11px; color: #8f9ba5; font-size: 9px; line-height: 1.5; }
.site-control-side .evidence-panel .evidence-event-list { min-height: 132px; }
.site-control-side .evidence-panel .evidence-empty { min-height: 132px; align-content: center; }
.evidence-disclosure > summary { cursor: pointer; list-style: none; }
.evidence-disclosure > summary::-webkit-details-marker { display: none; }
.evidence-disclosure[open] .evidence-live { color: var(--ec-green); }
.evidence-disclosure .when-open { display: none; }
.evidence-disclosure[open] .when-closed { display: none; }
.evidence-disclosure[open] .when-open { display: inline; }

@media (min-width: 901px) {
    .operations-ledger-page { background: var(--ec-canvas); }
    .operations-ledger-page .site-os-global-bar {
        position: sticky;
        top: 0;
        z-index: 60;
        height: 54px;
        min-height: 0;
        box-sizing: border-box;
        display: grid;
        grid-template-columns: 196px minmax(0, 1fr) auto;
        align-items: stretch;
        border-bottom: 1px solid #27313a;
        background: #0b1116;
        color: #dfe7ed;
    }
    .site-os-wordmark {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 0 16px;
        border-right: 1px solid #27313a;
        color: #f7f9fa;
        font: 600 12px "IBM Plex Mono", monospace;
        letter-spacing: .05em;
    }
    .site-os-wordmark:hover { color: #fff; }
    .site-os-wordmark i { width: auto; height: auto; background: transparent; }
    .site-os-wordmark i::after { content: "/"; color: #73808a; font-style: normal; }
    .site-os-wordmark strong { color: #f7f9fa; font-weight: 600; }
    .site-os-global-context { display: flex; align-items: center; min-width: 0; }
    .site-os-global-context span {
        min-height: 54px;
        display: flex;
        align-items: center;
        padding: 0 18px;
        border-right: 1px solid #27313a;
        color: #98a6b1;
        font: 500 9px "IBM Plex Mono", monospace;
        letter-spacing: .04em;
    }
    .site-os-global-context span:first-child { color: #f4f7f9; font-weight: 600; }
    .site-os-global-user { display: flex; align-items: center; gap: 8px; padding: 0 12px; }
    .site-os-global-clock { color: #98a6b1; font: 500 9px "IBM Plex Mono", monospace; letter-spacing: .02em; }
    .site-os-system-state { display: inline-flex; align-items: center; gap: 7px; color: #91a0ab; font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .05em; }
    .site-os-system-state i,
    .site-os-sidebar-status i { width: 6px; height: 6px; border-radius: 50%; background: #46c785; box-shadow: 0 0 0 3px rgba(70, 199, 133, .12); }
    .site-os-theme-toggle { min-height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 8px; border: 1px solid #303b44; border-radius: 2px; color: #c2ccd3; font-size: 9px; }
    .site-os-theme-toggle:hover { border-color: #52616c; color: #fff; }
    .site-os-theme-toggle .material-symbols-rounded { font-size: 16px; }
    .site-os-avatar { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #d1a22b; color: #182028; font: 600 9px "IBM Plex Mono", monospace; }
    .site-os-account { position: relative; }
    .site-os-account > summary { display: block; cursor: pointer; list-style: none; }
    .site-os-account > summary::-webkit-details-marker { display: none; }
    .site-os-account > div { position: absolute; z-index: 70; top: 38px; right: 0; min-width: 190px; display: grid; gap: 4px; padding: 12px; border: 1px solid #34414b; background: #111920; box-shadow: 0 16px 36px rgba(0,0,0,.28); }
    .site-os-account > div strong { color: #f4f7f9; font-size: 11px; }
    .site-os-account > div small { color: #8f9ca6; font-size: 9px; }
    .site-os-account button { width: 100%; margin-top: 8px; padding: 8px; border: 1px solid #34414b; background: transparent; color: #dfe6eb; cursor: pointer; font: 600 9px "IBM Plex Sans", sans-serif; text-align: left; }

    .operations-ledger-page .app-frame { min-height: calc(100vh - 54px); grid-template-columns: 196px minmax(0, 1fr); }
    .operations-ledger-page .app-sidebar {
        position: sticky;
        top: 54px;
        height: calc(100vh - 54px);
        padding: 0;
        overflow: auto;
        border-color: var(--ec-border);
        background: color-mix(in srgb, var(--ec-canvas) 88%, var(--ec-surface));
    }
    .operations-ledger-page .app-sidebar > .app-user { margin: 0; padding: 12px; border-top: 1px solid var(--ec-border); }
    .operations-ledger-page .app-sidebar > .app-user > div { display: none; }
    .operations-ledger-page .app-sidebar > .app-user-avatar { display: none; }
    .operations-ledger-page .app-user-menu { margin-left: auto; }
    .operations-ledger-page .app-user-menu summary { min-width: 100%; }
    .site-os-project-card {
        min-height: 116px;
        display: grid;
        align-content: center;
        gap: 5px;
        padding: 16px;
        border-bottom: 1px solid var(--ec-border);
        color: var(--ec-text);
    }
    .site-os-project-card:hover { background: var(--ec-surface-subtle); color: var(--ec-ink); }
    .site-os-project-card span { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .05em; }
    .site-os-project-card strong { color: var(--ec-ink); font: 600 13px "IBM Plex Mono", monospace; }
    .site-os-project-card small { overflow: hidden; color: var(--ec-text-secondary); font-size: 11px; line-height: 1.35; text-overflow: ellipsis; }
    .site-os-nav { display: grid; gap: 0; padding: 12px 0; }
    .site-os-nav a {
        min-height: 43px;
        display: flex;
        align-items: center;
        gap: 11px;
        padding: 0 14px;
        border-left: 2px solid transparent;
        color: var(--ec-text-secondary);
        font-size: 11px;
        font-weight: 500;
    }
    .site-os-nav a:hover { background: var(--ec-surface-subtle); color: var(--ec-ink); }
    .site-os-nav a.active { border-left-color: var(--ec-blue); background: transparent; color: var(--ec-ink); font-weight: 600; }
    .site-os-nav .material-symbols-rounded { display: none; }
    .site-os-nav a.active .material-symbols-rounded { color: var(--ec-blue); }
    .site-os-sidebar-status { display: grid; gap: 5px; margin-top: auto; padding: 14px 16px; border-top: 1px solid var(--ec-border); }
    .site-os-sidebar-status span { display: flex; align-items: center; gap: 8px; color: var(--ec-text-secondary); font: 600 8px "IBM Plex Mono", monospace; text-transform: uppercase; }
    .site-os-sidebar-status small { color: var(--ec-text-muted); font-size: 8px; line-height: 1.45; }
    .site-os-sidebar-theme { min-height: 30px; display: flex; align-items: center; gap: 7px; margin-top: 4px; padding: 0; color: var(--ec-text-secondary); font-size: 9px; text-align: left; }
    .site-os-sidebar-theme:hover { color: var(--ec-ink); }
    .site-os-sidebar-theme .material-symbols-rounded { font-family: "Material Symbols Rounded", sans-serif !important; font-size: 15px; font-weight: 400; }

    .operations-ledger-page .main { padding-bottom: 88px; }
    .operations-ledger-page .container { width: min(1180px, calc(100% - 48px)); }
    .operations-ledger-page .ledger-page-header {
        min-height: 126px;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
        padding: 18px 0 14px;
        border-bottom: 0;
    }
    .operations-ledger-page .ledger-project-code { color: var(--ec-text-muted); font-size: 9px; letter-spacing: .07em; }
    .operations-ledger-page .ledger-title-line h1 { margin: 9px 0 6px; font-size: clamp(30px, 2.5vw, 34px); font-weight: 600; letter-spacing: -.045em; }
    .operations-ledger-page .ledger-title-block p { max-width: 650px; color: var(--ec-text-secondary); font-size: 12px; line-height: 1.55; }
    .operations-ledger-page .ledger-title-line .icon-button { display: none; }
    .operations-ledger-page .site-os-open-closure { width: 198px; }
    .operations-ledger-page .site-os-open-closure .material-symbols-rounded { display: none; }
    .operations-ledger-page .site-os-metric-strip { border-top: 1px solid var(--ec-border); }
    .operations-ledger-page .site-os-metric-strip > div { min-height: 72px; padding: 10px 17px; }
    .operations-ledger-page .site-os-metric-strip strong { font-size: 20px; }
    .operations-ledger-page .site-control-grid {
        grid-template-columns: minmax(620px, 1fr) 370px;
        gap: 18px;
        margin: 24px 0 28px;
        scroll-margin-top: 68px;
    }
    .operations-ledger-page .next-action-panel,
    .operations-ledger-page .evidence-panel { border-radius: 4px; box-shadow: none; }
    .operations-ledger-page .next-action-panel { display: flex; flex-direction: column; }
    .operations-ledger-page .next-action-list { flex: 0 0 auto; }
    .operations-ledger-page .next-action-footnote { margin-top: auto; }
    .operations-ledger-page .control-panel-heading { min-height: 58px; padding: 12px 17px; }
    .operations-ledger-page .control-panel-heading h2 { font-size: 15px; }
    .operations-ledger-page .next-action-panel > .control-panel-heading .ledger-eyebrow { display: none; }
    .operations-ledger-page .next-action-panel > .control-panel-heading h2 { font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .09em; text-transform: uppercase; }
    .operations-ledger-page .evidence-panel .control-panel-heading .ledger-eyebrow,
    .operations-ledger-page .evidence-panel .evidence-live { display: none; }
    .operations-ledger-page .next-action-row {
        grid-template-columns: 78px minmax(0, 1fr) 105px auto;
        gap: 15px;
        min-height: 113px;
        padding: 15px 17px;
    }
    .operations-ledger-page .next-action-copy { gap: 6px; }
    .operations-ledger-page .next-action-copy strong { font-size: 13px; }
    .operations-ledger-page .next-action-copy p { font-size: 11px; line-height: 1.45; }
    .operations-ledger-page .next-action-copy small { font-size: 9px; }
    .operations-ledger-page .next-action-meta { gap: 6px; padding: 0 13px; }
    .operations-ledger-page .next-action-link { min-height: 35px; border-radius: 2px; }
    .operations-ledger-page .site-control-side { gap: 22px; }
    .operations-ledger-page .closure-compiler-panel { min-height: 262px; }
    .operations-ledger-page .site-control-side .evidence-panel { min-height: 264px; }
    .operations-ledger-page .site-control-side .evidence-disclosure:not([open]) { min-height: 0; }
    .operations-ledger-page .evidence-event-list { max-height: 220px; }
    .operations-ledger-page .ledger-command-bar {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(calc(100% + 28px));
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    }
    .operations-ledger-page .ledger-command-bar.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
    .operations-ledger-page .command-bar-close {
        position: absolute;
        top: -12px;
        right: -10px;
        z-index: 2;
        width: 30px;
        height: 30px;
        display: grid;
        place-items: center;
        border: 1px solid var(--ec-border-strong);
        border-radius: 50%;
        background: var(--ec-surface);
        color: var(--ec-text-secondary);
        box-shadow: 0 6px 16px rgba(0, 0, 0, .14);
        cursor: pointer;
    }
    .operations-ledger-page .command-bar-close .material-symbols-rounded { font-size: 16px; }
    .operations-ledger-page #day-control,
    .operations-ledger-page #reports,
    .operations-ledger-page #evidence-ledger,
    .operations-ledger-page #closure-compiler { scroll-margin-top: 68px; }
}

@media (max-width: 1220px) {
    .ledger-page-header { grid-template-columns: 1fr; }
    .site-control-grid,
    .operations-ledger-page .site-control-grid { grid-template-columns: 1fr; }
    .evidence-panel { display: grid; grid-template-columns: minmax(290px, .65fr) 1fr; }
    .site-control-side .evidence-panel { display: block; }
    .evidence-panel .control-panel-heading { grid-column: 1 / -1; }
    .evidence-coverage { border-right: 1px solid var(--ec-border); border-bottom: 0; }
    .ledger-day-health { justify-content: start; }
    .team-ledger-grid { grid-template-columns: minmax(230px, 1.25fr) repeat(3, minmax(125px, .85fr)) 76px; }
    .team-ledger-grid > :nth-child(5) { display: none; }
    .ledger-command-bar { grid-template-columns: minmax(150px, 1fr) repeat(3, minmax(75px, .6fr)) minmax(280px, 1.6fr); }
    .ledger-command-bar > .command-stat:nth-of-type(5) { display: none; }
}

@media (max-width: 900px) {
    .site-os-global-bar { display: none; }
    .app-frame { display: block; }
    .app-sidebar { display: none; }
    .mobile-topbar {
        position: sticky;
        top: 0;
        z-index: 40;
        display: grid;
        grid-template-columns: 1fr 40px auto;
        align-items: center;
        gap: 8px;
        min-height: 58px;
        padding: 0 12px;
        border-bottom: 1px solid var(--ec-border);
        background: color-mix(in srgb, var(--ec-surface) 94%, transparent);
        backdrop-filter: blur(14px);
    }
    .mobile-brand { color: var(--ec-ink); font-weight: 700; }
    .mobile-theme-toggle { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 7px; }
    .mobile-menu > summary { min-height: 40px; display: grid; place-items: center; padding: 0 12px; border: 1px solid var(--ec-border); border-radius: 7px; background: var(--ec-surface); color: var(--ec-text); cursor: pointer; list-style: none; font-weight: 600; }
    .mobile-menu > summary::-webkit-details-marker { display: none; }
    .mobile-menu nav { position: absolute; top: 50px; right: 12px; width: min(280px, calc(100vw - 24px)); display: grid; gap: 2px; padding: 8px; border: 1px solid var(--ec-border); border-radius: 9px; background: var(--ec-surface); box-shadow: var(--ec-shadow); }
    .mobile-menu nav a, .mobile-menu nav button { min-height: 42px; display: flex; align-items: center; width: 100%; padding: 8px 10px; border: 0; border-radius: 6px; background: transparent; color: var(--ec-text); font: inherit; }
    .operations-ledger-page .container { width: min(100% - 24px, 760px); }
    .ledger-page-header { gap: 20px; padding: 22px 0 18px; }
    .ledger-header-actions { justify-items: stretch; }
    .ledger-header-actions > span { display: none; }
    .site-os-open-closure { width: 100%; }
    .site-os-metric-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ec-border); }
    .site-os-metric-strip > div { min-height: 82px; }
    .site-os-metric-strip > div:nth-child(2) { border-right: 0; }
    .site-os-metric-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--ec-border); }
    .ledger-title-line h1 { font-size: 34px; }
    .ledger-day-health { grid-template-columns: 64px 1fr; gap: 14px; }
    .readiness-ring { width: 62px; height: 62px; }
    .readiness-ring::after { inset: 6px; }
    .health-alerts { grid-column: 1 / -1; grid-template-columns: repeat(2, 1fr); padding: 12px 0 0; border-top: 1px solid var(--ec-border); border-left: 0; }
    .ledger-day-navigation { position: static; display: flex; width: fit-content; margin: 12px 0 0; }
    .site-control-grid { margin: 18px -12px 22px; gap: 12px; }
    .next-action-panel, .evidence-panel { border-right: 0; border-left: 0; border-radius: 0; }
    .next-action-row { grid-template-columns: 62px minmax(0, 1fr) auto; }
    .next-action-meta { display: none; }
    .evidence-panel { display: grid; grid-template-columns: 1fr; }
    .evidence-panel .control-panel-heading { grid-column: auto; }
    .evidence-coverage { border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .ledger-timeline { margin: 0 -12px; padding: 26px 12px 30px; overflow-x: auto; }
    .timeline-hours, .timeline-stages { min-width: 720px; }
    .team-ledger { margin: 0 -12px; }
    .team-ledger-heading { padding: 22px 12px 12px; }
    .team-ledger-grid-head { display: none; }
    .team-ledger-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
        min-height: 0;
        padding: 0 12px 12px;
    }
    .team-ledger-row > * { padding: 10px; }
    .team-ledger-row > *:not(:first-child) { border-left: 0; }
    .worker-cell { grid-column: 1 / -1; padding-top: 16px; border-bottom: 1px solid var(--ec-border); }
    .stage-cell { min-height: 58px; }
    .team-ledger-row > .stage-cell:nth-child(even) { border-left: 1px solid var(--ec-border); }
    .team-ledger-row > .diary-stage { display: flex; }
    .row-actions { grid-column: 1 / -1; grid-template-columns: 40px 1fr; justify-items: stretch; border-top: 1px solid var(--ec-border); }
    .row-actions .icon-button { justify-self: start; }
    .row-actions form, .row-approve-button { width: 100%; }
    .attention-ledger { padding: 20px 0 0; }
    .attention-ledger-row { grid-template-columns: 24px 1fr auto; }
    .attention-ledger-row > span:nth-of-type(2) { grid-column: 2 / -1; }
    .attention-ledger-row b { grid-column: 3; grid-row: 1; }
    .ledger-supporting-work { margin-right: 0; margin-left: 0; margin-bottom: 168px; }
    .operations-split, .material-workbench { grid-template-columns: 1fr; }
    .bulk-entry-row { grid-template-columns: minmax(0, 1fr) 84px 118px; }
    .bulk-description { grid-column: 1 / -1; }
    .material-quick-form { padding-right: 0; padding-bottom: 18px; border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .material-entry-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 80px 70px; }
    .material-entry-row label:last-child { grid-column: 1 / -1; }
    .ledger-supporting-grid { grid-template-columns: 1fr; }
    .ledger-media-grid { grid-template-columns: repeat(2, 1fr); }
    .supporting-links { grid-template-columns: repeat(3, 1fr); }
    .ledger-command-bar {
        right: 10px;
        bottom: 10px;
        left: 10px;
        grid-template-columns: 1fr;
        min-height: 78px;
    }
    .ledger-command-bar > .command-stat { display: none; }
    .command-action { grid-column: 1; padding: 8px; }
    .command-primary-button { min-height: 50px; font-size: 13px; }
}

@media (max-width: 520px) {
    .ledger-title-line h1 { font-size: 30px; }
    .ledger-title-block p { font-size: 12px; }
    .health-alerts { grid-template-columns: 1fr; }
    .control-panel-heading { min-height: 62px; }
    .next-action-row { grid-template-columns: 54px minmax(0, 1fr); padding: 12px; }
    .next-action-copy > div { align-items: flex-start; flex-direction: column; gap: 4px; }
    .next-action-link { grid-column: 2 / -1; width: 100%; justify-content: space-between; }
    .evidence-event code { display: none; }
    .ledger-timeline { padding-top: 20px; overflow: visible; }
    .timeline-hours { display: none; }
    .timeline-stages { min-width: 0; padding-top: 25px; }
    .timeline-stages::before,
    .timeline-stages::after { top: 8px; }
    .timeline-stages strong { font-size: 10px; }
    .timeline-stages small { font-size: 9px; line-height: 1.25; }
    .team-ledger-heading { align-items: flex-start; flex-direction: column; }
    .team-ledger-heading .btn { width: 100%; }
    .stage-cell { align-items: flex-start; }
    .attention-ledger-row { grid-template-columns: 24px minmax(0, 1fr); }
    .attention-ledger-row b { grid-column: 2; grid-row: auto; }
    .operations-panel { padding: 14px; }
    .supporting-heading { align-items: flex-start; flex-direction: column; }
    .bulk-entry-row { grid-template-columns: minmax(0, 1fr) 80px; }
    .bulk-entry-row label:nth-of-type(3), .bulk-description { grid-column: 1 / -1; }
    .material-entry-row { grid-template-columns: minmax(0, 1fr) 74px; }
    .material-entry-row label:nth-child(1), .material-entry-row label:nth-child(2), .material-entry-row label:last-child { grid-column: 1 / -1; }
    .delivery-item-row { grid-template-columns: 1fr; }
    .delivery-item-row small { padding-bottom: 0; }
    .ledger-media-grid { grid-template-columns: 1fr; }
    .supporting-links { grid-template-columns: 1fr; }
    .ledger-command-bar { grid-template-columns: 1fr; }
}

/* Operational information architecture */
.workspace-header { min-height: 126px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; padding: 18px 0; border-bottom: 1px solid var(--ec-border-strong); }
.workspace-header h1 { max-width: 920px; margin: 0 0 6px; color: var(--ec-ink); font-size: clamp(30px, 3vw, 40px); font-weight: 600; letter-spacing: -.05em; }
.workspace-header p { margin: 0; color: var(--ec-text-secondary); font-size: 12px; }
.portfolio-command-bar,
.customer-command-bar { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--ec-border-strong); }
.portfolio-saved-views { align-self: stretch; display: flex; min-width: 0; }
.portfolio-saved-views a { min-width: 120px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; border-right: 1px solid var(--ec-border); color: var(--ec-text-secondary); font-size: 10px; }
.portfolio-saved-views a:hover { background: var(--ec-surface-hover); color: var(--ec-ink); }
.portfolio-saved-views a.active { box-shadow: inset 0 -3px var(--ec-blue); background: var(--ec-surface); color: var(--ec-ink); font-weight: 600; }
.portfolio-saved-views a.active.danger { box-shadow: inset 0 -3px var(--ec-red); }
.portfolio-saved-views strong { color: var(--ec-text-muted); font: 600 12px "IBM Plex Mono", monospace; }
.portfolio-search { width: min(360px, 100%); min-height: 38px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; border: 1px solid var(--ec-border-strong); background: var(--ec-surface); }
.portfolio-search label { display: grid; place-items: center; color: var(--ec-text-muted); }
.portfolio-search .material-symbols-rounded { font-size: 18px; }
.portfolio-search input { min-width: 0; height: 36px; padding: 0 6px; border: 0; border-radius: 0; outline: 0; background: transparent; font-size: 11px; }
.portfolio-search > a { display: grid; place-items: center; padding: 0 9px; color: var(--ec-text-muted); }
.operational-portfolio-panel,
.customer-portfolio-panel { margin-top: 18px; padding: 0; overflow: hidden; border-radius: 0; }
.operational-portfolio-table { min-width: 980px; table-layout: auto; }
.customer-portfolio-table { min-width: 950px; }
.operational-portfolio-table th,
.customer-portfolio-table th { padding-top: 14px; padding-bottom: 14px; background: var(--ec-surface-subtle); color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .07em; text-transform: uppercase; }
.operational-portfolio-table td,
.customer-portfolio-table td { padding-top: 14px; padding-bottom: 14px; font-size: 10px; }
.operational-portfolio-table td > small,
.customer-portfolio-table td > small,
.portfolio-project-name span,
.portfolio-deadline small,
.portfolio-finance small { display: block; margin-top: 4px; color: var(--ec-text-muted); font-size: 8px; line-height: 1.35; }
.portfolio-project-name { display: grid; gap: 2px; color: var(--ec-text); }
.portfolio-project-name strong { color: var(--ec-blue); font: 600 10px "IBM Plex Mono", monospace; }
.portfolio-project-name span { max-width: 190px; margin: 0; overflow: hidden; color: var(--ec-ink); font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-health { display: inline-flex; align-items: center; gap: 6px; color: var(--ec-text-secondary); font: 600 8px "IBM Plex Mono", monospace; text-transform: uppercase; white-space: nowrap; }
.portfolio-health i { width: 7px; height: 7px; border: 1px solid currentColor; border-radius: 50%; background: transparent; }
.portfolio-health.blocker { color: var(--ec-red); }
.portfolio-health.blocker i { background: var(--ec-red); }
.portfolio-health.warning { color: var(--ec-amber); }
.portfolio-health.warning i { background: var(--ec-amber); }
.portfolio-health.healthy { color: var(--ec-green); }
.portfolio-health.healthy i { background: var(--ec-green); }
.portfolio-health.neutral { color: var(--ec-text-muted); }
.portfolio-deadline strong { color: var(--ec-ink); font-weight: 600; }
.portfolio-deadline strong.overdue,
.attention-copy.blocker,
.attention-text,
.numeric-cell.negative { color: var(--ec-red) !important; }
.attention-copy { color: var(--ec-text); font-size: 10px; font-weight: 600; }
.attention-copy.warning { color: var(--ec-amber); }
.attention-copy.healthy { color: var(--ec-green); }
.portfolio-finance strong { color: var(--ec-ink); font: 600 11px "IBM Plex Mono", monospace; }
.portfolio-next-action { min-height: 34px; display: inline-flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--ec-border-strong); color: var(--ec-ink); font-size: 9px; font-weight: 600; white-space: nowrap; }
.portfolio-next-action:hover { border-color: var(--ec-blue); background: var(--ec-blue); color: #fff; }
.portfolio-next-action .material-symbols-rounded { font-size: 15px; }
.guided-empty { min-height: 130px; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-content: center; gap: 14px; padding: 24px; color: var(--ec-text-secondary); text-align: left; }
.guided-empty > .material-symbols-rounded { color: var(--ec-text-muted); font-size: 28px; }
.guided-empty strong { display: block; color: var(--ec-ink); font-size: 13px; }
.guided-empty p { max-width: 680px; margin: 5px 0 0; color: var(--ec-text-secondary); font-size: 10px; line-height: 1.5; }
.guided-empty .btn { margin-top: 14px; }
.budget-guided-empty { min-height: 210px; }
.site-os-side-more { border-top: 1px solid var(--ec-sidebar-border); }
.site-os-side-more > summary { min-height: 38px; display: flex; align-items: center; gap: 10px; padding: 0 16px; color: var(--ec-sidebar-muted); cursor: pointer; font-size: 10px; list-style: none; }
.site-os-side-more > summary::-webkit-details-marker { display: none; }
.site-os-side-more > summary .material-symbols-rounded { font-size: 17px; }
.site-os-side-more > div { display: grid; padding: 4px 10px 10px 42px; }
.site-os-side-more > div a { min-height: 28px; display: flex; align-items: center; padding: 0; color: var(--ec-sidebar-text); font-size: 9px; }
.finance-command-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 18px; margin-top: 18px; }
.finance-command-grid .panel,
.financial-portfolio-panel { margin-bottom: 0; border-radius: 0; }
.command-row-list { border-top: 1px solid var(--ec-border); }
.command-row-list > a { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 11px 4px; border-bottom: 1px solid var(--ec-border); color: var(--ec-text); }
.command-row-list > a:hover { background: var(--ec-surface-hover); }
.command-row-list > a > span:first-child { min-width: 0; }
.command-row-list strong { display: block; overflow: hidden; color: var(--ec-ink); font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.command-row-list small { display: block; margin-top: 4px; color: var(--ec-text-muted); font-size: 8px; }
.command-row-list.compact > a { min-height: 56px; }
.command-row-action { display: inline-flex; align-items: center; gap: 7px; color: var(--ec-blue); font-size: 9px; font-weight: 600; white-space: nowrap; }
.command-row-action .material-symbols-rounded { font-size: 15px; }
.numeric-command-value { color: var(--ec-ink); font: 600 11px "IBM Plex Mono", monospace; white-space: nowrap; }
.financial-portfolio-panel { margin-top: 18px; }
.financial-portfolio-panel table { min-width: 1120px; }
.customer-command-bar { justify-content: flex-end; }
.customer-detail-header { min-height: 126px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--ec-border-strong); }
.customer-detail-header h1 { margin: 0 0 6px; color: var(--ec-ink); font-size: clamp(30px, 3vw, 40px); font-weight: 600; letter-spacing: -.05em; }
.customer-detail-header p { margin: 0; color: var(--ec-text-secondary); font-size: 12px; }
.customer-contact-value { font-size: 14px !important; }
.customer-detail-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 18px; margin-top: 18px; }
.customer-detail-grid .panel { border-radius: 0; }
.customer-side-stack { display: grid; align-content: start; gap: 18px; }
.customer-side-stack .panel { margin: 0; }
.customer-contact-panel dl { margin: 0; border-top: 1px solid var(--ec-border); }
.customer-contact-panel dl > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ec-border); }
.customer-contact-panel dt { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; text-transform: uppercase; }
.customer-contact-panel dd { margin: 0; color: var(--ec-ink); font-size: 10px; }
.customer-notes { margin: 14px 0 0; color: var(--ec-text-secondary); font-size: 10px; line-height: 1.5; }
.customer-project-rows .numeric-command-value { display: grid; justify-items: end; }
.customer-project-rows .numeric-command-value small { font-family: "IBM Plex Sans", sans-serif; font-weight: 400; }

@media (max-width: 980px) {
    .portfolio-command-bar { align-items: stretch; flex-direction: column; padding: 12px 0; }
    .portfolio-saved-views { min-height: 44px; overflow-x: auto; }
    .portfolio-saved-views a { min-width: 112px; border: 1px solid var(--ec-border); }
    .portfolio-search { width: 100%; }
    .finance-command-grid,
    .customer-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .workspace-header,
    .customer-detail-header { min-height: 112px; align-items: flex-start; flex-direction: column; grid-template-columns: 1fr; gap: 14px; padding: 18px 0; }
    .customer-detail-header .actions { width: 100%; }
    .customer-detail-header .actions .btn { flex: 1 1 auto; }
    .customer-command-bar { padding: 12px 0; }
    .command-row-list > a { align-items: flex-start; flex-direction: column; gap: 8px; }
    .command-row-action { align-self: stretch; justify-content: space-between; }
    .customer-project-rows .numeric-command-value { justify-items: start; }
    .operational-portfolio-panel .table-wrap,
    .customer-portfolio-panel .table-wrap { overflow: visible; }
    .operational-portfolio-table,
    .customer-portfolio-table,
    .operational-portfolio-table tbody,
    .customer-portfolio-table tbody { min-width: 0; display: block; width: 100%; }
    .operational-portfolio-table thead,
    .customer-portfolio-table thead { display: none; }
    .operational-portfolio-table tr,
    .customer-portfolio-table tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--ec-border-strong); }
    .operational-portfolio-table tr:last-child,
    .customer-portfolio-table tr:last-child { border-bottom: 0; }
    .operational-portfolio-table td,
    .customer-portfolio-table td { min-height: 36px; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: start; padding: 7px 14px; border: 0; }
    .operational-portfolio-table td::before,
    .customer-portfolio-table td::before { content: attr(data-label); color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
    .operational-portfolio-table td[data-label="Zakázka"],
    .customer-portfolio-table td[data-label="Zákazník"] { display: block; padding-top: 10px; padding-bottom: 10px; }
    .operational-portfolio-table td[data-label="Zakázka"]::before,
    .customer-portfolio-table td[data-label="Zákazník"]::before { display: none; }
    .portfolio-project-name span { max-width: none; white-space: normal; }
    .portfolio-next-action { min-height: 42px; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Field Context Capture — Figma Site Operating System v4 */
.field-capture-page .container { width: min(100% - 32px, 520px); padding: 30px 0 80px; }
.field-capture-shell { overflow: hidden; border: 1px solid var(--ec-border-strong); border-radius: 12px; background: var(--ec-surface); box-shadow: var(--ec-shadow); }
.field-capture-header { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 16px; border-bottom: 1px solid var(--ec-border); background: var(--ec-ink); color: var(--ec-canvas); }
.field-capture-header > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; flex: 1 1 auto; }
.field-capture-kicker { font: 700 10px "IBM Plex Mono", monospace; letter-spacing: .12em; }
.field-sync-state { display: inline-flex; align-items: center; gap: 6px; color: var(--ec-green); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .06em; }
.field-sync-state i,
[data-draft-state] i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.field-sync-state.offline { color: var(--ec-amber); }
.field-capture-header-actions { display: flex; align-items: center; gap: 4px; }
.field-capture-header-actions > a,
.field-capture-header-actions > button { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 5px; background: transparent; color: var(--ec-canvas); cursor: pointer; }
.field-capture-header-actions > a:hover,
.field-capture-header-actions > button:hover { background: color-mix(in srgb, var(--ec-canvas) 10%, transparent); color: var(--ec-canvas); }
.field-capture-form { display: grid; gap: 22px; padding: 24px 18px; }
.field-validation-summary { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; padding: 14px; border: 1px solid color-mix(in srgb, var(--ec-red) 50%, var(--ec-border)); background: color-mix(in srgb, var(--ec-red) 8%, var(--ec-surface)); color: var(--ec-text); }
.field-validation-summary.is-hidden { display: none; }
.field-validation-summary:focus { outline: 3px solid color-mix(in srgb, var(--ec-red) 25%, transparent); outline-offset: 2px; }
.field-validation-summary > .material-symbols-rounded { color: var(--ec-red); font-size: 22px; }
.field-validation-summary strong { color: var(--ec-ink); font-size: 15px; }
.field-validation-summary p { margin: 3px 0 5px; color: var(--ec-text-secondary); font-size: 13px; }
.field-validation-summary ul { margin: 0; padding-left: 18px; color: var(--ec-red); font-size: 13px; line-height: 1.5; }
.field-capture-title { display: grid; gap: 5px; }
.field-capture-context { color: var(--ec-blue); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.field-capture-title h1 { margin: 6px 0 0; color: var(--ec-ink); font-size: 25px; letter-spacing: -.025em; }
.field-capture-title p { margin: 0; color: var(--ec-text-secondary); font-size: 12px; }
.field-control { display: grid; gap: 7px; color: var(--ec-text-secondary); font-size: 10px; font-weight: 600; letter-spacing: .02em; }
.field-control > span:first-child,
.field-quick-capture > span,
.field-material-state legend { color: var(--ec-text-muted); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.field-control input,
.field-control select,
.field-control textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--ec-border-strong); border-radius: 5px; background: var(--ec-surface); color: var(--ec-text); font: inherit; }
.field-control textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.field-control .field-help { color: var(--ec-text-muted); font-size: 12px; font-weight: 400; line-height: 1.4; }
.field-control > span:first-child .field-required-label { color: var(--ec-red); font-family: "IBM Plex Sans", sans-serif; font-weight: 600; letter-spacing: 0; text-transform: none; }
.field-control [aria-invalid="true"],
.field-timer-panel [aria-invalid="true"] { border-color: var(--ec-red); }
.field-control input:focus,
.field-control select:focus,
.field-control textarea:focus { border-color: var(--ec-blue); outline: 2px solid color-mix(in srgb, var(--ec-blue) 18%, transparent); outline-offset: 1px; }
.field-date-row { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.field-date-row .field-control { flex: 0 1 190px; }
[data-draft-state] { display: inline-flex; align-items: center; gap: 6px; padding-bottom: 10px; color: var(--ec-green); font-size: 9px; }
.field-timer-panel { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 14px; padding: 16px; border: 1px solid var(--ec-border-strong); background: var(--ec-surface-subtle); }
.field-timer-panel > div { display: grid; gap: 8px; }
.field-timer-panel > div > span,
.field-timer-panel label > span { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.field-timer-panel strong { color: var(--ec-ink); font: 600 30px "IBM Plex Mono", monospace; letter-spacing: -.04em; }
.field-timer-panel label { display: grid; align-content: start; gap: 7px; }
.field-timer-panel input { min-width: 0; min-height: 44px; padding: 8px 9px; border: 1px solid var(--ec-border-strong); border-radius: 4px; background: var(--ec-surface); color: var(--ec-ink); font: 600 15px "IBM Plex Mono", monospace; }
.field-timer-panel button { grid-column: 1 / -1; min-height: 46px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--ec-ink); border-radius: 4px; background: var(--ec-ink); color: var(--ec-canvas); cursor: pointer; font: inherit; }
.field-timer-panel button.running { border-color: var(--ec-red); background: var(--ec-red); color: #fff; }
.field-timer-panel button b { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.field-quick-capture { display: grid; gap: 10px; }
.field-quick-capture > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.field-quick-capture button,
.field-quick-capture label { position: relative; min-height: 78px; display: grid; place-items: center; align-content: center; gap: 6px; padding: 8px; border: 1px solid var(--ec-border-strong); border-radius: 5px; background: var(--ec-surface-subtle); color: var(--ec-text); cursor: pointer; font: inherit; }
.field-quick-capture button:hover,
.field-quick-capture label:hover { border-color: var(--ec-blue); background: var(--ec-blue-soft); }
.field-quick-capture .material-symbols-rounded { color: var(--ec-text-muted); font-size: 23px; }
.field-quick-capture b { font-size: 10px; }
.field-quick-capture small { position: absolute; top: 7px; right: 7px; min-width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: var(--ec-blue); color: #fff; font-size: 10px; }
.field-description-control { position: relative; }
.field-description-control > small { display: flex; align-items: center; gap: 5px; color: var(--ec-amber); font-size: 9px; font-weight: 500; }
.field-description-control > small.complete { color: var(--ec-green); }
.field-description-control > small .material-symbols-rounded { font-size: 15px; }
.field-code-control > span small { color: var(--ec-text-muted); font-family: "IBM Plex Sans", sans-serif; font-weight: 400; letter-spacing: 0; text-transform: none; }
.field-material-state { min-width: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 0; border: 0; }
.field-material-state legend { grid-column: 1 / -1; margin-bottom: 4px; }
.field-material-state label { min-width: 0; }
.field-material-state input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.field-material-state span { min-height: 43px; display: grid; place-items: center; padding: 7px; border: 1px solid var(--ec-border-strong); border-radius: 4px; color: var(--ec-text-secondary); cursor: pointer; font-size: 9px; text-align: center; }
.field-material-state input:checked + span { border-color: var(--ec-blue); background: var(--ec-blue-soft); color: var(--ec-blue); font-weight: 600; }
.field-offline-note { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; padding: 13px; border: 1px solid var(--ec-border); background: var(--ec-surface-subtle); color: var(--ec-text-secondary); }
.field-offline-note > .material-symbols-rounded { color: var(--ec-green); font-size: 20px; }
.field-offline-note p { margin: 0; font-size: 9px; line-height: 1.5; }
.field-offline-note strong { display: block; color: var(--ec-text); }
.field-submit-button { min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 17px; border: 1px solid var(--ec-ink); border-radius: 4px; background: var(--ec-ink); color: var(--ec-canvas); cursor: pointer; font: 600 12px "IBM Plex Sans", sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.field-submit-button:hover { background: var(--ec-blue); border-color: var(--ec-blue); color: #fff; }
.field-submit-note { margin: -12px 0 0; color: var(--ec-text-muted); font-size: 9px; line-height: 1.45; text-align: center; }

.field-capture-page,
.field-capture-page .app-shell,
.field-capture-page .app-frame,
.field-capture-page .main,
.field-capture-page .container,
.field-capture-shell,
.field-capture-form,
.field-capture-form > * { min-width: 0; max-width: 100%; }
.field-capture-page { overflow-x: hidden; }
.field-control input,
.field-control select,
.field-control textarea,
.field-timer-panel input { min-width: 0; max-width: 100%; }

/* Role workspaces — same Site OS language, different operational priority. */
.site-os-eyebrow { display: block; margin-bottom: 7px; color: var(--ec-text-muted); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .1em; }
.today-role-header { min-height: 122px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; padding: 20px 0 18px; border-bottom: 1px solid var(--ec-border-strong); }
.today-role-header h1 { margin: 0 0 5px; color: var(--ec-ink); font-size: clamp(32px, 3vw, 40px); font-weight: 600; letter-spacing: -.05em; }
.today-role-header p { margin: 0; color: var(--ec-text-secondary); font-size: 12px; }
.today-role-state { padding: 8px 10px; border: 1px solid var(--ec-border-strong); color: var(--ec-text-secondary); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.today-primary-job { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 34%); border-bottom: 1px solid var(--ec-border-strong); background: var(--ec-surface); }
.today-job-context { min-height: 232px; display: flex; flex-direction: column; justify-content: center; padding: 28px 34px; border-right: 1px solid var(--ec-border); }
.today-job-context > span { color: var(--ec-blue); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.today-job-context h2 { max-width: 680px; margin: 12px 0 8px; color: var(--ec-ink); font-size: clamp(24px, 2.4vw, 34px); font-weight: 600; letter-spacing: -.04em; }
.today-job-context > p { margin: 0; color: var(--ec-text-secondary); font-size: 13px; }
.today-job-meta { display: flex; gap: 18px; margin-top: 24px; color: var(--ec-text-secondary); font-size: 10px; }
.today-job-meta span { display: inline-flex; align-items: center; gap: 6px; }
.today-job-meta .material-symbols-rounded { color: var(--ec-text-muted); font-size: 16px; }
.today-job-action { display: grid; align-content: center; gap: 12px; padding: 26px; background: var(--ec-surface-subtle); }
.today-job-action > span { color: var(--ec-red); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.today-job-action > span.is-ready { color: var(--ec-green); }
.today-primary-button { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 17px; border: 1px solid var(--ec-ink); background: var(--ec-ink); color: var(--ec-canvas); font-size: 12px; font-weight: 600; }
.today-primary-button:hover { border-color: var(--ec-blue); background: var(--ec-blue); color: #fff; }
.today-job-action small { color: var(--ec-text-muted); font-size: 9px; line-height: 1.45; }
.today-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--ec-border-strong); }
.today-work-panel { min-width: 0; background: var(--ec-surface); }
.today-work-panel:first-child { border-right: 1px solid var(--ec-border); }
.today-work-panel > header { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; border-bottom: 1px solid var(--ec-border); }
.today-work-panel > header span { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .1em; }
.today-work-panel > header h2 { margin: 4px 0 0; color: var(--ec-ink); font-size: 16px; font-weight: 600; }
.today-work-panel > header > strong { color: var(--ec-text-muted); font: 500 24px "IBM Plex Mono", monospace; }
.today-task-list > a,
.today-project-list > a { min-height: 66px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--ec-border); color: var(--ec-text); }
.today-project-list > a { grid-template-columns: minmax(0, 1fr) auto; }
.today-task-list > a:last-child,
.today-project-list > a:last-child { border-bottom: 0; }
.today-task-list > a:hover,
.today-project-list > a:hover { background: var(--ec-surface-hover); }
.today-task-list strong,
.today-project-list strong { display: block; color: var(--ec-ink); font-size: 11px; font-weight: 600; }
.today-task-list small,
.today-project-list small { display: block; margin-top: 4px; overflow: hidden; color: var(--ec-text-secondary); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.today-task-list > a > .material-symbols-rounded { color: var(--ec-text-muted); font-size: 18px; }
.task-priority { width: 3px; height: 32px; background: var(--ec-border-strong); }
.task-priority.high { background: var(--ec-amber); }
.task-priority.critical { background: var(--ec-red); }
.today-report-state { padding: 5px 7px; border: 1px solid var(--ec-red); color: var(--ec-red); font: 600 8px "IBM Plex Mono", monospace; text-transform: uppercase; }
.today-report-state.done { border-color: var(--ec-green); color: var(--ec-green); }
.today-panel-empty,
.today-empty-state { display: grid; gap: 4px; padding: 22px 20px; color: var(--ec-text-secondary); }
.today-panel-empty strong,
.today-empty-state h2 { margin: 0; color: var(--ec-ink); font-size: 12px; }
.today-panel-empty span,
.today-empty-state p { margin: 0; font-size: 10px; }
.today-panel-empty.success { border-left: 3px solid var(--ec-green); background: var(--ec-green-soft); }
.today-empty-state { min-height: 180px; grid-template-columns: 32px minmax(0, 1fr); align-content: center; border-bottom: 1px solid var(--ec-border-strong); background: var(--ec-surface); }
.today-empty-state > .material-symbols-rounded { color: var(--ec-text-muted); font-size: 28px; }
.manager-action-queue,
.manager-closure-queue,
.manager-project-portfolio { margin: 18px 0 0; border-radius: 0; }
.manager-summary-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 18px; border: 1px solid var(--ec-border-strong); background: var(--ec-surface); }
.manager-summary-strip > div { min-height: 96px; display: grid; align-content: center; gap: 5px; padding: 14px 18px; border-right: 1px solid var(--ec-border); }
.manager-summary-strip > div:last-child { border-right: 0; }
.manager-summary-strip span,
.manager-summary-strip small { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .07em; }
.manager-summary-strip strong { overflow: hidden; color: var(--ec-ink); font: 600 22px "IBM Plex Mono", monospace; text-overflow: ellipsis; white-space: nowrap; }
.manager-summary-strip .attention strong { color: var(--ec-red); }
.site-os-closed-state { display: inline-flex; min-height: 40px; align-items: center; padding: 0 12px; border: 1px solid var(--ec-green); color: var(--ec-green); font: 600 9px "IBM Plex Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 820px) {
    .today-role-header { min-height: 104px; grid-template-columns: 1fr; gap: 12px; padding: 18px 0; }
    .today-role-state { justify-self: start; }
    .today-primary-job { grid-template-columns: 1fr; }
    .today-job-context { min-height: 190px; padding: 24px 18px; border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .today-job-action { padding: 18px; }
    .today-work-grid { grid-template-columns: 1fr; }
    .today-work-panel:first-child { border-right: 0; border-bottom: 1px solid var(--ec-border-strong); }
    .manager-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .manager-summary-strip > div:nth-child(2) { border-right: 0; }
    .manager-summary-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--ec-border); }
}

@media (max-width: 520px) {
    .today-role-header h1 { font-size: 32px; }
    .today-job-meta { align-items: flex-start; flex-direction: column; gap: 8px; }
    .today-task-list > a,
    .today-project-list > a { padding-right: 12px; padding-left: 12px; }
    .today-report-state { max-width: 92px; text-align: center; white-space: normal; }
    .manager-summary-strip { grid-template-columns: 1fr; }
    .manager-summary-strip > div { min-height: 80px; border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .manager-summary-strip > div:last-child { border-bottom: 0; }
}

@media (max-width: 900px) {
    .field-capture-page .mobile-topbar { display: none; }
    .field-capture-page .container { width: 100%; padding: 0; }
    .field-capture-shell { min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
    .field-capture-form { padding-bottom: 38px; }
}

@media (max-width: 420px) {
    .field-capture-form { gap: 20px; padding-right: 16px; padding-left: 16px; }
    .field-date-row { align-items: stretch; flex-direction: column; gap: 6px; }
    .field-date-row .field-control { flex-basis: auto; }
    [data-draft-state] { padding: 0; }
    .field-timer-panel { grid-template-columns: minmax(0, 1fr) 100px; }
    .field-timer-panel strong { font-size: 27px; }
    .field-material-state { grid-template-columns: 1fr; }
}

/* Industrial geometry – one restrained radius system across the CRM. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
.panel,
.metric,
.auth-card,
.flash,
.tabs a,
.project-cockpit,
.empty-state,
.quick-actions a,
.project-modules,
.calendar,
.badge,
.media-item,
.project-navigation,
.project-context-nav,
.project-more-menu,
.day-switcher,
.day-command,
.operation-metrics,
.state-label,
.secondary-work,
.operations-panel,
.delivery-note-card,
.ledger-media-item,
.next-action-panel,
.evidence-panel,
.ledger-day-navigation,
.field-capture-shell,
.mobile-menu > summary,
.mobile-menu nav {
    border-radius: var(--ec-radius-surface);
}

.btn,
button.btn,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
.project-context-nav > a,
.project-more > summary,
.project-more-menu a,
.day-switcher a,
.icon-button,
.next-action-icon,
.next-action-link,
.team-ledger-heading .btn,
.row-approve-button,
.panel-primary-button,
.panel-secondary-button,
.form-panel-heading > span,
.delivery-note-heading > span,
.bulk-entry-row input,
.bulk-entry-row select,
.material-entry-row input,
.material-entry-row select,
.delivery-note-card input,
.site-os-open-closure,
.closure-compiler-action,
.mobile-theme-toggle,
.mobile-menu nav a,
.mobile-menu nav button,
.field-capture-header-actions > a,
.field-capture-header-actions > button,
.field-control input,
.field-control select,
.field-control textarea,
.field-timer-panel input,
.field-timer-panel button,
.field-quick-capture button,
.field-quick-capture label,
.field-material-state span,
.field-submit-button {
    border-radius: var(--ec-radius-control);
}

.panel,
.metric,
.auth-card,
.project-cockpit,
.calendar,
.media-item,
.project-context-nav,
.project-more-menu,
.day-switcher,
.day-command,
.operation-metrics,
.secondary-work,
.operations-panel,
.delivery-note-card,
.ledger-media-item,
.next-action-panel,
.evidence-panel,
.field-capture-shell {
    box-shadow: none;
}

/* Project command cockpit – operational overview for the responsible PM. */
.project-command-header {
    min-height: 126px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 32px;
    align-items: center;
    padding: 18px 0 14px;
}
.project-command-header h1 { margin: 8px 0 5px; color: var(--ec-ink); font-size: clamp(30px, 2.5vw, 36px); font-weight: 600; letter-spacing: -.045em; }
.project-command-header p { margin: 0; color: var(--ec-text-secondary); font-size: 12px; }
.project-command-header-actions { display: flex; align-items: center; gap: 8px; }
.project-command-header-actions .site-os-open-closure { width: 210px; }
.project-command-edit { min-height: 42px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid var(--ec-border-strong); border-radius: var(--ec-radius-control); color: var(--ec-text); font-size: 10px; font-weight: 600; text-transform: uppercase; }
.project-command-edit:hover { border-color: var(--ec-blue); color: var(--ec-blue); }
.project-command-metrics > div { min-height: 76px; padding: 11px 17px; }
.project-command-metrics > div.danger strong { color: var(--ec-red); }
.project-command-metrics > div.success strong { color: var(--ec-green); }
.project-command-grid { grid-template-columns: minmax(620px, 1fr) 370px; gap: 18px; margin: 24px 0 30px; scroll-margin-top: 68px; }
.project-command-grid .next-action-panel { min-height: 548px; display: flex; flex-direction: column; border-radius: var(--ec-radius-control); }
.project-command-grid .next-action-list { flex: 1 0 auto; }
.project-command-grid .next-action-row { min-height: 108px; }
.project-command-grid .next-action-footnote { margin-top: auto; }
.project-command-grid .site-control-side { display: grid; align-content: start; gap: 18px; }
.project-command-grid .closure-compiler-panel { min-height: 262px; border-radius: var(--ec-radius-control); }
.project-command-grid .project-evidence-panel { min-height: 268px; border-radius: var(--ec-radius-control); }
.project-command-grid .project-evidence-panel .evidence-event-list { max-height: 205px; }
.project-command-grid .project-evidence-panel .evidence-empty { min-height: 150px; align-content: center; }
.project-command-grid .next-action-copy small b { color: var(--ec-text); font: 600 8px "IBM Plex Mono", monospace; }

.project-command-lower { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); gap: 18px; margin-bottom: 18px; }
.project-command-module { min-width: 0; border: 1px solid var(--ec-border); background: var(--ec-surface); }
.project-command-module > header { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 16px; border-bottom: 1px solid var(--ec-border); }
.project-command-module > header h2 { margin: 4px 0 0; color: var(--ec-ink); font-size: 16px; }
.project-command-module > header > a { color: var(--ec-text-secondary); font-size: 10px; font-weight: 600; }
.project-command-module > header > a:hover { color: var(--ec-blue); }
.project-progress-summary { min-height: 86px; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--ec-border); }
.project-progress-summary > strong { color: var(--ec-ink); font: 600 22px "IBM Plex Mono", monospace; }
.project-progress-summary > div { display: grid; gap: 9px; }
.project-progress-summary span { color: var(--ec-text-secondary); font-size: 10px; }
.project-progress-summary progress { width: 100%; height: 5px; overflow: hidden; border: 0; border-radius: 0; background: var(--ec-border); }
.project-progress-summary progress::-webkit-progress-bar { background: var(--ec-border); }
.project-progress-summary progress::-webkit-progress-value { background: var(--ec-blue); }
.project-progress-summary progress::-moz-progress-bar { background: var(--ec-blue); }
.project-package-list { display: grid; }
.project-package-list > a { min-height: 64px; display: grid; grid-template-columns: minmax(0, 1fr) 86px 70px; gap: 12px; align-items: center; padding: 11px 16px; border-bottom: 1px solid var(--ec-border); color: var(--ec-text); }
.project-package-list > a:last-child { border-bottom: 0; }
.project-package-list > a:hover { background: var(--ec-surface-subtle); }
.project-package-list > a > span { min-width: 0; display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; align-items: center; }
.project-package-list b { color: var(--ec-blue); font: 600 9px "IBM Plex Mono", monospace; }
.project-package-list strong { overflow: hidden; color: var(--ec-ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.project-package-list small { color: var(--ec-text-muted); font: 500 9px "IBM Plex Mono", monospace; }
.project-package-list em { color: var(--ec-green); font: 600 9px "IBM Plex Mono", monospace; font-style: normal; text-transform: uppercase; }
.project-command-empty { padding: 22px 16px; color: var(--ec-text-secondary); font-size: 11px; }
.project-finance-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.project-finance-grid > div { min-height: 86px; display: grid; align-content: center; gap: 4px; padding: 13px 16px; border-right: 1px solid var(--ec-border); border-bottom: 1px solid var(--ec-border); }
.project-finance-grid > div:nth-child(even) { border-right: 0; }
.project-finance-grid span, .project-finance-grid small { color: var(--ec-text-secondary); font-size: 9px; }
.project-finance-grid strong { color: var(--ec-ink); font: 600 16px "IBM Plex Mono", monospace; }
.project-finance-grid .warning strong { color: var(--ec-amber); }
.project-finance-footer { min-height: 64px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 11px 16px; }
.project-finance-footer span { color: var(--ec-text-secondary); font-size: 9px; }
.project-finance-footer strong { color: var(--ec-ink); font: 600 14px "IBM Plex Mono", monospace; }
.project-finance-footer a { color: var(--ec-blue); font-size: 10px; font-weight: 600; }

.project-command-agendas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--ec-border); background: var(--ec-surface); }
.project-command-agendas > a { min-height: 104px; display: grid; align-content: center; gap: 5px; padding: 15px 16px; border-right: 1px solid var(--ec-border); color: var(--ec-text); }
.project-command-agendas > a:last-child { border-right: 0; }
.project-command-agendas > a:hover { background: var(--ec-surface-subtle); }
.project-command-agendas span { color: var(--ec-blue); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .08em; }
.project-command-agendas strong { color: var(--ec-ink); font-size: 12px; }
.project-command-agendas small { color: var(--ec-text-secondary); font-size: 10px; }
.project-command-details { margin-bottom: 12px; border: 1px solid var(--ec-border); background: var(--ec-surface); }
.project-command-details > summary { min-height: 48px; display: flex; align-items: center; padding: 0 15px; cursor: pointer; color: var(--ec-text); font: 600 10px "IBM Plex Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.project-command-details[open] > summary { border-bottom: 1px solid var(--ec-border); }
.project-command-details .project-context-nav { margin: 14px; }
.project-snapshot-summary { display: grid; grid-template-columns: repeat(4, 1fr); }
.project-snapshot-summary > div { min-height: 82px; display: grid; align-content: center; gap: 4px; padding: 14px 16px; border-right: 1px solid var(--ec-border); border-bottom: 1px solid var(--ec-border); }
.project-snapshot-summary > div:last-child { border-right: 0; }
.project-snapshot-summary span { color: var(--ec-text-secondary); font-size: 10px; }
.project-snapshot-summary strong { color: var(--ec-ink); font: 600 18px "IBM Plex Mono", monospace; }
.project-snapshot-details > .actions { padding: 14px; }
.project-snapshot-data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ec-border); }
.project-snapshot-data > section { min-width: 0; padding: 14px; }
.project-snapshot-data > section:first-child { border-right: 1px solid var(--ec-border); }
.project-snapshot-data h3 { margin: 0 0 10px; color: var(--ec-ink); font-size: 12px; }
.project-snapshot-data a { min-height: 46px; display: grid; align-content: center; gap: 2px; padding: 8px 0; border-bottom: 1px solid var(--ec-border); color: var(--ec-text); }
.project-snapshot-data strong { font: 600 10px "IBM Plex Mono", monospace; }
.project-snapshot-data span, .project-snapshot-data p { margin: 0; color: var(--ec-text-secondary); font-size: 9px; }
.project-base-details dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.project-base-details dl > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; padding: 12px 15px; border-right: 1px solid var(--ec-border); border-bottom: 1px solid var(--ec-border); }
.project-base-details dt { color: var(--ec-text-muted); font: 600 9px "IBM Plex Mono", monospace; text-transform: uppercase; }
.project-base-details dd { margin: 0; color: var(--ec-text); font-size: 11px; }

@media (max-width: 1100px) {
    .project-command-grid, .project-command-lower { grid-template-columns: 1fr; }
    .project-command-grid .next-action-panel { min-height: 0; }
    .project-command-grid .site-control-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .project-command-agendas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .project-command-agendas > a:nth-child(2) { border-right: 0; }
    .project-command-agendas > a:nth-child(-n+2) { border-bottom: 1px solid var(--ec-border); }
}

@media (max-width: 900px) {
    .project-command-page .container { width: min(100% - 24px, 760px); }
    .project-command-header { grid-template-columns: 1fr; gap: 16px; padding: 22px 0 18px; }
    .project-command-header-actions { align-items: stretch; flex-direction: column; }
    .project-command-header-actions .site-os-open-closure, .project-command-edit { width: 100%; justify-content: center; }
    .project-command-grid { margin-right: -12px; margin-left: -12px; }
    .project-command-grid .site-control-side { grid-template-columns: 1fr; }
    .project-command-grid .project-evidence-panel { border-right: 0; border-left: 0; border-radius: 0; }
    .project-command-lower { margin-right: -12px; margin-left: -12px; }
    .project-command-agendas { grid-template-columns: 1fr; margin-right: -12px; margin-left: -12px; }
    .project-command-agendas > a { border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .project-command-agendas > a:last-child { border-bottom: 0; }
    .project-command-details { margin-right: -12px; margin-left: -12px; }
}

@media (max-width: 560px) {
    .project-command-header h1 { font-size: 29px; }
    .project-finance-grid, .project-snapshot-summary, .project-base-details dl { grid-template-columns: 1fr; }
    .project-finance-grid > div, .project-snapshot-summary > div { border-right: 0; }
    .project-finance-footer { grid-template-columns: 1fr; }
    .project-package-list > a { grid-template-columns: minmax(0, 1fr) auto; }
    .project-package-list > a > span { grid-column: 1 / -1; grid-template-columns: 72px minmax(0, 1fr); }
    .project-base-details dl > div { grid-template-columns: 1fr; border-right: 0; }
    .project-snapshot-data { grid-template-columns: 1fr; }
    .project-snapshot-data > section:first-child { border-right: 0; border-bottom: 1px solid var(--ec-border); }
}

/* In-product operating manual. */
.manual-header { align-items: end; }
.manual-header-actions { display: grid; justify-items: end; gap: 10px; }
.manual-header-actions > span { color: var(--ec-text-muted); font: 500 9px "IBM Plex Mono", monospace; text-transform: uppercase; }
.manual-start { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 18px 0; border: 1px solid var(--ec-border); background: var(--ec-surface); }
.manual-start > a { min-height: 86px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: center; padding: 13px 14px; border-right: 1px solid var(--ec-border); color: var(--ec-text); }
.manual-start > a:last-child { border-right: 0; }
.manual-start > a:hover { background: var(--ec-surface-subtle); }
.manual-start b { color: var(--ec-blue); font: 600 10px "IBM Plex Mono", monospace; }
.manual-start span { min-width: 0; display: grid; gap: 3px; }
.manual-start strong { color: var(--ec-ink); font-size: 11px; }
.manual-start small { color: var(--ec-text-secondary); font-size: 9px; }
.manual-content { max-width: 980px; margin: 0 auto 48px; padding: 34px clamp(20px, 5vw, 68px) 56px; border: 1px solid var(--ec-border); background: var(--ec-surface); color: var(--ec-text); }
.manual-content h1 { margin: 0 0 14px; color: var(--ec-ink); font-size: clamp(28px, 4vw, 40px); letter-spacing: -.045em; }
.manual-content h2 { margin: 42px 0 14px; padding-top: 20px; border-top: 1px solid var(--ec-border); color: var(--ec-ink); font-size: 20px; letter-spacing: -.02em; scroll-margin-top: 24px; }
.manual-content h3 { margin: 26px 0 10px; color: var(--ec-ink); font-size: 14px; }
.manual-content p, .manual-content li { color: var(--ec-text-secondary); font-size: 12px; line-height: 1.75; }
.manual-content strong { color: var(--ec-text); }
.manual-content ul, .manual-content ol { padding-left: 22px; }
.manual-content li + li { margin-top: 4px; }
.manual-content table { width: 100%; margin: 18px 0 24px; border-collapse: collapse; font-size: 11px; }
.manual-content th { padding: 9px 10px; border: 1px solid var(--ec-border-strong); background: var(--ec-surface-subtle); color: var(--ec-ink); text-align: left; }
.manual-content td { padding: 9px 10px; border: 1px solid var(--ec-border); color: var(--ec-text-secondary); vertical-align: top; }
.manual-content pre { overflow-x: auto; margin: 16px 0; padding: 14px 16px; border: 1px solid var(--ec-border); background: var(--ec-surface-subtle); color: var(--ec-text); font: 500 10px/1.7 "IBM Plex Mono", monospace; }
.manual-content code { font-family: "IBM Plex Mono", monospace; }

@media (max-width: 900px) {
    .manual-start { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .manual-start > a:nth-child(2) { border-right: 0; }
    .manual-start > a:nth-child(-n+2) { border-bottom: 1px solid var(--ec-border); }
}

@media (max-width: 560px) {
    .manual-header-actions { justify-items: stretch; }
    .manual-start { grid-template-columns: 1fr; }
    .manual-start > a { border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .manual-start > a:last-child { border-bottom: 0; }
    .manual-content { min-width: 0; width: calc(100% + 24px); max-width: calc(100% + 24px); margin-right: -12px; margin-left: -12px; padding: 26px 18px 42px; overflow: hidden; border-right: 0; border-left: 0; }
    .manual-content table,
    .manual-content thead,
    .manual-content tbody,
    .manual-content tr,
    .manual-content th,
    .manual-content td { box-sizing: border-box; display: block; min-width: 0; width: 100%; max-width: 100%; }
    .manual-content table { width: 0; min-width: 100%; }
    .manual-content thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .manual-content tbody { display: grid; gap: 10px; }
    .manual-content tr { border: 1px solid var(--ec-border); }
    .manual-content td { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 10px; border: 0; border-bottom: 1px solid var(--ec-border); }
    .manual-content td:last-child { border-bottom: 0; }
    .manual-content td::before { color: var(--ec-text-muted); font: 600 8px "IBM Plex Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
    .manual-content td:nth-child(1)::before { content: "Role"; }
    .manual-content td:nth-child(2)::before { content: "Odpovědnost"; }
    .manual-content td:nth-child(3)::before { content: "V systému"; }
    .manual-content pre { width: 100%; max-width: 100%; }
}

/* 2026 pre-deployment readability pass — operational data must stay legible in motion. */
.workspace-header p,
.project-command-header p,
.field-capture-title p,
.today-role-header p { font-size: 14px; line-height: 1.55; }

.portfolio-saved-views a,
.portfolio-search input,
.project-command-edit,
.next-action-link,
.project-command-module > header > a,
.project-finance-footer a,
.project-command-details > summary { font-size: 12px; }

.operational-portfolio-table { min-width: 900px; }
.operational-portfolio-table th,
.customer-portfolio-table th { font-size: 11px; }
.operational-portfolio-table td,
.customer-portfolio-table td { font-size: 14px; line-height: 1.4; }
.operational-portfolio-table td > small,
.customer-portfolio-table td > small,
.portfolio-project-name small,
.portfolio-deadline small,
.portfolio-finance small { font-size: 12px; line-height: 1.4; }
.portfolio-project-name { gap: 4px; }
.portfolio-project-name strong { font-size: 12px; }
.portfolio-project-name span { max-width: 270px; font-size: 15px; }
.portfolio-health { font-size: 11px; }
.attention-copy { font-size: 13px; }
.portfolio-finance strong { font-size: 13px; }
.portfolio-next-action { min-height: 40px; font-size: 12px; }
.guided-empty p { font-size: 13px; }

.next-action-copy strong { font-size: 14px; }
.next-action-copy p { font-size: 13px; line-height: 1.45; }
.next-action-copy small,
.next-action-meta,
.evidence-coverage,
.project-package-list b,
.project-package-list small,
.project-package-list em,
.project-finance-grid span,
.project-finance-grid small,
.project-finance-footer span,
.project-command-agendas span,
.project-command-agendas small,
.project-snapshot-summary span,
.project-snapshot-data span,
.project-snapshot-data p,
.project-base-details dt { font-size: 11px; }
.project-package-list strong,
.project-snapshot-data strong,
.project-base-details dd,
.project-command-agendas strong { font-size: 13px; }
.project-progress-summary span,
.project-command-empty { font-size: 13px; }

.next-action-overflow { border-top: 1px solid var(--ec-border-strong); }
.next-action-overflow > summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    color: var(--ec-text);
    cursor: pointer;
    font: 600 12px "IBM Plex Mono", monospace;
    letter-spacing: .03em;
    list-style: none;
    text-transform: uppercase;
}
.next-action-overflow > summary::-webkit-details-marker { display: none; }
.next-action-overflow > summary span {
    min-width: 24px;
    padding: 3px 6px;
    border: 1px solid var(--ec-border-strong);
    color: var(--ec-text-secondary);
    text-align: center;
}
.next-action-overflow[open] > summary { background: var(--ec-surface-subtle); }

.field-control { font-size: 14px; }
.field-control > span:first-child,
.field-quick-capture > span,
.field-material-state legend,
.field-capture-context { font-size: 11px; }
.field-control input,
.field-control select,
.field-control textarea { font-size: 16px; }
.manual-content p,
.manual-content li { font-size: 14px; }
.manual-content table { font-size: 13px; }
.manual-start strong { font-size: 13px; }
.manual-start small { font-size: 11px; }
.manager-summary-strip small { font-size: 11px; }
.today-project-list { font-size: 13px; }

.site-os-global-context span,
.site-os-global-clock,
.site-os-account small,
.site-os-account button,
.site-os-project-card span,
.site-os-side-more > div a,
.site-os-sidebar-status small,
.site-os-sidebar-theme span,
.ledger-project-code,
.site-os-metric-strip span,
.site-os-metric-strip small,
.ledger-eyebrow,
.decision-counter,
.next-action-rank,
.next-action-copy > div span,
.next-action-copy small b,
.closure-compiler-action,
.evidence-intro,
.project-command-agendas span { font-size: 11px; }
.control-panel-heading h2 { font-size: 16px; }
.site-os-sidebar-status { line-height: 1.45; }
.site-os-avatar { font-size: 11px; }

.mobile-brand span { color: var(--ec-text-muted); font: 600 10px "IBM Plex Mono", monospace; }

/* FÁZE sign-in — the same restrained operating system in public-facing form. */
.faze-auth-page {
    min-width: 320px;
    min-height: 100vh;
    margin: 0;
    background: var(--ec-canvas);
    color: var(--ec-text);
    font-family: "IBM Plex Sans", sans-serif;
}
.faze-auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(440px, .9fr) minmax(520px, 1.1fr); }
.faze-auth-brand {
    position: relative;
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto auto;
    gap: 38px;
    padding: clamp(34px, 5vw, 72px);
    overflow: hidden;
    background: #091018;
    color: #ecf3fa;
}
.faze-auth-brand::after {
    content: "";
    position: absolute;
    right: -22%;
    bottom: -18%;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(91, 146, 255, .22);
    transform: rotate(36deg);
    pointer-events: none;
}
.faze-auth-wordmark,
.faze-auth-mobile-wordmark { display: flex; align-items: center; gap: 10px; font: 600 13px "IBM Plex Mono", monospace; letter-spacing: .08em; }
.faze-auth-wordmark i,
.faze-auth-mobile-wordmark i { width: 1px; height: 18px; background: #3c4c59; }
.faze-auth-wordmark strong,
.faze-auth-mobile-wordmark strong { color: #7f91a0; font-size: 11px; }
.faze-auth-brand-copy { align-self: end; max-width: 580px; padding-bottom: 10px; }
.faze-auth-brand-copy .ledger-eyebrow { color: #76a3ff; font-size: 11px; }
.faze-auth-brand-copy h1 { margin: 18px 0 16px; color: #fff; font-size: clamp(46px, 5.6vw, 76px); font-weight: 500; line-height: .98; letter-spacing: -.065em; }
.faze-auth-brand-copy p { max-width: 570px; margin: 0; color: #a9b7c3; font-size: 16px; line-height: 1.65; }
.faze-auth-signals { position: relative; z-index: 1; display: grid; margin: 0; border-top: 1px solid #293743; }
.faze-auth-signals > div { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 15px 0; border-bottom: 1px solid #293743; }
.faze-auth-signals dt { color: #6d8192; font: 600 11px "IBM Plex Mono", monospace; }
.faze-auth-signals dd { margin: 0; display: grid; gap: 3px; }
.faze-auth-signals strong { color: #edf3f8; font-size: 13px; }
.faze-auth-signals span { color: #8fa0ae; font-size: 12px; line-height: 1.45; }
.faze-auth-build { position: relative; z-index: 1; color: #607483; font: 500 10px "IBM Plex Mono", monospace; letter-spacing: .06em; }
.faze-auth-form-panel { min-height: 100vh; display: grid; align-items: center; padding: clamp(32px, 7vw, 100px); background: var(--ec-surface); }
.faze-auth-form-wrap { width: min(100%, 460px); margin: 0 auto; }
.faze-auth-form-wrap header { margin-bottom: 38px; }
.faze-auth-form-wrap header .ledger-eyebrow { font-size: 11px; }
.faze-auth-form-wrap h2 { margin: 14px 0 9px; color: var(--ec-ink); font-size: clamp(30px, 3vw, 40px); font-weight: 600; letter-spacing: -.045em; }
.faze-auth-form-wrap header p { margin: 0; color: var(--ec-text-secondary); font-size: 14px; line-height: 1.55; }
.faze-auth-form { display: grid; gap: 22px; }
.faze-auth-field { display: grid; gap: 8px; color: var(--ec-text); font-size: 13px; font-weight: 600; }
.faze-auth-field > input,
.faze-password-control { width: 100%; min-height: 52px; border: 1px solid var(--ec-border-strong); background: var(--ec-surface); }
.faze-auth-field > input { padding: 0 14px; border-radius: var(--ec-radius-control); color: var(--ec-text); font: 400 16px "IBM Plex Sans", sans-serif; }
.faze-password-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; border-radius: var(--ec-radius-control); }
.faze-password-control input { min-width: 0; min-height: 50px; padding: 0 14px; border: 0; border-radius: 0; background: transparent; color: var(--ec-text); font: 400 16px "IBM Plex Sans", sans-serif; }
.faze-password-control button { min-width: 102px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 0 12px; border: 0; border-left: 1px solid var(--ec-border); background: var(--ec-surface-subtle); color: var(--ec-text-secondary); cursor: pointer; font: 600 12px "IBM Plex Sans", sans-serif; }
.faze-password-control button:hover { color: var(--ec-blue); }
.faze-password-control .material-symbols-rounded { font-size: 18px; }
.faze-auth-field > input:focus,
.faze-password-control:focus-within { border-color: var(--ec-blue); outline: 2px solid color-mix(in srgb, var(--ec-blue) 16%, transparent); outline-offset: 1px; }
.faze-password-control input:focus { outline: 0; box-shadow: none; }
.faze-auth-field .error { color: var(--ec-red); font-size: 12px; font-weight: 500; }
.faze-auth-remember { display: flex; align-items: flex-start; gap: 10px; color: var(--ec-text-secondary); cursor: pointer; font-size: 13px; line-height: 1.45; }
.faze-auth-remember input { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 1px; accent-color: var(--ec-blue); }
.faze-auth-submit { min-height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; border: 1px solid var(--ec-blue); border-radius: var(--ec-radius-control); background: var(--ec-blue); color: #fff; cursor: pointer; font: 600 14px "IBM Plex Sans", sans-serif; }
.faze-auth-submit:hover { border-color: var(--ec-blue-hover); background: var(--ec-blue-hover); }
.faze-auth-submit .material-symbols-rounded { font-size: 19px; }
.faze-auth-help { margin: 32px 0 0; padding-top: 20px; border-top: 1px solid var(--ec-border); color: var(--ec-text-muted); font-size: 12px; line-height: 1.55; }
.faze-auth-help strong { color: var(--ec-text-secondary); }
.faze-auth-mobile-wordmark { display: none; }

@media (max-width: 900px) {
    .faze-auth-shell { grid-template-columns: 1fr; }
    .faze-auth-brand { display: none; }
    .faze-auth-form-panel { min-height: 100svh; align-content: start; gap: 64px; padding: 28px 22px 44px; }
    .faze-auth-mobile-wordmark { display: flex; }
    .faze-auth-form-wrap { align-self: center; }
}

@media (max-width: 680px) {
    .operational-portfolio-table { min-width: 0; }
    .operational-portfolio-table td,
    .customer-portfolio-table td { grid-template-columns: 104px minmax(0, 1fr); font-size: 14px; }
    .operational-portfolio-table td::before,
    .customer-portfolio-table td::before { font-size: 10px; }
    .portfolio-project-name span { font-size: 16px; }
    .portfolio-saved-views { overflow: hidden; }
    .portfolio-saved-views a { min-width: 0; flex: 1 1 25%; gap: 5px; padding: 0 7px; font-size: 11px; }
    .portfolio-saved-views strong { font-size: 11px; }
}

/* Final legibility step: one level larger without changing the information hierarchy. */
.crm-shell { font-size: 15px; }
.workspace-header p,
.project-command-header p,
.field-capture-title p,
.today-role-header p,
.customer-detail-header p { font-size: 15px; }

.operational-portfolio-table td,
.customer-portfolio-table td { font-size: 15px; }
.operational-portfolio-table td > small,
.customer-portfolio-table td > small,
.portfolio-project-name small,
.portfolio-deadline small,
.portfolio-finance small { font-size: 13px; }
.operational-portfolio-table th,
.customer-portfolio-table th,
.portfolio-health { font-size: 12px; }
.portfolio-project-name strong { font-size: 13px; }
.portfolio-project-name span { font-size: 16px; }
.attention-copy,
.portfolio-finance strong { font-size: 14px; }
.portfolio-next-action,
.portfolio-saved-views a,
.portfolio-search input { font-size: 13px; }

.next-action-copy strong { font-size: 15px; }
.next-action-copy p { font-size: 14px; }
.next-action-copy small,
.next-action-meta,
.project-progress-summary span,
.project-command-empty { font-size: 12px; }
.project-package-list strong,
.project-command-agendas strong,
.project-snapshot-data strong,
.project-base-details dd { font-size: 14px; }
.project-finance-grid span,
.project-finance-grid small,
.project-finance-footer span,
.project-package-list small,
.project-package-list b,
.project-package-list em,
.project-snapshot-summary span,
.project-snapshot-data span,
.project-snapshot-data p,
.project-base-details dt { font-size: 12px; }

.field-control { font-size: 15px; }
.field-control > span:first-child,
.field-quick-capture > span,
.field-material-state legend,
.field-capture-context,
[data-draft-state],
.field-description-control > small,
.field-submit-note { font-size: 12px; }
.field-quick-capture b,
.field-material-state span,
.field-offline-note p { font-size: 13px; }

.today-job-context > p,
.today-project-list,
.today-empty-state p { font-size: 14px; }
.today-project-list strong,
.today-project-list small,
.today-job-meta,
.today-job-action small { font-size: 12px; }

.manual-content p,
.manual-content li { font-size: 15px; }
.manual-content table,
.manual-start strong { font-size: 14px; }
.manual-start small { font-size: 12px; }

.faze-auth-form-wrap header p { font-size: 15px; }
.faze-auth-field,
.faze-auth-remember { font-size: 14px; }
.faze-auth-help,
.faze-auth-field .error { font-size: 13px; }

/* Material control — purchasing, receiving and consumption as one PM workflow. */
.material-command-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 18px 0;
    border: 1px solid var(--ec-border);
    background: var(--ec-surface);
}
.material-command-strip > div { min-height: 94px; display: grid; align-content: center; gap: 5px; padding: 14px 16px; border-right: 1px solid var(--ec-border); }
.material-command-strip > div:last-child { border-right: 0; }
.material-command-strip span { color: var(--ec-text-muted); font: 600 11px "IBM Plex Mono", monospace; letter-spacing: .04em; }
.material-command-strip strong { color: var(--ec-ink); font: 600 24px "IBM Plex Mono", monospace; }
.material-command-strip small { color: var(--ec-text-secondary); font-size: 12px; }
.material-command-strip .danger strong { color: var(--ec-red); }
.material-command-strip .warning strong { color: var(--ec-amber); }
.material-decision-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 18px; margin-bottom: 18px; }
.material-decision-grid .panel { margin: 0; padding: 0; border-radius: 0; }
.material-alert-list { display: grid; }
.material-alert { min-height: 76px; display: grid; grid-template-columns: 28px minmax(0, 1fr) 22px; gap: 12px; align-items: center; padding: 12px 16px; border-top: 1px solid var(--ec-border); color: var(--ec-text); }
.material-alert:first-child { border-top: 0; }
.material-alert:hover { background: var(--ec-surface-subtle); }
.material-alert > .material-symbols-rounded { color: var(--ec-text-muted); font-size: 20px; }
.material-alert > span:nth-child(2) { display: grid; gap: 4px; }
.material-alert strong { color: var(--ec-ink); font-size: 14px; }
.material-alert small { color: var(--ec-text-secondary); font-size: 13px; }
.material-alert.danger > .material-symbols-rounded { color: var(--ec-red); }
.material-alert.warning > .material-symbols-rounded { color: var(--ec-amber); }
.material-alert.success > .material-symbols-rounded { color: var(--ec-green); }
.material-finance-panel { padding: 18px !important; }
.material-finance-panel h2 { margin: 7px 0 16px; color: var(--ec-ink); font-size: 20px; }
.material-finance-panel dl { margin: 0; border-top: 1px solid var(--ec-border); }
.material-finance-panel dl > div { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--ec-border); }
.material-finance-panel dt { color: var(--ec-text-secondary); font-size: 13px; }
.material-finance-panel dd { margin: 0; color: var(--ec-ink); font: 600 14px "IBM Plex Mono", monospace; }
.material-finance-panel p { color: var(--ec-text-secondary); font-size: 14px; line-height: 1.55; }
.material-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--ec-border); background: var(--ec-surface); }
.material-flow > a { min-height: 94px; display: grid; grid-template-columns: 26px minmax(0, 1fr) 20px; gap: 10px; align-items: center; padding: 13px 15px; border-right: 1px solid var(--ec-border); color: var(--ec-text); }
.material-flow > a:last-child { border-right: 0; }
.material-flow > a:hover { background: var(--ec-surface-subtle); }
.material-flow b { color: var(--ec-blue); font: 600 11px "IBM Plex Mono", monospace; }
.material-flow a > span:nth-child(2) { min-width: 0; display: grid; gap: 4px; }
.material-flow strong { color: var(--ec-ink); font-size: 14px; }
.material-flow small { color: var(--ec-text-secondary); font-size: 12px; line-height: 1.4; }
.material-flow .material-symbols-rounded { color: var(--ec-text-muted); font-size: 18px; }
.material-open-orders { padding: 0; border-radius: 0; }
.material-open-orders > header { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 16px; border-bottom: 1px solid var(--ec-border); }
.material-open-orders h2 { margin: 4px 0 0; color: var(--ec-ink); font-size: 18px; }
.material-open-orders > header > a { color: var(--ec-blue); font-size: 13px; font-weight: 600; }

@media (max-width: 1000px) {
    .material-decision-grid { grid-template-columns: 1fr; }
    .material-command-strip,
    .material-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .material-command-strip > div:nth-child(2),
    .material-flow > a:nth-child(2) { border-right: 0; }
    .material-command-strip > div:nth-child(-n+2),
    .material-flow > a:nth-child(-n+2) { border-bottom: 1px solid var(--ec-border); }
}

@media (max-width: 620px) {
    .material-workspace-header .actions { width: 100%; }
    .material-workspace-header .actions .btn { flex: 1 1 auto; }
    .material-command-strip,
    .material-flow { grid-template-columns: 1fr; }
    .material-command-strip > div,
    .material-flow > a { border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .material-command-strip > div:last-child,
    .material-flow > a:last-child { border-bottom: 0; }
    .material-decision-grid,
    .material-flow,
    .material-command-strip,
    .material-open-orders { margin-right: -12px; margin-left: -12px; }
}

/* Approved project baseline: read-only management view. */
.baseline-lock-state { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 18px; padding: 16px 18px; border: 1px solid var(--ec-border); border-left: 3px solid var(--ec-blue); background: var(--ec-surface); }
.baseline-lock-state.locked { border-left-color: var(--ec-green); }
.baseline-lock-state > div { display: flex; align-items: center; gap: 12px; }
.baseline-lock-state .material-symbols-rounded { color: var(--ec-text-muted); }
.baseline-lock-state strong, .baseline-lock-state small { display: block; }
.baseline-lock-state small { margin-top: 3px; color: var(--ec-text-secondary); }
.baseline-lock-state dl { display: flex; gap: 28px; margin: 0; }
.baseline-lock-state dl div { display: grid; gap: 3px; }
.baseline-lock-state dt { color: var(--ec-text-muted); font: 600 10px "IBM Plex Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.baseline-lock-state dd { margin: 0; color: var(--ec-ink); font-weight: 700; }
.baseline-command-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--ec-border); background: var(--ec-surface); }
.baseline-command-strip > div { display: grid; align-content: center; min-height: 104px; padding: 16px 18px; border-right: 1px solid var(--ec-border); }
.baseline-command-strip > div:last-child { border-right: 0; }
.baseline-command-strip span { color: var(--ec-text-muted); font: 600 10px "IBM Plex Mono", monospace; letter-spacing: .05em; }
.baseline-command-strip strong { margin: 7px 0 4px; color: var(--ec-ink); font: 600 22px "IBM Plex Mono", monospace; }
.baseline-command-strip small { color: var(--ec-text-secondary); }
.baseline-command-strip .danger strong { color: var(--ec-red); }
.baseline-control-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(330px, .7fr); gap: 18px; margin-bottom: 18px; }
.baseline-control-grid .panel, .baseline-item-groups .panel { margin: 0; border-radius: 0; }
.baseline-panel-header { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.baseline-panel-header h2 { margin: 4px 0 0; }
.baseline-panel-header > strong { font: 600 16px "IBM Plex Mono", monospace; }
.baseline-reality-panel progress { width: 100%; height: 8px; margin-bottom: 16px; accent-color: var(--ec-blue); }
.baseline-ledger { margin: 0; border-top: 1px solid var(--ec-border); }
.baseline-ledger > div { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--ec-border); }
.baseline-ledger dt { color: var(--ec-text-secondary); }
.baseline-ledger dd { margin: 0; color: var(--ec-ink); font: 600 14px "IBM Plex Mono", monospace; text-align: right; }
.baseline-ledger .subtotal { border-top: 2px solid var(--ec-ink); }
.baseline-ledger .total { margin: 0 -18px; padding-right: 18px; padding-left: 18px; background: var(--ec-surface-subtle); font-weight: 700; }
.baseline-ledger .danger dd { color: var(--ec-red); }
.baseline-ledger .success dd { color: var(--ec-green); }
.baseline-ledger .warning dd { color: var(--ec-amber); }
.baseline-source-note { margin: 16px 0 0; color: var(--ec-text-muted); font-size: 12px; line-height: 1.55; }
.baseline-billing-panel > h2 { margin: 5px 0 16px; }
.baseline-links { display: grid; margin-top: 18px; border-top: 1px solid var(--ec-border); }
.baseline-links a { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--ec-border); color: var(--ec-ink); font-weight: 700; text-decoration: none; }
.baseline-item-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.baseline-item-groups table { min-width: 620px; }
.baseline-item-groups tfoot th { border-top: 2px solid var(--ec-ink); color: var(--ec-ink); }
.table-note { display: block; margin-top: 3px; color: var(--ec-text-muted); font-weight: 400; }
.baseline-notes { border-radius: 0; }
.baseline-notes p { margin: 8px 0 0; white-space: pre-line; }

@media (max-width: 1080px) {
    .baseline-command-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .baseline-command-strip > div:nth-child(2) { border-right: 0; }
    .baseline-command-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--ec-border); }
    .baseline-control-grid, .baseline-item-groups { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .baseline-lock-state { align-items: flex-start; flex-direction: column; }
    .baseline-lock-state dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 12px; }
    .baseline-command-strip { grid-template-columns: 1fr; }
    .baseline-command-strip > div, .baseline-command-strip > div:nth-child(2), .baseline-command-strip > div:last-child { border-right: 0; border-bottom: 1px solid var(--ec-border); }
    .baseline-command-strip > div:last-child { border-bottom: 0; }
    .baseline-panel-header { align-items: flex-start; flex-direction: column; }
}
