:root{--ink:#142a3b;--muted:#657787;--line:#d9e3ea;--line-strong:#c4d2dc;--blue:#176f9e;--blue-dark:#0e587e;--blue-soft:#e9f6fd;--paper:#fff;--surface:#f3f7f9;--success:#27855e;--danger:#a64141;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--ink);background:#edf3f6;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #176f9e47}.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}.app-page{min-height:100vh}.app-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border-bottom:1px solid #c4d2dcd9;justify-content:space-between;align-items:center;height:76px;padding:0 clamp(18px,4vw,60px);display:flex;position:sticky;top:0}.brand{color:inherit;align-items:center;gap:11px;text-decoration:none;display:flex}.brand-mark{color:#fff;background:var(--blue);border-radius:12px;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 5px 14px #176f9e38}.brand>span:last-child{gap:1px;display:grid}.brand strong{letter-spacing:-.01em;font-size:16px}.brand small{color:var(--muted);font-size:11px}.privacy-pill{color:#235f7f;background:#f2faff;border:1px solid #cce2ee;border-radius:999px;align-items:center;gap:7px;padding:8px 11px;font-size:12px;font-weight:650;display:flex}.workspace{grid-template-columns:minmax(360px,500px) minmax(440px,1fr);align-items:start;gap:22px;width:min(1440px,100% - 36px);margin:0 auto;padding:24px 0 42px;display:grid}.controls{gap:16px;display:grid}.panel,.preview-panel,.action-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:0 8px 28px #1731420e}.panel{padding:21px}.intro-panel{gap:15px;display:grid}.eyebrow{color:var(--blue);letter-spacing:.105em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:800}h1,h2,p{margin-top:0}h1{letter-spacing:-.035em;margin-bottom:7px;font-size:clamp(22px,3vw,29px);line-height:1.12}.intro-panel>div>p:last-child{color:var(--muted);margin-bottom:0;line-height:1.55}.dropzone{cursor:pointer;text-align:left;background:#f6fbfe;border:1.5px dashed #9fc8dd;border-radius:13px;align-items:center;gap:13px;width:100%;padding:15px;transition:border-color .15s,background .15s,transform .15s;display:flex}.dropzone:hover{border-color:var(--blue);background:#ecf8fe;transform:translateY(-1px)}.upload-icon{width:42px;height:42px;color:var(--blue);background:#fff;border-radius:11px;flex:none;place-items:center;display:grid;box-shadow:0 2px 10px #176f9e1f}.dropzone>span:last-child,.file-summary>span{gap:3px;min-width:0;display:grid}.dropzone small,.file-summary small{color:var(--muted);font-size:12px;font-weight:450}.file-summary{background:#f7fbf8;border:1px solid #d9e8df;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.file-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.success-icon{color:var(--success)}.mode-switch{background:#edf2f5;border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.mode-switch button{cursor:pointer;color:#5a6d7c;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:43px;font-weight:700;display:flex}.mode-switch button.active{color:var(--blue-dark);background:#fff;box-shadow:0 2px 9px #1c3d501a}.section-heading{justify-content:space-between;align-items:end;gap:12px;margin:19px 0 11px;display:flex}.section-heading>div{gap:3px;display:grid}.section-heading small{color:var(--muted);font-size:12px}.text-button{cursor:pointer;color:var(--blue);background:0 0;border:0;font-size:12px;font-weight:750}.margin-grid,.paper-settings{grid-template-columns:1fr 1fr;gap:11px;display:grid}.number-field{color:#476071;gap:6px;font-size:12px;font-weight:650;display:grid}.input-with-unit{border:1px solid var(--line-strong);background:#fff;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;height:42px;display:grid;overflow:hidden}.input-with-unit:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #176f9e1a}.input-with-unit input{width:100%;height:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:0 10px;font-size:14px;font-weight:650}.input-with-unit>span{color:#738695;padding:0 10px 0 3px;font-size:12px;font-weight:600}.gap-field{margin-top:11px}.size-help{border-top:1px solid #edf1f4;margin-top:14px;padding-top:12px}.size-help summary{cursor:pointer;color:var(--blue-dark);font-size:12px;font-weight:750}.size-table{color:var(--muted);grid-template-columns:1fr auto;gap:7px 18px;margin-top:10px;font-size:12px;display:grid}.size-table strong{color:#3f5666;font-variant-numeric:tabular-nums}.pattern-picker{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pattern-picker button{border:1px solid var(--line);cursor:pointer;color:#647684;background:#fbfcfd;border-radius:11px;place-items:center;gap:5px;min-height:68px;font-size:12px;font-weight:700;display:grid}.pattern-picker button.active{color:var(--blue-dark);background:var(--blue-soft);border-color:#76b4d2;box-shadow:inset 0 0 0 1px #b5dceb}.blank-icon{background:#fff;border:1px solid;border-radius:3px;width:19px;height:19px;display:block}.paper-settings{margin-top:14px}.color-field{color:#476071;gap:6px;font-size:12px;font-weight:650;display:grid}.color-field>span:last-child{border:1px solid var(--line-strong);background:#fff;border-radius:10px;align-items:center;gap:9px;height:42px;padding:5px 9px;display:flex}.color-field input[type=color]{cursor:pointer;background:0 0;border:0;border-radius:7px;width:27px;height:27px;padding:0}.color-field code{color:#526979;font-size:12px}.background-field{margin-top:12px}.check-field{color:#536b7b;cursor:pointer;grid-column:1/-1;align-items:center;gap:9px;font-size:12px;display:flex}.check-field input{width:17px;height:17px;accent-color:var(--blue)}.action-panel{padding:17px 20px}.primary-button{cursor:pointer;color:#fff;background:var(--blue);border:0;border-radius:11px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:48px;font-weight:760;transition:background .15s,transform .15s;display:flex;box-shadow:0 7px 16px #176f9e36}.primary-button:hover:not(:disabled){background:var(--blue-dark);transform:translateY(-1px)}.primary-button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.status-line{color:var(--muted);align-items:center;gap:7px;margin-bottom:10px;font-size:12px;display:flex}.status-dot{background:#94a4af;border-radius:50%;width:7px;height:7px}.status-dot.working{background:var(--blue);animation:1.2s infinite pulse;box-shadow:0 0 0 5px #176f9e1a}.privacy-note{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin:10px 0 0;font-size:11px;display:flex}.error-message{color:var(--danger);background:#fff7f7;border:1px solid #edcdcd;border-radius:9px;margin-bottom:10px;padding:10px 12px;font-size:12px;line-height:1.45}progress{width:100%;height:7px;accent-color:var(--blue);border:0;border-radius:99px;margin-bottom:10px;overflow:hidden}.preview-panel{min-height:calc(100vh - 126px);position:sticky;top:100px;overflow:hidden}.preview-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:18px 21px;display:flex}.preview-header .eyebrow{margin-bottom:3px}.preview-header h2{letter-spacing:-.02em;margin:0;font-size:18px}.preview-header>span{color:var(--muted);background:#f1f5f7;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:700}.preview-host{background-color:#e4ebef;background-image:radial-gradient(#cad5dc .7px,#0000 .7px);background-size:15px 15px;place-items:center;min-height:min(690px,100vh - 245px);padding:20px;display:grid;overflow:auto}.preview-canvas{background:#fff;border-radius:2px;max-width:100%;display:block;box-shadow:0 12px 33px #1e334130}.preview-empty{max-width:310px;color:var(--muted);text-align:center;place-items:center;gap:8px;display:grid}.preview-empty strong{color:#395162}.preview-empty>span:last-child{font-size:12px}.preview-placeholder{background:#fff;border:1px solid #bacbd5;border-radius:3px;grid-template-columns:120px 62px;height:170px;margin-bottom:12px;display:grid;overflow:hidden;box-shadow:0 10px 26px #1e334121}.placeholder-page{background:linear-gradient(#e6ecef 1px,#0000 1px) 0 0/100% 19px;border-right:1px solid #a9c8d9}.placeholder-notes{background-color:#fbfdff;background-image:linear-gradient(#d7edf9 1px,#0000 1px),linear-gradient(90deg,#d7edf9 1px,#0000 1px);background-size:14px 14px}.preview-hint{border-top:1px solid var(--line);color:var(--muted);text-align:center;background:#fbfcfd;margin:0;padding:11px 19px;font-size:11px}.spinner{border:3px solid #c9dce6;border-top-color:var(--blue);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}footer{border-top:1px solid var(--line);color:var(--muted);background:#fff;justify-content:space-between;gap:18px;padding:20px clamp(18px,4vw,60px);font-size:11px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}@media (max-width:940px){.workspace{grid-template-columns:1fr;width:min(720px,100% - 28px)}.preview-panel{order:-1;min-height:0;position:static}.preview-host{min-height:480px;max-height:720px}}@media (max-width:560px){body{font-size:14px}.app-header{height:66px;padding:0 14px}.brand small{display:none}.brand-mark{width:36px;height:36px}.privacy-pill{padding:7px 9px;font-size:0}.privacy-pill svg{width:17px;height:17px}.workspace{width:calc(100% - 20px);padding-top:12px}.panel{padding:17px}.preview-panel{border-radius:13px}.preview-host{min-height:370px;max-height:620px;padding:12px}.margin-grid,.paper-settings{grid-template-columns:1fr}.check-field{grid-column:auto}.pattern-picker button{min-height:62px}.dropzone{align-items:flex-start}.section-heading{align-items:center}footer{text-align:center;flex-direction:column;align-items:center;gap:5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
