:root{
  --bg:#0b1220; --card:rgba(255,255,255,.04); --border:rgba(255,255,255,.10);
  --text:#e8eefc; --muted:#93a4c7;
  --primary:#3b82f6; --accent:#22c55e;
  --danger:#ef4444;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial;background:var(--bg);color:var(--text)}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:18px}
.nav{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:14px}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.2px}
.brand img{height:34px;width:auto;border-radius:8px;border:1px solid var(--border);background:#fff}
.nav-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.admin-menu{position:relative}
.admin-menu summary{list-style:none}
.admin-menu summary::-webkit-details-marker{display:none}
.admin-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:220px;padding:8px;border:1px solid var(--border);border-radius:12px;background:#111827;box-shadow:0 18px 45px rgba(0,0,0,.35)}
.admin-menu-panel a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-radius:10px;color:var(--text);text-decoration:none}
.admin-menu-panel a:hover{background:rgba(255,255,255,.07);text-decoration:none}
.admin-menu-panel a.danger-link{color:#fecaca}
.admin-menu-panel .logout-form{margin:8px 0 0;padding-top:8px;border-top:1px solid var(--border)}
.admin-menu-panel button.danger-link{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 11px;border:0;border-radius:10px;background:rgba(239,68,68,.12);color:#fecaca;font:inherit;text-align:left;cursor:pointer}
.admin-menu-panel button.danger-link:hover{background:rgba(239,68,68,.20)}
.admin-menu-panel .admin-logout-btn{width:100%;justify-content:center;background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.35);color:#fff}
.admin-menu-panel .admin-logout-btn:hover{background:rgba(239,68,68,.22)}
.notification-center{position:relative}
.notification-bell{position:relative}
.notification-bell i{
  position:absolute;
  top:-7px;
  right:-7px;
  min-width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 5px;
  border:2px solid #0b1220;
  border-radius:999px;
  background:linear-gradient(135deg,#ef4444,#f97316);
  color:#fff;
  font-size:10px;
  font-style:normal;
  font-weight:900;
  box-shadow:0 10px 22px rgba(239,68,68,.28);
}
.notification-panel{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  z-index:60;
  width:min(390px,calc(100vw - 24px));
  overflow:hidden;
  border:1px solid rgba(148,163,184,.20);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(17,24,39,.98), rgba(8,13,26,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.notification-panel-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
  padding:14px;
  border-bottom:1px solid rgba(148,163,184,.14);
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(34,197,94,.08));
}
.notification-panel-head b{display:block;color:#f8fafc}
.notification-panel-head small{display:block;margin-top:3px;color:#b8c5db;font-size:12px}
.notification-permission-btn{white-space:nowrap}
.notification-list{
  display:grid;
  gap:8px;
  max-height:420px;
  overflow:auto;
  padding:10px;
}
.notification-empty{
  padding:18px;
  border:1px dashed rgba(148,163,184,.22);
  border-radius:12px;
  color:#b8c5db;
  text-align:center;
}
.notification-item{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:10px;
  padding:11px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  color:var(--text);
  text-decoration:none;
}
.notification-item:hover{
  border-color:rgba(96,165,250,.38);
  background:rgba(59,130,246,.09);
  text-decoration:none;
}
.notification-item.warning{border-color:rgba(250,204,21,.24);background:rgba(250,204,21,.055)}
.notification-item.urgent{border-color:rgba(248,113,113,.26);background:rgba(248,113,113,.060)}
.notification-item-icon{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:8px;
  background:rgba(59,130,246,.13);
}
.notification-item-icon i{
  width:9px;
  height:9px;
  border-radius:999px;
  background:#60a5fa;
  box-shadow:0 0 0 5px rgba(96,165,250,.13);
}
.notification-item b{display:block;color:#f8fafc;font-size:13px}
.notification-item small{display:block;margin-top:3px;color:#b8c5db;font-size:12px;line-height:1.35}
@media (max-width:720px){
  .nav{align-items:flex-start;flex-direction:column}
  .nav-actions{width:100%;justify-content:flex-start}
  .admin-menu-panel{left:0;right:auto}
  .notification-panel{left:0;right:auto}
}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px}
.card,.grid,.table-responsive,.table,.table tr,.table td{min-width:0;max-width:100%}
.app-shell svg,
.nav svg,
.btn svg,
.card svg,
.admin-menu-panel svg,
.notification-center svg{
  display:block;
  width:18px;
  height:18px;
  max-width:18px;
  max-height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.02);color:var(--text);cursor:pointer}
.btn:hover{background:rgba(255,255,255,.05);text-decoration:none}
.btn.primary{background:rgba(59,130,246,.16);border-color:rgba(59,130,246,.35)}
.btn.ok{background:rgba(34,197,94,.16);border-color:rgba(34,197,94,.35)}
.btn.danger{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.35)}
.grid{display:grid;gap:12px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.quote-detail-hero{
  position:relative;
  overflow:hidden;
  border-color:rgba(96,165,250,.20);
  background:
    radial-gradient(circle at 92% 18%, rgba(34,197,94,.18), transparent 30%),
    linear-gradient(135deg, rgba(15,23,42,.96), rgba(30,41,59,.82));
}
.quote-detail-hero:before{
  content:"";
  position:absolute;
  inset:auto -80px -120px auto;
  width:260px;
  height:260px;
  border-radius:999px;
  border:1px solid rgba(96,165,250,.18);
  pointer-events:none;
}
.quote-hero-top{
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.quote-hero-title h2{
  margin:4px 0 8px;
  font-size:clamp(26px,3vw,38px);
  line-height:1.05;
}
.quote-kicker{
  display:block;
  color:#93c5fd;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.quote-meta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color:#b8c5db;
  font-size:13px;
}
.quote-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.quote-hero-stats{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.35fr);
  gap:12px;
  margin-top:16px;
}
.quote-highlight-card{
  min-height:92px;
  padding:15px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:14px;
  background:rgba(2,6,23,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.quote-highlight-card span{
  display:block;
  margin-bottom:7px;
  color:#9fb0d0;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
}
.quote-highlight-card strong{
  display:block;
  color:#f8fafc;
  font-size:clamp(20px,2.1vw,28px);
  line-height:1.2;
}
.quote-equipment-highlight strong{
  font-size:clamp(18px,1.7vw,24px);
}
.quote-total-highlight{
  border-color:rgba(34,197,94,.30);
  background:linear-gradient(135deg, rgba(34,197,94,.14), rgba(59,130,246,.08));
}
.quote-total-highlight strong{
  color:#bbf7d0;
  font-size:clamp(28px,3vw,42px);
}
.payment-summary-card{
  padding:0;
  overflow:hidden;
}
.payment-summary-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:16px;
  border-bottom:1px solid rgba(148,163,184,.14);
  background:linear-gradient(135deg, rgba(59,130,246,.10), rgba(34,197,94,.05));
}
.payment-summary-head h3{
  margin:3px 0 0;
  font-size:20px;
}
.payment-total-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:130px;
  padding:10px 14px;
  border:1px solid rgba(34,197,94,.30);
  border-radius:999px;
  background:rgba(34,197,94,.12);
  color:#dcfce7;
  font-size:18px;
  font-weight:900;
}
.payment-row{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  margin:0;
  padding:11px 16px;
  border-bottom:1px solid rgba(148,163,184,.10);
}
.payment-row:last-child{border-bottom:0}
.payment-row span{color:#dbeafe}
.payment-row b{font-size:16px}
.payment-row.discount-row b{color:#86efac}
.payment-row.total{
  margin-top:2px;
  border-top:1px solid rgba(255,255,255,.55);
  background:rgba(15,23,42,.52);
}
.payment-row.total span,
.payment-row.total b{
  color:#f8fafc;
  font-size:22px;
  font-weight:950;
}
.quote-main-fields{display:grid;grid-template-columns:1fr;gap:12px}
.quote-simple-details{padding:0;overflow:hidden}
.quote-simple-details > summary{
  padding:14px;
  cursor:pointer;
  list-style:none;
  font-size:18px;
  font-weight:800;
}
.quote-simple-details > summary::-webkit-details-marker{display:none}
.quote-simple-details[open]{padding-bottom:14px}
.quote-simple-details > label,
.quote-simple-details > input{margin-left:14px;margin-right:14px;width:calc(100% - 28px)}
.quote-event-details > .grid,
.quote-event-details > .help,
.quote-event-details > .hr,
.quote-event-details > h3,
.quote-event-details > textarea,
.quote-event-details > div:not(.grid):not(.help):not(.hr){margin-left:14px;margin-right:14px}
.quote-products-details > .grid,
.quote-products-details > .help,
.quote-products-details > .hr,
.quote-products-details > h3,
.quote-products-details > label,
.quote-products-details > textarea,
.quote-products-details > div:not(.grid):not(.help):not(.hr){margin-left:14px;margin-right:14px}
@media (max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}
.input{width:100%;padding:10px 11px;border-radius:12px;border:1px solid var(--border);background:rgba(0,0,0,.20);color:var(--text);outline:none}
select.input option{background:#111827;color:#e8eefc}
textarea.input{resize:vertical}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 6px}
.small{font-size:12px;color:var(--muted)}
.help{font-size:13px;color:var(--muted)}
.hr{height:1px;background:var(--border);margin:12px 0}
.quote-lite-step{padding:0;overflow:hidden}
.quote-lite-step > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px;
  cursor:pointer;
  list-style:none;
  font-size:18px;
  font-weight:800;
}
.quote-lite-step > summary::-webkit-details-marker{display:none}
.quote-lite-step > label,
.quote-lite-step > .grid,
.quote-lite-step > .help,
.quote-lite-step > .hr,
.quote-lite-step > h3,
.quote-lite-step > textarea,
.quote-lite-step > div:not(.grid):not(.help):not(.hr){
  margin-left:14px;
  margin-right:14px;
}
.quote-lite-step[open]{padding-bottom:14px}
.quote-lite-step:not([open]) > summary .badge{background:rgba(34,197,94,.14);border-color:rgba(74,222,128,.38)}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.08);vertical-align:middle}
.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;border:1px solid var(--border);font-size:12px}
.badge.Agendado{background:rgba(59,130,246,.14);border-color:rgba(59,130,246,.35)}
.badge.Pagado{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.35)}
.badge.Completado{background:rgba(250,204,21,.12);border-color:rgba(250,204,21,.35)}
.badge.Cancelado{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35)}
.kpi{font-size:28px;font-weight:900}
.sigbox{border:1px dashed rgba(255,255,255,.25);border-radius:14px;padding:10px}
canvas.signature{width:100%;height:180px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.10);border-radius:12px;touch-action:none}

