@font-face{font-family:Linefold;src:url(/fonts/Linefold-Regular.ttf)format("truetype");font-display:swap}:root{color:#263d34;font-synthesis:none;--green:#28574b;--muted:#7a827b;--line:#e4e7df;--paper:#fff;--accent:#bd6a45;background:#f6f5f0;font-family:Inter,Linefold,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button,input,select{outline:none}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #85ad98}button{color:inherit}svg.icon{vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.topbar{border-bottom:1px solid var(--line);background:#fbfbf8;justify-content:space-between;align-items:center;gap:20px;height:80px;padding:0 34px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{width:34px;height:38px;color:var(--green)}.brand-name{letter-spacing:-1.2px;font-size:25px;font-weight:620}.brand-tag{letter-spacing:2.1px;text-transform:uppercase;color:#8e978b;margin-top:3px;font-size:10px}.top-actions{align-items:center;gap:18px;display:flex}.local-pill{color:#667b6a;align-items:center;gap:7px;font-size:12px;display:flex}.local-dot{background:#6b9476;border-radius:50%;width:6px;height:6px}.language-wrap{align-items:center;gap:7px;display:flex}.language-wrap select{color:#4b5f51;background:0 0;border:0;max-width:130px;padding:8px 18px 8px 2px;font-size:12px}.icon-button{border:1px solid var(--line);background:0 0;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover{background:#eef1e9}.workspace{grid-template-columns:320px minmax(0,1fr);height:calc(100dvh - 80px);min-height:650px;display:grid}.sidebar{border-right:1px solid var(--line);background:#fbfbf8;padding:25px 24px;overflow:auto}.step-heading{align-items:center;gap:9px;margin:0 0 16px;font-size:13px;font-weight:600;display:flex}.step-num{color:#7d897c;border:1px solid #d7ded2;border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:500;display:inline-grid}.section{margin-bottom:25px}.source-card{background:#fff;border:1px solid #dee4d9;border-radius:12px;overflow:hidden}.source-row{align-items:center;gap:12px;padding:14px;display:flex}.source-thumb{object-fit:contain;background:#f8f8f3;border:1px solid #eff0e9;border-radius:4px;width:45px;height:58px}.source-info{flex:1;min-width:0}.source-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:550;overflow:hidden}.source-meta{color:var(--muted);margin-top:5px;font-size:10px}.source-actions{border-top:1px solid #edf0e7;display:flex}.source-actions button{color:#697e6d;background:#fafbf7;border:0;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 4px;font-size:11px;display:flex}.source-actions button+button{border-left:1px solid #edf0e7}.source-actions button:hover{background:#edf2e9}.source-actions svg{width:14px;height:14px}.drop-zone{text-align:center;background:#f3f7ee;border:1.5px dashed #c0cfbc;border-radius:12px;justify-content:center;align-items:center;min-height:155px;padding:20px;display:flex}.drop-zone.dragging,.sidebar.dragging .source-card{background:#ecf4e6;outline:3px solid #8bb89a}.drop-zone p{margin:9px 0;font-size:13px}.drop-zone small{color:var(--muted);font-size:11px}.label-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.label{color:#778172;font-size:11px}.unit-toggle,.segmented{background:#edf0e8;border-radius:7px;gap:3px;padding:3px;display:flex}.unit-toggle button,.segmented button{color:#7d887a;background:0 0;border:0;border-radius:5px;min-width:0;padding:5px 11px;font-size:11px}.unit-toggle button.active,.segmented button.active{color:#315d47;background:#fff;box-shadow:0 1px 3px #283b2020}.size-fields{align-items:center;gap:9px;display:flex}.field{flex:1;min-width:0}.field label{color:#7c8578;margin-bottom:6px;font-size:10px;display:block}.input-wrap{position:relative}.input-wrap input{font-variant-numeric:tabular-nums;color:#36563d;appearance:textfield;background:#fff;border:1px solid #dfe4d9;border-radius:8px;width:100%;padding:11px 30px 11px 11px;font-size:17px}.input-wrap input::-webkit-inner-spin-button{appearance:none}.input-wrap span{color:#9aa18f;font-size:10px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.ratio-lock{color:#8e9c88;padding-top:20px;display:flex}.ratio-lock svg{width:16px}.text-button{color:#64846a;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:11px;display:inline-flex}.text-button:hover{color:#28574b}.reference-button{margin-top:13px}.reference-button svg{width:14px}.paper-select{color:#48634c;background:#fff;border:1px solid #dfe4d9;border-radius:8px;width:100%;padding:10px 11px;font-size:12px}.paper-select-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.paper-select-row .field .input-wrap input{padding-top:10px;padding-bottom:10px;font-size:14px}.orientation{margin:10px 0 16px}.orientation button{flex:1;justify-content:center;align-items:center;gap:7px;display:flex}.orientation svg{width:13px;height:16px}.check-row{color:#60715f;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;margin:11px 0;font-size:11px;display:flex}.check-row>span{align-items:center;gap:8px;display:flex}.check-row input{appearance:none;cursor:pointer;background:#fff;border:1px solid #cdd7c6;border-radius:4px;flex-shrink:0;width:15px;height:15px}.check-row input:checked{background:var(--green);border-color:var(--green);position:relative}.check-row input:checked:after{content:"";border-bottom:1.5px solid #fff;border-left:1.5px solid #fff;width:6px;height:3px;position:absolute;top:4px;left:3px;transform:rotate(-45deg)}.sidebar-divider{background:var(--line);height:1px;margin:22px 0}.studio{flex-direction:column;min-width:0;display:flex;overflow:hidden}.studio-head{justify-content:space-between;align-items:flex-start;gap:14px;padding:27px 34px 22px;display:flex}.eyebrow{color:#8b9788;letter-spacing:1.9px;text-transform:uppercase;margin-bottom:9px;font-size:9px;font-weight:600}.studio-head h1{letter-spacing:-.6px;margin:0 0 8px;font-size:25px;font-weight:500;line-height:1.25}.studio-head p{color:#8c9687;margin:0;font-size:11px}.view-control{align-items:center;gap:8px;display:flex}.view-control button{white-space:nowrap;background:#fcfdf9;border:1px solid #dce2d6;border-radius:7px;align-items:center;gap:5px;padding:7px 10px;font-size:11px;display:flex}.view-control .zoom-label{color:#8b9782;text-align:center;font-variant-numeric:tabular-nums;min-width:32px;font-size:10px}.view-control .zoom-button{justify-content:center;width:29px;padding:7px}.view-control .icon{width:13px;height:13px}.preview-stage{background-color:#edefe6;background-image:radial-gradient(#c8d2be .75px,#0000 .75px);background-size:14px 14px;border:1px solid #e2e6db;border-radius:13px;flex:1;justify-content:center;align-items:center;min-height:350px;margin:0 26px;padding:36px 28px 35px;display:flex;position:relative;overflow:auto}.grid-scene{flex-shrink:0;transition:opacity .15s;position:relative}.paper-grid{gap:14px;display:grid;position:relative}.paper-tile{background:#fff;border:0;border-radius:1px;padding:0;transition:opacity .15s,box-shadow .15s;display:block;position:relative;box-shadow:0 3px 12px #34412412,0 1px 2px #3441240a}.paper-tile.selected{outline-offset:0;outline:1px solid #879d77}.paper-tile:not(.selected){opacity:.35;box-shadow:none}.paper-tile:hover{opacity:1;outline:2px solid #789b68}.paper-tile canvas{width:100%;height:100%;display:block}.tile-badge{color:#9ba294;letter-spacing:.5px;pointer-events:none;font-size:9px;position:absolute;top:8px;left:8px}.tile-check{pointer-events:none;background:#648767;border-radius:50%;place-items:center;width:13px;height:13px;display:grid;position:absolute;bottom:7px;right:7px}.tile-check svg{stroke:#fff;stroke-width:2px;width:9px;height:9px}.dimension-top{font-variant-numeric:tabular-nums;color:#859278;white-space:nowrap;justify-content:center;align-items:center;gap:9px;font-size:10px;display:flex;position:absolute;bottom:calc(100% + 15px);left:0;right:0}.dimension-top:before,.dimension-top:after{content:"";border-top:1px solid #b7c4ad;flex:1;height:5px}.dimension-top:before{border-left:1px solid #b7c4ad}.dimension-top:after{border-right:1px solid #b7c4ad}.stage-caption{pointer-events:none;color:#8d9a80;justify-content:space-between;gap:12px;font-size:9px;display:flex;position:absolute;bottom:12px;left:15px;right:15px}.preview-footer{color:#7a8b70;justify-content:space-between;align-items:center;gap:10px;padding:16px 31px;font-size:11px;display:flex}.preview-footer .selection{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.preview-footer strong{color:#425b3e;font-weight:500}.preview-footer button{text-underline-offset:3px;font-size:10px;text-decoration:underline}.export-bar{border-top:1px solid var(--line);background:#fbfbf7;justify-content:space-between;align-items:center;gap:20px;padding:18px 32px;display:flex}.export-summary{align-items:center;gap:12px;display:flex}.export-icon{color:#7f936e;background:#f0f3eb;border-radius:7px;place-items:center;width:39px;height:43px;display:grid}.export-copy strong{margin-bottom:4px;font-size:12px;font-weight:550;display:block}.export-copy span{color:#89977d;font-size:10px}.primary{background:var(--green);color:#fff;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:42px;padding:12px 20px;font-size:12px;font-weight:500;display:inline-flex;box-shadow:0 2px 3px #344f2d10}.primary:hover{background:#1d493e}.primary .icon{width:16px;height:16px}.secondary{color:#617255;background:#fff;border:1px solid #d9e2d1;border-radius:8px;padding:11px 16px;font-size:12px}.error{color:#9e5536;background:#fff1e8;border:1px solid #edc8b6;border-radius:8px;margin:12px 0;padding:10px 12px;font-size:11px;line-height:1.6}.toast{z-index:30;color:#fff;background:#254d41;border-radius:10px;max-width:90vw;padding:12px 20px;font-size:12px;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 6px 25px #1c30252a}.empty-preview{text-align:center;color:#94a08c;flex-direction:column;align-items:center;gap:14px;display:flex}.empty-preview svg{stroke-width:1px;width:48px;height:48px}.empty-preview button{margin-top:5px}.hidden{display:none!important}dialog{color:#354d3c;background:#fdfdf9;border:1px solid #dce3d7;border-radius:16px;width:min(520px,100vw - 30px);max-height:90dvh;padding:28px;overflow:auto;box-shadow:0 16px 90px #25372a30}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#20312655}.dialog-head{justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px;display:flex}.dialog-head h2{letter-spacing:-.4px;margin:0 0 7px;font-size:19px;font-weight:550}.dialog-head p{color:#87917f;margin:0;font-size:12px;line-height:1.7}.dialog-body{color:#63765c;font-size:12px;line-height:1.9}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.calibration-visual{color:#6b8762;background:#fff;border:1px solid #e1e6d8;border-radius:10px;justify-content:center;align-items:center;margin:20px 0;padding:30px;display:flex}.calibration-rule{text-align:center;border-top:1px solid #71866a;width:180px;padding-top:12px;font-size:12px;position:relative}.calibration-rule:before,.calibration-rule:after{content:"";border-left:1px solid #71866a;height:10px;position:absolute;top:-5px}.calibration-rule:before{left:0}.calibration-rule:after{right:0}.reference-dialog{width:min(780px,100vw - 30px)}.reference-canvas-wrap{background:#eef1e7;border:1px solid #dde5d5;border-radius:9px;justify-content:center;min-height:180px;max-height:48dvh;padding:14px;display:flex;overflow:auto}.reference-canvas-wrap canvas{cursor:crosshair;touch-action:manipulation;background:#fff;width:auto;max-width:100%;height:auto;max-height:44dvh;display:block}.reference-controls{align-items:end;gap:15px;margin-top:16px;display:flex}.reference-controls .field{max-width:180px}.reference-controls .field input{font-size:15px}.reference-status{color:#809071;margin:12px 0 0;font-size:11px;line-height:1.6}.spinner{border:1.5px solid #ffffff50;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=1600px){.workspace{grid-template-columns:355px minmax(0,1fr)}.sidebar{padding:30px}.studio-head{padding-left:45px;padding-right:45px}.preview-stage{margin-left:38px;margin-right:38px}.studio-head h1{font-size:28px}}@media (width<=1050px){.workspace{grid-template-columns:285px minmax(0,1fr)}.sidebar{padding:23px 19px}.topbar{padding:0 24px}.studio-head{padding:24px 22px}.studio-head h1{font-size:21px}.view-control{gap:4px}.preview-stage{margin:0 18px}.export-bar{padding:16px 22px}.export-summary{gap:8px}.export-icon{display:none}}@media (width<=760px){.topbar{height:68px;padding:0 18px}.brand-name{font-size:23px}.brand-tag{letter-spacing:1.5px;font-size:8px}.brand-mark{width:29px;height:33px}.top-actions{gap:8px}.local-pill{display:none}.language-wrap select{max-width:95px;font-size:11px}.workspace{flex-direction:column;height:auto;min-height:0;display:flex}.sidebar{border-right:0;border-bottom:1px solid var(--line);order:1;grid-template-columns:1fr 1fr;gap:0 22px;padding:22px 20px;display:grid;overflow:visible}.sidebar .section{margin-bottom:19px}.sidebar .section:first-of-type,.sidebar .section:nth-of-type(4){grid-column:1/-1}.sidebar-divider{display:none}.step-heading{margin-bottom:12px}.source-row{padding:11px 14px}.source-thumb{width:34px;height:43px}.source-actions button{padding:8px}.check-options{grid-template-columns:1fr 1fr;gap:0 15px;display:grid}.check-row{line-height:1.6}.studio{order:2;min-height:650px}.studio-head{align-items:center;padding:22px 20px 18px}.studio-head h1{font-size:21px}.eyebrow{font-size:8px}.view-control .fit-label{display:none}.preview-stage{flex:none;height:450px;min-height:450px;padding:34px 24px}.stage-caption{font-size:8px}.preview-footer{padding:14px 20px}.export-bar{z-index:5;gap:10px;padding:15px 20px;position:sticky;bottom:0;box-shadow:0 -4px 15px #283b2010}.export-summary strong{font-size:11px}.export-summary span{font-size:9px}.export-bar .primary{white-space:nowrap;padding:12px 14px;font-size:11px}.section .error{grid-column:1/-1}.paper-select-row{gap:7px}.input-wrap input{padding-left:8px;font-size:15px}.unit-toggle button{padding:4px 6px}.orientation button{padding:6px 3px;font-size:10px}.ratio-lock{width:12px}.reference-button{font-size:10px}.label-row{flex-direction:column;align-items:flex-start;gap:7px}.unit-toggle{align-self:flex-start}.unit-toggle button{white-space:nowrap}}@media (width<=400px){.sidebar{gap:0 15px;padding:20px 16px}.studio-head{padding-left:17px;padding-right:17px}.studio-head h1{font-size:19px}.export-copy span{max-width:145px;line-height:1.5;display:block}.export-bar,.topbar{padding-left:16px;padding-right:16px}.brand-tag,.language-wrap .icon{display:none}}a{color:inherit;text-decoration:none}a:focus-visible{outline-offset:3px;outline:3px solid #85ad98}.workspace{height:calc(100dvh - 125px)}.example-picker{color:#7b8972;justify-content:space-between;align-items:center;gap:8px;margin:12px 0 0;font-size:10px;display:flex}.example-picker select{color:#647c60;background:#fff;border:1px solid #dce4d5;border-radius:5px;max-width:150px;padding:6px;font-size:10px}.calibration-only{justify-content:center;align-items:center;gap:7px;width:100%;margin-top:19px;padding:10px;font-size:11px;display:flex}.calibration-only svg{width:15px;height:15px}.beta-note{color:#a0aa93;margin:12px 0 0;font-size:9px;line-height:1.8}.quality-note{color:#a17d48;background:#f8f1df;border:1px solid #e9ddbf;border-radius:6px;margin:12px 0 0;padding:9px 10px;font-size:10px;line-height:1.8}.app-footer{color:#8d9d80;background:#f9faf5;border-top:1px solid #e4e9db;justify-content:space-between;align-items:center;gap:14px;min-height:45px;padding:11px 30px;font-size:10px;display:flex}.app-footer nav{flex-wrap:wrap;align-items:center;gap:12px 19px;display:flex}.app-footer a:hover{text-decoration:underline}.app-footer .text-button{color:#a7b398;font-size:9px}@media (width<=760px){.workspace{height:auto}.calibration-only{margin-top:13px}.beta-note{font-size:9px}.app-footer{flex-direction:column;align-items:flex-start;gap:13px;padding:14px 18px}.app-footer nav{gap:22px;font-size:10px}.app-footer .text-button{font-size:10px}.example-picker,.example-picker select{font-size:11px}.quality-note{font-size:10px}.sidebar .section:nth-of-type(4){margin-bottom:0}.preview-stage{height:430px;min-height:430px}.beta-note{max-width:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
