@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,300;9..144,500&display=swap");.admin{--bg:#fafafa;--bg-elev:#fff;--bg-hover:#f4f4f5;--bg-mute:#f7f7f8;--border:#e4e4e7;--border-strong:#d4d4d8;--ink:#18181b;--ink-2:#27272a;--muted:#71717a;--muted-2:#a1a1aa;--accent:#18181b;--accent-fg:#fafafa;--danger:#dc2626;--danger-bg:#fef2f2;--success:#16a34a;--success-bg:#f0fdf4;--warn:#d97706;--radius:8px;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}.admin .mono{font-family:JetBrains Mono,monospace}.admin .display{font-family:Fraunces,serif}.admin .shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.admin .sidebar{border-right:1px solid var(--border);background:var(--bg-elev);padding:22px 18px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto}.admin .sidebar .brand{font-family:Fraunces,serif;font-style:italic;font-size:24px;font-weight:500;letter-spacing:-.01em;margin-bottom:4px;color:var(--ink);display:flex;align-items:baseline;gap:6px}.admin .sidebar .brand .tag{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--ink);color:var(--accent-fg);padding:2px 6px;border-radius:4px;font-style:normal;letter-spacing:.04em;font-weight:500;vertical-align:middle}.admin .sidebar .group-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);font-weight:500;margin:22px 8px 8px}.admin .sidebar a,.admin .sidebar button.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--ink-2);font-size:13px;font-weight:500;transition:background .15s,color .15s;text-align:left;width:100%}.admin .sidebar a:hover,.admin .sidebar button.nav-link:hover{background:var(--bg-hover)}.admin .sidebar a.active{background:var(--ink);color:var(--accent-fg)}.admin .sidebar a.active:hover{background:var(--ink-2)}.admin .sidebar a .icon,.admin .sidebar button .icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;opacity:.65}.admin .sidebar a.active .icon{opacity:1}.admin .sidebar .spacer{flex:1}.admin .sidebar .external{display:flex;flex-direction:column;gap:2px}.admin .sidebar .external a{font-size:12px;color:var(--muted);padding:6px 10px}.admin .sidebar .external a:hover{color:var(--ink);background:var(--bg-hover)}.admin .content{padding:0;background:var(--bg);overflow-x:hidden}.admin .topbar{position:sticky;top:0;background:var(--bg);backdrop-filter:blur(8px);z-index:10;border-bottom:1px solid var(--border);padding:14px 32px;display:flex;align-items:center;justify-content:space-between}.admin .topbar h1{font-size:16px;font-weight:600;margin:0;letter-spacing:-.005em}.admin .topbar h1 .crumb{color:var(--muted);font-weight:400;margin-right:8px}.admin .topbar h1 .crumb:after{content:"/";margin-left:8px;opacity:.4}.admin main.page{padding:32px;max-width:1100px}.admin .card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.admin .card-h{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.admin .card-h h2{font-size:15px;font-weight:600;margin:0}.admin .card-h .meta{font-size:12px;color:var(--muted)}.admin .card-body{padding:20px}.admin .btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:6px;font-size:13px;font-weight:500;border:1px solid var(--border);background:var(--bg-elev);color:var(--ink);transition:all .15s;text-decoration:none;cursor:pointer;white-space:nowrap;font-family:inherit}.admin .btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.admin .btn:disabled{opacity:.5;cursor:not-allowed}.admin .btn.primary{background:var(--ink);color:var(--accent-fg);border-color:var(--ink)}.admin .btn.primary:hover{background:var(--ink-2)}.admin .btn.danger{color:var(--danger);border-color:transparent}.admin .btn.danger:hover{background:var(--danger-bg)}.admin .btn.ghost{border:0;padding:6px 10px}.admin .btn .arr{opacity:.6}.admin .btn.sm{padding:5px 10px;font-size:12px}.admin .field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.admin .field label{font-size:12px;font-weight:500;color:var(--ink-2)}.admin .field .hint{font-size:11px;color:var(--muted)}.admin .input,.admin .select,.admin .textarea{width:100%;padding:9px 12px;font-size:13px;font-family:inherit;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--ink);transition:border-color .15s,box-shadow .15s;line-height:1.45}.admin .input:focus,.admin .select:focus,.admin .textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(0,0,0,.06)}.admin .textarea{resize:vertical;min-height:80px;line-height:1.6;font-family:Fraunces,serif;font-size:16px}.admin .input.mono{font-family:JetBrains Mono,monospace;font-size:12px}.admin .row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin .row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.admin .row-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}.admin .segmented{display:flex;gap:4px;flex-wrap:wrap}.admin .segmented button{padding:6px 12px;border-radius:6px;border:1px solid var(--border);font-size:12px;background:var(--bg-elev);font-family:inherit;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:all .15s}.admin .segmented button:hover{background:var(--bg-hover)}.admin .segmented button.active{background:var(--ink);color:var(--accent-fg);border-color:var(--ink)}.admin .hue-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}.admin .hue-warm{background:linear-gradient(160deg,#b89878,#6e4d35)}.admin .hue-ochre{background:linear-gradient(160deg,#c5a05e,#6c5226)}.admin .hue-rust{background:linear-gradient(160deg,#c97d5d,#6c3325)}.admin .hue-cream{background:linear-gradient(160deg,#d8c3a5,#8e7853)}.admin .hue-olive{background:linear-gradient(160deg,#6c7e5b,#2f3d2a)}.admin .hue-rose{background:linear-gradient(160deg,#c98a8a,#6c3a3a)}.admin .table{width:100%;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);border-collapse:separate;border-spacing:0;overflow:hidden}.admin .table thead th{background:var(--bg-mute);border-bottom:1px solid var(--border);text-align:left;padding:10px 16px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.admin .table tbody td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.admin .table tbody tr:last-child td{border-bottom:0}.admin .table tbody tr{transition:background .12s}.admin .table tbody tr:hover{background:var(--bg-mute)}.admin .table .title-cell{font-weight:500;color:var(--ink)}.admin .table .title-cell a{color:inherit}.admin .table .title-cell a:hover{text-decoration:underline}.admin .table .slug-cell{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted)}.admin .table .actions-cell{text-align:right;white-space:nowrap}.admin .table .actions-cell .btn{margin-left:4px}.admin .badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;background:var(--bg-mute);border:1px solid var(--border);color:var(--ink-2)}.admin .badge.published{background:var(--success-bg);border-color:#bbf7d0;color:var(--success)}.admin .badge.draft{background:#fef3c7;border-color:#fde68a;color:var(--warn)}.admin .badge.live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--success);display:inline-block}.admin .alert{padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:18px;border:1px solid;display:flex;align-items:flex-start;gap:10px}.admin .alert.error{background:var(--danger-bg);border-color:#fecaca;color:var(--danger)}.admin .alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.admin .alert .icon{font-size:16px;line-height:1}.admin .alert strong{display:block;margin-bottom:2px}.admin .alert code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:11px}.admin .ph{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;gap:16px;flex-wrap:wrap}.admin .ph h2{font-family:Fraunces,serif;font-style:italic;font-weight:400;font-size:32px;letter-spacing:-.015em;line-height:1;margin:0}.admin .ph p{font-size:13px;color:var(--muted);margin:8px 0 0}.admin .empty{text-align:center;padding:56px 24px;background:var(--bg-elev);border:1px dashed var(--border-strong);border-radius:var(--radius)}.admin .empty h3{font-family:Fraunces,serif;font-style:italic;font-size:22px;margin:0 0 6px;font-weight:500}.admin .empty p{color:var(--muted);font-size:13px;max-width:36ch;margin:0 auto 18px}.admin .para-list{display:flex;flex-direction:column;gap:8px}.admin .para-row{display:grid;grid-template-columns:28px 1fr 30px;gap:8px;align-items:flex-start}.admin .para-row .para-num{background:var(--bg-mute);border:1px solid var(--border);border-radius:6px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted);display:flex;align-items:center;justify-content:center;height:38px}.admin .para-row .remove{background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer;border-radius:6px;font-size:14px;height:38px;transition:all .15s}.admin .para-row .remove:hover{background:var(--danger-bg);color:var(--danger)}.admin .para-add{align-self:flex-start;margin-top:8px}.admin .tag-input{display:flex;flex-wrap:wrap;gap:6px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);min-height:38px;align-items:center;cursor:text;transition:border-color .15s,box-shadow .15s}.admin .tag-input:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(0,0,0,.06)}.admin .tag-input .tag{background:var(--bg-mute);padding:2px 8px;border-radius:4px;font-size:12px;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border)}.admin .tag-input .tag button{background:transparent;border:0;cursor:pointer;color:var(--muted);font-size:14px;line-height:1}.admin .tag-input .tag button:hover{color:var(--danger)}.admin .tag-input input{flex:1;min-width:80px;border:0;outline:0;background:transparent;font-size:13px;font-family:inherit;padding:4px}.admin.login-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(180deg,#fafafa,#f4f4f5);padding:24px}.admin .login-card{width:100%;max-width:420px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:36px 32px 32px;box-shadow:0 24px 60px -30px rgba(0,0,0,.18),0 4px 8px -4px rgba(0,0,0,.05)}.admin .login-card .brand{font-family:Fraunces,serif;font-style:italic;font-size:28px;font-weight:500;letter-spacing:-.01em;margin-bottom:4px;display:flex;align-items:baseline;gap:8px}.admin .login-card .brand .tag{font-family:JetBrains Mono,monospace;font-size:9px;background:var(--ink);color:var(--accent-fg);padding:2px 6px;border-radius:4px;font-style:normal;font-weight:500;vertical-align:middle}.admin .login-card .lead{color:var(--muted);font-size:13px;margin:0 0 28px}.admin .login-card .login-foot{margin-top:24px;font-size:11px;color:var(--muted);text-align:center}.admin .login-card .login-foot a{color:var(--ink);border-bottom:1px solid var(--border)}.admin .login-card .login-foot a:hover{color:var(--ink);border-color:var(--ink)}.admin .convex-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-family:JetBrains Mono,monospace;letter-spacing:.04em}.admin .convex-status.ok{background:var(--success-bg);color:var(--success);border:1px solid #bbf7d0}.admin .convex-status.bad{background:#fef3c7;color:var(--warn);border:1px solid #fde68a}@media (max-width:800px){.admin .shell{grid-template-columns:1fr}.admin .sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:12px 16px;gap:4px}.admin .sidebar .brand,.admin .sidebar .group-label,.admin .sidebar .spacer{display:none}.admin .sidebar a,.admin .sidebar button.nav-link{width:auto;padding:6px 12px}.admin .sidebar .external{flex-direction:row}.admin main.page{padding:24px 18px}.admin .row-2,.admin .row-3,.admin .row-4{grid-template-columns:1fr}.admin .topbar{padding:12px 18px}.admin .table thead{display:none}.admin .table tbody td{display:block;padding:8px 16px;border:0}.admin .table tbody tr{display:block;padding:12px 0;border-bottom:1px solid var(--border)}}