:root{--avoca-blue:#0c3a78;--avoca-blue-700:#0a3061;--avoca-blue-900:#07203f;--avoca-light:#2da0d4;--avoca-light-600:#2589ba;--bg:#f3f5f9;--surface:#fff;--surface-2:#f7f9fc;--border:#e3e8f0;--border-strong:#cdd6e4;--text:#15233b;--text-muted:#5d6b82;--text-faint:#8a97ab;--danger:#c0392b;--danger-bg:#fdecea;--success:#1a9850;--warning:#d68910;--radius:12px;--radius-sm:8px;--radius-lg:16px;--shadow-sm:0 1px 2px rgba(15,35,75,.06),0 1px 3px rgba(15,35,75,.08);--shadow-md:0 4px 12px rgba(15,35,75,.08),0 2px 4px rgba(15,35,75,.06);--shadow-lg:0 12px 32px rgba(12,58,120,.16);--topbar-h:64px;--maxw:1320px;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}body,h1,h2,h3{color:var(--text)}h1,h2,h3{font-weight:650;letter-spacing:-.01em;margin:0}a{color:var(--avoca-light-600);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:22px 24px 40px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--radius-sm);font-family:inherit;font-size:14px;font-weight:600;padding:.62rem 1.15rem;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform 60ms ease;line-height:1.2;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--avoca-blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--avoca-blue-700)}.btn-accent{background:var(--avoca-light);color:#fff}.btn-accent:hover:not(:disabled){background:var(--avoca-light-600)}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--avoca-light)}.field{display:flex;flex-direction:column;gap:.4rem}.field__label{font-size:11px;font-weight:650;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.input,.select{width:100%;padding:.62rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:inherit;font-size:15px;color:var(--text);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.input:focus,.select:focus{outline:none;border-color:var(--avoca-light);box-shadow:0 0 0 3px #2da0d42e}.input[aria-invalid=true]{border-color:var(--danger)}.field__hint{font-size:12.5px;color:var(--danger)}.alert{margin:0;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:14px}.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(192,57,43,.2)}.alert-info{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:13px;font-weight:550;padding:.3rem .7rem;border-radius:999px;background:#ffffff24;color:#fff}.chip strong{font-weight:700}.admin-page{display:flex;flex-direction:column;gap:1rem}.admin-page .page-head__title{font-size:1.5rem}.admin-page .page-head__sub{margin:.3rem 0 0;color:var(--text-muted);font-size:.95rem}.admin-page .toolbar-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.admin-page .admin-state{color:var(--text-muted);font-size:.95rem;padding:.5rem 0}.admin-page .admin-empty{padding:2rem 1.5rem;text-align:center;color:var(--text-muted)}.admin-page .table-wrap{overflow-x:auto}.admin-page .data-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-page .data-table thead th{text-align:left;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.8rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap}.admin-page .data-table tbody td{padding:.8rem 1rem;border-bottom:1px solid var(--border);vertical-align:top}.admin-page .data-table tbody tr:last-child td{border-bottom:none}.admin-page .data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-page .data-table .strong{font-weight:650;color:var(--text)}.admin-page .data-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.admin-page .data-table .muted{color:var(--text-muted)}.admin-page .data-table .actions-col{width:1%;white-space:nowrap}.admin-page .btn-sm{padding:.35rem .7rem;font-size:12.5px}.admin-page .section-head{font-size:1.05rem;font-weight:650;margin:.4rem 0 0}
