/*
 * FlatNotify "Nova" design system (2026-10-02).
 * Warm off-white workspace framed by a deep-navy icon rail, coral→pink accents
 * used sparingly (KPI card, active states, charts), pastel status colours,
 * Plus Jakarta Sans. Loaded last; works together with the restructured shells
 * in AdminApp/CustomerApp (nv-* classes) and the Dashboard (dx-* classes).
 * Dark/ocean/sunset keep their own colour tokens (higher specificity) and
 * inherit only the shapes; the rail stays navy in every theme.
 */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-display:swap;font-weight:200 800;
  src:url(fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-display:swap;font-weight:200 800;
  src:url(fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root:root{--font:"Plus Jakarta Sans","Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--r-sm:12px;--r:16px;--r-lg:24px;--r-xl:30px;--t-fast:.16s;--t:.22s;--ease:cubic-bezier(.22,.8,.24,1);--rail-w:88px;--coral:#FF735F;--pink:#F04F9A;--grad:linear-gradient(135deg,#FF765E 0%,#F04F9A 100%);--sun:#FFC75A;--lime:#A3E635;--rail:#0D1224;--rail-2:#161c33;--ink:#111522;--mint-bg:#E3F6EC;--rose-bg:#FFE7E2;--sun-bg:#FFF3D6;--sky-bg:#E5EEFF;--blush:#FCE4EC}
:root:not([data-theme=dark]):not([data-theme=ocean]):not([data-theme=sunset]){
  --font:"Plus Jakarta Sans","Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  /* palette */
  --ink:#111522;--rail:#0D1224;--rail-2:#161c33;
  --coral:#FF735F;--pink:#F04F9A;--grad:linear-gradient(135deg,#FF765E 0%,#F04F9A 100%);
  --sun:#FFC75A;--mint-bg:#E3F6EC;--rose-bg:#FFE7E2;--sun-bg:#FFF3D6;--sky-bg:#E5EEFF;--blush:#FCE4EC;
  /* tokens */
  --navy:var(--rail);--bg:#F3F1EE;--surface:#FFFFFF;--surface-2:#FAF9F7;--border:#E9E6E2;
  --text:var(--ink);--text-2:#8C8D96;--text-3:#B3B1AE;
  --primary:var(--rail);--primary-text:#fff;--accent:var(--coral);--accent-text:#fff;--focus:var(--coral);
  --ok:#1F9D63;--ok-bg:var(--mint-bg);--warn:#B7791F;--warn-bg:var(--sun-bg);--err:#E5484D;--err-bg:var(--rose-bg);
  --info:#3E6AE1;--info-bg:var(--sky-bg);--muted-bg:#F1EEEA;
  --r-sm:12px;--r:16px;--r-lg:24px;--r-xl:30px;
  --shadow-sm:0 1px 2px rgba(17,21,34,.04);
  --shadow:0 1px 2px rgba(17,21,34,.03),0 8px 24px rgba(17,21,34,.04);
  --shadow-lg:0 24px 60px rgba(13,18,36,.18);
  --ring:0 0 0 3px rgba(255,115,95,.22);
  --t-fast:.16s;--t:.22s;--ease:cubic-bezier(.22,.8,.24,1);
  --rail-w:88px;--dx-track:#F1EEEA;
}
:root[data-theme=dark],:root[data-theme=ocean],:root[data-theme=sunset]{--dx-track:var(--surface-2);--ring:0 0 0 3px color-mix(in srgb,var(--focus) 35%,transparent)}
:root:not([data-theme=dark]):not([data-theme=ocean]):not([data-theme=sunset]) body{background:var(--bg)}
body{font-family:var(--font);letter-spacing:-.006em;font-feature-settings:"ss01","cv11"}
h1,h2,h3{font-weight:700;letter-spacing:-.025em;color:var(--text)}
h1{font-size:34px;font-weight:750;letter-spacing:-.035em}
h2{font-size:18px}h3{font-size:15px}
.muted{color:var(--text-2)}
.duration-warn{color:#B45309;font-weight:600}
.duration-critical{color:#DC2626;font-weight:700}
[hidden]{display:none!important}
::selection{background:var(--coral);color:#fff}
svg[stroke=currentColor]{stroke-width:1.75}

/* ---------- Shell: one full-viewport grid — navy rail column + warm workspace ----------
 * The rail is a real grid column (sticky), not a fixed overlay, so the workspace starts exactly
 * where the rail ends: straight edges, no outer radius, no navy showing behind the workspace.
 * Width is an explicit user choice (.nv-collapsed / .nv-expanded, see nv-rail.js); hover never
 * changes it, and the toggle/expanded width work the same from 851px up to any desktop width —
 * only mobile (≤850px) switches to the drawer. */
.nv-shell{--rail-w:88px;padding:0!important;display:grid!important;grid-template-columns:var(--rail-w) minmax(0,1fr)!important;min-height:100vh;background:var(--bg);transition:grid-template-columns var(--t) var(--ease)}
@media (min-width:851px){.nv-shell.nv-expanded{--rail-w:248px}}
.nv-shell .main{grid-column:2;min-width:0;min-height:100vh;margin:0;background:var(--bg);border-radius:0;position:relative;overflow:clip;isolation:isolate}
.nv-shell .main:before{content:"";position:absolute;z-index:-1;right:-140px;top:-160px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,118,94,.10),transparent 65%);pointer-events:none}
.nv-shell .content{padding:8px 40px 48px;max-width:1520px}

/* ---------- Rail ---------- */
.nv-rail{grid-column:1;grid-row:1;position:sticky!important;z-index:900;top:0;width:auto!important;height:100vh;display:flex!important;flex-direction:column;align-items:stretch;gap:4px;padding:22px 14px 18px!important;background:var(--rail)!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;overflow:hidden;color:#C9CCD8;transition:width var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.nv-logo{display:grid;place-items:center;width:52px;height:52px;margin:0 4px 18px;border-radius:16px;background:var(--grad);box-shadow:0 10px 24px rgba(240,79,154,.35);flex:none;transition:transform var(--t) var(--ease)}
.nv-logo:hover{transform:rotate(-6deg) scale(1.04)}
.nv-logo img{width:34px;height:34px;border-radius:9px}
.nv-rail .nav{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch;min-height:0;gap:4px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;margin:0;padding:4px 0}
.nv-rail .nav::-webkit-scrollbar{display:none}
.nv-rail .nav a{position:relative;display:flex;align-items:center;gap:14px;height:44px;min-height:44px;padding:0 17px;border-radius:999px;color:#8E93A8;background:transparent;font-size:14px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.nv-rail .nav a svg{width:20px;height:20px;flex:none}
.nv-rail .nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nv-rail .nav a.active{background:rgba(255,255,255,.12);color:#fff}
.nv-rail .nav a.active:after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(255,115,95,.18);animation:nvDot .3s var(--ease)}
.nv-rail .nav a.active:before{content:"";position:absolute;left:-14px;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--grad)}
.nv-rail .nav a{overflow:visible}
.nv-rail .nav a .nv-badge{position:absolute;right:10px;top:50%;transform:translateY(-50%);height:18px;min-width:18px;padding:0 5px;font-size:10px;background:var(--coral);color:#fff;z-index:1}
.nv-collapsed .nv-rail .nav a .nv-badge{right:-2px;top:2px;transform:none;height:16px;min-width:16px;padding:0 4px;font-size:9px}
@keyframes nvDot{from{transform:scale(0)}to{transform:scale(1)}}
.nv-rail .lbl{opacity:0;transform:translateX(-6px);transition:opacity var(--t-fast),transform var(--t) var(--ease)}
.nv-expanded .nv-rail .lbl{opacity:1;transform:none}
.nv-rail .nav-section{position:relative;display:flex;align-items:center;gap:14px;width:100%;height:44px;min-height:44px;margin:0;padding:0 17px;border:0;border-radius:999px;background:transparent;color:#8E93A8;font:inherit;font-size:14px;font-weight:600;letter-spacing:normal;text-align:left;text-transform:none;white-space:nowrap}
.nv-rail .nav-section-toggle{cursor:pointer;user-select:none}
.nv-rail .nav-section-toggle:hover{background:rgba(255,255,255,.06);color:#fff}
.nv-rail .nav-section-toggle:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.nv-rail .nav-section .lbl{flex:1}
.nv-rail .nav-section-chevron{flex:none;width:20px;height:20px;transition:transform var(--t) var(--ease)}
.nv-expanded .nv-rail .nav-section-chevron{margin-left:auto}
.nv-rail .nav .count{position:absolute;left:30px;top:6px;margin:0;padding:0 5px;font-size:10px;line-height:15px;background:var(--coral)}
/* decorative 3D-ish orb */
.nv-orb{position:relative;flex:none;width:56px;height:56px;margin:14px 2px 10px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#FFD3C7 0%,#FF8A6E 30%,#F04F9A 68%,#7B2A8C 100%);box-shadow:inset -6px -8px 14px rgba(60,10,60,.35),0 12px 26px rgba(240,79,154,.28);animation:nvFloat 6s ease-in-out infinite}
.nv-orb:after{content:"";position:absolute;inset:16px;border-radius:50%;background:var(--rail);box-shadow:inset 3px 4px 8px rgba(0,0,0,.45)}
@keyframes nvFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(8deg)}}
.nv-foot{display:flex;align-items:center;gap:12px;padding:6px 2px 0;flex:none;white-space:nowrap}
.nv-avatar{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:16px;background:#F7E2DA;color:var(--ink);font-weight:800;font-size:15px;letter-spacing:.02em;border:2px solid rgba(255,255,255,.12)}
.nv-who{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}
.nv-who strong{color:#fff;font-size:13.5px;overflow:hidden;text-overflow:ellipsis}
.nv-who small{color:#7C8199;font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
.nv-out{display:grid;place-items:center;flex:none;width:40px;height:40px;margin-left:auto;border:0;border-radius:12px;background:transparent;color:#8E93A8;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.nv-out:hover{background:rgba(255,255,255,.08);color:#fff}
.nv-collapsed .nv-rail .nv-foot .nv-out,.nv-collapsed .nv-rail .nv-who{display:none}
/* sidebar toggle + collapsed-state tooltip */
.nv-toggle{display:flex;align-items:center;gap:14px;flex:none;height:40px;margin:6px 0 0;padding:0 18px;border:0;border-radius:999px;background:transparent;color:#5B6178;font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.nv-toggle svg{flex:none}
.nv-toggle:hover{background:rgba(255,255,255,.06);color:#fff}
.nv-toggle:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.nv-tip{position:fixed;z-index:1000;transform:translateY(-50%);padding:6px 12px;border-radius:10px;background:var(--rail);color:#fff;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 8px 24px rgba(13,18,36,.25);animation:nvPop .14s var(--ease)}
/* customer account switcher in the rail */
.nv-cust .nv-rail>div[style]{margin:0 0 6px!important}
.nv-cust .nv-rail>div[style]>.btn{background:rgba(255,255,255,.06)!important;border:0!important;color:#fff!important;padding:8px!important;border-radius:16px!important;white-space:nowrap;overflow:hidden}
.nv-cust .nv-rail>div[style]>.btn .chip{background:var(--grad)!important;color:#fff!important;border:0}
.nv-cust .nv-rail>div[style]>.btn .muted{color:#8E93A8!important}
.nv-cust .nv-rail>div[style] .search-results{background:var(--rail-2);border:1px solid #262c45;border-radius:16px;color:#fff}
.nv-cust .nv-rail>div[style] .search-results a:hover{background:rgba(255,255,255,.07)}

/* ---------- Header ---------- */
.nv-top{position:sticky;top:0;z-index:60;margin:0!important;display:flex;align-items:center;gap:14px;min-height:84px;padding:18px 40px 10px!important;background:color-mix(in srgb,var(--bg) 88%,transparent)!important;border:0!important;box-shadow:none!important;border-radius:0!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.nv-greet{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.nv-greet small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.nv-greet span{font-size:15px;font-weight:650;color:var(--text);white-space:nowrap}
.nv-search{position:relative;display:flex;align-items:center;gap:10px;flex:0 1 340px;height:46px;margin-left:24px;padding:0 18px;border-radius:999px;background:var(--surface);color:var(--text-2);transition:box-shadow var(--t-fast),background var(--t-fast)}
.nv-search:focus-within{box-shadow:var(--ring)}
.nv-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:14px;color:var(--text)}
.nv-search input::placeholder{color:var(--text-3)}
.nv-search input::-webkit-search-cancel-button{display:none}
.nv-search-results{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:80;padding:6px;background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);animation:nvPop .18s var(--ease)}
.nv-search-results button{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:14px;background:transparent;font:inherit;font-size:14px;font-weight:600;color:var(--text);text-align:left;cursor:pointer}
.nv-search-results button:hover,.nv-search-results button:first-child{background:var(--surface-2)}
.nv-search-results .ico{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--rose-bg);color:var(--coral)}
.nv-search-results .ico svg{width:16px;height:16px}
@keyframes nvPop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.nv-cta{height:46px!important;padding:0 22px!important;border-radius:999px!important}
.nv-ico{width:46px!important;height:46px!important;border-radius:50%!important;border:0!important;background:transparent!important;color:var(--text)!important}
.nv-ico:hover{background:var(--surface)!important}
.nv-banner{display:flex;align-items:center;gap:8px;margin:0 40px 8px;padding:10px 16px;border-radius:16px;background:var(--sun-bg)!important;color:#7A5212!important;font-size:13.5px;font-weight:600}
.nv-banner a{color:var(--ink);font-weight:700}
.nv-section-title{margin:10px 0 -4px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}

/* ---------- Page header ---------- */
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.page-h h1{display:flex;align-items:center;gap:14px;margin:0 0 4px}
.page-h h1 svg,.page-h h1 .h-ico svg{width:22px;height:22px}
.page-h h1>span:first-child:not(:only-child),.h-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:16px!important;background:var(--rose-bg)!important;color:var(--coral)}

/* ---------- Settings: calm overview, focused configuration dialogs ---------- */
.fn-settings-page-head{margin-bottom:0}.fn-settings-intro{margin:-2px 0 10px;color:var(--text-2);font-size:14px}.fn-settings-tile{display:flex;align-items:center;width:100%;min-height:94px;gap:15px;padding:18px 20px;border:0;border-radius:20px;background:var(--surface);box-shadow:var(--shadow);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),background var(--t) var(--ease)}.fn-settings-tile:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(17,21,34,.08);background:color-mix(in srgb,var(--surface) 92%,var(--rose-bg))}.fn-settings-tile:focus-visible{outline:0;box-shadow:var(--ring),var(--shadow)}.fn-settings-tile-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:15px;background:var(--sky-bg);color:var(--info)}.fn-settings-tile-copy{display:grid;gap:4px;min-width:0}.fn-settings-tile-copy strong{font-size:15px;font-weight:750;letter-spacing:-.015em}.fn-settings-tile-copy small{color:var(--text-2);font-size:12px}.fn-settings-tile-arrow{margin-left:auto;color:var(--text-3);font:400 31px/1 var(--font);transition:transform var(--t) var(--ease),color var(--t) var(--ease)}.fn-settings-tile:hover .fn-settings-tile-arrow{transform:translateX(3px);color:var(--coral)}.fn-settings-modal-content{width:100%}.fn-settings-modal-content>.card{box-shadow:none;background:transparent}.fn-settings-modal-content .setting-row{padding-left:0;padding-right:0}.fn-settings-modal-content .ai-key-hero{margin:0}.fn-settings-modal-content .ai-key-summary,.fn-settings-modal-content .ai-key-cards{padding-left:0;padding-right:0}.fn-settings-modal-content .ai-key-empty{margin-left:0;margin-right:0}.dialog.wide:has(.fn-settings-modal-content){width:min(1040px,calc(100vw - 48px))}@media(min-width:740px){.content:has(.fn-settings-tile){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.content:has(.fn-settings-tile)>.stack{display:contents}.content:has(.fn-settings-tile)>.nv-section-title,.content:has(.fn-settings-tile)>.page-h,.content:has(.fn-settings-tile)>.fn-settings-intro{grid-column:1/-1}.content:has(.fn-settings-tile)>.fn-settings-tile{height:100%}}@media(max-width:739px){.fn-settings-tile{min-height:82px;padding:15px 16px}.dialog.wide:has(.fn-settings-modal-content){width:calc(100vw - 24px)}.fn-settings-modal-content .setting-row{gap:12px}.fn-settings-modal-content .input-unit{max-width:150px}}
.fn-payment-dialog::backdrop{background:#06152bdd}.fn-payment-dialog{width:min(700px,calc(100vw - 72px));max-height:88vh;overflow:auto;padding:28px;border:0;border-radius:20px;background:var(--surface);color:var(--text)}.fn-payment-dialog .fn-payment-admin-content{box-shadow:none;background:transparent;padding:0}@media(max-width:739px){.fn-payment-dialog{width:calc(100vw - 32px);padding:20px}}

/* ---------- Surfaces ---------- */
.card,.stat,.dash-summary{background:var(--surface);border:0!important;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:24px}
.card.flush{padding:0;overflow:hidden}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card-h h2,.card h2{font-size:17px;font-weight:700;margin:0}
.stat{border-radius:22px;padding:20px 22px;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.stat:hover,a.stat:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(17,21,34,.07)}
.stat .k{font-size:12.5px;font-weight:600;color:var(--text-2);text-transform:none;letter-spacing:0}
.stat .v{font-size:32px;font-weight:750;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.grid.cols-4>.stat:nth-child(4n+1){background:var(--grad);color:#fff}
.grid.cols-4>.stat:nth-child(4n+1) .k{color:rgba(255,255,255,.85)}
.grid.cols-4>.stat:nth-child(4n+2){background:var(--surface)}
.grid.cols-4>.stat:nth-child(4n+3){background:var(--blush)}
.grid.cols-4>.stat:nth-child(4n+4){background:var(--sun-bg)}
:root[data-theme=dark] .grid.cols-4>.stat:nth-child(n+3),:root[data-theme=ocean] .grid.cols-4>.stat:nth-child(n+3),:root[data-theme=sunset] .grid.cols-4>.stat:nth-child(n+3){background:var(--surface)}
dialog,.modal{border-radius:28px!important;border:0!important;box-shadow:var(--shadow-lg)!important;animation:nvPop .22s var(--ease)}
.modal-backdrop,.overlay{background:rgba(13,18,36,.42)!important;backdrop-filter:blur(4px)}
.home-wbs-overlay{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(13,18,36,.48);backdrop-filter:blur(5px)}.home-wbs-modal{width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:24px;background:var(--surface);box-shadow:0 28px 70px rgba(13,18,36,.32)}.home-wbs-modal header{display:flex;align-items:center;gap:13px;padding:22px 24px 18px;border-bottom:1px solid var(--border)}.home-wbs-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--grad);color:#fff;font-size:24px}.home-wbs-modal h2{margin:0;font-size:19px}.home-wbs-modal header p{margin:3px 0 0;color:var(--text-2);font-size:12.5px}.home-wbs-close{margin-left:auto;border:0;background:transparent;color:var(--text-2);font-size:26px;line-height:1;cursor:pointer}.home-wbs-body{display:grid;gap:20px;padding:22px 24px}.home-wbs-section{display:grid;gap:9px}.home-wbs-label,.home-wbs-field>span{font-size:12px;font-weight:750;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em}.home-wbs-field em{font-style:normal;font-weight:500;text-transform:none;letter-spacing:0}.home-wbs-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.home-wbs-options label,.home-audience-options label{cursor:pointer}.home-wbs-options label{padding:11px;border:1px solid var(--border);border-radius:13px;font-size:12.5px;font-weight:650}.home-wbs-options input{margin-right:5px}.home-wbs-field{display:grid;gap:8px}.home-wbs-field input{height:42px;padding:0 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);font:inherit;color:var(--text)}.home-wbs-toggle{display:flex;gap:10px;align-items:flex-start;padding:12px 13px;border-radius:14px;background:var(--surface-2);cursor:pointer}.home-wbs-toggle input{margin-top:3px}.home-wbs-toggle b,.home-wbs-toggle small{display:block}.home-wbs-toggle small{margin-top:2px;color:var(--text-2);font-size:12px}.home-audience-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.home-audience-options label{display:grid;gap:2px;padding:12px;border:1px solid var(--border);border-radius:13px;font-size:12.5px}.home-audience-options small{padding-left:20px;color:var(--text-2);font-size:11px}.home-wbs-modal footer{display:flex;justify-content:flex-end;gap:9px;padding:16px 24px;border-top:1px solid var(--border)}.home-wbs-error{margin:0 24px 14px;color:var(--err);font-size:12.5px}@media(max-width:560px){.home-wbs-options,.home-audience-options{grid-template-columns:1fr}.home-wbs-modal{border-radius:20px}}
.address-check-summary{display:flex;align-items:center;gap:9px;padding:14px 16px;border-radius:16px;background:var(--info-bg)}.address-check-summary>span:first-child{font-weight:700;flex:1}.address-check-suggestions h3{margin:3px 0 2px;font-size:14px}.address-check-suggestion{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--border);border-radius:15px;background:var(--surface-2)}.address-check-suggestion-details{display:flex;flex-direction:column;gap:2px;min-width:0}.address-check-suggestion .small,.address-check-suggestion-details .small{overflow:visible;text-overflow:clip;white-space:normal;word-break:break-word;color:var(--text-2)}@media(max-width:620px){.address-check-summary{align-items:flex-start;flex-wrap:wrap}.address-check-suggestion{grid-template-columns:1fr auto}.address-check-suggestion-details{grid-column:1/-1}.address-check-suggestion .badge{grid-column:1/-1}}
.server-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,380px));gap:14px;align-items:start}
.server-card{--server-state:var(--ok);position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;max-width:380px;padding:16px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.server-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--server-state)}
.server-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(17,21,34,.08)}
.server-card-offline,.server-card-error{--server-state:var(--err)}.server-card-pending,.server-card-updating{--server-state:var(--warn)}
.server-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.server-identity{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;align-items:center;min-width:0}
.server-identity-icon{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:color-mix(in srgb,var(--server-state) 13%,var(--surface));color:var(--server-state)}
.server-identity-icon svg{width:16px}.server-card-head h2{margin:0;overflow:hidden;font-size:15px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.server-presence{display:flex;align-items:center;gap:4px;flex-shrink:0}
.server-menu-wrap{position:relative}
.server-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;border-radius:8px;background:transparent;color:var(--text-2);cursor:pointer}
.server-menu-btn:hover{background:var(--surface-2)}
.server-menu{position:absolute;top:30px;right:0;z-index:5;display:grid;gap:7px;min-width:210px;padding:11px 13px;border-radius:13px;background:var(--surface);box-shadow:var(--shadow-lg);font-size:12px;font-weight:600;color:var(--text-2);text-align:left;white-space:normal}
.server-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:stretch}
.server-gauge-circle{min-width:0;background:var(--surface-2);border-radius:13px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:6px 2px 6px;text-align:center}
.server-gauge-circle .server-gauge-ring{position:relative;inset:auto;order:1;width:40px;height:40px;flex-shrink:0;transform:rotate(-90deg)}
.server-gauge-ring circle{fill:none;stroke-width:3}
.server-gauge-track{stroke:var(--border)}
.server-gauge-fill{stroke:var(--ok);stroke-linecap:round}
.server-gauge.warn .server-gauge-fill{stroke:var(--warn)}
.server-gauge.crit .server-gauge-fill{stroke:var(--err)}
.server-gauge-circle .server-gauge-pct{position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:40px;margin:0;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none}
.server-gauge.warn .server-gauge-pct{color:var(--warn)}
.server-gauge.crit .server-gauge-pct{color:var(--err)}
.server-gauge-circle .server-gauge-icon{display:none}
.server-gauge-label{position:relative;order:3;font-size:9px;font-weight:750;color:var(--text-2);letter-spacing:.03em;text-transform:uppercase}
.server-stats-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.server-jobs{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:7px 6px;border-radius:13px;background:var(--surface-2);text-align:center}
.server-jobs strong{font-size:17px;line-height:1.1;font-weight:750;color:var(--text)}
.server-jobs span{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2)}
.server-stats-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;font-weight:700}
.server-stat{display:inline-flex;align-items:center;gap:4px}
.server-stat svg{width:12px;height:12px}
.server-stat.ok{color:var(--ok)}
.server-stat.err{color:var(--err)}
.server-stat.homes{color:var(--text-2)}
.server-stat.buffered{padding:3px 8px;border-radius:999px;background:var(--sun-bg);color:var(--warn);font-size:11px}
.server-alert{padding:7px 10px;border-radius:10px;font-size:11.5px;font-weight:600;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.server-alert.error{background:var(--err-bg);color:var(--err)}
.server-actions{display:flex;align-items:center;gap:6px;padding-top:4px;flex-wrap:wrap}
.server-actions .server-action{display:inline-flex;align-items:center;justify-content:center;gap:0;width:30px;min-height:30px;padding:0;border-radius:9px;font-size:13px;font-weight:700}
.server-actions .server-action svg{width:14px}.server-actions .server-action i{font-size:13px;line-height:1}
.server-action-logs{background:var(--info-bg)!important;color:var(--info)!important;border-color:transparent!important}
.server-action-pause{background:var(--sun-bg)!important;color:var(--warn)!important;border-color:transparent!important}
.server-action-restart{background:var(--mint-bg)!important;color:var(--ok)!important;border-color:transparent!important}
.server-action-config{background:var(--surface-2)!important;color:var(--text)!important}
.server-action-label{line-height:1}
.btn.icon-only{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;gap:0}
.btn.icon-only i{font-size:14px}
@media(max-width:420px){.server-grid{grid-template-columns:1fr}.server-card{padding:14px;max-width:none}.server-card-head h2{font-size:14px}}

/* Homes: address actions and the full dossier shown from the table eye button. */
.wohnung-map-link{color:var(--text-2);transition:color var(--t-fast)}.wohnung-map-link:hover{color:var(--info)}.wohnung-map-link>svg{width:14px;height:14px;display:block}
.home-address-cell{display:flex;align-items:center;gap:7px}.address-map-link,.listing-address-link{display:inline-flex;align-items:center;gap:5px;border-radius:8px;color:var(--info);background:var(--info-bg);text-decoration:none;transition:transform var(--t-fast),background var(--t-fast),color var(--t-fast)}.address-map-link{display:grid;place-items:center;width:24px;height:24px}.listing-address-link{padding:5px 7px;font-weight:650}.address-map-link:hover,.listing-address-link:hover{background:var(--info);color:#fff;transform:translateY(-1px)}
.dialog.wide:has(.home-detail-modal){width:min(1120px,calc(100vw - 32px));max-height:calc(100vh - 32px)}.home-detail-modal{padding:0}.home-dossier{display:flex;flex-direction:column;gap:18px}.home-dossier-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:4px 2px 18px;border-bottom:1px solid var(--border)}.home-dossier-title{display:flex;align-items:center;gap:14px;min-width:0}.home-dossier-icon{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:16px;background:var(--grad);color:#fff;box-shadow:0 10px 22px rgba(240,79,154,.22)}.home-dossier-icon svg{width:24px}.home-dossier-title h2{margin:0;font-size:22px}.home-dossier-title p{margin:3px 0 0;color:var(--text-2);font-size:13px;font-weight:600}.home-dossier-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home-dossier-metric{display:flex;align-items:center;gap:11px;padding:14px;border-radius:18px;background:var(--surface-2)}.home-dossier-metric:nth-child(1){background:var(--rose-bg)}.home-dossier-metric:nth-child(2){background:var(--sky-bg)}.home-dossier-metric:nth-child(3){background:var(--mint-bg)}.home-dossier-metric:nth-child(4){background:var(--blush)}.home-dossier-metric>svg{width:20px;height:20px;color:var(--coral);flex:none}.home-dossier-metric:nth-child(2)>svg{color:var(--info)}.home-dossier-metric:nth-child(3)>svg{color:var(--ok)}.home-dossier-metric:nth-child(4)>svg{color:#7c3aed}.home-dossier-metric b{display:block;font-size:18px;line-height:1.1;font-variant-numeric:tabular-nums}.home-dossier-metric small{display:block;margin-top:3px;font-size:11px;color:var(--text-2);font-weight:700}.home-dossier-grid,.home-dossier-lower{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(270px,.92fr);gap:18px}.home-dossier-facts,.home-dossier-location,.home-dossier-timeline,.home-dossier-matches{border-radius:20px;padding:18px;background:var(--surface-2)}.home-dossier-facts h3,.home-dossier-location h3,.home-dossier-timeline h3,.home-dossier-matches h3{margin:0 0 13px;font-size:15px}.home-dossier-facts dl{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin:0}.home-dossier-facts dl div{display:flex;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--border);font-size:12.5px}.home-dossier-facts dt{color:var(--text-2)}.home-dossier-facts dd{margin:0;font-weight:700;text-align:right}.home-dossier-location{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:205px;text-align:center;background:linear-gradient(135deg,#2A174E,#432360);color:#fff}.home-dossier-location>svg{width:34px;height:34px;color:#FF5B8E;filter:drop-shadow(0 6px 7px rgba(255,91,142,.35))}.home-dossier-location h3{margin:10px 0 4px;color:#fff}.home-dossier-location p{margin:0 0 14px;color:rgba(255,255,255,.72);font-size:12px}.home-dossier-location .btn{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.35)}.home-dossier-location .btn:hover{background:rgba(255,255,255,.26)}.home-dossier-event,.home-dossier-match{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12.5px}.home-dossier-event:last-child,.home-dossier-match:last-child{border-bottom:0}.home-dossier-event i{width:9px;height:9px;border-radius:50%;background:var(--info);box-shadow:0 0 0 4px var(--info-bg);flex:none}.home-dossier-event div{display:flex;flex-direction:column;min-width:0}.home-dossier-event b{font-size:12px}.home-dossier-event span{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-dossier-event time{margin-left:auto;color:var(--text-3);font-size:11px;text-align:right}.home-dossier-match{justify-content:space-between}.home-dossier-match>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
@media(max-width:720px){.home-dossier-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.home-dossier-grid,.home-dossier-lower{grid-template-columns:1fr}.home-dossier-facts dl{grid-template-columns:1fr}.home-dossier-hero{align-items:center}.home-dossier-title h2{font-size:18px}.home-dossier-icon{width:40px;height:40px}.home-dossier-event time{display:none}}

/* ---------- Buttons ---------- */
.btn{height:42px;padding:0 20px;border-radius:14px;border:1px solid #C8D7FB;font-weight:650;font-size:14px;background:var(--sky-bg);color:#244B9B;box-shadow:0 1px 2px rgba(62,106,225,.08);transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast) var(--ease),box-shadow var(--t-fast),color var(--t-fast)}
.btn:hover{background:#D7E4FF;border-color:#9DB9F5;color:#183B85;box-shadow:0 7px 16px rgba(62,106,225,.14)}
.btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(62,106,225,.28),0 7px 16px rgba(62,106,225,.14)}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--rail);color:#fff;border-radius:999px}
.btn.primary:hover{background:#1E2541;filter:none;box-shadow:0 8px 20px rgba(13,18,36,.18)}
.btn.accent{background:var(--grad);color:#fff;border-radius:999px}
.btn.accent:hover{background:var(--grad);filter:brightness(1.05);box-shadow:0 8px 20px rgba(240,79,154,.25)}
.btn.danger{background:var(--rose-bg);color:var(--err)}
.btn.danger:hover{background:var(--err);color:#fff}
.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text-2);box-shadow:none}
.btn.ghost:hover{background:var(--surface);border-color:#C8D7FB;color:#244B9B;box-shadow:0 4px 12px rgba(17,21,34,.06)}
.btn.sm{height:32px;padding:0 13px;border-radius:10px;font-size:13px}
.btn.icon{width:42px;padding:0;border-radius:14px}
.btn.sm.icon{width:32px}
.chip-filter,.btn-filter-main{min-height:38px;padding:0 14px;border:1px solid #C8D7FB;border-radius:12px;background:var(--sky-bg);color:#244B9B;box-shadow:0 1px 2px rgba(62,106,225,.08);font:650 13px var(--font);cursor:pointer}
.chip-filter:hover,.btn-filter-main:hover{border-color:#9DB9F5;background:#D7E4FF;color:#183B85;box-shadow:0 7px 16px rgba(62,106,225,.14)}
.target-group-cell{white-space:nowrap}.target-group-tag{display:inline-flex;align-items:center;height:25px;padding:0 9px;border-radius:999px;background:var(--muted-bg);color:var(--text-2);font:650 11px var(--font)}.target-group-tag.senior{background:var(--sun-bg);color:#a16207}.target-group-tag.student{background:var(--info-bg);color:var(--info)}.match-pct{font-size:14px;margin-right:7px}.match-pct.lime{color:#65a30d}.match-pct.orange{color:#d97706}.match-pct.red{color:#dc2626}.ratio-pill small{color:var(--text-3);font-size:11px}
:root[data-theme=dark] .btn.primary,:root[data-theme=ocean] .btn.primary,:root[data-theme=sunset] .btn.primary{background:var(--primary);color:var(--primary-text)}
:root[data-theme=dark] .btn:not(.primary):not(.accent):not(.danger):not(.ghost),:root[data-theme=ocean] .btn:not(.primary):not(.accent):not(.danger):not(.ghost),:root[data-theme=sunset] .btn:not(.primary):not(.accent):not(.danger):not(.ghost){background:var(--surface-2);border-color:var(--border);color:var(--text)}

/* ---------- Inputs ---------- */
.field{gap:7px}
.field>.row{display:flex;align-items:center;min-height:18px;gap:5px!important}
.field>.row label,.field>label,.label{font-size:12.5px;font-weight:700;line-height:1.35;color:var(--text);letter-spacing:.005em}
.input,select.input,textarea.input{height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:500;line-height:1.4;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}
.card .input,.modal .input,dialog .input{background:#FDFCFA}
:root[data-theme=dark] .card .input,:root[data-theme=ocean] .card .input,:root[data-theme=sunset] .card .input{background:var(--surface-2)}
.input:hover:not(:disabled){border-color:color-mix(in srgb,var(--text-2) 42%,var(--border))}
.input:focus{outline:0;border-color:var(--coral);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 18%,transparent)}
.input::placeholder{color:var(--text-3);font-weight:450}
.input:disabled{opacity:.58;cursor:not-allowed;background:var(--muted-bg)}
.field:has(.input[aria-invalid=true])>.input,.field:has(.field-error)>.input{border-color:var(--err);background:color-mix(in srgb,var(--err-bg) 35%,var(--surface))}
select.input{padding-right:38px;cursor:pointer}
textarea.input{min-height:108px;padding:12px 14px;resize:vertical}
.field-error{margin-top:-1px;font-size:12px;line-height:1.4;color:var(--err)}
input[type=checkbox],input[type=radio]{accent-color:var(--coral)}
.topbar .search .input{border-radius:999px;background:var(--surface)}

/* ---------- Tabs / segmented ---------- */
.seg{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:var(--muted-bg);border:0}
.seg button{height:34px;padding:0 16px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 2px 8px rgba(17,21,34,.08)}
.tabs{display:flex;gap:26px;border-bottom:1px solid var(--border);background:none;padding:0;border-radius:0}
.tabs button{position:relative;padding:10px 2px;border:0;background:none;font:inherit;font-weight:600;color:var(--text-3);cursor:pointer;border-radius:0}
.tabs button[aria-selected=true]{color:var(--text);background:none;box-shadow:none}
.tabs button[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px;background:var(--ink)}

/* ---------- Tables → airy lists ---------- */
.table-wrap{border:0}
table.t,.table{border-collapse:separate;border-spacing:0 4px;width:100%}
table.t th,.table th{padding:10px 16px;background:transparent!important;border:0!important;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.table-sort{appearance:none;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:0;cursor:pointer;text-align:inherit}
.table-sort:hover,.table-sort:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:3px;outline:0}
table.t td,.table td{padding:14px 16px;border:0!important;border-bottom:1px solid #F1EEEA!important;background:transparent;vertical-align:middle}
table.t tbody tr,.table tbody tr{transition:background var(--t-fast)}
table.t tbody tr:hover td,.table tbody tr:hover td{background:var(--surface-2)}
table.t tbody tr:hover td:first-child{border-radius:14px 0 0 14px}
table.t tbody tr:hover td:last-child{border-radius:0 14px 14px 0}
table.t tbody tr:last-child td{border-bottom:0!important}
table.t td.num,table.t th.num{font-variant-numeric:tabular-nums}
table.t td.num{font-weight:700}
.card.flush .table-wrap{padding:6px 10px 10px}
.fn-payment-admin-content{display:grid;gap:16px}.fn-payment-admin-content>.card-h{margin-bottom:0}.fn-payment-state{padding:5px 9px;border-radius:999px;background:var(--info-bg);color:var(--info);font-size:11px;font-weight:750}.fn-payment-provider{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:17px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2)}.fn-payment-provider-head,.fn-payment-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px}.fn-payment-provider h3{margin:0;font-size:15px}.fn-payment-provider-head>span{padding:4px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn);font-size:11px;font-weight:750}.fn-payment-provider-head>span.ok{background:var(--ok-bg);color:var(--ok)}.fn-payment-field{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--text-2)}.fn-payment-field small{font-weight:400}.fn-payment-toggle{display:flex;align-items:center;gap:9px;min-height:38px;font-size:13px;font-weight:650}.fn-payment-toggle input{width:18px;height:18px;accent-color:var(--accent)}.fn-payment-actions{padding-top:3px}.fn-payment-actions .small{min-height:18px}@media(max-width:640px){.fn-payment-provider{grid-template-columns:1fr;padding:14px}.fn-payment-actions{align-items:flex-start;flex-direction:column}}
:root[data-theme=dark] table.t td,:root[data-theme=ocean] table.t td,:root[data-theme=sunset] table.t td{border-bottom-color:var(--border)!important}

/* ---------- Badges & chips ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;border:0;font-size:12px;font-weight:650;background:var(--muted-bg);color:var(--text-2)}
.badge.ok{background:var(--ok-bg);color:var(--ok)}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.err{background:var(--err-bg);color:var(--err)}
.badge.info{background:var(--info-bg);color:var(--info)}
.chip{border-radius:999px;border:0;background:var(--muted-bg)}
.chip.amber{background:var(--rose-bg);color:#C2412F}
.test-banner{border-radius:0}
.verify-banner{border-radius:20px;background:var(--blush);border:0}

/* ---------- Loaders ---------- */
.skeleton,.sk{background:linear-gradient(90deg,#EFECE8 0%,#F8F6F3 50%,#EFECE8 100%)!important;background-size:200% 100%!important;animation:nvShim 1.3s linear infinite!important;border-radius:12px}
@keyframes nvShim{to{background-position:-200% 0}}
.spinner{border-color:var(--coral) transparent var(--pink) transparent!important}
.topbar-progress{background:var(--grad);height:3px}

/* ---------- Dashboard (dx-*) ---------- */
.dash-overview{gap:22px}
.dx-hero{display:grid;grid-template-columns:minmax(300px,1.05fr) minmax(300px,1.05fr) minmax(280px,.95fr);gap:22px;align-items:start}
.dx-kpi.compact{padding:18px 20px 16px}
.dx-kpi.compact .dx-kpi-v{font-size:38px}
.dx-kpi.compact .dx-bars{height:60px;margin:10px 0 10px;gap:8px}
.dx-kpi.compact .dx-kpi-foot{padding-top:10px}
.dx-kpi.compact .dx-kpi-foot b{font-size:16px}
.dx-missed-applications{background:linear-gradient(135deg,#d97706,#f59e0b)!important;box-shadow:0 18px 40px rgba(217,119,6,.22)}
.dx-missed-applications:hover{box-shadow:0 24px 50px rgba(217,119,6,.3)}
.dx-homes.compact{padding:18px 20px!important;gap:12px}
.dx-homes.compact .dx-bars{height:68px;margin:2px 0 0;gap:8px}
.dx-homes.compact .dx-bar i{background:var(--rail);opacity:.18}
.dx-homes.compact .dx-bar.hi i{opacity:.4}
.dx-homes.compact .dx-bar span{color:var(--text-2)}
.dx-homes-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dx-home-stat{display:flex;flex-direction:column;gap:3px;padding:10px 11px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.dx-home-stat small{font-size:11px;color:var(--text-2)}
.dx-home-stat b{font-size:21px;line-height:1;font-weight:800;font-variant-numeric:tabular-nums}
.dx-home-stat.active{background:var(--mint-bg);border-color:transparent}.dx-home-stat.active b{color:#4D7C0F}
.dx-home-stat.paused{background:var(--sun-bg);border-color:transparent}.dx-home-stat.paused b{color:var(--warn)}
.dx-service{display:flex;flex-direction:column;gap:10px;flex:1;padding:14px 18px;border-radius:22px;background:var(--surface);text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:transform var(--t) var(--ease),box-shadow var(--t)}
.dx-service:hover{transform:translateX(3px);box-shadow:0 12px 28px rgba(17,21,34,.07)}
.dx-service-h{display:flex;align-items:center;justify-content:space-between}
.dx-service-h b{font-size:14px;font-weight:700}
.dx-service-total{font-size:13px;font-weight:700;color:var(--text-2)}
.dx-service-body{display:flex;align-items:center;gap:12px}.dx-service-ring{width:58px;height:58px;border-radius:50%;display:grid;place-content:center;text-align:center;position:relative;flex:none}.dx-service-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--surface)}.dx-service-ring i,.dx-service-ring small{position:relative;font-style:normal;line-height:1}.dx-service-ring i{font-weight:800;font-size:15px}.dx-service-ring small{font-size:9px;color:var(--text-2);margin-top:2px}.dx-service-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1}
.dx-service-stats div{display:flex;flex-direction:column;gap:1px}
.dx-service-stats small{font-size:11px;color:var(--text-2)}
.dx-service-stats b{font-size:16px;font-weight:750}
.dx-kpi{position:relative;display:flex;flex-direction:column;gap:4px;padding:26px 28px 22px;border-radius:30px;background:var(--grad);color:#fff;text-decoration:none;overflow:hidden;box-shadow:0 18px 40px rgba(240,79,154,.22);transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.dx-kpi:before{content:"";position:absolute;right:-60px;top:-80px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.10)}
.dx-kpi:hover{transform:translateY(-3px);box-shadow:0 24px 50px rgba(240,79,154,.3)}
.dx-kpi-h,.dx-card-h{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:600}
.dx-kpi-h svg{opacity:.85}
.dx-card-h{color:var(--text)}
.dx-card-h svg{color:var(--text-3)}
.dx-kpi-v{font-size:56px;font-weight:800;letter-spacing:-.045em;line-height:1.05;font-variant-numeric:tabular-nums}
.dx-kpi-sub{font-size:13px;opacity:.82;margin-top:-2px}
.dx-bars{display:flex;align-items:flex-end;gap:12px;height:96px;margin:16px 0 14px}
.dx-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.dx-bar b{font-size:11px;line-height:1;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.dx-bar i{display:block;min-height:14px;width:100%;max-width:26px;border-radius:999px;background:rgba(255,255,255,.32);transform-origin:bottom;animation:nvGrow .7s var(--ease) both}
.dx-bar.hi i{background:#fff}
.dx-bar span{font-size:10.5px;opacity:.8;white-space:nowrap}
.dx-bar:nth-child(2) i{animation-delay:.05s}.dx-bar:nth-child(3) i{animation-delay:.1s}.dx-bar:nth-child(4) i{animation-delay:.15s}.dx-bar:nth-child(5) i{animation-delay:.2s}
@keyframes nvGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.dx-kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.dx-kpi-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.dx-kpi-offen{display:flex;flex-direction:column;gap:2px;align-items:flex-end;flex:none;padding-left:14px;border-left:1px dashed rgba(255,255,255,.35)}
.dx-kpi-offen small{font-size:12px;opacity:.82}
.dx-kpi-offen b{font-size:22px;font-weight:750;font-variant-numeric:tabular-nums}
.dx-col{display:flex;flex-direction:column;gap:22px;min-width:0}
.dx-homes{display:flex;flex-direction:column;gap:12px;padding:26px 28px!important;border-radius:30px!important;background:var(--surface-2)!important;text-decoration:none;color:var(--text);transition:transform var(--t) var(--ease)}
.dx-homes:hover{transform:translateY(-3px)}
.dx-big{font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1.1;margin-bottom:14px;font-variant-numeric:tabular-nums}
.dx-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.dx-legend li{display:grid;grid-template-columns:10px auto;column-gap:8px;align-items:center;font-size:12.5px;color:var(--text-2)}
.dx-legend li i{width:9px;height:9px;border-radius:50%}
.dx-legend li b{grid-column:2;font-size:16px;color:var(--text);font-weight:750}
.dx-ring-wrap{position:relative;display:grid;place-items:center;flex:none}
.dx-ring circle{transition:stroke-dasharray .8s var(--ease)}
.dx-ring-c{position:absolute;display:flex;flex-direction:column;align-items:center;font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1}
.dx-ring-c small{font-size:11px;font-weight:600;color:var(--text-2);letter-spacing:0;margin-top:3px}
.dx-side{display:flex;flex-direction:column;gap:14px}
.dx-pill{display:flex;align-items:center;gap:16px;flex:1;padding:14px 18px 14px 14px;border-radius:26px;background:var(--surface);text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:transform var(--t) var(--ease),box-shadow var(--t)}
.dx-pill:hover{transform:translateX(3px);box-shadow:0 12px 28px rgba(17,21,34,.07)}
.dx-pill-num{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:none;min-width:76px;height:76px;padding:0 10px;border-radius:20px;background:var(--rose-bg);color:var(--ink)}
.dx-pill-num strong{font-size:21px;font-weight:800;letter-spacing:-.03em;line-height:1}
.dx-pill-num svg{opacity:.65}
.dx-pill.mint .dx-pill-num{background:var(--mint-bg)}.dx-pill.sun .dx-pill-num{background:var(--sun-bg)}.dx-pill.sky .dx-pill-num{background:var(--sky-bg)}.dx-pill.rose .dx-pill-num{background:var(--rose-bg)}
.dx-pill-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.dx-pill-body b{font-size:15px;font-weight:700}
.dx-pill-body small{font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-track{display:block;height:8px;margin-top:8px;border-radius:999px;background:var(--dx-track);overflow:hidden}
.dx-track i{display:block;height:100%;border-radius:inherit;background:var(--grad);animation:nvWide .8s var(--ease) both;transform-origin:left}
.dx-pill.mint .dx-track i,.dx-pill.sky .dx-track i{background:var(--rail)}
:root[data-theme=dark] .dx-pill.mint .dx-track i,:root[data-theme=dark] .dx-pill.sky .dx-track i{background:var(--text)}
@keyframes nvWide{from{transform:scaleX(0)}to{transform:scaleX(1)}}
:root[data-theme=dark] .dx-pill-num,:root[data-theme=ocean] .dx-pill-num,:root[data-theme=sunset] .dx-pill-num{color:#111522}
.dx-hbars{display:flex;flex-direction:column;gap:6px;margin:-4px 0 16px}
.dx-hbars i{display:block;height:8px;border-radius:999px;animation:nvWide .8s var(--ease) both;transform-origin:left}
.dx-hbars .c0{background:var(--coral)}.dx-hbars .c1{background:var(--pink)}.dx-hbars .c2{background:var(--sun)}.dx-hbars .c3{background:var(--rail)}
:root[data-theme=dark] .dx-hbars .c3{background:var(--text-2)}
.kv dt{color:var(--text-2)}.kv dd{font-weight:700;font-variant-numeric:tabular-nums}
.pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 10px;flex-wrap:wrap}
.table-page-size{width:auto!important;min-width:72px;flex:0 0 auto}.table-page-size.push-right{margin-left:auto}@media(max-width:640px){.table-page-size.push-right{margin-left:0}}
.detail-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;align-items:start}
.detail-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:20px}
.detail-card .card-h{margin-bottom:12px}
.detail-card .card-h .ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:var(--grad);color:#fff;font-size:15px;margin-right:8px}
.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.field-item{background:var(--muted-bg);border-radius:12px;padding:10px 12px;min-width:0}
.field-item .field-label{font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field-item .field-value{font-weight:650;word-break:break-word;font-size:13px}
.application-fields-card .btn{margin-top:10px}.dialog.wide:has(.application-detail-modal){width:min(1180px,calc(100vw - 48px));max-height:calc(100vh - 32px)}.application-detail-modal .page-h{padding:2px 2px 16px;border-bottom:1px solid var(--border);align-items:flex-start}.application-detail-modal .detail-cards{grid-template-columns:minmax(360px,1.2fr) minmax(250px,.8fr)}.application-detail-modal>.detail-card{border:1px solid var(--border);box-shadow:none}.application-detail-modal .kv{grid-template-columns:150px minmax(0,1fr);gap:9px 16px}.application-detail-modal .detail-card{border:1px solid var(--border);box-shadow:none}.application-detail-modal .detail-card h2{font-size:16px}
.customer-quick{display:flex;flex-direction:column;gap:16px}.customer-quick-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-radius:18px;background:linear-gradient(135deg,var(--surface-2),var(--info-bg))}.customer-quick-hero h2{margin:4px 0}.customer-quick-hero p{margin:0;color:var(--text-2)}.customer-quick-no{font:700 12px var(--mono);color:var(--text-2)}.customer-quick-tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.customer-quick .detail-card{border:1px solid var(--border);box-shadow:none}@media(max-width:640px){.customer-quick-hero{flex-direction:column}.customer-quick-tags{justify-content:flex-start}.application-detail-modal .detail-cards{grid-template-columns:1fr}.application-detail-modal .kv{grid-template-columns:1fr}}
.kunde-name{font-size:15px;font-weight:750;display:block}
.kunde-sub{color:var(--text-2);font-size:12px}
.dash-alerts{background:var(--rose-bg)!important;box-shadow:none!important}
/* Quick-access summary cards: soft list, different rhythm per group */
.dash-summary{padding:0!important;border-radius:26px!important}
.dash-summary-h{padding:18px 22px 8px!important;border:0!important}
.dash-summary-h h2{font-size:16px!important;font-weight:700}
.dash-summary-h .ico{width:34px!important;height:34px!important;border-radius:12px!important;background:var(--rose-bg)!important;color:var(--coral)!important}
.dash-summary-h .ico svg{width:17px!important;height:17px!important}
.dash-summary-grid>.dash-summary:nth-child(2) .dash-summary-h .ico{background:var(--blush)!important;color:var(--pink)!important}
.dash-summary-grid>.dash-summary:nth-child(3) .dash-summary-h .ico{background:var(--sun-bg)!important;color:#B7791F!important}
.dash-summary-grid>.dash-summary:nth-child(4){background:var(--rail)!important;color:#fff}
.dash-summary-grid>.dash-summary:nth-child(4) h2{color:#fff}
.dash-summary-grid>.dash-summary:nth-child(4) .dash-summary-h .ico{background:rgba(255,255,255,.1)!important;color:#fff!important}
.dash-summary-grid>.dash-summary:nth-child(4) .dash-summary-item{color:#fff}
.dash-summary-grid>.dash-summary:nth-child(4) .dash-summary-item .label{color:#8E93A8}
.dash-summary-grid>.dash-summary:nth-child(4) .dash-summary-item:hover{background:rgba(255,255,255,.06)}
.dash-summary-list{padding:4px 10px 12px;gap:4px}
.dash-summary-item{border:0!important;border-radius:16px;min-height:52px!important;padding:8px 12px!important;grid-template-columns:30px minmax(0,1fr) auto 10px!important}
.dash-summary-item:hover{background:var(--surface-2)!important;box-shadow:none!important}
.dash-summary-item .ico{width:30px!important;height:30px!important;border-radius:10px!important}
.dash-summary-item .label{text-transform:none!important;letter-spacing:0!important;font-size:13px!important;font-weight:600!important}
.dash-summary-item strong{font-size:19px!important;font-weight:800}

/* ---------- Responsive ---------- */
@media (max-width:1240px){.dx-hero{grid-template-columns:1fr 1fr}.dx-side{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.dx-pill{min-width:260px}}
@media (max-width:1000px){.nv-greet{display:none}.nv-search{margin-left:0}}
.nv-top-logo{display:none}
@media (min-width:851px){.nv-shell .menu-btn{display:none}}
@media (max-width:850px){
  .nv-shell{grid-template-columns:minmax(0,1fr)!important}
  .nv-shell .main{grid-column:1}
  .nv-shell .nv-rail{position:fixed!important;left:0;bottom:0;height:100vh}
  .nv-shell .content{padding:8px 16px 32px}
  .nv-top{padding:12px 16px 8px!important;min-height:64px}
  .nv-banner{margin:0 16px 8px}
  .nv-shell:not(.nv-cust) .nv-top-logo{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--grad);box-shadow:0 6px 16px rgba(240,79,154,.3)}
  .nv-shell:not(.nv-cust) .nv-top-logo img{width:22px;height:22px;border-radius:6px}
  .nv-cta span{display:none}.nv-cta{width:46px!important;min-width:46px;flex:none;padding:0!important}.nv-search{min-width:0}
  .nv-search{flex:1}
  h1{font-size:28px}
  .dx-hero{grid-template-columns:1fr}.dx-side{flex-direction:column}.dx-kpi-v{font-size:46px}
  /* admin: drawer */
  .nv-shell:not(.nv-cust) .nv-rail{width:272px!important;transform:translateX(-100%)!important;transition:transform var(--t) var(--ease)}
  .nv-shell:not(.nv-cust) .nv-rail.open{transform:none!important;box-shadow:var(--shadow-lg)!important}
  .nv-shell:not(.nv-cust) .nv-rail .lbl,.nv-shell:not(.nv-cust) .nv-rail .nav-section span{opacity:1;transform:none}
  .nv-shell:not(.nv-cust) .nv-rail .nv-who{display:flex!important}.nv-shell:not(.nv-cust) .nv-rail .nv-out{display:grid!important}
  .nv-scrim{position:fixed;inset:0;z-index:890;background:rgba(13,18,36,.45);backdrop-filter:blur(2px)}
  /* customer: bottom tab bar */
  .nv-cust .nv-rail,.nv-cust .nv-rail:hover,.nv-cust .nv-rail:focus-within{top:auto;bottom:10px;left:10px;right:10px;width:auto!important;height:auto;padding:6px!important;border-radius:24px!important;flex-direction:row;box-shadow:0 12px 30px rgba(13,18,36,.3)!important}
  .nv-cust .nv-rail .nav{flex-direction:row;margin:0;flex:1;justify-content:space-around;overflow-x:auto}
  .nv-cust .nv-rail .nav a{padding:0 14px}
  .nv-cust .nv-rail .lbl,.nv-cust .nv-logo,.nv-cust .nv-orb,.nv-cust .nv-rail>div[style],.nv-cust .nv-avatar{display:none}
  .nv-cust .nv-rail .nav a.active:before{display:none}
  .nv-cust .nv-rail .nav a.active:after{right:auto;left:50%;top:auto;bottom:4px;margin:0 0 0 -3px}
  .nv-cust .nv-foot{padding:0}.nv-cust .nv-rail .nv-out{display:grid!important}
  .nv-cust .main{padding-bottom:84px}
}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

.nv-cust .content{padding-top:40px}

/* ---------- Public pages (landing, login, register) ---------- */
.lp{--lp-navy:#0D1224;--lp-ink:#111522;--lp-amber:#FF735F;--lp-soft:#8C8D96;--lp-light:#FAF9F7;--lp-card:#fff;background:var(--bg)}
.auth-wrap{background:radial-gradient(600px 400px at 85% 10%,rgba(255,118,94,.14),transparent 70%),radial-gradient(500px 380px at 10% 95%,rgba(240,79,154,.10),transparent 70%),var(--bg)}
.auth-card{border-radius:32px!important;padding:36px!important;box-shadow:0 30px 70px rgba(17,21,34,.08)!important}
@media (max-height:1080px){.nv-orb{display:none}}
.nv-rail .nav a[data-fn-agent-nav]{white-space:nowrap}
/* collapsed (and tablet) customer rail: account switcher shows only its service chip */
.nv-cust.nv-collapsed .nv-rail>div[style]>.btn>:not(.chip){display:none}
.nv-cust.nv-collapsed .nv-rail>div[style]>.btn{display:flex!important;justify-content:center}
@media (max-width:1100px){.nv-cust .nv-rail>div[style]>.btn>:not(.chip){display:none}.nv-cust .nv-rail>div[style]>.btn{display:flex!important;justify-content:center}}

/* Public header: Login must stay reachable at every width (mobile fix) */
.pub-header{flex-wrap:nowrap;min-width:0}
.pub-header .btn.ghost[href*="login"]{white-space:nowrap;flex:0 0 auto}
@media(max-width:560px){
  .pub-header{gap:8px;padding-inline:12px}
  .pub-header .logo{height:30px;width:auto;max-width:96px;object-fit:contain}
  .pub-header .flag-select-label,.pub-header .flag-select-caret{display:none}
  .pub-header .flag-select-btn{padding:8px 10px;min-width:0}
  .pub-header .btn.icon{padding:8px 10px}
  .pub-header .btn.ghost[href*="login"]{padding:9px 14px;background:var(--text,#111);color:var(--surface,#fff);border-color:transparent;font-weight:600}
}
@media(max-width:360px){.pub-header .logo{max-width:80px}.pub-header .btn.ghost[href*="login"]{padding:9px 11px}}

/* ===== Admin overview: compact operational grid (replaces the 3 tall columns) ===== */
.dash-overview .dx-hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:stretch}
.dash-overview .dx-col,.dash-overview .dx-side{display:contents}
.dash-overview .dx-hero>*>*{min-width:0;margin:0}
/* row 1: KPI strip */
.dash-overview .dx-kpi{grid-column:span 4;order:1}
.dash-overview .dx-homes{grid-column:span 4;order:2}
.dash-overview .dx-side>.dx-pill.sky{grid-column:span 2;order:3}
.dash-overview .dx-side>.dx-pill.mint{grid-column:span 2;order:4}
/* row 2: services */
.dash-overview .dx-service{grid-column:span 4;order:5}
/* row 3: latency + filler capacity */
.dash-overview .dx-hero>.dx-col:last-child>.card:nth-child(1){grid-column:span 6;order:6}
.dash-overview .dx-hero>.dx-col:last-child>.card:nth-child(2){grid-column:span 6;order:7}
/* compact tiles */
.dash-overview .dx-kpi.compact,.dash-overview .dx-homes.compact{padding:16px 18px}
.dash-overview .dx-pill{flex-direction:column;justify-content:center;gap:6px;padding:14px 16px;min-height:0;height:100%}
.dash-overview .dx-pill .dx-pill-num{width:auto;height:auto;background:none;flex-direction:row;gap:8px;align-items:center}
.dash-overview .dx-pill .dx-pill-num strong{font-size:28px;line-height:1}
.dash-overview .dx-pill .dx-pill-body{width:100%}
.dash-overview .dx-pill .dx-pill-body small{display:block;white-space:normal}
.dash-overview .dx-service{height:100%}
.dash-overview .dx-hero>.dx-col:last-child>.card{height:100%}
@media(max-width:1200px){
  .dash-overview .dx-kpi,.dash-overview .dx-homes{grid-column:span 6}
  .dash-overview .dx-side>.dx-pill.sky,.dash-overview .dx-side>.dx-pill.mint{grid-column:span 6}
  .dash-overview .dx-service{grid-column:span 4}
}
@media(max-width:850px){
  .dash-overview .dx-hero>.dx-col:last-child>.card{grid-column:span 12!important}
}
@media(max-width:640px){
  .dash-overview .dx-service{grid-column:span 12}
  .dash-overview .dx-kpi,.dash-overview .dx-homes{grid-column:span 12}
}
@media(max-width:520px){.dash-overview .dx-hero{gap:12px}.dash-overview .dx-side>.dx-pill.sky,.dash-overview .dx-side>.dx-pill.mint{grid-column:span 6}}

/* ===== Overview: Pipeline + Filler-Kapazität redesign ===== */
.dx-pipeline .card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dx-bottleneck{font:700 11px var(--font);color:var(--coral);background:var(--coral-bg,rgba(255,90,90,.12));padding:4px 10px;border-radius:999px;white-space:nowrap}
.dx-pipeline-rows{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.dx-pipeline-row{display:grid;grid-template-columns:140px 1fr 72px;align-items:center;gap:10px}
.dx-pipeline-label{font-size:12.5px;color:var(--text-2)}
.dx-pipeline-track{height:9px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.dx-pipeline-track i{display:block;height:100%;border-radius:999px;animation:nvWide .8s var(--ease) both;transform-origin:left}
.dx-pipeline-track .c0{background:var(--coral)}.dx-pipeline-track .c1{background:var(--pink)}.dx-pipeline-track .c2{background:var(--sun)}.dx-pipeline-track .c3{background:var(--rail)}
:root[data-theme=dark] .dx-pipeline-track .c3{background:var(--text-2)}
.dx-pipeline-val{font-weight:800;font-variant-numeric:tabular-nums;text-align:right;font-size:12.5px}
.dx-pipeline-row.hot .dx-pipeline-label{color:var(--coral);font-weight:700}

.dx-capacity-hero{display:flex;align-items:center;gap:18px;margin-top:6px;flex-wrap:wrap}
.dx-capacity-eta{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:92px}
.dx-capacity-eta b{font-size:34px;font-weight:800;line-height:1}
.dx-capacity-eta small{color:var(--text-2);font-size:11px;max-width:110px}
.dx-capacity-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex:1;min-width:200px}
.dx-capacity-stats>div{background:var(--surface-2);border-radius:12px;padding:8px 10px}
.dx-capacity-stats small{display:block;color:var(--text-2);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.dx-capacity-stats b{font-weight:800;font-variant-numeric:tabular-nums}
.dx-capacity-stats>div.warn{background:var(--warn-bg,rgba(255,170,0,.15))}
.dx-capacity-stats>div.warn b{color:var(--sun)}
.dx-capacity.tone-critical .dx-capacity-eta b{color:var(--err)}
.dx-capacity.tone-warning .dx-capacity-eta b{color:var(--sun)}
.dx-capacity.tone-OK .dx-capacity-eta b{color:var(--ok)}
@media(max-width:520px){.dx-pipeline-row{grid-template-columns:1fr;gap:4px}.dx-pipeline-val{text-align:left}.dx-capacity-hero{flex-direction:column;align-items:stretch}.dx-capacity-stats{grid-template-columns:1fr 1fr}}

/* ===== Mobile table cards (≤720px): rows become stacked cards; labels come from assets/table-cards.js ===== */
@media (max-width:720px){
  .card.flush .table-wrap,.table-wrap{padding:0;overflow:visible}
  table.t,table.t tbody,table.t tfoot{display:block;width:100%!important;min-width:0!important}
  .table-wrap{overflow-x:visible!important}
  table.t thead{display:none}
  table.t tbody tr{display:flex;flex-wrap:wrap;gap:8px 16px;padding:14px 16px;border-bottom:1px solid var(--border);position:relative}
  table.t tbody tr:last-child{border-bottom:0}
  table.t tbody tr:hover td{background:transparent}
  table.t tbody td{display:block;flex:1 1 38%;min-width:0;padding:0!important;border:0!important;overflow-wrap:anywhere;font-size:13.5px}
  table.t tbody td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font:700 10px/1.2 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
  table.t tbody td:not([data-label]){flex-basis:100%}
  table.t tbody td[colspan]{flex-basis:100%}
  table.t tbody td[data-label="#"]{flex:0 0 100%;order:-1}
  table.t tbody td[data-label="#"]:before{display:none}
  table.t tbody td[data-label="#"]{font:700 11px var(--mono);color:var(--text-3)}
}
@media (max-width:720px){
  table.t tbody td,table.t tbody td *{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  table.t tbody td{text-align:left!important}
  table.t tbody td .btn,table.t tbody td button,table.t tbody td .row{white-space:nowrap}
  .card-h,.page-h{flex-wrap:wrap;row-gap:10px}
  .card-h>*{min-width:0}
  .card-h .row,.card-h .actions{flex-wrap:wrap}
}
@media (max-width:720px){
  table.t tbody td .link-btn,table.t tbody td button.link-btn{white-space:normal!important;text-align:left;text-overflow:clip!important;max-width:100%}
  .empty{padding:28px 16px!important}
}
/* Wide screens: operational admin pages may use more of the viewport; customer pages stay narrower for readability. */
@media (min-width:1700px){.nv-shell:not(.nv-cust) .content{max-width:1800px}}
/* Monitoring health-check cards must reflect actual ok/err status, not the decorative rainbow cycling meant for stat tiles elsewhere. */
.health-grid.grid.cols-4>.stat{background:var(--surface)}
.health-grid.grid.cols-4>.stat.ok{background:var(--ok-bg)}
.health-grid.grid.cols-4>.stat.ok .v{color:var(--ok)}
.health-grid.grid.cols-4>.stat.err{background:var(--err-bg)}
.health-grid.grid.cols-4>.stat.err .v{color:var(--err)}
/* Provider inventory is deliberately plain text: active homes are not a percentage target. */
.provider-inventory{font-variant-numeric:tabular-nums;white-space:nowrap}.provider-metric{display:grid;gap:4px;min-width:98px;text-align:left}.provider-metric-values{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums;line-height:1}.provider-metric-values strong{font-size:13px}.provider-metric-values>span{font-size:11px;color:var(--text-3)}.provider-metric small{font:650 10px/1 var(--font);color:var(--text-3);letter-spacing:.01em}.provider-outcome-bar{display:flex;overflow:hidden;width:100%;height:5px;border-radius:999px;background:var(--muted-bg)}.provider-outcome-bar i{display:block;background:var(--ok)}.provider-outcome-bar b{display:block;flex:1;background:var(--err)}.provider-outcomes .provider-metric-values .is-success{color:var(--ok)}.provider-outcomes .provider-metric-values .is-failed{color:var(--err);font-size:12px}.provider-outcomes.is-empty{opacity:.65}.provider-new-count{display:inline-flex;align-items:center;justify-content:center;min-width:29px;padding:4px 7px;border-radius:999px;background:var(--muted-bg);font:750 12px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--text-2)}.provider-new-count.has-new{background:var(--info-bg);color:var(--info);box-shadow:0 0 0 1px color-mix(in srgb,var(--info) 18%,transparent)}.provider-toggle{position:static!important;padding-left:16px!important}.provider-toggle:before{display:none}.provider-toggle.success{background:var(--ok);color:#fff}.provider-toggle.success:hover{background:color-mix(in srgb,var(--ok) 84%,#000)}
