:root{--app-ink:#162438;--app-muted:#637286;--app-line:#e4e9f0;--app-blue:#3459e6}body{background:#f6f8fc;color:var(--app-ink);font-size:1rem;min-height:100vh;display:flex;flex-direction:column;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{max-width:1120px}main{flex:1}.site-header{background:#fff;border-bottom:1px solid var(--app-line)}.site-header nav{min-height:76px}.brand{display:flex;align-items:center;gap:10px;font-size:1.28rem;font-weight:750;color:var(--app-ink);text-decoration:none;letter-spacing:-.04em}.brand svg{color:var(--app-blue)}.header-note{font-size:.875rem;color:var(--app-muted)}h1{font-size:clamp(1.65rem,3vw,2.2rem);font-weight:720;letter-spacing:-.04em;line-height:1.2;margin-bottom:.65rem}h2{font-size:1.15rem;font-weight:650}.eyebrow{color:var(--app-blue);font-size:.75rem;font-weight:750;letter-spacing:.13em;margin-bottom:12px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.btn{font-weight:600;box-shadow:none!important}.btn-primary{--bs-btn-bg:var(--app-blue);--bs-btn-border-color:var(--app-blue);--bs-btn-hover-bg:#2749c9;--bs-btn-hover-border-color:#2749c9}.btn-light{background:#eaf0f8;border-color:#eaf0f8;color:#344259}.text-muted,.file-hint{color:var(--app-muted)!important}.upload-panel{background:#fff;border:1px solid var(--app-line);border-radius:18px;padding:24px;box-shadow:0 5px 24px #18334b04}.drop-zone{border:2px dashed #cbd5e7;border-radius:12px;padding:38px 20px;text-align:center;cursor:pointer;transition:background .15s,border-color .15s;background:#fafbff}.drop-zone:hover,.drop-zone:focus-visible,.drop-zone.drag-over{background:#eff3ff;border-color:var(--app-blue);outline:0}.drop-zone[aria-disabled=true]{opacity:.6;cursor:wait}.upload-icon{width:66px;height:66px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;background:#eaf0ff;color:var(--app-blue);border-radius:18px}.drop-zone h2{font-size:1.35rem}.file-hint{font-size:.875rem}kbd{background:#e8edf5;color:#47546a;font-size:.8rem;border-radius:4px;padding:3px 5px}.upload-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--app-line);padding-top:22px;margin-top:24px}.upload-actions .btn{white-space:nowrap}.selection-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:28px 0 18px}.selection-heading h2{margin:0}.selection-heading .badge{font-size:.8rem;margin-left:6px}.preview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.preview-card{border:1px solid var(--app-line);border-radius:10px;overflow:hidden;background:#fff;min-width:0}.preview-card.dragging{opacity:.35}.preview-image{position:relative;aspect-ratio:4/3;background:#f2f5f9}.preview-image img{width:100%;height:100%;object-fit:contain}.preview-remove{position:absolute;right:6px;top:6px;width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0002;color:#26364e;font-size:1.25rem;line-height:1}.preview-meta{padding:9px}.preview-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;margin-bottom:4px}.preview-status{font-size:.75rem;color:var(--app-muted);min-height:1.2em}.preview-order{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:.75rem;color:var(--app-muted)}.order-btn{border:0;background:#edf1f8;border-radius:4px;min-width:30px;min-height:28px;color:#344259;font-size:1rem}.order-btn:disabled{opacity:.3}.below-note{font-size:.8rem;color:var(--app-muted);text-align:center;margin:18px 0 0}.upload-progress{margin-top:24px;font-size:.875rem}progress{display:block;width:100%;height:8px;border:0;border-radius:9px;overflow:hidden;background:#e6ebf5}progress::-webkit-progress-bar{background:#e6ebf5}progress::-webkit-progress-value{background:var(--app-blue)}progress::-moz-progress-bar{background:var(--app-blue)}.site-footer{padding-top:28px;padding-bottom:28px;font-size:.8rem;color:var(--app-muted);display:flex;justify-content:space-between}.site-footer a{color:var(--app-muted);text-decoration:none}.title-time{font-weight:400;color:var(--app-muted);margin-left:8px}.edit-note{font-size:.875rem;background:#eaf0ff;border:1px solid #dbe5ff;color:#3d5481;padding:12px 16px;border-radius:9px;margin-bottom:24px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.gallery-tile{position:relative;background:#fff;display:block;aspect-ratio:4/3;border:1px solid var(--app-line);border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #1c345608;transition:transform .15s,box-shadow .15s}.gallery-tile:hover{transform:translateY(-3px);box-shadow:0 9px 24px #1c345616}.gallery-tile img{width:100%;height:100%;object-fit:contain;padding:8px}.tile-index{position:absolute;left:12px;bottom:12px;background:#fffE;padding:2px 7px;border-radius:4px;font-size:.75rem;color:#4a586f}.lightbox{border:0;padding:0;max-width:none;max-height:none;width:100vw;height:100dvh;background:#111927;color:#fff}.lightbox::backdrop{background:#111927}.lightbox[open]{display:flex;flex-direction:column}.lightbox-top{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;min-height:64px;color:#d5dfed}.lightbox-control{border:0;border-radius:50%;width:44px;height:44px;background:#ffffff14;color:#fff;font-size:2rem;display:flex;justify-content:center;align-items:center;line-height:1;z-index:2}.lightbox-control:hover{background:#ffffff28}.lightbox-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;padding:0 70px;touch-action:pan-y}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-bottom{font-size:.8rem;color:#a4b2c9;display:flex;justify-content:space-between;padding:18px 24px}.lightbox #lightboxError{text-align:center;margin-top:1rem}.lightbox-open{overflow:hidden}.auth-card{max-width:440px;margin:36px auto;background:#fff;border:1px solid var(--app-line);padding:32px;border-radius:16px}.auth-card h1{font-size:1.8rem}.admin-table-wrap{background:#fff;border:1px solid var(--app-line);border-radius:12px;overflow:auto}.admin-table-wrap th{color:var(--app-muted);font-size:.8rem;background:#fbfcfe;font-weight:600;white-space:nowrap}.admin-table-wrap td,.admin-table-wrap th{padding:16px}.admin-table-wrap tr:last-child td{border-bottom:0}.gallery-title-link{font-weight:650;text-decoration:none;color:var(--app-ink);white-space:nowrap}.admin-table-wrap small{font-size:.75rem;margin-top:4px}.check-cell{width:44px}.empty-state{padding:56px 24px;text-align:center;border:1px solid var(--app-line);background:white;border-radius:16px}[hidden]{display:none!important}:focus-visible{outline:3px solid #90aaff;outline-offset:3px}.alert{overflow-wrap:anywhere}#copyNotice:not(:empty){margin-bottom:1rem;color:#20704b}
@media(max-width:767px){.site-header nav{min-height:64px}.header-note{display:none}.page-heading{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:24px}.upload-panel{padding:16px;border-radius:12px}.drop-zone{padding:28px 12px}.upload-actions{flex-direction:column;align-items:stretch;gap:16px}.upload-actions>div{justify-content:flex-end}.preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.selection-heading{align-items:flex-start;flex-direction:column}.gallery-tile img{padding:4px}.lightbox-stage{padding:0 8px}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-control{background:#192435b3}.lightbox-bottom{font-size:.75rem}.auth-card{padding:24px;margin:12px auto}.title-time{font-size:.8em}.admin-table-wrap td,.admin-table-wrap th{padding:12px}.file-hint{font-size:.8rem}}@media(max-width:420px){.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{gap:9px}.tile-index{left:7px;bottom:7px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
