@font-face{font-family:Inter;src:url('./fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Cal Sans';src:url('./fonts/CalSansVF.woff2') format('woff2');font-weight:400 700;font-display:swap}
:root{--hover-text-shadow:0 1px 2px color-mix(in srgb,currentColor 22%,transparent);--hover-symbol-shadow:drop-shadow(0 1px 1px color-mix(in srgb,currentColor 28%,transparent));--press-text-shadow:0 0 .5px currentColor;--press-symbol-shadow:drop-shadow(0 0 .5px currentColor)}
button:not(:disabled):hover,a:hover,summary:hover,.preset:hover,.check-field:hover{text-shadow:var(--hover-text-shadow)}
button:not(:disabled):hover svg,a:hover svg,summary:hover svg{filter:var(--hover-symbol-shadow)}
button:not(:disabled):active,a:active,summary:active{text-shadow:var(--press-text-shadow)}
button:not(:disabled):active svg,a:active svg,summary:active svg{filter:var(--press-symbol-shadow)}
:root{color-scheme:light;--window:#fafafa;--panel:#fff;--muted:#f6f7f9;--hover:#eeeff2;--ink:#070a0d;--text:#3c3e44;--subtle:#616875;--border:#e5e7eb;--field:#868c97;--primary:#111827;--on-primary:#fff;--success:#285239;--success-bg:#e4fbed;--attention:#74331b;--attention-bg:#ffedd6;--error:#811d1d;--error-bg:#f9e3e1;--cue:#6b7280;--ring:#a3a3a3;--shadow:0 2px 3px #00000008,0 2px 2px -1px #00000008}
:root[data-theme=dark]{color-scheme:dark;--window:#111;--panel:#141414;--muted:#171717;--hover:#262626;--ink:#fafafa;--text:#d4d4d4;--subtle:#a3a3a3;--border:#262626;--field:#737373;--primary:#fff;--on-primary:#000;--success:#e4fbe9;--success-bg:#285231;--attention:#fcefd9;--attention-bg:#74331b;--error:#f9e3e1;--error-bg:#772522;--cue:#a3a3a3;--ring:#737373}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--window);color:var(--text);font:14px/1.5 Inter,Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid var(--cue);outline-offset:3px;box-shadow:0 0 0 5px color-mix(in srgb,var(--ring) 20%,transparent)}button{transition:color .15s,text-shadow .15s}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{color:var(--ink)}h1{font:600 20px/28px 'Cal Sans',Arial,sans-serif;letter-spacing:.025em}h2{font-size:14px;font-weight:600}h3{font-size:14px;font-weight:600}button.primary,button.secondary,.icon-button,.suggestion{min-height:32px;padding:6px 11px;border-radius:10px;font-weight:500;border:1px solid var(--field);box-shadow:var(--shadow);background:var(--panel);color:var(--text)}button.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:0 2px 3px #0000000f,0 1px 1px #00000014,1px 4px 8px #0000001f,inset 0 2px .4px #ffffff1f}button.secondary:hover,.icon-button:hover,.suggestion:hover{color:var(--ink)}button.danger{color:var(--error)}.icon-button{min-width:32px;padding:4px 8px;box-shadow:none}.skip{position:fixed;top:8px;left:8px;z-index:10;background:var(--panel);padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}.shell{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:100vh}.sidebar{padding:24px 16px;display:flex;flex-direction:column;gap:24px;height:100vh;position:sticky;top:0}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font:600 24px 'Cal Sans',Arial,sans-serif;letter-spacing:-.4px}.brand small{font:500 14px Inter,Arial,sans-serif}.brand-mark{width:32px;height:32px;border:1px solid var(--border);border-radius:8px;display:grid;place-items:center;font-size:22px;background:var(--panel)}.sidebar-label{font-size:12px;color:var(--subtle);padding:0 8px}.sidebar nav{display:grid;gap:4px;margin-top:-12px}.sidebar nav a{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:6px 10px;border-radius:10px;text-decoration:none;color:var(--text);border-left:2px solid transparent}.sidebar nav a:hover{color:var(--ink);text-shadow:var(--hover-text-shadow)}.sidebar nav a.active{background:var(--hover);border-left-color:var(--cue);color:var(--ink);font-weight:600}.sidebar nav span{font-size:12px;color:var(--subtle)}.local-note{margin-top:auto;padding:0 8px}.local-note p{margin-top:8px;color:var(--subtle);font-size:12px;line-height:1.6}.sidebar>button{align-self:flex-start;margin-left:8px}.canvas{min-width:0;margin:8px 8px 8px 0;padding:32px 36px;background:var(--panel);border:1px solid var(--border);border-radius:14px}.page-header{display:flex;gap:20px;align-items:center;justify-content:space-between;max-width:1140px;margin:0 auto 20px}.page-header p{margin-top:4px;color:var(--subtle)}.toolbar{display:flex;gap:8px;flex-shrink:0}.notice{max-width:1140px;margin:0 auto 24px;font-size:12px;color:var(--subtle)}.notice.error{color:var(--error);background:var(--error-bg);padding:10px;border-radius:8px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;max-width:1140px;margin:auto;align-items:start}.form-panels{display:grid;gap:20px;min-width:0}.frame{background:var(--muted);border-radius:16px;padding:4px;scroll-margin-top:24px}.frame-head{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.frame-head p{margin-top:2px;font-size:12px;color:var(--subtle)}.panel-body{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:8px;align-content:start;min-width:0}.field>span{font-weight:500;color:var(--ink);font-size:14px;line-height:16px}.field.wide{grid-column:1/-1}.hint{font-size:12px;color:var(--subtle);line-height:1.6}.field input,.field select,.field textarea{width:100%;min-width:0;min-height:32px;padding:6px 10px;border:1px solid var(--field);border-radius:10px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.field textarea{resize:vertical;min-height:76px;line-height:1.6}.field input::placeholder,.field textarea::placeholder{color:var(--subtle);opacity:1}.preset-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.preset{display:flex;align-items:center;gap:7px;min-height:32px;padding:5px 10px;border:1px solid var(--field);border-radius:10px;font-size:12px;color:var(--text);cursor:pointer}.preset:has(input:checked){background:var(--hover);border-color:var(--cue);color:var(--ink)}.preset input{accent-color:var(--primary);width:14px;height:14px;margin:0}.form-label{font-weight:500;color:var(--ink);display:block;margin-bottom:8px}.preset-block{margin-top:20px}.preset-block .secondary{margin-top:12px}.badge{display:inline-flex;align-items:center;border-radius:4px;font-size:12px;font-weight:500;padding:2px 6px;background:var(--hover);color:var(--text);white-space:nowrap}.badge.ready{background:var(--success-bg);color:var(--success)}.badge.waiting{background:var(--attention-bg);color:var(--attention)}.repeat-list{display:grid;gap:12px;margin-bottom:14px}.repeat-card{border:1px solid var(--border);border-radius:10px;padding:14px;background:var(--panel);min-width:0}.repeat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.repeat-head h3{font-size:12px}.platform-card .field-grid{gap:12px}.platform-card .field>span{font-size:12px}.empty-copy{color:var(--subtle);font-size:12px;padding:10px 0}.section-list{display:grid;gap:12px}.section-card{border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden;min-width:0}.section-summary{display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer;list-style:none;min-width:0}.section-summary::before{content:'›';font-size:18px;transform:rotate(0deg);color:var(--subtle)}details[open]>.section-summary::before{transform:rotate(90deg)}.section-name{flex:1;min-width:0;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.section-name small{display:block;font-size:12px;font-weight:400;color:var(--subtle);margin-top:2px}.section-content{padding:0 16px 16px;display:grid;gap:18px;border-top:1px solid var(--border);padding-top:16px}.section-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end}.section-actions .danger{margin-left:auto}.suggestions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.suggestion{font-size:12px;min-height:28px;padding:4px 8px;font-weight:400}.kind-note{font-size:12px;color:var(--subtle)}.add-section{display:flex;gap:8px;margin-top:16px;align-items:end}.add-section .field{flex:1}.source-editor{border-top:1px solid var(--border);padding-top:18px;display:grid;gap:16px}.source-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.source-heading h3{font-size:12px;color:var(--subtle)}.item-card .field-grid{gap:12px}.item-card .field>span{font-size:12px}.check-field{display:flex;gap:8px;align-items:center;min-height:44px;font-size:12px;color:var(--text)}.check-field input{accent-color:var(--primary);width:16px;height:16px}.sublist{border-top:1px solid var(--border);padding-top:14px;display:grid;gap:12px}.sublist h3{font-size:12px}.filters{border-top:1px solid var(--border);padding-top:16px}.filters summary{cursor:pointer;font-size:12px;color:var(--subtle);padding:4px 0}.filters .field-grid{margin-top:14px}.preview-panel{position:sticky;top:24px;border:1px solid var(--border);border-radius:14px;background:var(--panel);overflow:hidden;min-width:0}.preview-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--muted);border-bottom:1px solid var(--border)}.preview-head p{color:var(--subtle);font-size:12px;margin-top:2px}#preview{width:100%;height:510px;display:block;border:0;background:var(--window)}.preview-foot{display:flex;gap:8px;padding:14px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--subtle)}.status-dot{flex:0 0 6px;width:6px;height:6px;background:var(--cue);border-radius:50%;margin-top:6px}.preview-panel details{border-top:1px solid var(--border);padding:12px 16px;font-size:12px}.preview-panel summary{cursor:pointer;color:var(--ink);font-weight:500}.preview-panel ul{padding-left:16px;margin:12px 0 0;display:grid;gap:8px;max-height:270px;overflow:auto}.preview-panel li{color:var(--subtle)}.candidate-downloads p{margin:10px 0;color:var(--subtle)}.candidate-downloads button{margin:4px 0;font-size:12px}.editor-footer{max-width:1140px;margin:32px auto 0;font-size:12px;color:var(--subtle)}.mobile-view{display:none}[hidden]{display:none!important}
@media(min-width:1500px){.canvas{padding:40px 56px}.shell{grid-template-columns:224px minmax(0,1fr)}}
@media(max-width:1150px){.shell{grid-template-columns:176px minmax(0,1fr)}.canvas{padding:24px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:20px}.page-header{align-items:flex-start;flex-direction:column}.sidebar{padding:24px 12px}.brand{font-size:22px}.panel-body{padding:16px}}
@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.sidebar nav,.sidebar-label,.local-note{display:none}.sidebar>button{margin:0;font-size:12px}.canvas{margin:0;border:0;border-radius:0;padding:24px 20px}.workspace{grid-template-columns:minmax(0,1fr) 320px;gap:16px}}
@media(max-width:700px){html{scroll-padding-top:12px}.canvas{padding:22px 16px}.page-header{gap:16px;margin-bottom:16px}.page-header p{font-size:13px;line-height:1.6;max-width:320px}.toolbar{width:100%}.toolbar button{flex:1}.sidebar{padding:14px 16px}.sidebar button{min-height:44px}button.primary,button.secondary,.icon-button,.suggestion,.preset{min-height:44px}.field input,.field select,.field textarea{min-height:44px;font-size:16px}.field-grid{gap:14px}.panel-body{padding:16px}.frame-head{padding:12px}.frame-head p{max-width:230px}.notice{margin-bottom:18px;line-height:1.6}.workspace{display:block}.mobile-view{display:flex;padding:3px;background:var(--muted);border-radius:10px;margin-bottom:20px;border:1px solid var(--border)}.mobile-view button{flex:1;background:transparent;border:1px solid transparent;border-radius:8px;min-height:44px;color:var(--subtle);font-size:13px}.mobile-view button[aria-pressed=true]{background:var(--panel);border-color:var(--cue);color:var(--ink);box-shadow:var(--shadow)}.preview-panel{display:none;position:static}.canvas[data-view=preview] .form-panels{display:none}.canvas[data-view=preview] .preview-panel{display:block}.preview-panel #preview{height:580px}.section-summary{padding:12px;gap:8px}.section-name{font-size:13px}.section-name small{font-size:11px}.section-summary .badge{font-size:11px}.section-content{padding:16px 12px}.repeat-card{padding:12px}.suggestions{gap:6px}.suggestion{padding:6px 8px}.preset-list{gap:6px}.preset{font-size:12px}.add-section{align-items:stretch;flex-direction:column}.source-heading{flex-wrap:wrap}.wide-mobile{grid-column:1/-1}.section-actions{flex-wrap:wrap}.editor-footer{line-height:1.6}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

#highlight .panel-body > .secondary{display:block;margin-top:12px}

/* Guided setup shares the editor's fonts, palette and interaction cues. */
.app-header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1440px;margin:auto;padding:20px 32px}
.app-header .brand{gap:5px;font-size:24px}
.app-header .brand-mark{width:auto;height:auto;border:0;border-radius:0;background:none;font-size:26px}
.app-header .toolbar{flex-wrap:wrap;justify-content:flex-end}
.app-header button{min-height:44px}
.shell{min-height:calc(100vh - 84px)}
@media(min-width:851px){.sidebar{height:calc(100vh - 84px)}}
.simple-setup,.preview-intro{max-width:520px;margin:auto}
.setup-intro{margin-bottom:32px}
.setup-intro h1,.preview-intro h1{font-size:clamp(30px,5vw,42px);line-height:1.15;letter-spacing:-.015em}
.setup-intro p,.preview-intro>p{margin-top:14px;color:var(--subtle);font-size:15px;line-height:1.7}
#simple-fields{min-width:0;margin:0;padding:0;border:0}
.simple-inputs{display:grid;gap:24px}
.simple-inputs .field{gap:10px}
.simple-inputs .field>span{line-height:1.4}
.simple-inputs input,.simple-inputs select{min-height:48px;padding:11px 13px;border-color:var(--field);border-radius:10px;font-size:16px;box-shadow:none}
.simple-extras{border-top:1px solid var(--border);padding-top:18px}
.simple-extras>summary{min-height:44px;cursor:pointer;color:var(--text);font-size:14px}
.simple-extras .field-grid{grid-template-columns:1fr;gap:20px;margin-top:10px}
.setup-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-top:28px}
.setup-actions button,.preview-actions button{min-height:48px;padding:11px 16px}
.setup-actions .primary{display:flex;justify-content:space-between;align-items:center;gap:16px}
.setup-actions .secondary{border-color:transparent;box-shadow:none;background:transparent}
.setup-note{margin-top:20px;font-size:12px;line-height:1.7;color:var(--subtle)}
.preview-intro{display:none;margin-bottom:24px}
.preview-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.return-note{padding:16px;font-size:12px;line-height:1.7;color:var(--subtle);border-top:1px solid var(--border)}
body:not([data-setup=editor]) .shell{display:block;max-width:680px;margin:auto}
body:not([data-setup=editor]) .canvas{margin:0;padding:36px 32px 56px;border:0;border-radius:0;background:transparent}
body:not([data-setup=editor]) .sidebar,body:not([data-setup=editor]) .page-header,body:not([data-setup=editor]) .mobile-view,body:not([data-setup=editor]) .editor-footer{display:none}
body:not([data-setup=editor]) .notice{max-width:520px;margin-bottom:24px}
body[data-setup=start] .workspace,body[data-setup=start] #export{display:none}
body[data-setup=preview] #simple-setup,body[data-setup=preview] .form-panels{display:none}
body[data-setup=preview] .preview-intro{display:block}
body[data-setup=preview] .workspace{display:block;max-width:520px}
body[data-setup=preview] .preview-panel{display:block;position:static}
body[data-setup=preview] #preview{height:min(720px,72vh);min-height:420px}
body[data-setup=preview] #preview-status,body[data-setup=preview] #missing-details,body[data-setup=preview] .candidate-downloads{display:none}
body[data-setup=editor] #simple-setup,body[data-setup=editor] .preview-intro,body[data-setup=editor] .return-note{display:none}
@media(max-width:700px){
  .app-header{padding:16px;gap:12px;flex-wrap:wrap}
  .app-header .brand{font-size:22px;margin-right:auto}
  .app-header .toolbar{width:auto;gap:6px;flex:1 1 auto}
  .app-header .toolbar button{flex:0 1 auto;font-size:12px;padding:8px 10px}
  body:not([data-setup=editor]) .canvas{padding:24px 20px 44px}
  .setup-intro{margin-bottom:28px}
  .simple-inputs{gap:22px}
  .setup-actions{grid-template-columns:1fr}
  .setup-actions .secondary{justify-self:center}
  .preview-actions button{flex:1 1 auto}
}

/* Keep the page centered; horizontal scrolling belongs to the module rows.
   Clip avoids a body scroll container so sticky navigation keeps its viewport. */
html{max-width:100%;overscroll-behavior-x:none}
body{width:100%;min-width:0}
@supports(overflow-x:clip){html,body{overflow-x:clip}}
