/* ViaMercato property console. Tokens match the owner calendar (assets/calendar-admin.css). */
:root{
  --radius:.75rem;
  --background:#ffffff; --foreground:#363644; --heading:#1e1e2a; --card:#ffffff;
  --primary:#5266eb; --primary-foreground:#ffffff; --primary-hover:#465bd1;
  --secondary:rgb(112 115 147 / .1); --muted:#f4f5f9; --muted-foreground:#70707d; --accent:rgb(112 115 147 / .1);
  --surface-subtle:#fbfcfd; --destructive:#b0175f; --border:rgb(112 115 147 / .16); --input:rgb(112 115 147 / .26); --ring:#a7b6f8;
  --sidebar:#fbfcfd; --sidebar-foreground:#535461; --sidebar-border:rgb(112 115 147 / .16);
  --success-bg:#e8f6ee; --success:#188554; --warning-bg:#fff4e8; --warning:#a44200;
  /* Extended for the console */
  --primary-soft:color-mix(in srgb,var(--primary) 10%,transparent);
  --danger-bg:color-mix(in srgb,var(--destructive) 10%,transparent);
  --info-bg:color-mix(in srgb,var(--primary) 9%,transparent);
  --ch-airbnb:#d9475d; --ch-booking:#0b8a8f; --ch-direct:var(--primary); --ch-manual:#7d7f93; --ch-pending:#c25a00;
  --shadow-sm:0 1px 2px rgb(30 30 42 / .06); --shadow:0 1px 2px rgb(30 30 42 / .05),0 4px 16px rgb(30 30 42 / .06); --shadow-lg:0 12px 40px rgb(30 30 42 / .16),0 2px 6px rgb(30 30 42 / .06);
  --sidebar-w:15.5rem; --topbar-h:3.75rem;
  color-scheme:light;
  font-family:Geist,ui-sans-serif,system-ui,sans-serif; font-size:15px; line-height:1.5; letter-spacing:-.006em;
  color:var(--foreground); background:var(--background);
}
@media (prefers-color-scheme:dark){
  :root{
    --background:#151620; --foreground:#e7e7ed; --heading:#ffffff; --card:#1d1e29;
    --primary:#8998f5; --primary-foreground:#11121b; --primary-hover:#a7b4f8;
    --secondary:rgb(255 255 255 / .08); --muted:#262733; --muted-foreground:#a9a9b5; --accent:rgb(255 255 255 / .08);
    --surface-subtle:#191a24; --destructive:#e36a9f; --border:rgb(255 255 255 / .1); --input:rgb(255 255 255 / .16); --ring:#8998f5;
    --sidebar:#191a24; --sidebar-foreground:#c5c5cf; --sidebar-border:rgb(255 255 255 / .1);
    --success-bg:#1c3328; --success:#55bd8c; --warning-bg:#3a2a1c; --warning:#e19a58;
    --ch-airbnb:#f0748a; --ch-booking:#3ccbc4; --ch-manual:#9a9cb0; --ch-pending:#e8964c;
    --shadow:0 1px 2px rgb(0 0 0 / .3),0 4px 16px rgb(0 0 0 / .25); --shadow-lg:0 12px 40px rgb(0 0 0 / .5);
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100svh;background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{color:var(--heading);font-weight:500;letter-spacing:-.02em;margin:0}
h1{font-size:1.25rem;line-height:1.25} h2{font-size:1.0625rem;line-height:1.3} h3{font-size:.9375rem;line-height:1.35} h4{font-size:.8125rem;font-weight:500}
p{margin:0} a{color:var(--primary);text-underline-offset:3px}
code,kbd,.mono{font-family:"Geist Mono",ui-monospace,monospace}
code{font-size:.8em;background:var(--muted);padding:.1em .35em;border-radius:.35rem}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted-foreground)} .small{font-size:.8125rem} .tiny{font-size:.75rem} .strong{font-weight:500;color:var(--heading)}
.right{text-align:right} .center{text-align:center} .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .nowrap{white-space:nowrap}
.pre{white-space:pre-wrap;overflow-wrap:anywhere}
svg.i{width:1rem;height:1rem;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* ---------- buttons & controls ---------- */
button,input,select,textarea{font:inherit;color:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:2rem;padding:0 .75rem;border:1px solid var(--input);border-radius:calc(var(--radius) - 2px);background:var(--surface-subtle);color:var(--foreground);font-size:.8125rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,box-shadow .15s;text-decoration:none}
.btn:hover{background:var(--accent)}
.btn.primary{background:var(--primary);border-color:transparent;color:var(--primary-foreground);box-shadow:0 1px 2px rgb(30 30 42 / .08)}
.btn.primary:hover{background:var(--primary-hover)}
.btn.danger{background:var(--destructive);border-color:transparent;color:#fff}
.btn.danger:hover{filter:brightness(.94)}
.btn.danger-ghost{color:var(--destructive);border-color:color-mix(in srgb,var(--destructive) 35%,transparent);background:transparent}
.btn.danger-ghost:hover{background:var(--danger-bg)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--accent)}
.btn.sm{height:1.75rem;padding:0 .55rem;font-size:.75rem}
.btn.lg{height:2.5rem;padding:0 1rem;font-size:.875rem}
.btn.icon{width:2rem;padding:0}
.btn.sm.icon{width:1.75rem}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.loading{opacity:.7;cursor:progress}
:is(.btn,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 50%,transparent);border-color:var(--ring)}
input,select,textarea{height:2rem;width:100%;min-width:0;border:1px solid var(--input);border-radius:calc(var(--radius) - 2px);background:var(--surface-subtle);padding:.25rem .625rem;font-size:.8125rem;transition:border-color .15s}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--input) 60%,var(--muted-foreground))}
input:focus,select:focus,textarea:focus{background:var(--background)}
textarea{height:auto;min-height:5rem;padding:.5rem .625rem;line-height:1.5;resize:vertical}
input[type=checkbox],input[type=radio]{width:1rem;height:1rem;padding:0;accent-color:var(--primary);flex:none}
input[type=color]{padding:.125rem;width:2.5rem}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2370707d' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .55rem center;padding-right:1.75rem}
label{display:block;font-size:.8125rem;font-weight:500;color:var(--heading);margin:0 0 .3rem}
.field{display:flex;flex-direction:column;min-width:0}
.field>label{margin-bottom:.3rem}
.field .hint,.hint{font-size:.75rem;color:var(--muted-foreground);margin-top:.3rem;line-height:1.4}
.form-error{color:var(--destructive);font-size:.8125rem;margin-top:.5rem}
.form-error:empty{display:none}
.check{display:flex;align-items:center;gap:.5rem;font-weight:400;font-size:.8125rem;color:var(--foreground);margin:0;cursor:pointer}
.affix{position:relative;display:flex;align-items:center}
.affix>span{position:absolute;left:.6rem;color:var(--muted-foreground);font-size:.8125rem;pointer-events:none}
.affix>span.after{left:auto;right:.6rem}
.affix>input{padding-left:1.45rem}
.affix>input.after{padding-left:.625rem;padding-right:2.2rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.875rem 1rem}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid .span-2{grid-column:span 2} .form-grid .span-all{grid-column:1/-1}
.switch{position:relative;display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.8125rem;font-weight:400;color:var(--foreground);margin:0}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch .track{position:relative;width:2rem;height:1.15rem;border-radius:999px;background:var(--input);transition:background .15s;flex:none}
.switch .track::after{content:"";position:absolute;top:2px;left:2px;width:calc(1.15rem - 4px);height:calc(1.15rem - 4px);border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}
.switch input:checked+.track{background:var(--primary)}
.switch input:checked+.track::after{transform:translateX(.85rem)}
.switch input:focus-visible+.track{box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 50%,transparent)}
.seg{display:inline-flex;padding:2px;border-radius:calc(var(--radius) - 2px);background:var(--muted);gap:2px;flex-wrap:wrap}
.seg button{border:0;background:transparent;height:1.75rem;padding:0 .7rem;border-radius:calc(var(--radius) - 4px);font-size:.75rem;font-weight:500;color:var(--muted-foreground);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}
.seg button:hover{color:var(--heading)}
.seg button[aria-pressed=true]{background:var(--card);color:var(--heading);box-shadow:var(--shadow-sm)}
.chips{display:flex;flex-wrap:wrap;gap:.375rem}
.chip{display:inline-flex;align-items:center;gap:.35rem;height:1.75rem;padding:0 .65rem;border:1px solid var(--border);border-radius:999px;background:var(--card);font-size:.75rem;font-weight:500;color:var(--foreground);cursor:pointer}
.chip:hover{background:var(--accent)}
.chip[aria-pressed=true]{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 40%,transparent);color:var(--primary)}
.chip .count{color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.chip[aria-pressed=true] .count{color:inherit}
.weekday-picker{display:flex;gap:.25rem;flex-wrap:wrap}
.weekday-picker button{width:2.6rem;height:2rem;border:1px solid var(--input);border-radius:calc(var(--radius) - 4px);background:var(--surface-subtle);font-size:.75rem;font-weight:500;cursor:pointer;color:var(--muted-foreground)}
.weekday-picker button[aria-pressed=true]{background:var(--primary);border-color:transparent;color:var(--primary-foreground)}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:.3rem;height:1.375rem;padding:0 .5rem;border-radius:999px;font-size:.6875rem;font-weight:500;background:var(--muted);color:var(--muted-foreground);white-space:nowrap;letter-spacing:0}
.badge .dot{width:.4rem;height:.4rem}
.tone-success{background:var(--success-bg);color:var(--success)}
.tone-warning{background:var(--warning-bg);color:var(--warning)}
.tone-danger{background:var(--danger-bg);color:var(--destructive)}
.tone-info,.tone-primary{background:var(--info-bg);color:var(--primary)}
.tone-neutral{background:var(--muted);color:var(--muted-foreground)}
.dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex:none}
.ch-airbnb{--ch:var(--ch-airbnb)} .ch-booking{--ch:var(--ch-booking)} .ch-direct{--ch:var(--ch-direct)} .ch-manual{--ch:var(--ch-manual)} .ch-pending{--ch:var(--ch-pending)}
.ch-tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--foreground);white-space:nowrap}
.ch-tag::before{content:"";width:.5rem;height:.5rem;border-radius:2px;background:var(--ch)}
.ch-letter{display:inline-grid;place-items:center;width:1.1rem;height:1.1rem;border-radius:.3rem;background:var(--ch);color:#fff;font-size:.625rem;font-weight:600;flex:none}
.avatar{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:.75rem;font-weight:600;flex:none;letter-spacing:0}
.avatar.lg{width:3rem;height:3rem;font-size:1rem}
.avatar.sm{width:1.5rem;height:1.5rem;font-size:.625rem}
.star{color:#c8961e}

/* ---------- login ---------- */
.login{min-height:100svh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 600px at 20% -10%,var(--primary-soft),transparent),var(--background)}
.login-card{width:min(100%,24rem);background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + .25rem);padding:2rem;box-shadow:var(--shadow)}
.login-card h1{font-size:1.25rem;margin-top:1.5rem}
.login-card form{margin-top:1.25rem;display:flex;flex-direction:column}
.login-card label{margin-top:.75rem}
.login-card .check{margin:1rem 0}
.login-brand{display:flex;align-items:center;gap:.65rem}
.login-brand strong{display:block;color:var(--heading);font-weight:500;font-size:.9375rem}
.login-brand span:not(.mark){font-size:.75rem;color:var(--muted-foreground)}
.password-row{position:relative}
.password-row input{padding-right:2.5rem}
.password-row .btn{position:absolute;right:0;top:0}
.mark{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 60%,#1e1e2a));color:#fff;font-size:.6875rem;font-weight:600;letter-spacing:.02em;flex:none}

/* ---------- shell ---------- */
.app{display:flex;min-height:100svh}
.sidebar{position:sticky;top:0;height:100svh;width:var(--sidebar-w);flex:none;background:var(--sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;padding:.875rem .625rem;overflow-y:auto;z-index:30}
.brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .5rem .875rem;text-decoration:none;color:var(--heading)}
.brand strong{display:block;font-weight:500;font-size:.875rem;letter-spacing:-.01em}
.brand small{display:block;font-size:.6875rem;color:var(--muted-foreground)}
.property-chip{margin:0 .25rem .75rem;padding:.625rem .7rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--card);font-size:.75rem}
.property-chip strong{display:block;color:var(--heading);font-weight:500;font-size:.8125rem}
.property-chip .status{display:flex;align-items:center;gap:.35rem;margin-top:.25rem;color:var(--muted-foreground)}
.nav-group{margin-top:.625rem}
.nav-label{padding:0 .625rem;margin:.25rem 0 .25rem;font-size:.6875rem;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}
.nav-link{display:flex;align-items:center;gap:.6rem;height:2rem;padding:0 .625rem;border-radius:calc(var(--radius) - 3px);color:var(--sidebar-foreground);text-decoration:none;font-size:.8125rem;font-weight:450}
.nav-link:hover{background:var(--accent);color:var(--heading)}
.nav-link[aria-current=page]{background:var(--card);color:var(--heading);font-weight:500;box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--border)}
.nav-link[aria-current=page] svg{color:var(--primary)}
.nav-link .count{margin-left:auto;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:.6875rem;font-weight:600;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.nav-link .count.warn{background:var(--warning-bg);color:var(--warning)}
.sidebar-foot{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--sidebar-border);display:flex;flex-direction:column;gap:.375rem;font-size:.75rem}
.sync-line{display:flex;align-items:center;gap:.45rem;padding:.3rem .625rem;color:var(--muted-foreground)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:flex;align-items:center;gap:1rem;padding:0 1.5rem;background:color-mix(in srgb,var(--background) 86%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}
.page-title{min-width:0;flex:1}
.page-title h1{font-size:1rem;line-height:1.2}
.page-title p{font-size:.75rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-title p:empty{display:none}
.search-trigger{display:flex;align-items:center;gap:.5rem;width:min(22rem,32vw);height:2rem;padding:0 .5rem 0 .65rem;border:1px solid var(--input);border-radius:calc(var(--radius) - 2px);background:var(--surface-subtle);color:var(--muted-foreground);font-size:.8125rem;cursor:pointer;text-align:left}
.search-trigger:hover{border-color:color-mix(in srgb,var(--input) 50%,var(--muted-foreground))}
.search-trigger .label{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
kbd{font-size:.6875rem;padding:.1rem .35rem;border-radius:.3rem;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground)}
.top-actions{display:flex;align-items:center;gap:.5rem}
.menu-toggle{display:none}
.view{flex:1;padding:1.5rem;width:100%;max-width:92rem;outline:none}
.scrim{display:none}

/* ---------- layout primitives ---------- */
.stack{display:flex;flex-direction:column;gap:1rem}
.stack.tight{gap:.5rem} .stack.loose{gap:1.5rem}
.row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.row.between{justify-content:space-between}
.row.top{align-items:flex-start}
.spacer{flex:1}
.grid{display:grid;gap:1rem}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.split{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:1rem;align-items:start}
.split.wide-side{grid-template-columns:minmax(0,1fr) 26rem}
.sticky{position:sticky;top:calc(var(--topbar-h) + 1rem)}
.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.toolbar .search{position:relative;min-width:14rem;flex:0 1 18rem}
.toolbar .search input{padding-left:2rem}
.toolbar .search svg{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground)}
.divider{height:1px;background:var(--border);margin:.25rem 0}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .75rem}
.section-title p{font-size:.8125rem;color:var(--muted-foreground);margin-top:.15rem}