/* Theme: playful */
body.playful{background: radial-gradient(circle at 10% 10%, rgba(34,197,94,.18), transparent 35%), radial-gradient(circle at 90% 30%, rgba(59,130,246,.18), transparent 40%), var(--bg);} 


.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive .table{min-width:760px}
.actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.actions form{margin:0}
.btn.sm{padding:7px 10px;border-radius:10px;font-size:12px}
.click-row{cursor:pointer}
.click-row:hover td{background:rgba(255,255,255,.035)}
.permissions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.permission-card{min-width:0;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025);overflow:hidden}
.permission-card *{min-width:0}
.permission-card label{line-height:1.3;overflow-wrap:anywhere}
.permission-card input[type="checkbox"]{flex:0 0 auto}
.permission-tabs-text{display:block;max-width:360px;white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.users-permissions-table td:last-child .btn{white-space:normal;max-width:150px;text-align:center}
.config-hero{
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
  overflow:hidden;
  background:radial-gradient(circle at right, rgba(59,130,246,.14), transparent 38%),linear-gradient(135deg, rgba(15,23,42,.82), rgba(30,41,59,.42));
}
.config-hero-main{
  display:flex;
  gap:12px;
  align-items:center;
  min-width:0;
}
.config-hero h2{margin:0 0 5px}
.config-hero-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid rgba(96,165,250,.26);
  background:rgba(59,130,246,.12);
  color:#dbeafe;
  flex:0 0 auto;
}
.config-hero svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.config-hero-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.config-form{
  padding:14px;
}
.config-layout{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);
  gap:14px;
  align-items:start;
}
.config-main,.config-side{
  display:grid;
  gap:14px;
  min-width:0;
}
.config-side{
  position:sticky;
  top:14px;
}
.config-section{
  padding:14px;
  border:1px solid rgba(148,163,184,.15);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.014));
  min-width:0;
}
.config-section-head{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
}
.config-section-head h3{
  margin:0 0 4px;
}
.config-section-icon{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid rgba(96,165,250,.22);
  background:rgba(59,130,246,.11);
  color:#dbeafe;
  flex:0 0 auto;
}
.config-form svg,
.config-hero svg,
.config-section-icon svg,
.settings-toggle-card .toggle-icon svg,
.notification-admin-head svg,
.push-status-card svg,
.push-device-icon svg,
.push-empty-state svg,
.config-save-btn svg,
.public-quote-link svg{
  display:block;
  width:18px;
  height:18px;
  max-width:18px;
  max-height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}
.config-hero-icon svg,
.config-section-icon svg{
  width:20px;
  height:20px;
  max-width:20px;
  max-height:20px;
}
.config-logo-section{
  overflow:hidden;
}
.logo-preview-card{
  margin-top:10px;
  padding:10px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:14px;
  background:rgba(15,23,42,.28);
}
.logo-preview-box{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:150px;
  max-height:220px;
  margin-top:8px;
  padding:14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.logo-preview-box img{
  display:block;
  max-width:100%;
  max-height:180px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.public-quote-link{
  width:100%;
  justify-content:flex-start;
  min-width:0;
}
.public-quote-link span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.settings-section-title{
  display:flex;
  gap:12px;
  align-items:center;
  margin:0 0 12px;
}
.settings-section-title h3{
  margin:0 0 3px;
}
.settings-section-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:1px solid rgba(96,165,250,.26);
  border-radius:10px;
  background:rgba(59,130,246,.12);
  color:#dbeafe;
}
.settings-section-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.settings-toggle-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:10px 0 12px;
}
.settings-toggle-card{
  position:relative;
  min-height:92px;
  margin:0;
  padding:14px 58px 14px 56px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.020));
  color:var(--text);
  cursor:pointer;
  transition:transform .16s ease, border-color .16s ease, background .16s ease;
}
.settings-toggle-card:hover{
  transform:translateY(-1px);
  border-color:rgba(96,165,250,.30);
  background:linear-gradient(180deg, rgba(255,255,255,.060), rgba(255,255,255,.025));
}
.settings-toggle-card input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.settings-toggle-card > span{
  position:absolute;
  left:13px;
  top:16px;
  width:32px;
  height:20px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(15,23,42,.80);
}
.settings-toggle-card > span::after{
  content:"";
  position:absolute;
  left:3px;
  top:3px;
  width:12px;
  height:12px;
  border-radius:999px;
  background:#94a3b8;
  transition:transform .16s ease, background .16s ease;
}
.settings-toggle-card input:checked + span{
  border-color:rgba(74,222,128,.45);
  background:linear-gradient(135deg, rgba(59,130,246,.72), rgba(34,197,94,.70));
}
.settings-toggle-card input:checked + span::after{
  transform:translateX(12px);
  background:#fff;
}
.settings-toggle-card .toggle-icon{
  position:absolute;
  right:14px;
  top:15px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid rgba(96,165,250,.20);
  background:rgba(59,130,246,.10);
  color:#bfdbfe;
}
.settings-toggle-card .toggle-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.settings-toggle-card input:checked ~ .toggle-icon{
  border-color:rgba(74,222,128,.36);
  background:rgba(34,197,94,.12);
  color:#bbf7d0;
}
.settings-toggle-card b{
  display:block;
  margin-bottom:4px;
  color:#f8fafc;
  font-size:13px;
}
.settings-toggle-card small{
  display:block;
  color:#b8c5db;
  font-size:12px;
  line-height:1.35;
}
.notification-admin-panel{
  margin-top:12px;
  padding:16px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:14px;
  background:radial-gradient(circle at top right, rgba(59,130,246,.16), transparent 34%),linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
}
.notification-admin-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  align-items:flex-start;
  margin-bottom:10px;
}
.notification-admin-head h3{margin:0 0 4px}
.notification-admin-eyebrow{
  display:inline-flex;
  align-items:center;
  margin-bottom:6px;
  padding:4px 8px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:999px;
  background:rgba(59,130,246,.10);
  color:#bfdbfe;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.notification-admin-head svg,.cron-box svg,.push-status-card svg,.push-device-icon svg,.push-empty-state svg,.config-save-btn svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.push-register-btn{
  min-width:190px;
  box-shadow:0 12px 24px rgba(59,130,246,.12);
}
.push-status-card{
  display:flex;
  gap:10px;
  align-items:center;
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid rgba(34,197,94,.16);
  border-radius:12px;
  background:rgba(34,197,94,.07);
  color:#dbeafe;
}
.push-status-card svg{color:#86efac;flex:0 0 auto}
.push-device-list{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.push-device-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:12px;
  background:rgba(15,23,42,.38);
}
.push-device-card.disabled{opacity:.58}
.push-device-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(96,165,250,.20);
  background:rgba(59,130,246,.10);
  color:#bfdbfe;
}
.push-device-card b,.push-device-card small{display:block}
.push-device-card small{
  color:#aebbd1;
  font-size:12px;
  margin-top:3px;
}
.push-empty-state{
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px dashed rgba(148,163,184,.24);
  border-radius:12px;
  background:rgba(15,23,42,.28);
}
.push-empty-state svg{
  width:28px;
  height:28px;
  color:#93c5fd;
}
.push-empty-state b,.push-empty-state small{display:block}
.push-empty-state small{color:#aebbd1;margin-top:3px}
.config-save-btn{
  min-width:220px;
  box-shadow:0 12px 26px rgba(59,130,246,.12);
}
.cron-box{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) 1fr;
  gap:12px;
  align-items:center;
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(34,197,94,.18);
  border-radius:12px;
  background:rgba(34,197,94,.07);
}

