@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--ink: #f2ead0;--ink-soft: #b8aa76;--surface: #151311;--bg-1: #070707;--bg-2: #11100e;--bg-3: #2a2314;--accent: #c8b36a;--accent-soft: #2a2415;--line: #3a321f;--good: #6abf95;--warn: #d89d3f;--radius: 18px;--shadow: 0 12px 40px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Space Grotesk,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(1200px 680px at 0% 0%,#3a311b 0%,transparent 55%),radial-gradient(1200px 680px at 100% 100%,#18140d 0%,transparent 50%),var(--bg-1)}.login-bg{min-height:100vh;display:grid;place-items:center;padding:28px}.login-wrap{width:min(520px,100%)}.login-card{background:#12100de6;border:1px solid rgba(200,179,106,.3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:30px;padding:28px;animation:rise .45s ease-out}.login-card h1{margin:0 0 8px;font-size:2rem;letter-spacing:-.02em;color:var(--accent)}.brand h1{margin:0;font-size:1.45rem;letter-spacing:-.02em;color:var(--accent)}.login-card>p{margin:0 0 14px;color:var(--ink-soft)}.login-card>p:last-of-type{margin-bottom:18px}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:10px}.brand-mark{width:50px;height:50px;object-fit:contain}.login-brand-mark{width:58px;height:58px}.login-form label{display:block;margin-bottom:0;font-size:.9rem;color:var(--ink-soft)}.login-form{display:grid;gap:12px}.login-form input:not([type=checkbox]):not([type=radio]),.login-form textarea,.login-form select,.grid-form input:not([type=checkbox]):not([type=radio]),.grid-form textarea,.grid-form select,.panel input:not([type=checkbox]):not([type=radio]),.panel textarea,.panel select{width:100%;margin-top:6px;border:1px solid var(--line);background:#0a0a0abf;color:var(--ink);border-radius:12px;padding:10px 12px;font-family:Space Grotesk,sans-serif;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:#8a7c50}.login-form input:not([type=checkbox]):not([type=radio]):focus-visible,.login-form textarea:focus-visible,.login-form select:focus-visible,.grid-form input:not([type=checkbox]):not([type=radio]):focus-visible,.grid-form textarea:focus-visible,.grid-form select:focus-visible,.panel input:not([type=checkbox]):not([type=radio]):focus-visible,.panel textarea:focus-visible,.panel select:focus-visible{outline:2px solid rgba(200,179,106,.6);outline-offset:2px;border-color:#c8b36a8c;box-shadow:0 0 0 3px #c8b36a29}input[type=checkbox],input[type=radio]{width:18px;height:18px;margin:0;accent-color:var(--accent)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid rgba(200,179,106,.6);outline-offset:2px}.login-form p.muted{margin:0}.field-with-action{position:relative;margin-top:6px}.field-with-action input{margin-top:0;padding-right:84px}.field-action{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:1px solid rgba(200,179,106,.35);background:#100e0ce6;color:var(--ink);border-radius:10px;padding:6px 10px;min-height:32px;font-family:IBM Plex Mono,monospace;font-size:.75rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.field-action:hover{background:#c8b36a14;border-color:#c8b36a8c}.field-action:focus-visible{outline:2px solid rgba(200,179,106,.65);outline-offset:2px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{border-right:1px solid rgba(200,179,106,.25);background:#0b0a09d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:22px 16px;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sidebar-toggle{display:none;white-space:nowrap}.brand{display:flex;align-items:center;gap:12px;margin:0}.brand-text{display:grid;gap:6px}.brand p{margin:0;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:.78rem}.nav-list{display:grid;gap:8px}.nav-item{text-decoration:none;color:var(--ink);padding:10px 12px;border-radius:10px;border:1px solid rgba(200,179,106,.2);transition:all .2s ease}.nav-item:hover{background:#c8b36a14;border-color:#c8b36a73}.nav-item.active{background:var(--accent);color:#111;border-color:transparent}.content-area{padding:24px}.content-inner{width:100%;max-width:1320px;margin:0 auto;display:grid;gap:14px}.topbar{background:#100e0ce6;border:1px solid rgba(200,179,106,.25);border-radius:16px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center}.topbar-actions{display:flex;align-items:center;gap:10px}.btn-install{min-width:110px}.install-wrap{display:inline-flex}.install-stack{display:grid;gap:8px}.install-hint{margin:0;line-height:1.35}.login-form .btn-install{width:100%}.eyebrow,.meta-role,.muted{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:.78rem}.status-ok{color:var(--good);font-family:IBM Plex Mono,monospace;font-size:.8rem}.status-down{color:#9b2f12;font-family:IBM Plex Mono,monospace;font-size:.8rem}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(200,179,106,.22);background:#0a0a0a59}.status-pill:before{content:"";width:8px;height:8px;border-radius:999px;background:currentColor;box-shadow:0 0 0 3px #c8b36a1f}.page{animation:rise .35s ease-out}.page-stack{display:grid;gap:14px}.page-header h2{margin:0;font-size:1.55rem}.page-header p{margin:6px 0 0;color:var(--ink-soft)}.panel{background:#0f0d0be6;border:1px solid rgba(200,179,106,.24);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.panel h3{margin-top:0}.row-wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.kpi-card{display:block;width:100%;background:#11100e;border:1px solid var(--line);border-radius:14px;padding:14px;color:inherit;text-decoration:none;text-align:left}button.kpi-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit}.kpi-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.kpi-card-trail{display:inline-flex;align-items:center;gap:8px;color:var(--ink-soft)}.kpi-card-arrow{color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:.95rem;line-height:1;opacity:.85}.kpi-card-hint{margin-top:8px;color:var(--ink-soft);font-size:.78rem}.kpi-card.clickable{cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}.kpi-card.clickable:hover{transform:translateY(-1px);background:#11100eeb;border-color:#c8b36a8c;box-shadow:0 14px 42px #0000008c}.kpi-card.clickable:focus-visible{outline:2px solid rgba(200,179,106,.65);outline-offset:2px}.kpi-card p{margin:0;color:var(--ink-soft);font-size:.85rem}.kpi-card h3{margin:8px 0 0;font-size:1.5rem}.kpi-card.good h3{color:var(--good)}.kpi-card.warn h3{color:var(--warn)}.chart-empty{color:var(--ink-soft);padding:10px 0;font-size:.9rem}.chart-box{border:1px solid rgba(200,179,106,.22);border-radius:14px;background:#110f0c8c;padding:10px}.line-chart{width:100%;height:auto;display:block}.line-chart-grid line{stroke:#c8b36a29;stroke-width:1}.line-chart-axis text,.line-chart-xlabels text{fill:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:11px}.donut{position:relative}.donut-svg{width:100%;height:100%;display:block}.donut-track{fill:transparent;stroke:#c8b36a24}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;pointer-events:none}.donut-value{font-size:1.22rem;font-weight:700;letter-spacing:-.01em}.donut-label{margin-top:4px;color:var(--ink-soft);font-size:.8rem}.viz-split{display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:center}.legend{display:grid;gap:8px}.legend-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid rgba(200,179,106,.18);background:#100e0ca6}.legend-left{display:inline-flex;align-items:center;gap:8px}.legend-swatch{width:10px;height:10px;border-radius:999px;background:var(--swatch, var(--accent));box-shadow:0 0 0 2px #0003}.legend-count{font-family:IBM Plex Mono,monospace;font-size:.82rem;color:var(--ink-soft)}.bar-list{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(140px,1fr) 2fr auto;gap:10px;align-items:center}.bar-label{font-weight:600}.bar-track{height:11px;border-radius:999px;background:#c8b36a24;border:1px solid rgba(200,179,106,.22);overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#e6d79f,var(--accent));width:0}.bar-value{display:grid;justify-items:end;gap:2px;font-family:IBM Plex Mono,monospace;font-size:.82rem}.bar-meta{color:var(--ink-soft);font-size:.72rem}.heatmap{display:grid;gap:10px}.heatmap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.heatmap-tile{border:1px solid var(--line);border-radius:14px;padding:12px;min-height:92px;display:grid;align-content:start;gap:6px}.heatmap-label{font-weight:700;letter-spacing:-.01em}.heatmap-value{font-family:IBM Plex Mono,monospace;font-size:1.05rem}.heatmap-meta{color:var(--ink-soft);font-size:.78rem}.heatmap-legend{display:flex;align-items:center;gap:10px}.heatmap-bar{flex:1;height:10px;border-radius:999px;border:1px solid rgba(200,179,106,.22)}.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chip{background:#12100d;border:1px solid rgba(200,179,106,.28);color:var(--ink);border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.chip:hover:not(:disabled){transform:translateY(-1px);border-color:#c8b36a8c}.chip.active{background:#c8b36a24;border-color:#c8b36a99}.chip:focus-visible{outline:2px solid rgba(200,179,106,.65);outline-offset:2px}.panel-details{margin-top:12px;border-top:1px solid rgba(200,179,106,.18);padding-top:12px}.panel-details summary{cursor:pointer;color:var(--ink-soft);font-weight:700}.panel-details summary:focus-visible{outline:2px solid rgba(200,179,106,.65);outline-offset:3px;border-radius:10px}.perf-bar{height:14px;border-radius:999px;border:1px solid var(--line);background:#c8b36a29;overflow:hidden}.perf-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#e6d79f,var(--accent));width:0;transition:width .28s ease}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.calendar-dow{font-size:.75rem;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;padding:2px 4px}.calendar-cell{background:#12110ee6;border:1px solid var(--line);border-radius:14px;padding:10px;min-height:86px;display:flex;flex-direction:column;justify-content:space-between}.calendar-cell.empty{background:transparent;border:1px dashed rgba(85,96,114,.25)}.calendar-cell.present{border-color:#6abf9580;background:#6abf951f}.calendar-cell.late{border-color:#d89d3f80;background:#d89d3f24}.calendar-cell.absent{border-color:#995a3d99;background:#995a3d29}.calendar-cell.future{opacity:.55}.calendar-cell.today{box-shadow:0 0 0 3px #c8b36a47}.calendar-day{font-family:IBM Plex Mono,monospace;font-size:.85rem;color:var(--ink-soft)}.calendar-meta{display:grid;gap:4px}.calendar-status{font-weight:700}.grid-three{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.grid-form{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.mini-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px}.mini-card span{font-size:1.12rem;font-weight:700}.table{width:100%;border-collapse:collapse;min-width:0}.table-scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:12px}.table-scroll .table{min-width:900px}.table th,.table td{text-align:left;padding:10px;border-bottom:1px solid var(--line);font-size:.93rem}.announce-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.announce-card{background:#110f0ceb;border-radius:14px;border:1px solid var(--line);padding:14px;box-shadow:var(--shadow)}.announce-card h3{margin:0 0 8px}.announce-card p{margin:0 0 10px}.announce-card span{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:.75rem}.notify-list{display:grid;gap:10px}.notify-item{border-radius:12px;border:1px solid var(--line);background:#100e0cdb;padding:12px}.notify-item.unread{border-left:6px solid var(--accent)}.notify-item header{display:flex;justify-content:space-between;gap:8px}.notify-item h3{margin:0}.notify-item p{margin:8px 0 12px}.btn{border:1px solid transparent;border-radius:10px;padding:9px 14px;font-weight:600;font-family:Space Grotesk,sans-serif;cursor:pointer;transition:transform .15s ease,filter .15s ease,background .15s ease,border-color .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:focus-visible{outline:2px solid rgba(200,179,106,.65);outline-offset:2px}.btn-solid{background:var(--accent);color:#14110b}.login-form button.btn-solid{width:100%}.btn-solid:hover:not(:disabled){filter:brightness(1.06)}.btn-outline{background:#12100d;border-color:#c8b36a59;color:var(--ink)}.btn-outline:hover:not(:disabled){background:#c8b36a14;border-color:#c8b36a99}.btn.small{padding:6px 10px;font-size:.8rem}.error-box{background:var(--accent-soft);color:#ffd9ce;border:1px solid #694130;border-radius:10px;padding:10px 12px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1100px){.kpi-grid,.grid-form{grid-template-columns:1fr 1fr}}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;overflow:visible;border-right:none;border-bottom:1px solid rgba(200,179,106,.22);padding:14px 14px 10px}.sidebar-toggle{display:inline-flex}.sidebar .nav-list{display:none;margin-top:12px}.sidebar.open .nav-list{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar .brand-mark{width:44px;height:44px}.sidebar .brand-text p{display:none}.sidebar .brand h1{font-size:1.25rem}.content-area{padding:14px}}@media (max-width: 640px){.grid-two,.grid-three,.grid-form{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.row-between{align-items:flex-start;flex-direction:column}.topbar{align-items:flex-start;flex-direction:column;gap:10px}.topbar-actions{width:100%;justify-content:flex-end}.table{min-width:0}.table-scroll{overflow-x:visible;border:0;border-radius:0}.table-scroll .table{min-width:0}.table thead{display:none}.table tbody tr{display:block;margin-bottom:10px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#12100d}.table tbody td{display:block;border:0;padding:6px 4px 6px 138px;position:relative;overflow-wrap:anywhere;text-align:right}.table tbody td:before{content:attr(data-label);position:absolute;left:4px;top:6px;width:126px;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table tbody td:not([data-label]){padding-left:4px}.table tbody td:not([data-label]):before{content:"";display:none}.calendar-grid{gap:6px}.calendar-cell{padding:8px;min-height:68px;border-radius:12px}.calendar-meta .muted{display:none}.viz-split,.bar-row{grid-template-columns:1fr}.bar-value{justify-items:start}}@media (max-width: 480px){.login-card{padding:20px;border-radius:22px}.kpi-grid{grid-template-columns:1fr}}
