
:root{--font:'DM Sans',sans-serif;--mono:'DM Mono',monospace;--radius:10px;--radius-sm:6px;--radius-lg:16px;--transition:.18s ease;}
[data-theme="dark"]{--bg:#0e0f11;--bg2:#161719;--bg3:#1e2023;--bg4:#26282c;--border:rgba(255,255,255,.08);--border2:rgba(255,255,255,.14);--text:#f0f0ef;--text2:#9b9a97;--text3:#5c5b58;--accent:#4f8ef7;--accent-bg:rgba(79,142,247,.12);--accent-border:rgba(79,142,247,.3);--green:#3ecf8e;--green-bg:rgba(62,207,142,.1);--amber:#f5a524;--amber-bg:rgba(245,165,36,.1);--red:#f26b6b;--red-bg:rgba(242,107,107,.1);--purple:#a78bfa;--purple-bg:rgba(167,139,250,.1);--shadow:0 2px 8px rgba(0,0,0,.4);--sidebar-w:210px;}
[data-theme="light"]{--bg:#f4f5f6;--bg2:#ffffff;--bg3:#f0f1f3;--bg4:#e8eaed;--border:rgba(0,0,0,.07);--border2:rgba(0,0,0,.12);--text:#1a1a1a;--text2:#6b6b6b;--text3:#b0b0b0;--accent:#2563eb;--accent-bg:rgba(37,99,235,.08);--accent-border:rgba(37,99,235,.25);--green:#059669;--green-bg:rgba(5,150,105,.08);--amber:#d97706;--amber-bg:rgba(217,119,6,.08);--red:#dc2626;--red-bg:rgba(220,38,38,.08);--purple:#7c3aed;--purple-bg:rgba(124,58,237,.08);--shadow:0 1px 3px rgba(0,0,0,.1);--sidebar-w:210px;}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;transition:background var(--transition),color var(--transition);}

/* ── LOADING SCREEN ── */
#loading-screen{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:999;}
#loading-screen.hidden{display:none;}
.spinner{width:32px;height:32px;border:3px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.loading-txt{font-size:13px;color:var(--text2);}

/* ── LOGIN ── */
#login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);}
#login-screen.hidden{display:none;}
.login-card{width:380px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:44px 40px;box-shadow:var(--shadow);}
.login-logo{font-size:24px;font-weight:600;margin-bottom:4px;}.login-logo span{color:var(--accent);}
.login-sub{font-size:13px;color:var(--text2);margin-bottom:32px;}
.field{margin-bottom:18px;}.field label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:7px;letter-spacing:.05em;text-transform:uppercase;}
.field input{width:100%;padding:11px 14px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius-sm);font-family:var(--font);font-size:14px;color:var(--text);outline:none;transition:border-color var(--transition),box-shadow var(--transition);}
.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);}
.login-error{font-size:12px;color:var(--red);margin-bottom:14px;display:none;padding:10px 12px;background:var(--red-bg);border-radius:var(--radius-sm);}
.btn-login{width:100%;padding:12px;background:var(--accent);color:#fff;font-family:var(--font);font-size:14px;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition);display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-login:hover{opacity:.88;}.btn-login:disabled{opacity:.6;cursor:not-allowed;}
.login-supa{margin-top:16px;font-size:11px;color:var(--text3);text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;}
.supa-dot{width:6px;height:6px;border-radius:50%;background:var(--green);}

/* ── APP ── */
#app{display:none;flex-direction:row;height:100vh;overflow:hidden;}#app.visible{display:flex;}
.sidebar{width:var(--sidebar-w);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;}
.sidebar-top{padding:20px 16px 16px;border-bottom:1px solid var(--border);}
.brand{font-size:16px;font-weight:600;}.brand span{color:var(--accent);}
.brand-sub{font-size:11px;color:var(--text3);margin-top:2px;font-family:var(--mono);}
.nav{flex:1;padding:10px 8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text2);cursor:pointer;transition:background var(--transition),color var(--transition);}
.nav-item:hover{background:var(--bg3);color:var(--text);}.nav-item.active{background:var(--accent-bg);color:var(--accent);font-weight:500;}
.nav-icon svg{width:15px;height:15px;flex-shrink:0;}
.nav-section{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;padding:14px 10px 4px;}
.sidebar-bottom{padding:12px 8px;border-top:1px solid var(--border);}
.user-row{display:flex;align-items:center;gap:10px;padding:8px 10px;}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.avatar.lg{width:54px;height:54px;font-size:18px;}
.avatar.green{background:var(--green-bg);color:var(--green);}.avatar.amber{background:var(--amber-bg);color:var(--amber);}
.avatar.red{background:var(--red-bg);color:var(--red);}.avatar.purple{background:var(--purple-bg);color:var(--purple);}
.user-name{font-size:12px;font-weight:500;}.user-role{font-size:11px;color:var(--text3);}
.main{flex:1;overflow-y:auto;background:var(--bg);}
.topbar{position:sticky;top:0;z-index:10;background:var(--bg2);border-bottom:1px solid var(--border);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;}
.topbar-title{font-size:15px;font-weight:600;}
.topbar-right{display:flex;align-items:center;gap:10px;}
.theme-btn{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--bg3);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text2);transition:background var(--transition);}
.theme-btn:hover{background:var(--bg4);}
.logout-btn{font-size:12px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border2);background:transparent;color:var(--text2);cursor:pointer;font-family:var(--font);transition:all var(--transition);}
.logout-btn:hover{background:var(--red-bg);color:var(--red);border-color:var(--red);}
.content{padding:24px;max-width:1100px;}.page{display:none;}.page.active{display:block;}
.page-header{margin-bottom:20px;}.page-title{font-size:20px;font-weight:600;}.page-sub{font-size:13px;color:var(--text2);margin-top:3px;}

