@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-ext-400-normal-CXAzuTZb.woff2) format("woff2"),url(/assets/figtree-latin-ext-400-normal-Gbh-3PTk.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-ext-500-normal-Du0rIuHj.woff2) format("woff2"),url(/assets/figtree-latin-ext-500-normal-BOEJvrb_.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2) format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-ext-600-normal-DJlfifZj.woff2) format("woff2"),url(/assets/figtree-latin-ext-600-normal-CQqsimlV.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2) format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--ink: #1c1917;--muted: #57534e;--line: #e7e0d6;--paper: #f6f3ee;--card: #fffcf8;--accent: #0f6b4c;--accent-ink: #f7fffb;--ready: #047857;--warn: #b45309;--danger: #b91c1c;--sidebar: #f3efe8;--sidebar-ink: #1c1917;--focus: #0f6b4c;--radius: 8px;--space: 8px;font-family:Figtree,Segoe UI,sans-serif;font-size:14px;color:var(--ink);background:var(--paper)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--ink: #faf7f2;--muted: #a8a29e;--line: #44403c;--paper: #1c1917;--card: #292524;--accent: #3dbe8b;--accent-ink: #052e1c;--ready: #6ee7b7;--warn: #fbbf24;--danger: #fca5a5;--sidebar: #231f1c;--sidebar-ink: #faf7f2;--focus: #3dbe8b}}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:1.5rem;font-weight:650;letter-spacing:-.02em}h2{font-size:1rem;font-weight:650}.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.shell.sidebar-hidden{grid-template-columns:1fr}.shell.sidebar-hidden aside{display:none}aside{background:var(--sidebar);color:var(--sidebar-ink);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh;border-right:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;padding:4px 8px 16px}.brand strong{display:block;font-size:.95rem}.brand small{color:var(--muted);font-size:.75rem}.mark{width:28px;height:28px;border-radius:8px;background:var(--accent);display:block}.nav-label{margin:12px 8px 4px;color:var(--muted);font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}nav{display:flex;flex-direction:column;gap:2px}nav a{display:block;color:var(--ink);text-decoration:none;padding:7px 10px;border-radius:8px;font-size:13px}nav a.active,nav a:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}nav a:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.topbar{display:flex;gap:12px;align-items:center;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:2}.topbar form{flex:1;position:relative}.topbar input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--paper)}.search-menu{position:absolute;top:40px;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px;display:flex;flex-direction:column}.search-menu a{text-decoration:none;color:inherit;padding:8px;border-radius:6px}.search-menu a:hover{background:var(--paper)}.user-menu{display:flex;align-items:center;gap:8px}.crumbs{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:8px}.crumbs a{color:var(--muted);text-decoration:none}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs a{text-decoration:none;color:var(--muted);padding:8px 10px;border-bottom:2px solid transparent}.tabs a.active{color:var(--ink);border-bottom-color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px}.card strong{display:block;font-size:1.4rem}.bars{display:flex;align-items:flex-end;gap:4px;height:48px;margin:12px 0}.bars span{flex:1;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}.dialog-back{position:fixed;inset:0;background:#1c191759;display:grid;place-items:center;z-index:5}.dialog{background:var(--card);color:var(--ink);border-radius:8px;padding:18px;width:min(480px,calc(100% - 32px));display:flex;flex-direction:column;gap:12px}.dialog label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:600}.dialog textarea,.dialog input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--paper);color:var(--ink);font-weight:450}.check-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.check-list li{font-size:13px}main{padding:0 0 64px;min-width:0}.page{padding:20px 24px 0}.page{max-width:1080px;display:flex;flex-direction:column;gap:16px}.page.narrow{max-width:720px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.kicker{color:var(--muted);font-size:.75rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.lede{color:var(--muted);margin-top:6px;max-width:62ch;font-size:.95rem}.head-actions{display:flex;gap:8px;align-items:center}.button,button,.secondary{border:1px solid transparent;background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:8px 12px;text-decoration:none;cursor:pointer;font-weight:600;font-size:.92rem}.secondary,button.secondary,a.secondary{background:var(--card);color:var(--ink);border-color:var(--line)}button:disabled{opacity:.55;cursor:default}button.text,a.text{background:none;border:0;color:var(--accent);padding:0;font-weight:600}button.danger,.text.danger{color:var(--danger)}.aside-foot button.text{color:#e2e8f0}.banner{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:12px 14px}.banner.warn{border-color:#fcd34d;background:#fffbeb;color:#78350f}.banner.error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.banner code{font-size:.85rem;overflow-wrap:anywhere}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats article,.panel,.login-card{background:var(--card);border:1px solid var(--line);border-radius:6px}.stats article{padding:14px 16px}.stats span,.muted,.hint,small{color:var(--muted)}.stats strong{display:block;font-size:1.6rem;margin-top:4px}.panel{padding:16px 18px}.panel+.panel{margin-top:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:12px 0 0;margin:0;list-style:none}.steps li{display:flex;flex-direction:column;gap:4px}.steps span{font-size:.88rem}table.data{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}table.data th,table.data td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13px}table.data th{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:650;background:var(--paper)}table.data tr:last-child td{border-bottom:0}table.data tr.selected td{background:#eff6ff}.workspace-detail{min-height:0}.workspace-detail:empty{display:none}.workspace-detail .page{max-width:none;padding-top:8px}.workspace-detail .boot{min-height:160px}table.data small{display:block;color:var(--muted);font-weight:450;margin-top:2px}table.data .num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;background:#e2e8f0;color:#334155;font-size:.75rem;font-style:normal;font-weight:650}.badge.ready{background:#d1fae5;color:var(--ready)}.badge.warn{background:#fef3c7;color:var(--warn)}.meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:.88rem}.stack{display:flex;flex-direction:column}.row-link{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}.row-link small{display:block;color:var(--muted)}.row-actions{display:flex;gap:12px;align-items:center}.row-actions input{width:72px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--card)}.form{display:flex;flex-direction:column;gap:12px}.form.inset{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:14px}.form label,.check{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:600}.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--card);color:var(--ink);font-weight:450}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}fieldset{border:1px solid var(--line);border-radius:8px;margin:0;padding:12px}legend{font-weight:650;padding:0 6px}.bulk-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:4px 0 16px}.bulk-bar label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:600}.schema-command{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;white-space:pre-wrap;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px;margin:0}.form-error{color:var(--danger);margin:0}.check,.dialog label.check{flex-direction:row;align-items:center;justify-content:flex-start;font-weight:500;gap:8px}.check input,.dialog .check input{width:16px;height:16px;min-width:16px;padding:0;flex:none}.dropzone{border:1px dashed var(--line);border-radius:8px;padding:16px;background:var(--paper)}.dropzone input{margin-bottom:8px}.dropzone strong,.dropzone span{display:block}.dropzone span{color:var(--muted);font-weight:450}.editor{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}.preview-col{position:sticky;top:24px}.preview-stack{display:flex;flex-direction:column;gap:8px}.pass-card{border-radius:16px;min-height:220px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 30px #0f172a1f}.pass-card header,.pass-row,.pass-brand{display:flex;justify-content:space-between;gap:10px}.pass-brand strong{font-size:1.05rem}.pass-logo{height:28px;width:auto;object-fit:contain}.pass-strip{width:calc(100% + 32px);margin:0 -16px;max-height:120px;object-fit:cover}.pass-field{display:flex;flex-direction:column;min-width:0}.pass-field span{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.pass-field strong{font-size:.98rem;overflow-wrap:anywhere}.pass-field.large strong{font-size:1.35rem;font-weight:650}.pass-primary{margin-top:auto}.barcode-plate{background:#fff;color:#0f172a;border-radius:12px;padding:12px;text-align:center}.barcode-plate img{width:148px;height:148px}.barcode-plate p{margin:8px 0 0;font-size:.85rem}.barcode-fallback{width:148px;height:148px;margin:0 auto;background:repeating-linear-gradient(90deg,#0f172a 0 2px,transparent 2px 6px)}.pass-caption{color:var(--muted);margin:0;font-size:.85rem}.checks{padding-left:18px;color:var(--muted)}.checks .warning{color:var(--warn)}.variable,.slot{border-top:1px solid var(--line);padding:12px 0}.variable-head,.slot{display:flex;justify-content:space-between;gap:12px;align-items:center}.slot code,.contract{font-size:.8rem;background:var(--paper);padding:2px 4px;border-radius:4px}.slot-group h3{margin:16px 0 0;font-size:.95rem}.editor-main{display:flex;flex-direction:column;gap:16px}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:12px 0}.image-card{border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--paper);display:flex;flex-direction:column;gap:6px}.image-card.missing{border-style:dashed}.image-card img,.image-missing{width:100%;height:72px;object-fit:contain;border-radius:4px;background:var(--card)}.image-missing{display:grid;place-items:center;color:var(--muted)}.image-card small{color:var(--muted)}.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}.landing-bar{display:flex;align-items:center;padding:20px 32px}.landing-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:48px;align-items:center;padding:24px 32px 64px;max-width:1040px}.landing-hero h1{font-size:clamp(2rem,4vw,3.2rem);max-width:16ch;letter-spacing:-.03em}.landing-pass{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 16px 40px #1c191714;max-width:320px;justify-self:end}.landing-pass-band{background:#0f6b4c;color:#f7fffb;padding:18px 18px 16px;display:flex;justify-content:space-between;align-items:flex-end}.landing-pass-band strong{font-size:1.15rem}.landing-pass-band span{font-size:.8rem}.landing-pass-body{padding:18px;display:flex;flex-direction:column;gap:16px}.landing-pass-body p{display:flex;flex-direction:column;gap:2px}.landing-pass-body span{color:var(--muted);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.landing-qr{width:148px;height:148px;margin:0 auto;border-radius:12px;background:#fff;background-image:repeating-linear-gradient(90deg,#1c1917 0 3px,transparent 3px 8px),repeating-linear-gradient(#1c1917 0 3px,transparent 3px 8px)}.landing-block{padding:8px 32px 48px;max-width:1040px}.landing-block h2{margin-bottom:16px;font-size:1.25rem}.landing-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.landing-steps li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px}.landing-steps span{color:var(--muted)}.landing-foot{margin-top:auto;padding:24px 32px 32px;color:var(--muted)}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:var(--paper)}.login-story{padding:72px;align-self:center}.login-story h1{font-size:2.4rem;max-width:16ch}.login-story ol{padding-left:18px;color:var(--muted)}.login-card{align-self:center;margin-right:64px;display:flex;flex-direction:column;gap:14px;padding:24px}@media(max-width:1080px){.stats,.steps,.editor{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}.preview-col{position:static}}@media(max-width:800px){.landing-hero,.landing-steps{grid-template-columns:1fr}.landing-bar,.landing-hero,.landing-block,.landing-foot{padding-left:20px;padding-right:20px}.landing-pass{justify-self:start}.shell,.login,.form-row{grid-template-columns:1fr}aside{position:static;height:auto}main,.login-story{padding:20px}.login-card{margin:0 20px 20px}.page-head{flex-direction:column;align-items:flex-start}.cards{grid-template-columns:1fr}}
