:root{font-family:"Microsoft YaHei UI","Segoe UI",sans-serif;color:#0a3158;background:#eff6fd;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 8%,#f8eefe 0,transparent 33%),radial-gradient(circle at 88% 5%,#dff3ff 0,transparent 34%),linear-gradient(145deg,#f9fbff,#eaf3fc);overflow-x:hidden}.ambient{position:fixed;border-radius:999px;filter:blur(2px);pointer-events:none}.ambient-a{width:28rem;height:28rem;background:#d5e9ff88;right:-12rem;top:-12rem}.ambient-b{width:20rem;height:20rem;background:#f1dfff77;left:-10rem;bottom:-10rem}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-card{width:min(460px,100%);padding:3rem;border:1px solid #c8dcf3;border-radius:28px;background:#ffffffdf;box-shadow:0 28px 80px #497aa327;backdrop-filter:blur(18px)}h1,h2,p{margin:0}.login-card h1{font-size:2rem;margin:.45rem 0 2rem}.eyebrow{font:700 .68rem/1.2 ui-monospace,monospace;letter-spacing:.13em;color:#0875f5}.login-card form{display:grid;gap:1rem}label{display:grid;gap:.45rem;font-size:.82rem;font-weight:700}input,textarea{width:100%;border:1px solid #c5d9ef;border-radius:12px;padding:.82rem 1rem;color:#0b3157;background:#f8fbff;outline:0}input:focus,textarea:focus{border-color:#0875f5;box-shadow:0 0 0 3px #0875f51a}button{border:0;border-radius:12px;padding:.78rem 1.15rem;font-weight:800;cursor:pointer}.primary{color:white;background:linear-gradient(135deg,#0875f5,#0458d6);box-shadow:0 10px 24px #0875f533}.ghost{color:#1962a5;background:#edf6ff;border:1px solid #c7dff6}.error{color:#d63a57;margin-top:1rem;min-height:1.2rem}.app-shell{width:min(1480px,calc(100% - 48px));margin:auto;padding:30px 0 70px;position:relative}.app-shell header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.app-shell header h1{font-size:2.15rem;margin-top:.35rem}.header-actions{display:flex;gap:.8rem;align-items:center}.live-dot{padding:.6rem .9rem;border:1px solid #bfe6d5;border-radius:999px;background:#effcf7;font-size:.78rem}.live-dot:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#42d7a2;margin-right:.5rem;box-shadow:0 0 0 5px #42d7a21f}nav{display:flex;gap:.5rem;padding:.45rem;background:#dceafb99;border:1px solid #c4dbf2;border-radius:16px;width:max-content;margin-bottom:20px}nav button{background:transparent;color:#496783}nav button.active{background:white;color:#0864d8;box-shadow:0 7px 18px #3f719022}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metrics article,.panel{background:#ffffffdf;border:1px solid #c9ddf2;box-shadow:0 18px 50px #355f8620;backdrop-filter:blur(14px)}.metrics article{padding:1.15rem 1.3rem;border-radius:17px}.metrics span{font-size:.76rem;color:#63809c}.metrics strong{display:block;font:800 1.8rem/1.2 Georgia,serif;color:#086df1;margin-top:.25rem}.page{display:none;gap:18px}.page.active{display:grid}.panel{border-radius:23px;padding:1.45rem}.panel-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid #d2e1ef;margin-bottom:1rem}.panel-title h2{font-size:1.25rem;margin-top:.25rem}.panel-title>span{font:700 .68rem ui-monospace,monospace;color:#0875f5}.inline-form,.release-form{display:flex;gap:.85rem;align-items:end}.inline-form label{width:130px}.inline-form .grow,.release-form .grow{flex:1;width:auto}.generated{margin-top:1rem;padding:1rem;border-radius:15px;background:#ecfbf6;border:1px solid #bce8d9}.generated>div{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem}.generated textarea{height:150px;font:600 .78rem/1.7 ui-monospace,monospace;background:white}.search{width:280px}.table-wrap{overflow:auto;scrollbar-width:none}.table-wrap::-webkit-scrollbar{display:none}table{width:100%;border-collapse:collapse;font-size:.78rem}th{text-align:left;color:#66839f;padding:.8rem;border-bottom:1px solid #d9e6f3}td{padding:.8rem;border-bottom:1px solid #e3edf7;vertical-align:middle}.status{display:inline-flex;border-radius:999px;padding:.28rem .55rem;font-weight:800}.status.active{color:#058a62;background:#e7faf3}.status.disabled,.status.deleted{color:#d13d59;background:#fff0f3}.device{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;gap:.35rem;flex-wrap:wrap}.actions button{padding:.38rem .55rem;font-size:.7rem;background:#edf5ff;color:#1761a7}.actions .danger{color:#cf3d58;background:#fff0f3}.release-form label{min-width:130px}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;white-space:nowrap;padding:.7rem}.check input{width:auto}.file{position:relative;padding:.78rem 1rem;border:1px dashed #86b8ef;border-radius:12px;color:#0875f5;white-space:nowrap}.file input{position:absolute;inset:0;opacity:0;cursor:pointer}.progress{height:5px;background:#e6eef7;border-radius:99px;margin-top:1rem;overflow:hidden}.progress i{display:block;height:100%;width:0;background:#0875f5;transition:width .2s}.release-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.release-card{padding:1rem;border-radius:14px;background:#f6f9fd;border:1px solid #cfdeee}.release-card strong{font:800 1.3rem Georgia,serif;color:#0875f5}.release-card p{font-size:.76rem;color:#607d98;margin-top:.5rem}.audit-list{display:grid;gap:.55rem}.audit-item{display:grid;grid-template-columns:170px 120px 130px 1fr;gap:1rem;padding:.75rem 1rem;border:1px solid #d9e6f3;border-radius:12px;background:#f8fbff;font-size:.76rem}.toast{position:fixed;right:28px;bottom:28px;padding:.85rem 1.1rem;border-radius:12px;color:white;background:#0b3158;box-shadow:0 15px 35px #143d6250;opacity:0;transform:translateY(12px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.inline-form,.release-form{display:grid;grid-template-columns:1fr 1fr}.inline-form label,.inline-form .grow,.release-form label,.release-form .grow{width:auto}.release-grid{grid-template-columns:1fr}.audit-item{grid-template-columns:1fr 1fr}.app-shell{width:calc(100% - 24px)}}
