:root{font-family:Arial,system-ui,sans-serif;color:#211e19;background:#f7f4ef;font-size:16px;--gold:#936614;--ink:#181612;--line:#d6d0c7;--paper:#fff}*{box-sizing:border-box}body{margin:0;min-width:300px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{border:1px solid var(--line);border-radius:9px;padding:11px 15px;background:#fff;color:var(--ink);cursor:pointer;min-height:44px;font-weight:600}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--ink);border-color:var(--ink);color:#fff}a{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #bd8d32;outline-offset:2px}[hidden]{display:none!important}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 5%;border-bottom:1px solid var(--line);font-size:14px;background:#fff}.brand{text-decoration:none;font-size:20px;letter-spacing:-.8px}.brand b{background:var(--ink);color:#fff;border-radius:50%;padding:8px;letter-spacing:-1px;margin-right:7px}.eyebrow{font-size:13px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.welcome{max-width:680px;margin:0 auto;padding:32px 20px}.welcome h1{font-family:Georgia,serif;font-size:clamp(32px,5vw,48px);line-height:1.05;margin:16px 0}.welcome>p{line-height:1.55}.panel{padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px;margin:22px 0;display:grid;gap:12px}.panel p{margin:0;font-size:14px;line-height:1.5}.panel label{font-weight:600}.panel input,.panel select{width:100%;border:1px solid var(--line);border-radius:8px;padding:13px;min-width:0;background:#fff;color:var(--ink)}.panel small{font-size:13px;line-height:1.4;color:#59564f}#formError,#status,.edit-error{color:#a32424;overflow-wrap:anywhere}#status:empty,#formError:empty,.edit-error:empty{display:none}.workspace{width:min(1080px,100%);margin:auto;padding:22px 20px 115px}.heading h1{font-family:Georgia,serif;font-size:30px;margin:8px 0}.heading p{line-height:1.45;margin:8px 0}.add-zone{border:1px dashed #988a72;background:#fff;border-radius:14px;display:grid;gap:8px;text-align:center;padding:26px;cursor:pointer;margin-top:24px}.add-zone input{width:100%;max-width:370px;margin:auto;font-size:14px}.add-zone strong{font-size:20px}.add-zone span,.help{font-size:14px;color:#625a4e;line-height:1.45}.queue{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:15px;margin-top:25px}.photo-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:12px}.photo-card img{width:100%;height:190px;object-fit:contain;background:#e5e1dc;display:block}.photo-info{padding:12px}.photo-info p{font-size:14px;margin:5px 0 10px;overflow-wrap:anywhere}.photo-info .caption-line{height:34px;color:#5f5a53;font-size:13px;overflow:hidden}.card-actions{display:flex;gap:6px}.card-actions button{flex:1;padding:9px;font-size:14px}.remove{max-width:42px;color:#ae2222}.actionbar{position:fixed;bottom:0;left:0;right:0;z-index:3;background:#fff;border-top:1px solid var(--line);padding:14px max(20px,calc((100vw - 1040px)/2));padding-bottom:max(14px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:15px}.actionbar span{font-size:14px;line-height:1.35}.actionbar button{flex-shrink:0}dialog{border:1px solid var(--line);border-radius:16px;padding:0;color:var(--ink);box-shadow:0 18px 80px #0005}dialog::backdrop{background:#0009}.small-dialog{width:min(460px,calc(100% - 28px));padding:26px}.small-dialog h2{margin-top:0;font-family:Georgia,serif}.small-dialog p{line-height:1.5}.small-dialog .buttons{display:flex;justify-content:flex-end;gap:12px}.small-dialog progress{width:100%;height:18px;accent-color:var(--gold)}.protocol{display:block;background:#f2eee6;border:1px solid var(--line);padding:15px;font-size:18px;overflow-wrap:anywhere;margin:16px 0}.editor{width:min(960px,calc(100% - 32px));height:min(780px,calc(100dvh - 32px));max-height:none;overflow:hidden}.editor[open]{display:flex;flex-direction:column}.edit-head{display:flex;justify-content:space-between;align-items:center;padding:13px 20px;border-bottom:1px solid var(--line);flex-shrink:0}.edit-head h2{font-size:19px;margin:4px 0}.edit-head button{font-size:23px;min-width:44px;padding:4px}.edit-body{flex:1;min-height:0;display:grid;grid-template-columns:1.2fr 1fr;overflow:auto}.stage{min-width:0;min-height:0;background:#dedad4;display:flex;justify-content:center;align-items:center;padding:22px;position:relative}.stage canvas{max-width:100%;max-height:100%;object-fit:contain;touch-action:none;box-shadow:0 6px 22px #0002;cursor:grab}.stage #previewLoading{position:absolute;background:#fff;padding:9px 15px;border-radius:8px;font-size:14px}.controls{padding:20px;overflow:auto}.fit-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fit-options button{text-align:center;padding:11px 6px;border:2px solid var(--line);font-size:15px}.fit-options small{font-weight:400;font-size:12px}.fit-options [aria-pressed=true]{border-color:var(--gold);background:#fbf1dc;color:#553b09}.crop-tools{display:flex;align-items:center;gap:8px;margin:12px 0}.crop-tools button{font-size:13px;padding:8px}.crop-tools label{flex:1;min-width:50px;font-size:13px}.crop-tools input{width:100%;margin:0;display:block;accent-color:var(--gold);height:28px}.hint{font-size:13px;color:#61594d;line-height:1.4}.check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;min-height:40px}.check input{width:20px;height:20px;accent-color:var(--gold)}textarea{display:block;resize:vertical;min-height:60px;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;line-height:1.4}details{margin-top:10px;font-size:14px}details summary{cursor:pointer;min-height:32px;padding:8px 0}.text-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 0}.text-options select,.text-options input[type=range]{width:100%;min-width:0;margin-top:5px}.text-options select{padding:7px;font-size:14px}.edit-footer{display:flex;gap:9px;justify-content:space-between;padding:13px 20px;border-top:1px solid var(--line);flex-shrink:0;background:#fff}.edit-footer button{font-size:14px}.edit-error{font-size:14px;margin:6px 0}.simple-edit #fitOptions,.simple-edit #cropTools,.simple-edit #dragHint{display:none}.simple-edit .stage{background:#dedad4}
@media(max-width:640px){.top{padding:16px}.welcome{padding-top:22px}.panel{padding:18px}.workspace{padding:18px 14px 110px}.queue{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-card img{height:170px}.actionbar{padding:12px 14px max(12px,env(safe-area-inset-bottom));gap:10px}.actionbar button{font-size:14px;padding:11px 13px}.editor{width:100%;height:100dvh;max-width:none;margin:0;inset:0;border:0;border-radius:0}.edit-head{padding:9px 14px}.edit-head h2{font-size:17px}.edit-head .eyebrow{font-size:12px}.edit-body{display:flex;flex-direction:column;overflow:auto}.stage{flex:1 1 auto;min-height:110px;padding:10px;height:calc(100dvh - 360px);max-height:48dvh}.controls{flex-shrink:0;padding:10px 14px;overflow:visible}.fit-options button{min-height:49px;padding:6px}.crop-tools{margin:7px 0}.crop-tools button{min-height:40px}.hint{margin:5px 0}.check{min-height:34px}textarea{min-height:56px;padding:7px}.edit-footer{padding:9px 14px max(9px,env(safe-area-inset-bottom))}.edit-error{margin:4px 0}.text-options{grid-template-columns:1fr 1fr}#captionDetails[open] .text-options{padding-bottom:10px}}
@media(max-height:600px) and (min-width:641px){.editor{height:100dvh;width:100%;margin:0;border-radius:0}.stage{min-height:180px}.controls{padding:10px}.edit-head,.edit-footer{padding:8px 14px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .12s,border-color .12s}}
