:root{--bg: #f6f7f9;--surface: #ffffff;--text: #18212f;--muted: #6b7280;--border: #e6e8ec;--border-strong: #d6d9df;--accent: #4f46e5;--accent-hover: #4338ca;--accent-soft: #eef2ff;--danger: #c0392b;--danger-soft: #fdecea;--ring: rgba(79, 70, 229, .25);--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;line-height:1.5;color:var(--text);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.app{min-height:100vh}header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:#ffffffd9;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border)}header h1{font-size:1rem;font-weight:650;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:.5rem;white-space:nowrap}header nav{display:flex;gap:.25rem}header nav a{text-decoration:none;color:var(--muted);font-size:.9rem;font-weight:500;padding:.35rem .75rem;border-radius:999px;transition:background .12s,color .12s}header nav a:hover{color:var(--text);background:var(--bg)}header nav a.active{color:var(--accent);background:var(--accent-soft)}header .muted{margin-left:auto;display:flex;align-items:center;gap:.5rem}header .muted a{color:var(--accent);text-decoration:none}header .muted a:hover{text-decoration:underline}main{max-width:880px;margin:0 auto;padding:2rem 1.5rem 4rem}h2{font-size:1.25rem;font-weight:650;letter-spacing:-.01em;margin:0 0 .25rem}.muted{color:var(--muted);font-size:.9rem}.center{text-align:center;margin-top:4rem}.error{color:var(--danger);font-size:.88rem;margin:.4rem 0}code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.85em;background:var(--bg);padding:.1rem .35rem;border-radius:5px}table{border-collapse:separate;border-spacing:0;width:100%;margin:1.25rem 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}th{text-align:left;padding:.6rem .9rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc;border-bottom:1px solid var(--border)}td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--border);font-size:.9rem;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .1s}tbody tr:hover{background:#fafbff}.card{background:var(--surface);padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:1rem 0}.card>strong{display:block;font-size:.95rem;margin-bottom:.5rem}.card label{display:block;margin:.75rem 0 .25rem;font-size:.82rem;font-weight:550;color:var(--text)}.settings{display:flex;flex-direction:column;gap:.25rem}input,textarea{font:inherit;font-size:.9rem;padding:.5rem .65rem;width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .12s,box-shadow .12s}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}input:disabled,textarea:disabled{background:var(--bg);color:var(--muted);cursor:not-allowed}textarea{resize:vertical;line-height:1.5}button{font:inherit;font-size:.88rem;font-weight:550;padding:.45rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s,opacity .12s}button:hover{border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-sm)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}button.danger{color:var(--danger);border-color:transparent;background:transparent;padding:.3rem .6rem}.filter-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:1rem 0 1.25rem}.filter-bar select{width:auto;padding:.4rem .6rem}.filter-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;white-space:nowrap}.filter-check input{width:auto}.filter-num{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;white-space:nowrap}.filter-num input{width:4rem;padding:.4rem .5rem}.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:720px){.dash-grid{grid-template-columns:1fr}}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem 1.1rem}.dash-card-wide{grid-column:1 / -1}.dash-card-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.metric-value{font-size:2rem;font-weight:650;letter-spacing:-.02em;margin:.35rem 0 .2rem}.dash-card-caption{font-size:.8rem}.dash-card table{margin:.75rem 0 0;box-shadow:none}.multiselect{position:relative}.multiselect>summary{list-style:none;cursor:pointer;padding:.4rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.88rem;background:var(--surface);white-space:nowrap}.multiselect>summary::-webkit-details-marker{display:none}.multiselect[open]>summary{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.multiselect-panel{position:absolute;z-index:20;margin-top:.3rem;max-height:260px;overflow:auto;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:.4rem}.multiselect-opt{display:flex;align-items:center;gap:.5rem;padding:.25rem .4rem;font-size:.88rem;border-radius:6px}.multiselect-opt:hover{background:var(--bg)}.multiselect-opt input{width:auto}.multiselect-clear{font-size:.78rem;padding:.2rem .4rem;margin-bottom:.3rem}button.danger:hover{background:var(--danger-soft);border-color:transparent;color:var(--danger)}button:disabled{opacity:.5;cursor:default;box-shadow:none}button:disabled:hover{background:var(--surface);border-color:var(--border-strong);color:var(--text)}button.primary:disabled:hover{background:var(--accent);border-color:var(--accent);color:#fff}
