*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--ge-font);background:#f5f5f5;color:#111;min-height:100vh}
body.admin-locked .topbar,body.admin-locked .layout{display:none}
body.admin-login .topbar,body.admin-login .layout{display:none}
body:not(.admin-login) .login-wrap{display:none}
.topbar{display:flex;align-items:center;gap:12px;background:#111;color:#fff;padding:14px 20px;border-bottom:3px solid #7A1E2C}
.topbar img{width:46px;height:28px;object-fit:contain}.topbar h1{font-size:18px}.topbar-right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge{font-size:12px;padding:6px 10px;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#eee}
.btn{border:1px solid #7A1E2C;background:#7A1E2C;color:#fff;border-radius:8px;padding:9px 12px;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 8px 16px rgba(122,30,44,.14);transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}.btn:hover{background:#5B0F1D;border-color:#5B0F1D;box-shadow:0 12px 24px rgba(91,15,29,.2);transform:translateY(-1px)}.btn:disabled,.btn.disabled{background:#f1f5f9!important;color:#94a3b8!important;border-color:#e2e8f0!important;box-shadow:none!important;cursor:not-allowed;transform:none}.btn-ghost{background:#fff;color:#5B0F1D;border-color:#c9b8a0;box-shadow:0 6px 14px rgba(17,17,17,.06)}.btn-ghost:hover{background:#fff7ed;color:#3b0a14;border-color:#7A1E2C}.btn-danger{background:#fff;color:#b91c1c;border-color:#f3a6a6;box-shadow:0 6px 14px rgba(185,28,28,.08)}.btn-danger:hover{background:#b91c1c;color:#fff;border-color:#b91c1c}.btn-sm{padding:7px 10px;font-size:12px}
.layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 60px)}
aside{background:#fff;border-right:1px solid #e7e3dc;padding:16px}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;text-align:left;padding:12px 13px;border-radius:10px;font:inherit;font-weight:900;color:#555;cursor:pointer}.nav button.active,.nav button:hover{background:#f5f1e8;color:#5B0F1D}
.advanced-nav{margin-top:16px;border-top:1px solid #eee6db;padding-top:12px}.advanced-nav summary{list-style:none;cursor:pointer;color:#6f6a64;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px}.advanced-nav summary::-webkit-details-marker{display:none}.advanced-nav button{font-size:13px;font-weight:800;padding:9px 10px;margin-top:4px;width:100%;color:#6f6a64}
main{padding:22px;max-width:1500px}.panel{display:none}.panel.active{display:block}
.hdr{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:16px}.hdr h2{font-size:28px}.hdr p{color:#6f6a64;margin-top:4px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.card{background:#fff;border:1px solid #e7e3dc;border-radius:8px;padding:16px;box-shadow:0 16px 36px rgba(17,17,17,.05)}
.kpi .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6f6a64;font-weight:900}.kpi .value{font-size:28px;font-weight:900;margin-top:6px}
label{display:block;font-size:12px;font-weight:900;color:#6f6a64;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid #d8d0c4;border-radius:8px;padding:10px 11px;font:inherit;background:#fff}textarea{min-height:130px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.license-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.module-box{border:1px solid #e7e3dc;border-radius:8px;padding:12px;background:#fbfaf8}.module-box h4{margin-bottom:10px}.check-row{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:12px;font-weight:800;color:#443f3a}.check-row input{width:auto}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 12px}.toolbar input{max-width:420px}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;font-size:11px;font-weight:900;color:#475569}.pill.warn{color:#991b1b;background:#fef2f2;border-color:#fecaca}.pill.ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}
.hero-strip{background:linear-gradient(135deg,#fff,#fbf8f3);border:1px solid #e7e3dc;border-radius:14px;padding:22px 24px;margin-bottom:16px;box-shadow:0 18px 46px rgba(17,17,17,.05)}.hero-strip h2{font-size:32px}.hero-strip p{max-width:780px;color:#6f6a64;margin-top:6px;line-height:1.45}
.client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.client-card{background:#fff;border:1px solid #e7e3dc;border-radius:14px;padding:18px;box-shadow:0 18px 38px rgba(17,17,17,.06)}.client-card.warn{border-color:#f0d7d7;background:#fffafa}.client-card.inactive{border-color:#cbd5e1;background:#f8fafc}.client-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.client-title{font-size:20px;font-weight:950}.client-sub{font-size:12px;color:#64748b;margin-top:4px}.module-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.progress-row{margin-top:10px}.progress-label{display:flex;justify-content:space-between;font-size:12px;font-weight:900;color:#443f3a;margin-bottom:5px}.progress{height:8px;border-radius:999px;background:#eef2f7;overflow:hidden}.progress span{display:block;height:100%;background:#7A1E2C;border-radius:999px}.progress.warn span{background:#dc2626}.limit-note{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;font-weight:900;color:#991b1b}.alert-list{display:grid;gap:5px;margin-top:10px}.alert-item{font-size:12px;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:7px;padding:6px 8px}.client-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.client-actions .btn{min-height:36px;justify-content:center}.client-actions .btn-ghost{background:#fff;color:#6b1020;border-color:#c9b8a0}.client-actions .btn-ghost:hover{background:#fff7ed;border-color:#7A1E2C;color:#3b0a14}.client-actions .btn:disabled{background:#edf2f7!important;color:#64748b!important;border-color:#cbd5e1!important;opacity:1!important}.client-actions .btn:disabled i{color:#64748b!important}.client-quick-panel{display:none;margin:16px 0}.client-quick-panel.active{display:block}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.quick-module{border:1px solid #e7e3dc;border-radius:8px;padding:12px;background:#fbfaf8}.quick-module h4{margin-bottom:8px}.quick-user-table{overflow:auto;margin-top:10px}.quick-user-table td,.quick-user-table th{white-space:nowrap}.admin-action-btn{border:1px solid #c9b8a0!important;background:#fff!important;color:#5B0F1D!important;opacity:1!important;box-shadow:0 6px 14px rgba(17,17,17,.08)!important}.admin-action-btn:hover{border-color:#7A1E2C!important;background:#fff7ed!important;color:#3b0a14!important}.admin-action-btn.danger{border-color:#f3a6a6!important;color:#b91c1c!important;background:#fff!important}.admin-action-btn.danger:hover{background:#b91c1c!important;border-color:#b91c1c!important;color:#fff!important}.quick-user-table .btn,.client-actions .btn,td .btn{opacity:1!important;text-shadow:none!important}.quick-user-table .btn:not(:disabled),.client-actions .btn:not(:disabled),td .btn:not(:disabled){color:inherit}.internal-tools{margin-top:16px}.internal-tools summary{cursor:pointer;font-weight:900;color:#6f6a64}.billing-table td,.billing-table th{white-space:nowrap}.notice-box{border:1px solid #eadfcd;background:#fffbf2;color:#5f4d24;border-radius:10px;padding:12px;font-size:13px;line-height:1.45}
.catalog-list{display:grid;gap:8px;margin-top:10px}.catalog-item{border:1px solid #e7e3dc;border-radius:8px;padding:10px;background:#fbfaf8;display:flex;justify-content:space-between;gap:10px;align-items:start}.catalog-item b{display:block}.catalog-item small{display:block;color:#6f6a64;margin-top:2px}.soft-divider{height:1px;background:#eee6db;margin:16px 0}.hint{font-size:12px;color:#6f6a64;line-height:1.4;margin-top:6px}.access-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.access-chip.missing{border-color:#d8d0c4;background:#fff;color:#6b1020}.access-actions{display:flex;gap:6px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f8fafc;color:#64748b;text-align:left;text-transform:uppercase;font-size:11px;letter-spacing:.04em;padding:10px}td{border-bottom:1px solid #eef2f7;padding:10px;vertical-align:top}code{font-size:11px;background:#f8fafc;padding:2px 4px;border-radius:4px}.muted{color:#6f6a64}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.status{font-size:12px;margin-left:8px}.ok{color:#15803d}.err{color:#b91c1c}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f5f5}
.login-card{width:min(430px,100%);background:#fff;border:1px solid #e7e3dc;border-radius:10px;padding:26px;box-shadow:0 24px 60px rgba(17,17,17,.1)}
.login-card img{width:86px;display:block;margin:0 0 18px}.login-card h1{font-size:26px;margin-bottom:6px}.login-card p{color:#6f6a64;line-height:1.45;margin-bottom:18px}.login-card .field{margin-bottom:12px}.login-card .btn{width:100%;margin-top:4px}.login-error{font-size:13px;color:#b91c1c;margin-top:12px;min-height:18px}
@media(max-width:1000px){.layout{grid-template-columns:1fr}aside{position:sticky;top:0;z-index:2}.nav{grid-template-columns:repeat(2,1fr)}.grid,.grid-2,.form-grid,.client-grid,.quick-grid{grid-template-columns:1fr}.client-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.hdr{align-items:start;flex-direction:column}}
@media(max-width:560px){.client-actions{grid-template-columns:1fr}.btn-sm{width:100%}}