.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width: 980px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:900px){.permissions-grid{grid-template-columns:1fr}}
@media (max-width: 520px){.grid-4{grid-template-columns:1fr;}}

@media (max-width: 640px){
  .container{padding:12px}
  .card{padding:12px;border-radius:12px}
  .config-form{padding:10px}
  .config-layout{grid-template-columns:1fr}
  .config-side{position:static}
  .config-section{padding:12px}
  .config-section-head{align-items:flex-start}
  .logo-preview-box{min-height:120px;max-height:170px}
  .logo-preview-box img{max-height:135px}
  h2{font-size:22px;line-height:1.2}
  h3{font-size:17px;line-height:1.25}
  .nav-actions{gap:8px}
  .nav-actions .btn,.admin-menu summary{padding:9px 10px}
  .admin-menu-panel{position:fixed;left:12px;right:12px;top:auto;min-width:0}
  .notification-center{position:static}
  .notification-panel{position:fixed;left:12px;right:12px;top:86px;width:auto;max-height:calc(100vh - 110px)}
  .notification-list{max-height:calc(100vh - 220px)}
  .notification-panel-head{flex-direction:column}
  .notification-permission-btn{width:100%}
  .settings-toggle-grid{grid-template-columns:1fr}
  .notification-admin-head,.push-device-card{display:grid}
  .push-device-card{grid-template-columns:1fr}
  .push-device-icon{width:34px;height:34px}
  .push-register-btn,.config-save-btn{min-width:0}
  .cron-box{grid-template-columns:1fr}
  .btn{width:100%;min-height:42px}
  .nav-actions .btn{width:auto}
  .actions{justify-content:stretch}
  .actions .btn,.actions button,.actions form{width:100%}
  .table-responsive{overflow:visible}
  .table-responsive .table{min-width:0}
  .table thead{display:none}
  .table tbody,.table tfoot,.table tr,.table td,.table th{display:block;width:100%}
  .table tr{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .table td,.table th{border-bottom:0;padding:7px 0;text-align:left!important}
  .table td[data-label],.table th[data-label]{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;min-width:0;overflow-wrap:anywhere;word-break:break-word}
  .table td[data-label]::before,.table th[data-label]::before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:700;flex:0 0 92px;min-width:0}
  .table td[data-label] > *,.table th[data-label] > *{min-width:0;max-width:calc(100% - 102px);text-align:right;overflow-wrap:anywhere;word-break:break-word}
  .table td[data-label="Cliente"],.table td[data-label="Equipos"]{display:block}
  .table td[data-label="Cliente"]::before,.table td[data-label="Equipos"]::before{display:block;margin-bottom:4px}
  .table td[data-label="Cliente"] > *,.table td[data-label="Equipos"] > *{max-width:none;text-align:left}
  .users-permissions-table td[data-label]{display:block}
  .users-permissions-table td[data-label]::before{display:block;margin-bottom:4px;min-width:0}
  .users-permissions-table td[data-label] > *{max-width:none;text-align:left}
  .users-permissions-table td[data-label="Acciones"] .btn{width:100%;max-width:none}
  .permission-tabs-text{text-align:left;max-width:none}
  .table td[data-label] .small{display:block;text-align:right}
  .click-row:hover td{background:transparent}
}