/* SUPABASE STATUS BADGE */
.supa-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:4px 10px;border-radius:20px;background:var(--green-bg);color:var(--green);}
.supa-badge.error{background:var(--red-bg);color:var(--red);}
.supa-badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor;}

/* METRICS */
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;}
.metric{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;}
.metric-label{font-size:11px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.metric-value{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;}
.metric-value.green{color:var(--green);}.metric-value.amber{color:var(--amber);}.metric-value.red{color:var(--red);}.metric-value.blue{color:var(--accent);}
.metric-sub{font-size:11px;color:var(--text3);margin-top:4px;}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;}
.card-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.card-title{font-size:13px;font-weight:600;}.card-body{padding:20px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
table{width:100%;border-collapse:collapse;}
th{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;padding:0 14px 10px 0;border-bottom:1px solid var(--border);text-align:left;}
td{padding:10px 14px 10px 0;font-size:13px;border-bottom:1px solid var(--border);vertical-align:middle;}
tr:last-child td{border-bottom:none;}.table-wrap{padding:0 20px 12px;}
.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:3px 8px;border-radius:20px;}
.badge-green{background:var(--green-bg);color:var(--green);}.badge-amber{background:var(--amber-bg);color:var(--amber);}
.badge-red{background:var(--red-bg);color:var(--red);}.badge-blue{background:var(--accent-bg);color:var(--accent);}
.tag{font-size:11px;padding:2px 7px;border-radius:20px;background:var(--bg4);color:var(--text2);display:inline-block;margin:1px 2px 1px 0;}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border2);background:transparent;color:var(--text);transition:background var(--transition);font-family:var(--font);}
.btn:hover{background:var(--bg3);}.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-primary{background:var(--accent);color:#fff;border-color:transparent;}.btn-primary:hover{opacity:.88;background:var(--accent);}
.btn-danger{background:var(--red-bg);color:var(--red);border-color:var(--red);}.btn-danger:hover{opacity:.88;}
.btn-green{background:var(--green-bg);color:var(--green);border-color:transparent;}.btn-sm{padding:5px 10px;font-size:12px;}
input[type="text"],input[type="number"],input[type="email"],input[type="date"],input[type="password"],select,textarea{padding:8px 12px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;color:var(--text);outline:none;transition:border-color var(--transition),box-shadow var(--transition);}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);}
select option{background:var(--bg2);}.row{display:flex;align-items:center;gap:8px;}.flex{display:flex;align-items:center;gap:8px;}
.progress-bar{background:var(--bg4);border-radius:10px;height:5px;overflow:hidden;}
.progress-fill{height:100%;border-radius:10px;}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto;}
.modal-overlay.open{display:flex;}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);width:580px;max-width:95vw;box-shadow:0 8px 48px rgba(0,0,0,.5);margin:auto;}
.modal-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.modal-title{font-size:15px;font-weight:600;}
.modal-close{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;}
.modal-close:hover{background:var(--bg3);}
.modal-body{padding:22px 24px;display:flex;flex-direction:column;gap:14px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-field{display:flex;flex-direction:column;gap:5px;}
.form-field label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em;}
.form-field input,.form-field select,.form-field textarea{width:100%;}
.modal-footer{padding:14px 24px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;}
.services-picker{display:flex;flex-direction:column;gap:5px;max-height:190px;overflow-y:auto;padding:2px;}
.svc-opt{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;transition:all var(--transition);user-select:none;}
.svc-opt:hover{background:var(--bg3);border-color:var(--border2);}.svc-opt.selected{border-color:var(--accent-border);background:var(--accent-bg);}
.chk{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition);}
.svc-opt.selected .chk{background:var(--accent);border-color:var(--accent);}
.chk-tick{display:none;}.svc-opt.selected .chk-tick{display:block;}
.profile-header{display:flex;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--bg3);}
.profile-info h2{font-size:17px;font-weight:600;}.profile-info p{font-size:13px;color:var(--text2);margin-top:3px;}
.profile-tabs{display:flex;border-bottom:1px solid var(--border);}
.p-tab{padding:11px 20px;font-size:13px;font-weight:500;color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition);}
.p-tab:hover{color:var(--text);}.p-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
.p-tab.danger-tab{color:var(--red)!important;}
.p-section{padding:20px 24px;display:none;}.p-section.show{display:block;}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.info-item label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px;}
.info-item span{font-size:13px;}
.svc-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:flex-start;gap:12px;margin-bottom:8px;}
.svc-icon{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--accent-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.svc-card-info{flex:1;}
.svc-card-name{font-size:13px;font-weight:500;}
.svc-card-meta{font-size:11px;color:var(--text2);margin-top:2px;line-height:1.6;}
.svc-card-price{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--green);white-space:nowrap;}
.svc-remove{width:26px;height:26px;border-radius:var(--radius-sm);border:1px solid var(--border2);background:transparent;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all var(--transition);flex-shrink:0;}
.svc-remove:hover{background:var(--red-bg);color:var(--red);border-color:var(--red);}
.danger-zone{background:var(--red-bg);border:1px solid var(--red);border-radius:var(--radius-sm);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.danger-zone p{font-size:13px;color:var(--red);line-height:1.6;}
.dur-hint{font-size:11px;color:var(--accent);margin-top:4px;}
.wa-bg{background:var(--bg3);border-radius:var(--radius);padding:16px;min-height:220px;display:flex;flex-direction:column;gap:8px;}
.msg{max-width:78%;padding:9px 13px;border-radius:12px;font-size:13px;line-height:1.5;}
.msg-out{background:var(--accent);color:#fff;margin-left:auto;border-radius:12px 12px 2px 12px;}
.msg-in{background:var(--bg2);border:1px solid var(--border);border-radius:12px 12px 12px 2px;}
.msg-time{font-size:10px;opacity:.6;text-align:right;margin-top:3px;}
.wa-row{display:flex;gap:8px;margin-top:10px;}
.wa-row input{flex:1;border-radius:24px;}
.wa-send{width:38px;height:38px;border-radius:50%;background:#25d366;border:none;cursor:pointer;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center;}
.wa-send:hover{opacity:.88;}
.tpl-item{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);margin-bottom:8px;}
.tpl-item:hover{background:var(--bg3);}.tpl-item.active{border-color:var(--accent-border);background:var(--accent-bg);}
.tpl-name{font-size:12px;font-weight:600;margin-bottom:3px;}.tpl-item.active .tpl-name{color:var(--accent);}
.tpl-prev{font-size:12px;color:var(--text2);}
.ppos{color:var(--green);font-weight:600;}.pneg{color:var(--red);font-weight:600;}
.rate-card{background:var(--bg3);border-radius:var(--radius);padding:20px;text-align:center;margin-bottom:16px;}
.rate-big{font-size:28px;font-weight:700;font-family:var(--mono);}
.tl-item{display:flex;align-items:center;gap:12px;font-size:13px;margin-bottom:10px;}
.tl-date{width:68px;color:var(--text2);flex-shrink:0;}
.notif-dot{width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0;}
.step-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);}
.step-item:last-child{border-bottom:none;}
.step-num{width:22px;height:22px;border-radius:50%;background:var(--accent-bg);color:var(--accent);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}
.step-title{font-size:13px;font-weight:500;margin-bottom:3px;}
.step-desc{font-size:12px;color:var(--text2);line-height:1.6;}
code{font-family:var(--mono);font-size:12px;background:var(--bg4);padding:2px 6px;border-radius:4px;color:var(--accent);}
pre{font-family:var(--mono);font-size:12px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;overflow-x:auto;line-height:1.7;margin-top:8px;white-space:pre-wrap;}
::-webkit-scrollbar{width:4px;height:4px;}::-webkit-scrollbar-track{background:transparent;}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px;}

