*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font:16px/1.6 'Segoe UI','Microsoft YaHei',sans-serif}button,input,textarea{font:inherit}button,label.upload{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #83a2ff;outline-offset:3px}input,textarea{background:#fff;border:1px solid var(--input);padding:12px 14px;border-radius:7px;min-width:0}input:focus,textarea:focus{outline:2px solid #184bd6}h1,h2,p{margin:0}h1{font-size:32px;font-weight:650;letter-spacing:-.04em}h2{font-size:19px;font-weight:600;margin-bottom:18px}.primary,.quiet{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;border:0;padding:12px 20px}.primary{background:#184bd6;color:white;font-weight:600}.primary:hover{background:#103cad}.quiet{background:transparent;color:#40516a;padding:8px 12px}.quiet:hover{background:#e5eaf3}.login{min-height:100vh;background:#101b31;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;gap:30px}.login-brand{font-size:18px;font-weight:700;letter-spacing:.14em;display:flex;align-items:center;gap:12px}.login-card{background:#fff;color:#182231;padding:40px;width:100%;max-width:480px;border-radius:12px;box-shadow:0 20px 80px #0004}.collection{font-size:12px;letter-spacing:.14em;font-weight:650;color:#697990;margin-bottom:10px}.login-card h1{margin-bottom:10px}.login-card p{color:#69758a;margin-bottom:24px}.login-card form{margin-top:26px}.login-card label{display:block;font-size:14px;margin-bottom:9px}.password{display:flex;align-items:center;border:1px solid #c4ccda;border-radius:7px;padding-left:14px;gap:8px;margin-bottom:20px}.password input{border:0;width:100%}.login-card .primary{width:100%}.login-footer{font-size:14px;color:#99a9c2}header{height:76px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid #dbe0e8;padding:0 5vw}.brand{font-weight:750;letter-spacing:.08em;display:flex;align-items:center;gap:10px}.brand span{font-size:14px;color:#697990;font-weight:400;letter-spacing:0}.workspace{max-width:1560px;margin:auto;padding:36px 5vw 120px}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.heading p{color:#69758a;margin-top:8px;font-size:14px}.selection-count{display:flex;align-items:center;gap:10px;color:#184bd6}.selection-count strong{font-size:32px}.selection-count span{font-size:14px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0}.toolbar [role=tab] span{margin-left:8px;font-size:12px;color:#697990}.muted{font-size:14px;color:#69758a}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.photo-card{background:#fff;border:2px solid transparent;border-radius:8px;overflow:hidden;transition:border-color .15s}.photo-card.chosen{border-color:#184bd6}.image-button{display:block;width:100%;height:320px;position:relative;background:#e7ebf0;padding:0;border:0}.image-button img{width:100%;height:100%;object-fit:contain}.zoom{position:absolute;right:12px;bottom:12px;background:#fffE;border-radius:50%;padding:8px;opacity:0}.image-button:hover .zoom{opacity:1}.edited{position:absolute;top:12px;left:12px;font-size:12px;background:#132b4bcc;color:white;padding:3px 8px;border-radius:4px}.photo-meta{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;font-size:14px}.photo-meta [role=checkbox]{width:22px;height:22px}.submission{margin:32px 0}.submission label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}.submission textarea{width:100%;max-width:720px;min-height:100px;resize:vertical}.submit-bar{position:fixed;bottom:0;left:0;right:0;background:#fffF;border-top:1px solid #dbe0e8;padding:16px 5vw;display:flex;align-items:center;justify-content:space-between;z-index:20}.submit-bar strong{color:#184bd6;font-size:24px;margin-right:5px}.notice{display:flex;align-items:center;gap:10px;background:#e6edff;color:#1a3b8d;padding:14px 18px;border-radius:7px;margin:16px 0;font-size:14px}.notice button{margin-left:auto;background:none;border:0}.login-card .notice{margin-top:18px;margin-bottom:0}.empty{display:flex;align-items:center;flex-direction:column;padding:60px;gap:10px;color:#69758a}.photo-dialog{max-width:95vw!important;width:1100px!important;max-height:95vh;overflow:auto;background:#101b31!important;color:white!important;border:0!important}.large-photo{height:65vh;overflow:auto;display:flex;justify-content:center;background:#09101e}.large-photo img{height:100%;width:auto;max-width:100%;object-fit:contain}.dialog-actions{display:flex;justify-content:space-between;align-items:center}.photo-dialog .quiet{color:#c5d3e8}.admin-block{background:#fff;border:1px solid #dbe0e8;border-radius:9px;padding:24px;margin-top:24px}.client-form{display:flex;gap:12px}.client-form input{flex:1}.filename-list{max-height:50vh;overflow:auto;font-size:14px;font-family:monospace;line-height:2}.upload-controls{display:flex;gap:10px}.upload-controls label{background:#e6edff;cursor:pointer}.upload-progress{margin:16px 0}
@media(min-width:1500px){.image-button{height:380px}}@media(max-width:1100px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.image-button{height:290px}}@media(max-width:760px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.image-button{height:250px}.workspace{padding:24px 18px 120px}header{padding:0 18px}.heading{gap:15px}h1{font-size:26px}.toolbar{flex-wrap:wrap}.client-form{flex-direction:column}.admin-block{padding:18px}.login-card{padding:28px}.photo-meta{padding:10px 8px;font-size:12px}.selection-count{gap:5px}.selection-count strong{font-size:26px}.selection-count span{display:none}.brand span{font-size:12px}.upload-controls{flex-wrap:wrap}.photo-dialog{padding:18px!important}.dialog-actions .primary{padding:10px}.large-photo{height:60vh}}
@media(max-width:400px){.image-button{height:210px}.photo-meta{font-size:12px}.heading .collection{font-size:10px}.brand{font-size:14px}.login{padding:16px}}

:root{--background:#f5f6f8;--foreground:#182231;--input:#c4ccda} [hidden]{display:none!important} button,a{touch-action:manipulation} a.primary{text-decoration:none} .tabs{display:flex;gap:4px;border-radius:8px;padding:4px;background:#e9edf5;width:fit-content}.tabs button{font-size:14px;padding:9px 16px;border:0;border-radius:5px;background:transparent;color:#52647b;cursor:pointer}.tabs button[aria-selected=true]{background:#fff;color:#184bd6;box-shadow:0 1px 4px #22334a16}.login-card input{width:100%;margin-bottom:18px}.login-tabs{margin:22px 0}.notice{white-space:pre-wrap}.notice.error{background:#fee8e8;color:#9a2424}.photo-meta input{width:22px;height:22px;accent-color:#184bd6;cursor:pointer}.check-label{display:flex;align-items:center;min-width:36px;min-height:36px;justify-content:center}.image-button .zoom{font-size:24px;line-height:1}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid #e6eaf0}th{color:#64758c;font-weight:600}td:last-child{white-space:nowrap}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{margin-bottom:0}.form-help{margin-top:14px}.settings-form{max-width:500px;display:grid;gap:18px}.settings-form label{font-size:14px;display:grid;gap:8px}.filename-list{margin:18px 0}.client-note{white-space:pre-wrap;overflow-wrap:anywhere}.download-batches{display:grid;gap:12px;margin:20px 0}.photo-modal{width:min(1200px,96vw);max-width:96vw;height:min(92dvh,1000px);max-height:96dvh;background:#101b31;color:#fff;border:0;border-radius:10px;padding:20px;margin:auto;overflow:hidden}.photo-modal[open]{display:flex;flex-direction:column;gap:12px}.photo-modal::backdrop,.list-modal::backdrop{background:#061024bf}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0}.modal-heading h2{margin:0;font-size:17px}.photo-modal .muted{color:#aabbce}.photo-modal .quiet{color:#c4d2e6}.photo-modal .quiet:hover{background:#24344e}.zoom-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;flex-shrink:0}.zoom-toolbar button{border:1px solid #42516b;color:#dce5f4;background:#1d2b44;padding:7px 12px;border-radius:6px;cursor:pointer;font-size:14px}.zoom-toolbar button.active{background:#184bd6;border-color:#184bd6;color:white}.zoom-toolbar #zoom-value{font-size:14px;min-width:42px;text-align:center}.zoom-stage{position:relative;overflow:hidden;flex:1;min-height:150px;width:100%;background:#080f1b;touch-action:none;user-select:none}.zoom-stage.zoomed{cursor:grab}.zoom-stage.zoomed:active{cursor:grabbing}.zoom-stage img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;transform-origin:center;pointer-events:none;user-select:none;will-change:transform}.zoom-help{color:#aabbce;font-size:12px;text-align:center;flex-shrink:0}.dialog-actions{flex-shrink:0}.list-modal{width:min(560px,94vw);max-height:90dvh;margin:auto;border:0;border-radius:10px;padding:24px;color:#182231;background:#fff;overflow:auto}progress{width:100%;height:10px;accent-color:#184bd6;margin:16px 0}.upload-controls label{font-size:14px} @media(max-width:760px){.photo-modal{padding:12px;gap:8px!important;height:94dvh}.zoom-toolbar button{padding:6px 9px;font-size:13px}.zoom-help{font-size:12px}.tabs button{padding:8px 10px}.section-heading{gap:8px}.list-modal{padding:18px}.photo-meta{font-size:13px}}