/* UI polish */
:root{
  --surface:rgba(15,23,42,.78);
  --surface-strong:rgba(15,23,42,.94);
  --ring:rgba(59,130,246,.42);
  --shadow:0 16px 40px rgba(0,0,0,.24);
}
body{
  background:
    linear-gradient(180deg, rgba(15,23,42,.98) 0%, rgba(8,13,24,1) 100%);
  min-height:100vh;
}
.container{max-width:1180px}
.nav{
  position:sticky;
  top:0;
  z-index:30;
  margin:0 -18px 16px;
  padding:12px 18px;
  background:rgba(11,18,32,.86);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.brand{
  min-height:42px;
  padding:4px 0;
  color:#f8fafc;
}
.brand img{box-shadow:0 8px 18px rgba(0,0,0,.22)}
.nav-actions{gap:8px}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.032));
  border-color:rgba(148,163,184,.20);
  box-shadow:0 10px 26px rgba(0,0,0,.16);
}
.card:hover{border-color:rgba(148,163,184,.28)}
.btn{
  min-height:40px;
  font-weight:750;
  letter-spacing:.01em;
  border-color:rgba(148,163,184,.24);
  background:rgba(15,23,42,.60);
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.btn:hover{
  background:rgba(30,41,59,.82);
  border-color:rgba(148,163,184,.38);
  box-shadow:0 8px 18px rgba(0,0,0,.18);
  transform:translateY(-1px);
}
.btn:active{transform:translateY(0)}
.btn.primary{
  background:linear-gradient(180deg, rgba(59,130,246,.30), rgba(59,130,246,.18));
  border-color:rgba(96,165,250,.48);
}
.btn.ok{
  background:linear-gradient(180deg, rgba(34,197,94,.26), rgba(34,197,94,.15));
  border-color:rgba(74,222,128,.46);
}
.btn.danger{
  background:linear-gradient(180deg, rgba(239,68,68,.26), rgba(239,68,68,.15));
  border-color:rgba(248,113,113,.46);
}
.input{
  min-height:42px;
  background:rgba(2,6,23,.38);
  border-color:rgba(148,163,184,.22);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.color-picker-field{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:6px 8px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:12px;
  background:rgba(2,6,23,.34);
}
.color-picker-input{
  width:68px;
  min-height:34px;
  height:34px;
  padding:0;
  overflow:hidden;
  border-radius:10px;
  cursor:pointer;
}
.color-picker-input::-webkit-color-swatch-wrapper{padding:0}
.color-picker-input::-webkit-color-swatch{border:0;border-radius:9px}
.color-picker-preview{
  flex:1;
  height:30px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
}
.theme-choice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.theme-choice-card{
  position:relative;
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid rgba(148,163,184,.20);
  border-radius:14px;
  background:rgba(2,6,23,.26);
  cursor:pointer;
}
.theme-choice-card input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.theme-choice-card.selected,
.theme-choice-card:has(input:checked){
  border-color:rgba(96,165,250,.55);
  box-shadow:0 0 0 3px rgba(59,130,246,.12);
}
.theme-choice-preview{
  height:54px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.18);
}
.dark-preview{background:linear-gradient(135deg,#0b1220,#1e293b)}
.light-preview{background:linear-gradient(135deg,#f8fafc,#dbeafe)}
.theme-choice-card b{color:#f8fafc}
.theme-choice-card small{color:#9fb0cf}
.confirmation-toggle-card{
  margin-bottom:12px;
}
.input:focus{
  border-color:var(--ring);
  box-shadow:0 0 0 3px rgba(59,130,246,.14);
  background:rgba(2,6,23,.54);
}
label{font-weight:720;color:#b9c6df}
.help,.small{color:#9fb0cf}
.hr{background:rgba(148,163,184,.18)}
.admin-menu-panel{
  min-width:240px;
  background:var(--surface-strong);
  border-color:rgba(148,163,184,.22);
  box-shadow:var(--shadow);
}
.admin-menu-panel a{
  min-height:40px;
  border:1px solid transparent;
}
.admin-menu-panel a:hover{
  background:rgba(59,130,246,.12);
  border-color:rgba(96,165,250,.20);
}
.admin-menu-subscription{
  margin:2px 0 8px;
  padding:12px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:12px;
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(34,197,94,.08));
}
.admin-menu-subscription-title{
  display:flex;
  align-items:center;
  gap:9px;
  color:#f8fafc;
  font-weight:820;
}
.admin-menu-subscription-title svg{
  width:17px;
  height:17px;
  color:#bfdbfe;
}
.admin-menu-subscription-title .badge{
  margin-left:auto;
  font-size:11px;
  padding:3px 7px;
}
.admin-menu-subscription-meta{
  margin-top:8px;
  color:#b8c6df;
  font-size:12px;
  line-height:1.55;
}
.admin-menu-subscription-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-top:10px;
}
.admin-menu-subscription-actions a{
  min-height:34px;
  justify-content:center;
  padding:7px 8px;
  border-color:rgba(148,163,184,.20);
  background:rgba(15,23,42,.40);
  font-size:12px;
}
.badge{
  border-color:rgba(148,163,184,.26);
  background:rgba(15,23,42,.48);
  color:#dbeafe;
  font-weight:760;
}
.table{
  overflow:hidden;
  border-radius:10px;
}
.table th{
  background:rgba(15,23,42,.72);
  color:#dbeafe;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.table td{color:#f8fafc}
.table tbody tr:nth-child(even) td{background:rgba(255,255,255,.025)}
.table tbody tr:hover td{background:rgba(59,130,246,.075)}
.table-responsive{
  border:1px solid rgba(148,163,184,.14);
  border-radius:10px;
  background:rgba(2,6,23,.12);
}
.table-responsive .table th:first-child,.table-responsive .table td:first-child{padding-left:14px}
.table-responsive .table th:last-child,.table-responsive .table td:last-child{padding-right:14px}
.kpi{
  color:#93c5fd;
  line-height:1;
}
details.card > summary{
  transition:background .16s ease;
}
details.card > summary:hover{
  background:rgba(255,255,255,.035);
}
details.card[open] > summary{
  background:rgba(59,130,246,.06);
  border-bottom:1px solid rgba(148,163,184,.13);
}
.stat-card{
  position:relative;
  overflow:hidden;
}
.stat-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:rgba(147,197,253,.65);
}
.stat-card.success::before{background:rgba(74,222,128,.75)}
.stat-card.warning::before{background:rgba(250,204,21,.72)}
.stat-card.danger::before{background:rgba(248,113,113,.72)}
@media (max-width:640px){
  .nav{
    margin:0 -12px 12px;
    padding:10px 12px;
    position:relative;
  }
  .card{box-shadow:none}
  .table-responsive{
    border:0;
    background:transparent;
  }
  .table tr{
    background:rgba(15,23,42,.46);
    border:1px solid rgba(148,163,184,.16);
    border-radius:10px;
    margin-bottom:10px;
    padding:10px;
  }
}

/* Quote catalog modal */
body.modal-open{overflow:hidden}
.quote-live-summary{
  position:relative;
  z-index:1;
  margin-bottom:12px;
}
.quote-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.quote-summary-grid > div{
  min-width:0;
  padding:10px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:10px;
  background:rgba(2,6,23,.16);
}
.quote-summary-grid b{
  display:block;
  margin-top:3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.quote-step-list{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.quote-step{padding:0;overflow:hidden;position:relative;z-index:1}
.quote-step-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px;
  cursor:pointer;
  list-style:none;
}
.quote-step-summary::-webkit-details-marker{display:none}
.quote-step-summary h3{margin:0 0 4px}
.quote-step-body{padding:0 14px 14px}
.quote-step:not([open]) .quote-step-badge{background:rgba(34,197,94,.14);border-color:rgba(74,222,128,.38)}
.quote-selected-panel{
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:10px;
  background:rgba(2,6,23,.18);
}
.quote-selected-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.quote-selected-chip{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border-radius:999px;
  border:1px solid rgba(96,165,250,.26);
  background:rgba(59,130,246,.10);
  color:#dbeafe;
  font-size:12px;
  font-weight:760;
}
.quote-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:1000;
  align-items:center;
  justify-content:center;
  padding:14px;
}
.quote-modal.is-open{display:flex}
.quote-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,6,23,.78);
}
.quote-modal-dialog{
  position:relative;
  z-index:1;
  width:min(1120px, calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.24);
  border-radius:14px;
  background:#0f172a;
  box-shadow:0 24px 80px rgba(0,0,0,.62);
}
.quote-modal-header,.quote-modal-tools,.quote-modal-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px;
  border-bottom:1px solid rgba(148,163,184,.16);
}
.quote-modal-tools{align-items:center}
.quote-modal-tools .input{max-width:480px}
.quote-modal-footer{border-top:1px solid rgba(148,163,184,.16);border-bottom:0}
.quote-product-grid{
  padding:14px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  overflow:auto;
}
.quote-product-card{
  border-radius:10px;
  transition:border-color .16s ease,transform .16s ease,background .16s ease;
}
.quote-product-card:hover{
  border-color:rgba(96,165,250,.38);
  transform:translateY(-1px);
}
.quote-product-card.is-selected{
  border-color:rgba(74,222,128,.55);
  background:rgba(34,197,94,.08);
}
.quote-product-thumb{
  width:100%;
  height:96px!important;
  object-fit:cover;
  border-radius:8px!important;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(15,23,42,.65);
}
.quote-product-card input[type="number"]{width:82px!important}
@media (max-width:960px){
  .quote-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .quote-live-summary{position:relative;top:auto}
  .quote-summary-grid{grid-template-columns:1fr}
  .quote-modal{padding:0}
  .quote-modal-dialog{
    width:100vw;
    height:100vh;
    max-height:none;
    margin:0;
    border-radius:0;
  }
  .quote-modal-header,.quote-modal-tools,.quote-modal-footer{padding:12px}
  .quote-modal-tools{align-items:stretch;flex-direction:column}
  .quote-modal-tools .input{max-width:none}
  .quote-product-grid{
    grid-template-columns:1fr;
    padding:12px;
  }
}

/* Professional app shell refresh */
:root{
  --app-bg:#080d18;
  --app-panel:#101827;
  --app-panel-2:#151f32;
  --app-line:rgba(148,163,184,.18);
  --app-text:#f8fafc;
  --app-muted:#9fb0cf;
  --app-blue:#60a5fa;
  --app-green:#34d399;
  --app-yellow:#fbbf24;
  --app-red:#fb7185;
}
.app-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg, rgba(20,83,45,.34) 0%, rgba(8,13,24,0) 23%),
    radial-gradient(circle at 74% 0%, rgba(59,130,246,.20), transparent 30%),
    linear-gradient(180deg, #0a1020 0%, #080d18 54%, #070b14 100%);
}
.app-shell{
  width:min(100% - 28px, 1280px);
  max-width:none;
  padding:22px 0 24px;
}
.nav{
  margin:0 0 18px;
  padding:14px 18px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background:rgba(9,14,28,.82);
  box-shadow:0 18px 50px rgba(0,0,0,.24);
  backdrop-filter:blur(16px);
}
.brand{gap:12px}
.brand img{
  width:40px;
  height:40px;
  border-radius:8px;
  object-fit:contain;
}
.brand span{
  display:block;
  color:#f8fafc;
  font-size:16px;
  line-height:1.1;
}
.brand small{
  display:block;
  margin-top:3px;
  color:#8ea0bd;
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.btn svg,
.admin-menu-panel svg,
.section-icon svg,
.inline-title-icon svg,
.hero-actions svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}
.btn{
  border-radius:8px;
  font-weight:800;
}
.card{
  border-radius:8px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.058), rgba(255,255,255,.030)),
    rgba(13,20,34,.86);
  border-color:rgba(148,163,184,.18);
}
.dashboard-subscription{
  display:none;
}
.dashboard-subscription::after{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg, var(--app-blue), var(--app-green));
}
.dashboard-subscription > h3:first-of-type{display:none}
.section-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.section-heading h3{
  margin:0 0 3px;
  font-size:18px;
}
.section-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:#dbeafe;
  border:1px solid rgba(96,165,250,.28);
  border-radius:8px;
  background:rgba(59,130,246,.12);
}
.section-icon svg{
  width:22px;
  height:22px;
}
.admin-hero{
  position:relative;
  overflow:hidden;
  min-height:138px;
  background:
    linear-gradient(135deg, rgba(59,130,246,.18), rgba(34,197,94,.08) 48%, rgba(15,23,42,.74)),
    rgba(15,23,42,.88);
}
.admin-hero::before{
  content:"";
  position:absolute;
  right:-80px;
  top:-120px;
  width:280px;
  height:280px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:999px;
  background:radial-gradient(circle, rgba(96,165,250,.18), transparent 58%);
}
.admin-hero > div:not(.admin-hero-content){display:none!important}
.admin-hero-content{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
.admin-hero h2{
  margin:0 0 6px;
  color:#fff;
  font-size:clamp(26px, 3vw, 38px);
  letter-spacing:0;
}
.eyebrow{
  margin-bottom:6px;
  color:#93c5fd;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.dashboard-upcoming summary h3{
  display:flex;
  align-items:center;
  gap:8px;
}
.inline-title-icon{
  display:inline-grid;
  place-items:center;
  color:#93c5fd;
}
.dashboard-upcoming[open] > summary{
  background:linear-gradient(90deg, rgba(59,130,246,.11), transparent);
}
.status-card-section{
  padding:18px;
}
.status-section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
}
.status-section-heading h3{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 4px;
}
.status-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.status-tile{
  display:block;
  position:relative;
  min-width:0;
  text-decoration:none;
  color:var(--text);
  border:1px solid rgba(148,163,184,.18);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.024));
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.status-tile:hover{
  border-color:rgba(96,165,250,.38);
  background:rgba(59,130,246,.085);
  text-decoration:none;
  transform:translateY(-1px);
}
.status-tile{
  position:relative;
  min-height:112px;
  padding:18px;
  overflow:hidden;
}
.status-tile::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:var(--app-blue);
}
.status-tile:nth-child(2)::before{background:var(--app-green)}
.status-tile:nth-child(3)::before{background:var(--app-yellow)}
.status-tile:nth-child(4)::before{background:var(--app-red)}
.status-tile::after{
  content:"";
  position:absolute;
  right:14px;
  bottom:14px;
  width:54px;
  height:54px;
  border-radius:999px;
  background:rgba(255,255,255,.045);
}
#status_dashboard_area .kpi{
  margin-top:8px;
  font-size:34px;
  color:#bfdbfe;
}
.status-events-panel{
  padding:14px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background:rgba(8,13,26,.30);
}
.footer-line{
  height:1px;
  margin:22px 0 12px;
  background:linear-gradient(90deg, transparent, rgba(148,163,184,.22), transparent);
}
.app-footer{
  padding-bottom:4px;
  text-align:left;
}
@media (max-width:980px){
  .status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .app-shell{
    width:min(100% - 20px, 1280px);
    padding-top:12px;
  }
  .nav{
    margin-bottom:12px;
    padding:12px;
  }
  .brand img{width:36px;height:36px}
  .hero-actions,.hero-actions .btn{width:100%}
  .status-section-heading{
    align-items:stretch;
    flex-direction:column;
  }
  .status-section-heading .btn{width:100%}
  .status-grid{grid-template-columns:1fr}
  .status-tile{min-height:94px}
}