/* ---------- cards ---------- */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.125rem .75rem}
.card-head h2,.card-head h3{font-size:.9375rem}
.card-head p{font-size:.8125rem;color:var(--muted-foreground);margin-top:.2rem}
.card-body{padding:0 1.125rem 1.125rem}
.card-body.flush{padding:0}
.card-body.pad{padding:1.125rem}
.card-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1.125rem;border-top:1px solid var(--border);background:var(--surface-subtle);border-radius:0 0 var(--radius) var(--radius)}
.card.inset{box-shadow:none;background:var(--surface-subtle)}
.callout{display:flex;gap:.65rem;padding:.75rem .875rem;border-radius:calc(var(--radius) - 2px);background:var(--muted);font-size:.8125rem;line-height:1.45}
.callout svg{margin-top:.15rem}
.callout.info{background:var(--info-bg);color:var(--heading)} .callout.info svg{color:var(--primary)}
.callout.warning{background:var(--warning-bg);color:var(--warning)}
.callout.danger{background:var(--danger-bg);color:var(--destructive)}
.callout.success{background:var(--success-bg);color:var(--success)}
.kpi{padding:1rem 1.125rem;display:flex;flex-direction:column;gap:.15rem}
.kpi-label{font-size:.75rem;color:var(--muted-foreground);display:flex;align-items:center;gap:.4rem}
.kpi-value{font-size:1.5rem;font-weight:500;color:var(--heading);letter-spacing:-.025em;font-variant-numeric:tabular-nums;line-height:1.25}
.kpi-sub{font-size:.75rem;color:var(--muted-foreground)}
.kpi-sub .up{color:var(--success)} .kpi-sub .down{color:var(--destructive)}
.meter{height:.375rem;border-radius:999px;background:var(--muted);overflow:hidden;margin-top:.4rem}
.meter>span{display:block;height:100%;border-radius:inherit;background:var(--primary)}
.list{display:flex;flex-direction:column}
.list-item{display:flex;align-items:center;gap:.75rem;padding:.7rem 1.125rem;border-top:1px solid var(--border);text-decoration:none;color:inherit;min-width:0}
.list-item:first-child{border-top:0}
.list-item.clickable{cursor:pointer}
.list-item.clickable:hover{background:var(--surface-subtle)}
.list-item .grow{flex:1;min-width:0}
.list-item .title{font-size:.8125rem;font-weight:500;color:var(--heading)}
.list-item .meta{font-size:.75rem;color:var(--muted-foreground)}
.attention{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem}
.attention-item{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem .9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);cursor:pointer;text-align:left;font:inherit;color:inherit}
.attention-item:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow)}
.attention-item .ico{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;background:var(--muted);flex:none}
.attention-item.warn .ico{background:var(--warning-bg);color:var(--warning)}
.attention-item.danger .ico{background:var(--danger-bg);color:var(--destructive)}
.attention-item.info .ico{background:var(--info-bg);color:var(--primary)}
.attention-item strong{display:block;font-size:.8125rem;font-weight:500;color:var(--heading)}
.attention-item span{font-size:.75rem;color:var(--muted-foreground)}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:2.25rem 1rem;color:var(--muted-foreground);font-size:.8125rem}
.empty .ico{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--muted);margin-bottom:.25rem}
.empty strong{color:var(--heading);font-weight:500;font-size:.875rem}
.empty .btn{margin-top:.5rem}
.skeleton{background:linear-gradient(90deg,var(--muted),color-mix(in srgb,var(--muted) 50%,var(--background)),var(--muted));background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:.5rem;min-height:1rem}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto}
table.table{width:100%;border-collapse:collapse;font-size:.8125rem}
.table th{position:sticky;top:0;text-align:left;font-weight:500;font-size:.75rem;color:var(--muted-foreground);padding:.6rem .875rem;border-bottom:1px solid var(--border);background:var(--surface-subtle);white-space:nowrap}
.table td{padding:.65rem .875rem;border-bottom:1px solid var(--border);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tr.clickable{cursor:pointer}
.table tr.clickable:hover td{background:var(--surface-subtle)}
.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}
.table .who{display:flex;align-items:center;gap:.6rem;min-width:0}
.table .who strong{display:block;font-weight:500;color:var(--heading)}
.table .who small{display:block;color:var(--muted-foreground);font-size:.75rem}
.table tfoot td{font-weight:500;color:var(--heading);background:var(--surface-subtle)}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.tab{border:0;background:none;padding:.6rem .75rem;font-size:.8125rem;font-weight:500;color:var(--muted-foreground);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem}
.tab:hover{color:var(--heading)}
.tab[aria-selected=true]{color:var(--heading);border-bottom-color:var(--primary)}
.tab .count{font-size:.6875rem;color:var(--muted-foreground);background:var(--muted);border-radius:999px;padding:0 .4rem}

