:root{--paper:#f4f6f9;--surface:#ffffff;--surface-2:#eef1f6;--surface-3:#e5e9f0;--ink:#1b2233;--ink-2:#5a6478;--ink-3:#8a93a6;--line:#e3e7ef;--line-strong:#d3d9e4;--primary:#d9581f;--primary-ink:#b3410f;--primary-soft:#fceee6;--primary-line:#f3d3c1;--nav-bg:#151d33;--nav-bg-2:#1d2742;--nav-fg:#a7b0c6;--nav-fg-active:#ffffff;--nav-active-bg:rgba(255,255,255,0.07);--nav-line:rgba(255,255,255,0.08);--ok:#1f9d63;--ok-soft:#e2f4ec;--warn:#c9861d;--warn-soft:#fbf0dc;--crit:#cf4436;--crit-soft:#fbe7e4;--info:#2f6bd0;--info-soft:#e6eefb;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(19,26,45,0.06);--shadow:0 1px 3px rgba(19,26,45,0.07),0 6px 18px rgba(19,26,45,0.06);--shadow-lg:0 12px 34px rgba(19,26,45,0.12);--font:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--measure:68ch;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f1420;--surface:#161d2c;--surface-2:#1d2536;--surface-3:#253046;--ink:#e7eaf1;--ink-2:#9aa3b6;--ink-3:#6b7488;--line:#26303f;--line-strong:#313c4e;--primary:#e8703d;--primary-ink:#f0895f;--primary-soft:#2a1a12;--primary-line:#45291b;--nav-bg:#10151f;--nav-bg-2:#161d2c;--ok:#43b881;--ok-soft:#14251d;--warn:#d6a34e;--warn-soft:#2a2313;--crit:#df6a5d;--crit-soft:#2a1917;--info:#6a9bea;--info-soft:#141d2c;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow:0 1px 3px rgba(0,0,0,0.4),0 8px 22px rgba(0,0,0,0.35);--shadow-lg:0 16px 40px rgba(0,0,0,0.5);color-scheme:dark}}:root[data-theme=dark]{--paper:#0f1420;--surface:#161d2c;--surface-2:#1d2536;--surface-3:#253046;--ink:#e7eaf1;--ink-2:#9aa3b6;--ink-3:#6b7488;--line:#26303f;--line-strong:#313c4e;--primary:#e8703d;--primary-ink:#f0895f;--primary-soft:#2a1a12;--primary-line:#45291b;--nav-bg:#10151f;--nav-bg-2:#161d2c;--ok:#43b881;--ok-soft:#14251d;--warn:#d6a34e;--warn-soft:#2a2313;--crit:#df6a5d;--crit-soft:#2a1917;--info:#6a9bea;--info-soft:#141d2c;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow:0 1px 3px rgba(0,0,0,.4),0 8px 22px rgba(0,0,0,.35);--shadow-lg:0 16px 40px rgba(0,0,0,.5);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{padding:0;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:14.5px;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;letter-spacing:-.003em}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.2;letter-spacing:-.015em;color:var(--ink)}h1{font-size:1.5rem}h2{font-size:1.12rem;font-weight:700}h3{font-size:.98rem}button{cursor:pointer}button,input,select,textarea{font:inherit}table{border-collapse:collapse;width:100%}p{margin:0}.mono{font-family:var(--font-mono)}.muted{color:var(--ink-2)}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.eyebrow{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3)}.shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.topbar{display:none}.sidebar{background:var(--nav-bg);color:var(--nav-fg);padding:1.1rem .85rem 1rem;display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:.55rem;padding:.3rem .6rem 1.2rem;font-weight:800;font-size:1.05rem;letter-spacing:-.02em;color:#fff}.sidebar .brand .mark{width:26px;height:26px;border-radius:7px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.9rem;font-weight:800;box-shadow:0 2px 8px rgba(217,88,31,.4)}.sidebar .sect{font-size:.62rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);padding:.9rem .7rem .35rem}.navlink{display:flex;align-items:center;gap:.7rem;padding:.52rem .7rem;border-radius:var(--radius-sm);color:var(--nav-fg);font-weight:600;font-size:.87rem;position:relative;transition:background .12s,color .12s}.navlink:hover{color:#e9ecf4}.navlink.active,.navlink:hover{background:var(--nav-active-bg)}.navlink.active{color:var(--nav-fg-active)}.navlink.active:before{content:"";position:absolute;left:-.85rem;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--primary)}.navlink .ic{width:18px;text-align:center;opacity:.9;font-size:.95rem}.sidebar .foot{margin-top:auto;padding:.8rem .7rem .2rem;border-top:1px solid var(--nav-line);font-size:.76rem}.sidebar .foot .who{color:#cdd3e0;font-weight:600;word-break:break-all}.sidebar .foot .logout{margin-top:.55rem;width:100%;background:rgba(255,255,255,.06);border:1px solid var(--nav-line);color:#cdd3e0;border-radius:var(--radius-sm);padding:.45rem;font-weight:600}.sidebar .foot .logout:hover{background:rgba(255,255,255,.1);color:#fff}.main{padding:1.7rem clamp(1rem,3vw,2.6rem);max-width:1240px;width:100%;min-width:0}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-head h1{font-size:1.55rem}.page-head .sub{color:var(--ink-2);font-size:.9rem;margin-top:.15rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:1.05rem 1.15rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.row{display:flex;gap:.6rem;flex-wrap:wrap}.btn,.row{align-items:center}.btn{display:inline-flex;gap:.4rem;padding:.5rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:600;font-size:.86rem;white-space:nowrap;transition:border-color .12s,background .12s,transform .05s}.btn:hover{border-color:var(--ink-3);background:var(--surface-2)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(217,88,31,.3)}.btn.primary:hover{background:var(--primary-ink);border-color:var(--primary-ink)}.btn.ghost{border-color:transparent;background:var(--surface-2)}.input,.select{padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);width:100%;transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--ink-3)}.input:focus,.select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.field{display:flex;flex-direction:column;gap:.3rem}.field label,.field>span{font-size:.78rem;font-weight:600;color:var(--ink-2)}.field textarea.input{resize:vertical;font:inherit}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));grid-gap:.9rem;gap:.9rem}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.05rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.35rem}.kpi .ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:.95rem;margin-bottom:.15rem}.kpi .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}.kpi .value{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .value.neg{color:var(--crit)}.kpi .sub{font-size:.76rem;color:var(--ink-2)}.kpi.warn{border-color:var(--warn);background:var(--warn-soft)}.kpi.warn .ic{background:var(--warn);color:#fff}.alert-list{display:flex;flex-direction:column;gap:.55rem}.alert{display:flex;align-items:center;gap:.85rem;padding:.8rem 1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:border-color .12s,transform .06s}.alert:hover{border-color:var(--line-strong);transform:translateX(2px)}.alert .sev{width:8px;height:8px;border-radius:50%;flex-shrink:0}.alert.critical .sev{background:var(--crit);box-shadow:0 0 0 4px var(--crit-soft)}.alert.warning .sev{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}.alert.info .sev{background:var(--info);box-shadow:0 0 0 4px var(--info-soft)}.alert .label{flex:1 1;font-weight:600;font-size:.9rem}.alert .amount{color:var(--ink-2);font-size:.84rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.alert .count{font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:1.6rem;text-align:center;background:var(--surface-2);border-radius:999px;padding:.1rem .5rem;font-size:.85rem}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.tbl{font-size:.87rem}.tbl th{text-align:left;padding:.7rem .9rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.055em;font-weight:700;color:var(--ink-3);background:var(--surface-2);white-space:nowrap;position:-webkit-sticky;position:sticky;top:0}.tbl td,.tbl th{border-bottom:1px solid var(--line)}.tbl td{padding:.65rem .9rem;vertical-align:top}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:var(--surface-2)}.tbl a{color:var(--primary);font-weight:600}.tbl a:hover{color:var(--primary-ink)}.tbl tfoot td{padding:.65rem .9rem;border-top:2px solid var(--line-strong);font-weight:700}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.16rem .55rem;border-radius:999px;font-size:.73rem;font-weight:700;background:var(--surface-2);color:var(--ink-2);white-space:nowrap;letter-spacing:-.005em}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.9}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.crit{background:var(--crit-soft);color:var(--crit)}.badge.primary{background:var(--primary-soft);color:var(--primary)}.badge.plain:before{display:none}.chip{font-family:var(--font-mono);font-size:.7rem;padding:.12rem .42rem;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface)}.chip,.empty{color:var(--ink-2)}.empty{padding:3.5rem 1rem;text-align:center}.info-grid{display:grid;grid-gap:.9rem;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.info-cell{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.85rem .95rem;box-shadow:var(--shadow-sm)}.info-cell .k{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700}.info-cell .v{margin-top:.3rem;font-weight:600}.section-title{font-size:1.05rem;font-weight:700;margin:1.8rem 0 .8rem;display:flex;align-items:baseline;gap:.6rem}.section-title .hint{font-size:.78rem;color:var(--ink-2);font-weight:500}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(900px 500px at 15% 0,rgba(217,88,31,.06),transparent 60%),var(--paper)}.login-card{width:100%;max-width:372px;box-shadow:var(--shadow-lg)}.kanban{display:flex;gap:.9rem;overflow-x:auto;padding-bottom:.5rem}.kanban-col{min-width:264px;flex:1 1;background:var(--surface-2);border-radius:var(--radius);padding:.7rem}.kanban-col h3{font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:.2rem .35rem .7rem;display:flex;justify-content:space-between}.kanban-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.7rem .75rem;margin-bottom:.55rem;box-shadow:var(--shadow-sm)}.kanban-card .title{font-weight:600;font-size:.85rem}.kanban-card .meta{font-size:.75rem;color:var(--ink-2);margin-top:.3rem;display:flex;justify-content:space-between}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;align-content:start}.topbar{display:flex;align-items:center;gap:.75rem;position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--nav-bg);color:#fff;padding:.65rem .95rem}.burger{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:7px;width:34px;height:34px;font-size:1.15rem;line-height:1;color:#fff}.topbar-title{font-weight:700}.brand-mini{margin-left:auto;font-weight:800;font-size:.9rem;color:#fff}.brand-mini .mark{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;background:var(--primary);font-size:.7rem;margin-right:.3rem;vertical-align:middle}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;z-index:50;transform:translateX(-100%);transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg)}.sidebar.open{transform:translateX(0)}.scrim{position:fixed;inset:0;background:rgba(10,14,22,.5);z-index:40;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{padding:1rem}.page-head{margin-bottom:1rem}.page-head h1{font-size:1.3rem}}@media (max-width:560px){.grid[style*="repeat(auto-fit"],.info-grid{grid-template-columns:1fr!important}.kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kpi .value{font-size:1.25rem}.page-head{flex-direction:column;align-items:stretch}.page-head .btn,.page-head .row{width:100%}.main>.row{flex-wrap:wrap}.main>.row .input,.main>.row .select{max-width:none!important;flex:1 1 100%}.kanban-col{min-width:80vw}}@media (max-width:400px){.kpis{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.alert,.btn,.sidebar{transition:none}}.modal-scrim{position:fixed;inset:0;z-index:60;background:rgba(10,14,22,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:clamp(1rem,6vh,4rem) 1rem;overflow-y:auto}.modal{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.15rem;border-bottom:1px solid var(--line)}.modal-head h2{font-size:1.05rem}.modal-body{padding:1.15rem;display:grid;grid-template-columns:1fr 1fr;grid-gap:.9rem;gap:.9rem}.modal-body .field textarea{resize:vertical}.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.15rem;border-top:1px solid var(--line)}@media (max-width:520px){.modal-body{grid-template-columns:1fr}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:3px}::selection{background:var(--primary-soft)}.cal{--cal-hour-h:46px;--cal-gutter:54px}.cal-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.9rem}.cal-toolbar .nav{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.cal-toolbar .nav button{border:0;background:var(--surface);padding:.45rem .7rem;cursor:pointer;color:var(--ink-2);font:inherit}.cal-toolbar .nav button:hover{background:var(--surface-2)}.cal-toolbar .nav button+button{border-left:1px solid var(--line)}.cal-toolbar .range{font-weight:700;text-transform:capitalize}.cal-toolbar .seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.cal-toolbar .seg button{border:0;background:var(--surface);padding:.45rem .8rem;cursor:pointer;font:inherit;color:var(--ink-2)}.cal-toolbar .seg button.on{background:var(--primary);color:#fff}.cal-frame{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.cal-scroll{overflow-x:auto}.cal-allday,.cal-body,.cal-daysrow{display:grid;grid-template-columns:var(--cal-gutter) repeat(var(--cal-cols,7),minmax(var(--cal-colmin,0),1fr));min-width:min-content}.cal-daysrow{border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:3;background:var(--surface)}.cal-corner{border-right:1px solid var(--line)}.cal-day-h{text-align:center;padding:.5rem .2rem;border-left:1px solid var(--line);font-size:.74rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.cal-day-h b{display:block;font-size:1.15rem;color:var(--ink);font-weight:700;margin-top:1px}.cal-day-h.today b{color:#fff;background:var(--primary);border-radius:999px;width:1.7em;height:1.7em;line-height:1.7em;margin:2px auto 0}.cal-day-h.today{color:var(--primary-ink)}.cal-allday{border-bottom:1px solid var(--line);min-height:26px}.cal-allday .lbl{border-right:1px solid var(--line);font-size:.66rem;color:var(--ink-3);text-align:right;padding:4px 6px 0 0}.cal-allday .col{border-left:1px solid var(--line);padding:3px;display:flex;flex-direction:column;gap:2px}.cal-body{max-height:68vh;overflow-y:auto;position:relative}.cal-gutter{border-right:1px solid var(--line)}.cal-gutter .h{height:var(--cal-hour-h);font-size:.68rem;color:var(--ink-3);text-align:right;padding-right:6px;transform:translateY(-6px)}.cal-col{border-left:1px solid var(--line);position:relative}.cal-col .line{height:var(--cal-hour-h);border-bottom:1px solid var(--line);box-sizing:border-box}.cal-col .line:nth-child(odd){background:color-mix(in srgb,var(--surface-2) 40%,transparent)}.cal-ev{position:absolute;border-radius:7px;padding:3px 6px;overflow:hidden;cursor:pointer;font-size:.72rem;line-height:1.25;border-left:3px solid var(--ev,var(--primary));background:color-mix(in srgb,var(--ev,var(--primary)) 14%,var(--surface));color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.06)}.cal-ev:hover{filter:brightness(.97);box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:5}.cal-ev .t{font-weight:700}.cal-ev .r{font-family:var(--font-mono);opacity:.75}.cal-allday .chip-ev,.cal-ev.mini{padding:1px 5px;font-size:.68rem}.cal-allday .chip-ev{border-radius:5px;cursor:pointer;border-left:3px solid var(--ev,var(--primary));background:color-mix(in srgb,var(--ev,var(--primary)) 15%,var(--surface));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-now{left:0;right:0;height:2px;z-index:4}.cal-now,.cal-now:before{position:absolute;background:var(--crit)}.cal-now:before{content:"";left:-4px;top:-3px;width:8px;height:8px;border-radius:50%}@media (max-width:760px){.cal{--cal-gutter:40px;--cal-hour-h:42px}.cal-frame{--cal-colmin:calc(var(--cal-maxlanes, 1) * 116px)}.cal-day-h{font-size:.62rem}.cal-day-h b{font-size:.95rem}}