:root{--bg:#080a0f;--panel:#10131b;--panel2:#0d1016;--line:#222837;--muted:#7d879b;--text:#edf1f8;--violet:#a86dff;--violet2:#7d4cc8;--green:#55d89a;--red:#ef7080;--gold:#e3b24e;--blue:#66a8ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 70% -20%,rgba(151,91,255,.14),transparent 35%),var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid #191e29;background:linear-gradient(180deg,#0c0f15,#090b10);padding:18px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:8px 8px 18px}.brand-mark{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;font-weight:950;background:linear-gradient(135deg,#a66cff,#6f43ba);box-shadow:0 8px 30px rgba(147,86,239,.25)}.brand b{display:block;letter-spacing:.08em}.brand span{display:block;font-size:9px;letter-spacing:.16em;color:#858fa3;margin-top:2px}.nav-cap{font-size:9px;letter-spacing:.16em;color:#596276;font-weight:900;padding:16px 10px 7px}.nav{display:grid;gap:5px}.nav a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;color:#9ba5b7;font-weight:750}.nav a:hover,.nav a.active{color:#fff;background:#141925}.nav a.active{box-shadow:inset 3px 0 #a86dff}.nav i{width:7px;height:7px;border-radius:50%;background:#596276}.nav a.active i{background:#b380ff;box-shadow:0 0 0 5px rgba(179,128,255,.09)}.sidebar-foot{margin-top:auto;padding:12px}.sidebar-foot small{display:block;color:#5f6879}.sidebar-foot b{display:block;margin:4px 0 10px;overflow:hidden;text-overflow:ellipsis}.ghost{border:1px solid #2a3140;background:#11151d;color:#c4ccda;border-radius:10px;padding:9px 11px;cursor:pointer}.main{min-width:0}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #171c26;background:rgba(9,11,16,.82);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.topbar h1{font-size:15px;margin:0}.topbar p{margin:2px 0 0;color:#687286;font-size:11px}.secure-pill{display:flex;align-items:center;gap:8px;border:1px solid #252b38;padding:8px 11px;border-radius:99px;color:#aeb7c6;font-size:11px}.secure-pill i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(85,216,154,.1)}.content{padding:28px;max-width:1600px;margin:0 auto}.hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:26px 28px;border:1px solid #1f2532;border-radius:22px;background:radial-gradient(circle at 90% 10%,rgba(164,104,255,.16),transparent 28%),linear-gradient(135deg,#11151e,#0d1016);margin-bottom:18px}.eyebrow{display:inline-block;font-size:10px;font-weight:950;letter-spacing:.18em;color:#bb8cff}.hero h2{font-size:27px;letter-spacing:-.025em;margin:7px 0 5px}.hero p{margin:0;color:#8490a5}.badge{display:inline-flex;padding:7px 10px;border-radius:99px;background:#161b25;border:1px solid #2a3140;font-size:10px;font-weight:900;color:#c5cfde}.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{border:1px solid #1e2430;background:linear-gradient(180deg,#11151d,#0d1016);border-radius:17px;padding:17px}.metric span{font-size:10px;color:#717b8e;font-weight:850}.metric strong{display:block;font-size:25px;margin-top:8px;letter-spacing:-.03em}.metric em{display:block;font-size:10px;font-style:normal;color:#596477;margin-top:2px}.panel{border:1px solid #1f2532;background:linear-gradient(180deg,#10141c,#0c0f15);border-radius:20px;overflow:hidden;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;border-bottom:1px solid #1b202c}.panel-head h3{margin:0;font-size:15px}.panel-head p{margin:3px 0 0;color:#707b8f;font-size:11px}.panel-body{padding:20px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .full{grid-column:1/-1}label{display:grid;gap:7px;color:#98a2b5;font-size:11px;font-weight:800}input,select,textarea{width:100%;border:1px solid #29303d;background:#0a0d12;color:#eef2f8;border-radius:11px;padding:11px 12px;outline:none}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#8158b9;box-shadow:0 0 0 3px rgba(129,88,185,.09)}.primary{border:0;border-radius:11px;padding:11px 14px;background:linear-gradient(135deg,#8c57d5,#ad73f0);color:#fff;font-weight:900;cursor:pointer}.danger{border:1px solid rgba(239,112,128,.28);background:rgba(239,112,128,.08);color:#ff9ba8;border-radius:9px;padding:8px 10px;cursor:pointer}.success{border:1px solid rgba(85,216,154,.25);background:rgba(85,216,154,.08);color:#9aefc2;border-radius:9px;padding:8px 10px;cursor:pointer}.warn{border:1px solid rgba(227,178,78,.25);background:rgba(227,178,78,.08);color:#f0c873;border-radius:9px;padding:8px 10px;cursor:pointer}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:900px}.table th{text-align:left;padding:10px 12px;color:#657084;font-size:9px;letter-spacing:.12em;border-bottom:1px solid #202632}.table td{padding:13px 12px;border-bottom:1px solid #181e28;color:#c1c8d5;vertical-align:middle}.table tr:hover td{background:#111620}.status{display:inline-flex;gap:6px;align-items:center;border-radius:99px;padding:6px 9px;font-size:9px;font-weight:900;text-transform:uppercase;background:#171c26}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:#7c8799}.status.active:before{background:var(--green)}.status.suspended:before{background:var(--gold)}.status.revoked:before{background:var(--red)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.muted{color:#6f798b}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{display:inline-flex;gap:5px}.actions input{width:70px;padding:7px}.alert{padding:12px 14px;border-radius:12px;margin-bottom:12px;border:1px solid}.alert.ok{background:rgba(85,216,154,.08);border-color:rgba(85,216,154,.24);color:#9eedc1}.alert.bad{background:rgba(239,112,128,.08);border-color:rgba(239,112,128,.24);color:#ffabb5}.secret-box{border:1px solid rgba(168,109,255,.35);background:rgba(168,109,255,.08);border-radius:15px;padding:16px;margin-bottom:14px}.secret-box b{display:block;color:#d8bbff;margin-bottom:6px}.secret-box code{font-size:16px;letter-spacing:.08em;word-break:break-all}.auth-body{min-height:100vh;display:grid;place-items:center;padding:30px}.auth-shell,.install-shell{width:min(1040px,100%);display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid #1d2330;border-radius:26px;overflow:hidden;background:#0e1118;box-shadow:0 30px 100px #0007}.auth-brand{padding:34px;background:radial-gradient(circle at 20% 20%,rgba(169,109,255,.22),transparent 30%),#0a0d13;display:flex;gap:12px;align-items:flex-start}.auth-brand .brand-mark{flex:none}.auth-brand b{display:block;font-size:18px;letter-spacing:.1em}.auth-brand span{font-size:9px;color:#7b8496;letter-spacing:.16em}.auth-card,.install-card{padding:34px}.auth-card h1,.install-card h1{margin:8px 0 5px;font-size:28px}.auth-card p,.install-card p{color:#7e899d}.auth-card form{display:grid;gap:13px;margin-top:24px}.req-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.req{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid #252b38;border-radius:10px;background:#0b0e14}.req i{width:7px;height:7px;border-radius:50%;background:var(--red)}.req.ok i{background:var(--green)}.req span,.req b{font-size:10px}.req b{color:#738096}.install-note{margin-top:16px;padding:13px;border-radius:12px;border:1px solid #242a37;background:#0a0d13}.install-note b,.install-note span{display:block}.install-note span{font-size:11px;color:#737f93;margin-top:4px}.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.recovery-grid code{display:block;padding:10px;border:1px solid #2a3040;border-radius:9px;background:#090c11;text-align:center;letter-spacing:.12em}.event-list{display:grid}.event{display:grid;grid-template-columns:120px 1fr 180px;gap:16px;padding:13px 0;border-bottom:1px solid #1c222d}.event:last-child{border:0}.event b{font-size:11px}.event span{font-size:11px;color:#748094}.event time{font-size:10px;color:#596476;text-align:right}.toolbar{display:flex;gap:10px;align-items:center}.toolbar input{min-width:260px}.codeblock{background:#090c11;border:1px solid #232a38;border-radius:12px;padding:13px;word-break:break-all;color:#ceb1f5}.stack{display:grid;gap:12px}@media(max-width:1200px){.metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.content{padding:18px}.metrics{grid-template-columns:1fr 1fr}.grid2,.grid3{grid-template-columns:1fr}.auth-shell,.install-shell{grid-template-columns:1fr}.auth-brand{min-height:140px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}@media(max-width:540px){.metrics{grid-template-columns:1fr}.topbar{padding:0 16px}.hero{align-items:flex-start;flex-direction:column}.content{padding:14px}.req-grid,.recovery-grid{grid-template-columns:1fr}}
/* Vyxo License Server 1.0.2 — QR-first mandatory 2FA */
.twofa-shell{width:min(1180px,100%);grid-template-columns:.68fr 1.32fr}.twofa-card{padding:34px 38px}.twofa-card>p b{color:#cdb4ff}.twofa-grid{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(280px,1.18fr);gap:22px;margin:24px 0 18px;align-items:stretch}.qr-panel{display:grid;gap:12px}.qr-frame{min-height:286px;display:grid;place-items:center;background:#fff;border-radius:20px;padding:18px;border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 55px rgba(0,0,0,.28),0 0 0 4px rgba(168,109,255,.05)}.qr-frame svg{display:block;width:min(250px,100%);height:auto}.qr-loading{color:#596274;font-size:12px}.qr-security{display:flex;gap:9px;align-items:flex-start;padding:11px 12px;border:1px solid rgba(85,216,154,.18);background:rgba(85,216,154,.055);border-radius:12px;color:#8aa098;font-size:10px;line-height:1.5}.qr-security i{width:8px;height:8px;margin-top:3px;border-radius:50%;background:#55d89a;box-shadow:0 0 14px rgba(85,216,154,.65);flex:none}.twofa-steps{display:grid;align-content:start;gap:10px}.step{display:grid;grid-template-columns:32px 1fr;gap:11px;align-items:center;padding:13px 14px;border:1px solid #252b38;background:#0a0d13;border-radius:14px}.step>b{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:rgba(168,109,255,.12);color:#cdb4ff;border:1px solid rgba(168,109,255,.24)}.step span{font-size:11px;color:#7f8a9d;line-height:1.45}.step strong{display:block;color:#d9ddea;font-size:12px;margin-bottom:2px}.manual-key{border:1px solid #252b38;background:#0a0d13;border-radius:14px;overflow:hidden}.manual-key summary{cursor:pointer;padding:13px 14px;color:#99a4b6;font-size:11px;list-style:none}.manual-key summary::-webkit-details-marker{display:none}.manual-key-body{border-top:1px solid #202633;padding:13px;display:grid;gap:9px}.manual-key-body code{display:block;padding:11px;border-radius:10px;background:#080a0f;color:#d9c8ff;letter-spacing:.09em;word-break:break-all;text-align:center}.ghost.compact{width:auto;padding:8px 10px;font-size:10px}.twofa-confirm{grid-template-columns:1fr auto!important;align-items:end!important;margin-top:14px!important}.twofa-confirm label{margin:0}.twofa-confirm input{text-align:center;font-size:20px;letter-spacing:.22em;font-variant-numeric:tabular-nums}.twofa-confirm .primary{min-height:43px;padding-inline:24px}@media(max-width:820px){.twofa-shell{grid-template-columns:1fr}.twofa-grid{grid-template-columns:1fr}.twofa-confirm{grid-template-columns:1fr!important}.qr-frame{min-height:250px}.twofa-card{padding:26px 20px}}
