:root{
  --background:0 0% 100%;
  --foreground:222 25% 12%;
  --surface:0 0% 100%;
  --surface-subtle:220 20% 98%;
  --surface-muted:220 16% 96%;
  --border:220 14% 91%;
  --border-strong:220 12% 84%;
  --muted:220 10% 46%;
  --primary:222 80% 52%;
  --primary-soft:222 90% 96%;
  --primary-foreground:0 0% 100%;
  --success:145 60% 38%;
  --success-bg:145 55% 94%;
  --warning:35 92% 46%;
  --warning-bg:42 100% 94%;
  --danger:0 70% 52%;
  --danger-bg:0 85% 96%;
  --info:210 90% 50%;
  --info-bg:210 95% 95%;
  --radius-sm:10px; --radius-md:14px; --radius-lg:20px;
  --sidebar-w:256px;
  --shadow-sm:0 1px 2px hsl(220 20% 20% / .05);
  --shadow-md:0 8px 28px hsl(222 40% 30% / .10);
  --font:'Inter',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);background:hsl(var(--surface-subtle));color:hsl(var(--foreground));font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{letter-spacing:-.02em;line-height:1.15;margin:0}
a{color:hsl(var(--primary));text-decoration:none}
button{font-family:inherit}
.num{font-variant-numeric:tabular-nums}

