:root{--bg:#eef2e3;--surface:#f7f5ef;--surface-strong:#fffdf8;--ink:#1f2a2a;--ink-soft:#5c6665;--line:#d6dbcf;--brand:#0d6b53;--brand-deep:#084535;--warn:#b44f2b;--ring:#0d6b5333;--shadow:0 14px 34px #132e271a}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{color:var(--ink);background:radial-gradient(circle at 10% 10%, #f0c47852 0, transparent 34%), radial-gradient(circle at 88% 18%, #74c5a53d 0, transparent 30%), var(--bg);font-family:IBM Plex Sans,Manrope,Segoe UI,sans-serif}a{color:inherit}.center-shell{min-height:100vh;color:var(--ink-soft);place-items:center;display:grid}.login-screen{place-items:center;min-height:100vh;padding:20px;display:grid;position:relative}.grain-layer{opacity:.5;pointer-events:none;background-image:radial-gradient(#20272712 .45px,#0000 .45px);background-size:9px 9px;position:absolute;inset:0}.login-card{background:var(--surface-strong);border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);z-index:2;border-radius:18px;gap:16px;padding:30px;display:grid;position:relative}.label-pill{color:var(--brand-deep);letter-spacing:.1em;text-transform:uppercase;background:#0d6b531f;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-block}.login-card h1{margin:12px 0 10px;font-size:30px;line-height:1.1}.login-card p{color:var(--ink-soft);margin:0}.login-card label{color:var(--ink-soft);gap:6px;font-size:14px;display:grid}.login-card input,.login-card select,.topbar button{font:inherit}.login-card input,.login-card select,.form-grid input,.form-grid select,.remark-editor input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:11px 12px}.login-card input:focus,.login-card select:focus,.form-grid input:focus,.form-grid select:focus,.remark-editor input:focus,.topbar button:focus,.nav-link:focus{box-shadow:0 0 0 4px var(--ring);outline:none}.login-card button{border:1px solid var(--brand);background:linear-gradient(150deg, var(--brand) 20%, #157d61 100%);color:#fff;cursor:pointer;border-radius:12px;padding:12px 14px;font-weight:700}.login-card button:disabled{opacity:.7;cursor:not-allowed}.error-text{color:var(--warn);font-size:14px}.notice-card{border:1px solid var(--line);background:#0d6b530f;border-radius:12px;gap:8px;padding:14px;display:grid}.notice-card strong{font-size:15px}.notice-card p{color:var(--ink-soft);margin:0}.notice-card--warning{background:#b44f2b14;border-color:#b44f2b33}.inline-link-row{color:var(--ink-soft);gap:8px;margin:0;font-size:14px;display:flex}.inline-link-row a{color:var(--brand);font-weight:600;text-decoration:none}.portal-root{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f7f5efe6;padding:22px 16px}.brand h1{margin:14px 0 6px;font-size:24px}.brand p{color:var(--ink-soft);margin:0 0 18px}.brand-pill{letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--brand);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.nav-group h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:20px 8px 10px;font-size:12px}.nav-link{color:var(--ink);border-radius:10px;margin-bottom:4px;padding:9px 10px;text-decoration:none;display:block}.nav-link:hover{background:#0d6b5317}.nav-link.active{background:var(--brand);color:#fff}.content{padding:18px}.topbar{background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.topbar div{gap:2px;display:grid}.topbar span{letter-spacing:.08em;color:var(--ink-soft);font-size:12px}.topbar button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:9px 12px}.page-container{margin-top:14px}.page-stack{gap:14px;display:grid}.page-header h2{margin:0;font-size:27px}.page-header p{color:var(--ink-soft);margin:8px 0 0}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.panel{background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:16px}.stat-card span{color:var(--ink-soft);font-size:13px}.stat-card strong{margin-top:8px;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:32px;line-height:1;display:block}.usage-strip{gap:8px;margin-top:14px;display:grid}.usage-row{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:70px 1fr auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.usage-row span{color:var(--ink-soft);font-size:14px}.usage-row strong{font-family:IBM Plex Mono,JetBrains Mono,monospace}.stat-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.placeholder{align-content:start;gap:10px;min-height:200px;display:grid}.placeholder h2{margin:0}.placeholder p{color:var(--ink-soft);margin:0}.placeholder-tag{width:fit-content;color:var(--brand-deep);text-transform:uppercase;letter-spacing:.08em;background:#0d6b531a;border:1px solid #0d6b5333;border-radius:999px;padding:6px 12px;font-size:12px;display:inline-flex}.form-panel{gap:18px;display:grid}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;display:grid}.admin-users-filters{margin-bottom:16px}.form-grid label{color:var(--ink-soft);gap:6px;font-size:14px;display:grid}.form-grid button,.button-secondary{border:1px solid var(--brand);background:linear-gradient(150deg, var(--brand) 20%, #157d61 100%);color:#fff;font:inherit;cursor:pointer;border-radius:10px;padding:11px 14px}.button-secondary{color:var(--ink);border-color:var(--line);background:#fff}.button-secondary:disabled{opacity:.65;cursor:not-allowed}.table-list{gap:10px;display:grid}.table-row{border:1px solid var(--line);background:var(--surface);border-radius:12px;grid-template-columns:minmax(220px,1.3fr) repeat(4,minmax(0,1fr));align-items:center;gap:12px;padding:14px;display:grid}.table-row strong{display:block}.table-row p{color:var(--ink-soft);margin-top:4px;font-size:13px}.table-row--admin-users{grid-template-columns:minmax(220px,1fr) minmax(220px,1.15fr) minmax(220px,1fr) repeat(3,minmax(0,.7fr))}.remark-editor{gap:8px;display:grid}.tag-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.tag-chip{color:var(--brand-deep);background:#0d6b531a;border:1px solid #0d6b532e;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;display:inline-flex}.table-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.secret-banner{background:#0d6b5314;border:1px dashed #0d6b5359;border-radius:12px;gap:8px;padding:14px;display:grid}.secret-banner code{overflow-wrap:anywhere;white-space:pre-wrap;background:#ffffffbf;border-radius:10px;padding:10px 12px}.deadline-chip{width:fit-content;color:var(--ink-soft);background:#5c66651a;border:1px solid #5c666529;border-radius:999px;margin-top:6px;padding:4px 8px;font-size:12px;display:inline-flex}.deadline-chip--safe{color:var(--brand-deep);background:#0d6b531a;border-color:#0d6b532e}.deadline-chip--warning{color:#8a4b25;background:#b44f2b1f;border-color:#b44f2b3d}.deadline-chip--danger{color:#8d2d23;background:#b44f2b2e;border-color:#b44f2b4d}.guide-grid,.guide-stack{gap:12px;display:grid}.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:10px;padding:14px;display:grid}.guide-card strong{font-size:15px}.guide-card p{color:var(--ink-soft);margin:0}.guide-card code{overflow-wrap:anywhere;white-space:pre-wrap;color:var(--ink);background:#ffffffd1;border:1px solid #11182714;border-radius:10px;padding:10px 12px;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:13px;line-height:1.5;display:block}.guide-card p code,.guide-list code{border-radius:6px;padding:2px 6px;display:inline}.guide-list{color:var(--ink-soft);margin:0;padding-left:18px}.guide-list li+li{margin-top:6px}.inline-metric{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inline-metric span,.status-note{color:var(--ink-soft)}@media (width<=1024px){.portal-root{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.guide-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid--three,.form-grid,.table-row{grid-template-columns:1fr}}@media (width<=680px){.content{padding:12px}.stat-grid{grid-template-columns:1fr}.usage-row{grid-template-columns:1fr;gap:4px}}