/* ── TOAST ── */
.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.toast{padding:10px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.3);animation:toastIn .2s ease;max-width:320px;}
.toast.success{background:#3ecf8e;}.toast.error{background:#f26b6b;}.toast.info{background:#4f8ef7;}
@keyframes toastIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ── BUTTON HELPERS ── */
.btn-green{background:var(--green-bg);color:var(--green);border-color:transparent;}.btn-green:hover{opacity:.88;}
.btn-danger{background:var(--red-bg);color:var(--red);border-color:var(--red);}
.btn-icon{padding:5px 8px;font-size:14px;}
.btn-sm{padding:5px 10px;font-size:12px;}
.flex{display:flex;align-items:center;gap:8px;}.row{display:flex;align-items:center;gap:8px;}
.progress-bar{background:var(--bg4);border-radius:10px;height:5px;overflow:hidden;}
.progress-fill{height:100%;border-radius:10px;}

/* ── MOBILE MENU ── */
.menu-toggle{display:none;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--bg3);border:1px solid var(--border);cursor:pointer;align-items:center;justify-content:center;color:var(--text2);flex-shrink:0;}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:49;}
.sidebar-overlay.open{display:block;}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  :root{--sidebar-w:240px;}
  #app{flex-direction:column;}
  .sidebar{position:fixed;top:0;left:-260px;height:100vh;z-index:50;transition:left .25s ease;width:var(--sidebar-w);box-shadow:4px 0 20px rgba(0,0,0,.4);}
  .sidebar.open{left:0;}
  .menu-toggle{display:flex;}
  .main{flex:1;overflow-y:auto;width:100%;}
  .topbar{padding:0 14px;height:48px;}
  .content{padding:12px;}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;}
  .grid2{grid-template-columns:1fr;gap:10px;}
  .form-row{grid-template-columns:1fr;gap:10px;}
  .table-wrap{padding:0 12px 8px;overflow-x:auto;}
  table{min-width:500px;}
  .card-header{padding:12px 14px;flex-wrap:wrap;gap:8px;}
  .card-body{padding:14px;}
  .modal{width:96vw!important;max-height:90vh;overflow-y:auto;margin:auto;}
  .modal-body{padding:14px 16px;}
  .modal-header,.modal-footer{padding:12px 16px;}
  .profile-header{padding:14px 16px;flex-wrap:wrap;}
  .p-section{padding:14px 16px;}
  .p-tab{padding:10px 12px;font-size:12px;}
  .wa-bg{min-height:150px;}
  .rate-big{font-size:22px;}
  .metric-value{font-size:20px;}
  .page-title{font-size:17px;}
  .supa-badge{display:none;}
  .info-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:420px){
  .content{padding:8px;}
  .metrics{gap:6px;}
  .metric{padding:10px 12px;}
  .metric-value{font-size:17px;}
  .form-row{gap:8px;}
}