/* ---------- LOGIN ---------- */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}
.login-left{padding:56px 56px 40px;display:flex;flex-direction:column;max-width:640px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px}
.brand-mark{width:34px;height:34px;border-radius:10px;background:hsl(var(--primary));color:#fff;display:grid;place-items:center;font-weight:800}
.brand small{display:block;font-weight:500;color:hsl(var(--muted));font-size:12px}
.login-left h1{font-size:clamp(28px,3.4vw,40px);margin:36px 0 10px}
.login-left .sub{color:hsl(var(--muted));margin:0 0 26px}
.role-grid{display:grid;gap:12px;margin:8px 0 20px}
.role-card{text-align:left;display:flex;gap:14px;align-items:flex-start;border:1.5px solid hsl(var(--border));border-radius:var(--radius-md);padding:16px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.role-card:hover{border-color:hsl(var(--primary)/.5);box-shadow:var(--shadow-sm)}
.role-card.selected{border-color:hsl(var(--primary));background:hsl(var(--primary-soft));box-shadow:var(--shadow-sm)}
.role-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:hsl(var(--surface-muted));font-size:20px;flex-shrink:0}
.role-card.selected .role-icon{background:#fff}
.role-card b{display:block;font-size:15px}
.role-card span.desc{display:block;color:hsl(var(--muted));font-size:13px;margin-top:2px}
.role-card .perms{display:block;font-size:12px;color:hsl(var(--primary));margin-top:6px;font-weight:600}
.login-form{display:grid;gap:12px;margin-top:6px}
.field{display:grid;gap:6px}
.field label{font-size:13px;font-weight:600}
.field input,.field select,.field textarea{height:44px;border:1px solid hsl(var(--border-strong));border-radius:var(--radius-sm);padding:0 14px;font-size:14px;font-family:inherit;background:#fff;width:100%}
.field textarea{height:auto;padding:12px 14px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid hsl(var(--primary)/.35);border-color:hsl(var(--primary))}
.field .hint{font-size:12px;color:hsl(var(--muted))}
.field .err{font-size:12px;color:hsl(var(--danger))}
.login-actions{display:flex;gap:10px;align-items:center;margin-top:6px}
.mock-note{margin-top:18px;background:hsl(var(--warning-bg));border:1px solid #ecd08d;border-radius:10px;padding:12px 14px;font-size:13px;color:#6b4e00}
.login-right{background:linear-gradient(135deg,#f3f7ff,#eaf1ff 55%,#f7f9ff);border-left:1px solid hsl(var(--border));padding:48px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.mock-card{background:#fff;border:1px solid hsl(var(--border));border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-md)}
.mock-card .bal{font-size:32px;font-weight:800}
.kpi-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:14px}
.kpi{background:hsl(var(--surface-subtle));border-radius:10px;padding:10px;text-align:center}
.kpi strong{display:block;font-size:18px}
.kpi small{color:hsl(var(--muted));font-size:11px}
.openpay-note{font-size:12px;color:hsl(var(--muted));background:#fff;border:1px dashed hsl(var(--border-strong));border-radius:10px;padding:10px 12px}

/* ---------- BUTTONS / BADGES ---------- */
.btn{height:42px;padding:0 18px;border-radius:10px;font-weight:700;font-size:14px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:filter .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:hsl(var(--primary));color:#fff}
.btn-primary:hover{filter:brightness(.96)}
.btn-secondary{background:#fff;border-color:hsl(var(--border-strong));color:hsl(var(--foreground))}
.btn-secondary:hover{background:hsl(var(--surface-subtle))}
.btn-ghost{background:transparent;color:hsl(var(--foreground))}
.btn-danger{background:hsl(var(--danger));color:#fff}
.btn-danger-soft{background:hsl(var(--danger-bg));color:hsl(var(--danger));border-color:#f3c5c0}
.btn-sm{height:34px;padding:0 12px;font-size:13px;border-radius:8px}
.btn-block{width:100%}
.btn:disabled{opacity:.6;cursor:not-allowed}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.chip::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.chip-paid,.chip-activo,.chip-al-corriente,.chip-resuelto,.chip-completado{background:hsl(var(--success-bg));color:hsl(var(--success))}
.chip-pending,.chip-pendiente,.chip-en-proceso,.chip-procesando,.chip-abierto{background:hsl(var(--warning-bg));color:#8a5b00}
.chip-failed,.chip-fallido,.chip-vencido,.chip-vencida{background:hsl(var(--danger-bg));color:hsl(var(--danger))}
.chip-info,.chip-processing,.chip-en-revision{background:hsl(var(--info-bg));color:hsl(var(--info))}
.chip-neutral,.chip-borrador,.chip-inactivo,.chip-programada{background:hsl(var(--surface-muted));color:#46525e}
.link{background:none;border:none;color:hsl(var(--primary));font-weight:700;cursor:pointer;font-size:13px;padding:0}

/* ---------- APP SHELL ---------- */
.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}
.sidebar{background:#fff;border-right:1px solid hsl(var(--border));padding:18px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow:auto}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px;font-weight:800}
.side-section{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted));padding:14px 10px 6px}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:transparent;padding:9px 10px;border-radius:10px;font-size:14px;font-weight:500;color:#33414f;cursor:pointer}
.nav-item:hover{background:hsl(var(--surface-subtle))}
.nav-item.active{background:hsl(var(--primary-soft));color:hsl(var(--primary));font-weight:700}
.nav-item .ico{width:22px;text-align:center}
.nav-item .count{margin-left:auto;background:hsl(var(--danger));color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:1px 7px}
.side-user{margin-top:auto;border-top:1px solid hsl(var(--border));padding-top:12px;display:flex;gap:10px;align-items:center}
.avatar{width:36px;height:36px;border-radius:50%;background:hsl(var(--primary-soft));color:hsl(var(--primary));display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}
.side-user b{display:block;font-size:13px}
.side-user small{display:block;font-size:12px;color:hsl(var(--muted))}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border));padding:14px 28px;display:flex;align-items:center;gap:14px}
.topbar h2{font-size:20px}
.topbar p{margin:2px 0 0;color:hsl(var(--muted));font-size:13px}
.topbar-actions{margin-left:auto;display:flex;gap:10px;align-items:center}
.env-pill{font-size:11px;font-weight:800;background:#fff7df;border:1px solid #ecd08d;color:#8a5b00;border-radius:999px;padding:4px 10px}
.role-pill{font-size:11px;font-weight:800;background:hsl(var(--primary-soft));color:hsl(var(--primary));border-radius:999px;padding:4px 10px}
.content{padding:26px 28px 90px;max-width:1240px;width:100%;margin:0 auto}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}
.page-head h1{font-size:28px}
.page-head p{color:hsl(var(--muted));margin:6px 0 0;font-size:14px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid hsl(var(--border));border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-sm)}
.card h3{font-size:16px;margin-bottom:4px}
.card .muted{color:hsl(var(--muted));font-size:13px}
.stat .label{font-size:13px;color:hsl(var(--muted))}
.stat .value{font-size:30px;font-weight:800;letter-spacing:-.02em}
.stat .delta{font-size:12px;margin-top:4px;font-weight:700}
.delta.up{color:hsl(var(--success))} .delta.down{color:hsl(var(--danger))} .delta.flat{color:hsl(var(--muted))}

/* tables */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.search{height:40px;border:1px solid hsl(var(--border-strong));border-radius:10px;padding:0 14px;min-width:240px;font-size:14px;font-family:inherit}
.select{height:40px;border:1px solid hsl(var(--border-strong));border-radius:10px;padding:0 12px;font-size:13px;background:#fff;font-family:inherit}
.table-wrap{background:#fff;border:1px solid hsl(var(--border));border-radius:var(--radius-md);overflow:auto}
table{border-collapse:collapse;width:100%;min-width:760px}
th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--muted));text-align:left;padding:12px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--surface-subtle));white-space:nowrap}
td{padding:13px 14px;border-bottom:1px solid hsl(var(--border));font-size:14px;vertical-align:middle}
tr:last-child td{border-bottom:none}
td.money,th.money{text-align:right;font-variant-numeric:tabular-nums}
.row-user{display:flex;gap:10px;align-items:center}
.row-user b{display:block;font-size:14px} .row-user small{color:hsl(var(--muted));font-size:12px}

/* building map */
.bldg{display:grid;gap:8px}
.floor{display:grid;grid-template-columns:52px repeat(4,1fr);gap:8px;align-items:stretch}
.floor .fl{font-size:12px;font-weight:800;color:hsl(var(--muted));display:flex;align-items:center}
.unit{border:1.5px solid hsl(var(--success)/.4);background:hsl(var(--success-bg));border-radius:10px;min-height:64px;padding:8px;font-size:13px;font-weight:700;cursor:pointer;color:#14532d}
.unit small{display:block;font-weight:600;font-size:11px;opacity:.8}
.unit.pending{border-color:#e3c26a;background:hsl(var(--warning-bg));color:#7a5200}
.unit.bad{border-color:#ef9b93;background:hsl(var(--danger-bg));color:hsl(var(--danger))}
.legend{display:flex;gap:14px;font-size:12px;color:hsl(var(--muted));margin-bottom:12px;flex-wrap:wrap}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px}

/* chat */
.chat-layout{display:grid;grid-template-columns:300px 1fr;background:#fff;border:1px solid hsl(var(--border));border-radius:var(--radius-md);overflow:hidden;min-height:560px}
.chat-list{border-right:1px solid hsl(var(--border));display:flex;flex-direction:column}
.chat-item{padding:14px;border-bottom:1px solid hsl(var(--border));cursor:pointer;text-align:left;background:#fff;border-left:none;border-right:none;border-top:none;width:100%}
.chat-item.active{background:hsl(var(--primary-soft))}
.chat-item b{font-size:14px} .chat-item p{font-size:12px;color:hsl(var(--muted));margin:4px 0 0}
.chat-main{display:flex;flex-direction:column;min-width:0}
.chat-head{padding:14px 18px;border-bottom:1px solid hsl(var(--border))}
.chat-body{padding:18px;display:flex;flex-direction:column;gap:10px;flex:1;overflow:auto;background:hsl(var(--surface-subtle))}
.bubble{max-width:68%;padding:12px 14px;border-radius:16px;font-size:14px}
.bubble.other{background:#fff;border:1px solid hsl(var(--border));align-self:flex-start;border-bottom-left-radius:6px}
.bubble.own{background:hsl(var(--primary-soft));align-self:flex-end;border-bottom-right-radius:6px}
.bubble small{display:block;font-size:11px;color:hsl(var(--muted));margin-top:4px}
.bubble.sys{align-self:center;background:#fff;border:1px dashed hsl(var(--border-strong));color:hsl(var(--muted));font-size:12px}
.chat-input{display:flex;gap:10px;padding:14px;border-top:1px solid hsl(var(--border));background:#fff}
.chat-input input{flex:1;height:44px;border:1px solid hsl(var(--border-strong));border-radius:10px;padding:0 14px;font-size:14px;font-family:inherit}

/* modal / drawer / toast */
.modal-back{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:50;padding:16px}
.modal{background:#fff;border-radius:var(--radius-lg);width:min(560px,100%);max-height:90vh;overflow:auto;padding:26px;box-shadow:var(--shadow-md)}
.modal.wide{width:min(720px,100%)}
.modal h3{font-size:19px} .modal .msub{color:hsl(var(--muted));font-size:13px;margin:6px 0 16px}
.amount-big{font-size:36px;font-weight:800;letter-spacing:-.02em}
.drawer-back{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:50}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:#fff;z-index:51;padding:24px;overflow:auto;border-left:1px solid hsl(var(--border))}
.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid hsl(var(--border));font-size:13px}
.kv span:first-child{color:hsl(var(--muted))}
#toast-root{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:99}
.toast{background:#0f172a;color:#fff;border-radius:10px;padding:12px 16px;font-size:13px;box-shadow:var(--shadow-md);max-width:340px}
.pay-steps{display:flex;gap:6px;margin:14px 0}
.pay-steps i{flex:1;height:4px;border-radius:99px;background:hsl(var(--border))}
.pay-steps i.on{background:hsl(var(--primary))}
.card-option{border:1.5px solid hsl(var(--border));border-radius:12px;padding:14px;display:flex;gap:12px;align-items:center;cursor:pointer;width:100%;background:#fff;text-align:left;margin-bottom:10px}
.card-option.selected{border-color:hsl(var(--primary));background:hsl(var(--primary-soft))}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:hsl(var(--surface-muted));border-radius:6px;padding:2px 6px}
.receipt{border:1px solid hsl(var(--border));border-radius:12px;padding:18px;background:hsl(var(--surface-subtle))}
.announce{border-left:4px solid hsl(var(--primary));background:#fff;border-top:1px solid hsl(var(--border));border-right:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border));border-radius:0 12px 12px 0;padding:16px 18px}
.announce.urgent{border-left-color:hsl(var(--danger))}
.ticket-prio{font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px}
.prio-alta{background:hsl(var(--danger-bg));color:hsl(var(--danger))}
.prio-media{background:hsl(var(--warning-bg));color:#8a5b00}
.prio-baja{background:hsl(var(--surface-muted));color:#46525e}
.bars{display:flex;align-items:flex-end;gap:8px;height:120px;margin-top:10px}
.bars div{flex:1;border-radius:6px 6px 0 0;background:hsl(var(--primary)/.85);min-height:8px;position:relative}
.bars div.alt{background:#c9d8f5}
.progress{height:8px;background:hsl(var(--surface-muted));border-radius:99px;overflow:hidden}
.progress i{display:block;height:100%;background:hsl(var(--primary));border-radius:99px}
.empty{text-align:center;padding:36px 20px;color:hsl(var(--muted))}
.mobile-nav{display:none}
.hamb{display:none}
@media(max-width:1020px){
  .g4{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(2,1fr)}
  .login-wrap{grid-template-columns:1fr} .login-right{display:none}
  .login-left{max-width:none;padding:32px 20px}
}
@media(max-width:820px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;z-index:40;left:0;top:0;bottom:0;width:264px;transform:translateX(-105%);transition:transform .2s}
  .sidebar.open{transform:none;box-shadow:var(--shadow-md)}
  .hamb{display:inline-flex}
  .content{padding:18px 16px 110px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .floor{grid-template-columns:40px repeat(2,1fr)}
  .chat-layout{grid-template-columns:1fr}
  .chat-list{display:none}
  .chat-layout.show-list .chat-list{display:flex}
  .chat-layout.show-list .chat-main{display:none}
  table{min-width:620px}
  .mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid hsl(var(--border));z-index:30;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .mobile-nav button{border:none;background:none;font-size:11px;font-weight:600;color:hsl(var(--muted));padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:2px}
  .mobile-nav button.active{color:hsl(var(--primary))}
  .topbar{padding:12px 16px}
}
:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}

/* ---------- EXT: subpáginas, selectores, herramientas ---------- */
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;background:#fff;border:1px solid hsl(var(--border));border-radius:12px;padding:6px;width:fit-content;max-width:100%}
.subtabs button{border:none;background:transparent;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;color:hsl(var(--muted));cursor:pointer}
.subtabs button.active{background:hsl(var(--primary-soft));color:hsl(var(--primary));font-weight:800}
#toolsbar:empty{display:none}
.toolsbar{background:#fff;border-bottom:1px solid hsl(var(--border));padding:12px 28px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolsbar .lbl{font-size:12px;font-weight:800;color:hsl(var(--muted));text-transform:uppercase;letter-spacing:.06em;margin-right:4px}
.tool-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid hsl(var(--border-strong));background:#fff;border-radius:9px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer}
.tool-btn:hover{background:hsl(var(--surface-subtle));border-color:hsl(var(--primary)/.5)}
.bulkbar{position:sticky;top:64px;z-index:15;background:#0f172a;color:#fff;border-radius:12px;padding:10px 16px;display:flex;gap:10px;align-items:center;margin-bottom:12px;font-size:13px}
.bulkbar button{border:1px solid #ffffff44;background:#ffffff18;color:#fff;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
.kcol{background:hsl(var(--surface-subtle));border:1px solid hsl(var(--border));border-radius:12px;padding:10px;min-height:200px}
.kcol.dragover{outline:2px dashed hsl(var(--primary));background:hsl(var(--primary-soft))}
.kcol h4{margin:2px 4px 10px;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.kcol h4 span.n{background:#fff;border:1px solid hsl(var(--border));border-radius:99px;padding:0 8px;font-size:11px}
.kcard{background:#fff;border:1px solid hsl(var(--border));border-radius:10px;padding:12px;margin-bottom:8px;cursor:grab;font-size:13px}
.kcard:active{cursor:grabbing}
.kcard.dragging{opacity:.5}
.kcard b{font-size:13px}
.mapfilters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.fbtn{border:1px solid hsl(var(--border-strong));background:#fff;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;color:hsl(var(--muted))}
.fbtn.active{background:#0f172a;color:#fff;border-color:#0f172a}
.unitmap{display:grid;gap:8px}
.umap-card{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ucell{border:1.5px solid;border-radius:12px;padding:10px;cursor:pointer;background:#fff;text-align:left;min-height:86px}
.ucell small{display:block;font-size:11px;opacity:.85}
.ucell .who{font-size:12px;font-weight:700;margin-top:2px}
.ucell.ok{border-color:hsl(var(--success)/.45);background:hsl(var(--success-bg))}
.ucell.mid{border-color:#e3c26a;background:hsl(var(--warning-bg))}
.ucell.bad{border-color:#ef9b93;background:hsl(var(--danger-bg))}
.ucell.sel{outline:3px solid hsl(var(--primary)/.5)}
.statemap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sm-card{border-radius:14px;padding:16px;border:1px solid hsl(var(--border));background:#fff;cursor:pointer}
.sm-card.ok{border-top:4px solid hsl(var(--success))} .sm-card.mid{border-top:4px solid #d9a400} .sm-card.bad{border-top:4px solid hsl(var(--danger))}
.palette-back{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:60;display:grid;justify-items:center;align-items:start;padding-top:12vh}
.palette{background:#fff;border-radius:16px;width:min(560px,calc(100% - 32px));box-shadow:var(--shadow-md);overflow:hidden}
.palette input{width:100%;height:52px;border:none;border-bottom:1px solid hsl(var(--border));padding:0 18px;font-size:15px;font-family:inherit}
.palette input:focus{outline:none}
.palette .opt{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:none;background:#fff;padding:11px 18px;font-size:14px;cursor:pointer}
.palette .opt:hover{background:hsl(var(--surface-subtle))}
.wizard-steps{display:flex;gap:6px;margin:12px 0}
.wizard-steps i{flex:1;height:4px;border-radius:99px;background:hsl(var(--border))}
.wizard-steps i.on{background:hsl(var(--primary))}
.calc{font-size:13px}
.calc input{height:40px;border:1px solid hsl(var(--border-strong));border-radius:8px;padding:0 10px;width:110px;font-family:inherit}
@media(max-width:820px){.kanban,.statemap,.umap-card{grid-template-columns:1fr}.toolsbar{padding:10px 16px}.topbar-actions .select{display:none}}
