.home-dashboard { --dash-accent: #2563eb; --dash-accent-soft: #eff6ff; --dash-border: rgba(100,116,139,.2); }
.home-dashboard--workspace-hub { --dash-accent: #0f766e; --dash-accent-soft: #ecfdf5; }
.home-dashboard--command-center { --dash-accent: #7c3aed; --dash-accent-soft: #f5f3ff; }
.home-dashboard .dashboard-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 1rem; }
.home-dashboard .dashboard-grid > .widget { min-width: 0; grid-column: span 4; }
.home-dashboard .dashboard-grid > .widget.live-time-card { grid-column: span 4; }
.home-dashboard--executive-overview .dashboard-grid > .widget:nth-child(-n+4) { grid-column: span 3; }
.home-dashboard--executive-overview .dashboard-grid > .widget:nth-child(5),
.home-dashboard--executive-overview .dashboard-grid > .widget:nth-child(6) { grid-column: span 6; }
.home-dashboard--executive-overview .dashboard-grid > .widget:nth-child(n+7) { grid-column: span 4; }
.home-dashboard--executive-overview .dashboard-grid > .widget { border-radius: 1rem; }
.home-dashboard--workspace-hub .dashboard-grid > .widget:nth-child(1) { grid-column: span 3; }
.home-dashboard--workspace-hub .dashboard-grid > .widget:nth-child(2) { grid-column: span 6; }
.home-dashboard--workspace-hub .dashboard-grid > .widget:nth-child(3) { grid-column: span 3; }
.home-dashboard--workspace-hub .dashboard-grid > .widget:nth-child(n+4) { grid-column: span 4; }
.home-dashboard--workspace-hub .dashboard-grid > .widget { border-inline-start: 3px solid var(--dash-accent); border-radius: .75rem; }
.home-dashboard--command-center .dashboard-grid > .widget:nth-child(1) { grid-column: span 3; grid-row: span 2; }
.home-dashboard--command-center .dashboard-grid > .widget:nth-child(2) { grid-column: span 6; grid-row: span 2; }
.home-dashboard--command-center .dashboard-grid > .widget:nth-child(3) { grid-column: span 3; }
.home-dashboard--command-center .dashboard-grid > .widget:nth-child(4) { grid-column: span 3; }
.home-dashboard--command-center .dashboard-grid > .widget:nth-child(5) { grid-column: span 6; }
.home-dashboard--command-center .dashboard-grid > .widget:nth-child(n+6) { grid-column: span 4; }
.home-dashboard--command-center .dashboard-grid > .widget { border-radius: .8rem; border-top: 2px solid var(--dash-accent); }
.home-dashboard :is(a,button,input,select,textarea,[tabindex]):focus-visible,
.dashboard-settings :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline: 3px solid #f59e0b; outline-offset: 3px; }
.workspace-hub-panel { margin: 0 0 1.25rem; padding: clamp(1rem,3vw,2rem); border: 1px solid var(--dash-border); border-radius: 1.25rem; background: var(--bs-body-bg); box-shadow: 0 10px 32px rgba(15,23,42,.06); }
.workspace-hub-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.workspace-eyebrow,.dashboard-settings-kicker { color:var(--dash-accent,#2563eb); font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.workspace-hub-heading h1 { margin:.2rem 0 0; font-size:clamp(1.35rem,3vw,2rem); }
.workspace-launcher-link { display:inline-flex; align-items:center; gap:.5rem; color:var(--dash-accent)!important; font-weight:700; text-decoration:none; }
.workspace-search { display:flex; align-items:center; gap:.8rem; min-height:3.4rem; padding:.45rem .55rem .45rem 1rem; border:1px solid var(--dash-border); border-radius:.8rem; background:var(--bs-tertiary-bg); }
.workspace-search input { flex:1; min-width:0; color:var(--bs-body-color); border:0; outline:0; background:transparent; }
.workspace-search button { padding:.55rem 1rem; border:0; border-radius:.55rem; color:#fff; background:var(--dash-accent); font-weight:700; }
.workspace-shortcuts { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.workspace-shortcuts :is(a,button) { display:flex; align-items:center; gap:.5rem; padding:.65rem .85rem; border:1px solid var(--dash-border); border-radius:.7rem; color:var(--bs-body-color); background:var(--bs-body-bg); text-decoration:none; }
.workspace-shortcuts :is(a,button):hover { border-color:var(--dash-accent); color:var(--dash-accent); }
.home-approval-card { border-inline-start:3px solid #d97706; }
.home-approval-list li+li { border-top:1px solid var(--dash-border); }
.home-approval-list a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.2rem .75rem; padding:.7rem .25rem; color:var(--bs-body-color); text-decoration:none; }
.home-approval-list a:hover { color:var(--dash-accent); }
.home-approval-list a .small { grid-column:1; }
.home-approval-list a i { grid-column:2; grid-row:1 / span 2; align-self:center; }
.home-empty-activity-card { border-style:dashed; }
.dashboard-settings { --dash-accent:#2563eb; }
.dashboard-design-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.dashboard-design-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid var(--bs-border-color); border-radius:1rem; background:var(--bs-body-bg); box-shadow:0 8px 26px rgba(15,23,42,.06); transition:border-color .15s ease,box-shadow .15s ease; }
.dashboard-design-card.is-selected { border:2px solid #2563eb; }
.dashboard-design-card:hover { box-shadow:0 12px 30px rgba(15,23,42,.1); }
.dashboard-design-card-body { display:flex; flex:1; flex-direction:column; padding:1rem; }
.dashboard-selected-badge { flex:none; padding:.3rem .5rem; border-radius:2rem; color:#166534; background:#dcfce7; font-size:.7rem; font-weight:700; }
.dashboard-preview { display:flex; height:150px; flex-direction:column; gap:9px; padding:13px; background:#f1f5f9; }
.preview-topline { display:flex; gap:4px; height:7px; }
.preview-topline span { width:7px; height:7px; border-radius:50%; background:#94a3b8; }
.preview-kpis,.preview-shortcuts,.preview-bottom,.preview-command,.preview-asymmetric { display:grid; gap:6px; }
.preview-kpis { grid-template-columns:repeat(4,1fr); height:32px; }
.preview-kpis i,.preview-bottom i,.preview-shortcuts i,.preview-command i,.preview-asymmetric i,.preview-search,.preview-chart { display:block; border:1px solid #dbe3ed; border-radius:5px; background:#fff; }
.preview-chart { display:flex; align-items:end; justify-content:space-around; flex:1; padding:5px 10px; }
.preview-chart i { width:8%; height:35%; border-radius:3px 3px 0 0; background:#3b82f6; }
.preview-chart i:nth-child(2n) { height:65%; }.preview-chart i:nth-child(3n) { height:48%; }
.preview-bottom { grid-template-columns:1fr 1fr; height:20px; }
.preview-search { height:22px; border-radius:12px; }
.preview-shortcuts { grid-template-columns:repeat(4,1fr); height:40px; }.preview-shortcuts i { background:linear-gradient(#fff 60%,#d1fae5 60%); }
.preview-command { grid-template-columns:1fr 1fr 1fr; height:30px; }.preview-command i:first-child { grid-column:span 2; }
.preview-asymmetric { grid-template-columns:1.3fr 1fr 1fr; flex:1; }.preview-asymmetric i:first-child { grid-row:span 2; }
.dashboard-preview--workspace-hub .preview-search,.dashboard-preview--workspace-hub .preview-shortcuts i { border-color:#99f6e4; }
.dashboard-preview--command-center .preview-command i,.dashboard-preview--command-center .preview-asymmetric i { border-color:#c4b5fd; }
.dashboard-restore-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:1.25rem; padding:1rem; border:1px solid var(--bs-border-color); border-radius:.8rem; }
@media (prefers-color-scheme:dark) {
    .dashboard-preview { background:#182230; }.preview-kpis i,.preview-bottom i,.preview-shortcuts i,.preview-command i,.preview-asymmetric i,.preview-search,.preview-chart { border-color:#334155; background:#263548; }
    .preview-chart i { background:#60a5fa; }.dashboard-selected-badge { color:#bbf7d0; background:#14532d; }
}
[data-bs-theme="dark"] .dashboard-preview,body.dark .dashboard-preview,.dark-mode .dashboard-preview,.theme-dark .dashboard-preview { background:#182230; }
[data-bs-theme="dark"] .preview-kpis i,[data-bs-theme="dark"] .preview-bottom i,[data-bs-theme="dark"] .preview-shortcuts i,[data-bs-theme="dark"] .preview-command i,[data-bs-theme="dark"] .preview-asymmetric i,[data-bs-theme="dark"] .preview-search,[data-bs-theme="dark"] .preview-chart,
.dark-mode .preview-kpis i,.dark-mode .preview-bottom i,.dark-mode .preview-shortcuts i,.dark-mode .preview-command i,.dark-mode .preview-asymmetric i,.dark-mode .preview-search,.dark-mode .preview-chart,
body.dark .preview-kpis i,body.dark .preview-bottom i,body.dark .preview-shortcuts i,body.dark .preview-command i,body.dark .preview-asymmetric i,body.dark .preview-search,body.dark .preview-chart,
.theme-dark .preview-kpis i,.theme-dark .preview-bottom i,.theme-dark .preview-shortcuts i,.theme-dark .preview-command i,.theme-dark .preview-asymmetric i,.theme-dark .preview-search,.theme-dark .preview-chart { border-color:#334155; background:#263548; }
@media (max-width: 991.98px) {
    .dashboard-design-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-dashboard .dashboard-grid > .widget,
    .home-dashboard--executive-overview .dashboard-grid > .widget:nth-child(n),
    .home-dashboard--workspace-hub .dashboard-grid > .widget:nth-child(n),
    .home-dashboard--command-center .dashboard-grid > .widget:nth-child(n) { grid-column:span 6; grid-row:auto; }
}
@media (max-width: 575.98px) {
    .dashboard-design-options { grid-template-columns:1fr; }
    .home-dashboard .dashboard-grid > .widget,
    .home-dashboard--executive-overview .dashboard-grid > .widget:nth-child(n),
    .home-dashboard--workspace-hub .dashboard-grid > .widget:nth-child(n),
    .home-dashboard--command-center .dashboard-grid > .widget:nth-child(n) { grid-column:1/-1; grid-row:auto; }
    .workspace-hub-heading,.dashboard-restore-row { align-items:flex-start; flex-direction:column; }
    .workspace-search { gap:.5rem; padding-inline:.65rem; }
}
@media (prefers-reduced-motion:reduce) {
    .dashboard-design-card { transition:none; }
    .home-dashboard *, .dashboard-settings * { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Construction dashboards: scoped to the selected home layout. */
.construction-dashboard {
    --construction-accent:#245b73; --construction-border:var(--bs-border-color,#d5dce4);
    --construction-surface:var(--bs-body-bg,#fff); --construction-muted:var(--bs-secondary-color,#64748b);
    color:var(--bs-body-color); padding-block:1.25rem 3rem;
}
.home-dashboard--construction-portfolio { --construction-accent:#365b73; }
.home-dashboard--site-operations { --construction-accent:#2f6b57; }
.home-dashboard--planning-studio { --construction-accent:#52617f; }
.home-dashboard--commercial-control { --construction-accent:#725f35; }
.home-dashboard--materials-flow { --construction-accent:#4d6472; }
.home-dashboard--project-atlas { --construction-accent:#47675e; }
.construction-dashboard :is(button,a,input,select,summary,[tabindex]):focus-visible { outline:3px solid #f0a52b; outline-offset:3px; }
.construction-header,.construction-header-actions,.construction-module-nav,.construction-dashboard h1,.construction-dashboard h2,.construction-dashboard h3,.construction-dashboard h4 { min-width:0; }
.construction-header { display:flex; justify-content:space-between; align-items:flex-end; gap:1.25rem; margin-block-end:1rem; }
.construction-header h1 { margin:.15rem 0 .3rem; font-size:clamp(1.5rem,2.5vw,2.1rem); font-weight:720; letter-spacing:-.025em; }
.construction-header p,.atlas-heading p,.commercial-heading p { margin:0; color:var(--construction-muted); }
.construction-kicker { display:block; color:var(--construction-accent); font-size:.7rem; font-weight:800; letter-spacing:.12em; }
.construction-header-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.construction-module-nav { display:flex; gap:.45rem; flex-wrap:wrap; border-block:1px solid var(--construction-border); padding-block:.65rem; margin-block-end:1rem; }
.construction-module-nav a { color:var(--bs-body-color); border:1px solid var(--construction-border); border-radius:999px; padding:.4rem .75rem; text-decoration:none; font-size:.88rem; }
.construction-module-nav a:hover { color:var(--construction-accent); border-color:var(--construction-accent); }
.construction-empty { display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; padding:1.4rem; border:1px dashed var(--construction-border); border-radius:.7rem; color:var(--construction-muted); }
.construction-empty strong { color:var(--bs-body-color); }
.construction-empty > i { font-size:1.25rem; color:var(--construction-accent); }
.construction-empty.compact { padding:.8rem; font-size:.9rem; }

/* 4. Portfolio register */
.portfolio-dashboard { --construction-accent:#365b73; }
.portfolio-summary { display:grid; grid-template-columns:1fr 1fr 2fr; gap:0; border:1px solid var(--construction-border); border-radius:.55rem; overflow:hidden; }
.portfolio-summary > div { display:flex; align-items:center; justify-content:space-between; gap:.8rem; min-width:0; padding:.75rem 1rem; border-inline-end:1px solid var(--construction-border); }
.portfolio-summary > div:last-child { border:0; }.portfolio-summary span { color:var(--construction-muted); font-size:.82rem; }.portfolio-summary strong { font-size:.95rem; text-align:end; }
.portfolio-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-block:1rem .65rem; }.portfolio-toolbar h2 { margin:0; font-size:1.2rem; }
.portfolio-search { display:flex; align-items:center; gap:.5rem; width:min(26rem,100%); padding:.55rem .7rem; border:1px solid var(--construction-border); border-radius:.45rem; background:var(--construction-surface); }.portfolio-search input { width:100%; min-width:0; border:0; outline:0; color:var(--bs-body-color); background:transparent; }
.portfolio-filters { display:grid; grid-template-columns:1.5fr repeat(4,minmax(8rem,1fr)); gap:.65rem; padding:.75rem; border:1px solid var(--construction-border); border-radius:.55rem .55rem 0 0; background:var(--bs-tertiary-bg); }
.portfolio-filters label { display:grid; gap:.25rem; min-width:0; font-size:.76rem; color:var(--construction-muted); }.portfolio-filters :is(input,select) { width:100%; min-width:0; height:2.25rem; padding-inline:.5rem; border:1px solid var(--construction-border); border-radius:.35rem; color:var(--bs-body-color); background:var(--construction-surface); font-size:.83rem; }
.portfolio-table-wrap { max-width:100%; overflow:auto; border:1px solid var(--construction-border); border-top:0; border-radius:0 0 .55rem .55rem; }.portfolio-table { width:100%; min-width:1050px; border-collapse:collapse; font-size:.83rem; }.portfolio-table th,.portfolio-table td { padding:.7rem .6rem; border-block-end:1px solid var(--construction-border); text-align:start; white-space:nowrap; }.portfolio-table thead th { position:sticky; top:0; z-index:1; color:var(--construction-muted); background:var(--bs-tertiary-bg); font-size:.73rem; }.portfolio-table tbody tr:hover { background:color-mix(in srgb,var(--construction-accent) 6%,var(--construction-surface)); }.portfolio-table tbody tr[hidden] { display:none; }.portfolio-table a { color:var(--bs-body-color); font-weight:650; }.portfolio-table a:hover { color:var(--construction-accent); }.portfolio-filter-empty { padding:1rem; color:var(--construction-muted); }
.project-detail-dialog { width:min(36rem,calc(100vw - 2rem)); max-width:none; padding:1.25rem; border:1px solid var(--construction-border); border-radius:.8rem; color:var(--bs-body-color); background:var(--construction-surface); box-shadow:0 1.2rem 4rem #0005; }.project-detail-dialog::backdrop { background:#0f172a88; }.project-detail-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.project-detail-head h2 { font-size:1.2rem; }.project-detail-dialog dl { display:grid; grid-template-columns:1fr 1.3fr; gap:.55rem 1rem; margin-block:1rem; }.project-detail-dialog dt { color:var(--construction-muted); }.project-detail-dialog dd { margin:0; font-weight:600; }

/* 5. Field briefing */
.site-briefing-bar { display:grid; grid-template-columns:minmax(14rem,1.3fr) minmax(12rem,1fr) auto; align-items:center; gap:1rem; padding:1rem 1.2rem; border:1px solid var(--construction-border); border-inline-start:4px solid var(--construction-accent); border-radius:.65rem; background:var(--construction-surface); }.site-briefing-bar label,.site-briefing-bar > div:not(.site-briefing-tag) { display:grid; gap:.2rem; }.site-briefing-bar span { color:var(--construction-muted); font-size:.8rem; }.site-briefing-bar select { max-width:28rem; height:2.7rem; border:1px solid var(--construction-border); border-radius:.45rem; color:var(--bs-body-color); background:var(--construction-surface); }.site-briefing-tag { display:flex; align-items:center; gap:.5rem; padding:.6rem .8rem; border-radius:.45rem; background:color-mix(in srgb,var(--construction-accent) 9%,var(--construction-surface)); color:var(--construction-accent); font-weight:700; }
.site-operations-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(17rem,.8fr); gap:1rem; margin-block-start:1rem; }.site-briefing-main,.site-operations-side { min-width:0; }.site-section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-block:1rem; }.site-section-heading h2 { margin:.2rem 0 0; font-size:1.45rem; }.site-count { color:var(--construction-muted); font-size:.85rem; }.site-brief-block,.site-side-panel,.site-urgent-panel { padding:1rem; margin-block-end:.8rem; border:1px solid var(--construction-border); border-radius:.65rem; background:var(--construction-surface); }.site-brief-block h3,.site-side-panel h3,.site-urgent-panel h3 { margin:0 0 .75rem; font-size:1rem; }.site-brief-block h3 i { color:var(--construction-accent); margin-inline-end:.4rem; }.site-record-timeline { list-style:none; padding:0; margin:0; }.site-record-timeline li { display:grid; grid-template-columns:2.5rem minmax(0,1fr); gap:.75rem; padding:.8rem .2rem; border-block-start:1px solid var(--construction-border); }.site-record-icon { display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:.55rem; color:var(--construction-accent); background:color-mix(in srgb,var(--construction-accent) 9%,var(--construction-surface)); }.site-record-meta { display:flex; justify-content:space-between; gap:.5rem; color:var(--construction-muted); font-size:.78rem; }.site-record-timeline a { display:inline-block; padding-block:.15rem; font-weight:700; color:var(--bs-body-color); }.site-record-timeline [hidden] { display:none; }.site-resource-row { display:grid; grid-template-columns:1.5rem 1fr auto; align-items:center; gap:.5rem; min-height:2.8rem; border-block-start:1px solid var(--construction-border); }.site-resource-row em { color:var(--construction-muted); font-size:.78rem; font-style:normal; text-align:end; }.site-actions a { display:flex; align-items:center; gap:.7rem; min-height:3.1rem; padding:.6rem .25rem; border-block-start:1px solid var(--construction-border); color:var(--bs-body-color); text-decoration:none; }.site-actions a > span { flex:1; }.site-actions a:hover { color:var(--construction-accent); }.site-urgent-panel { border-inline-start:3px solid #ba6a30; }.site-urgent-panel p { color:var(--construction-muted); margin:0; }

/* 6. Schedule canvas */
.planning-studio-dashboard { --construction-accent:#52617f; }.planning-toolbar { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-block-end:1rem; }.planning-toolbar h2 { margin:.2rem 0 0; }.planning-controls { display:flex; align-items:center; gap:.65rem; }.planning-controls select { min-width:12rem; height:2.4rem; border:1px solid var(--construction-border); border-radius:.4rem; background:var(--construction-surface); color:var(--bs-body-color); }.planning-date-nav { display:flex; align-items:center; gap:.55rem; }.planning-date-nav strong { min-width:8rem; text-align:center; }.planning-workspace { display:grid; grid-template-columns:minmax(14rem,.55fr) minmax(0,2fr); min-height:28rem; border:1px solid var(--construction-border); border-radius:.7rem; overflow:hidden; background:var(--construction-surface); }.planning-project-list { padding:1rem; border-inline-end:1px solid var(--construction-border); }.planning-project-list h3 { font-size:1rem; }.planning-project-list ul { list-style:none; padding:0; margin:0; }.planning-project-list li { display:grid; gap:.2rem; padding:.65rem .2rem; border-block-start:1px solid var(--construction-border); }.planning-project-list li[hidden] { display:none; }.planning-project-list a { display:flex; align-items:center; gap:.55rem; color:var(--bs-body-color); text-decoration:none; font-weight:650; }.planning-project-list small { padding-inline-start:1.1rem; color:var(--construction-muted); }.planning-project-dot { width:.55rem; height:.55rem; border-radius:50%; background:var(--construction-accent); }.planning-canvas-area { min-width:0; padding:1rem; overflow:hidden; }.planning-scale { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid var(--construction-border); color:var(--construction-muted); font-size:.78rem; }.planning-scale span { padding:.55rem; border-inline-start:1px solid var(--construction-border); }.planning-canvas { position:relative; display:grid; place-items:center; min-height:23rem; background:repeating-linear-gradient(to right,transparent 0,transparent calc(25% - 1px),var(--construction-border) calc(25% - 1px),var(--construction-border) 25%); }.planning-empty { max-width:30rem; padding:1.5rem; text-align:center; background:var(--construction-surface); }.planning-empty > i { font-size:2rem; color:var(--construction-accent); }.planning-empty h3 { font-size:1.1rem; }.planning-empty p { color:var(--construction-muted); }.planning-support-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-block-start:.8rem; }.planning-support-grid section { padding:1rem; border:1px solid var(--construction-border); border-radius:.6rem; }.planning-support-grid h3 { font-size:.95rem; }.planning-list-toggle { display:none; }

/* 7. Commercial report */
.commercial-control-dashboard { --construction-accent:#725f35; }.commercial-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-block:1rem; }.commercial-heading h2 { margin:.15rem 0 .3rem; }.commercial-heading p { max-width:60rem; }.commercial-data-tag { display:flex; align-items:center; gap:.4rem; padding:.5rem .7rem; border:1px solid var(--construction-border); border-radius:999px; white-space:nowrap; color:var(--construction-muted); font-size:.8rem; }.commercial-split { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(17rem,.8fr); gap:1rem; }.commercial-analysis { min-width:0; }.commercial-chart-panel,.commercial-table-panel,.commercial-exceptions { padding:1rem; border:1px solid var(--construction-border); border-radius:.6rem; background:var(--construction-surface); margin-block-end:.75rem; }.commercial-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }.commercial-panel-heading h3,.commercial-exceptions h3 { font-size:1rem; }.commercial-tooltip { display:grid; place-items:center; width:1.35rem; height:1.35rem; border:1px solid var(--construction-border); border-radius:50%; color:var(--construction-accent); font-size:.85rem; font-weight:800; cursor:help; }.commercial-currency-group { padding-block:.7rem; border-block-start:1px solid var(--construction-border); }.commercial-currency-group h4 { display:flex; justify-content:space-between; font-size:.85rem; }.commercial-currency-group h4 small { color:var(--construction-muted); font-weight:400; }.commercial-bar-row { display:grid; grid-template-columns:minmax(7rem,1fr) minmax(5rem,1.2fr) minmax(7.5rem,.8fr); align-items:center; gap:.75rem; min-height:2.3rem; font-size:.82rem; }.commercial-bar-row > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.commercial-bar-row > strong { text-align:end; font-variant-numeric:tabular-nums; }.commercial-bar-row small { color:var(--construction-muted); }.commercial-bar-track { height:.6rem; overflow:hidden; border-radius:999px; background:var(--bs-tertiary-bg); }.commercial-bar-track i { display:block; height:100%; border-radius:inherit; background:var(--construction-accent); }.commercial-number { font-variant-numeric:tabular-nums; font-weight:700; }.commercial-exceptions { align-self:start; }.commercial-exception-list { list-style:none; padding:0; margin:0; }.commercial-exception-list li { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.3rem .55rem; padding:.7rem 0; border-block-start:1px solid var(--construction-border); }.commercial-exception-list a { color:var(--bs-body-color); font-weight:700; }.commercial-exception-list small { grid-column:1/-1; color:var(--construction-muted); }.commercial-exception-state { color:#9a4f25; font-size:.75rem; font-weight:750; }.commercial-metric-note { padding:.8rem; margin-block-start:.75rem; border-inline-start:3px solid var(--construction-accent); background:var(--bs-tertiary-bg); }.commercial-metric-note p { color:var(--construction-muted); margin:.25rem 0 0; font-size:.85rem; }

/* 8. Procurement lanes */
.materials-flow-dashboard { --construction-accent:#4d6472; }.materials-flow-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-block:1rem; }.materials-flow-heading h2 { margin:.2rem 0; }.materials-flow-heading p { margin:0; color:var(--construction-muted); }.materials-summary { display:grid; text-align:end; }.materials-summary strong { font-size:1.5rem; font-variant-numeric:tabular-nums; }.materials-summary span { color:var(--construction-muted); font-size:.8rem; }.materials-process-rail { display:grid; grid-template-columns:repeat(5,1fr); list-style:none; padding:0; margin:0 0 .8rem; }.materials-process-rail li { position:relative; display:flex; align-items:center; gap:.5rem; min-width:0; padding:.65rem .5rem; border-block:1px solid var(--construction-border); color:var(--construction-muted); font-size:.8rem; }.materials-process-rail li+li { border-inline-start:1px solid var(--construction-border); }.materials-rail-number { color:var(--construction-accent); font-size:.7rem; font-weight:800; }.materials-lanes { display:grid; grid-template-columns:repeat(5,minmax(13rem,1fr)); gap:.6rem; overflow-x:auto; padding-block-end:.5rem; }.materials-lane { min-width:0; border:1px solid var(--construction-border); border-radius:.6rem; background:var(--bs-tertiary-bg); }.materials-lane > header { display:flex; align-items:center; gap:.6rem; padding:.7rem; border-block-end:1px solid var(--construction-border); }.materials-lane > header h3 { margin:0; font-size:.9rem; }.materials-lane > header small { color:var(--construction-muted); }.materials-lane-icon { display:grid; place-items:center; flex:0 0 2rem; height:2rem; border-radius:.45rem; background:var(--construction-surface); color:var(--construction-accent); }.materials-record-list { display:grid; align-content:start; gap:.5rem; list-style:none; max-height:32rem; overflow:auto; padding:.55rem; margin:0; }.materials-record { display:grid; gap:.25rem; padding:.7rem; border:1px solid var(--construction-border); border-radius:.45rem; color:var(--bs-body-color); background:var(--construction-surface); text-decoration:none; font-size:.8rem; }.materials-record:hover { border-color:var(--construction-accent); }.materials-record strong { font-size:.9rem; }.materials-status { justify-self:start; padding:.1rem .4rem; border-radius:999px; background:color-mix(in srgb,var(--construction-accent) 10%,var(--construction-surface)); color:var(--construction-accent); font-size:.72rem; }.materials-record-meta { color:var(--construction-muted); }.materials-flow-notes { display:flex; justify-content:space-between; gap:1rem; color:var(--construction-muted); font-size:.82rem; padding-block:.5rem; }.materials-flow-notes p { margin:0; }

/* 9. Organization-based atlas */
.project-atlas-dashboard { --construction-accent:#47675e; }.atlas-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-block:1rem; }.atlas-heading h2 { margin:.2rem 0; }.atlas-stat { display:grid; text-align:end; }.atlas-stat strong { font-size:1.6rem; }.atlas-stat span { color:var(--construction-muted); font-size:.8rem; }.atlas-layout { display:grid; grid-template-columns:minmax(17rem,.55fr) minmax(0,1.6fr); min-height:34rem; border:1px solid var(--construction-border); border-radius:.7rem; overflow:hidden; }.atlas-directory { max-height:70vh; overflow:auto; padding:.8rem; border-inline-end:1px solid var(--construction-border); background:var(--bs-tertiary-bg); }.atlas-directory-heading { position:sticky; top:-.8rem; z-index:2; padding:.35rem 0 .65rem; background:var(--bs-tertiary-bg); }.atlas-directory-heading h3 { font-size:1rem; }.atlas-directory-heading label { display:flex; align-items:center; gap:.45rem; padding:.45rem .6rem; border:1px solid var(--construction-border); border-radius:.45rem; background:var(--construction-surface); }.atlas-directory-heading input { width:100%; min-width:0; border:0; outline:0; color:var(--bs-body-color); background:transparent; }.atlas-department { border-block-start:1px solid var(--construction-border); }.atlas-department summary { display:flex; align-items:center; gap:.5rem; padding:.75rem .2rem; cursor:pointer; font-weight:700; list-style:none; }.atlas-department summary::-webkit-details-marker { display:none; }.atlas-group-count { margin-inline-start:auto; color:var(--construction-muted); font-size:.8rem; }.atlas-section { padding-inline-start:1rem; }.atlas-section h4 { margin:.4rem 0; color:var(--construction-muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; }.atlas-project-choice { display:flex; align-items:center; gap:.5rem; width:100%; min-height:2.45rem; padding:.4rem; border:0; border-radius:.35rem; color:var(--bs-body-color); background:transparent; text-align:start; }.atlas-project-choice:hover,.atlas-project-choice.is-active { color:var(--construction-accent); background:var(--construction-surface); }.atlas-project-choice[hidden] { display:none; }.atlas-project-marker { width:.55rem; height:.55rem; flex:0 0 .55rem; border:2px solid var(--construction-accent); border-radius:50%; }.atlas-spatial-area { min-width:0; display:flex; flex-direction:column; padding:.8rem; background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--construction-border) 55%,transparent) 1px,transparent 0); background-size:24px 24px; }.atlas-spatial-toolbar { display:flex; justify-content:space-between; gap:1rem; padding:.3rem .2rem .75rem; color:var(--construction-accent); font-weight:700; }.atlas-spatial-toolbar small { color:var(--construction-muted); font-weight:400; }.atlas-region-board { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr)); align-content:start; gap:.8rem; flex:1; }.atlas-region { align-self:start; padding:.7rem; border:1px solid var(--construction-border); border-radius:.7rem; background:var(--construction-surface); box-shadow:0 .3rem 1rem #0f172a0c; }.atlas-region > header { display:flex; align-items:center; gap:.55rem; padding-block-end:.55rem; border-block-end:1px solid var(--construction-border); }.atlas-region > header h3 { margin:0; font-size:.95rem; }.atlas-region > header small { color:var(--construction-muted); }.atlas-region > header > span:last-child { margin-inline-start:auto; }.atlas-region-pin { display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; color:var(--construction-accent); background:color-mix(in srgb,var(--construction-accent) 10%,var(--construction-surface)); }.atlas-region-projects { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; padding-block-start:.6rem; }.atlas-region-projects button { display:grid; gap:.25rem; min-height:4rem; padding:.55rem; border:1px solid var(--construction-border); border-radius:.45rem; color:var(--bs-body-color); background:var(--construction-surface); text-align:start; }.atlas-region-projects button:hover,.atlas-region-projects button.is-active { border-color:var(--construction-accent); color:var(--construction-accent); }.atlas-region-projects button[hidden] { display:none; }.atlas-region-projects small { color:var(--construction-muted); }.atlas-detail-panel { padding:.85rem; margin-block-start:.8rem; border:1px solid var(--construction-border); border-inline-start:3px solid var(--construction-accent); border-radius:.6rem; background:var(--construction-surface); }.atlas-detail-panel h3 { margin:.15rem 0 .55rem; }.atlas-detail-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; margin-block-end:.75rem; }.atlas-detail-grid div { display:grid; gap:.2rem; }.atlas-detail-grid span { color:var(--construction-muted); font-size:.75rem; }.atlas-detail-grid strong { font-size:.85rem; }.atlas-empty { margin:auto; }

/* Selector previews portray each real structural layout. */
.dashboard-settings-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-block-end:1.2rem; }.dashboard-settings-header h1 { margin:.25rem 0; }.dashboard-settings-header p { margin:0; color:var(--bs-secondary-color); }.dashboard-design-card-body { display:flex; flex-direction:column; flex:1; padding:1rem; }.dashboard-design-title { display:flex; justify-content:space-between; align-items:flex-start; gap:.5rem; }.dashboard-design-title h2 { margin:0 0 .35rem; font-size:1rem; }.dashboard-design-title p { min-height:2.7em; margin:0 0 .8rem; color:var(--bs-secondary-color); font-size:.83rem; }.dashboard-design-actions { display:flex; align-items:center; gap:.5rem; margin-block-start:auto; }.dashboard-design-actions form { margin:0; }.dashboard-preview { position:relative; display:flex; flex-direction:column; gap:7px; height:132px; padding:12px; overflow:hidden; border-block-end:1px solid var(--bs-border-color); background:var(--bs-tertiary-bg); }.dashboard-preview--construction-portfolio { border-block-start:3px solid #365b73; }.dashboard-preview--site-operations { border-inline-start:4px solid #2f6b57; }.dashboard-preview--planning-studio { background-image:repeating-linear-gradient(to right,transparent 0 24%,#94a3b822 24% 25%); }.dashboard-preview--commercial-control { flex-direction:row; }.dashboard-preview--materials-flow { flex-direction:row; }.dashboard-preview--project-atlas { flex-direction:row; }.preview-filter-row,.preview-register,.preview-briefing,.preview-side-actions,.preview-planning-list,.preview-timeline,.preview-commercial-chart,.preview-commercial-side,.preview-flow-rail,.preview-flow-lanes,.preview-atlas-list,.preview-atlas-map { display:grid; gap:4px; }.preview-filter-row { grid-template-columns:1.4fr 1fr 1fr; height:20px; }.preview-register { flex:1; grid-template-rows:repeat(5,1fr); }.preview-register i,.preview-filter-row i,.preview-briefing i,.preview-side-actions i,.preview-planning-list i,.preview-timeline i,.preview-commercial-chart i,.preview-commercial-side i,.preview-flow-rail i,.preview-flow-lanes i,.preview-atlas-list i,.preview-atlas-map i { display:block; border:1px solid #cbd5e1; border-radius:3px; background:var(--bs-body-bg); }.preview-register i { border-inline-start:3px solid #94a3b8; }.preview-briefing { flex:1; grid-template-rows:1fr 1fr 1fr; }.preview-side-actions { width:30%; grid-template-rows:repeat(3,1fr); }.preview-briefing i:first-child { border-inline-start:3px solid #2f6b57; }.preview-planning-list { width:30%; grid-template-rows:repeat(4,1fr); }.preview-timeline { flex:1; grid-template-rows:repeat(3,1fr); background:repeating-linear-gradient(to right,transparent 0 24%,#94a3b822 24% 25%); }.preview-commercial-chart { flex:1.5; grid-template-rows:repeat(3,1fr); }.preview-commercial-chart i { width:75%; border-inline-start:12px solid #9b8753; }.preview-commercial-chart i:nth-child(2) { width:55%; }.preview-commercial-side { flex:1; grid-template-rows:1fr 1fr; }.preview-flow-rail { width:23%; grid-template-rows:repeat(5,1fr); }.preview-flow-lanes { flex:1; grid-template-columns:repeat(4,1fr); }.preview-atlas-list { width:35%; grid-template-rows:repeat(4,1fr); }.preview-atlas-map { flex:1; position:relative; border:1px solid #cbd5e1; border-radius:8px; background-color:#f1f5f9; background-image:radial-gradient(#cbd5e1 1px,transparent 1px); background-size:10px 10px; }.preview-atlas-map i { position:absolute; width:15px; height:15px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:#d9e9e2; }.preview-atlas-map i:nth-child(1) { inset:20% auto auto 22%; }.preview-atlas-map i:nth-child(2) { inset:48% auto auto 62%; }.preview-atlas-map i:nth-child(3) { inset:68% auto auto 38%; }
@media (max-width:1100px) { .portfolio-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }.materials-lanes { grid-template-columns:repeat(5,minmax(15rem,1fr)); }.atlas-layout { grid-template-columns:minmax(15rem,.7fr) minmax(0,1.4fr); } }
@media (max-width:800px) { .construction-header,.dashboard-settings-header { align-items:flex-start; flex-direction:column; }.site-operations-grid,.commercial-split { grid-template-columns:1fr; }.planning-workspace { grid-template-columns:1fr; }.planning-project-list { display:none; border:0; border-block-end:1px solid var(--construction-border); }.planning-project-list--mobile-visible { display:block; }.planning-list-toggle { display:inline-flex; margin-block-start:.6rem; padding:.6rem .8rem; border:1px solid var(--construction-border); border-radius:.45rem; color:var(--bs-body-color); background:var(--construction-surface); }.atlas-layout { grid-template-columns:1fr; }.atlas-directory { max-height:24rem; border:0; border-block-end:1px solid var(--construction-border); }.materials-flow-notes { flex-direction:column; } }
@media (max-width:600px) { .construction-dashboard { padding-inline:.75rem!important; }.construction-header-actions { width:100%; }.construction-header-actions .btn { flex:1; }.portfolio-summary { grid-template-columns:1fr 1fr; }.portfolio-summary > div:last-child { grid-column:1/-1; border-block-start:1px solid var(--construction-border); }.portfolio-toolbar,.planning-toolbar,.commercial-heading,.materials-flow-heading,.atlas-heading { align-items:stretch; flex-direction:column; }.portfolio-search { width:100%; }.portfolio-filters { grid-template-columns:1fr 1fr; }.portfolio-filters label:first-child { grid-column:1/-1; }.site-briefing-bar { grid-template-columns:1fr 1fr; }.site-briefing-tag { grid-column:1/-1; justify-content:center; }.planning-controls { flex-wrap:wrap; }.planning-controls label { flex:1; }.planning-controls select { width:100%; min-width:0; }.planning-date-nav { justify-content:space-between; width:100%; }.planning-support-grid { grid-template-columns:1fr; }.commercial-bar-row { grid-template-columns:minmax(5rem,.8fr) minmax(3rem,.8fr) minmax(6rem,1fr); gap:.4rem; font-size:.75rem; }.commercial-exceptions { order:-1; }.materials-process-rail { display:none; }.materials-lanes { display:grid; grid-template-columns:1fr; overflow:visible; }.materials-lane { width:100%; }.materials-record-list { max-height:20rem; }.atlas-region-projects { grid-template-columns:1fr 1fr; }.atlas-detail-grid { grid-template-columns:1fr 1fr; }.project-detail-dialog dl { grid-template-columns:1fr; gap:.15rem; }.project-detail-dialog dd { margin-block-end:.4rem; }.dashboard-settings-header .btn { width:100%; } }
@media (prefers-reduced-motion:reduce) { .construction-dashboard *, .dashboard-settings * { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
[data-bs-theme="dark"] .construction-dashboard,.dark-mode .construction-dashboard,body.dark .construction-dashboard,.theme-dark .construction-dashboard { color:var(--bs-body-color); }
[data-bs-theme="dark"] .atlas-spatial-area { background-color:#17212d; }
[data-bs-theme="dark"] .preview-atlas-map { background-color:#263548; }
