:root{
--bg:#f4f5f7;--surface:#ffffff;--surface-2:#f8f9fb;--surface-3:#eef0f3;
--line:#e3e6ea;--line-strong:#cfd4da;--ink:#1d2330;--ink-2:#344054;--muted:#667085;--muted-2:#98a2b3;
--brand:#1a6db5;--brand-rgb:26,109,181;--brand-2:#1a6db5;--brand-dark:#155a96;--brand-contrast:#ffffff;
--accent:#e8941a;--sidebar-bg:#ffffff;--topbar-h:58px;--sidebar-w:248px;
--green:#1e6b36;--amber:#8a5a00;--red:#c62828;--slate:#475467;
--pill-success-bg:#e3f4e8;--pill-success-fg:#1e6b36;--pill-warning-bg:#fff2d6;--pill-warning-fg:#8a5a00;
--pill-danger-bg:#fde7e7;--pill-danger-fg:#a11c1c;--pill-info-bg:#e3f1fb;--pill-info-fg:#155a8a;
--pill-neutral-bg:#eef0f3;--pill-neutral-fg:#475467;
--radius:10px;--radius-sm:6px;
--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
--shadow-pop:0 12px 32px rgba(16,24,40,.14);
--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--bs-body-bg:var(--bg);--bs-body-color:var(--ink);--bs-body-font-family:var(--font);--bs-body-font-size:.875rem;
--bs-border-color:var(--line);--bs-secondary-color:var(--muted);--bs-tertiary-bg:var(--surface-2);
--bs-link-color:var(--brand-2);--bs-link-color-rgb:var(--brand-rgb);--bs-link-hover-color:var(--brand-dark);
--bs-primary:var(--brand);--bs-primary-rgb:var(--brand-rgb);
}
:root[data-bs-theme="dark"]{
--bg:#0f131a;--surface:#171c24;--surface-2:#1d232d;--surface-3:#252c38;
--line:#2a313c;--line-strong:#3a4250;--ink:#e4e7ec;--ink-2:#cfd4dc;--muted:#98a2b3;--muted-2:#7a8494;
--brand:#2e8ee0;--brand-rgb:46,142,224;--brand-2:#7cb8f0;--brand-dark:#1a6db5;
--sidebar-bg:#171c24;
--green:#6fd39a;--amber:#f5c26b;--red:#f0736f;--slate:#98a2b3;
--pill-success-bg:rgba(111,211,154,.14);--pill-success-fg:#6fd39a;--pill-warning-bg:rgba(245,194,107,.14);--pill-warning-fg:#f5c26b;
--pill-danger-bg:rgba(240,115,111,.15);--pill-danger-fg:#f0736f;--pill-info-bg:rgba(124,184,240,.14);--pill-info-fg:#7cb8f0;
--pill-neutral-bg:#252c38;--pill-neutral-fg:#b4bcc8;
--shadow:0 1px 2px rgba(0,0,0,.45),0 1px 3px rgba(0,0,0,.35);
--shadow-pop:0 12px 32px rgba(0,0,0,.55);
--bs-link-color:var(--brand-2);--bs-link-hover-color:#a9d0f5;
}
*{box-sizing:border-box;}
html,body{min-height:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:.875rem;line-height:1.5;-webkit-font-smoothing:antialiased;}
a{color:var(--brand-2);text-decoration:none;}
a:hover{color:var(--brand-dark);}
[data-bs-theme="dark"] a:hover{color:#a9d0f5;}
h1,h2,h3,h4,h5,h6{color:var(--ink);letter-spacing:-.01em;}
kbd{background:var(--surface-3);color:var(--ink);border:1px solid var(--line-strong);border-radius:4px;padding:1px 5px;font-size:.75rem;}
code{color:var(--brand-2);background:rgba(var(--brand-rgb),.08);padding:1px 6px;border-radius:5px;font-size:.8125em;}
.text-secondary{color:var(--muted)!important;}
.text-danger{color:var(--red)!important;}
.text-success{color:var(--green)!important;}
.text-primary{color:var(--brand-2)!important;}
.app-shell{display:flex;min-height:100vh;}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1040;transition:transform .2s ease;}
.sidebar-brand{height:var(--topbar-h);display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line);flex-shrink:0;text-decoration:none;}
.brand-logo{width:30px;height:30px;border-radius:8px;display:block;flex-shrink:0;}
.brand-mark{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:16px;color:#fff;background:var(--brand);}
.brand-text{font-weight:800;font-size:1.25rem;color:var(--ink);line-height:1;letter-spacing:-.02em;}
.brand-text small{display:inline-block;margin-left:6px;font-size:.625rem;font-weight:700;color:#fff;background:var(--accent);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:2px 6px;vertical-align:middle;}
.sidebar-nav{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding:10px 10px 18px;}
.sidebar-nav .nav-sep{margin-top:auto;height:1px;background:var(--line);margin:12px 0 6px;flex-shrink:0;}
.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;font-weight:500;font-size:.8125rem;line-height:1.35;transition:background .12s,color .12s;}
.sidebar-nav a i{width:18px;text-align:center;font-size:1rem;color:var(--muted);flex-shrink:0;}
.sidebar-nav a:hover{background:var(--surface-2);color:var(--ink);}
.sidebar-nav a.active{background:rgba(var(--brand-rgb),.10);color:var(--brand-2);font-weight:600;}
.sidebar-nav a.active i{color:var(--brand-2);}
.nav-dot{width:8px;height:8px;border-radius:50%;margin-left:auto;flex-shrink:0;}
.nav-dot-danger{background:var(--red);box-shadow:0 0 0 3px rgba(198,40,40,.18);}
.app-main{flex:1 1 auto;min-width:0;margin-left:var(--sidebar-w);display:flex;flex-direction:column;}
.topbar{position:sticky;top:0;z-index:1030;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line);}
.topbar-title{font-weight:600;font-size:.9375rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.topbar-title a{color:var(--muted);}
#sidebarToggle{border:0;background:none;color:var(--ink);font-size:1.25rem;padding:4px 6px;}
.user-chip{display:flex;align-items:center;gap:8px;background:none;border:0;border-radius:8px;padding:4px 8px 4px 4px;color:var(--ink);font-weight:500;font-size:.8125rem;}
.user-chip:hover{background:var(--surface-2);}
.user-chip.dropdown-toggle::after{margin-left:4px;color:var(--muted);}
.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--brand-2);font-weight:700;font-size:.75rem;text-transform:uppercase;background:rgba(var(--brand-rgb),.12);border:1px solid rgba(var(--brand-rgb),.22);}
.content{padding:24px 28px 40px;flex:1 1 auto;}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;}
.panel-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:-16px -16px 14px;padding:12px 16px;border-bottom:1px solid var(--line);}
.panel-head h2{font-size:.9375rem;font-weight:700;margin:0;}
.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-hover-bg:rgba(var(--brand-rgb),.04);--bs-table-hover-color:var(--ink);color:var(--ink);border-color:var(--line);font-size:.8125rem;}
.table thead th{background:var(--surface-2);font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap;padding:9px 12px;vertical-align:middle;}
.table td{padding:9px 12px;vertical-align:middle;}
.table td,.table th{border-color:var(--line);}
.table tbody tr:hover > *{background:rgba(var(--brand-rgb),.035);}
.table tbody tr:last-child > td{border-bottom:0;}
.stat-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;}
.stat-label{color:var(--muted);font-size:.75rem;font-weight:600;}
.stat-value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-top:4px;color:var(--ink);font-variant-numeric:tabular-nums;}
.stat-icon{position:absolute;right:14px;top:14px;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:1rem;color:var(--brand-2);background:rgba(var(--brand-rgb),.10);}
.stat-green .stat-value{color:var(--green);}
.stat-amber .stat-value{color:var(--amber);}
.stat-red .stat-value{color:var(--red);}
.badge-status{display:inline-flex;align-items:center;gap:5px;text-transform:capitalize;font-weight:700;font-size:.6875rem;padding:2px 9px;border-radius:999px;border:0;line-height:1.5;background:var(--pill-neutral-bg);color:var(--pill-neutral-fg);}
.badge-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8;}
.status-active{background:var(--pill-success-bg);color:var(--pill-success-fg);}
.status-trial,.status-provisioning{background:var(--pill-warning-bg);color:var(--pill-warning-fg);}
.status-suspended,.status-error{background:var(--pill-danger-bg);color:var(--pill-danger-fg);}
.status-cancelled{background:var(--pill-neutral-bg);color:var(--pill-neutral-fg);}
.badge-app{background:rgba(var(--brand-rgb),.10);color:var(--brand-2);border:0;font-weight:700;font-size:.6875rem;border-radius:6px;}
.badge.bg-success{background:var(--pill-success-bg)!important;color:var(--pill-success-fg)!important;}
.badge.bg-danger{background:var(--pill-danger-bg)!important;color:var(--pill-danger-fg)!important;}
.badge.bg-secondary{background:var(--pill-neutral-bg)!important;color:var(--pill-neutral-fg)!important;}
.badge.bg-info{background:var(--pill-info-bg)!important;color:var(--pill-info-fg)!important;}
.badge.bg-warning{background:var(--pill-warning-bg)!important;color:var(--pill-warning-fg)!important;}
.activity{list-style:none;margin:0;padding:0;}
.activity li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);}
.activity li:last-child{border-bottom:0;}
.activity-dot{width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--brand);flex-shrink:0;}
.activity-text{font-size:.8125rem;font-weight:500;}
.activity-meta{font-size:.75rem;color:var(--muted);}
.search-box{position:relative;}
.search-box i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.8125rem;}
.search-box input{padding-left:32px;min-width:240px;}
.tenant-avatar{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;color:var(--brand-2);font-weight:800;font-size:1.25rem;text-transform:uppercase;background:rgba(var(--brand-rgb),.10);border:1px solid rgba(var(--brand-rgb),.2);}
.tenant-notes{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:.8125rem;color:var(--ink);}
.detail-grid{display:grid;grid-template-columns:120px 1fr;gap:8px 16px;}
.detail-grid dt{color:var(--muted);font-weight:600;}
.detail-grid dd{margin:0;}
.form-label{font-weight:600;font-size:.8125rem;color:var(--ink-2);margin-bottom:4px;}
.form-text{color:var(--muted);font-size:.75rem;}
.form-control,.form-select{background-color:var(--surface);border:1px solid var(--line-strong);color:var(--ink);border-radius:8px;font-size:.875rem;}
.form-control-sm,.form-select-sm{font-size:.8125rem;border-radius:6px;}
.form-control:focus,.form-select:focus{background-color:var(--surface);color:var(--ink);border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.15);}
.form-control::placeholder{color:var(--muted-2);}
.form-control:disabled,.form-select:disabled{background-color:var(--surface-2);color:var(--muted);}
.form-check-input{border-color:var(--line-strong);background-color:var(--surface);}
.form-check-input:checked{background-color:var(--brand);border-color:var(--brand);}
.form-check-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.15);}
.input-group-text{background:var(--surface-2);border-color:var(--line-strong);color:var(--muted);}
.modal-content{background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--ink);box-shadow:var(--shadow-pop);}
.modal-header{padding:14px 18px;}
.modal-header .modal-title{font-size:1rem;font-weight:700;}
.modal-body{padding:18px;}
.modal-footer{padding:12px 18px;background:var(--surface-2);border-radius:0 0 12px 12px;}
.modal-header,.modal-footer{border-color:var(--line);}
.dropdown-menu{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-pop);padding:6px;font-size:.8125rem;}
.dropdown-item{color:var(--ink);border-radius:6px;padding:7px 10px;}
.dropdown-item:hover,.dropdown-item:focus{background:var(--surface-2);color:var(--ink);}
.dropdown-item-text{color:var(--muted);}
.dropdown-divider{border-color:var(--line);}
.btn{font-weight:600;font-size:.8125rem;border-radius:8px;padding:7px 14px;}
.btn-sm{font-size:.75rem;padding:4px 10px;border-radius:6px;}
.btn-lg{font-size:.9375rem;padding:10px 18px;}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-color:var(--brand-contrast);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark);--bs-btn-hover-color:var(--brand-contrast);--bs-btn-active-bg:var(--brand-dark);--bs-btn-active-border-color:var(--brand-dark);--bs-btn-disabled-bg:var(--brand);--bs-btn-disabled-border-color:var(--brand);--bs-btn-focus-shadow-rgb:var(--brand-rgb);}
.btn-outline-primary{--bs-btn-color:var(--brand-2);--bs-btn-border-color:rgba(var(--brand-rgb),.5);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--brand);--bs-btn-active-border-color:var(--brand);--bs-btn-focus-shadow-rgb:var(--brand-rgb);}
.btn-outline-secondary,.btn-light{--bs-btn-bg:var(--surface);--bs-btn-color:var(--ink-2);--bs-btn-border-color:var(--line-strong);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-color:var(--ink);--bs-btn-hover-border-color:var(--line-strong);--bs-btn-active-bg:var(--surface-3);--bs-btn-active-color:var(--ink);--bs-btn-active-border-color:var(--line-strong);background:var(--surface);}
.btn-outline-danger{--bs-btn-color:var(--red);--bs-btn-border-color:rgba(198,40,40,.4);--bs-btn-hover-bg:var(--red);--bs-btn-hover-border-color:var(--red);--bs-btn-hover-color:#fff;}
.btn-success{--bs-btn-bg:#2e7d32;--bs-btn-border-color:#2e7d32;--bs-btn-color:#fff;--bs-btn-hover-bg:#256b29;--bs-btn-hover-border-color:#256b29;--bs-btn-hover-color:#fff;}
.btn-link{color:var(--brand-2);}
.alert{border-radius:var(--radius);font-size:.8125rem;}
.toast{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-pop);}
.tooltip-inner{background:#1d2330;color:#fff;font-size:.75rem;border-radius:6px;}
hr{border-color:var(--line);opacity:1;}
.nav-tabs{border-color:var(--line);}
.nav-tabs .nav-link{color:var(--muted);font-weight:600;font-size:.8125rem;border:0;border-bottom:2px solid transparent;}
.nav-tabs .nav-link:hover{color:var(--ink);border-color:transparent;}
.nav-tabs .nav-link.active{color:var(--brand-2);background:none;border-bottom-color:var(--brand);}
.nav-pills .nav-link{color:var(--ink-2);font-weight:600;font-size:.8125rem;border-radius:6px;}
.nav-pills .nav-link.active{background:rgba(var(--brand-rgb),.10);color:var(--brand-2);}
.pagination{--bs-pagination-color:var(--ink-2);--bs-pagination-bg:var(--surface);--bs-pagination-border-color:var(--line);--bs-pagination-hover-bg:var(--surface-2);--bs-pagination-hover-color:var(--ink);--bs-pagination-active-bg:var(--brand);--bs-pagination-active-border-color:var(--brand);font-size:.8125rem;}
.list-group{--bs-list-group-bg:var(--surface);--bs-list-group-border-color:var(--line);--bs-list-group-color:var(--ink);}
.card{--bs-card-bg:var(--surface);--bs-card-border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
.sidebar-backdrop{display:none;}
@media (max-width:991.98px){
.sidebar{transform:translateX(-100%);}
.sidebar.open{transform:none;box-shadow:var(--shadow-pop);}
.app-main{margin-left:0;}
.sidebar.open ~ .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(16,24,40,.35);z-index:1035;}
.content{padding:16px;}
.topbar{padding:0 12px;}
}
.theme-picker{margin-top:2px;}
.theme-picker .theme-opt{flex:1;font-size:.75rem;font-weight:600;padding:5px 4px;}
.theme-picker .theme-opt i{font-size:.8125rem;}
.theme-opt.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.theme-opt.active:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff;}
.ai-keys{display:flex;flex-direction:column;gap:4px;}
.ai-key-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:13px;}
.ai-key-row.is-off{opacity:.55;}
.ai-key-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--green);}
.ai-key-row.is-cooling .ai-key-dot{background:var(--amber);}
.ai-key-row.is-off .ai-key-dot{background:var(--slate);}
.ai-key-name{flex:1 1 auto;min-width:0;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ai-key-mask{flex:0 0 auto;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;}
.ai-key-stat{flex:0 0 auto;color:var(--muted);font-size:11px;white-space:nowrap;}
.ai-key-actions{flex:0 0 auto;display:flex;align-items:center;gap:0;margin-left:auto;}
.ai-key-actions .btn-link{padding:0 4px;color:var(--muted);text-decoration:none;line-height:1;}
.ai-key-actions .btn-link:hover{color:var(--ink);}
.ai-key-actions .btn-link.text-danger:hover{color:var(--red);}
.ai-key-empty{padding:5px 8px;border:1px dashed var(--line);border-radius:8px;}
@media (max-width:430px){.ai-key-stat{display:none;}}