/* Dashboard calendar */
.dashboard-upcoming{display:none}
.calendar-card{
  padding:18px;
  position:relative;
}
.calendar-card.is-loading{
  opacity:.72;
  pointer-events:none;
}
.calendar-head,
.calendar-filter,
.calendar-kpis{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.calendar-head h3{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 4px;
}
.calendar-period-title{
  margin:2px 0 3px;
  color:#f8fafc;
  font-size:22px;
  font-weight:900;
  line-height:1.15;
}
.calendar-selected-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:8px;
  padding:7px 10px;
  border:1px solid rgba(96,165,250,.22);
  border-radius:999px;
  background:rgba(59,130,246,.10);
  color:#dbeafe;
  font-size:12px;
  font-weight:900;
}
.calendar-selected-chip span,
.calendar-today-btn svg,
.calendar-filter .btn svg{
  width:16px;
  height:16px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.calendar-filter{
  justify-content:flex-start;
  margin:16px 0 14px;
  padding:12px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background:rgba(8,13,26,.42);
}
.calendar-nav{
  position:absolute;
  top:56%;
  z-index:2;
  width:44px;
  height:44px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid rgba(148,163,184,.20);
  border-radius:50%;
  background:linear-gradient(180deg, rgba(15,23,42,.72), rgba(15,23,42,.36));
  color:#dbeafe;
  text-decoration:none;
  opacity:0;
  transform:translateY(-50%) scale(.96);
  box-shadow:0 14px 32px rgba(0,0,0,.24);
  transition:opacity .18s ease, transform .18s ease, background .18s ease, border-color .18s ease;
}
.calendar-nav svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.calendar-nav:hover{
  opacity:1;
  transform:translateY(-50%) scale(1);
  background:linear-gradient(180deg, rgba(59,130,246,.34), rgba(34,197,94,.18));
  border-color:rgba(147,197,253,.50);
  text-decoration:none;
}
.calendar-card:hover .calendar-nav,
.calendar-card:focus-within .calendar-nav{
  opacity:.72;
}
.calendar-nav-prev{left:8px}
.calendar-nav-next{right:8px}
.segmented{
  display:flex;
  gap:4px;
  padding:4px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:8px;
  background:rgba(4,8,18,.62);
}
.segmented label{
  margin:0;
}
.segmented input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.segmented span{
  display:block;
  min-width:78px;
  padding:10px 12px;
  border-radius:8px;
  color:#b8c5db;
  font-weight:900;
  text-align:center;
  cursor:pointer;
}
.segmented input:checked + span{
  color:#fff;
  background:linear-gradient(135deg, rgba(59,130,246,.88), rgba(34,197,94,.60));
  box-shadow:0 10px 24px rgba(37,99,235,.18);
}
.calendar-weekdays,
.event-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
}
.calendar-weekdays{
  margin-bottom:8px;
}
.calendar-weekdays span{
  color:#93a4be;
  font-size:12px;
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
}
.calendar-day{
  min-height:126px;
  padding:10px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.024));
  color:#eef4ff;
  text-align:left;
  cursor:pointer;
  overflow:hidden;
  transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.calendar-day:hover{
  border-color:rgba(96,165,250,.52);
  background:rgba(59,130,246,.12);
  transform:translateY(-1px);
}
.calendar-day.muted{
  opacity:.45;
}
.calendar-day.today{
  box-shadow:0 0 0 1px rgba(96,165,250,.55) inset;
}
.calendar-day.selected{
  border-color:rgba(96,165,250,.85);
  background:linear-gradient(180deg, rgba(59,130,246,.18), rgba(34,197,94,.07));
}
.calendar-day-weekday{
  display:none;
  color:#93a4be;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:0;
}
.calendar-day-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:8px;
  background:rgba(15,23,42,.70);
  font-weight:900;
}
.calendar-day-label,
.calendar-day-count,
.calendar-event-dot,
.calendar-more{
  display:block;
  margin-top:6px;
  font-size:12px;
}
.calendar-day-label{color:#93a4be}
.calendar-day-count{color:#bfdbfe;font-weight:900}
.calendar-event-dot{
  padding:5px 7px;
  border-radius:8px;
  background:rgba(37,99,235,.20);
  color:#eaf2ff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.calendar-more{
  color:#86efac;
  font-weight:900;
}
.event-day-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.event-day-modal.open{
  display:flex;
}
.event-day-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(2,6,23,.72);
  backdrop-filter:blur(6px);
}
.event-day-dialog{
  position:relative;
  width:min(680px,100%);
  max-height:min(82vh,760px);
  overflow:auto;
  border:1px solid rgba(148,163,184,.22);
  border-radius:8px;
  background:linear-gradient(180deg, #151d31, #0d1424);
  box-shadow:0 26px 80px rgba(0,0,0,.46);
}
.event-day-header{
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:16px;
  border-bottom:1px solid rgba(148,163,184,.16);
  background:rgba(13,20,36,.96);
}
.event-day-header .actions{
  justify-content:flex-end;
}
.event-day-count-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 11px;
  border:1px solid rgba(96,165,250,.32);
  border-radius:999px;
  background:rgba(59,130,246,.12);
  color:#dbeafe;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.event-day-count-badge.money{
  border-color:rgba(250,204,21,.28);
  background:rgba(250,204,21,.10);
  color:#fde68a;
}
.event-day-header h3{
  margin:0 0 4px;
}
.event-day-list{
  display:grid;
  gap:10px;
  padding:16px;
}
.event-day-item,
.event-day-empty{
  padding:14px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:8px;
  background:rgba(255,255,255,.035);
}
.event-day-item-action{
  cursor:pointer;
  transition:transform .14s ease, border-color .14s ease, background .14s ease, box-shadow .14s ease;
}
.event-day-item-action:hover,
.event-day-item-action:focus-visible{
  border-color:rgba(96,165,250,.45);
  background:rgba(59,130,246,.085);
  box-shadow:0 14px 28px rgba(0,0,0,.18);
  outline:none;
}
.event-day-item-action:active{
  transform:scale(.985);
  border-color:rgba(96,165,250,.55);
  background:rgba(59,130,246,.11);
}
.event-day-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-top:10px;
}
.event-day-empty{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
@media (max-width:760px){
  .calendar-weekdays{display:none}
  .calendar-card{
    padding:14px;
    overflow:hidden;
  }
  .calendar-head{
    align-items:flex-start;
  }
  .calendar-period-title{
    font-size:18px;
  }
  .calendar-selected-chip{
    display:flex;
    width:100%;
    justify-content:center;
    border-radius:8px;
  }
  .calendar-filter{
    display:grid;
    grid-template-columns:1fr;
    margin:12px 0;
  }
  .event-calendar-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px;
  }
  .calendar-day{
    min-height:88px;
    padding:7px;
    -webkit-tap-highlight-color:rgba(59,130,246,.18);
  }
  .calendar-day.today{
    box-shadow:0 0 0 1px rgba(96,165,250,.48) inset;
  }
  .calendar-day:active{
    transform:scale(.985);
    border-color:rgba(96,165,250,.56);
    background:rgba(59,130,246,.10);
  }
  .event-day-item-action:hover,
  .event-day-item-action:focus-visible{
    box-shadow:none;
  }
  .event-day-item-action:active{
    border-color:rgba(96,165,250,.55);
    background:rgba(59,130,246,.11);
  }
  .calendar-day-number{
    width:25px;
    height:25px;
    font-size:12px;
    margin-top:3px;
  }
  .calendar-day-weekday{
    display:block;
  }
  .calendar-day-label,
  .calendar-day-count,
  .calendar-event-dot,
  .calendar-more{
    margin-top:5px;
    font-size:11px;
  }
  .calendar-event-dot{
    display:none;
    padding:4px 6px;
  }
  .calendar-nav{
    top:auto;
    bottom:16px;
    width:40px;
    height:40px;
    opacity:.86;
    transform:none;
    background:linear-gradient(180deg, rgba(59,130,246,.28), rgba(15,23,42,.58));
  }
  .calendar-nav:hover{transform:none}
  .calendar-nav svg{width:22px;height:22px}
  .calendar-nav-prev{left:14px}
  .calendar-nav-next{right:14px}
  .calendar-filter .input,
  .calendar-filter .btn{width:100%}
  .segmented{width:100%}
  .segmented label{flex:1}
  .segmented span{min-width:0}
  .event-day-header .actions,
  .event-day-header .actions .btn{width:100%}
.event-day-count-badge{flex:1}
}