/* ═══════════════════════════════════════════════════════════════
   FASE 7 — UI/UX profesional, responsive y temas de colores
   Fuente base conservada: DM Sans + DM Mono
   ═══════════════════════════════════════════════════════════════ */
:root{
  --sidebar-w:240px;
  --content-max:1440px;
  --ring:0 0 0 3px var(--accent-bg);
  --radius-xl:22px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
[data-theme="dark"]{
  --bg:#0b0d12;--bg2:#11141b;--bg3:#171b24;--bg4:#222837;
  --border:rgba(255,255,255,.075);--border2:rgba(255,255,255,.14);
  --text:#f4f7fb;--text2:#a8b0bf;--text3:#677083;
  --shadow:0 18px 55px rgba(0,0,0,.38);
  --surface-glow:rgba(79,142,247,.12);
}
[data-theme="light"]{
  --bg:#f5f7fb;--bg2:#ffffff;--bg3:#f0f4f9;--bg4:#e4e9f1;
  --border:rgba(12,18,28,.075);--border2:rgba(12,18,28,.14);
  --text:#101828;--text2:#596274;--text3:#8a94a6;
  --shadow:0 16px 38px rgba(15,23,42,.08);
  --surface-glow:rgba(37,99,235,.09);
}
[data-theme="midnight"]{
  --bg:#050816;--bg2:#0b1020;--bg3:#111a32;--bg4:#18264a;
  --border:rgba(124,189,255,.11);--border2:rgba(124,189,255,.18);
  --text:#eef6ff;--text2:#a8bad7;--text3:#64769a;
  --shadow:0 22px 70px rgba(0,0,0,.52);
  --surface-glow:rgba(34,211,238,.11);
}
[data-accent="blue"]{--accent:#4f8ef7;--accent-rgb:79,142,247;--accent-bg:rgba(79,142,247,.13);--accent-border:rgba(79,142,247,.34)}
[data-accent="green"]{--accent:#28c980;--accent-rgb:40,201,128;--accent-bg:rgba(40,201,128,.13);--accent-border:rgba(40,201,128,.34)}
[data-accent="purple"]{--accent:#9b7cff;--accent-rgb:155,124,255;--accent-bg:rgba(155,124,255,.14);--accent-border:rgba(155,124,255,.36)}
[data-accent="orange"]{--accent:#f97316;--accent-rgb:249,115,22;--accent-bg:rgba(249,115,22,.13);--accent-border:rgba(249,115,22,.34)}
[data-accent="cyan"]{--accent:#22d3ee;--accent-rgb:34,211,238;--accent-bg:rgba(34,211,238,.13);--accent-border:rgba(34,211,238,.34)}
[data-density="compact"]{--density-pad:12px;--density-cell:8px;--density-gap:10px;--density-font:13px}
[data-density="comfortable"]{--density-pad:18px;--density-cell:12px;--density-gap:16px;--density-font:14px}
[data-surface="solid"] .card,[data-surface="solid"] .metric{box-shadow:none;background:var(--bg2)}
[data-surface="soft"] .card,[data-surface="soft"] .metric{box-shadow:var(--shadow)}
html{scroll-behavior:smooth}
body{font-size:var(--density-font,14px);background:
  radial-gradient(circle at 8% -5%,var(--surface-glow),transparent 26%),
  radial-gradient(circle at 92% 4%,rgba(var(--accent-rgb,79,142,247),.08),transparent 32%),
  var(--bg);
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(var(--accent-rgb,79,142,247),.04),transparent 35%,rgba(255,255,255,.015));z-index:-1}
#loading-screen,#login-screen{background:radial-gradient(circle at top,rgba(var(--accent-rgb,79,142,247),.15),transparent 38%),var(--bg)}
.login-card{position:relative;width:min(430px,calc(100vw - 28px));padding:46px 42px;border-radius:26px;background:color-mix(in srgb,var(--bg2) 86%,transparent);box-shadow:0 26px 70px rgba(0,0,0,.32);overflow:hidden;backdrop-filter:blur(18px)}
.login-card:before{content:"";position:absolute;inset:-1px;background:linear-gradient(135deg,var(--accent-border),transparent 28%,transparent 72%,rgba(255,255,255,.08));pointer-events:none;border-radius:26px}
.login-logo,.brand{letter-spacing:-.035em}.login-logo{font-size:26px}.login-sub{line-height:1.55}
.field input,input[type="text"],input[type="number"],input[type="email"],input[type="date"],input[type="password"],select,textarea{min-height:39px;border-radius:10px;background:color-mix(in srgb,var(--bg3) 82%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.field input:focus,input:focus,select:focus,textarea:focus{box-shadow:var(--ring);border-color:var(--accent)}
.btn,.logout-btn,.theme-btn,.menu-toggle{border-radius:10px;transition:transform .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease),opacity .16s var(--ease)}
.btn:hover,.theme-btn:hover,.logout-btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 72%,#fff 18%));box-shadow:0 10px 28px rgba(var(--accent-rgb,79,142,247),.22)}
#app.visible{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100vh;overflow:hidden}.sidebar{width:auto;background:color-mix(in srgb,var(--bg2) 92%,transparent);backdrop-filter:blur(16px);border-right:1px solid var(--border)}
.sidebar-top{padding:22px 18px 18px}.brand{font-size:18px}.brand-sub{letter-spacing:.02em;text-transform:uppercase}.nav{gap:3px;padding:12px 10px}.nav-item{min-height:38px;padding:10px 12px;border-radius:12px;font-weight:500}.nav-item.active{box-shadow:inset 0 0 0 1px var(--accent-border);background:linear-gradient(135deg,var(--accent-bg),transparent)}.nav-icon{display:grid;place-items:center;width:18px}.nav-section{padding:16px 12px 5px;letter-spacing:.1em}.main{min-width:0;background:transparent}.topbar{height:62px;padding:0 26px;background:color-mix(in srgb,var(--bg2) 82%,transparent);backdrop-filter:blur(18px);box-shadow:0 1px 0 var(--border)}.topbar-title{font-size:16px;letter-spacing:-.01em}.topbar-subtitle{font-size:11px;color:var(--text3);margin-top:1px}.content{max-width:var(--content-max);padding:28px;margin:0 auto;width:100%}.page-header{margin-bottom:22px}.page-title{font-size:24px;letter-spacing:-.035em}.page-kicker{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:var(--accent);margin-bottom:4px}.page-sub{line-height:1.55}.app-hero-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--accent-bg),transparent 45%),color-mix(in srgb,var(--bg2) 86%,transparent);box-shadow:var(--shadow)}.hero-chip{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;padding:8px 12px}.metrics{gap:var(--density-gap,16px);margin-bottom:22px}.metric{position:relative;overflow:hidden;border-radius:18px;padding:var(--density-pad,18px);background:linear-gradient(180deg,color-mix(in srgb,var(--bg2) 94%,transparent),color-mix(in srgb,var(--bg3) 72%,transparent));box-shadow:var(--shadow)}.metric:after{content:"";position:absolute;right:-24px;top:-28px;width:88px;height:88px;border-radius:50%;background:var(--accent-bg);filter:blur(3px)}.metric-label{position:relative;z-index:1}.metric-value{position:relative;z-index:1;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.04em}.metric-sub{position:relative;z-index:1}.card{border-radius:18px;background:color-mix(in srgb,var(--bg2) 90%,transparent);border:1px solid var(--border);backdrop-filter:blur(10px)}.card-header{padding:16px 20px}.card-title{font-size:14px;letter-spacing:-.01em}.card-body{padding:20px}.grid2{gap:var(--density-gap,16px)}.table-wrap{padding:0 20px 14px;overflow-x:auto}th{padding:0 14px 12px 0}td{padding:var(--density-cell,12px) 14px var(--density-cell,12px) 0}.badge,.tag{font-weight:700}.toast{border-radius:13px;box-shadow:0 16px 46px rgba(0,0,0,.25)}
.segmented-control{display:grid;grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:6px;background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:5px}.seg-btn{border:0;background:transparent;color:var(--text2);font-family:var(--font);font-weight:700;padding:10px 11px;border-radius:10px;cursor:pointer}.seg-btn:hover{background:var(--bg4);color:var(--text)}.seg-btn.active{background:var(--accent);color:#fff;box-shadow:0 8px 22px rgba(var(--accent-rgb,79,142,247),.23)}.accent-picker{display:flex;gap:10px;flex-wrap:wrap}.accent-dot{width:38px;height:38px;border-radius:50%;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 5px rgba(255,255,255,.16),0 10px 25px rgba(0,0,0,.16)}.accent-dot.active{border-color:var(--text);outline:3px solid var(--accent-bg)}.accent-blue{background:#4f8ef7}.accent-green{background:#28c980}.accent-purple{background:#9b7cff}.accent-orange{background:#f97316}.accent-cyan{background:#22d3ee}.appearance-grid{align-items:stretch}.preview-card{position:relative;overflow:hidden}.preview-glow{position:absolute;inset:auto -80px -120px auto;width:260px;height:260px;border-radius:50%;background:rgba(var(--accent-rgb,79,142,247),.22);filter:blur(60px);pointer-events:none}.preview-dashboard{position:relative;display:grid;grid-template-columns:78px 1fr;gap:14px;min-height:250px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,var(--bg3),var(--bg2));padding:14px;overflow:hidden}.preview-side{border-radius:14px;background:var(--bg2);border:1px solid var(--border);padding:10px;display:flex;flex-direction:column;gap:8px}.preview-side div{height:22px;border-radius:8px;background:var(--bg3)}.preview-side div:first-child{background:var(--accent)}.preview-main{min-width:0}.preview-line{height:22px;border-radius:10px;background:var(--bg4);margin-bottom:14px}.preview-line.wide{width:70%}.preview-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.preview-metrics span{height:58px;border-radius:13px;background:linear-gradient(135deg,var(--accent-bg),var(--bg3));border:1px solid var(--border)}.preview-table{display:grid;gap:8px}.preview-table b{height:31px;border-radius:10px;background:var(--bg3);border:1px solid var(--border)}.modal{border-radius:22px;background:color-mix(in srgb,var(--bg2) 94%,transparent);backdrop-filter:blur(14px)}.modal-header,.modal-footer{background:color-mix(in srgb,var(--bg3) 42%,transparent)}.profile-header{background:linear-gradient(135deg,var(--accent-bg),var(--bg3))}.danger-zone{border-radius:14px}.menu-toggle{background:var(--bg3)}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid2{grid-template-columns:1fr}.content{padding:20px}.app-hero-header{align-items:flex-start;flex-direction:column}.hero-chip{white-space:normal}}
@media(max-width:768px){:root{--sidebar-w:282px}.content{padding:14px}.topbar{height:auto;min-height:58px;padding:10px 14px}.topbar-right{gap:6px}.supa-badge{display:none}.logout-btn{padding:7px 10px}.page-title{font-size:20px}.metrics{grid-template-columns:1fr 1fr!important;gap:9px}.metric{padding:12px}.metric-value{font-size:20px}.card-header{padding:13px 14px;align-items:flex-start}.card-body{padding:14px}.table-wrap{padding:0 14px 10px}.sidebar{position:fixed;z-index:60;left:calc(var(--sidebar-w) * -1 - 20px);top:0;width:var(--sidebar-w);height:100vh;transition:left .24s var(--ease);box-shadow:20px 0 70px rgba(0,0,0,.45)}.sidebar.open{left:0}#app.visible{display:flex}.sidebar-overlay{z-index:55}.main{width:100%}.form-row{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.preview-dashboard{grid-template-columns:1fr}.preview-side{display:none}.modal{width:96vw!important}.profile-tabs{overflow-x:auto}.p-tab{white-space:nowrap}.toast-wrap{left:12px;right:12px;bottom:14px}.toast{max-width:none}}
@media(max-width:430px){.content{padding:10px}.metrics{grid-template-columns:1fr!important}.row{flex-wrap:wrap}.btn{width:auto}.topbar-right .theme-btn{display:flex}.login-card{padding:30px 22px}.app-hero-header{padding:16px}.segmented-control{grid-template-columns:1fr}.accent-dot{width:34px;height:34px}}
