:root{--ink: #16232a;--ink-soft: #4c5f68;--ink-faint: #7c8e96;--paper: #f5f7f6;--surface: #ffffff;--line: #dde3e1;--accent: #0f6e5c;--accent-hover: #0b5747;--accent-soft: #e4f2ee;--warn: #9c6229;--warn-soft: #f6ead9;--danger: #b3261e;--danger-soft: #fbe7e5;--radius: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);font-size:14px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .25rem;font-weight:600;letter-spacing:-.01em}a{color:var(--accent)}.shell{display:flex;min-height:100vh}.sidenav{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.25rem}.sidenav .brand{font-weight:700;font-size:1.05rem;margin-bottom:1.25rem;color:var(--ink)}.sidenav .brand small{display:block;font-weight:400;font-size:.72rem;color:var(--ink-faint);margin-top:.15rem}.sidenav a{display:block;padding:.5rem .65rem;border-radius:var(--radius);color:var(--ink-soft);text-decoration:none;font-size:.88rem}.sidenav a:hover{background:var(--paper)}.sidenav a.active{background:var(--accent-soft);color:var(--accent-hover);font-weight:600}.sidenav .spacer{flex:1}.main{flex:1;padding:2rem 2.5rem;max-width:60rem}.page-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.5rem}.page-header p{color:var(--ink-faint);margin:.15rem 0 0;font-size:.88rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.card+.card{margin-top:1rem}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);font-weight:600;padding:.5rem .6rem;border-bottom:1px solid var(--line)}td{padding:.65rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--paper)}.btn{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:.5rem .9rem;font-size:.85rem;font-weight:500;cursor:pointer;text-decoration:none}.btn:hover{background:var(--paper)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:var(--danger-soft)}.btn-sm{padding:.3rem .6rem;font-size:.78rem}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.field label{font-size:.8rem;font-weight:500;color:var(--ink-soft)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .65rem;font-size:.88rem;font-family:var(--font);background:var(--surface);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.badge-neutral{background:var(--paper);color:var(--ink-soft);border:1px solid var(--line)}.badge-good{background:var(--accent-soft);color:var(--accent-hover)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.error-text{color:var(--danger);font-size:.82rem;margin:.5rem 0}.muted{color:var(--ink-faint)}.center-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper)}.auth-card{width:22rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:2rem}
