.viewer-admin-layout,.viewer-login{font-family:Arial,'Noto Sans KR',sans-serif;color:#ebedf0;background:#15171b;min-height:100vh}
.viewer-admin-layout{display:grid;grid-template-columns:250px minmax(0,1fr)}.viewer-admin-layout *{box-sizing:border-box}.viewer-admin-layout button,.viewer-admin-layout input{font:inherit}
.viewer-admin-sidebar{background:#1e2025;border-right:1px solid #353840;padding:30px 18px;display:flex;flex-direction:column;gap:16px}.viewer-admin-sidebar>a,.viewer-admin-main a{color:#96bfe5;text-decoration:none}.viewer-admin-sidebar h1{font-size:25px;letter-spacing:.14em;margin:8px 0 0}.viewer-admin-sidebar p{font-size:12px;color:#9097a4;word-break:break-all;margin:0}
.viewer-admin-sidebar nav{display:flex;flex-direction:column;gap:8px;max-height:68vh;overflow:auto}.viewer-admin-sidebar nav button{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px;width:100%;padding:12px;background:#292c33;border:1px solid #393d45;border-radius:8px;color:#eee;cursor:pointer}.viewer-admin-sidebar nav button.selected{border-color:#78b6e8;background:#273e53}.viewer-admin-sidebar small{font-size:10px;white-space:nowrap;color:#9fd29d}
.viewer-admin-layout button{border:1px solid #4a4e56;background:#30343c;color:#f1f2f5;border-radius:7px;padding:10px 13px;cursor:pointer}.viewer-admin-layout button:hover{background:#3b4551}.viewer-admin-layout button:disabled{opacity:.5;cursor:default}.viewer-admin-layout button.primary{background:#477eac;border-color:#65a7db}
.studio-admin .viewer-admin-link{display:block;padding:12px;color:#b9dbf7;text-decoration:none;border:1px solid #4c7796;border-radius:7px;margin-bottom:7px}
.viewer-admin-main{min-width:0;padding:24px}.viewer-admin-main>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.viewer-admin-main>header p{color:#99a3b0;font-size:12px;margin:0}.viewer-admin-main>header h2{font-size:25px;margin:5px 0}.viewer-message{border-left:3px solid #7bb6e2;background:#263441;padding:10px 14px}
.viewer-admin-grid{display:grid;grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:22px}.viewer-admin-controls{background:#202329;border:1px solid #343941;border-radius:10px;padding:20px;max-height:calc(100vh - 130px);overflow:auto}.viewer-admin-controls h3{font-size:14px;letter-spacing:.12em;color:#9ec3e5;margin:25px 0 12px}.viewer-admin-controls p{color:#9ca2ae;font-size:12px;line-height:1.6}.title-field{display:flex;flex-direction:column;gap:8px;font-size:13px}.title-field input{background:#16191d;border:1px solid #555;color:#fff;border-radius:5px;padding:10px}
.viewer-file-list{display:grid;gap:7px}.viewer-file-list>div{display:grid;grid-template-columns:105px 72px minmax(0,1fr) 30px;align-items:center;gap:7px;font-size:12px}.viewer-file-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aeb8c4}.viewer-file-list .upload-button{background:#383d45;border-radius:5px;text-align:center;padding:7px;cursor:pointer}.viewer-file-list input[type=file]{display:none}.viewer-file-list .remove-button{padding:4px}
.viewer-sliders{display:grid;gap:13px}.viewer-sliders label{display:block;font-size:12px}.viewer-sliders label span{display:flex;justify-content:space-between}.viewer-sliders output{color:#a5c9e9}.viewer-sliders input{width:100%;accent-color:#79b8e8}.viewer-switches{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;font-size:12px}.viewer-switches label{display:flex;align-items:center;gap:7px}.viewer-switches input[type=checkbox]{accent-color:#7db8e7}.viewer-admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}
.viewer-admin-preview{position:relative;min-height:650px;background:#191c22;border:1px solid #353940;border-radius:10px;overflow:hidden}.preview-label{position:absolute;z-index:2;top:15px;left:20px;display:flex;gap:14px;font-size:12px;color:#b2bdc9;pointer-events:none}.preview-label strong{color:#fff}.preview-empty{height:100%;display:grid;place-items:center;color:#a9b0bb}.scan-viewer{position:relative;width:100%;height:100%;min-height:350px;overflow:hidden}.scan-viewer canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.scan-viewer canvas:active{cursor:grabbing}.viewer-overlay{position:absolute;inset:0;display:grid;place-items:center;color:#eee;background:#191c22a0;font:14px Arial,sans-serif;pointer-events:none;text-align:center;padding:20px}.viewer-error{background:#381f23dd}.scan-viewer-admin{height:calc(100vh - 130px);min-height:650px}
.viewer-nav{position:absolute;z-index:2;display:grid;gap:3px;padding:5px;border-radius:6px;background:#14171dc9}.viewer-nav-presets{top:12px;right:12px;grid-template-columns:repeat(2,55px)}.viewer-nav-move{right:12px;bottom:12px;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,36px)}
.scan-viewer .viewer-nav button{min-width:0;padding:0;border:1px solid #4c515c;border-radius:4px;background:#444955;color:#fff;cursor:pointer;font:700 10px Arial,sans-serif}.scan-viewer .viewer-nav button:hover{background:#5e6877}.scan-viewer .viewer-nav button:focus-visible{outline:2px solid #86c7f4;outline-offset:1px}
.viewer-nav-move button{font-size:18px!important}.viewer-nav-move .up{grid-column:2;grid-row:1}.viewer-nav-move .left{grid-column:1;grid-row:2}.viewer-nav-move .center{grid-column:2;grid-row:2}.viewer-nav-move .right{grid-column:3;grid-row:2}.viewer-nav-move .down{grid-column:2;grid-row:3}
.scan-viewer .viewer-nav-move .center[aria-pressed=true]{background:#477eac;border-color:#86c7f4}
.viewer-login{display:grid;place-content:center;text-align:center;gap:15px}.viewer-login a{color:#9dc7ec}
.film-live{pointer-events:auto!important;z-index:1!important}.film-live .scan-viewer{width:100%;height:100%}.film-live canvas{background:transparent}.viewer-hint{color:#9da4ac;font:11px Arial,sans-serif;letter-spacing:.05em}
@media(max-width:960px){.viewer-admin-layout{grid-template-columns:1fr}.viewer-admin-sidebar{padding:14px}.viewer-admin-sidebar nav{flex-direction:row;max-height:none;overflow:auto}.viewer-admin-sidebar nav button{min-width:130px}.viewer-admin-grid{grid-template-columns:1fr}.viewer-admin-controls{max-height:none}.viewer-admin-preview{min-height:500px}.scan-viewer-admin{height:500px;min-height:500px}}
