@font-face{font-family:DM;src:url('/fonts/dm-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM;src:url('/fonts/dm-sans-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:DM;src:url('/fonts/dm-sans-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{
  color-scheme:light;--bg:#f5f3ee;--sidebar:#fffefd;--surface:#fffefd;--raised:#efeee9;--field-bg:#fff;
  --ink:#202a3b;--text-secondary:#626b7c;--faint:#646f82;--line:#dce0e8;--control-line:#8793a8;
  --brand:#3558c8;--brand-hover:#2946ad;--brand-ink:#fff;--soft:#eef2ff;
  --success:#28735d;--success-bg:#e8f4ee;--amber:#945813;--amber-bg:#fff1d9;
  --danger:#b5423c;--danger-bg:#fff0ee;--hover:#eceff8;--shadow:#172a4d0a;
  --overlay:#101b3566;--popup-shadow:#101b3526;--modal-shadow:#101b3540;
  --font:DM,system-ui,sans-serif;--heading:Manrope,DM,sans-serif;
  /* Basecoat tokens share the product palette without changing their semantics. */
  --background:var(--bg);--foreground:var(--ink);--card:var(--surface);--card-foreground:var(--ink);
  --popover:var(--surface);--popover-foreground:var(--ink);--primary:var(--brand);--primary-foreground:var(--brand-ink);
  --secondary:var(--raised);--secondary-foreground:var(--ink);--muted:var(--raised);--muted-foreground:var(--text-secondary);
  --accent:var(--soft);--accent-foreground:var(--ink);--border:var(--line);--input:var(--control-line);--ring:var(--brand);
  --radius:.625rem;--font-sans:var(--font);
}
:root[data-theme=dark]{
  color-scheme:dark;--bg:#111827;--sidebar:#192235;--surface:#192235;--raised:#242f44;--field-bg:#141e30;
  --ink:#eff3fc;--text-secondary:#b0bad0;--faint:#9ba9c0;--line:#35425a;--control-line:#667793;
  --brand:#a9bcff;--brand-hover:#c0ceff;--brand-ink:#102052;--soft:#243656;
  --success:#85d9bf;--success-bg:#173e37;--amber:#f0c783;--amber-bg:#3d3021;
  --danger:#ffb3a8;--danger-bg:#422826;--hover:#26354f;--shadow:#0003;
  --overlay:#050b16aa;--popup-shadow:#0005;--modal-shadow:#0008;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button,a,input,select,summary{touch-action:manipulation}button,a,input,select,summary,textarea{outline-offset:4px}:focus-visible{outline:2px solid var(--brand)}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}
.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font:700 22px var(--heading);letter-spacing:-1px;color:var(--ink);white-space:nowrap}.brand>span{color:var(--brand);margin-left:-7px}.brand img{width:29px;height:29px}
.app-sidebar{height:68px;padding:0 max(32px,calc((100vw - 1200px)/2));display:flex;align-items:center;gap:48px;border-bottom:1px solid var(--line);background:var(--surface)}
.tool-nav{display:flex;align-items:center;gap:6px}.nav-label,.resources-label,.sidebar-foot,.sidebar-caption,.app-sidebar .nav-item[href*="how-it-works"],.app-sidebar .nav-item[href*="privacy"]{display:none}
.nav-item{display:flex;align-items:center;gap:8px;padding:9px 13px;text-decoration:none;color:var(--text-secondary);font-size:13px;font-weight:600;border-radius:7px;min-height:40px;white-space:nowrap;transition:background .15s,color .15s}.nav-item .icon{width:17px;height:17px}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.active{background:var(--soft);color:var(--brand)}.nav-tag{display:none}
.sidebar-bottom{margin-left:auto}.local-badge{display:flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap;color:var(--text-secondary)}.local-badge .icon{width:16px;height:16px}.sidebar-bottom p{display:none}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--success)}
.app-page{min-width:0}.app-topbar{height:49px;padding:0 max(32px,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:14px}.breadcrumbs{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-secondary);min-width:0}.breadcrumbs strong{color:var(--ink);font-weight:400;white-space:nowrap}.breadcrumb-divider{color:var(--faint)}.topbar-actions{display:flex;align-items:center;gap:18px}.free-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);white-space:nowrap}
.icon-button{background:none;border:1px solid transparent;min-width:36px;min-height:36px;border-radius:7px;display:inline-grid;place-items:center;padding:7px;font-size:24px}.icon-button:hover{background:var(--hover);border-color:var(--line)}.theme-toggle{color:var(--text-secondary)}.theme-toggle .icon{width:18px;height:18px}
.app-content{max-width:1264px;margin:0 auto;padding:16px 32px 0}.menu-button,.mobile-brand{display:none}.app-footer{max-width:1200px;margin:0 auto;padding:22px 0 28px;border-top:1px solid var(--line);display:flex;align-items:center;gap:22px;color:var(--text-secondary);font-size:12px}.app-footer .brand{font-size:17px}.app-footer>div{margin-left:auto;display:flex;gap:16px}.app-footer a{text-decoration:none}.app-page>.app-footer{width:calc(100% - 64px)}
.menu-dialog{max-width:360px;width:calc(100% - 32px);padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}.menu-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(3px)}.menu-dialog .dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.menu-dialog .tool-nav{display:flex;flex-direction:column;align-items:stretch;gap:5px}.menu-dialog .nav-item{font-size:14px;min-height:48px}
.skip{position:fixed;top:-100px;left:12px;padding:12px 18px;background:var(--surface);color:var(--ink);z-index:100;border:1px solid var(--brand);border-radius:5px}.skip:not(:focus){clip-path:inset(50%)}.skip:focus{top:12px;clip-path:none}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1200px){.app-sidebar{gap:28px}.sidebar-bottom{display:none}.app-sidebar .tool-nav{margin-left:auto}}
@media(max-width:900px){.app-sidebar{display:none}.menu-button{display:inline-grid;margin-left:-8px}.mobile-brand{display:inline;text-decoration:none;font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.5px}.breadcrumb-home{display:none}.app-topbar{height:66px;background:var(--surface);border-bottom:1px solid var(--line)}.app-content{padding-top:28px}.app-footer>span{display:none}}
@media(max-width:560px){.app-topbar{padding:0 20px}.breadcrumbs{gap:9px;font-size:12px}.breadcrumbs>strong,.breadcrumb-divider{display:none}.topbar-actions{gap:8px}.free-label{font-size:11px}.app-content{padding:26px 18px 0}.app-page>.app-footer{width:calc(100% - 36px)}.app-footer{flex-wrap:wrap;gap:16px}.app-footer>div{margin-left:auto;font-size:11px}.icon-button{min-height:40px;min-width:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Shared launch shell: the same heading, focus and dialog rhythm on every route. */
body:has(dialog[open]){overflow:hidden}
.app-content,.agents-page,.legal{min-width:0}
.app-content h1,.agents-heading h1,.legal h1{font:700 32px/1.25 var(--heading);letter-spacing:-1.2px}
.app-topbar .theme-toggle{flex:none}
.label-hint{font-size:11px;font-weight:400;color:var(--text-secondary);margin-left:5px}
dialog{overscroll-behavior:contain;scrollbar-gutter:stable}
dialog::backdrop{background:var(--overlay);backdrop-filter:blur(4px)}
dialog .dialog-top,dialog .dialog-header{gap:12px}
dialog :is(.dialog-top,.dialog-header) h2{font:700 22px/1.3 var(--heading);letter-spacing:-.7px}
dialog .icon-button{flex:none}
:where(.file-drop,.import-drop){position:relative;cursor:pointer;transition:border-color .15s,background .15s}
:where(.file-drop,.import-drop):hover{border-color:var(--brand);background:var(--soft)}
:where(.file-drop,.import-drop):focus-within{outline:2px solid var(--brand);outline-offset:4px}
.menu-dialog{margin:auto;max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 24px 80px var(--modal-shadow)}
.app-footer>div{flex-wrap:wrap;align-items:center}
@media(max-width:900px){.app-topbar{position:sticky;top:0;z-index:30}.app-sidebar+.app-page>.app-topbar{width:100%}}
@media(max-width:600px){
 html{scroll-padding-top:80px}
 .app-content,.agents-page,.legal{padding:22px 16px 0}
 .app-content h1,.agents-heading h1,.legal h1{font-size:27px;line-height:1.25;letter-spacing:-1px}
 .app-topbar{height:60px;padding:0 16px}
 .icon-button{min-height:44px;min-width:44px}
 .app-page>.app-footer{width:calc(100% - 32px);margin-top:26px;padding:18px 0 24px}
 .app-footer a{display:inline-flex;align-items:center;min-height:44px}
 .app-footer{gap:8px}
 .app-footer>div{gap:12px}
 dialog{padding:20px;max-height:calc(100dvh - 24px);width:calc(100% - 24px);border-radius:14px}
 dialog :is(.dialog-top,.dialog-header) h2{font-size:21px}
 dialog input,dialog textarea{font-size:16px}
 .menu-dialog{padding:16px}
 .menu-dialog .dialog-top{margin-bottom:8px}
 .menu-dialog .nav-item{min-height:48px}
}
/* Setup must collapse atomically; a fading form can overlap the revealed result. */
.call-editor::details-content,.planner-editor::details-content{transition:none;animation:none}

/* Give the full name room on the narrowest phones. */
@media(max-width:420px){.free-label{display:none}.mobile-brand{font-size:16px}.brand{font-size:21px}}
