:root{--bg:#f3efe6;--bg-accent:#e7e0d2;--ink:#1c241c;--muted:#5c675c;--line:#c9c0b0;--panel:#faf7f1;--brand:#2f5d3a;--brand-deep:#1f3d28;--danger:#8b2e2e;--focus:#3d6b4a;--tech:#7a7468;color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%,#dfe8d8 0%,#0000 55%),linear-gradient(160deg,#f7f3ea 0%,#ebe4d6 45%,#e4ddd0 100%);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.45}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}h1,.brand{letter-spacing:-.02em;font-family:Georgia,Times New Roman,Times,serif;font-weight:700}.muted{color:var(--muted)}.error{color:var(--danger);margin:0}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.brand{color:var(--brand-deep);margin:0;font-size:1.55rem}.brand-sub{color:var(--muted);margin:.15rem 0 0;font-size:.92rem}.topbar-right{align-items:center;gap:.75rem;display:flex}.user{color:var(--muted);font-size:.95rem}.body{flex:1;grid-template-columns:220px 1fr;min-height:0;display:grid}.nav{border-right:1px solid var(--line);background:color-mix(in srgb, var(--bg-accent) 55%, transparent);flex-direction:column;gap:.2rem;padding:1rem .75rem;display:flex}.nav-link{color:var(--ink);border-radius:6px;padding:.55rem .75rem}.nav-link:hover{background:color-mix(in srgb, var(--brand) 12%, transparent)}.nav-link.active{background:var(--brand);color:#f7faf6;font-weight:600}.main{max-width:1200px;padding:1.25rem 1.5rem 2.5rem}.page-header h1{margin:0 0 .25rem;font-size:1.75rem}.page-header p{margin:0 0 1rem}.section-title{margin:1.5rem 0 .75rem;font-size:1.15rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-grid.compact{max-width:640px}.stat{border:1px solid var(--line);background:var(--panel);border-radius:4px;flex-direction:column;gap:.25rem;padding:.9rem 1rem;transition:border-color .15s,transform .15s;display:flex}.stat:hover{border-color:var(--brand);transform:translateY(-1px)}.stat-value{color:var(--brand-deep);font-size:1.55rem;font-weight:700}.stat-label{color:var(--muted);font-size:.88rem}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:.9rem;display:flex}.toolbar input,.toolbar select,.login-form input,label input,label select{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:4px;min-width:180px;padding:.5rem .65rem}.toolbar input:focus,.toolbar select:focus,.login-form input:focus{outline:2px solid color-mix(in srgb, var(--focus) 45%, transparent);border-color:var(--focus)}.inline{color:var(--muted);align-items:center;gap:.5rem;display:flex}.table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:4px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.65rem .75rem}th{background:color-mix(in srgb, var(--bg-accent) 70%, #fff);font-weight:600;position:sticky;top:0}.tech-id{color:var(--tech);word-break:break-all;margin-top:.2rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.pager{color:var(--muted);align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.btn{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:4px;padding:.45rem .85rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand-deep);color:#f7faf6;font-weight:600}.btn.ghost{background:0 0}.status-line{padding:1rem}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-form{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex-direction:column;gap:.75rem;width:min(400px,100%);padding:1.5rem;display:flex}.login-form h1{margin:0;font-size:1.4rem}.login-form label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.92rem;display:flex}@media (width<=860px){.body{grid-template-columns:1fr}.nav{border-right:none;border-bottom:1px solid var(--line);flex-flow:wrap}.main{padding:1rem}.topbar{flex-direction:column;align-items:flex-start}}