/* Finance annual charts */
.finance-annual-card{
  padding:0;
  overflow:hidden;
}
.finance-annual-summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  padding:16px;
  cursor:pointer;
  list-style:none;
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(250,204,21,.06), rgba(15,23,42,.22));
}
.finance-annual-summary::-webkit-details-marker{display:none}
.finance-title-row,
.finance-chart-head,
.finance-kpi-tile{
  display:flex;
  align-items:center;
  gap:12px;
}
.finance-title-row h3,
.finance-chart-head h3{
  margin:0 0 4px;
}
.finance-icon{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  flex:0 0 auto;
  color:#dbeafe;
  border:1px solid rgba(96,165,250,.28);
  border-radius:8px;
  background:rgba(59,130,246,.12);
}
.finance-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.finance-summary-actions,
.finance-year-filter{
  display:flex;
  align-items:end;
  gap:8px;
  flex-wrap:wrap;
}
.finance-annual-body{
  padding:0 16px 16px;
}
.finance-kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:12px 0;
}
.finance-kpi-tile{
  min-width:0;
  padding:12px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background:rgba(2,6,23,.18);
}
.finance-kpi-tile.money .finance-icon{
  color:#fde68a;
  border-color:rgba(250,204,21,.26);
  background:rgba(250,204,21,.10);
}
.finance-kpi-tile b{
  display:block;
  margin-top:3px;
  color:#f8fafc;
  font-size:18px;
}
.finance-chart-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:12px 0;
}
.finance-chart-card{
  min-width:0;
  padding:14px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.020));
}
.finance-chart-switch{
  margin-top:12px;
}
.finance-chart-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.finance-chart-tabs{
  display:inline-flex;
  gap:4px;
  padding:4px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:8px;
  background:rgba(2,6,23,.26);
}
.finance-chart-tabs label{
  min-width:72px;
  padding:8px 10px;
  border-radius:7px;
  color:#cbd5e1;
  font-size:12px;
  font-weight:900;
  text-align:center;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, transform .18s ease;
}
.finance-chart-tabs label:hover{
  color:#f8fafc;
  background:rgba(96,165,250,.12);
}
#completed_chart_bars:checked ~ .finance-chart-tabs label[for="completed_chart_bars"],
#completed_chart_line:checked ~ .finance-chart-tabs label[for="completed_chart_line"],
#completed_chart_donut:checked ~ .finance-chart-tabs label[for="completed_chart_donut"]{
  color:#fff;
  background:linear-gradient(135deg, #3b82f6, #16a34a);
  box-shadow:0 10px 22px rgba(37,99,235,.18);
}
.finance-chart-view{
  display:none;
}
#completed_chart_bars:checked ~ .finance-chart-view-bars,
#completed_chart_line:checked ~ .finance-chart-view-line,
#completed_chart_donut:checked ~ .finance-chart-view-donut{
  display:block;
}
.finance-bar-chart{
  display:flex;
  align-items:end;
  gap:7px;
  height:190px;
  margin-top:12px;
  padding:12px 4px 0;
  border-bottom:1px solid rgba(148,163,184,.16);
}
.finance-bar-item{
  flex:1;
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  gap:5px;
}
.finance-bar{
  width:100%;
  min-height:6px;
  border-radius:8px 8px 0 0;
  background:linear-gradient(180deg, #93c5fd, #2563eb);
  box-shadow:0 10px 20px rgba(37,99,235,.18);
}
.finance-bar-value,
.finance-bar-label{
  color:#b8c6df;
  font-size:11px;
  font-weight:800;
}
.finance-month-labels{
  display:flex;
  justify-content:space-between;
  gap:4px;
  padding:0 12px 10px;
  color:#b8c6df;
  font-size:11px;
  font-weight:900;
}
.completed-line{
  stroke:#60a5fa;
}
.finance-donut-wrap{
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:14px;
  align-items:center;
  min-height:190px;
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(148,163,184,.12);
  border-radius:8px;
  background:rgba(2,6,23,.16);
}
.finance-donut{
  width:150px;
  height:150px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(var(--donut));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 18px 34px rgba(0,0,0,.18);
}
.finance-donut > div{
  width:96px;
  height:96px;
  display:grid;
  place-items:center;
  align-content:center;
  border-radius:50%;
  background:#111827;
  border:1px solid rgba(148,163,184,.18);
}
.finance-donut b{
  color:#f8fafc;
  font-size:24px;
  line-height:1;
}
.finance-donut span{
  color:#b8c6df;
  font-size:11px;
  font-weight:800;
}
.finance-donut-legend{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.finance-donut-legend span{
  display:flex;
  min-width:0;
  align-items:center;
  gap:7px;
  color:#dbeafe;
  font-size:12px;
  font-weight:900;
}
.finance-donut-legend i{
  width:10px;
  height:10px;
  flex:0 0 auto;
  border-radius:999px;
}
.finance-line-chart{
  position:relative;
  min-height:190px;
  margin-top:12px;
  border:1px solid rgba(148,163,184,.12);
  border-radius:8px;
  background:
    linear-gradient(rgba(148,163,184,.08) 1px, transparent 1px),
    rgba(2,6,23,.16);
  background-size:100% 38px;
}
.finance-line-chart svg{
  display:block;
  width:100%;
  height:180px;
}
.finance-axis{
  fill:none;
  stroke:rgba(148,163,184,.34);
  stroke-width:2;
}
.finance-line{
  fill:none;
  stroke:#fbbf24;
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 8px 12px rgba(251,191,36,.18));
}
.finance-line-labels{
  display:flex;
  justify-content:space-between;
  padding:0 12px 10px;
  color:#b8c6df;
  font-size:11px;
  font-weight:800;
}
.finance-rank-chart{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.finance-rank-meta{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:flex-end;
  margin-bottom:5px;
}
.finance-rank-meta b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.finance-rank-meta span{
  color:#b8c6df;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.finance-rank-track{
  height:9px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(148,163,184,.14);
}
.finance-rank-track span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #34d399, #60a5fa);
}
.finance-annual-tables{
  margin-top:14px;
}
@media (max-width:980px){
  .finance-kpi-grid,
  .finance-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .finance-chart-card:last-child{grid-column:1 / -1}
}
@media (max-width:640px){
  .finance-annual-summary,
  .finance-summary-actions,
  .finance-year-filter{align-items:stretch;flex-direction:column}
  .finance-summary-actions .badge,
  .finance-summary-actions .btn,
  .finance-year-filter .btn{width:100%}
  .finance-kpi-grid,
  .finance-chart-grid{grid-template-columns:1fr}
  .finance-chart-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .finance-chart-tabs label{min-width:0}
  .finance-bar-chart{height:160px;gap:5px}
  .finance-donut-wrap{grid-template-columns:1fr;justify-items:center}
  .finance-donut-legend{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
  .finance-rank-meta{align-items:flex-start;flex-direction:column}
}

@media (max-width:720px){
  .quote-hero-top{flex-direction:column}
  .quote-hero-actions{width:100%;justify-content:flex-start}
  .quote-hero-actions .btn{flex:1 1 150px}
  .quote-hero-stats{grid-template-columns:1fr}
  .quote-highlight-card{min-height:auto}
  .payment-summary-head{align-items:flex-start;flex-direction:column}
  .payment-total-pill{width:100%}
  .payment-row.total span,
  .payment-row.total b{font-size:20px}
}

body.theme-light{
  --bg:#f4f7fb;
  --card:rgba(255,255,255,.82);
  --border:rgba(15,23,42,.12);
  --text:#172033;
  --muted:#64748b;
  --surface:rgba(255,255,255,.92);
  --surface-strong:#ffffff;
  --ring:rgba(37,99,235,.28);
  --shadow:0 16px 38px rgba(15,23,42,.10);
  background:
    radial-gradient(circle at 8% 0%, rgba(34,197,94,.14), transparent 34%),
    radial-gradient(circle at 90% 8%, rgba(59,130,246,.16), transparent 32%),
    linear-gradient(180deg,#f8fafc 0%,#edf3fb 100%);
  color:var(--text);
}
body.theme-light .app-bg{
  background:
    linear-gradient(90deg, rgba(34,197,94,.09), transparent 45%),
    linear-gradient(180deg, rgba(59,130,246,.08), transparent 35%);
}
body.theme-light .nav{
  background:rgba(255,255,255,.86);
  border-bottom-color:rgba(15,23,42,.10);
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
body.theme-light .brand,
body.theme-light h1,
body.theme-light h2,
body.theme-light h3,
body.theme-light .theme-choice-card b,
body.theme-light .config-section-head h3,
body.theme-light .dashboard-section-title h3,
body.theme-light .admin-menu-subscription-title{
  color:#0f172a;
}
body.theme-light .brand small,
body.theme-light .help,
body.theme-light .small,
body.theme-light label,
body.theme-light .theme-choice-card small{
  color:#64748b;
}
body.theme-light .card{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,250,252,.78));
  border-color:rgba(15,23,42,.12);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
}
body.theme-light .btn{
  background:rgba(255,255,255,.78);
  border-color:rgba(15,23,42,.14);
  color:#172033;
}
body.theme-light .btn:hover{
  background:#ffffff;
  border-color:rgba(37,99,235,.30);
}
body.theme-light .btn.primary{
  background:linear-gradient(180deg, rgba(59,130,246,.18), rgba(59,130,246,.10));
  border-color:rgba(37,99,235,.34);
  color:#0f172a;
}
body.theme-light .btn.ok{
  background:linear-gradient(180deg, rgba(34,197,94,.18), rgba(34,197,94,.10));
  border-color:rgba(22,163,74,.30);
  color:#0f172a;
}
body.theme-light .input,
body.theme-light .color-picker-field{
  background:rgba(255,255,255,.84);
  border-color:rgba(15,23,42,.14);
  color:#172033;
}
body.theme-light .input:focus{
  background:#ffffff;
}
body.theme-light select.input option{
  background:#ffffff;
  color:#172033;
}
body.theme-light .admin-menu-panel,
body.theme-light .notification-panel{
  background:#ffffff;
  border-color:rgba(15,23,42,.12);
  box-shadow:0 24px 60px rgba(15,23,42,.14);
}
body.theme-light .admin-menu-panel a{
  color:#172033;
}
body.theme-light .table th{
  background:rgba(226,232,240,.86);
  color:#334155;
}
body.theme-light .table td{
  color:#172033;
  border-bottom-color:rgba(15,23,42,.08);
}
body.theme-light .table tbody tr:nth-child(even) td{background:rgba(15,23,42,.025)}
body.theme-light .table tbody tr:hover td{background:rgba(59,130,246,.08)}
body.theme-light .badge{
  background:rgba(226,232,240,.74);
  border-color:rgba(15,23,42,.12);
  color:#172033;
}
body.theme-light .quote-detail-hero,
body.theme-light .config-hero,
body.theme-light .dashboard-hero{
  background:
    radial-gradient(circle at 92% 18%, rgba(34,197,94,.16), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,246,255,.86));
}
body.theme-light .quote-highlight-card,
body.theme-light .theme-choice-card,
body.theme-light .settings-toggle-card,
body.theme-light .permission-card,
body.theme-light .payment-row.total{
  background:rgba(255,255,255,.72);
  border-color:rgba(15,23,42,.10);
}
body.theme-light .quote-highlight-card strong,
body.theme-light .payment-row.total span,
body.theme-light .payment-row.total b,
body.theme-light .payment-row span,
body.theme-light .payment-row b{
  color:#0f172a;
}
body.theme-light .quote-total-highlight{
  background:linear-gradient(135deg, rgba(34,197,94,.18), rgba(59,130,246,.10));
}
body.theme-light .quote-total-highlight strong{
  color:#047857;
}
body.theme-light .payment-summary-head,
body.theme-light .notification-panel-head{
  background:linear-gradient(135deg, rgba(59,130,246,.10), rgba(34,197,94,.08));
}

body.theme-light .calendar-card,
body.theme-light .config-section,
body.theme-light .finance-annual-card,
body.theme-light .finance-chart-card,
body.theme-light .dashboard-upcoming,
body.theme-light .quote-step,
body.theme-light .quote-live-summary,
body.theme-light .quote-selected-panel,
body.theme-light .notification-admin-panel{
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,250,252,.84));
  border-color:rgba(15,23,42,.12);
  box-shadow:0 14px 34px rgba(15,23,42,.07);
}
body.theme-light .calendar-filter,
body.theme-light .segmented,
body.theme-light .quote-summary-grid > div,
body.theme-light .event-day-item,
body.theme-light .event-day-empty,
body.theme-light .push-status-card,
body.theme-light .push-device-card,
body.theme-light .notification-item,
body.theme-light .permission-card,
body.theme-light .finance-kpi-tile,
body.theme-light .finance-rank-track{
  background:rgba(255,255,255,.82);
  border-color:rgba(15,23,42,.12);
}
body.theme-light .calendar-period-title,
body.theme-light .calendar-day,
body.theme-light .calendar-day-count,
body.theme-light .event-day-item b,
body.theme-light .event-day-header h3,
body.theme-light .notification-panel-head b,
body.theme-light .notification-item b,
body.theme-light .push-device-card b,
body.theme-light .finance-rank-meta b,
body.theme-light .finance-title-row h3,
body.theme-light .finance-chart-head h3,
body.theme-light .quote-summary-grid b,
body.theme-light .quote-step-summary h3,
body.theme-light .quote-modal-header h3{
  color:#0f172a;
}
body.theme-light .calendar-weekdays span,
body.theme-light .calendar-day-label,
body.theme-light .calendar-selected-chip,
body.theme-light .event-day-count-badge,
body.theme-light .notification-panel-head small,
body.theme-light .notification-item small,
body.theme-light .push-device-card small,
body.theme-light .finance-line-labels,
body.theme-light .finance-rank-meta span,
body.theme-light .finance-donut-legend,
body.theme-light .finance-chart-tabs label{
  color:#475569;
}
body.theme-light .calendar-day{
  background:linear-gradient(180deg, #ffffff, #f1f5f9);
  border-color:rgba(15,23,42,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
body.theme-light .calendar-day:hover{
  background:linear-gradient(180deg, #eff6ff, #ffffff);
  border-color:rgba(37,99,235,.32);
}
body.theme-light .calendar-day.selected{
  background:linear-gradient(180deg, rgba(219,234,254,.94), rgba(220,252,231,.72));
  border-color:rgba(37,99,235,.52);
  box-shadow:0 0 0 2px rgba(37,99,235,.10);
}
body.theme-light .calendar-day.muted{
  opacity:.72;
}
body.theme-light .calendar-day-number{
  background:#e2e8f0;
  color:#0f172a;
}
body.theme-light .calendar-event-dot,
body.theme-light .quote-selected-chip,
body.theme-light .calendar-selected-chip{
  background:rgba(37,99,235,.10);
  border-color:rgba(37,99,235,.20);
  color:#1d4ed8;
}
body.theme-light .calendar-more{
  color:#047857;
}
body.theme-light .segmented{
  background:#e2e8f0;
}
body.theme-light .segmented span{
  color:#475569;
}
body.theme-light .segmented input:checked + span{
  color:#ffffff;
  background:linear-gradient(135deg, #2563eb, #059669);
}
body.theme-light .calendar-nav{
  background:rgba(255,255,255,.90);
  border-color:rgba(15,23,42,.14);
  color:#1e3a8a;
  box-shadow:0 12px 28px rgba(15,23,42,.12);
}
body.theme-light .calendar-nav:hover{
  background:#ffffff;
  border-color:rgba(37,99,235,.32);
}
body.theme-light .event-day-backdrop,
body.theme-light .quote-modal-backdrop{
  background:rgba(15,23,42,.38);
}
body.theme-light .event-day-dialog,
body.theme-light .quote-modal-dialog{
  background:linear-gradient(180deg,#ffffff,#f8fafc);
  border-color:rgba(15,23,42,.13);
  box-shadow:0 28px 80px rgba(15,23,42,.22);
}
body.theme-light .event-day-header,
body.theme-light .quote-modal-header,
body.theme-light .quote-modal-tools,
body.theme-light .quote-modal-footer{
  background:rgba(248,250,252,.96);
  border-color:rgba(15,23,42,.10);
}
body.theme-light .event-day-count-badge{
  background:rgba(37,99,235,.08);
  border-color:rgba(37,99,235,.18);
  color:#1d4ed8;
}
body.theme-light .event-day-count-badge.money{
  background:rgba(245,158,11,.12);
  border-color:rgba(180,83,9,.18);
  color:#92400e;
}
body.theme-light .event-day-item-action:hover,
body.theme-light .event-day-item-action:focus-visible{
  background:#eff6ff;
  border-color:rgba(37,99,235,.30);
  box-shadow:0 14px 28px rgba(37,99,235,.10);
}
body.theme-light .quote-product-card{
  background:#ffffff;
  border-color:rgba(15,23,42,.12);
}
body.theme-light .quote-product-card:hover{
  border-color:rgba(37,99,235,.30);
}
body.theme-light .quote-product-card.is-selected{
  background:#ecfdf5;
  border-color:rgba(5,150,105,.34);
}
body.theme-light .quote-product-thumb{
  background:#e2e8f0;
  border-color:rgba(15,23,42,.10);
}
body.theme-light .finance-icon,
body.theme-light .config-section-icon,
body.theme-light .config-hero-icon,
body.theme-light .notification-item-icon,
body.theme-light .push-device-icon,
body.theme-light .settings-toggle-card .toggle-icon{
  background:rgba(37,99,235,.09);
  border-color:rgba(37,99,235,.16);
  color:#1d4ed8;
}
body.theme-light .settings-toggle-card input:checked ~ .toggle-icon{
  background:rgba(5,150,105,.11);
  border-color:rgba(5,150,105,.22);
  color:#047857;
}
body.theme-light .badge.Agendado,
body.theme-light .badge.Instalado{
  background:#dbeafe;
  border-color:#93c5fd;
  color:#1e3a8a;
}
body.theme-light .badge.Pagado{
  background:#dcfce7;
  border-color:#86efac;
  color:#166534;
}
body.theme-light .badge.Completado{
  background:#fef3c7;
  border-color:#facc15;
  color:#854d0e;
}
body.theme-light .badge.Cancelado{
  background:#fee2e2;
  border-color:#fca5a5;
  color:#991b1b;
}
body.theme-light .hr{
  background:rgba(15,23,42,.12);
}
.customer-lookup-results{
  margin-top:10px;
  display:grid;
  gap:8px;
  border:1px solid rgba(147,197,253,.18);
  border-radius:14px;
  padding:10px;
  background:rgba(15,23,42,.28);
}
.customer-lookup-title{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.customer-lookup-item{
  width:100%;
  border:1px solid rgba(147,197,253,.24);
  background:rgba(59,130,246,.10);
  color:var(--text);
  border-radius:12px;
  padding:10px 12px;
  text-align:left;
  cursor:pointer;
  display:grid;
  gap:3px;
  font:inherit;
}
.customer-lookup-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.customer-lookup-main i{
  font-style:normal;
  font-size:12px;
  font-weight:800;
  color:#bfdbfe;
  background:rgba(59,130,246,.22);
  border:1px solid rgba(147,197,253,.20);
  border-radius:999px;
  padding:4px 8px;
  white-space:nowrap;
}
.customer-lookup-item:hover,
.customer-lookup-item:focus-visible{
  border-color:rgba(96,165,250,.55);
  background:rgba(59,130,246,.18);
  outline:none;
}
.customer-lookup-item span{
  color:var(--muted);
  font-size:12px;
}
.customer-lookup-item small{
  color:var(--text);
  font-size:12px;
  opacity:.9;
}
.customer-admin-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;
}
.customer-admin-card{
  display:grid;
  gap:12px;
}
.customer-admin-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.customer-admin-head h3{
  margin:4px 0 0;
}
.customer-event-pill{
  border:1px solid rgba(34,197,94,.28);
  background:rgba(34,197,94,.12);
  color:#bbf7d0;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.customer-admin-section{
  border:1px solid rgba(148,163,184,.16);
  border-radius:12px;
  padding:10px;
  background:rgba(255,255,255,.03);
  display:grid;
  gap:4px;
}
.customer-admin-section b,
.customer-admin-events b{
  font-size:12px;
  color:#bfdbfe;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.customer-admin-section span,
.customer-admin-events span{
  color:var(--muted);
  font-size:12px;
}
.customer-admin-events{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  border-top:1px solid rgba(148,163,184,.14);
  padding-top:12px;
}
.customer-admin-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.customer-list-card{
  display:grid;
  gap:8px;
}
.customer-list-head,
.customer-list-row{
  display:grid;
  grid-template-columns:1.2fr 1fr 1.45fr .75fr auto;
  gap:12px;
  align-items:center;
}
.customer-list-head{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:0 12px 8px;
}
.customer-list-row{
  width:100%;
  border:1px solid rgba(148,163,184,.14);
  background:rgba(255,255,255,.035);
  color:var(--text);
  border-radius:14px;
  padding:12px;
  text-align:left;
  cursor:pointer;
  font:inherit;
  transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.customer-list-row:hover,
.customer-list-row:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(96,165,250,.42);
  background:rgba(59,130,246,.11);
  box-shadow:0 18px 42px rgba(15,23,42,.22);
  outline:none;
}
.customer-list-row b{
  display:block;
}
.customer-list-row small{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:3px;
}
.customer-list-events{
  justify-self:end;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.customer-list-events i{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:28px;
  border-radius:999px;
  margin-right:6px;
  font-style:normal;
  color:#bbf7d0;
  background:rgba(34,197,94,.14);
  border:1px solid rgba(34,197,94,.25);
}
.customer-list-actions{
  justify-self:end;
}
.customer-list-actions .btn{
  white-space:nowrap;
}
.customer-pagination{
  margin-top:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.customer-pagination-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.customer-modal{
  position:fixed;
  inset:0;
  z-index:90;
  display:none;
}
.customer-modal.is-open{
  display:block;
}
.customer-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,6,23,.72);
  backdrop-filter:blur(7px);
}
.customer-modal-dialog{
  position:relative;
  width:min(760px,calc(100vw - 28px));
  max-height:calc(100vh - 42px);
  margin:22px auto;
  overflow:auto;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:#111827;
  box-shadow:0 32px 90px rgba(0,0,0,.42);
}
.customer-modal-header{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:16px;
  border-bottom:1px solid rgba(148,163,184,.16);
  background:rgba(17,24,39,.96);
}
.customer-modal-header h3{
  margin:4px 0;
}
.customer-modal-header p{
  margin:0;
  color:var(--muted);
}
.customer-modal-body{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:12px;
  padding:16px;
}
.customer-modal-tools{
  display:flex;
  gap:10px;
  align-items:end;
  flex-wrap:wrap;
  padding:0 16px 16px;
}
.customer-modal-tools label{
  display:grid;
  gap:5px;
  min-width:150px;
  margin:0;
}
.customer-modal-tools .btn{
  min-height:42px;
}
.customer-modal-box{
  border:1px solid rgba(148,163,184,.16);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  padding:12px;
  display:grid;
  gap:5px;
}
.customer-modal-box b{
  color:#bfdbfe;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.customer-modal-box span{
  color:var(--muted);
  font-size:12px;
}
.customer-event-list{
  display:grid;
  gap:10px;
  padding:0 16px 16px;
}
.customer-event-item,
.customer-event-empty{
  border:1px solid rgba(148,163,184,.16);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  padding:12px;
}
.customer-event-item{
  color:var(--text);
  text-decoration:none;
  display:grid;
  grid-template-columns:.75fr 1.4fr .65fr;
  gap:12px;
  align-items:center;
  transition:transform .16s ease, border-color .16s ease, background .16s ease;
}
.customer-event-item:hover,
.customer-event-item:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(96,165,250,.42);
  background:rgba(59,130,246,.11);
  outline:none;
}
.customer-event-item b,
.customer-event-item strong{
  display:block;
}
.customer-event-item small{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:3px;
}
.customer-event-item i{
  display:inline-flex;
  width:max-content;
  border:1px solid rgba(147,197,253,.24);
  border-radius:999px;
  padding:4px 8px;
  font-size:12px;
  font-style:normal;
  color:#bfdbfe;
  margin-bottom:5px;
}
.customer-event-empty{
  color:var(--muted);
}
@media (max-width:760px){
  .customer-list-head{display:none}
  .customer-list-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .customer-list-events,
  .customer-list-actions{justify-self:start}
  .customer-modal-body,
  .customer-event-item{
    grid-template-columns:1fr;
  }
  .customer-modal-tools label,
  .customer-modal-tools .btn{
    width:100%;
  }
}
body.theme-light .customer-lookup-item{
  background:#eff6ff;
  border-color:rgba(37,99,235,.18);
  color:#0f172a;
}
body.theme-light .customer-lookup-item:hover,
body.theme-light .customer-lookup-item:focus-visible{
  background:#dbeafe;
  border-color:rgba(37,99,235,.35);
}
body.theme-light .customer-lookup-results{
  background:#ffffff;
  border-color:rgba(37,99,235,.14);
}
body.theme-light .customer-lookup-main i{
  background:#dbeafe;
  border-color:rgba(37,99,235,.18);
  color:#1d4ed8;
}
body.theme-light .customer-lookup-item small{
  color:#334155;
}
body.theme-light .customer-admin-section{
  background:#ffffff;
  border-color:rgba(15,23,42,.10);
}
body.theme-light .customer-admin-section b,
body.theme-light .customer-admin-events b{
  color:#1d4ed8;
}
body.theme-light .customer-event-pill{
  background:#dcfce7;
  border-color:#86efac;
  color:#166534;
}
body.theme-light .customer-list-row,
body.theme-light .customer-modal-box,
body.theme-light .customer-event-item,
body.theme-light .customer-event-empty{
  background:#ffffff;
  border-color:rgba(15,23,42,.10);
}
body.theme-light .customer-list-row:hover,
body.theme-light .customer-list-row:focus-visible,
body.theme-light .customer-event-item:hover,
body.theme-light .customer-event-item:focus-visible{
  background:#eff6ff;
  border-color:rgba(37,99,235,.28);
  box-shadow:0 18px 42px rgba(15,23,42,.10);
}
body.theme-light .customer-list-events i{
  background:#dcfce7;
  border-color:#86efac;
  color:#166534;
}
body.theme-light .customer-modal-backdrop{
  background:rgba(15,23,42,.45);
}
body.theme-light .customer-modal-dialog,
body.theme-light .customer-modal-header{
  background:#f8fafc;
  border-color:rgba(15,23,42,.12);
}
body.theme-light .customer-modal-box b{
  color:#1d4ed8;
}
body.theme-light .customer-event-item i{
  background:#dbeafe;
  border-color:rgba(37,99,235,.20);
  color:#1d4ed8;
}
