:root{--navy:#073665;--navy2:#0b4777;--aqua:#10bdb6;--bg:#f3f7f9;--line:#d8e4e9;--muted:#6e879c;--danger:#d9505c;--orange:#e6a23c;--green:#159c78}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:#082f5d;background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.eyebrow{margin:0 0 7px;color:#0aa69f;font-size:11px;font-weight:800;letter-spacing:1.5px}.muted{color:var(--muted)}.admin-logo{display:flex;align-items:center;gap:11px;font-size:22px;letter-spacing:.6px}.logo-bars{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;color:white;background:linear-gradient(135deg,var(--navy2),var(--aqua))}
.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#d8fffc 0,transparent 28%),linear-gradient(135deg,#f8fbfc,#eaf4f6)}.login-card{width:min(430px,calc(100% - 36px));padding:42px;border:1px solid #cce4e7;border-radius:24px;background:white;box-shadow:0 28px 70px rgba(7,54,101,.14)}.login-card .admin-logo{margin-bottom:35px}.login-card h1{margin:0;font-size:30px}.login-card form{display:grid;gap:9px;margin-top:28px}.login-card label,.form-grid label,.update-form label{font-size:12px;font-weight:750}.login-card input,.form-grid input,.form-grid select,.form-grid textarea,.filters input,.filters select,.update-form input,.update-form textarea{width:100%;margin-top:7px;padding:12px 14px;border:1px solid #cbdce3;border-radius:10px;color:var(--navy);background:#fbfdfe;outline:none}.login-card input:focus,.form-grid input:focus,.filters input:focus,.update-form input:focus,.update-form textarea:focus{border-color:var(--aqua);box-shadow:0 0 0 3px rgba(16,189,182,.12)}.error{min-height:16px;margin:3px 0;color:var(--danger);font-size:12px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:12px 17px;font-size:11px;font-weight:800;letter-spacing:.5px;text-decoration:none;cursor:pointer}.button:disabled{opacity:.55;cursor:wait}.primary{color:#fff;background:linear-gradient(100deg,var(--navy),var(--aqua));box-shadow:0 10px 24px rgba(8,93,119,.18)}.secondary{color:var(--navy);border:1px solid #ccdde4;background:white}
.app-shell{min-height:100vh;display:grid;grid-template-columns:235px 1fr}.app-shell aside{position:sticky;top:0;height:100vh;padding:25px 18px;color:white;background:var(--navy)}.side-label{margin:38px 10px 13px;color:#7fb4d1}.app-shell nav{display:grid;gap:6px}.app-shell nav button{display:flex;gap:12px;width:100%;padding:13px;border:0;border-radius:10px;color:#bcd3e3;background:transparent;text-align:left;cursor:pointer}.app-shell nav button.nav-active,.app-shell nav button:hover{color:#fff;background:#0b527c}.aside-bottom{position:absolute;left:18px;right:18px;bottom:22px;display:flex;align-items:center;justify-content:space-between;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.05)}.aside-bottom strong,.aside-bottom small{display:block}.aside-bottom small{margin-top:3px;color:#76e4d9}.aside-bottom button{border:0;color:#fff;background:none;cursor:pointer}.app-shell main{min-width:0}.app-shell header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:white}.app-shell h1{margin:0;font-size:26px}.header-actions,.detail-actions{display:flex;align-items:center;gap:8px}.content{padding:28px 30px}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}.stats-grid article{position:relative;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:white}.stats-grid span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.6px}.stats-grid strong{display:block;margin-top:8px;font-size:28px}.dot{position:absolute;top:18px;right:18px;width:9px;height:9px;border-radius:50%}.dot.navy{background:var(--navy)}.dot.orange{background:var(--orange)}.dot.green{background:var(--green)}.dot.red{background:var(--danger)}.dot.aqua{background:var(--aqua)}
.panel{border:1px solid var(--line);border-radius:15px;background:white;overflow:hidden}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}.toolbar h2{margin:0 0 4px;font-size:18px}.toolbar p{margin:0;color:var(--muted);font-size:12px}.filters{display:flex;align-items:center;gap:8px}.filters input{width:240px}.filters input,.filters select{margin:0;padding:10px 12px;font-size:11px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;border-top:1px solid #e3ebef;text-align:left;font-size:11px;white-space:nowrap}th{color:#7990a1;background:#f8fafb;font-size:9px;letter-spacing:.6px}td strong,td small{display:block}td small{margin-top:4px;color:var(--muted)}.status{display:inline-flex;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:850}.status.ACTIVE{color:#097d61;background:#dff8ef}.status.REVOKED{color:#b93744;background:#ffe6e8}.status.PENDING_ACTIVATION{color:#ae6f12;background:#fff1d8}.mini-state{display:inline-flex;margin:2px;padding:4px 6px;border-radius:12px;font-size:8px}.mini-state.pending{background:#fff1d8}.mini-state.active{background:#dff8ef}.mini-state.revoked{background:#ffe6e8}.status-select{padding:7px;border:1px solid #ccdce3;border-radius:8px;color:var(--navy);background:white;font-size:10px}.icon-action{margin:2px;padding:7px 9px;border:1px solid #d6e3e8;border-radius:7px;color:var(--navy);background:#fff;cursor:pointer;font-size:9px;font-weight:800}
.overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:rgba(4,31,58,.52);backdrop-filter:blur(3px)}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;padding:25px;border-radius:18px;background:white;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-wide{width:min(970px,100%)}.modal-head{display:flex;justify-content:space-between}.modal h2{margin:0 0 9px}.modal-head>button{border:0;font-size:24px;color:var(--muted);background:none;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.form-grid .full{grid-column:1/-1}.form-grid textarea{resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.detail-actions{margin:18px 0}.detail-table{max-height:48vh;border:1px solid var(--line);border-radius:10px}.toast{position:fixed;right:22px;bottom:22px;z-index:60;padding:13px 18px;border-radius:10px;color:white;background:var(--navy);opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;font-size:12px}.toast.show{opacity:1;transform:none}
.portal-language{position:fixed;z-index:30;top:18px;right:20px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:var(--navy);background:white;font-size:11px;font-weight:750}.compact-select{display:grid;gap:3px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.5px}.compact-select select{min-width:62px;padding:7px;border:1px solid var(--line);border-radius:8px;color:var(--navy);background:white}.check-row{display:flex!important;align-items:center;gap:9px}.check-row input{width:auto!important;margin:0!important}.form-help{margin:10px 0 0;color:var(--muted);font-size:10px}.update-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.update-card{padding:27px;border:1px solid var(--line);border-radius:15px;background:white;box-shadow:0 12px 28px rgba(7,54,101,.05)}.update-card h2{margin:0 0 8px}.update-card>p:not(.eyebrow){min-height:42px;color:var(--muted);font-size:12px;line-height:1.5}.update-state{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px;padding:14px;border-radius:10px;background:#f4f8fa;font-size:11px}.update-state strong{font-size:18px}.update-message{min-height:42px;margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:#fbfdfe;font-size:11px;line-height:1.5}.update-message.state-SUCCESS{color:#08765c;border-color:#bce7d8;background:#effcf7}.update-message.state-FAILED{color:#ae3541;border-color:#f0c0c5;background:#fff5f6}.update-message.state-INSTALLING,.update-message.state-QUEUED{color:#9b6618;border-color:#eed49f;background:#fffaf0}.file-drop{display:grid;gap:8px;margin:14px 0;padding:14px;border:1px dashed #9fcbd0;border-radius:11px;color:var(--navy);background:#f6fffe;font-size:11px;font-weight:750}.file-drop input{font-size:10px}.update-form{display:grid;gap:12px}.update-card>.button,.update-form>.button{width:100%;margin-top:4px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}.toolbar{align-items:flex-start;flex-direction:column}.app-shell{grid-template-columns:195px 1fr}.update-grid{grid-template-columns:1fr}.compact-select{display:none}}@media(max-width:760px){.app-shell{display:block}.app-shell aside{position:relative;height:auto}.app-shell nav{grid-template-columns:1fr 1fr}.aside-bottom{display:none}.stats-grid{grid-template-columns:1fr 1fr}.app-shell header,.content{padding-left:16px;padding-right:16px}.header-actions,.filters{align-items:stretch;flex-direction:column}.filters input{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