/* ---------- overlays ---------- */
.backdrop{position:fixed;inset:0;background:rgb(18 18 28 / .32);z-index:60;animation:fade .15s ease-out}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(100%,var(--drawer-w,40rem));background:var(--background);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:61;display:flex;flex-direction:column;animation:slide .2s cubic-bezier(.2,.8,.2,1)}
.drawer-head{padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem;background:var(--card)}
.drawer-head .top{display:flex;align-items:flex-start;gap:.75rem}
.drawer-head h2{font-size:1.125rem}
.drawer-head .sub{font-size:.8125rem;color:var(--muted-foreground);margin-top:.15rem}
.drawer-head .tabs{margin:0 -1.25rem -.75rem;padding:0 1rem;border-bottom:0}
.drawer-body{flex:1;overflow-y:auto;padding:1.25rem}
.drawer-foot{padding:.75rem 1.25rem;border-top:1px solid var(--border);display:flex;gap:.5rem;justify-content:flex-end;background:var(--card)}
.modal-wrap{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:1rem;overflow-y:auto}
.modal{position:relative;width:min(100%,var(--modal-w,32rem));background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + .25rem);box-shadow:var(--shadow-lg);animation:pop .16s ease-out;display:flex;flex-direction:column;max-height:calc(100svh - 2rem)}
.modal-head{padding:1.125rem 1.25rem .5rem;display:flex;gap:1rem;align-items:flex-start}
.modal-head h2{font-size:1rem;flex:1}
.modal-head p{font-size:.8125rem;color:var(--muted-foreground);margin-top:.25rem}
.modal-body{padding:.5rem 1.25rem 1.25rem;overflow-y:auto}
.modal-foot{padding:.75rem 1.25rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem;background:var(--surface-subtle);border-radius:0 0 calc(var(--radius) + .25rem) calc(var(--radius) + .25rem)}
@keyframes fade{from{opacity:0}} @keyframes slide{from{transform:translateX(24px);opacity:.4}} @keyframes pop{from{transform:scale(.97);opacity:0}}
.toasts{position:fixed;bottom:1rem;right:1rem;z-index:90;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;max-width:26rem;padding:.7rem .9rem;border-radius:var(--radius);background:var(--heading);color:var(--background);font-size:.8125rem;box-shadow:var(--shadow-lg);animation:pop .15s ease-out}
.toast.error{background:var(--destructive);color:#fff}
.toast svg{margin-top:.1rem}
.menu{position:absolute;z-index:80;min-width:12rem;padding:.3rem;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);box-shadow:var(--shadow-lg);animation:pop .12s ease-out}
.menu button{display:flex;align-items:center;gap:.6rem;width:100%;height:2rem;padding:0 .6rem;border:0;background:none;border-radius:calc(var(--radius) - 5px);font-size:.8125rem;cursor:pointer;color:var(--foreground);text-align:left}
.menu button:hover,.menu button:focus-visible{background:var(--accent);color:var(--heading)}
.menu .sep{height:1px;background:var(--border);margin:.3rem 0}

