:root{--bg: #f4efe6;--bg-2: #ebe3d5;--panel: #fffdf9;--line: #ddd2c0;--line-2: #cbbda6;--text: #3b3127;--muted: #7d6f5f;--accent: #b8692e;--accent-ink: #ffffff;--accent-soft: #f6e6d6;--warn-bg: #fdf0dc;--warn: #8a5512;--radius: 10px;--shadow: 0 1px 2px rgba(80, 60, 30, .06), 0 4px 14px rgba(80, 60, 30, .06);color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}a{color:inherit}[hidden]{display:none!important}.muted{color:var(--muted)}.small{font-size:13px}.visually-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:700;text-decoration:none;font-size:17px}.brand-mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--accent),#d9a36d);box-shadow:inset 0 0 0 3px #ffffff80}.main{max-width:1480px;margin:0 auto;padding:20px 16px 48px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 14px;border-radius:8px;border:1px solid var(--line-2);background:var(--panel);color:var(--text);font:inherit;font-weight:550;cursor:pointer;text-decoration:none}.btn:hover{background:var(--bg-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:#a65c25}.btn-secondary{background:var(--accent-soft);border-color:#e7c9ab}.btn-ghost{background:transparent}.btn-block{width:100%}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.btn-row.tight{gap:4px}.btn .icon{display:inline-flex}.btn-icon{min-width:38px;padding:0 9px}.btn-icon.with-text{padding:0 12px 0 9px}.btn-lg{min-height:50px;font-size:17px;border-radius:10px}.btn-link{background:transparent;border-color:transparent;color:var(--accent);min-height:32px;padding:0 6px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#e2b993}.btn-link:hover:not(:disabled){background:var(--accent-soft)}.btn-overlay{background:#fffdf9eb;min-height:32px;padding:0 10px;font-size:13px;box-shadow:var(--shadow)}.btn-row.spread{justify-content:space-between;align-items:center}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home{max-width:1000px;margin:24px auto;text-align:center}.home-title{font-size:28px;margin-bottom:6px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-top:28px}.tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:14px;text-decoration:none;box-shadow:var(--shadow);transition:transform .12s,border-color .12s}a.tile:hover{transform:translateY(-2px);border-color:var(--accent)}.tile-icon{color:var(--accent);display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--accent-soft)}.tile-title{font-weight:650;font-size:16px}.tile-desc{font-size:13px;color:var(--muted)}.tile.disabled{opacity:.6;cursor:default;box-shadow:none}.tile.disabled .tile-icon{color:var(--muted);background:var(--bg-2)}.badge{position:absolute;top:10px;right:10px;font-size:11px;padding:2px 8px;border-radius:99px;background:var(--bg-2);color:var(--muted)}.screen-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 12px}.screen-head h1{font-size:20px}.screen-head p{margin:0;font-size:14px}.id-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.step{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0;min-height:0}.step-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 0}.step-head h2{display:flex;align-items:center;gap:8px;font-size:17px;white-space:nowrap}.step-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px;font-weight:700}.step-body{display:flex;flex-direction:column;gap:12px;padding:12px 14px 14px;min-height:0}.group{display:flex;flex-direction:column;gap:6px}.group-label{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}@media(min-width:1100px){.main.main-id{height:calc(100vh - 63px);height:calc(100dvh - 63px);display:flex;flex-direction:column;padding:12px 16px 14px}.main-id .id-layout{flex:1;min-height:0;grid-template-columns:300px minmax(0,1fr) 360px;align-items:stretch}.main-id .step{height:100%}.main-id .step-3{position:sticky;top:75px}.step-body-scroll{flex:1;overflow-y:auto}.photo-body{flex:1}.photo-body .crop-stage{flex:1;min-height:0}.print-body{flex:1;overflow:hidden}.print-body .sheet-stage{flex:1 1 0;min-height:150px}.print-body .print-controls{flex:0 1 auto;min-height:0;overflow-y:auto;margin-right:-8px;padding-right:8px}.print-body .print-actions{flex:none}}@media(min-width:1100px)and (max-width:1320px){.main-id .id-layout{grid-template-columns:270px minmax(0,1fr) 330px}}@media(max-width:1099px){.crop-stage{height:min(68vh,520px)}.sheet-stage{height:min(60vh,380px)}}@media(max-width:760px){.main{padding:12px 10px 40px}.screen-head p,.crop-hint{display:none}}.size-search{position:relative;display:flex;align-items:center}.size-search-icon{position:absolute;left:10px;color:var(--muted);display:inline-flex;pointer-events:none}.size-search-input{width:100%;padding:8px 10px 8px 34px;border:1px solid var(--line-2);border-radius:8px;background:#fff;font:inherit;color:inherit}.size-search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.size-popular{display:flex;flex-direction:column;gap:6px}.size-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.size-card{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;position:relative;padding:10px 10px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel);cursor:pointer;font:inherit;color:inherit}.size-card:hover{border-color:var(--line-2);background:var(--bg)}.size-card-name{font-weight:650;font-size:14px;line-height:1.25}.size-card-dims{font-size:17px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.size-card-mm{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.size-card.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.size-card.active:after{content:"✓";position:absolute;top:7px;right:8px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}.size-groups{display:flex;flex-direction:column;gap:8px}.size-group{display:flex;flex-direction:column;gap:2px}.size-group-label{font-size:12px;color:var(--muted);font-weight:600;padding:2px 0}.size-rows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden}.size-row{display:flex;align-items:baseline;gap:8px;text-align:left;padding:6px 10px;border:0;border-top:1px solid var(--line);background:var(--panel);font:inherit;color:inherit;cursor:pointer;min-width:0}.size-rows .size-row:first-child{border-top:0}.size-row:hover{background:var(--bg)}.size-row-name{flex:none;font-weight:600;font-size:13px;font-variant-numeric:tabular-nums;min-width:78px}.size-row-use{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.size-row.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.size-row.active .size-row-name{color:var(--accent)}.size-custom{display:flex;flex-direction:column;gap:8px}.size-custom>.size-row{border:1px solid var(--line);border-radius:8px}.size-current{margin:0;padding:8px 14px 10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-results{margin:0}.crop-hint{margin:0;text-align:right;line-height:1.3;font-size:12px;max-width:460px}.photo-body{gap:10px}.crop-stage{position:relative;display:grid;place-items:center;overflow:hidden;background:repeating-conic-gradient(#e9e1d3 0,#e9e1d3 25%,#f1eadf 0,#f1eadf 50%) 0 0 / 20px 20px;border-radius:var(--radius)}.crop-stage:not(.has-image){background:var(--bg)}.crop-stage.over{outline:3px dashed var(--accent);outline-offset:-6px}.crop-canvas{display:block;box-shadow:0 2px 12px #3c281447;touch-action:none;border-radius:2px;cursor:grab}.crop-canvas:active{cursor:grabbing}.crop-canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.replace-btn{position:absolute;top:10px;right:10px}.crop-size-tag{position:absolute;left:10px;top:10px;font-size:12px;padding:4px 9px;border-radius:99px;background:#fffdf9eb;color:var(--muted);box-shadow:var(--shadow);font-variant-numeric:tabular-nums}.dropzone{position:absolute;top:10px;right:10px;bottom:10px;left:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;border:2px dashed var(--line-2);border-radius:var(--radius);background:var(--panel);cursor:pointer;text-align:center}.dropzone strong{font-size:19px}.dropzone:hover,.crop-stage.over .dropzone{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{color:var(--accent);display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:var(--accent-soft);margin-bottom:4px}.dropzone-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;justify-content:center}.dropzone .privacy{margin-top:6px}.camera-btn{display:none}@media(pointer:coarse){.camera-btn{display:inline-flex}}.upload-status{margin:0;font-size:13px;color:var(--warn)}.upload-status:empty{display:none}.crop-controls{display:flex;flex-direction:column;gap:8px}.crop-ranges{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.crop-tools{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;flex-wrap:wrap}.range{display:flex;flex-direction:column;gap:0}.range-head{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.range-value{font-variant-numeric:tabular-nums;color:var(--text)}input[type=range]{width:100%;accent-color:var(--accent);margin:4px 0}details>summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--text);padding:4px 0;list-style-position:inside}details>summary::marker{color:var(--muted)}.adjust-body{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;padding-top:4px}@media(max-width:520px){.crop-ranges,.adjust-body{grid-template-columns:1fr}}.print-body{gap:12px}.sheet-stage{display:grid;place-items:center;overflow:hidden;background:var(--bg-2);border-radius:var(--radius)}.sheet-canvas{display:block;background:#fff;box-shadow:0 3px 14px #3c281438}.print-controls{display:flex;flex-direction:column;gap:10px}.paper-row{display:flex;flex-direction:column;gap:6px}.chips{display:flex;flex-wrap:wrap;gap:5px}.paper-row .chip{padding:0 9px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--panel);font:inherit;font-size:14px;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums}.chip:hover{background:var(--bg)}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:#8e4d1c;font-weight:650;box-shadow:inset 0 0 0 1px var(--accent)}.chip-select{width:auto;min-height:32px;padding:0 6px;font-size:14px;border-radius:8px;max-width:92px}.chip-select.active{border-color:var(--accent);background:var(--accent-soft);color:#8e4d1c;font-weight:650;box-shadow:inset 0 0 0 1px var(--accent)}.grid-fields{align-items:flex-end}.grid-fields .times{padding-bottom:9px;color:var(--muted)}.bg-chip .dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--line-2)}.bg-custom{position:relative}.bg-custom .color-input{width:18px;height:18px;padding:0;border:1px solid var(--line-2);border-radius:50%;background:none;cursor:pointer;overflow:hidden}.bg-custom .color-input::-webkit-color-swatch-wrapper{padding:0}.bg-custom .color-input::-webkit-color-swatch{border:0;border-radius:50%}.more-options{border-top:1px solid var(--line);padding-top:6px}.more-hint{font-weight:400;margin-left:6px}.more-body{display:flex;flex-direction:column;gap:10px;padding:8px 0 2px}.print-actions{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}.summary{margin:0;font-size:14px;font-variant-numeric:tabular-nums}.summary strong{font-weight:650}.warnings{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.warnings:empty{display:none}.warnings li{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:6px 10px;font-size:13px}.secondary-actions{display:flex;justify-content:center;align-items:center;gap:4px}.dot-sep{color:var(--muted)}.export-status{margin:0;text-align:center}.export-status:empty{display:none}.print-tip{margin:0;font-size:12px;color:var(--muted);text-align:center;line-height:1.35}.print-tip strong{color:var(--text)}.field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.field-label{font-size:13px;color:var(--muted)}.field-row{display:flex;gap:10px}.field-input{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:8px;background:#fff}.field-input input{flex:1;min-width:0;border:0;background:transparent;padding:8px 10px;font:inherit;color:inherit}.field-input input:focus{outline:none}.field-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.suffix{padding-right:10px;color:var(--muted);font-size:13px}select{width:100%;padding:8px 10px;border:1px solid var(--line-2);border-radius:8px;background:#fff;font:inherit;color:inherit}.segmented{display:flex;background:var(--bg-2);border-radius:8px;padding:3px;gap:3px}.seg-btn{flex:1;border:0;background:transparent;padding:7px 8px;border-radius:6px;font:inherit;font-size:14px;color:var(--text);cursor:pointer}.seg-btn.active{background:var(--panel);box-shadow:0 1px 2px #0000001f;font-weight:600;color:var(--accent)}.segmented.small .seg-btn{padding:5px 4px}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.switch{flex:none;width:36px;height:20px;border-radius:99px;background:var(--line-2);position:relative;transition:background .15s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}.toggle input:checked+.switch{background:var(--accent)}.toggle input:checked+.switch:after{transform:translate(16px)}.toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}.toggle-text{display:flex;flex-direction:column;font-size:14px}.toggle-text small{color:var(--muted);font-size:12px}.all-sizes{display:flex;flex-direction:column}.all-sizes>summary.group-label{font-size:12px;font-weight:650;color:var(--muted);padding:2px 0 6px}.all-sizes[open]>.size-groups{margin-bottom:8px}.privacy-note{margin-left:16px;margin-right:auto;font-size:12px;color:var(--muted)}.privacy-note:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#5a9a5a;margin-right:6px;vertical-align:middle}@media(max-width:560px){.privacy-note{display:none}}
