:root{--brand-50:#eef4ff;--brand-100:#dbe7fe;--brand-200:#bfd5fd;--brand-400:#4f8ff0;--brand-500:#2b74e3;--brand-600:#1459c7;--brand-700:#0f469d;--brand-900:#0b2a5e;--navy-900:#071a33;--navy-800:#0b2545;--navy-700:#123059;--navy-300:#8fa7c4;--ink:#0f1f33;--ink-soft:#3d5673;--muted:#6b7f99;--border:#e2e8f2;--border-strong:#cbd6e6;--surface:#fff;--surface-alt:#f7f9fd;--canvas:#f2f6fc;--success:#0a7f55;--success-soft:#e6f6ef;--danger:#c62f37;--danger-soft:#fdecec;--warning:#9a6207;--warning-soft:#fdf3e2;--info-soft:var(--brand-50);--radius-sm:8px;--radius:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #0b25450f, 0 1px 3px #0b25450a;--shadow:0 6px 20px #0b254514;--shadow-lg:0 24px 60px #071a3338;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}a{color:var(--brand-600)}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{grid-template-columns:252px 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, var(--navy-800), var(--navy-900));color:#cfdcee;z-index:30;flex-direction:column;width:252px;padding:20px 14px;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #ffffff14;padding:0 0 14px}.brand-row{align-items:center;gap:10px;display:flex}.brand-logo{object-fit:contain;width:auto;max-width:100%;height:46px;margin-left:-4px;display:block}.brand-logo.large{height:64px;margin-left:-6px}.brand-tagline{color:var(--navy-300);margin-top:2px;padding-left:2px;font-size:11.5px;display:block}.nav-group+.nav-group{margin-top:6px}.nav-label{letter-spacing:.14em;color:#6f88a8;margin:18px 10px 6px;font-size:10px;font-weight:800}.nav-item{color:#b7c8dd;border-radius:var(--radius-sm);width:100%;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:11px;margin:2px 0;padding:10px 12px;font-size:13.5px;transition:background .15s,color .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{background:var(--brand-600);color:#fff;box-shadow:var(--shadow-sm);font-weight:600}.nav-item.is-soon{color:#64799a;cursor:not-allowed}.nav-item.is-soon:hover{color:#64799a;background:0 0}.nav-soon{letter-spacing:.08em;text-transform:uppercase;color:#7e93b4;background:#ffffff12;border-radius:999px;margin-left:auto;padding:3px 7px;font-size:9.5px;font-weight:700}.sidebar-footer{color:var(--navy-300);border-top:1px solid #ffffff14;align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:11.5px;display:flex}.system-dot{background:var(--brand-400);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #4f8ff033}main{flex-direction:column;grid-column:2;min-width:0;min-height:100vh;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#ffffffeb;align-items:center;gap:16px;padding:14px 32px;display:flex;position:sticky;top:0}.breadcrumbs{color:var(--muted);font-size:13px}.breadcrumbs strong{color:var(--ink)}.breadcrumbs span{color:var(--border-strong);margin:0 6px}.user-menu{color:var(--ink-soft);align-items:center;gap:10px;margin-left:auto;display:flex}.user-menu strong{color:var(--ink);font-size:13.5px;display:block}.user-menu small{color:var(--muted);letter-spacing:.04em;font-size:11px;display:block}.content{flex:1;padding:28px 32px 48px}.icon-button{color:var(--ink-soft);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;place-items:center;padding:6px;display:grid}.icon-button:hover{background:var(--brand-50);color:var(--brand-700)}.menu-button,.close-menu,.backdrop{display:none}.logout{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:var(--radius-sm);align-self:flex-start;align-items:center;gap:8px;margin:0 32px 28px;padding:9px 16px;font-size:13.5px;display:flex}.logout:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.page-heading{align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.page-heading>div{flex:1}.eyebrow{letter-spacing:.14em;color:var(--brand-600);margin:0 0 6px;font-size:10.5px;font-weight:800}.page-heading h1{letter-spacing:-.02em;margin:0 0 4px;font-size:26px}.page-heading p{color:var(--muted);margin:0;font-size:13.5px}.primary,.secondary,.ghost,.danger{border-radius:var(--radius-sm);white-space:nowrap;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 18px;font-size:13.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.primary{background:var(--brand-600);color:#fff;border:1px solid var(--brand-600);box-shadow:var(--shadow-sm)}.primary:hover:not(:disabled){background:var(--brand-700);border-color:var(--brand-700)}.primary:disabled{background:var(--brand-200);border-color:var(--brand-200);color:#fff;cursor:not-allowed}.primary.is-danger{background:var(--danger);border-color:var(--danger)}.primary.is-danger:hover:not(:disabled){background:#a72a31;border-color:#a72a31}.primary.is-danger:disabled{background:#e6a9ad;border-color:#e6a9ad}.secondary{background:var(--surface);color:var(--ink-soft);border:1px solid var(--border-strong)}.secondary:hover{border-color:var(--brand-400);color:var(--brand-700);background:var(--brand-50)}.ghost{color:var(--brand-700);background:0 0;border:1px solid #0000;height:34px;padding:0 10px;font-size:13px}.ghost:hover{background:var(--brand-50)}.danger{background:var(--surface);color:var(--danger);border:1px solid #f0c7c9}.danger:hover{background:var(--danger-soft);border-color:var(--danger)}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-soft);border-radius:var(--radius-sm);align-items:center;gap:6px;height:34px;padding:0 12px;font-size:12.5px;font-weight:500;display:inline-flex}.actions button:hover{border-color:var(--brand-400);color:var(--brand-700);background:var(--brand-50)}.actions button.is-danger:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.actions button:disabled{opacity:.55;cursor:not-allowed}label{color:var(--ink-soft);font-size:12.5px;font-weight:600;display:block}label>input,label>select{margin-top:6px}input,select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;height:42px;color:var(--ink);padding:0 12px;font-weight:400;transition:border-color .15s,box-shadow .15s}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 18px,calc(100% - 13px) 18px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}input:hover,select:hover{border-color:var(--brand-400)}input:focus,select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100);outline:none}input::placeholder{color:#9bacc4}input[readonly]{background:var(--surface-alt);color:var(--ink-soft)}input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.field-error{color:var(--danger);margin:6px 0 0;font-size:12.5px;font-weight:500}.password-field{position:relative}.password-field input{padding-right:44px}.password-field button{width:34px;height:34px;color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:0;place-items:center;display:grid;position:absolute;bottom:4px;right:4px}.password-field button:hover{color:var(--brand-700);background:var(--brand-50)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:20px}.panel h2{margin:0 0 12px;font-size:15px}.panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-title h2{margin:0}.panel-title small{color:var(--muted);font-size:12px}.table-panel{padding:8px 20px 12px}.admin-form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:12px;display:grid}.admin-form .primary{height:42px}.inline-form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.inline-form label{flex:1;min-width:220px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.metric-card p{color:var(--muted);margin:12px 0 2px;font-size:12.5px}.metric-card strong{letter-spacing:-.02em;font-size:28px}.metric-icon{width:38px;height:38px;color:var(--brand-700);background:var(--brand-50);border-radius:11px;place-items:center;display:grid}.metric-icon svg{width:19px;height:19px}.metric-icon.tone-1{color:var(--brand-600);background:var(--brand-100)}.metric-icon.tone-2{color:var(--success);background:var(--success-soft)}.metric-icon.tone-3{color:var(--warning);background:var(--warning-soft)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(max(212px,25% - 12px),1fr));align-items:stretch}.kpi-grid .metric-card{text-align:left;flex-direction:column;align-items:flex-start;gap:3px;display:flex}.kpi-grid .metric-card p{margin:0}.kpi-grid .metric-card strong{font-size:25px;line-height:1.2}.metric-card.is-link{cursor:pointer;font:inherit;width:100%;transition:border-color .15s,box-shadow .15s}.metric-card.is-link:hover{border-color:var(--brand-200);box-shadow:var(--shadow-sm)}.metric-card.is-link:after{content:"ver clientes →";color:var(--brand-600);margin-top:6px;font-size:11px;font-weight:600;display:block}.kpi-detail{color:var(--ink-soft);font-size:12px;display:block}.kpi-base{color:var(--muted);margin-top:auto;padding-top:6px;font-size:11px;display:block}.delta{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:12px;font-weight:600;display:flex}.delta span{color:var(--muted);font-size:11px;font-weight:400}.delta.is-up{color:var(--success)}.delta.is-down{color:var(--danger)}.delta.is-flat{color:var(--muted);font-weight:400}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.filter-bar label{color:var(--ink-soft);gap:5px;min-width:164px;font-size:12px;display:grid}.filter-bar .field-error{width:100%;margin:0}.filter-stamp{width:100%;color:var(--ink-soft);margin:0;font-size:12px}.filter-stamp em{color:var(--warning);font-style:normal;font-weight:600}.filter-stamp span{color:var(--muted);margin-top:2px;font-size:11px;display:block}.chart-panel{margin-bottom:20px}.chart-head{align-items:flex-start;gap:16px;display:flex}.chart-head h2{margin:0}.chart-sub{color:var(--muted);margin:4px 0 0;font-size:12.5px}.chart-actions{flex:none;gap:10px;margin-left:auto;display:flex}.chart-link{font:inherit;color:var(--brand-600);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.chart-link:hover{color:var(--brand-700);text-decoration:underline}.chart-legend{color:var(--ink-soft);flex-wrap:wrap;gap:16px;margin:12px 0 4px;font-size:12px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend i,.donut-legend i{border-radius:3px;flex:none;width:10px;height:10px}.chart-note{color:var(--muted);margin:12px 0 0;font-size:12px}.chart-empty{color:var(--muted);text-align:center;margin:24px 0;font-size:13px}.chart-area{margin-top:12px;position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-svg .chart-axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px}.chart-svg .chart-axis.strong{fill:var(--ink-soft);font-weight:700}.chart-svg .is-link{cursor:pointer}.chart-tip{z-index:5;pointer-events:none;background:var(--navy-900);color:#fff;border-radius:var(--radius-sm);min-width:132px;box-shadow:var(--shadow-lg);padding:8px 11px;font-size:11.5px;position:absolute;bottom:100%;transform:translate(-50%,-6px)}.chart-tip strong{text-transform:capitalize;margin-bottom:4px;display:block}.chart-tip span{color:#c6d6ea;align-items:center;gap:6px;display:flex}.chart-tip i{border-radius:2px;flex:none;width:8px;height:8px}.chart-tip b{color:#fff;font-variant-numeric:tabular-nums;margin-left:auto}.bar-rows{gap:9px;margin-top:14px;display:grid}.bar-row{text-align:left;grid-template-columns:minmax(104px,150px) minmax(0,1fr) minmax(136px,auto);align-items:center;gap:12px;font-size:12px;display:grid}.bar-row.is-link{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:3px 0;font-size:12px}.bar-row.is-link:hover{background:var(--surface-alt)}.bar-label{color:var(--ink-soft)}.bar-track{background:var(--surface-alt);border-radius:4px;height:13px;overflow:hidden}.bar-track i{border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.bar-value{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.bar-value small{color:var(--muted);font-size:11px;display:block}.donut-wrap{flex-wrap:wrap;align-items:center;gap:32px;margin-top:16px;display:flex}.donut{flex:none;width:190px;height:190px}.donut-value{fill:var(--ink);font-size:26px;font-weight:700}.donut-label{fill:var(--muted);font-size:12px}.donut-legend{gap:11px;min-width:240px;margin:0;padding:0;list-style:none;display:grid}.donut-legend li{grid-template-columns:10px minmax(96px,auto) 1fr;align-items:center;gap:10px;font-size:12px;display:grid}.donut-legend span{color:var(--muted)}.table-scroll{margin-top:14px;overflow-x:auto}.chart-table,.data-table{border-collapse:collapse;width:100%;font-size:12.5px}.chart-table th,.data-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:0 12px 8px 0;font-size:11px;font-weight:700}.chart-table td,.data-table td{border-bottom:1px solid var(--border);color:var(--ink-soft);vertical-align:top;padding:10px 12px 10px 0}.data-table td small{color:var(--muted);font-size:11px;display:block}.chart-table th.right,.chart-table td.right,.data-table th.right,.data-table td.right{text-align:right;font-variant-numeric:tabular-nums}.tag{background:var(--surface-alt);color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.tag.is-recebido{background:var(--success-soft);color:var(--success)}.tag.is-vencido,.tag.sev-alta{background:var(--danger-soft);color:var(--danger)}.tag.is-a-vencer,.tag.sev-media{background:var(--warning-soft);color:var(--warning)}.tag.is-off,.tag.sev-baixa,.tag.sev-informativo{background:var(--surface-alt);color:var(--muted)}.drill{margin-bottom:20px}.drill-head{gap:6px;margin-bottom:4px;display:grid}.drill-head .chart-link{justify-self:start}.drill-head h2{margin:0}.drill-head p{color:var(--muted);margin:0;font-size:12.5px}.pager{color:var(--ink-soft);justify-content:center;align-items:center;gap:16px;margin-top:18px;font-size:12px;display:flex}.limits{margin:4px 0 24px}.limits ul{color:var(--muted);gap:7px;margin:10px 0 0;padding-left:18px;font-size:12px;display:grid}.kpi-analitico .metric-card.is-link:after{content:"ver analítico →"}.kpi-analitico{grid-template-columns:repeat(auto-fit,minmax(max(212px,33.3333% - 10.6667px),1fr))}.drill-table td:first-child{min-width:190px}.panel-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;display:grid}.panel-row>.panel{min-width:0}.block-title{color:var(--ink);margin:16px 0 0;font-size:13px}.facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:14px;display:grid}.fact b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:17px;display:block}.fact span{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.bullet{margin-top:16px}.bullet-track{background:var(--surface-alt);border-radius:6px;height:22px;position:relative}.bullet-bar{border-radius:0 4px 4px 0;min-width:2px;position:absolute;top:4px;bottom:4px;left:0}.bullet-mark{background:var(--ink);width:2px;position:absolute;top:-3px;bottom:-3px;transform:translate(-1px)}.bullet-mark.is-goal{width:4px;transform:translate(-2px)}.bullet-scale{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.flow-steps{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 8px;font-size:11px}.kpi-meter{width:100%;margin:2px 0}.kpi-meter .bullet{margin-top:2px}.stack-title{color:var(--ink);margin:16px 0 8px;font-size:13px}.stack-title span{color:var(--muted);font-size:12px;font-weight:400}.stack-rows{gap:8px;display:grid}.stack-row{color:var(--muted);grid-template-columns:76px minmax(0,1fr) 48px;align-items:center;gap:10px;font-size:12px;display:grid}.stack-row .segbar{height:14px}.stack-row b{text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums;font-weight:600}.share{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:4px 0 0;display:flex}.share strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px}.share span{color:var(--muted);font-size:12px}.fact.is-warn b{color:var(--warning)}.fact .delta{margin-top:4px}.segbar{background:var(--surface-alt);border-radius:6px;gap:2px;height:18px;display:flex;overflow:hidden}.segbar i{min-width:3px;height:100%;display:block}.flow{gap:6px;margin-top:12px;display:grid}.flow-row{grid-template-columns:10px minmax(0,1fr) auto 56px;align-items:center;gap:10px;font-size:12.5px;display:grid}.flow-row i{border-radius:3px;width:10px;height:10px}.flow-row .chart-link{color:var(--ink-soft);justify-self:start}.flow-row b{font-variant-numeric:tabular-nums}.flow-row span{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.insights{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.insight{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:16px;display:flex}.insight-key{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-600);font-size:10.5px;font-weight:700}.insight h3{color:var(--ink);margin:0;font-size:13.5px}.insight strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px}.insight p{color:var(--ink-soft);margin:0;font-size:12px}.insight .insight-context{color:var(--muted);font-size:11.5px}.insight .chart-link{align-self:flex-start;margin-top:auto}.data-table .sticky,.drill-table td:first-child,.drill-table th:first-child{background:var(--surface);z-index:1;position:sticky;left:0}.compare-table .group-row td{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface-alt);padding-top:8px;padding-bottom:8px;font-size:11px;font-weight:700}.compare-table .total-row td{color:var(--ink);font-weight:700}.cell-bar{background:var(--surface-alt);vertical-align:middle;border-radius:4px;width:54px;height:8px;margin-right:8px;display:inline-block;overflow:hidden}.cell-bar i{background:var(--brand-500);border-radius:0 4px 4px 0;height:100%;display:block}.filter-tags{flex-wrap:wrap;align-items:center;gap:8px;width:100%;margin:0;display:flex}.filter-tags .tag{align-items:center;gap:6px;display:inline-flex}.filter-tags .tag button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;line-height:1}.filter-bar.refine{margin:14px 0 0;padding:0}.recon{border-radius:var(--radius-sm);background:var(--success-soft);color:var(--ink-soft);flex-wrap:wrap;gap:8px 18px;margin:14px 0 0;padding:10px 12px;font-size:12.5px;display:flex}.recon b{color:var(--ink);font-variant-numeric:tabular-nums}.data-table th .sort{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.data-table th .sort:hover{color:var(--brand-600)}.row-name{align-items:flex-start;gap:6px;display:inline-flex}.row-name.is-sub{padding-left:26px}.expand{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:20px;height:20px;color:var(--ink-soft);border-radius:6px;flex:none;padding:0;font-size:11px;line-height:1}.drill-table .sub-row td,.drill-table .sub-row td:first-child{background:var(--surface-alt)}.tag.st-efetivado{background:var(--success-soft);color:var(--success)}.tag.st-inadimplente{background:var(--warning-soft);color:var(--warning)}.tag.st-nao-efetivado{background:var(--danger-soft);color:var(--danger)}.tag.st-aguardando{background:var(--brand-50);color:var(--brand-700)}.tag.st-sem-titulo,.tag.st-nenhuma{background:var(--surface-alt);color:var(--muted)}.record-list{display:grid}.record{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 4px;display:flex}.record:last-child{border-bottom:0}.record strong{font-size:14px;display:block}.record small{color:var(--muted);margin-top:3px;font-size:12.5px;display:block}.record-main{min-width:0}.status-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 20px;display:flex}.status-line strong{font-size:14px}.status-line small{color:var(--muted);font-size:12.5px}.record-tags{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.badge{letter-spacing:.01em;background:var(--surface-alt);height:24px;color:var(--ink-soft);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.is-success{background:var(--success-soft);color:var(--success);border-color:#bfe6d5}.badge.is-progress{background:var(--warning-soft);color:var(--warning);border-color:#f1ddb8}.badge.is-idle{background:var(--surface-alt);color:var(--muted)}.badge.is-blocked{background:var(--danger-soft);color:var(--danger);border-color:#f2ccce}.badge.is-info{background:var(--brand-50);color:var(--brand-700);border-color:var(--brand-100)}.badge.is-plain:before{display:none}.empty-state{text-align:center;color:var(--muted);padding:34px 12px}.empty-state span{background:var(--brand-50);width:44px;height:44px;color:var(--brand-600);border-radius:14px;place-items:center;margin:0 auto 12px;display:grid}.empty-state h2{color:var(--ink-soft);margin:0;font-size:14.5px;font-weight:600}.feedback{border-radius:var(--radius-sm);background:var(--brand-50);color:var(--brand-700);border:1px solid var(--brand-100);margin:12px 0;padding:11px 14px;font-size:13px}.feedback.error{background:var(--danger-soft);color:var(--danger);border-color:#f2ccce}.feedback.success{background:var(--success-soft);color:var(--success);border-color:#bfe6d5}.toast-stack{z-index:60;gap:10px;width:min(380px,100vw - 32px);display:grid;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand-500);box-shadow:var(--shadow);align-items:flex-start;gap:12px;padding:13px 14px;animation:.18s ease-out toast-in;display:flex}.toast.is-success{border-left-color:var(--success)}.toast.is-error{border-left-color:var(--danger)}.toast-icon{color:var(--brand-600);flex:none;place-items:center;display:grid}.toast.is-success .toast-icon{color:var(--success)}.toast.is-error .toast-icon{color:var(--danger)}.toast-body{flex:1;min-width:0}.toast-body strong{font-size:13.5px;display:block}.toast-body p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.toast button{color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;padding:2px;display:grid}.toast button:hover{color:var(--ink);background:var(--surface-alt)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-backdrop{z-index:70;background:#071a338c;place-items:center;padding:20px;animation:.15s ease-out fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:calc(100vh - 40px);padding:26px;overflow:auto}.modal-head{align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.modal-head h2{letter-spacing:-.01em;margin:0 0 4px;font-size:19px}.modal-head p{color:var(--muted);margin:0;font-size:13px}.modal-mark{background:var(--brand-50);width:42px;height:42px;color:var(--brand-600);border-radius:13px;flex:none;place-items:center;display:grid}.modal-close{color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;margin-left:auto;padding:4px;display:grid}.modal-close:hover{background:var(--surface-alt);color:var(--ink)}.modal-foot{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.secret-box{background:var(--surface-alt);border:1px dashed var(--border-strong);border-radius:var(--radius);align-items:center;gap:12px;padding:14px;display:flex}.secret-box code{word-break:break-all;color:var(--ink);flex:1;font-family:JetBrains Mono,Cascadia Mono,Consolas,monospace;font-size:12.5px}.notice{border-radius:var(--radius-sm);background:var(--warning-soft);color:#7a4f07;border:1px solid #f1ddb8;gap:10px;margin-top:16px;padding:12px 14px;font-size:12.5px;display:flex}.notice svg{flex:none;margin-top:1px}.notice.is-danger{background:var(--danger-soft);color:#8a2027;border-color:#f2ccce}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.login-page{background:var(--surface);grid-template-columns:minmax(420px,44%) 1fr;min-height:100vh;display:grid}.login-panel{flex-direction:column;justify-content:center;width:100%;max-width:640px;padding:48px clamp(32px,6vw,88px);display:flex}.login-brand{flex-direction:column;align-items:flex-start;margin-bottom:40px;display:flex}.login-brand span{color:var(--muted);font-size:13px;display:block}.login-copy h1{letter-spacing:-.02em;margin:0 0 6px;font-size:27px}.login-copy p{color:var(--muted);margin:0;font-size:14px}.login-copy .eyebrow{color:var(--brand-600)}.login-panel form{gap:18px;margin-top:28px;display:grid}.login-panel .primary{height:46px;font-size:14.5px}.login-help{color:var(--muted);margin:18px 0 0;font-size:12.5px}.login-aside{color:#fff;background:linear-gradient(135deg, var(--brand-700) 0%, var(--brand-900) 55%, var(--navy-900) 100%);flex-direction:column;justify-content:center;padding:clamp(40px,5vw,72px);display:flex;position:relative;overflow:hidden}.login-aside:after{content:"";background:radial-gradient(900px 420px at 85% 15%,#4f8ff059,#0000 65%);position:absolute;inset:0}.login-aside>*{z-index:1;position:relative}.login-aside h2{letter-spacing:-.02em;max-width:19ch;margin:0 0 14px;font-size:clamp(26px,3vw,38px);line-height:1.18}.login-aside h2 em{color:#8ec2ff;font-style:normal}.login-aside p{color:#b9d0ee;max-width:42ch;margin:0;font-size:15px}.login-art{width:min(420px,100%);margin-top:38px}.login-aside ul{gap:12px;margin:30px 0 0;padding:0;list-style:none;display:grid}.login-aside li{color:#cfe1f7;align-items:center;gap:10px;font-size:13.5px;display:flex}.login-aside li svg{color:#8ec2ff;flex:none}@media (width<=1080px){.metric-grid{grid-template-columns:repeat(2,1fr)}.panel-row{grid-template-columns:1fr;gap:0}.insights{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr}.login-aside{display:none}.login-panel{max-width:none;margin:0 auto}}@media (width<=900px){.app-shell{grid-template-columns:1fr}main{grid-column:1}.sidebar{transition:transform .2s ease-out;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-lg);transform:none}.menu-button,.close-menu{display:grid}.close-menu{color:#b7c8dd;margin-left:auto}.backdrop{z-index:25;background:#071a3373;border:0;display:block;position:fixed;inset:0}.topbar,.content{padding-left:20px;padding-right:20px}.logout{margin-left:20px}}@media (width<=720px){.brand-logo.large{height:54px}.metric-grid,.insights{grid-template-columns:1fr}.bar-row{grid-template-columns:minmax(74px,1fr) minmax(0,1fr);gap:4px 8px;font-size:11px}.bar-value{grid-column:1/-1}.filter-bar label{width:100%;min-width:0}.donut-wrap{gap:18px}.donut{width:100%;max-width:190px;margin:0 auto}.donut-legend{min-width:0}.chart-head{flex-direction:column}.chart-actions{margin-left:0}.chart-tip{min-width:110px;font-size:11px}.record,.inline-form{flex-direction:column;align-items:stretch}.record .actions{justify-content:flex-start}.page-heading{flex-direction:column}.toast-stack{width:auto;bottom:12px;left:12px;right:12px}}
