@font-face{font-family:dg;src:url('fonts/DG Baysan Regular.woff2') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:dg;src:url('fonts/DG Baysan Semibold.woff2') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:dg;src:url('fonts/DG Baysan Bold.woff2') format('truetype');font-weight:800;font-display:swap}
:root{--blue:#2959A6;--blue-deep:#183c78;--yellow:#FEC12C;--ink:#172033;--muted:#748096;--line:#e4e9f1;--bg:#f5f7fb;--white:#fff;--green:#187c58;--red:#b63e50;--radius:16px;--shadow:0 14px 40px rgba(25,47,88,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:dg,Tahoma,sans-serif;font-size:15px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--blue);text-decoration:none}img{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,3.4vw,34px);line-height:1.35;font-weight:800;margin-bottom:6px}h2{font-size:20px;line-height:1.5;margin-bottom:0;font-weight:800}h3{font-size:17px;margin-bottom:8px}p{text-wrap:pretty}small{font-size:12px}strong{font-weight:800}fieldset{border:0;padding:0;margin:0;min-width:0}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.skip{position:absolute;top:-80px;right:20px;background:var(--yellow);color:var(--ink);padding:12px;z-index:20}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar{min-height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 30px;position:sticky;top:0;z-index:5}.brand img{width:152px;display:block}.surface-label{color:var(--muted);font-size:13px;margin-left:auto}.top-actions,.actions,.form-footer{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.top-actions form,.actions form{margin:0}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;border:1px solid transparent;border-radius:10px;padding:9px 17px;font-weight:600;font-size:14px;line-height:1.65;text-align:center;transition:background .15s,box-shadow .15s;color:var(--ink);background:transparent;white-space:normal}.btn.dark{background:var(--blue);color:#fff}.btn.dark:hover{background:var(--blue-deep)}.btn.primary{background:var(--yellow);color:var(--ink)}.btn.primary:hover{background:#f5b71c;box-shadow:0 5px 14px #fec12c30}.btn.outline{background:#fff;border-color:var(--line);color:var(--blue)}.btn.outline:hover{border-color:#b4c7e5;background:#f7faff}.btn.subtle{color:var(--muted);background:#f6f8fb}.btn.subtle:hover{color:var(--blue);background:#edf3fe}.btn.small{font-size:12px;min-height:38px;padding:7px 11px}.btn:disabled{opacity:.5;cursor:not-allowed}.full{width:100%}.admin-layout{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{background:#fff;border-left:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column;gap:8px}.workspace{display:flex;gap:11px;align-items:center;padding:3px 10px 22px;border-bottom:1px solid var(--line);margin-bottom:10px}.workspace small{display:block;color:var(--muted)}.workspace-dot{width:15px;height:15px;background:var(--yellow);border:4px solid #fff1c8;box-shadow:0 0 0 1px #ffe499;border-radius:50%;flex:none}.side-label{color:#8b96a8;font-size:11px;margin:7px 12px}.side-nav{display:grid;gap:6px}.side-nav a{display:flex;align-items:center;gap:10px;border-radius:10px;padding:12px;color:#53627a;font-size:14px}.side-nav a:hover{background:#f5f7fb}.side-nav a.active{background:#edf3fe;color:var(--blue);font-weight:800}.nav-mark{width:6px;height:6px;border-radius:2px;border:1px solid currentColor;opacity:.65}.active .nav-mark{background:var(--blue);opacity:1}.sidebar-note{background:#f8faff;border:1px solid #edf1f8;border-radius:12px;padding:15px;margin:25px 4px 0;color:var(--blue-deep)}.sidebar-note strong{font-size:13px}.sidebar-note p{font-size:12px;color:var(--muted);line-height:1.9;margin:7px 0 0}.admin-main{padding:32px clamp(22px,3.5vw,54px);min-width:0}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.admin-header p{color:var(--muted);font-size:14px;margin:0}.eyebrow{font-size:11px;font-weight:800;color:var(--blue);margin-bottom:7px;letter-spacing:.3px}.profile{display:flex;gap:12px;align-items:center;flex-shrink:0}.profile strong{font-size:14px}.profile small{display:block;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px}.stat-label{color:var(--muted);font-size:13px}.stat-num{font-size:34px;display:block;line-height:1.4;margin:9px 0 5px}.stat small{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:23px;margin-bottom:22px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;flex-wrap:wrap}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.panel-bottom{padding-top:18px}.panel-divider{border-top:1px solid var(--line);margin:24px 0}.count{display:inline-block;background:#edf3fe;border-radius:7px;min-width:25px;text-align:center;color:var(--blue);padding:1px 7px;font-size:13px;vertical-align:middle;margin-right:5px}.table-wrap{overflow-x:auto;width:100%}table{width:100%;border-collapse:collapse;font-size:13px;min-width:590px}th,td{text-align:right;padding:14px 9px;border-bottom:1px solid #edf0f5;vertical-align:middle}th{color:var(--muted);font-size:12px;font-weight:600;background:#fafbfd}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdff}td small.muted{display:block;margin-top:4px}.date{white-space:nowrap;direction:ltr;text-align:right;font-size:11px}.text-link{font-weight:600;color:var(--blue);text-underline-offset:4px}.text-link:hover{text-decoration:underline}.badge{display:inline-block;padding:4px 9px;border-radius:99px;background:#eef3fc;color:var(--blue);font-size:11px;line-height:1.55;white-space:nowrap}.badge.completed,.badge.published{background:#e4f6ee;color:var(--green)}.badge.pending,.badge.uploading,.badge.pending_review{background:#fff5d6;color:#8b6600}.badge.hidden{background:#eef1f5;color:#68768c}.badge.failed{background:#fde8ea;color:var(--red)}.badge-stack{display:flex;gap:5px;flex-wrap:wrap;max-width:165px}.notice{padding:14px 17px;border:1px solid #d8e7fa;background:#f1f6fe;border-radius:12px;color:var(--blue-deep);font-size:14px;margin-bottom:20px;overflow-wrap:anywhere}.notice.error{border-color:#f3cbd2;background:#fff2f4;color:var(--red)}.notice.success{border-color:#ccebdd;background:#edf9f2;color:var(--green)}.notice.warning{border-color:#f6e1a6;background:#fff9e9;color:#876719}.empty{text-align:center;padding:40px 20px}.empty-mark{display:grid;place-items:center;width:55px;height:55px;background:#edf3fe;color:var(--blue);font-size:30px;border-radius:16px;margin:0 auto 16px}.empty h3{font-size:21px;margin:0 0 8px}.empty p{color:var(--muted);font-size:14px;max-width:510px;margin:0 auto 20px;line-height:1.9}.empty .actions{justify-content:center}.callout{border:1px solid #dbe6f8;background:#edf3fe;border-radius:16px;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:22px}.callout h2{font-size:18px}.callout p{color:#667a99;font-size:13px;margin:7px 0 0}.page-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 20px}.filter-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:0 0 20px}.page-actions .filter-bar{margin:0;flex:1}.field{display:grid;gap:7px;margin:0 0 17px;min-width:0}.field label,.selector-search>label{font-size:13px;font-weight:600}.field input,.field select,.field textarea,.selector-search input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;background:#fbfcfe;color:var(--ink);min-height:46px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.selector-search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e5edfc}.field small,.selector-search small{color:var(--muted);font-size:11px;line-height:1.8}.field.compact{margin:0;min-width:170px}.filter-bar .field:first-child{flex:1;min-width:220px}.filter-bar.multi .field:first-child{flex:2}.filter-bar.multi .field{flex:1;min-width:145px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.form-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.checkbox{display:flex;align-items:flex-start;gap:10px;font-size:13px;margin:12px 0;cursor:pointer}.checkbox input{width:17px;height:17px;margin:4px 0 0;accent-color:var(--blue);flex:none}.muted{color:var(--muted);font-size:12px}.pagination{border-top:1px solid var(--line);padding-top:17px;margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:12px}.pagination>div{display:flex;gap:7px}.tabs{display:flex;gap:7px;margin-bottom:22px;border-bottom:1px solid var(--line)}.tabs a{padding:12px 18px;color:var(--muted);border-bottom:3px solid transparent}.tabs a.active{border-color:var(--yellow);color:var(--blue);font-weight:800}.inline-settings{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}.inline-settings .checkbox{flex:1}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:38px 20px;background:#f2f6fd}.login-brand{text-align:center;margin-bottom:25px}.login-brand img{display:block;width:190px;margin:0 auto 14px}.login-brand span{font-size:12px;color:#7c8ba3}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow)}.login-card h1{font-size:27px}.login-card>p{color:var(--muted);font-size:14px;margin:8px 0 24px}.login-back{display:block;text-align:center;padding:20px 0 0;font-size:13px;font-weight:600}.login-foot{color:#8491a6;font-size:12px;margin:24px 0 0}.admin-footer{display:flex;gap:15px;justify-content:space-between;color:#8c98aa;font-size:11px;margin-top:35px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}.upload-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.8fr);gap:22px;align-items:start}.upload-panel{margin:0}.dropzone{border:1.5px dashed #b7c9e9;background:#f7faff;border-radius:16px;padding:28px 20px;text-align:center;display:flex;gap:7px;flex-direction:column;align-items:center;color:var(--muted);cursor:pointer}.dropzone.dragging{border-color:var(--blue);background:#eaf1ff}.dropzone strong{color:var(--ink);font-size:17px}.dropzone span:not(.upload-arrow),.dropzone small{font-size:12px}.upload-arrow{width:48px;height:48px;display:grid;place-items:center;background:#e8effc;color:var(--blue);border-radius:14px;font-size:28px;margin-bottom:7px}.dropzone input{max-width:100%;font-size:12px;margin-top:12px;color:var(--ink)}.file-summary{margin:12px 0 19px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.mode-switch{display:flex;gap:14px;flex-wrap:wrap;background:#f7f9fd;border-radius:10px;padding:12px;margin:15px 0}.mode-switch label{font-size:13px;display:flex;gap:7px;align-items:center}.mode-switch input{accent-color:var(--blue)}.selector-search{padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:17px}.selector-search>div{display:flex;gap:8px;margin:7px 0}.selector-search input{flex:1;min-width:0}.cover-preview{max-width:230px;max-height:150px;border-radius:10px;object-fit:contain;margin-bottom:16px;background:#f1f4f9}.upload-progress{padding:20px;background:#f5f8fd;border:1px solid #dee8f8;border-radius:12px;margin-top:18px}.progress-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}progress{width:100%;height:10px;border:0;border-radius:99px;overflow:hidden;appearance:none;display:block;margin-top:12px;background:#e3eaf5}progress::-webkit-progress-bar{background:#e3eaf5}progress::-webkit-progress-value{background:var(--blue);border-radius:99px}progress::-moz-progress-bar{background:var(--blue);border-radius:99px}.upload-progress p{font-size:13px;color:var(--muted);margin:12px 0}.upload-progress.has-error{background:#fff5f6;border-color:#f4d2d8}.upload-progress.has-error p{color:var(--red)}.upload-tip{background:#edf3fe;border-radius:14px;padding:22px;color:var(--blue-deep)}.upload-tip p{font-size:13px;color:#6b7e9b;margin:8px 0 0}.checklist{display:grid;gap:14px;margin-top:20px}.check{display:flex;gap:13px;align-items:flex-start;padding:15px;background:#f8fafc;border:1px solid #edf0f5;border-radius:12px}.check-index{background:#fff0ba;color:#8a6500;min-width:29px;height:29px;border-radius:8px;display:grid;place-items:center;font-size:11px;flex:none}.check strong{font-size:13px}.check p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.9}.drive-lockup{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.drive-lockup>div{flex:1}.drive-symbol{display:grid;place-items:center;width:68px;height:68px;background:#edf3fe;color:var(--blue);font-size:33px;border-radius:18px}.drive-lockup p{color:var(--muted);font-size:13px;margin:4px 0 0}.drive-details{display:grid;gap:0;margin:22px 0}.drive-details>div{border-bottom:1px solid var(--line);padding:14px 0;display:flex;gap:20px;flex-wrap:wrap}.drive-details span{font-size:12px;color:var(--muted);width:185px}.drive-details code{overflow-wrap:anywhere;font-size:12px}.drive-details strong{font-size:13px}.drive-panel .notice{margin-top:22px}.review-layout{display:grid;grid-template-columns:minmax(190px,.75fr) minmax(0,1.4fr);gap:26px}.review-thumb,.neutral-thumb{width:100%;aspect-ratio:16/10;object-fit:contain;border-radius:12px;background:#f0f4fa;margin-bottom:15px}.neutral-thumb{display:grid;place-items:center;color:var(--muted);font-size:13px}.cover-form{margin-top:20px}.review-status{display:flex;gap:8px;flex-wrap:wrap;margin-top:23px}.publish-form{background:#fffbef;border:1px solid #f7e8b5;border-radius:12px;padding:16px;margin-top:18px}.file-cell{display:flex;gap:11px;align-items:center;min-width:180px;max-width:350px}.file-cell img,.file-neutral{width:67px;height:44px;border-radius:7px;object-fit:cover;flex:none;background:#edf3fe}.file-neutral{display:grid;place-items:center;font-size:10px;color:var(--blue)}.file-cell strong{display:block;overflow-wrap:anywhere}.file-error{display:block;color:var(--red);font-size:10px;max-width:250px;line-height:1.7;margin-top:5px}.retry-feedback{font-size:11px;color:var(--muted);max-width:250px;line-height:1.8;margin-top:8px}.log-message{max-width:340px;overflow-wrap:anywhere;font-size:12px}.form-footer .muted{flex:1}
@media(max-width:1150px){.admin-layout{grid-template-columns:205px minmax(0,1fr)}.admin-main{padding:27px 24px}.upload-layout{grid-template-columns:minmax(0,1.35fr) minmax(235px,.8fr)}.stats{gap:12px}.stat{padding:16px}.stat-num{font-size:30px}.profile{max-width:180px}.filter-bar.multi .field{min-width:165px}}@media(max-width:900px){.admin-layout{display:block}.sidebar{padding:10px 20px;border:0;border-bottom:1px solid var(--line)}.workspace,.side-label,.sidebar-note{display:none}.side-nav{display:flex;gap:5px;overflow:auto;padding-bottom:4px}.side-nav a{white-space:nowrap;min-height:44px;padding:10px 12px;font-size:12px}.nav-mark{display:none}.topbar{position:static;padding:14px 22px}.surface-label{display:none}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-layout{grid-template-columns:1fr}.upload-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.upload-aside .panel{margin:0}.upload-tip{align-self:start}.form-grid{gap:0 16px}.review-layout{grid-template-columns:minmax(180px,.8fr) minmax(0,1.5fr)}}@media(max-width:560px){body{font-size:14px}.topbar{padding:15px 18px;gap:10px}.brand img{width:122px}.top-actions{gap:5px}.top-actions .btn{padding:7px 9px;font-size:11px;min-height:38px}.public-link{display:none}.admin-main{padding:25px 18px}.admin-header{align-items:flex-start;margin-bottom:22px}.profile{display:none}.admin-header p{font-size:12px}.panel{padding:17px}.panel-head{gap:12px}.panel-head p{font-size:12px}.panel-head h2{font-size:18px}.stats{gap:10px}.stats.three{grid-template-columns:1fr}.stat{padding:15px}.stat-num{font-size:28px}.stat-label{font-size:12px}.stat small{font-size:10px}.callout{display:block;padding:20px}.callout .btn{margin-top:16px}.form-grid{grid-template-columns:1fr}.field input,.field select,.field textarea{font-size:16px}.filter-bar{gap:9px}.filter-bar .field,.filter-bar.multi .field{min-width:calc(50% - 8px);flex:1}.filter-bar .field:first-child,.filter-bar.multi .field:first-child{flex-basis:100%}.page-actions{gap:13px}.page-actions>.actions{width:100%}.page-actions>.actions .btn{flex:1}.upload-aside{grid-template-columns:1fr}.review-layout{grid-template-columns:1fr}.review-thumb,.neutral-thumb{max-height:220px}.selector-search>div{display:block}.selector-search button{margin-top:10px;width:100%}.login-card{padding:26px}.login-page{padding:28px 18px}.tabs a{font-size:13px;padding:10px 13px}.pagination{align-items:flex-start;gap:10px;flex-wrap:wrap}.form-footer{align-items:flex-start}.form-footer>.btn{width:100%}.inline-settings{align-items:stretch;gap:14px}.inline-settings>*{flex-basis:100%}.admin-footer{margin-top:26px}.admin-footer span{display:block}.dropzone{padding:24px 12px}.mode-switch{display:grid;gap:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
