:root{color-scheme:dark;--bg:#102332;--panel:#1b3449;--line:#314b62;--text:#edf6ff;--muted:#9ab2c8;--accent:#8170f5}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(ellipse at 5% 0,#30485f80,transparent 40%),var(--bg);color:var(--text);font:14px/1.6 'Segoe UI','Microsoft YaHei UI',sans-serif}button,input,select,textarea{font:inherit;color:inherit;border:1px solid var(--line);border-radius:10px;background:#142d41;padding:11px 14px}button{cursor:pointer;white-space:nowrap}button:hover{border-color:#9988ff;background:#28475e}button:disabled{opacity:.5;cursor:wait}.primary{background:linear-gradient(110deg,#8271ef,#6869e7);border-color:#9785ff;color:#fff}input,select{width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #9a87ff;outline-offset:2px}label{display:grid;gap:7px;color:#bfd2e3}.card{background:linear-gradient(125deg,#233c51,#193146);border:1px solid var(--line);border-radius:19px;padding:25px;box-shadow:0 12px 26px #07131c20}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login form{width:min(430px,100%);display:grid;gap:14px}.logo{display:inline-grid;place-items:center;width:43px;height:43px;border-radius:14px;background:linear-gradient(130deg,#8d7cf9,#6668de);color:white;font-size:27px;font-weight:750;box-shadow:0 5px 20px #6159c83a}.eyebrow{color:#a99dff;font-size:11px;letter-spacing:2px;margin:0 0 6px}h1{font-size:29px;line-height:1.2;margin:0}h1 small{font-size:14px;color:#acbdd0}h2{font-size:17px;margin:0 0 18px}p{color:var(--muted)}.error{color:#ffb7c2}.app{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;padding:30px 18px;background:linear-gradient(150deg,#273e52,#172d40);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;gap:14px;align-items:center;font-size:26px;font-weight:700;letter-spacing:2px}.brand small{display:block;color:#a0b8ce;font-size:11px;font-weight:400;margin-top:3px}nav{display:grid;gap:10px;margin-top:55px}nav button{text-align:left;border-color:transparent;background:transparent;color:#b7cadd}nav button.active{background:linear-gradient(110deg,#8271ef,#6869e7);color:white;border-color:#9885ff}.sidefoot{margin-top:auto;display:grid;gap:15px;color:var(--muted)}main{padding:30px;max-width:1600px;width:100%}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:25px}.stats .card{display:grid;gap:8px}.stats span,.stats small{color:var(--muted)}.stats strong{font-size:28px;color:#a1d9ff}.tab{display:grid;gap:22px}.row{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.row label{flex:1;min-width:140px}.grow{flex:2!important}.row h2{align-self:center;margin:0}.table{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}td,th{padding:14px 11px;border-bottom:1px solid #36506770;text-align:left}th{color:#9cb3c8;font-weight:400;font-size:12px}td button{padding:5px 9px;font-size:12px;margin-right:6px}td.note{white-space:normal;min-width:100px;max-width:260px;overflow-wrap:anywhere}textarea{width:100%;height:160px;margin:12px 0;font-family:Consolas,monospace}.status{position:sticky;bottom:15px;pointer-events:none;border-radius:12px;padding:12px 18px;background:#2a455e;color:#dce9f5;display:none}.status:not(:empty){display:block}.narrow{max-width:520px;display:grid;gap:18px}@media(max-width:900px){.app{grid-template-columns:1fr}aside{position:static;height:auto;padding:16px}.brand{font-size:21px}nav{display:flex;flex-wrap:wrap;margin-top:18px}.sidefoot{margin-top:15px;display:flex;align-items:center;justify-content:space-between}main{padding:18px}.stats{gap:10px}.stats .card{padding:16px}.stats strong{font-size:20px}.row label{min-width:180px}}
.full-key{display:block;min-width:330px;margin:8px 0;font:13px Consolas,monospace}.table small{display:block;color:#b5c6d9}.status.error{color:#ffb7c2}#priceRows input[type=number]{min-width:110px}#priceRows input[type=checkbox]{width:18px;height:18px;accent-color:#8877ef}
