:root{--bg:#f9fafb;--surface:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--divide:#f3f4f6;--text:#111827;--text-2:#374151;--muted:#6b7280;--faint:#9ca3af;--accent:#0891b2;--accent-hover:#0e7490;--accent-50:#ecfeff;--accent-100:#cffafe;--danger:#dc2626;--danger-hover:#b91c1c;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--radius:.375rem;--radius-lg:.5rem;--sidebar-w:18rem}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}[hidden]{display:none!important}code{background:var(--divide);color:var(--text-2);word-break:break-all;border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem}.layout{min-height:100%}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:1.5rem 1rem 1rem;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar .brand{color:var(--text);align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:0 .5rem;font-size:1rem;font-weight:700;display:flex}.sidebar .brand:hover{text-decoration:none}.sidebar .brand .logo{flex:none;width:2rem;height:2rem}.nav{flex-direction:column;gap:.125rem;display:flex}.nav a{border-radius:var(--radius);color:var(--text-2);align-items:center;gap:.75rem;padding:.5rem;font-weight:600;display:flex}.nav a:hover{background:var(--bg);color:var(--accent);text-decoration:none}.nav a.active{background:var(--accent-50);color:var(--accent)}.nav a svg{width:1.25rem;height:1.25rem;color:var(--faint);flex:none}.nav a:hover svg,.nav a.active svg{color:var(--accent)}.nav .section{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:.85rem .5rem .25rem;font-size:.6875rem;font-weight:600}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:1rem;font-size:.8125rem}.sidebar-footer .who{color:var(--text);font-weight:600}.sidebar-footer .phone{color:var(--muted)}.sidebar-footer a{margin-top:.5rem;display:inline-block}.content{margin-left:var(--sidebar-w);max-width:80rem;padding:2rem 2.5rem 3rem}.auth-split{background:var(--surface);align-items:stretch;min-height:100%;display:flex}.auth-pane{flex:1 1 0;justify-content:center;align-items:center;padding:3rem 1.5rem;display:flex}.auth-panel{width:100%;max-width:23rem}.auth-logo{width:auto;height:2.5rem;display:block}.auth-panel h1{letter-spacing:-.015em;color:var(--text);margin:2rem 0 0;font-size:1.5rem;font-weight:700;line-height:2.25rem}.auth-lede{color:var(--muted);margin:.5rem 0 0;font-size:.875rem;line-height:1.5rem}.auth-panel>:not(h1):not(.auth-logo):not(.auth-lede){margin-top:1.75rem}.auth-panel .alert{margin-bottom:0}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.auth-form label{color:var(--text);font-size:.875rem;font-weight:600;display:block}.auth-form input{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);margin-top:.5rem;padding:.5rem .75rem;font-size:1rem;display:block}.auth-form input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.auth-form button{width:100%;padding:.5rem .85rem}.auth-note{color:var(--muted);font-size:.8125rem;line-height:1.25rem}.auth-scopes{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);padding:.75rem 1rem}.auth-scopes-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.6875rem;font-weight:600}.auth-scopes ul{color:var(--text-2);margin:.375rem 0 0;padding-left:1.1rem;font-size:.875rem}.auth-art{display:none}@media (width>=1024px){.auth-art{background:var(--divide);flex:1 1 0;margin:0;display:block;position:relative;overflow:hidden}.auth-art img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.auth-art figcaption{color:#fff;background:linear-gradient(#0000,#0009);flex-direction:column;gap:.25rem;padding:2.5rem 2rem 2rem;font-size:.875rem;line-height:1.35rem;display:flex;position:absolute;inset:auto 0 0}.auth-art figcaption strong{font-size:1rem;font-weight:600}.auth-art figcaption span{opacity:.85}}.page-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.page-head h1{letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:700}.page-head .sub{color:var(--muted);max-width:44rem;margin:.35rem 0 0}.page-head .actions{flex:none;gap:.75rem;display:flex}.stats{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:1fr;gap:1px;margin-bottom:1.5rem;display:grid;overflow:hidden}.stats .stat{background:var(--surface);padding:1rem 1.25rem}.stats .stat dt{color:var(--muted);margin:0;font-size:.8125rem;font-weight:500}.stats .stat dd{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.3rem 0 0;font-size:1.5rem;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);margin-bottom:1.5rem;padding:1.5rem}.card.error{border-color:var(--danger)}.card>h2{margin:0 0 .25rem;font-size:1rem;font-weight:600}.card>h2+.card-sub{margin-top:0}.card-sub{color:var(--muted);margin:0 0 1rem}.card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.card-head h2{margin:0;font-size:1rem;font-weight:600}h1{font-size:1.5rem}.muted{color:var(--muted)}.badge{border-radius:var(--radius);background:var(--accent-50);color:var(--accent-hover);vertical-align:middle;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge.gray{color:#4b5563;background:#f3f4f6}.badge.warn{color:#92400e;background:#fef3c7}.badge.green{color:#15803d;background:#dcfce7}.alert{border-radius:var(--radius);margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.875rem}.alert.info{background:var(--accent-50);color:var(--accent-hover);border:1px solid var(--accent-100)}.alert.warn{color:#92400e;background:#fffbeb;border:1px solid #fef3c7}.alert.error{color:#b91c1c;background:#fef2f2;border:1px solid #fee2e2}button,.btn{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow-xs);border:0;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .85rem;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--accent-hover);color:#fff;text-decoration:none}button.secondary,.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover,.btn.secondary:hover{background:var(--bg);color:var(--text)}button.danger,.btn.danger{background:var(--danger)}button.danger:hover,.btn.danger:hover{background:var(--danger-hover)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled,button:disabled:hover{background:var(--border-strong);cursor:not-allowed;box-shadow:none}.row{flex-wrap:wrap;gap:.5rem;display:flex}.form label{color:var(--text);margin-bottom:1rem;font-size:.875rem;font-weight:500;display:block}.form input,.form select,.form textarea{background:var(--surface);width:100%;color:var(--text);border-radius:var(--radius);outline:1px solid var(--border-strong);outline-offset:-1px;border:0;margin-top:.5rem;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;font-weight:400;display:block}.form input::placeholder,.form textarea::placeholder{color:var(--faint)}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.form textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5}.form .row{margin-top:.5rem}.form label.checkbox{align-items:center;gap:.5rem;display:flex}.form label.checkbox input{width:auto;margin:0;display:inline-block}dl.kv,table.kv{border-collapse:collapse;width:100%;margin:0}table.kv td{vertical-align:top;border-top:1px solid var(--divide);padding:.6rem 0;font-size:.875rem}table.kv tr:first-child td{border-top:0}table.kv td:first-child{color:var(--muted);width:11rem;padding-right:1rem;font-weight:500}.table-wrap{margin:0 -.25rem;overflow-x:auto}table.data{border-collapse:collapse;width:100%;min-width:32rem;font-size:.875rem}table.data thead th{text-align:left;color:var(--text);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:.75rem;font-weight:600}table.data tbody td{border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap;padding:.75rem}table.data tbody td.strong{color:var(--text);font-weight:500}table.data tbody tr:nth-child(2n){background:var(--bg)}table.data td.num{font-variant-numeric:tabular-nums}.empty{color:var(--muted);padding:.5rem 0}.reactions{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}details.reaction{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}details.reaction[open]{border-color:var(--border-strong)}details.reaction>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .75rem;list-style-position:inside;display:flex}details.reaction>summary:hover{background:var(--bg)}.reaction-emoji{font-size:1.125rem;line-height:1}.reaction-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.reaction-body{border-top:1px solid var(--divide);padding:.25rem .75rem .75rem}.slots{gap:.35rem;margin:.25rem 0 1rem;display:grid}.slot{grid-template-columns:1fr;align-items:center;gap:.35rem;display:grid}.slot-label{color:var(--text-2);font-size:.8125rem;font-weight:500}.slot-format{color:var(--faint);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.6875rem;font-weight:400}.form .slot input{margin-top:0}.palettes{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}details.palette{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}details.palette[open]{border-color:var(--border-strong)}details.palette>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .75rem;list-style-position:inside;display:flex}details.palette>summary:hover{background:var(--bg)}.palette-body{border-top:1px solid var(--divide);padding:.5rem .75rem .75rem}.palette-id{min-width:0;color:var(--text-2);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem}.swatches{align-items:center;gap:.125rem;display:inline-flex}.swatch{outline:1px solid var(--border-strong);outline-offset:-1px;border-radius:.25rem;width:1rem;height:1rem;display:inline-block}.stops{gap:.35rem;margin-bottom:.75rem;display:grid}.stops-group{border-left:2px solid var(--divide);margin-bottom:.5rem;padding-left:.75rem}.colors{gap:.35rem;display:flex}.form .stops select{background:var(--surface);width:100%;color:var(--text);border-radius:var(--radius);outline:1px solid var(--border-strong);outline-offset:-1px;border:0;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;display:block}.form .colors input[type=color]{cursor:pointer;width:2.75rem;height:2rem;margin-top:0;padding:.125rem}.pager{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.8125rem;display:flex}.pager .links{gap:.5rem;display:flex}.pager .links .btn.secondary[aria-disabled=true]{opacity:.5;pointer-events:none}@media (width>=640px){.form{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem;display:grid}.form>label{margin-bottom:.9rem}.form>label.checkbox,.form>label.full,.form>.reactions,.form>.row,.form>button,.form>.btn{grid-column:1/-1}.form>label:has(textarea){grid-column:1/-1}.auth .form{display:block}.reaction-body{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem;display:grid}.reaction-body>label.checkbox,.reaction-body>.slots{grid-column:1/-1}.reaction-body>label{margin-bottom:.9rem}.slot{grid-template-columns:10rem minmax(0,1fr) minmax(0,1fr)}.dc-config{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1280px){.content{padding:2.5rem 3rem 4rem}}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:.75rem;padding:.75rem 1rem;display:none;position:sticky;top:0}.topbar .brand{margin:0;padding:0;font-size:.9375rem}.icon-button{color:var(--text-2);border:1px solid var(--border-strong);box-shadow:none;background:0 0;padding:.35rem}.icon-button:hover{background:var(--bg);color:var(--text)}.icon-button svg{width:1.25rem;height:1.25rem}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;margin-bottom:1.5rem;padding-bottom:.5rem;display:flex}.tabs a{border-radius:var(--radius);color:var(--text-2);white-space:nowrap;align-items:center;gap:.4rem;padding:.35rem .7rem;font-weight:600;display:inline-flex}.tabs a:hover{background:var(--bg);text-decoration:none}.tabs a.active{background:var(--accent-50);color:var(--accent)}.group{border-top:1px solid var(--divide);margin-top:1.25rem;padding-top:1.25rem}.card>.group:first-of-type,.card-head+.group,form>.card>.group:first-child{border-top:0;margin-top:0;padding-top:0}.group>h3{color:var(--text);margin:0 0 .25rem;font-size:.875rem;font-weight:600}.group-hint{color:var(--muted);max-width:52rem;margin:0 0 1rem}.form .hint{color:var(--muted);margin-top:.35rem;font-size:.8125rem;font-weight:400;display:block}.form label>code{color:var(--muted);background:0 0;padding:0;font-weight:400}.form-actions{background:var(--surface);border-top:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.5rem -1.5rem -1.5rem;padding:.85rem 1.5rem;display:flex;position:sticky;bottom:0}[data-dirty-guard].dirty .form-actions:after,[data-dirty-guard].dirty>.form-actions:after{content:"unsaved changes";color:var(--muted);font-size:.8125rem}.json-error{color:var(--danger);margin-top:.35rem;font-size:.8125rem;font-weight:400;display:block}.form textarea[aria-invalid=true]{outline-color:var(--danger)}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.filters .filter{color:var(--text-2);flex-direction:column;flex:12rem;gap:.35rem;min-width:12rem;font-size:.8125rem;font-weight:500;display:flex}.filters input,.filters select{background:var(--surface);width:100%;color:var(--text);border-radius:var(--radius);outline:1px solid var(--border-strong);outline-offset:-1px;border:0;padding:.45rem .7rem;font-family:inherit;font-size:.875rem}.filters input:focus,.filters select:focus{outline:2px solid var(--accent);outline-offset:-1px}.filter-actions{flex:none;gap:.5rem;display:flex}.repeat{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}details.repeat-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}details.repeat-item[open]{border-color:var(--border-strong)}details.repeat-item>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .75rem;list-style-position:inside;display:flex}details.repeat-item>summary:hover{background:var(--bg)}.repeat-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.repeat-body{border-top:1px solid var(--divide);padding:.75rem}.repeat-body .form{margin-bottom:0}.pager .links{flex-wrap:wrap;align-items:center}.pager .btn.current{background:var(--accent-50);color:var(--accent);border-color:var(--accent-100);cursor:default}.page-size select{background:var(--surface);color:var(--text);border-radius:var(--radius);outline:1px solid var(--border-strong);outline-offset:-1px;border:0;padding:.4rem .6rem;font-family:inherit;font-size:.8125rem}.page-size{align-items:center;gap:.5rem;display:inline-flex}.notices{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.notices li{color:var(--text-2)}.notices .badge{margin-right:.4rem}.card.danger-zone{border-color:#fecaca}.card.danger-zone>.card-head h2{color:var(--danger-hover)}.link-button{color:var(--accent);box-shadow:none;background:0 0;padding:.1rem .35rem;font-size:.8125rem;font-weight:500}.link-button:hover{background:var(--accent-50);color:var(--accent-hover)}.link-button.copied{color:#15803d}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=820px){.topbar{display:flex}.sidebar{z-index:30;box-shadow:none;transition:transform .15s ease-out;transform:translate(-100%)}body.nav-open .sidebar{box-shadow:var(--shadow-sm);transform:none}.sidebar>.brand{display:none}.content{margin-left:0;padding:1.5rem 1.25rem 2.5rem}.form-actions{margin-left:-1.5rem;margin-right:-1.5rem}.filters .filter{flex-basis:100%}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}
