
:root{
  --bg:#ffffff;--panel:#ffffff;--text:#14151E;--muted:#475467;--line:#D0D5DD;--brand:#FFBB25;--brand-dark:#20253C;--blue:#2563eb;--blue-soft:#DFE6FF;--blue-soft-hover:#edf2ff;--yellow-hover:#ffcf66;--green:#137333;--green-bg:#e8f5e9;--red:#b42318;--red-bg:#fee4e2;--shadow:0 8px 24px rgba(20,21,30,.08);
}
*{box-sizing:border-box} html{font-size:100%} body{margin:0;font:1rem/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--blue);text-underline-offset:.16em} a:hover{text-decoration-thickness:2px}
.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.75rem 1rem;border:2px solid var(--blue);z-index:10}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:20}.brand-link{display:inline-flex;align-items:center;gap:1rem;text-decoration:none;color:inherit}.brand-logo{height:2rem;width:auto;display:block}.brand-text{font-weight:800;font-size:1.1rem;color:var(--brand-dark)}.topnav{list-style:none;display:flex;gap:1rem;margin:0;padding:0;flex-wrap:wrap}.topnav a{color:var(--brand-dark);text-decoration:none;padding:.4rem .25rem;border-radius:.4rem}.topnav a[aria-current=page]{font-weight:700;text-decoration:underline;text-underline-offset:.22em}
.container{max-width:1180px;margin:0 auto;padding:1.25rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1.25rem;box-shadow:var(--shadow)}
.stack-xl>*+*{margin-top:1.5rem}.stack-lg>*+*{margin-top:1rem}.stack-md>*+*{margin-top:.75rem}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(100%,32rem);background:#fff;border:1px solid var(--line);padding:1.5rem;border-radius:1rem;box-shadow:var(--shadow)}
.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-weight:600}.field input,.field select,.field textarea{border:1px solid #98A2B3;border-radius:.5rem;padding:.78rem .9rem;font:inherit;background:#fff;color:var(--text)}.field input:focus,.field select:focus,.field textarea:focus,.btn:focus,.tab:focus,.period-btn:focus,.btn-link:focus{outline:3px solid var(--blue);outline-offset:2px}
.readonly .static-field{padding:.8rem .9rem;border:1px solid var(--line);border-radius:.5rem;background:#F8FAFC}.checkbox-field{justify-content:flex-end}.checkbox-field label{font-weight:500}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.7rem 1rem;border-radius:.5rem;border:1px solid transparent;background:#fff;color:var(--text);text-decoration:none;font-weight:700;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.btn:hover{filter:none}.btn[disabled],.btn.is-disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--brand);color:var(--text);border-color:var(--brand)}.btn--primary:hover{background:var(--yellow-hover);border-color:var(--yellow-hover)}.btn--secondary{background:var(--blue-soft);color:var(--text);border-color:var(--blue-soft)}.btn--secondary:hover{background:var(--blue-soft-hover);border-color:var(--blue-soft-hover)}.btn--text{background:transparent;color:var(--blue);border-color:transparent;padding:.5rem .25rem;justify-content:flex-start}.btn--text:hover{background:#EFF6FF}.btn--danger{border-color:#b42318;color:#fff;background:#b42318}.btn--danger:hover{background:#cf3b2d;border-color:#cf3b2d}
.alert{padding:1rem 1.125rem;border-radius:1rem;border:1px solid}.alert--ok{background:var(--green-bg);color:var(--green);border-color:#b7dfbf}.alert--error{background:var(--red-bg);color:var(--red);border-color:#f3b3ae}
.grid{display:grid;gap:1rem}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:2fr 2fr;gap:1rem}.hero-card{grid-column:1/-1}
.flex-row{display:flex}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.align-center{align-items:center}.gap-md{gap:1rem}.gap-lg{gap:1.5rem}
.tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tab{padding:.65rem .9rem;border-radius:.5rem;border:1px solid var(--line);background:#fff;text-decoration:none;color:inherit}.tab--active{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}
.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.85rem .7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{font-size:.95rem}.data-table code{white-space:pre-wrap;word-break:break-word}.data-table caption{padding-bottom:.75rem;text-align:left;font-weight:700}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(10rem,1fr));gap:1rem;margin:0}.stats-grid dt{color:var(--muted)}.stats-grid dd{font-size:1.5rem;font-weight:800;margin:.2rem 0 0}
.donut-wrap{text-align:center}.donut{--score:0;width:10rem;height:10rem;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand-dark) calc(var(--score)*1%), #ECEFF3 0);position:relative;flex:0 0 auto}.donut::before{content:"";position:absolute;inset:1rem;background:#fff;border-radius:50%}.donut span{position:relative;font-weight:800;font-size:1.6rem}.donut-label{margin-top:.75rem;font-weight:700}
.badge{display:inline-flex;padding:.3rem .65rem;border-radius:999px;border:1px solid var(--line);font-size:.9rem;font-weight:700}.badge--ok{background:var(--green-bg);color:var(--green);border-color:#b7dfbf}.badge--fail{background:var(--red-bg);color:var(--red);border-color:#f3b3ae}
.muted{color:var(--muted)} .simple-list{margin:0;padding-left:1.2rem}.simple-list li+li{margin-top:.35rem}
.period-links{display:flex;gap:.5rem;flex-wrap:wrap}.period-btn{border:1px solid var(--line);background:#fff;border-radius:.5rem;padding:.55rem .8rem;cursor:pointer}.period-btn.is-active{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}
#trendChart{width:100%;min-height:18rem;height:18rem}.desc-html h4{margin:.75rem 0 .25rem}.desc-html p,.desc-html li{max-width:75ch}.empty-state{text-align:center;padding:2rem}.breadcrumb{font-size:.95rem}
.table-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.btn-link{background:none;border:none;padding:0;color:var(--blue);text-decoration:underline;cursor:pointer;font:inherit}.table-scroll{overflow:auto}.section-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.error-meta{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.card-lite{border:1px solid var(--line);border-radius:.75rem;padding:1rem;background:#fff}
@media (max-width: 860px){.two-col,.dashboard-grid,.error-meta{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:.75rem;flex-direction:column}.brand-logo{height:1.7rem}}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important}}
