:root{--cream:#f6f1e7;--linen:#f1ebdf;--sand:#ece4d6;--espresso:#211c18;--bark:#39312a;--walnut:#4c443a;--ink-dark:#1c1814;--ink-deep:#0d0b09;--stone:#ccc4b6;--greige:#a49a8a;--taupe:#9c9181;--surface-raised:#fbf8f2;--border-soft:#dcd4c5;--text-detail:#6f6557;--border-on-dark:#37322b;--clay:#dc8159;--sienna:#bc5a39;--clay-tint:#f0d9c8;--surface-page:var(--cream);--surface-alt:var(--linen);--surface-card:var(--sand);--accent:var(--clay);--accent-press:var(--sienna);--accent-wash:var(--clay-tint);--doc-dark:var(--ink-dark);--font-display:"Fraunces",Georgia,"Times New Roman",serif;--font-body:"Jost","Helvetica Neue",Arial,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace}
:root{--gl-page:var(--surface-page);--gl-card:var(--surface-raised);--gl-card-alt:var(--surface-card);--gl-line:var(--stone);--gl-line-soft:var(--border-soft);--gl-ink:var(--espresso);--gl-ink-2:var(--walnut);--gl-detail:var(--text-detail);--gl-mute:var(--greige);--gl-accent:var(--accent);--gl-accent-press:var(--accent-press);--gl-accent-wash:var(--accent-wash);--gl-critical:var(--sienna);--gl-dark:var(--doc-dark);--gl-on-dark:var(--cream);--gl-on-dark-mute:var(--greige);--gl-line-dark:var(--border-on-dark);--radius:6px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--gl-page);color:var(--gl-ink);font:400 15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}a{color:var(--gl-ink);text-decoration:underline;-webkit-text-decoration-color:var(--gl-line);text-decoration-color:var(--gl-line);text-underline-offset:3px}a:hover{-webkit-text-decoration-color:var(--gl-ink);text-decoration-color:var(--gl-ink)}h1{font:500 30px/1.15 var(--font-display);letter-spacing:-.01em;margin:0 0 4px}h2{font:500 19px/1.2 var(--font-display);margin:0 0 12px}.muted{color:var(--gl-detail)}.error,.ok{border-radius:var(--radius);border:1px solid var(--gl-line);background:var(--gl-card);margin:12px 0;padding:10px 14px}.error{border-color:var(--gl-critical);color:var(--gl-critical)}.ok{color:var(--gl-ink-2)}.ok p{margin:0 0 8px}.ok p:last-child{margin-bottom:0}.copy-link{width:100%;font-family:var(--font-mono,monospace);margin:0 0 8px;font-size:13px}.empty{text-align:center;color:var(--gl-detail);border:1px dashed var(--gl-line);border-radius:var(--radius);font-family:var(--font-display);padding:40px;font-size:17px}.topbar{background:var(--gl-dark);color:var(--gl-on-dark);border-bottom:1px solid var(--gl-line-dark);z-index:5;align-items:center;gap:20px;padding:12px 28px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;text-decoration:none;display:flex}.brand img{width:auto;height:22px;display:block}.app-name{font:400 14px var(--font-body);color:var(--gl-on-dark-mute);letter-spacing:.02em;border-left:1px solid var(--gl-line-dark);padding-left:14px}.topbar .actor{color:var(--gl-on-dark-mute);margin-left:auto;font-size:13px}.topbar button.link{color:var(--gl-on-dark-mute);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:13px}.topbar button.link:hover{color:var(--gl-on-dark);background:0 0}main{max-width:1120px;margin:0 auto;padding:28px 28px 72px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{margin:0}button,.btn{font:inherit;font-family:var(--font-body);color:var(--gl-ink);background:var(--gl-page);border:1px solid var(--gl-line);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:9px 16px;text-decoration:none;display:inline-flex}input,select,textarea{font:inherit;font-family:var(--font-body);color:var(--gl-ink);background:var(--gl-page);border:1px solid var(--gl-line);border-radius:var(--radius);padding:7px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--gl-accent-wash);border-color:var(--gl-accent)}button[type=submit],.btn.primary{background:var(--gl-accent);color:var(--gl-on-dark);border-color:#0000;font-weight:500}button[type=submit]:hover,.btn.primary:hover{background:var(--gl-accent-press)}.table-wrap{overflow-x:auto}table.list{border-collapse:collapse;width:100%}table.list th{text-align:left;font:400 11px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gl-detail);border-bottom:1px solid var(--gl-line);white-space:nowrap;padding:8px 10px}table.list td{border-bottom:1px solid var(--gl-line-soft);vertical-align:top;white-space:nowrap;padding:12px 10px}table.list tr:hover td{background:var(--gl-card)}table.list a.row-link{color:var(--gl-ink);font-weight:500;text-decoration:none}table.list a.row-link:hover{text-decoration:underline}.pill{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--gl-line);border-radius:999px;align-items:center;padding:3px 9px;display:inline-flex}.pill.draft{color:var(--gl-detail)}.pill.published{color:var(--gl-ink-2);border-color:var(--gl-accent);background:var(--gl-accent-wash)}.pill.signed{color:var(--gl-ink);border-color:var(--gl-accent);background:var(--gl-accent-wash);font-weight:500}.form{gap:22px;max-width:640px;display:grid}.field{gap:6px;display:grid}.field label,.field>span.label{font:400 11px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gl-detail)}.field .help{color:var(--gl-detail);margin:0;font-size:12px}.field textarea{margin-bottom:6px}.field-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.radio-cards{grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px;display:grid}.radio-card{border:1px solid var(--gl-line);border-radius:var(--radius);cursor:pointer;background:var(--gl-card);align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.radio-card:has(input:checked){border-color:var(--gl-accent);background:var(--gl-accent-wash)}.radio-card input{margin:0}.form-actions{align-items:center;gap:14px;display:flex}.form.wide{gap:16px;max-width:none}.form .help{color:var(--gl-detail);max-width:640px;margin:0;font-size:12px}table.list.places td{padding:8px 10px}table.list.places td.line-name{white-space:normal;min-width:220px}table.list.places select{max-width:260px}table.list.places input[type=text]{width:150px}table.list.places td .muted{margin-top:4px;font-size:12px;display:block}.fetch-row{border-bottom:1px solid var(--gl-line-soft);gap:14px;margin-bottom:26px;padding-bottom:22px}.login{place-items:center;min-height:82vh;display:grid}.login-card{background:var(--gl-card);border:1px solid var(--gl-line-soft);border-radius:var(--radius);gap:14px;width:360px;padding:36px 32px;display:grid}.login-card img{width:auto;height:32px;margin-bottom:4px;display:block}.login-card h1{font-size:24px}.login-card label{color:var(--gl-detail);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);gap:4px;display:grid}button[aria-busy=true]{opacity:.85;cursor:progress}.spin{vertical-align:-1px;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}.pending{margin-top:14px}.pending-bar{background:var(--gl-line);border-radius:2px;height:3px;position:relative;overflow:hidden}.pending-bar span{background:var(--gl-accent);border-radius:2px;width:35%;height:100%;animation:1.4s ease-in-out infinite slide;position:absolute;top:0;left:-35%}.pending p{color:var(--gl-detail);margin:8px 0 0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide{to{left:100%}}@media (prefers-reduced-motion:reduce){.spin{opacity:.5;border-right-color:currentColor;animation:none}.pending-bar span{opacity:.6;width:100%;animation:none;left:0}}
