:root{--paper:#f5f4ed;--ink:#141413;--muted:#6b6a64;--line:#dedbd0;--panel:#efede4;--brand:#1b365d;--brand-soft:#e4ecf5;--danger:#8b4513}*{box-sizing:border-box}body,html{height:100%;margin:0;overflow:hidden;background:var(--panel);color:var(--ink);font-family:Charter,Georgia,Songti SC,STSong,serif}button,input,select,textarea{font:inherit}button{border:0}.app-shell{height:100svh;min-height:0;display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr) minmax(320px,360px);overflow:hidden;background:var(--panel)}.inspect-pane,.side-pane{min-width:0;min-height:0;padding:16px;overflow:auto;border-right:1px solid var(--line);background:#f7f5ee}.inspect-pane{gap:12px;border-right:0;border-left:1px solid var(--line)}.inspect-pane,.workspace{display:flex;flex-direction:column}.workspace{min-width:0;min-height:0;overflow:hidden}.workspace-header{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 22px;border-bottom:1px solid var(--line);background:rgba(247,245,238,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand-lockup{display:grid;grid-gap:2px;gap:2px;min-width:0}.brand-lockup strong{color:var(--brand);font-size:15px;letter-spacing:.06em;text-transform:uppercase}.brand-lockup span,.field span,.hint{color:var(--muted);font-size:13px}.preview-toolbar{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:14px}.zoom-control{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.zoom-level{min-width:42px;padding:0 7px;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.zoom-control button{min-height:28px;padding:0 8px;border-radius:4px;background:transparent;color:var(--brand);cursor:pointer;font-size:12px}.zoom-control button[aria-pressed=true]{background:var(--brand);color:#fff}.zoom-control button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.pane-title{margin:0;font-size:20px;font-weight:500;letter-spacing:0}.section-label{margin:16px 0 8px;color:var(--brand);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.upload-zone{display:grid;grid-gap:8px;gap:8px;padding:16px;border:1px dashed #b8b2a4;border-radius:8px;background:var(--paper);color:var(--ink);cursor:pointer;transition:border-color .16s ease,transform .16s ease}.upload-zone:hover{border-color:var(--brand);transform:translateY(-1px)}.upload-zone.is-dragging{border-color:var(--brand);background:var(--brand-soft)}.upload-zone input{display:none}.upload-zone strong{display:flex;align-items:center;gap:8px;font-weight:500}.field{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);padding:9px 10px;outline:none}.field textarea{min-height:220px;resize:vertical;line-height:1.45;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:12px}.markdown-field{display:flex;flex-direction:column;flex:1 1;min-height:0;margin-bottom:0}.markdown-field textarea{flex:1 1;min-height:360px;resize:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand)}.switch-field{position:relative;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;cursor:pointer}.switch-field>span:first-child{display:grid;grid-gap:3px;gap:3px}.switch-field strong{color:var(--ink);font-size:14px;font-weight:500}.switch-field small{color:var(--muted);font-size:12px}.switch-field input{position:absolute;opacity:0;pointer-events:none}.switch-track{position:relative;width:44px;height:24px;flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#fff;transition:background .16s ease,border-color .16s ease}.switch-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted);box-shadow:0 1px 3px rgba(20,20,19,.16);transition:background .16s ease,transform .16s ease}.switch-field input:checked+.switch-track{border-color:var(--brand);background:var(--brand)}.switch-field input:checked+.switch-track .switch-thumb{background:#fff;transform:translateX(20px)}.switch-field input:focus-visible+.switch-track{outline:2px solid var(--brand-soft);outline-offset:2px}.stepper-control{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;min-height:40px;border:1px solid var(--line);border-radius:6px;background:var(--paper);overflow:hidden}.stepper-button{width:34px;height:40px;display:inline-grid;place-items:center;background:transparent;color:var(--brand);cursor:pointer;transition:background-color .16s ease,opacity .16s ease}.stepper-button:not(:disabled):hover{background:var(--brand-soft)}.stepper-button:disabled{cursor:not-allowed;opacity:.38}.stepper-button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.stepper-value{color:var(--muted);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:12px}.button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;background:var(--brand);color:#fff;cursor:pointer;transition:transform .16s ease,opacity .16s ease}.button.secondary{border:1px solid var(--line);background:var(--paper);color:var(--brand)}.button:disabled{cursor:not-allowed;opacity:.55}.button:not(:disabled):hover{transform:translateY(-1px)}.spin-icon{animation:spin .9s linear infinite}.warning-summary{display:grid;grid-gap:4px;gap:4px;margin-top:12px;padding:10px 12px;border-left:3px solid var(--danger);border-radius:4px;background:#faf3ec;color:var(--danger);font-size:13px}.warning-summary strong{color:var(--danger);font-weight:600}.warning-summary span{color:var(--danger);line-height:1.35}.preview-stage{--frame-scale:1;--frame-width:842px;--frame-height:720px;--scaled-frame-height:720px;flex:1 1;min-height:0;display:flex;justify-content:center;align-items:flex-start;overflow:auto;overflow-x:hidden;padding:24px 18px;background:#dedbd0}.preview-stage.is-actual-size{justify-content:flex-start;overflow-x:auto}.preview-frame-shell{width:var(--frame-width);height:var(--scaled-frame-height);flex:0 0 auto;overflow:hidden}.preview-frame{width:842px;height:var(--frame-height);border:0;display:block;background:#dedbd0;transform:scale(var(--frame-scale));transform-origin:top left}.empty-preview{min-height:100%;display:grid;place-items:center;color:var(--muted);text-align:center}.status-stack{display:grid;grid-gap:6px;gap:6px;margin-top:10px}.status-line{min-height:20px;color:var(--muted);font-size:13px;line-height:1.35}.status-line.error{color:var(--danger)}.status-line.info{color:var(--muted)}.auth-shell{min-height:100svh;display:grid;place-items:center;padding:24px;background:var(--paper)}.auth-panel{width:min(100%,280px);display:grid;justify-items:center;grid-gap:12px;gap:12px;text-align:center}.auth-panel h1{margin:0;color:var(--ink);font-size:22px;font-weight:500;letter-spacing:0}.auth-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.auth-login-stack{width:232px;display:grid;justify-items:center}.naughty-cat{width:213px;max-width:100%;height:auto;filter:drop-shadow(0 4px 2px rgba(20,20,19,.05));margin-bottom:-8px;pointer-events:none;position:relative;z-index:3;animation:auth-entrance .18s ease-out both}.auth-google-button,.auth-secondary-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid rgba(20,20,19,.14);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;font-weight:500;letter-spacing:0;box-shadow:0 1px 2px rgba(20,20,19,.06);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.auth-google-button{width:232px;position:relative;z-index:2;animation:auth-entrance .18s ease-out both}.auth-secondary-button{min-height:40px;padding:0 18px;color:var(--brand)}.auth-google-button:not(:disabled):hover,.auth-secondary-button:not(:disabled):hover{border-color:rgba(27,54,93,.28);box-shadow:0 6px 18px rgba(20,20,19,.08);transform:translateY(-1px)}.auth-google-button:focus-visible,.auth-secondary-button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.auth-google-button:disabled{cursor:wait;opacity:.72}.google-mark{width:18px;height:18px;flex:0 0 auto}.auth-error,.auth-loading{margin:0;font-size:13px;line-height:1.45}.auth-error{color:var(--danger)}.auth-loading{color:var(--muted)}@keyframes spin{to{transform:rotate(1turn)}}@keyframes auth-entrance{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1120px){.app-shell{grid-template-columns:minmax(260px,280px) minmax(0,1fr) minmax(280px,300px)}.preview-stage{padding:18px 12px}}@media (max-width:920px){.app-shell{display:block;grid-template-columns:1fr;overflow:auto}.side-pane{border-right:0}.inspect-pane,.side-pane{border-bottom:1px solid var(--line)}.inspect-pane{order:2;border-left:0}.workspace{order:3;min-height:78svh}.workspace-header{height:auto;align-items:flex-start;flex-direction:column;padding:16px}.preview-toolbar{width:100%;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.preview-stage{flex:0 0 70svh;height:70svh;min-height:70svh}.markdown-field textarea{min-height:280px}}