:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#233633;background:#f5f7f6;font-synthesis:none;--green:#176b51;--muted:#7b8782;--border:#e4eae6}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,label.dropzone{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;transition:background .15s,transform .15s}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,.dropzone:focus-within{outline:3px solid #70bda4;outline-offset:3px}input:focus,select:focus{outline:2px solid #70bda4;outline-offset:1px}a{color:inherit;text-decoration:none}.hidden{display:none!important}.app{display:flex;min-height:100vh}aside{width:224px;flex-shrink:0;background:#fff;border-right:1px solid var(--border);padding:34px 22px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:var(--green);font-size:34px;padding:0 8px}.brand span{font-size:23px;font-weight:750;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:2.4px;margin-top:4px;color:#7d8d86}.nav-caption{font-size:11px;color:#99a39e;letter-spacing:2px;margin:54px 14px 16px}nav{display:grid;gap:9px}.nav{display:flex;gap:13px;align-items:center;text-align:left;border-radius:8px;background:transparent;padding:14px 16px;font-size:18px;color:#84928a}.nav span{font-size:14px}.nav.active{background:#eaf4ee;color:#176b51;font-weight:650}.nav:hover{background:#f0f5f2}.sidebar-note{margin-top:auto;padding:16px 10px 4px;font-size:12px;line-height:1.7;color:#547260}.sidebar-note i{display:inline-block;width:6px;height:6px;background:#5b9e78;border-radius:50%;margin-right:5px}.sidebar-note p{color:#99a39e;font-size:11px;margin:7px 0}.logout{background:none;text-align:left;padding:20px 10px;color:#7c8982;font-size:12px}main{margin-left:224px;width:calc(100% - 224px)}header{height:78px;background:#ffffffd9;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:12px}.breadcrumb{color:#8a9690}.slash{color:#c9d2cc;margin:0 15px}.account{display:flex;align-items:center;gap:10px;color:#64736b}.account b{display:grid;place-items:center;background:#eaf1ed;color:#476858;width:30px;height:30px;border-radius:50%;font-size:12px}.content{max-width:1440px;margin:auto;padding:38px 42px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:1.5px;color:#6c8f7d;margin:0 0 12px}h1{font-size:28px;letter-spacing:-.6px;font-weight:650;margin:0 0 12px}h2{font-size:15px;font-weight:650;margin:0}h3{font-size:15px;font-weight:550}.muted{color:var(--muted);font-size:12px;line-height:1.8;margin:4px 0}.primary,.secondary{border-radius:7px;padding:12px 18px;font-size:12px;font-weight:550}.primary{background:#176b51;color:white}.primary:hover:not(:disabled){background:#10533e}.secondary{background:white;color:#5a7064;border:1px solid #dbe4de}.secondary:hover{background:#edf4ef}.wide{width:100%}.stats{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--border);border-radius:12px;margin-bottom:26px;padding:23px 0}.stats>div{padding:0 25px;border-right:1px solid var(--border)}.stats>div:last-child{border:0}.stats span{font-size:11px;color:#7b8980}.stats strong{display:block;font-size:29px;font-weight:600;margin:10px 0 4px;line-height:1.2}.stats small{font-size:11px;color:#8b9991;font-weight:400;margin-left:8px}.stats p{font-size:10px;color:#9aa59f;margin:7px 0 0}.publish-grid{display:grid;grid-template-columns:1.14fr 1fr;gap:22px;margin-bottom:22px}.panel{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden}.panel-heading{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.badge{border-radius:5px;font-size:10px;padding:5px 9px;background:#edf4ef;color:#56816a}.preview{background:#edf1ee;margin:0 24px;border-radius:7px;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;overflow:hidden}.preview img{width:100%;height:100%;object-fit:contain;background:#111}.empty{text-align:center;color:#91a097;background:repeating-linear-gradient(45deg,#f1f4f2,#f1f4f2 10px,#f4f6f4 10px,#f4f6f4 20px)}.empty-icon{font-size:39px;color:#bac9bf}.empty h3{margin:10px 0}.empty p{font-size:11px;color:#a1ada5}.image-meta{display:flex;align-items:center;justify-content:space-between;padding:20px 24px}.image-meta b{font-size:12px;font-weight:550}.image-meta p{font-size:10px;color:#9aa69e;margin:8px 0 0}.version{font-size:11px;color:#819389}.step{font-size:10px;color:#95a29b}.upload-panel{padding:0 24px 18px}.upload-panel .panel-heading{padding-left:0;padding-right:0}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed #becfc4;border-radius:8px;min-height:175px;background:#fbfcfb;cursor:pointer;padding:20px 8px;text-align:center}.dropzone.drag{border-color:#176b51;background:#edf5ef}.dropzone input{position:absolute;opacity:0;width:1px;height:1px}.upload-symbol{width:35px;height:35px;background:#e9f1eb;border-radius:9px;display:grid;place-items:center;color:#72967f;font-size:24px}.dropzone strong{font-size:12px;font-weight:500}.dropzone span{font-size:10px;color:#98a69d}.dropzone .upload-symbol{font-size:24px;color:#72967f}.dropzone .subtle{font-size:9px;color:#adb8b1}.delivery-note{display:flex;gap:12px;margin:23px 0 20px}.delivery-note>span{color:#5f8f73;font-size:24px}.delivery-note b{font-size:11px;font-weight:550}.delivery-note p{font-size:10px;line-height:1.9;color:#8e9e93;margin:6px 0 0}.footnote{font-size:10px;color:#97a49c;text-align:center;line-height:1.8;margin:12px 0 0}.draft{margin-top:12px;padding:10px;border:1px solid var(--border);display:flex;align-items:center;gap:10px;border-radius:7px}.draft img{width:45px;height:36px;object-fit:contain;background:#f0f3f1}.draft div{min-width:0;flex:1}.draft b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.draft p{font-size:10px;color:#8c9b91;margin:4px 0}.text-button{background:transparent;color:var(--green);font-size:11px;padding:5px;white-space:nowrap}.store-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 24px 24px}.store-card{border:1px solid var(--border);border-radius:8px;padding:16px}.store-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.store-top b{font-size:12px;font-weight:550}.store-icon{display:inline-grid;place-items:center;background:#f0f5f1;color:#7b9686;width:29px;height:29px;border-radius:6px;margin-right:8px}.store-card p{color:#92a097;font-size:10px;margin:8px 0 0}.store-status{display:flex;justify-content:space-between;font-size:10px;color:#8a9b90;border-top:1px solid #eff2ef;padding-top:12px}.store-status .ok{color:#367f5a}.rename{color:#b4beb7;font-size:12px;background:none}.bind-panel{margin-bottom:22px;padding:24px}.bind-panel form{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;gap:15px;align-items:end;margin-top:20px}label{display:block;font-size:11px;color:#657a6d}input,select{display:block;width:100%;margin:8px 0 0;border:1px solid #dce4df;padding:11px 12px;border-radius:6px;background:white;color:#243f30;font-size:12px}.device-list,.release-list{padding:0 24px 24px}.device-row{display:grid;grid-template-columns:1.5fr 1fr 1.5fr auto;gap:20px;align-items:center;border-top:1px solid var(--border);padding:20px 0;font-size:12px}.device-row p{font-size:10px;color:#95a298;margin:7px 0}.status{display:inline-flex;align-items:center;gap:6px;font-size:11px}.dot{width:6px;height:6px;background:#bbc4bd;border-radius:50%;display:inline-block}.dot.online{background:#3f9770}.warn{color:#b17a36}.release-row{display:flex;gap:18px;align-items:center;padding:18px 0;border-top:1px solid var(--border)}.release-row img{width:100px;height:60px;object-fit:contain;background:#f0f3f0;border-radius:5px}.release-row>div{flex:1}.release-row b{font-size:12px}.release-row p{font-size:10px;color:#93a096;margin:8px 0 0}.event-panel{margin-top:22px;padding:24px}.event-panel h2{margin-bottom:15px}.event-row{font-size:11px;display:flex;gap:20px;padding:12px 0;border-top:1px solid var(--border)}.event-row span{color:#8d9b92}.empty-list{padding:38px 0;text-align:center;color:#9caaa0;font-size:12px}footer{display:flex;justify-content:space-between;font-size:9px;color:#a8b3ab;padding:27px 0 5px}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,#e9f3ec,#f7f9f7 70%);padding:30px}.login-brand{color:#176b51;font-weight:650;font-size:28px;margin-bottom:30px}.login-brand span{display:block;font-size:9px;letter-spacing:4px;text-align:center;margin-top:9px}.login-card{padding:35px;background:white;border:1px solid var(--border);border-radius:14px;width:min(440px,100%);box-shadow:0 15px 60px #244f3410}.login-card h1{font-size:25px}.login form{margin-top:24px}.login form label{margin-top:18px}.login .primary{margin-top:24px}.login>.muted{margin-top:24px}.error{color:#bd5245;font-size:11px;line-height:1.6;min-height:14px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#243f30;color:white;box-shadow:0 6px 30px #0002;padding:14px 22px;border-radius:8px;font-size:12px;z-index:100;max-width:90vw}.toast.bad{background:#8b443c}dialog{border:1px solid var(--border);border-radius:12px;padding:28px;max-width:460px;box-shadow:0 20px 100px #0003}dialog::backdrop{background:#102b2266}dialog h2{font-size:20px;margin-bottom:15px}.dialog-actions{display:flex;justify-content:end;gap:10px;margin-top:25px}@media(min-width:1500px){.preview{aspect-ratio:16/8.4}.dropzone{min-height:220px}}@media(max-width:1100px){aside{width:185px;padding:28px 14px}main{margin-left:185px;width:calc(100% - 185px)}header{padding:0 25px}.content{padding:28px 25px}.publish-grid{grid-template-columns:1fr}.store-grid{grid-template-columns:repeat(2,1fr)}.bind-panel form{grid-template-columns:1fr 1fr}.stats>div{padding:0 15px}.stats strong{font-size:25px}}@media(max-width:650px){aside{width:100%;height:65px;padding:0 12px;inset:auto 0 0;z-index:20;border-top:1px solid var(--border);border-right:0;display:block}.brand,.nav-caption,.sidebar-note,.logout{display:none}nav{display:flex;height:100%;justify-content:space-around;gap:0}.nav{padding:10px;font-size:17px;gap:7px;border-radius:0}.nav span{font-size:11px}main{margin:0;width:100%;padding-bottom:65px}header{height:60px;padding:0 18px;font-size:10px}.content{padding:25px 16px}.account{font-size:10px}.page-heading{align-items:start}.page-heading>.secondary{font-size:10px;padding:9px;white-space:nowrap}h1{font-size:21px}.page-heading .muted{font-size:11px}.stats{grid-template-columns:1fr 1fr;padding:0;margin-bottom:18px}.stats>div{padding:18px;border-bottom:1px solid var(--border)}.stats>div:nth-child(2){border-right:0}.stats>div:nth-child(3){border-bottom:0}.stats strong{font-size:25px}.panel-heading{padding:18px}.preview{margin:0 18px}.image-meta{padding:18px}.upload-panel{padding:0 18px 18px}.store-grid{grid-template-columns:1fr;padding:0 18px 18px}.publish-grid{gap:18px}.bind-panel{padding:18px}.bind-panel form{grid-template-columns:1fr}.device-row{grid-template-columns:1fr auto;gap:12px}.release-list,.device-list{padding:0 18px 18px}.release-row{gap:10px;flex-wrap:wrap}.release-row img{width:70px;height:45px}.release-row .secondary{padding:9px;font-size:10px}.event-row{flex-direction:column;gap:5px}footer{gap:12px}.panel-heading>.muted{font-size:10px}.panel-heading h2{font-size:14px}}
.heading-actions,.store-actions,.device-actions{display:flex;gap:9px;align-items:center}.danger{color:#b56554}.store-top>div:first-child{min-width:0}.store-top b{overflow-wrap:anywhere}.store-top .store-actions{flex-shrink:0}.store-top{gap:8px}.store-panel{margin-bottom:22px}.store-grid>.empty-list{grid-column:1/-1}#store-dialog{width:min(430px,90vw)}#store-dialog input{margin-top:12px}@media(max-width:650px){.heading-actions{flex-direction:column;gap:5px}.store-top .store-actions{gap:5px}.device-actions{justify-content:end}}
