:root{color:#162033;background:#eef2f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.15}h2{font-size:19px}p,small{color:#64748b}.login-shell{align-items:center;display:grid;min-height:100vh;padding:24px;place-items:center}.login-panel{background:#fff;border:1px solid #d8e0ea;border-radius:8px;box-shadow:0 24px 60px #0f172a1a;display:grid;gap:18px;max-width:420px;padding:30px;width:100%}.brand-mark,.brand{align-items:center;color:#0f766e;display:flex}.brand-mark{background:#e6fffb;border:1px solid #99f6e4;border-radius:8px;height:54px;justify-content:center;width:54px}form,.form-panel{display:grid;gap:14px}label{color:#334155;display:grid;gap:7px;font-size:14px;font-weight:650}input,select{background:#fff;border:1px solid #cbd5e1;border-radius:7px;color:#162033;min-height:42px;padding:9px 11px;width:100%}fieldset{border:1px solid #cbd5e1;border-radius:8px;display:grid;gap:9px;margin:0;padding:12px}legend{color:#334155;font-size:14px;font-weight:650;padding:0 5px}.check{align-items:center;display:flex;flex-direction:row;gap:9px;font-weight:500}.check input{height:16px;min-height:auto;width:16px}.primary-button,.secondary-button,.ghost-button,.icon-button{align-items:center;border-radius:7px;display:inline-flex;gap:9px;justify-content:center;min-height:42px;padding:9px 14px}.primary-button{background:#0f766e;color:#fff}.secondary-button{background:#fff;border:1px solid #cbd5e1;color:#1e293b}.ghost-button{background:transparent;color:#475569;justify-content:flex-start;margin-top:auto}.icon-button{background:#f1f5f9;color:#0f766e;min-width:42px;padding:9px}.app-shell{display:grid;grid-template-columns:244px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid #d8e0ea;display:flex;flex-direction:column;gap:22px;padding:22px}.brand{gap:10px;min-height:42px}nav{display:grid;gap:8px}nav button{align-items:center;background:transparent;border-radius:7px;color:#475569;display:flex;gap:10px;min-height:42px;padding:9px 11px;text-align:left}nav button.active{background:#e6fffb;color:#0f766e;font-weight:700}.content{display:grid;gap:20px;padding:28px clamp(18px,4vw,52px)}.topbar{align-items:center;display:flex;gap:18px;justify-content:space-between}.topbar p,.panel-heading p{margin-top:6px}.notice{background:#f8fafc;border:1px solid #cbd5e1;border-radius:7px;color:#334155;padding:11px 13px}.notice.error{background:#fff1f2;border-color:#fecdd3;color:#be123c}.stats{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.metric,.panel{background:#fff;border:1px solid #d8e0ea;border-radius:8px}.metric{display:grid;gap:9px;min-height:136px;padding:17px}.metric svg{color:#0f766e}.metric span{color:#64748b;font-size:14px}.metric strong{font-size:27px}.workspace{display:grid;gap:18px}.two-column{align-items:start;grid-template-columns:minmax(260px,360px) minmax(0,1fr)}.panel{padding:20px}.panel-heading{align-items:center;display:flex;gap:14px;justify-content:space-between}.panel-heading select{max-width:240px}.table-list{display:grid;gap:10px;margin-top:16px}.data-row{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto 140px auto;min-height:70px;padding:13px}.data-row div{display:grid;gap:4px;min-width:0}.data-row strong,.data-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row{grid-template-columns:minmax(0,1fr) auto auto auto}.node-row{grid-template-columns:minmax(0,1fr) auto 170px 132px auto}.subscription-row{grid-template-columns:minmax(0,1fr) auto minmax(260px,auto)}.payment-row{grid-template-columns:minmax(0,1fr) auto auto}.badge{border-radius:999px;font-size:12px;font-weight:750;padding:5px 9px;text-transform:uppercase}.badge.active,.badge.applied{background:#dcfce7;color:#166534}.badge.paid{background:#dbeafe;color:#1d4ed8}.badge.banned,.badge.blocked,.badge.failed,.badge.rolled_back,.badge.refunded,.badge.disabled,.badge.inactive{background:#fee2e2;color:#991b1b}.badge.none{background:#e2e8f0;color:#475569}.badge.draining,.badge.pending,.badge.trial,.badge.expired{background:#fef3c7;color:#92400e}progress{accent-color:#0f766e;height:12px;width:100%}.empty{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:20px}.date-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.app-shell,.two-column,.stats,.ops-grid,.admin-grid,.detail-grid,.filters{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #d8e0ea;border-right:0}.ghost-button{margin-top:0}}@media(max-width:700px){.content{padding:20px}.topbar,.panel-heading{align-items:stretch;flex-direction:column}.data-row,.node-row,.user-row,.subscription-row,.date-grid,.quota-grid,.deployment-row{grid-template-columns:1fr}.panel-heading select{max-width:none}.row-actions,.subscription-actions,.action-strip{justify-content:flex-start}}.regions-panel{background:#fff;border:1px solid #d8e0ea;border-radius:8px;box-shadow:0 1px 2px #0f172a0d;padding:20px 22px;margin-bottom:24px}.regions-panel h2{margin-bottom:12px}.regions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.region-card{border:1px solid #e5eaf2;border-radius:8px;padding:12px 14px}.region-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.region-card header span{font-size:12px;color:#64748b}.bar-row{display:grid;grid-template-columns:70px 1fr 24px;align-items:center;gap:8px;margin-bottom:4px;font-size:12px}.bar{background:#eef2f6;border-radius:4px;height:8px;overflow:hidden}.bar span{display:block;height:100%}.bar-active{background:#16a34a}.bar-draining{background:#f59e0b}.bar-inactive{background:#dc2626}.subscription-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.sessions-panel .table-list{max-height:320px;overflow-y:auto}.payments-section{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:18px}.payments-section h3{margin:0}.ops-grid,.admin-grid,.detail-grid{display:grid;gap:18px}.ops-grid{grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr)}.admin-grid{align-items:start;grid-template-columns:minmax(260px,340px) minmax(0,1fr)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wide-panel{grid-column:span 1}.filters{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(180px,1fr) 150px 170px auto;margin-top:16px}.row-actions,.action-strip,.chips,.heatmap{align-items:center;display:flex;gap:8px}.data-row .row-actions,.data-row .subscription-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.action-strip{flex-wrap:wrap;margin-top:16px}.action-strip select{max-width:180px}.quota-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.quota-grid span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:4px;min-height:72px;padding:12px}.quota-grid strong{font-size:20px}.quota-grid small{text-transform:uppercase}.compact{gap:8px}.mini-row{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-height:58px;padding:11px}.mini-row div{display:grid;gap:4px;min-width:0}.mini-row strong,.mini-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deployment-row{grid-template-columns:minmax(0,1fr) auto minmax(120px,.4fr)}.data-row .node-capacity{display:grid;gap:5px}.icon-button.danger{color:#be123c}.chips,.heatmap{flex-wrap:wrap;margin-top:16px}.chip{border-radius:999px;font-size:12px;font-weight:750;padding:6px 10px;text-transform:uppercase}.chip.ok{background:#dcfce7;color:#166534}.chip.warning{background:#fef3c7;color:#92400e}.heat-cell{background:#0f766e;border-radius:7px;color:#fff;font-size:12px;font-weight:800;min-height:42px;min-width:56px;padding:8px}.heat-cell.draining{background:#d97706}.heat-cell.inactive{background:#b91c1c}.subscription-actions select{min-height:36px;width:120px}.subscription-actions .ghost-button,.subscription-actions .icon-button{margin-top:0;min-height:36px;padding:7px 10px}
