:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172033;background:#eef3f8;font-family:Microsoft YaHei UI,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-weight:650;display:inline-flex}button.secondary{color:#334155;background:#fff;border:1px solid #d7dee8}button.compact{border-radius:8px;padding:7px 10px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}input,textarea{color:#172033;background:#fff;border:1px solid #d7dee8;border-radius:10px;width:100%;padding:10px 12px}label{color:#526176;gap:7px;font-size:13px;display:grid}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#ffffffeb;border:1px solid #d7dee8;border-radius:24px;gap:16px;width:min(420px,100%);padding:28px;display:grid;box-shadow:0 18px 60px #1e293b1f}.login-card h1,.topbar h1{margin:0}.login-card p{color:#64748b;margin:0;line-height:1.6}.eyebrow{color:#2563eb;letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:800}.app-shell{width:min(1180px,100vw - 40px);margin:0 auto;padding:28px 0 48px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.topbar-actions{flex-wrap:wrap;gap:10px;display:flex}.grid{grid-template-columns:360px 1fr 1fr;gap:18px;margin-bottom:18px;display:grid}.span-2{grid-column:span 2}.panel{background:#fffffff0;border:1px solid #d7dee8;border-radius:20px;padding:18px;box-shadow:0 8px 32px #1e293b12}.panel h2{margin:0 0 14px;font-size:17px}.panel p{color:#64748b;margin:4px 0 0;font-size:13px}.section-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.release-list,.log-list{gap:8px;display:grid}.release-row{color:#172033;text-align:left;background:#f8fafc;border:1px solid #0000;grid-template-columns:1fr auto 48px;align-items:center;width:100%;display:grid}.release-row.active{background:#eef5ff;border-color:#2563eb}.release-row small{color:#64748b;margin-top:2px;display:block}.muted{color:#94a3b8}.badge{color:#334155;background:#e2e8f0;border-radius:999px;padding:4px 8px;font-size:12px}.badge.published{color:#166534;background:#dcfce7}.badge.draft{color:#92400e;background:#fef3c7}.upload-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.upload-card{text-align:center;cursor:pointer;background:#f8fafc;border:1px dashed #b9c5d4;border-radius:18px;place-items:center;min-height:142px;padding:20px}.upload-card input{display:none}.upload-card strong{color:#172033}.upload-card span{color:#64748b}.file-table{gap:8px;margin-top:18px;display:grid}.file-table-head,.file-row{grid-template-columns:150px minmax(220px,1fr) 90px minmax(190px,1fr) 92px;align-items:center;gap:12px;display:grid}.file-table-head{color:#64748b;padding:0 12px;font-size:12px;font-weight:800}.file-row{color:#334155;background:#fbfdff;border:1px solid #e5ebf3;border-radius:14px;padding:12px;font-size:13px}.file-row small{color:#64748b;margin-top:2px;display:block}.file-row code{text-overflow:ellipsis;color:#475569;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:12px;overflow:hidden}.notes-box{background:#f8fafc;border:1px solid #e5ebf3;border-radius:14px;margin-top:16px;padding:14px}.notes-head{align-items:center;margin-bottom:12px}.notes-box p{line-height:1.6}.banner{border-radius:14px;margin-bottom:14px;padding:12px 14px;font-size:14px}.error{color:#b42318}.banner.error{color:#b42318;background:#fee4e2}.banner.success{color:#166534;background:#dcfce7}.empty{color:#64748b;text-align:center;background:#f8fafc;border-radius:14px;padding:18px}.log-row{color:#526176;border-bottom:1px solid #eef2f7;grid-template-columns:190px 90px 1fr;gap:12px;padding:10px 0;font-size:13px;display:grid}@media (width<=860px){.grid,.upload-grid{grid-template-columns:1fr}.file-table-head{display:none}.file-row{grid-template-columns:1fr;align-items:stretch}.span-2{grid-column:auto}.topbar,.section-head{flex-direction:column}}
