:root{font-family:Inter,Arial,sans-serif;color:#0d2752;background:#eef3f8}
*{box-sizing:border-box}
body{margin:0}
a{color:inherit}
.install-page,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}
.install-shell,.login-card{width:min(980px,100%)}
.install-card,.login-card,.panel{background:#fff;border:1px solid #d9e2ec;border-radius:14px;box-shadow:0 18px 50px rgba(13,39,82,.07)}
.install-card{padding:28px}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.brand span{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:900;background:linear-gradient(135deg,#3867f0,#db7b28)}
.brand strong{display:block;font-size:22px}.brand small{display:block;color:#6b7c90;font-size:12px;margin-top:2px}
h1,h2{margin:0 0 8px}p{color:#61758d}
.requirements{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.requirements span,.status{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}
.requirements .ok,.status.active,.status.trial{color:#128444;background:#e9f9ef}
.requirements .fail,.status.blocked,.status.expired{color:#b82245;background:#ffe9ee}
.status.pending_payment{color:#9b6500;background:#fff4d9}
.alert{border-radius:10px;padding:12px 14px;margin:14px 0;font-weight:700}.alert p{margin:0 0 5px}.alert p:last-child{margin-bottom:0}
.alert.error{color:#b82245;background:#fff0f4;border:1px solid #ffd1dc}.alert.success{color:#168b47;background:#eefaf3;border:1px solid #c7ead5}
.install-form,.license-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
label{display:grid;gap:6px;color:#49627e;font-size:13px;font-weight:700}
input,select,textarea{width:100%;height:42px;border:1px solid #cfdbea;border-radius:9px;padding:0 11px;color:#0d2752;background:#fff;font:inherit}
textarea{height:86px;padding-top:10px;resize:vertical}
.full{grid-column:1/-1}hr{grid-column:1/-1;width:100%;border:0;border-top:1px solid #e6edf4}
.actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
button,.button{height:42px;border:0;border-radius:9px;padding:0 15px;color:#fff;background:#3867f0;font-weight:850;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
button.secondary,.button.secondary{color:#0d2752;background:#edf3fb;border:1px solid #d3dfef}
button.danger{color:#b82245;background:#fff0f4}
.login-card{max-width:430px;padding:24px}.login-card form{display:grid;gap:14px}
.topbar{height:72px;background:#fff;border-bottom:1px solid #d9e2ec;display:flex;align-items:center;justify-content:space-between;padding:0 24px}
.shell{padding:22px;display:grid;gap:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e6edf4}.panel-head h2{font-size:18px}
.panel-body{padding:18px 20px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:900px}.table th,.table td{text-align:left;padding:14px 18px;border-top:1px solid #e6edf4;font-size:13px}.table th{background:#f7faff;color:#7890aa;font-size:11px;text-transform:uppercase}.muted{color:#7890aa;font-size:12px}.keybox{padding:14px 20px;background:#eff6ff;border-top:1px solid #d8e8ff;color:#10366a;font-weight:900;word-break:break-all}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.inline-actions form{display:inline}
.endpoint-box{display:grid;gap:7px}.endpoint-box>span{color:#49627e;font-size:13px;font-weight:800}.endpoint-box>div{display:grid;grid-template-columns:1fr 110px;gap:10px}.endpoint-box input{font-weight:750;background:#f8fbff}.endpoint-box small{color:#7890aa;font-size:12px}
@media(max-width:760px){.install-form,.license-form{grid-template-columns:1fr}.topbar{align-items:flex-start;height:auto;padding:16px;gap:12px;flex-direction:column}.actions{justify-content:stretch;flex-direction:column}button,.button{width:100%}}
