:root{--bg:#f4f4f5;--surface:#ffffff;--border:#d4d4d8;--text:#18181b;--text-muted:#71717a;--accent:#1d4ed8;--accent-hover:#1e40af;--danger:#b91c1c;--danger-hover:#991b1b;--success:#15803d;--radius:6px;--shadow:0 1px 2px rgba(0,0,0,0.06);--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:ui-monospace,"SF Mono",Menlo,monospace}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-header{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.shell-header-inner{max-width:960px;margin:0 auto;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem}.shell-brand{font-weight:600;color:var(--text)}.shell-brand,.shell-brand:hover{text-decoration:none}.shell-nav{display:flex;align-items:center;gap:.75rem}.shell-nav a{color:var(--text-muted);text-decoration:none;padding:.35rem .5rem;border-radius:var(--radius)}.shell-nav a:hover,.shell-nav a[data-active=true]{color:var(--text);background:var(--bg);text-decoration:none}.shell-user{color:var(--text-muted);font-size:13px}.shell-main{flex:1 1;max-width:960px;width:100%;margin:0 auto;padding:1.5rem 1.25rem 2rem}.page-title{margin:0 0 .35rem;font-size:1.35rem;font-weight:600}.page-lead{margin:0 0 1.5rem;color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card+.card{margin-top:1rem}.card-title{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.stack{display:flex;flex-direction:column;gap:.75rem}.field label{display:block;margin-bottom:.35rem;font-weight:500}.field input{width:100%;padding:.55rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.field input:focus{outline:2px solid rgba(29,78,216,.25);border-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem .9rem;border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;font-weight:500}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg)}.btn-danger{background:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.error-banner{padding:.65rem .75rem;border:1px solid #fecaca;background:#fef2f2;color:var(--danger);border-radius:var(--radius)}.muted{color:var(--text-muted)}.table-wrap{overflow-x:auto}table.data-table{width:100%;border-collapse:collapse;font-size:13px}table.data-table td,table.data-table th{padding:.55rem .65rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}table.data-table th{color:var(--text-muted);font-weight:600;background:var(--bg)}table.data-table tbody tr:last-child td{border-bottom:none}.mono{font-family:var(--mono)}.status-pill{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:12px;background:var(--bg);border:1px solid var(--border);text-transform:lowercase}.search-row{display:flex;gap:.5rem;align-items:center}.search-row input{flex:1 1;padding:.55rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1.25rem}.auth-card{width:100%;max-width:380px}.auth-card h1{margin:0 0 .35rem;font-size:1.35rem}.auth-card p{margin:0 0 1.25rem;color:var(--text-muted)}.link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.link-list a{display:block;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none}.link-list a:hover{border-color:var(--accent);text-decoration:none}