:root{color-scheme:light;--bg: #f6f1ea;--bg-deep: #f0e6db;--surface: #ffffff;--surface-muted: #f7f3ee;--ink: #2b2623;--ink-soft: #6c635d;--accent: #0f5c5c;--accent-soft: #d9edea;--gold: #b88a4b;--border: #e3d8cc;--shadow: 0 12px 30px rgba(40, 32, 28, .12);--radius: 18px}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 10%,#fff6ea 0%,transparent 40%),radial-gradient(circle at 90% 20%,#eef5f3 0%,transparent 45%),linear-gradient(160deg,var(--bg) 0%,var(--bg-deep) 100%);min-height:100vh}.app{display:grid;grid-template-columns:320px 1fr;min-height:100vh}.sidebar{background:#ffffffd1;border-right:1px solid var(--border);padding:28px 24px;display:flex;flex-direction:column;align-items:center;gap:24px;position:sticky;top:0;height:100vh;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sidebar>*{width:100%;max-width:240px;margin-left:auto;margin-right:auto}.brand{display:flex;gap:14px;align-items:center}.brand-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(140deg,var(--accent),#0b4a4a);color:#fff;display:grid;place-items:center;font-weight:700;letter-spacing:1px}.brand-title{font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.brand-sub{font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px}.filter-card{background:var(--surface);padding:18px;border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:10px;width:100%}.filter-title{font-family:Space Grotesk,sans-serif;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft)}.filter-label{font-size:12px;color:var(--ink-soft)}.filter-select{padding:8px 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface-muted);font-family:inherit;font-size:13px;width:100%;max-width:100%;min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-date{padding:8px 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface-muted);font-family:inherit;font-size:13px;width:100%;max-width:100%;min-width:0;display:block}.filter-date.is-disabled{opacity:.6}.filter-inline{display:grid;gap:8px;align-items:stretch;width:100%}.filter-inline .filter-date{width:100%;min-width:0}.filter-inline .filter-clear{width:100%}.filter-clear{padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#fff;font-weight:600;font-size:12px;cursor:pointer;white-space:nowrap}.filter-checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft)}.filter-reset{margin-top:6px;padding:10px 12px;border-radius:12px;border:none;background:var(--accent-soft);color:var(--accent);font-weight:600;cursor:pointer;width:100%;max-width:100%;display:block}.nav{display:grid;gap:6px}.nav-link{text-decoration:none;color:var(--ink);padding:10px 12px;border-radius:12px;background:transparent;transition:background .2s ease}.nav-link:hover{background:var(--surface-muted)}.presentation-toggle{padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--ink);font-weight:600;cursor:pointer;width:100%;max-width:100%;display:block}.sidebar-footnote{margin-top:auto;font-size:12px;color:var(--ink-soft)}.content{padding:36px 48px 60px;display:flex;flex-direction:column;gap:32px}.panel{background:var(--surface);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.panel-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.refresh-indicator{font-size:12px;color:var(--ink-soft);padding:8px 12px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border)}.deadline-badge{display:none;font-size:12px;color:#7a4b1e;padding:8px 12px;border-radius:999px;background:#f6e7d6;border:1px solid #e4c9aa;font-weight:600}.deadline-badge.is-visible{display:inline-flex}h1,h2{font-family:Space Grotesk,sans-serif;margin:0}h1{font-size:28px}h2{font-size:22px}.subtitle{margin:8px 0 0;color:var(--ink-soft);font-size:14px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:26px}.kpi-card{background:var(--surface-muted);border-radius:18px;padding:18px;border:1px solid var(--border);animation:fadeUp .5s ease both;cursor:pointer;transition:transform .2s ease,border .2s ease}.kpi-card:hover{transform:translateY(-2px);border-color:#d4c6b6}.kpi-card.is-active{border-color:var(--accent);background:#eef7f6}.kpi-card:nth-child(1){animation-delay:.02s}.kpi-card:nth-child(2){animation-delay:.04s}.kpi-card:nth-child(3){animation-delay:.06s}.kpi-card:nth-child(4){animation-delay:.08s}.kpi-card:nth-child(5){animation-delay:.1s}.kpi-card:nth-child(6){animation-delay:.12s}.kpi-label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft)}.kpi-value{font-family:Space Grotesk,sans-serif;font-size:28px;font-weight:700;margin:8px 0}.kpi-note{font-size:12px;color:var(--ink-soft)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.chart-card{padding:18px;border-radius:20px;border:1px solid var(--border);background:#fff}.chart-title{font-family:Space Grotesk,sans-serif;font-size:16px;margin-bottom:12px}.search input{padding:10px 12px;border-radius:12px;border:1px solid var(--border);min-width:260px;background:var(--surface-muted)}.page-size{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface-muted);font-size:12px;color:var(--ink-soft)}.page-size select{border:none;background:transparent;font-weight:600;color:var(--ink);font-family:inherit;cursor:pointer}.pagination{margin-top:14px;display:flex;align-items:center;gap:10px;justify-content:flex-end;font-size:12px;color:var(--ink-soft)}.pagination-button{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;font-weight:600;cursor:pointer}.page-indicator{padding:6px 10px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border)}.action-button{padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--ink);font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.action-button:hover{transform:translateY(-1px);box-shadow:0 6px 16px #28201c1f}.drilldown{margin-top:8px;display:none;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600}.drilldown button{border:none;background:transparent;color:inherit;cursor:pointer;font-weight:600}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:12px 10px;color:var(--ink-soft);font-weight:600;border-bottom:1px solid var(--border)}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-indicator{font-size:11px;color:var(--ink-soft);margin-left:4px}tbody td{padding:12px 10px;border-bottom:1px solid var(--border)}tbody tr:hover{background:var(--surface-muted)}tbody tr.is-selected{background:#0f5c5c14;border-left:4px solid var(--accent)}.status-pill{display:inline-flex;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600}.status-pill.is-muted{background:#f0ebe6;color:var(--ink-soft)}.deadline-pill{display:inline-flex;padding:4px 10px;border-radius:999px;background:#f0ebe6;color:var(--ink);font-size:12px;font-weight:600;white-space:nowrap}.deadline-pill.is-overdue{background:#fbe5de;color:#8a2f1b}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid var(--border)}.content{padding:28px}}.presentation-mode .filter-card,.presentation-mode .nav,.presentation-mode #packages,.presentation-mode #documents{display:none}.presentation-mode .sidebar{padding-bottom:16px}.presentation-mode .content{padding:32px 48px 60px}.presentation-mode .kpi-value{font-size:34px}@media(max-width:700px){.panel-header{flex-direction:column;align-items:flex-start}.search input{width:100%;min-width:0}}