/* command palette */
.palette{position:fixed;left:50%;top:12vh;transform:translateX(-50%);width:min(calc(100% - 2rem),36rem);background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + .25rem);box-shadow:var(--shadow-lg);z-index:85;overflow:hidden;animation:pop .14s ease-out}
.palette input{height:3rem;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:0 1rem;font-size:.9375rem;background:transparent}
.palette input:focus{box-shadow:none}
.palette-results{max-height:min(60vh,26rem);overflow-y:auto;padding:.375rem}
.palette-group{padding:.5rem .65rem .25rem;font-size:.6875rem;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}
.palette-item{display:flex;align-items:center;gap:.65rem;width:100%;padding:.5rem .65rem;border:0;background:none;border-radius:calc(var(--radius) - 4px);cursor:pointer;text-align:left;font-size:.8125rem;color:var(--foreground)}
.palette-item small{margin-left:auto;color:var(--muted-foreground);font-size:.75rem}
.palette-item[aria-selected=true]{background:var(--accent);color:var(--heading)}

/* ---------- detail blocks ---------- */
.dl{display:grid;grid-template-columns:minmax(8rem,auto) 1fr;gap:.45rem 1rem;font-size:.8125rem;margin:0}
.dl dt{color:var(--muted-foreground)} .dl dd{margin:0;color:var(--heading);min-width:0;overflow-wrap:anywhere}
.lines{display:flex;flex-direction:column;font-size:.8125rem}
.lines .line{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0}
.lines .line span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.lines .line.sub{color:var(--muted-foreground);font-size:.75rem;padding:.15rem 0 .15rem .75rem}
.lines .line.discount span:last-child{color:var(--success)}
.lines .line.total{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.6rem;font-weight:500;color:var(--heading);font-size:.875rem}
.pipeline{display:flex;gap:.25rem;align-items:center;font-size:.6875rem;color:var(--muted-foreground);flex-wrap:wrap}
.pipeline span{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:999px;background:var(--muted)}
.pipeline span.done{background:var(--success-bg);color:var(--success)}
.pipeline span.now{background:var(--primary);color:var(--primary-foreground)}
.timeline{display:flex;flex-direction:column;gap:.75rem;font-size:.8125rem}
.timeline .ev{display:flex;gap:.65rem}
.timeline .ev .dot{margin-top:.4rem;color:var(--border)}
.timeline .ev time{display:block;font-size:.75rem;color:var(--muted-foreground)}
.codeblock{position:relative;background:#14151f;color:#e6e7ef;border-radius:calc(var(--radius) - 2px);padding:.875rem 1rem;font-family:"Geist Mono",ui-monospace,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto;white-space:pre}
.codeblock .btn{position:absolute;top:.5rem;right:.5rem;background:rgb(255 255 255 / .08);border-color:rgb(255 255 255 / .12);color:#e6e7ef}
.secret{display:flex;gap:.5rem;align-items:center;padding:.6rem .75rem;border-radius:calc(var(--radius) - 2px);background:var(--warning-bg);font-family:"Geist Mono",ui-monospace,monospace;font-size:.75rem;overflow-wrap:anywhere;color:var(--heading)}
.secret span{flex:1;min-width:0}

/* ---------- calendar ---------- */
.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 21rem;gap:1rem;align-items:start}
.cal-card{overflow:hidden}
.cal-toolbar{display:flex;align-items:center;gap:.5rem;padding:.75rem .875rem;border-bottom:1px solid var(--border);flex-wrap:wrap}
.cal-toolbar h2{font-size:1rem;min-width:9.5rem}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);background:var(--surface-subtle)}
.cal-head div{padding:.45rem .6rem;font-size:.6875rem;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}
.cal-week{position:relative;display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border)}
.cal-week:last-child{border-bottom:0}
.cal-day{position:relative;min-height:6.25rem;padding:.4rem .5rem;border-right:1px solid var(--border);cursor:pointer;user-select:none;-webkit-user-select:none;display:flex;flex-direction:column;transition:background .1s}
.cal-day:last-child{border-right:0}
.cal-day:hover{background:var(--surface-subtle)}
.cal-day.weekend{background:color-mix(in srgb,var(--muted) 45%,transparent)}
.cal-day.outside{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--muted) 70%,transparent) 6px 7px)}
.cal-day.outside .d{opacity:.45}
.cal-day.past{opacity:.55}
.cal-day.selected{background:color-mix(in srgb,var(--primary) 24%,transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--primary) 70%,transparent)}
.cal-day.selected .price{color:var(--heading)}
.cal-day .d{font-size:.75rem;font-weight:500;color:var(--heading);display:flex;align-items:center;gap:.3rem}
.cal-day.today .d b{display:inline-grid;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .3rem;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-weight:600}
.cal-day .d b{font-weight:500}
.cal-day .season{position:absolute;top:0;left:0;right:0;height:3px;background:var(--season,transparent)}
.cal-day .price{margin-top:auto;align-self:flex-end;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);display:flex;align-items:center;gap:.3rem}
.cal-day .price.custom{color:var(--primary);font-weight:500}
.cal-day .flags{display:flex;gap:.2rem;margin-left:auto}
.cal-day .flag{font-size:.5625rem;font-weight:600;padding:0 .25rem;border-radius:.25rem;background:var(--muted);color:var(--muted-foreground);line-height:1.1rem;letter-spacing:.02em}
.cal-day .flag.warn{background:var(--warning-bg);color:var(--warning)}
.cal-bars{position:absolute;left:0;right:0;top:1.75rem;height:0;pointer-events:none}
.cal-bar{position:absolute;height:1.75rem;border-radius:.45rem;background:var(--ch);color:#fff;font-size:.75rem;font-weight:500;display:flex;align-items:center;gap:.35rem;padding:0 .5rem;overflow:hidden;white-space:nowrap;pointer-events:auto;cursor:pointer;box-shadow:0 1px 2px rgb(30 30 42 / .18);transition:filter .12s,transform .12s}
.cal-bar:hover{filter:brightness(1.06);transform:translateY(-1px)}
.cal-bar.cont-left{border-top-left-radius:0;border-bottom-left-radius:0}
.cal-bar.cont-right{border-top-right-radius:0;border-bottom-right-radius:0}
.cal-bar.pending{background:repeating-linear-gradient(135deg,var(--ch-pending) 0 8px,color-mix(in srgb,var(--ch-pending) 82%,#fff) 8px 16px)}
.cal-bar.block{background:repeating-linear-gradient(135deg,var(--ch-manual) 0 6px,color-mix(in srgb,var(--ch-manual) 78%,#fff) 6px 12px)}
.cal-bar .nm{overflow:hidden;text-overflow:ellipsis}
.cal-bar .n{opacity:.8;font-weight:400;margin-left:auto;padding-left:.25rem}
.cal-bar .lt{display:inline-grid;place-items:center;width:1rem;height:1rem;border-radius:.25rem;background:rgb(255 255 255 / .22);font-size:.5625rem;font-weight:600;flex:none}
.cal-side .panel-section{padding:1rem 1.125rem;border-top:1px solid var(--border)}
.cal-side .panel-section:first-child{border-top:0}
.legend{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;font-size:.75rem}
.legend span{display:flex;align-items:center;gap:.4rem}
.legend i{width:.75rem;height:.75rem;border-radius:.2rem;background:var(--ch);flex:none}
.legend i.pending{background:repeating-linear-gradient(135deg,var(--ch-pending) 0 3px,color-mix(in srgb,var(--ch-pending) 70%,#fff) 3px 6px)}
.legend i.block{background:repeating-linear-gradient(135deg,var(--ch-manual) 0 3px,color-mix(in srgb,var(--ch-manual) 70%,#fff) 3px 6px)}
.year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14.5rem,1fr));gap:1rem;padding:1rem}
.mini-month h4{margin-bottom:.4rem;display:flex;justify-content:space-between}
.mini-month .g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.mini-month .g span{aspect-ratio:1;border-radius:3px;background:var(--muted);font-size:.5625rem;display:grid;place-items:center;color:var(--muted-foreground);cursor:pointer}
.mini-month .g span.o{background:var(--ch);color:#fff}
.mini-month .g span.pend{background:var(--ch-pending);color:#fff}
.mini-month .g span.blk{background:var(--ch-manual);color:#fff}
.mini-month .g span.today{outline:2px solid var(--primary);outline-offset:-1px}
.mini-month .g span.empty-cell{background:none}
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;align-items:end}
.strip span{height:2.25rem;border-radius:3px;background:var(--muted);position:relative;cursor:pointer}
.strip span.o{background:var(--ch)}
.strip span.pend{background:var(--ch-pending)}
.strip span.blk{background:repeating-linear-gradient(135deg,var(--ch-manual) 0 3px,color-mix(in srgb,var(--ch-manual) 70%,#fff) 3px 6px)}
.strip span.wk{height:2.25rem}
.strip span.today{outline:2px solid var(--heading);outline-offset:1px}
.strip-labels{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);font-size:.625rem;color:var(--muted-foreground);margin-top:.35rem}

/* ---------- inbox ---------- */
.inbox{display:grid;grid-template-columns:20rem minmax(0,1fr) 18rem;height:calc(100svh - var(--topbar-h) - 3rem);min-height:32rem;overflow:hidden}
.inbox>section{display:flex;flex-direction:column;min-height:0;min-width:0}
.inbox>section+section{border-left:1px solid var(--border)}
.thread-list{overflow-y:auto;flex:1}
.thread{display:flex;gap:.65rem;padding:.75rem .875rem;border-bottom:1px solid var(--border);cursor:pointer;width:100%;text-align:left;background:none;border-left:0;border-right:0;border-top:0;font:inherit;color:inherit}
.thread:hover{background:var(--surface-subtle)}
.thread[aria-current=true]{background:var(--primary-soft)}
.thread .grow{flex:1;min-width:0}
.thread .nm{display:flex;justify-content:space-between;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--heading)}
.thread .nm time{font-weight:400;font-size:.6875rem;color:var(--muted-foreground);white-space:nowrap}
.thread .pv{font-size:.75rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.1rem}
.thread.unread .pv{color:var(--heading)}
.thread .unread-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--primary);margin-top:.35rem;flex:none}
.convo{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;background:var(--surface-subtle)}
.msg{max-width:min(36rem,82%);display:flex;flex-direction:column;gap:.25rem}
.msg.in{align-self:flex-start}
.msg.out{align-self:flex-end;align-items:flex-end}
.msg.internal{align-self:center;max-width:min(40rem,92%)}
.bubble{padding:.6rem .8rem;border-radius:1rem;font-size:.8125rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--card);border:1px solid var(--border);color:var(--heading)}
.msg.in .bubble{border-bottom-left-radius:.3rem}
.msg.out .bubble{background:var(--primary);color:var(--primary-foreground);border-color:transparent;border-bottom-right-radius:.3rem}
.msg.out.queued .bubble,.msg.out.failed .bubble{background:var(--card);color:var(--heading);border:1px dashed color-mix(in srgb,var(--warning) 55%,transparent)}
.msg.internal .bubble{background:var(--warning-bg);border-color:transparent;color:var(--heading);border-radius:.6rem}
.msg .subj{font-weight:500;display:block;margin-bottom:.25rem}
.msg .meta{font-size:.6875rem;color:var(--muted-foreground);display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.msg .actions{display:flex;gap:.35rem;flex-wrap:wrap}
.day-sep{align-self:center;font-size:.6875rem;color:var(--muted-foreground);padding:.15rem .6rem;border-radius:999px;background:var(--muted)}
.composer{border-top:1px solid var(--border);padding:.75rem;display:flex;flex-direction:column;gap:.5rem;background:var(--card)}
.composer textarea{min-height:4.5rem;max-height:14rem}
.convo-head{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--card)}
.inbox-side{overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem;background:var(--card)}

/* ---------- tasks ---------- */
.board{display:grid;grid-template-columns:repeat(3,minmax(16rem,1fr));gap:1rem;align-items:start}
.column{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem;min-height:12rem;display:flex;flex-direction:column;gap:.5rem}
.column.drop{border-color:var(--primary);background:var(--primary-soft)}
.column-head{display:flex;align-items:center;gap:.5rem;padding:.25rem .35rem .4rem;font-size:.8125rem;font-weight:500;color:var(--heading)}
.task-card{background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);padding:.65rem .75rem;cursor:pointer;display:flex;flex-direction:column;gap:.4rem;box-shadow:var(--shadow-sm)}
.task-card:hover{border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}
.task-card.dragging{opacity:.4}
.task-card .t{font-size:.8125rem;font-weight:500;color:var(--heading);line-height:1.35}
.task-card .m{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;font-size:.6875rem;color:var(--muted-foreground)}
.task-card.overdue .due{color:var(--destructive);font-weight:500}
.type-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--tc,var(--muted-foreground));flex:none}
.t-cleaning{--tc:#2f9e8f} .t-maintenance{--tc:#c27a1a} .t-inspection{--tc:#7b61c9} .t-guest{--tc:var(--primary)} .t-compliance{--tc:#b0175f} .t-laundry{--tc:#3c8dd0} .t-restock{--tc:#6a9a2c} .t-admin{--tc:#70707d} .t-other{--tc:#9a9cb0}
.checklist{display:flex;flex-direction:column;gap:.35rem}
.checklist label{display:flex;gap:.5rem;align-items:center;font-weight:400;font-size:.8125rem;margin:0;color:var(--foreground)}
.checklist label.done span{text-decoration:line-through;color:var(--muted-foreground)}

/* ---------- charts ---------- */
.chart{width:100%;display:block;overflow:visible}
.chart text{font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-size:11px;fill:var(--muted-foreground)}
.chart .grid line{stroke:var(--border)}
.chart .axis line{stroke:var(--border)}
.chart .bar{transition:opacity .15s}
.chart .bar:hover{opacity:.82}
.hbar{display:grid;grid-template-columns:8rem minmax(0,1fr) 4.5rem;gap:.6rem;align-items:center;font-size:.75rem;padding:.25rem 0}
.hbar .track{height:.625rem;background:var(--muted);border-radius:999px;overflow:hidden}
.hbar .track span{display:block;height:100%;background:var(--primary);border-radius:inherit}
.hbar .v{text-align:right;font-variant-numeric:tabular-nums;color:var(--heading)}
.chart-legend{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.75rem;color:var(--muted-foreground)}
.chart-legend span{display:inline-flex;align-items:center;gap:.35rem}
.chart-legend i{width:.625rem;height:.625rem;border-radius:2px;background:var(--ch,var(--primary))}
.tooltip{position:fixed;z-index:95;pointer-events:none;background:var(--heading);color:var(--background);font-size:.75rem;padding:.4rem .55rem;border-radius:.45rem;box-shadow:var(--shadow-lg);white-space:nowrap}

/* ---------- misc ---------- */
.save-bar{position:sticky;bottom:1rem;z-index:15;display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding:.65rem .75rem .65rem 1rem;border-radius:var(--radius);background:var(--heading);color:var(--background);box-shadow:var(--shadow-lg);font-size:.8125rem;animation:pop .15s ease-out}
.save-bar .btn{border-color:rgb(255 255 255 / .2)}
.save-bar .btn:not(.primary){background:transparent;color:inherit}
.option-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem}
.option-card{display:flex;gap:.7rem;align-items:flex-start;padding:.875rem 1rem;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--card);text-align:left;font:inherit;color:inherit;margin:0}
.option-card:hover{border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}
.option-card[aria-pressed=true],.option-card:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:color-mix(in srgb,var(--primary) 4%,var(--card))}
.option-card strong{display:block;font-size:.8125rem;font-weight:500;color:var(--heading)}
.option-card span{display:block;font-size:.75rem;color:var(--muted-foreground);margin-top:.15rem;font-weight:400;line-height:1.45}
.option-card input{margin-top:.15rem}
.placeholder-chips{display:flex;flex-wrap:wrap;gap:.3rem}
.placeholder-chips button{font-family:"Geist Mono",ui-monospace,monospace;font-size:.6875rem;padding:.15rem .4rem;border-radius:.35rem;border:1px solid var(--border);background:var(--surface-subtle);cursor:pointer;color:var(--foreground)}
.placeholder-chips button:hover{border-color:var(--primary);color:var(--primary)}
.status-row{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}
.connector{display:flex;gap:.875rem;align-items:flex-start}
.connector .logo{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.7rem;background:var(--ch,var(--muted));color:#fff;font-weight:600;font-size:.875rem;flex:none}
.steps{counter-reset:step;display:flex;flex-direction:column;gap:.875rem;margin:0;padding:0;list-style:none}
.steps li{counter-increment:step;display:grid;grid-template-columns:1.6rem 1fr;gap:.75rem;font-size:.8125rem}
.steps li::before{content:counter(step);display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:.75rem}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .inbox{grid-template-columns:17rem minmax(0,1fr)}
  .inbox>.inbox-side{display:none}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1100px){
  .cal-layout,.split,.split.wide-side{grid-template-columns:minmax(0,1fr)}
  .sticky{position:static}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow-lg)}
  .app.nav-open .sidebar{transform:none}
  .app.nav-open .scrim{display:block;position:fixed;inset:0;background:rgb(18 18 28 / .3);z-index:25}
  .menu-toggle{display:inline-flex}
  .topbar{padding:0 1rem;gap:.5rem}
  .search-trigger{width:2rem;padding:0;justify-content:center}
  .search-trigger .label,.search-trigger kbd{display:none}
  .view{padding:1rem}
  .grid-2,.grid-3,.form-grid,.form-grid.three{grid-template-columns:minmax(0,1fr)}
  .form-grid .span-2{grid-column:auto}
  .board{grid-template-columns:minmax(0,1fr)}
  .inbox{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}
  .inbox>section+section{border-left:0;border-top:1px solid var(--border)}
  .inbox .thread-list{max-height:16rem}
  .convo{min-height:20rem}
  .cal-day{min-height:4.75rem;padding:.3rem}
  .cal-day .price{font-size:.625rem}
  .cal-bar{height:1.4rem;font-size:.625rem;padding:0 .3rem}
  .cal-bar .n,.cal-bar .lt{display:none}
  .top-actions .btn .label{display:none}
  .hbar{grid-template-columns:6rem minmax(0,1fr) 3.5rem}
}
@media (max-width:520px){
  .grid-4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .kpi-value{font-size:1.25rem}
  .page-title p{display:none}
  .cal-head div{padding:.35rem .25rem;font-size:.5625rem;text-align:center}
  .cal-day .flags{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
