:root{color-scheme:light;--ink:#20262c;--muted:#5b646e;--green:#323e4a;--line:#d1d6dc;--paper:#ffffff;--bg:#f2f4f6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}::selection{background:#d3dce5}a{color:inherit;text-underline-offset:4px}header,main,footer{max-width:1120px;margin:auto;padding:24px 32px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-weight:600;text-decoration:none}.brand span{margin-left:16px;font-size:13px;font-weight:400;color:var(--muted)}h1{font-size:32px;line-height:1.3;margin:0 0 10px;letter-spacing:-.02em}h2{font-size:18px;line-height:1.4;margin:0 0 20px}p{margin:8px 0;color:var(--muted)}button,.file-button,input,select{font:inherit}button,.file-button{min-height:44px;border:1px solid var(--green);border-radius:3px;padding:9px 16px;background:var(--green);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:550}button:hover,.file-button:hover{background:#1d2832}button:disabled{opacity:.5;cursor:default}.quiet{background:transparent;color:var(--green);border-color:var(--line)}.quiet:hover{background:#e4e9ef}input,select{width:100%;min-height:46px;border:1px solid #aab3bd;background:var(--paper);border-radius:2px;padding:9px 10px;color:var(--ink);caret-color:var(--green)}:focus-visible{outline:3px solid #6a8bac;outline-offset:3px}label{display:block;font-size:14px;font-weight:550;margin:18px 0 7px}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset>label:first-child{margin-top:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check{display:flex;align-items:center;gap:10px;min-height:44px}.check input{width:20px;min-height:20px;height:20px;accent-color:var(--green)}.caption{font-size:13px;line-height:1.65}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:20px 0 28px}#device{max-width:320px;font-size:14px;color:var(--muted)}.studio{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);gap:40px}.preview-heading,.history-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-heading h2,.history-title h2{margin:0}.file-button{margin:0;background:transparent;color:var(--green)}.file-button:hover{background:#e4e9ef}.file-button input{position:absolute;width:1px;height:1px;min-height:0;padding:0;opacity:0}.file-button:focus-within{outline:3px solid #6a8bac;outline-offset:3px}.preview-bed{margin:20px 0 14px;background:transparent;border-radius:3px;padding:20px;min-height:300px;display:flex;align-items:center;justify-content:center}.paper{background:white;width:100%;aspect-ratio:2/3;max-height:470px;max-width:313px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:none}.paper.landscape{aspect-ratio:3/2;max-width:100%;max-height:none}.paper img{width:100%;height:100%;object-fit:contain}.paper.fill img{object-fit:cover}#empty{text-align:center;font-size:16px;padding:14px}#empty small{display:block;margin-top:10px;font-size:12px}#printForm{padding-top:10px}.primary{width:100%;margin-top:24px;min-height:50px}#message:empty{display:none}#message{padding:12px 16px;background:#e1e7ed;border-radius:3px;overflow-wrap:anywhere}#message.error{background:#fae9e1;color:#81371f}.history{margin-top:40px;border-top:1px solid var(--line);padding-top:24px}#jobs{list-style:none;padding:0;margin:12px 0}#jobs li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);align-items:center}#jobs img{width:56px;height:72px;object-fit:contain;border-radius:2px}.job-info{flex:1;min-width:0}.job-info strong{display:block;overflow-wrap:anywhere;font-size:15px}.job-info p{font-size:13px;margin:3px 0}.job-state{font-size:13px;color:var(--green);font-weight:600}.job-detail{overflow-wrap:anywhere}.job-actions{text-align:right;flex-shrink:0}.job-actions button{font-size:13px;margin-top:6px}#login{max-width:540px;margin:80px auto 60px}.login-row{display:flex;gap:12px}.login-row input{min-width:0}.login-row button{flex-shrink:0}footer{font-size:12px;color:var(--muted);padding-top:48px;padding-bottom:28px}body{scrollbar-color:#a7b1bd var(--bg)}[hidden]{display:none!important}@media(max-width:760px){header,main,footer{padding-left:20px;padding-right:20px}.intro{align-items:flex-start;flex-direction:column;gap:12px;margin:16px 0 28px}h1{font-size:27px}.studio{grid-template-columns:1fr;gap:28px}.preview-bed{min-height:240px;padding:16px}.paper{max-height:340px;max-width:227px}.paper.landscape{max-width:100%}#printForm{padding-top:0}#login{margin:50px auto}.brand span{margin-left:10px}.history{margin-top:40px}.login-row{flex-direction:column}}@media(prefers-reduced-motion:no-preference){#preview{animation:appear .25s ease-out}@keyframes appear{from{opacity:.5}to{opacity:1}}}
nav,.toolbar-actions{display:flex;align-items:center;gap:12px}.nav-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 10px;color:var(--green);font-size:14px;text-decoration:none}.nav-link:hover{text-decoration:underline}.queue-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-title{margin-top:28px}.batch-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0}.batch-bar .check{margin:0}.manage-list{list-style:none;padding:0;margin:0}.manage-list>li{padding:18px 0;border-bottom:1px solid var(--line)}.manage-row{display:flex;align-items:center;gap:14px}.manage-row>img{width:52px;height:68px;object-fit:contain;border-radius:2px}.manage-select{width:20px;height:20px;min-height:20px;flex-shrink:0;accent-color:var(--green)}.manage-meta{flex:1;min-width:0}.manage-meta strong{font-size:15px;display:block;overflow-wrap:anywhere}.manage-meta p{font-size:13px;margin:3px 0;overflow-wrap:anywhere}.manage-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px}.manage-actions button{font-size:13px;padding:8px 12px}.editor{margin-top:28px;padding:24px;background:#e2e6ea;border-radius:3px}.edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 20px;margin-bottom:24px}.editor #editName{overflow-wrap:anywhere}.pager{display:flex;justify-content:flex-end;gap:12px;margin:20px 0}.manage-state{font-size:13px;font-weight:600;white-space:nowrap}.queue-paused{color:#81371f}@media(max-width:760px){header{flex-wrap:wrap;gap:12px}nav{gap:4px}.brand span{display:none}.queue-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.toolbar-actions{width:100%}.toolbar-actions button{flex:1}.edit-grid{grid-template-columns:1fr 1fr;gap:4px 12px}.manage-row{gap:10px;align-items:flex-start}.manage-state{white-space:normal;max-width:84px}.editor{padding:18px}.manage-actions{justify-content:flex-start}.manage-row>img{width:42px;height:56px}}@media(max-width:400px){.edit-grid{grid-template-columns:1fr}}
.dropzone{border:1px dashed #aab3bd;background:transparent;cursor:pointer;position:relative;min-width:0}.dropzone:not(.has-photo):hover,.dropzone:not(.has-photo):focus-visible{border-color:#607b95;background:#dfe7ef}.dropzone.has-photo{padding:0;min-height:0;border-color:transparent;background:transparent}.dropzone.drag-over{border-style:dashed;border-color:#3d617f;background:#d1e0ed;outline:2px solid #6a8bac;outline-offset:3px}.dropzone[aria-disabled=true]{cursor:default}.dropzone[aria-disabled=true]:not(.drag-over){background:transparent}.dropzone #empty strong{font-size:17px;font-weight:550}.dropzone #empty small{font-size:13px}.dropzone img{pointer-events:none}.preview-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.preview-nav span{font-size:14px;font-variant-numeric:tabular-nums}.thumbnails{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:6px 3px 10px;scrollbar-width:thin}.thumb-button{flex:0 0 auto;width:auto;height:84px;min-width:0;min-height:0;padding:0;background:white;border:1px solid #aab3bd;color:var(--ink);position:relative;box-sizing:content-box;overflow:hidden}.thumb-button:hover{background:white;border-color:#607b95}.thumb-button[aria-pressed=true]{border-color:#3d617f;outline:2px solid #3d617f;outline-offset:2px;background:white}.thumb-button img{width:100%;height:100%;object-fit:contain}.thumb-button.failed{border-style:dashed;border-color:#9a573f;color:#81371f}.thumb-button span{font-size:12px;line-height:1.3}.gallery-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.photo-error{font-size:13px;color:#81371f;overflow-wrap:anywhere}.photo-error:empty{display:none}#photoName{overflow-wrap:anywhere}.preview-area{min-width:0}#batchHint{margin:-8px 0 20px}.dropzone:focus-visible{outline:3px solid #6a8bac;outline-offset:3px}@media(prefers-reduced-motion:no-preference){.dropzone{transition:background-color .15s ease,border-color .15s ease}}

.photo-orientation{display:flex;align-items:center;gap:16px;margin:14px 0}.photo-orientation label{margin:0;white-space:nowrap}.photo-orientation select{width:auto;flex:1;min-width:0}#jobs img,.manage-row>img{background:#e9edf1}

/* Page geometry shared by the large preview and its scaled miniatures.
   Insets match worker.py: 42 pixels on each side of the 300-dpi page. */
.page-sheet{aspect-ratio:2/3;background:white;display:flex;align-items:center;justify-content:center}
.page-sheet.landscape{aspect-ratio:3/2}.page-sheet.seven{aspect-ratio:5/7}.page-sheet.seven.landscape{aspect-ratio:7/5}.page-sheet.a4{aspect-ratio:2480/3508}.page-sheet.a4.landscape{aspect-ratio:3508/2480}
.page-sheet img{width:100%;height:100%;object-fit:contain;background:transparent}
.page-sheet.fill img{object-fit:cover}
.page-sheet.inset{padding:0}.page-sheet.inset img{width:93%;height:95.333333%}
.page-sheet.inset.landscape img{width:95.333333%;height:93%}
.page-sheet.inset.seven img{width:94.4%;height:96%}.page-sheet.inset.seven.landscape img{width:96%;height:94.4%}
.page-sheet.inset.a4 img{width:96.612903%;height:97.605473%}.page-sheet.inset.a4.landscape img{width:97.605473%;height:96.612903%}
.thumbnails{align-items:center;min-height:100px}
