:root{color:#f4f5f7;background:#08090b;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--panel: #121419;--panel-soft: #171a20;--line: #292d35;--muted: #969ca8;--accent: #8ed5ff;--accent-strong: #3faee9;--success: #61d39a;--danger: #ff6b73}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:radial-gradient(circle at 50% -20%,#242934 0,#0c0e12 40%,#08090b 72%)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.page{width:min(820px,calc(100% - 32px));min-height:100vh;margin:0 auto;padding:38px 0 24px}.brand{display:flex;flex-direction:column;align-items:center;gap:5px}.brand a{display:block;line-height:0}.brand img{width:190px;height:auto;display:block}.brand span{color:#7e8590;font-size:12px;letter-spacing:.22em;text-transform:uppercase}.brand--compact{align-items:flex-start}.brand--compact img{width:158px}.hero{text-align:center;margin:56px auto 32px}.eyebrow{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin:0 0 10px}.hero h1,.admin-title h1,.login-card h1{font-size:clamp(32px,5vw,48px);letter-spacing:-.04em;margin:0 0 12px}.hero>p:last-child,.admin-title p:last-child{color:var(--muted);line-height:1.6;margin:0}.drop-zone{position:relative;min-height:300px;border:1px dashed #3d424c;border-radius:18px;background:#121419d1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;cursor:pointer;outline:none}.drop-zone:hover,.drop-zone:focus-visible{border-color:#6b7482;background:#15181e}.drop-zone--active{border-color:var(--accent);background:#2545569e;transform:scale(1.012);box-shadow:0 0 0 5px #8ed5ff14,inset 0 0 50px #52b5eb14}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.drop-icon{width:64px;height:64px;display:grid;place-items:center;border:1px solid #434955;border-radius:50%;margin-bottom:22px;background:#1a1d24;color:var(--accent)}.drop-icon span{font-size:36px;font-weight:200;line-height:1;transform:translateY(-2px)}.drop-zone h2{font-size:21px;letter-spacing:-.02em;margin:0 0 8px}.drop-zone p{color:var(--muted);margin:0 0 28px}.drop-zone strong{color:var(--accent);font-weight:600}.drop-zone small{color:#717783;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.availability-loading,.unavailable-panel{min-height:300px;border:1px solid var(--line);border-radius:18px;background:#121419d1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;text-align:center}.availability-loading{color:var(--muted);gap:12px}.unavailable-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;color:#ffb5b9;background:#ad2d362e;border:1px solid rgba(255,107,115,.35);font-size:24px;font-weight:700;margin-bottom:20px}.unavailable-panel h2{font-size:22px;margin:0 0 10px}.unavailable-panel p{color:var(--muted);margin:0 0 24px}.unavailable-panel a{color:#fff;background:#208cc6;padding:11px 16px;border-radius:8px;text-decoration:none;font-weight:650}.notice{border-radius:9px;padding:11px 14px;font-size:14px;margin:14px 0}.notice--error{color:#ffc2c5;background:#83232b47;border:1px solid rgba(255,107,115,.3)}.upload-list{margin-top:34px}.list-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.list-heading h2{font-size:16px;margin:0}.list-heading span{color:var(--muted);font-size:13px}.upload-row{display:flex;gap:14px;align-items:center;padding:15px;margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:11px}.file-badge{width:45px;height:45px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:#20242c;color:#c3c8d1;font-size:10px;font-weight:800;letter-spacing:.06em}.file-detail{min-width:0;flex:1}.file-title,.file-status{display:flex;justify-content:space-between;gap:16px}.file-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.file-title span,.file-status{color:var(--muted);font-size:12px}.progress-track{height:3px;overflow:hidden;border-radius:2px;background:#292d34;margin:9px 0 7px}.progress-track div{height:100%;background:var(--accent-strong);transition:width .15s ease}.upload-row--complete .progress-track div{background:var(--success)}.upload-row--duplicate .progress-track div{background:#747b86}.upload-row--failed .progress-track div{background:var(--danger)}.file-status button{border:0;padding:0;background:transparent;color:var(--accent);font-weight:600}.status-mark{width:26px;color:var(--success);text-align:center;font-size:18px;font-weight:700}.upload-row--duplicate .status-mark{color:var(--muted)}.upload-row--failed .status-mark{color:var(--danger)}footer{text-align:center;color:#626873;font-size:12px;margin-top:48px}.login-page,.loading-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);padding:34px;background:#121419f0;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 80px #00000059}.login-card .brand{margin-bottom:52px}.login-card h1{font-size:30px;margin-bottom:30px}.login-card label{display:block;color:#b7bbc4;font-size:13px;margin-bottom:8px}.login-card input{width:100%;color:#fff;background:#0c0e12;border:1px solid #343943;border-radius:8px;padding:12px 13px;outline:none}.login-card input:focus{border-color:var(--accent-strong);box-shadow:0 0 0 3px #3faee91f}.primary-button,.secondary-button,.danger-button{border-radius:8px;padding:10px 15px;border:1px solid transparent;color:#fff;font-weight:650}.primary-button{width:100%;margin-top:16px;background:#208cc6}.primary-inline-button{border:1px solid #387da3;border-radius:8px;padding:10px 15px;color:#fff;background:#208cc6;font-weight:650}.secondary-button{background:#20242b;border-color:#373c46}.danger-button{background:#ad2d3640;border-color:#ff6b7359;color:#ffabb0}.loading-page{color:var(--muted);gap:14px;align-content:center}.spinner{width:28px;height:28px;border:2px solid #333842;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-page{min-height:100vh;background:#0b0d10}.admin-header{height:82px;padding:0 clamp(20px,4vw,60px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #242830;background:#0d0f13}.admin-header>div{display:flex;align-items:center;gap:22px}.admin-label{padding:5px 7px;color:var(--accent);border:1px solid #31556b;border-radius:4px;font-size:9px;font-weight:800;letter-spacing:.14em}.text-button{color:var(--muted);border:0;background:transparent}.admin-content{width:min(1320px,calc(100% - 40px));margin:0 auto;padding:52px 0}.admin-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.admin-title h1{font-size:36px;margin-bottom:8px}.availability-control{min-height:76px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-radius:11px;background:var(--panel);margin-bottom:18px}.availability-control>div{display:flex;align-items:center;gap:13px}.availability-control strong{display:block;font-size:14px;margin-bottom:4px}.availability-control p{color:var(--muted);font-size:12px;margin:0}.availability-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;box-shadow:0 0 0 5px #61d39a1a;background:var(--success)}.availability-control--disabled{border-color:#ff6b7347;background:#4e191e29}.availability-control--disabled .availability-dot{background:var(--danger);box-shadow:0 0 0 5px #ff6b731a}.action-bar{min-height:58px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;border-radius:10px;margin-bottom:12px;color:var(--muted);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,visibility .15s}.action-bar--visible{opacity:1;visibility:visible;pointer-events:auto;border-color:#293b47;background:#121c22}.action-bar>div{display:flex;gap:8px}.file-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.file-table{width:100%;border-collapse:collapse;min-width:870px}.file-table th{color:#858c97;background:#15181d;font-size:11px;letter-spacing:.09em;text-align:left;text-transform:uppercase}.file-table th,.file-table td{padding:14px 16px;border-bottom:1px solid #242831}.file-table tbody tr{transition:background .12s;cursor:pointer}.file-table tbody tr:hover,.file-table tbody tr.selected{background:#191d23}.file-table tbody tr:last-child td{border-bottom:0}.file-table td{color:#aeb3bd;font-size:13px}.file-table td strong{color:#eff1f4;font-weight:600}.check-cell{width:46px;text-align:center!important}.check-cell input{width:16px;height:16px;accent-color:var(--accent-strong)}.type-pill{color:#aeb4bf;background:#23272f;padding:4px 7px;border-radius:4px;font-size:9px;font-weight:800}.file-table code{color:#7e8794}.empty-table{height:180px;text-align:center;color:#737a85!important}@media(max-width:640px){.page{padding-top:24px}.brand img{width:160px}.hero{margin:40px auto 24px}.drop-zone{min-height:250px;padding:24px 16px}.upload-row{align-items:flex-start}.file-title{flex-direction:column;gap:3px}.admin-header{height:70px}.admin-header .brand img{width:120px}.admin-content{width:min(100% - 24px,1320px);padding:30px 0}.admin-title{align-items:flex-start}.admin-title h1{font-size:29px}.availability-control{align-items:stretch;flex-direction:column}.availability-control button{width:100%}.action-bar{align-items:flex-start;flex-direction:column;gap:10px}}
