@import url("/robot_video.css");
@import "./theme.css";
@import "./work_calendar.css";

@font-face {
  font-family:"Pretendard Variable";
  src:url('/static/fonts/pretendard-var.woff2') format('woff2-variations');
  font-weight:45 920;
  font-display:swap;
}
/* Shared with the native Raptor cockpit: dark stage, grouped controls, one warm action. */
:root {
  color-scheme:dark;
  --ink:var(--app-foreground);
  --muted:var(--app-muted);
  --accent:var(--app-primary);
  --button-fill:var(--app-primary);
  --button-text:var(--app-primary-foreground);
  --tint:var(--app-surface);
  --card:var(--app-card);
  --material:rgb(17 17 17 / .94);
  --shadow:0 12px 36px rgb(0 0 0 / .28);
  --night:#000;
  --surface:var(--app-background);
  --line:var(--app-line);
  --nav-height:calc(108px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));
  --motion-quick:120ms;
  --motion-standard:240ms;
  --motion-slow:480ms;
  --motion-ease:cubic-bezier(.22,1,.36,1);
  --font:var(--app-font);
  font:400 100%/1.5 var(--font);
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  font-synthesis:none;
}
* { box-sizing:border-box; }
html { scroll-padding-block:20px calc(var(--nav-height) + 20px); }
[hidden] { display:none!important; }
body { margin:0; background:var(--surface); color:var(--ink); min-height:100dvh; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button { cursor:pointer; min-height:3rem; border:0; color:inherit; }
button:not(:disabled):not([aria-disabled=true]):active { filter:brightness(.86); }
input,textarea,select { accent-color:var(--accent); }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
button:disabled,button[aria-disabled=true] { opacity:.45; cursor:not-allowed; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.landing-screen :focus-visible { outline-color:#c9b28b; }
a { color:inherit; }
h1,h2,h3,p { margin:0; }
h1 { font-size:clamp(1.75rem,4vw,2.375rem); font-weight:600; letter-spacing:-.035em; line-height:1.25; }
h1,h2,h3 { text-wrap:balance; overflow-wrap:anywhere; }
h2 { font:var(--app-headline-small); letter-spacing:var(--app-headline-small-tracking); }
h3 { font:var(--app-title-medium); }
p { max-width:65ch; }
img { max-width:100%; }
.customer-icon { width:24px; height:24px; display:block; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.skip-link { position:fixed; top:8px; left:12px; z-index:20; transform:translateY(-200%); background:var(--button-fill); color:var(--button-text); padding:12px 20px; border-radius:8px; }
.skip-link:focus { transform:none; }
.action-with-icon { display:flex; justify-content:center; align-items:center; gap:10px; }
.muted,.fine-print { color:var(--muted); }
.fine-print { font-size:0.8125rem; line-height:1.75; }
.loading { padding:100px 24px; text-align:center; }
.primary-button,.secondary-button { width:100%; min-height:52px; padding:13px 22px; border-radius:var(--app-radius-button); font-weight:600; text-align:center; }
.primary-button { background:var(--button-fill); color:var(--button-text); }
.secondary-button { background:var(--tint); color:var(--accent); border:1px solid transparent; }
.text-button { padding:8px 0; background:transparent; color:var(--accent); text-align:left; text-decoration:none; font-size:0.875rem; font-weight:500; }
.form-error { color:#ff8a83; font-size:0.875rem; line-height:1.6; margin-top:10px; }
.app-header { min-height:64px; padding:8px 20px; display:flex; align-items:center; gap:8px; position:relative; color:var(--ink); background:var(--surface); }
.bottom-nav svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.75; }
.brand { font-size:1.5rem; font-weight:600; letter-spacing:-1px; text-decoration:none; display:flex; align-items:center; gap:8px; }
.brand img { display:none; }
#site-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:var(--app-headline-small); color:var(--ink); }
.icon-button { margin-left:auto; background:transparent; color:var(--ink); padding:8px; font-size:0.8125rem; white-space:nowrap; }
#customer-content { min-height:calc(100dvh - 80px); padding-bottom:var(--nav-height); }
#customer-content:has(.monitor-layout) { min-height:0; }
.customer-login .app-header,.customer-login .app-product { display:none; }

.customer-login #customer-content { min-height:100dvh; padding:0; }
.customer-login { background:var(--night); }
.customer-login[data-access=landing],.customer-map-view { color-scheme:dark; }
.bottom-nav { position:fixed; z-index:5; bottom:0; left:0; right:0; display:flex; justify-content:center; gap:40px; background:var(--material); border-top:1px solid var(--line); -webkit-backdrop-filter:blur(24px) saturate(150%); backdrop-filter:blur(24px) saturate(150%); padding:8px 12px max(8px,var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); }
.bottom-nav button { min-width:96px; display:flex; flex-direction:column; align-items:center; gap:1px; background:transparent; color:var(--muted); font-size:0.75rem; padding:4px 12px; }
.bottom-nav button span { font-size:inherit; line-height:1.5; }
.bottom-nav button[aria-current] { color:var(--accent); font-weight:600; }
.bottom-nav button[aria-current] > span:not(.app-nav-icon) { color:inherit; }
.landing-screen { min-height:100dvh; position:relative; isolation:isolate; overflow:clip; display:flex; flex-direction:column; align-items:center; color:#fff; background:#000; padding:max(30px,var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 28px max(18px,var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); }
.landing-image { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; z-index:-2; }
.landing-language { position:absolute; right:24px; top:max(16px,var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); }
.landing-screen:after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(#0001,transparent 45%,#0003 70%,#000 100%); }
.landing-title { text-align:center; padding-top:clamp(90px,16dvh,210px); text-shadow:0 2px 30px #0003; }
.landing-title h1 { font:600 clamp(3.875rem,12vw,5.875rem)/1.05 var(--font); letter-spacing:-.035em; }
.landing-actions { width:min(100%,420px); margin-top:auto; padding-top:clamp(72px,18dvh,240px); display:grid; gap:12px; }
.landing-actions .primary-button,.landing-actions .secondary-button { min-height:52px; border-radius:var(--app-radius-button); }
.landing-actions .primary-button { background:var(--button-fill); }
.landing-actions .secondary-button { background:#ffffff1f; color:#fff; border-color:#ffffff26; }
.landing-links { display:flex; justify-content:center; gap:28px; }
.landing-links button { font-size:0.75rem; color:#e0e0e0; min-height:44px; padding:8px 0; }
.landing-message { font-size:0.875rem; text-align:center; padding:12px; background:#0008; }
.access-backdrop { position:fixed; inset:0; isolation:isolate; background:#000; }
.access-screen { --sheet-top:max(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)),clamp(36px,7dvh,64px)); position:fixed; inset:var(--sheet-top) 0 0; margin:0 auto; width:100%; max-width:560px; height:calc(100dvh - var(--sheet-top)); min-height:0; max-height:none; background:var(--surface); color:var(--ink); color-scheme:dark; display:flex; flex-direction:column; padding:0; border-radius:var(--app-radius-sheet) var(--app-radius-sheet) 0 0; overflow:auto; overflow-x:hidden; overscroll-behavior:contain; }
.access-screen::backdrop { background:#0006; }
.access-chrome { display:flex; gap:12px; padding:16px 20px 0; }
.access-screen .access-close { width:44px; height:44px; min-height:44px; font-weight:300; font-size:2rem; }
.access-header { display:flex; align-items:center; justify-content:space-between; padding:24px 28px 8px; gap:12px; }
.access-brand { font-family:var(--font); font-size:clamp(0.9375rem,4.5vw,1.25rem); font-weight:700; letter-spacing:.02em; font-style:normal; white-space:nowrap; }
.back-button { background:transparent; width:44px; font-size:2.25rem; line-height:1; text-align:left; }
.access-body { width:min(100%,480px); padding:32px 28px 30px; margin:0 auto; flex:1 0 auto; }
.access-body h1 { font-size:1.875rem; font-weight:600; }
.access-description { color:var(--muted); margin-top:20px; font-size:0.9375rem; line-height:1.75; }
.access-step { color:var(--muted); font-size:0.8125rem; margin-bottom:10px; }
.access-form { display:grid; gap:22px; margin-top:30px; }
.access-field { display:grid; gap:10px; color:var(--muted); font-size:0.875rem; }
.access-field input,.mail-help input { width:100%; min-height:52px; border:1px solid var(--line); border-radius:var(--app-radius-control); background:var(--card); padding:12px 16px; color:var(--ink); font-size:1rem; }
.access-field input:hover { border-color:var(--line); }
.profile-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.signup-agreements { margin-top:4px; border-top:1px solid var(--line); padding-top:6px; }
.signup-agreements .agreement-row { padding:2px 0; min-height:48px; }
.signup-agreements .fine-print { font-size:0.75rem; margin-top:6px; }
.signup-agreements label { font-size:0.8125rem; }
.verification-address { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:26px; }
.verification-address strong { min-width:0; font-weight:600; font-size:0.9375rem; overflow-wrap:anywhere; }
.verification-form { gap:18px; margin-top:22px; }
.code-entry { position:relative; display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:clamp(5px,1.8vw,10px); }
.code-slot { display:grid; place-items:center; height:56px; border:1px solid var(--line); border-radius:10px; background:var(--card); font:500 1.5rem/1 var(--font); color:var(--ink); }
.code-entry .verification-code { position:absolute; inset:0; z-index:1; width:100%; height:100%; opacity:0; padding:0; cursor:text; }
.code-entry:focus-within .code-slot.current { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.code-entry:focus-within { outline:1px solid #c9b28b22; outline-offset:5px; border-radius:4px; }
.verification-form .fine-print:empty { display:none; }
.superadmin-key-form { border-top:1px solid var(--line); padding-top:24px; gap:14px; }
.superadmin-key-form .secondary-button { margin-top:0; }
.pending-screen { max-width:480px; margin:auto; min-height:100dvh; padding:max(28px,var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 28px max(28px,var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); }
.pending-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.directory-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.directory-brand { font:600 1.875rem/1 var(--font); letter-spacing:-.025em; }
.site-directory { max-width:none; padding:20px; }
.site-directory>.text-button { display:block; margin:30px auto 0; }
.pending-symbol { width:76px; height:76px; display:grid; place-items:center; border:1px solid var(--accent); border-radius:50%; color:var(--accent); font-size:1.875rem; margin:54px 0 26px; }
.pending-screen h1 { font-size:1.875rem; }
.onboarding-progress { list-style:none; padding:0; margin:34px 0 28px; }
.onboarding-progress li { position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 0 18px 30px; font-size:0.875rem; color:var(--muted); }
.onboarding-progress li:before { content:''; position:absolute; left:0; width:10px; height:10px; border:1px solid #b5b5b5; border-radius:50%; }
.onboarding-progress li:not(:last-child):after { content:''; position:absolute; top:36px; bottom:-18px; left:5px; width:1px; background:var(--line); }
.onboarding-progress .complete:before { background:var(--accent); border-color:var(--accent); }
.onboarding-progress .current { color:var(--ink); }
.onboarding-progress .current:before { border:3px solid var(--accent); width:12px; height:12px; left:-1px; }
.onboarding-progress strong { font-size:0.75rem; font-weight:600; }
.pending-screen .primary-button { margin-top:32px; }
.pending-screen>.text-button { display:block; margin:auto; }
.access-form .form-error:empty { display:none; }
.access-form .secondary-button { margin-top:-10px; }
.access-footer { padding:24px 20px max(24px,var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); display:flex; flex-wrap:wrap; justify-content:center; column-gap:22px; color:var(--muted); }
.access-footer .text-button { font-size:0.75rem; min-height:44px; }
.access-footer .app-company-credit { flex-basis:100%; margin-top:12px; }
.access-screen .primary-button { margin-top:0; }
.access-bottom { margin-top:32px; }
.agreement-content { margin-top:28px; }
.agreement-screen .access-body { padding-bottom:0; }
.agreement-screen .access-footer { display:none; }
.agreement-screen .policy-article { font-size:0.9375rem; }
.agreement-actions { position:sticky; bottom:0; background:linear-gradient(#111e,var(--surface) 16%); padding:18px 0 max(20px,var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); margin-top:26px; }
.agreement-actions .primary-button { margin-top:12px; }
.agreement-actions>.text-button { display:block; margin:8px auto 0; font-size:0.75rem; }
.privacy-review { margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.privacy-review summary { min-height:48px; cursor:pointer; font-size:1rem; }
.policy-draft { font-size:0.75rem; line-height:1.7; padding:12px; background:#28231c; color:#d1b68e; margin-bottom:22px; }
.agreement-form label { display:flex; align-items:center; gap:12px; font-size:0.875rem; cursor:pointer; }
.agreement-form input[type=checkbox] { appearance:auto; width:22px; height:22px; accent-color:var(--accent); flex-shrink:0; }
.agree-all { padding:16px 0 24px; border-bottom:1px solid var(--line); font-weight:600; }
.agreement-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; }
.agreement-row .text-button { font-size:0.75rem; min-width:40px; text-align:right; }
.agreement-summary { margin-top:28px; padding:24px 0; border-top:1px solid var(--line); }
.agreement-summary h2 { font-size:1.0625rem; }
.agreement-summary p { margin-top:16px; font-size:0.8125rem; line-height:1.8; color:var(--muted); }
.mail-help { margin-top:36px; font-size:0.8125rem; }
.mail-help summary { cursor:pointer; min-height:48px; }
.mail-help p { color:var(--muted); margin:12px 0 20px; line-height:1.8; }
.mail-help .primary-button { margin-top:16px; }
.policy-article h2 { margin:12px 0 32px; }
.policy-article h3 { margin-top:28px; }
.policy-article p { margin-top:12px; font-size:0.9375rem; line-height:1.9; color:var(--muted); }
.policy-dialog .fine-print { margin-top:32px; }
.monitor-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; padding:20px; align-items:start; }
.map-stage { position:relative; height:460px; min-height:320px; overflow:hidden; border-radius:var(--app-radius-panel); background:var(--app-card); border:1px solid var(--app-border); }
.customer-map { position:absolute; inset:76px 16px 52px; }
.map-caption { position:absolute; bottom:16px; left:16px; right:16px; display:flex; justify-content:space-between; gap:12px; pointer-events:none; }
.map-picker { position:absolute; top:12px; left:16px; right:16px; display:flex; align-items:center; gap:8px; min-height:48px; color:var(--ink); }
.map-controls { position:absolute; top:88px; right:28px; display:flex; border:1px solid var(--app-border); border-radius:18px; background:var(--app-surface); }
.map-button { display:grid; place-items:center; width:48px; min-height:48px; padding:12px; border:0; border-radius:var(--app-radius-control); background:transparent; color:var(--accent); }
.map-note { margin:0; position:absolute; bottom:16px; left:16px; right:16px; color:var(--muted); font:var(--app-body-small); text-align:left; pointer-events:none; }
.map-caption { display:none; }
.monitor-panel { min-width:0; padding:20px; border:0; border-radius:var(--app-radius-panel); background:var(--app-card); }
.panel-grip { display:none; }
.customer-map-view[data-screen=home] .connection-banner { margin:12px 20px; position:relative; }
@media(min-width:1000px) { .monitor-layout { grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); } .map-stage { height:min(640px,calc(100dvh - 130px)); } }

.customer-map canvas { display:block; width:100%; height:100%; touch-action:none; }
.map-caption>span { display:none; }
.map-caption>span { font-size:0.75rem; color:var(--muted); }
.map-caption>strong { font-size:1rem; font-weight:600; }
.map-picker svg { width:18px; height:18px; flex:none; }
.map-picker select { min-width:0; max-width:100%; min-height:48px; padding:0 24px 0 0; border:0; background:transparent; color:inherit; font:inherit; font-size:0.8125rem; text-overflow:ellipsis; }
.map-picker option { color:#f5f5f7; background:#191919; }
.map-picker select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.robot-picker { display:flex; gap:8px; overflow:auto; scrollbar-width:thin; padding:0 0 14px; }
.robot-pill { display:flex; align-items:center; gap:8px; padding:8px 14px; min-height:44px; border:1px solid #45484a; border-radius:22px; background:transparent; color:#c5c8cc; font-size:0.8125rem; white-space:nowrap; }
.robot-pill[aria-pressed=true] { background:var(--tint); border-color:var(--accent); color:var(--accent); }
.robot-picker:has(button:only-child) { display:none; }
.robot-pill i,.status-dot { width:7px; height:7px; border-radius:50%; background:#6288ac; display:inline-block; flex-shrink:0; }
.working i,.status-dot.working { background:#348459; }
.charging i,.status-dot.charging { background:#ba8b37; }
.error i,.battery i,.status-dot.error,.status-dot.battery { background:#c43d3d; }
.offline i,.status-dot.offline { background:#91969c; }
.robot-sheet { overflow-wrap:anywhere; }
.robot-power { margin:20px 0 24px; }
.power-button { display:flex; align-items:center; gap:14px; width:100%; min-height:76px; padding:14px 16px; border:1px solid var(--line); border-radius:16px; background:var(--card); color:var(--ink); text-align:left; }
.power-button .customer-icon { width:24px; height:24px; flex-shrink:0; color:var(--accent); }
.power-button[data-running="true"] .customer-icon { color:#2b8450; }
.power-button strong,.power-button small { display:block; }
.power-button strong { font-size:.9375rem; }
.power-button small { margin-top:5px; font-size:.6875rem; color:var(--muted); }
.power-button:disabled { opacity:.55; cursor:default; }
.power-hint,.power-message { font-size:.75rem; line-height:1.6; color:var(--muted); margin-top:10px; }
.power-message:empty { display:none; }
.sheet-grip { display:none; }
.sheet-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; font-size:0.75rem; margin:8px 0 18px; }
.status-label { display:flex; gap:8px; align-items:center; color:#78c399; font-size:1rem; font-weight:600; }
.status-label.offline,.status-label.error,.status-label.battery { color:#ff8a83; }
.status-label.charging { color:#e8ba55; }
.situation-detail { color:var(--muted); font-size:0.8125rem; margin-top:10px; line-height:1.7; }
.robot-facts { display:grid; grid-template-columns:1.15fr 1fr .85fr; gap:12px; border-top:1px solid var(--line); padding-top:20px; }
.robot-fact { display:grid; gap:6px; min-width:0; }
.robot-fact>span { color:var(--muted); font-size:0.75rem; }
.robot-fact>strong { font-size:0.9375rem; font-weight:600; overflow-wrap:anywhere; }
.robot-fact>strong,.home-battery,.fleet-row-battery,.activity-row strong,.page-count { font-variant-numeric:tabular-nums; }
.robot-metrics { display:grid; grid-template-columns:1fr 1fr; gap:28px 20px; padding:24px 0 30px; }
.robot-metrics .robot-fact { gap:8px; }
.robot-metrics strong { font-size:clamp(1.5rem,7vw,2rem); font-weight:450; letter-spacing:-.035em; }
.robot-location { display:flex; align-items:center; gap:16px; border-block:1px solid var(--line); padding:20px 0; }
.robot-location>.customer-icon { color:var(--accent); }
.robot-location>div { display:grid; gap:4px; min-width:0; }
.robot-location strong { font-weight:600; overflow-wrap:anywhere; }
.robot-location span { color:var(--muted); font-size:0.75rem; }
.work-order { display:flex; gap:12px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:0.8125rem; }
.work-order p { font-size:0.75rem; color:var(--muted); margin-top:8px; }
.route-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); margin-top:6px; flex-shrink:0; }
.attention-note { color:#873c1a; background:#fff4eb; padding:14px; margin-top:20px; font-size:0.75rem; border-radius:4px; }
.connection-banner { position:relative; z-index:4; background:#fff0d5; color:#754311; font-size:0.8125rem; padding:12px 24px; }
.page-sheet { max-width:760px; margin:0 auto; padding:42px 24px; }
.page-title { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.page-title>.customer-icon { color:var(--muted); }
.page-count { display:grid; place-items:center; min-width:44px; min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:50%; color:var(--accent); font-size:1.125rem; }
.page-sheet>p { margin-top:16px; }
.filters { display:flex; gap:8px; overflow:auto; padding:26px 0 18px; }
.filter-button { white-space:nowrap; border-radius:24px; background:transparent; border:1px solid var(--line); padding:8px 18px; color:var(--ink); font-size:0.8125rem; min-height:44px; }
.filter-button[aria-pressed=true] { background:var(--tint); color:var(--accent); border-color:transparent; }
.fleet-list,.activity-list { background:transparent; }
.fleet-row { display:flex; align-items:center; gap:14px; width:100%; text-align:left; background:transparent; padding:24px 0; border-bottom:1px solid var(--line); color:var(--ink); }
.fleet-row:last-child,.activity-row:last-child { border:0; }
.fleet-row-label { display:grid; gap:5px; min-width:0; }
.fleet-row-label strong { font-size:1.0625rem; font-weight:600; }
.fleet-row-label>span { color:var(--muted); font-size:0.8125rem; }
.fleet-row-state { display:flex; align-items:center; gap:6px; }
.fleet-row-battery { margin-left:auto; text-align:right; flex-shrink:0; display:grid; gap:6px; }
.fleet-row-battery strong { font-size:1.25rem; font-weight:450; }
.fleet-row-battery small { color:var(--muted); font-size:0.75rem; }
.fleet-row>.customer-icon { width:16px; height:16px; color:var(--muted); }
.status-symbol { width:7px; height:7px; flex-shrink:0; border-radius:50%; background:#91969c; }
.status-symbol.working { background:#348459; }
.status-symbol.charging { background:#ba8b37; }
.status-symbol.estop,.status-symbol.battery { display:inline-grid; place-items:center; width:19px; height:19px; font:700 0.8125rem/1 var(--font); background:#ca323b; color:#fff; }
.status-symbol.battery { background:#e8b944; color:#302509; border-radius:0; clip-path:polygon(50% 0,100% 100%,0 100%); padding-top:5px; font-size:0.75rem; }
.estop { --alert-color:#dc454e; }
.battery { --alert-color:#d9a72d; }
.robot-pill.estop,.robot-pill.battery { border:2px solid var(--alert-color); }
.fleet-row.estop,.fleet-row.battery { margin:8px 0; padding:18px 12px; border:2px solid var(--alert-color); border-radius:var(--app-radius-button); }
.home-robot.estop,.home-robot.battery,.robot-sheet.estop,.robot-sheet.battery { outline:2px solid var(--alert-color); outline-offset:6px; border-radius:10px; }
.status-label.estop { color:#ef747c; }
.status-label.battery { color:#cba33d; }
.activity-totals { display:grid; grid-template-columns:2fr 1fr 1fr; align-items:end; gap:14px; padding:36px 0; margin-bottom:12px; border-bottom:1px solid var(--line); }
.activity-totals strong { font-size:1.75rem; font-weight:400; letter-spacing:-.035em; }
.activity-totals .robot-fact:first-child strong { font-size:2.625rem; color:var(--accent); }
.activity-filter { display:flex; gap:8px; overflow-x:auto; padding:12px 0; scrollbar-width:none; }
.activity-filter::-webkit-scrollbar { display:none; }
.activity-filter button { flex:none; min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:24px; background:transparent; color:var(--muted); }
.activity-filter button[aria-pressed=true] { color:var(--accent); border-color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,transparent); }
.activity-heading { margin:28px 0 20px; font-size:1rem; font-weight:600; }
.activity-chart { display:flex; gap:clamp(4px,2vw,16px); padding:4px 0 20px; border-bottom:1px solid var(--line); }
.activity-column { flex:1; min-width:0; display:flex; flex-direction:column; gap:10px; text-align:center; font-size:.6875rem; color:var(--muted); }
.activity-column strong { color:var(--ink); font-size:.875rem; font-variant-numeric:tabular-nums; }
.activity-column .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.activity-column-track { height:120px; display:flex; align-items:end; }
.activity-column-track span { display:block; width:100%; background:var(--accent); border-radius:5px 5px 1px 1px; }
.activity-comparison { overflow-x:auto; }
.activity-comparison table { width:100%; border-collapse:collapse; font-size:.8125rem; font-variant-numeric:tabular-nums; }
.activity-comparison th,.activity-comparison td { padding:14px 8px; text-align:right; border-bottom:1px solid var(--line); }
.activity-comparison th:first-child { text-align:left; padding-left:0; }
.activity-comparison thead th { color:var(--muted); font-size:.6875rem; font-weight:400; }
.activity-comparison button { background:transparent; color:var(--ink); text-align:left; min-height:44px; padding:0; overflow-wrap:anywhere; }
.activity-comparison .selected { color:var(--accent); }
.activity-comparison .selected button { color:var(--accent); }
.account-facts { display:grid; gap:22px; padding:30px 0; }
.account-action { display:block; width:100%; background:var(--card); color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:0; padding:20px 16px; text-align:left; margin-top:8px; }
.account-profile { text-align:center; padding:16px 0; }
.account-avatar { margin:0 auto 24px; width:88px; height:88px; display:grid; place-items:center; border-radius:28px; border:1px solid #c9b28b40; color:var(--accent); background:#c9b28b1f; font-size:2.25rem; }
.account-profile h1 { font-size:1.625rem; }
.account-profile p { margin:8px auto 0; font-size:0.8125rem; color:var(--muted); }
.account-page { position:relative; padding-top:max(24px,var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); max-width:560px; }
.account-page .round-back { background:transparent; color:var(--ink); left:10px; }
.account-menu { margin-top:4px; padding:0 16px; border-radius:var(--app-radius-panel); background:var(--card); }
.account-row { display:flex; align-items:center; gap:20px; width:100%; background:transparent; color:var(--ink); text-align:left; padding:16px 0; min-height:66px; font-size:1rem; }
.account-row-icon { width:25px; flex-shrink:0; font-size:1.5625rem; text-align:center; color:var(--muted); }
.account-row-chevron { margin-left:auto; font-size:1.5625rem; color:var(--muted); }
.account-language .language-picker { margin-left:auto; background:transparent; max-width:110px; }
.account-version { border-top:1px solid var(--line); display:flex; justify-content:space-between; padding-top:26px; margin-top:26px; font-size:0.8125rem; color:var(--muted); }
.account-signout { display:block; margin:20px auto 0; border-radius:28px; background:var(--card); color:var(--ink); padding:10px 26px; }
.account-dialog { padding-top:66px; }
.history-period { font-size:0.75rem; color:var(--muted); }
.site-list { display:grid; gap:16px; margin-top:24px; }
.site-choice { display:flex; gap:18px; align-items:center; background:var(--card); color:var(--ink); border:1px solid var(--app-border); border-radius:var(--app-radius-panel); min-height:104px; padding:20px; text-align:left; }
.site-choice>span:nth-child(2) { display:grid; gap:8px; min-width:0; }
.site-choice strong { font-size:1.125rem; font-weight:600; overflow-wrap:anywhere; }
.site-choice small { font-size:0.75rem; color:var(--muted); overflow-wrap:anywhere; }
.site-choice>.customer-icon { margin-left:auto; width:18px; height:18px; color:var(--muted); }
.site-symbol { display:grid; place-items:center; width:54px; height:62px; flex-shrink:0; border-radius:var(--app-radius-button); background:var(--tint); color:var(--accent); }
.empty-state { padding:30px 8px; color:var(--muted); }
.empty-state p { margin-top:14px; font-size:0.875rem; line-height:1.75; }
dialog { color-scheme:dark; max-width:560px; width:calc(100% - 32px); max-height:calc(100dvh - 48px); border:1px solid var(--line); border-radius:var(--app-radius-sheet); padding:28px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow); overscroll-behavior:contain; }
dialog::backdrop { background:#0008; }
dialog>img { border-radius:var(--app-radius-control); margin-bottom:20px; }
dialog>p { color:var(--muted); font-size:0.875rem; margin-top:16px; }
dialog>form { position:absolute; right:12px; top:12px; }
.close-button { width:44px; height:44px; border-radius:50%; background:var(--card); color:var(--ink); font-size:1.75rem; }
dialog .primary-button { margin-top:22px; }
.install-options section { padding:20px 0; border-bottom:1px solid var(--line); }
.install-options p { font-size:0.875rem; color:var(--muted); margin-top:10px; }
.install-options section:last-child { border:0; }
.policy-dialog { padding-top:64px; }
.delete-account-form { position:static; display:grid; gap:16px; margin-top:24px; }
.delete-account-form input { width:100%; padding:14px; border:1px solid var(--line); border-radius:var(--app-radius-control); }
@media(min-width:901px) {
  .landing-screen { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:1fr 1fr; column-gap:48px; row-gap:36px; background:#171514; }
  .landing-screen>.landing-image, .access-backdrop>.landing-image { left:auto; width:min(50%,80dvh); object-fit:cover; object-position:bottom; }
  .access-screen { inset:0 auto 0 0; margin:0; width:calc(100% - min(50%,80dvh)); max-width:640px; height:100dvh; border-radius:0; }
  .access-screen::backdrop { background:transparent; }
  .landing-screen:after { background:linear-gradient(90deg,#171514 42%,#171514b3 50%,transparent 70%),linear-gradient(0deg,#0005,transparent 35%); }
  .landing-title { grid-column:1; grid-row:1; align-self:end; justify-self:center; padding-top:48px; }
  .landing-actions { grid-column:1; grid-row:2; align-self:start; justify-self:center; margin-top:0; padding-top:0; }
}
@media(max-width:900px) {
  .app-header { padding-inline:20px; }

  .brand { font-size:1.3125rem; }
  #customer-content { min-height:calc(100dvh - 60px); }
  .bottom-nav { gap:0; justify-content:space-around; }
  .bottom-nav button { min-width:0; flex:1; max-width:160px; padding:4px; font-size:0.6875rem; }
  .map-caption strong { font-size:0.875rem; }
  .robot-sheet,.robot-picker { max-width:620px; margin:auto; }
  .robot-sheet h2 { font-size:1.5rem; }
  .robot-facts { padding-top:18px; }
  .page-sheet { padding:32px 24px; }
  .activity-row { gap:12px; }
  dialog:not(.access-screen) { position:fixed; inset:auto 0 0; width:100%; max-height:90dvh; margin:0 auto; border-radius:28px 28px 0 0; padding-bottom:max(32px,var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))); }
}
@media(max-width:380px) {
  .access-body { padding-inline:24px; }
  .access-header { padding-inline:24px; }
  .agreement-form label { font-size:0.75rem; }
  .landing-screen { padding-inline:24px; }
  .pending-screen { padding-inline:20px; }
  .code-slot { height:46px; font-size:1.3125rem; }
  .app-header { gap:12px; }
  #site-name { max-width:135px; }
}
@media(prefers-reduced-motion:no-preference) {
  /* Finite entrances, never a render/poll loop. Motion leaves focus and input live. */
  [data-motion=landing] .landing-title { animation:ptero-rise var(--motion-slow) var(--motion-ease) both; }
  [data-motion=landing] .landing-actions { animation:ptero-rise var(--motion-standard) var(--motion-ease) both; }
  [data-motion=sheet]>.access-screen[open] { animation:ptero-sheet 280ms var(--motion-ease); }
  [data-motion=step]>.access-screen .access-body { animation:ptero-step var(--motion-standard) var(--motion-ease); }
  [data-motion=page] :is(.page-title,.account-profile,.directory-header,.robot-stage) { animation:ptero-rise var(--motion-standard) var(--motion-ease); }
  [data-motion=selection]>.home-selection:not(:has(.estop,.error,.battery)) .home-robot { animation:ptero-selection 160ms var(--motion-ease); }
  dialog[open]:not(.access-screen) { animation:ptero-sheet var(--motion-standard) var(--motion-ease); }
  button { transition:transform 80ms var(--motion-ease); }
  button:not(:disabled):not([aria-disabled=true]):active { transform:scale(.98); transition-duration:var(--motion-quick); }
  .bottom-nav svg { transition:transform var(--motion-standard) var(--motion-ease); }
  .saurus-mark,.saurus-chevron { transition:transform 80ms var(--motion-ease); }
  .saurus-entry:active .saurus-mark { transform:scale(.97); transition-duration:var(--motion-quick); }
  .saurus-entry:active .saurus-chevron { transform:translateX(3px); transition-duration:var(--motion-quick); }
}
@keyframes ptero-rise { from { transform:translateY(16px); opacity:.35; } to { transform:translateY(0); opacity:1; } }
@keyframes ptero-sheet { from { transform:translateY(40px); opacity:.55; } to { transform:translateY(0); opacity:1; } }
@keyframes ptero-step { from { transform:translateX(12px); opacity:.35; } to { transform:translateX(0); opacity:1; } }
@keyframes ptero-selection { from { transform:translateY(6px) scale(.992); opacity:.6; } to { transform:translateY(0) scale(1); opacity:1; } }
.saurus-entry { display:flex; align-items:center; gap:14px; width:100%; margin-top:16px; padding:16px 18px; background:#161719; color:white; border:1px solid #343537; border-radius:var(--app-radius-panel); text-align:left; }
.saurus-entry strong { display:block; font-weight:600; font-size:1.0625rem; }
.saurus-mark { color:#c9b28b; }
.saurus-mark .customer-icon { width:32px; height:32px; }
.saurus-chevron { margin-left:auto; color:#a8afb5; }
.saurus-chevron .customer-icon { width:18px; height:18px; }

.connection-details { margin:20px 0; text-align:left; }
.connection-details summary { cursor:pointer; min-height:44px; font-size:0.8125rem; color:var(--muted); padding-block:10px; }
.customer-dark-view { color-scheme:dark; background:var(--surface); color:var(--ink); }
.customer-dark-view .bottom-nav { background:var(--material); border-color:#ffffff14; }
.customer-dark-view .bottom-nav button { color:#aeaeb2; }
.customer-dark-view .bottom-nav button[aria-current] { color:var(--accent); }
.customer-dark-view :is(button,a,input,textarea,select,summary):focus-visible { outline-color:#c9b28b; }
.customer-dark-view .status-label.offline { color:#b9bec4; }
.customer-dark-view .status-label.error,.customer-dark-view .form-error { color:#ef8188; }
.customer-dark-view .status-label.charging { color:#e8ba55; }
.bottom-nav { height:var(--nav-height); align-items:center; }
.bottom-nav button { gap:5px; }
.customer-map-view[data-screen=robot] .app-header,.customer-map-view[data-screen=control] .app-header,.customer-map-view[data-screen=assistant] .app-header { display:none; }
.home-selection-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.home-selection-title p { font-size:0.75rem; color:#a3a9ae; margin-bottom:5px; }
.home-selection-title h1 { font-size:1.5rem; }
.home-selection-title .text-button { color:#c9cdd1; font-size:0.75rem; }
.home-robot { display:flex; align-items:center; gap:14px; width:100%; min-height:88px; padding:12px; margin:12px 0; background:#242424; border:1px solid #ffffff12; border-radius:var(--app-radius-button); color:white; text-align:left; }
.home-robot>div:nth-child(2) { flex:1; min-width:0; }
.home-robot strong { display:block; font-size:0.9375rem; font-weight:600; overflow-wrap:anywhere; }
.home-robot span { display:block; font-size:0.75rem; margin-top:5px; color:#b1b6bb; }
.home-robot .home-status { display:flex; align-items:center; gap:7px; }
.home-robot .status-symbol { display:inline-grid; margin:0; color:#fff; }
.home-robot .status-symbol.battery { color:#302509; }
.home-battery { text-align:right; white-space:nowrap; }
.home-battery strong { font-size:1.375rem; font-weight:400; }
.home-battery small { font-size:0.75rem; color:#a3a9ae; }
.home-metrics { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:4px 2px 18px; }
.home-metrics .robot-fact { gap:3px; }
.home-selection .primary-button { border-radius:var(--app-radius-control); min-height:52px; }
.home-control-note { font-size:0.75rem; color:#a3a9ae; text-align:center; margin:10px auto 0; }
.robot-artwork { width:100%; height:100%; overflow:hidden; border-radius:16px; background:#242424; }
.robot-artwork img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 67%; }
:is(.home-robot,.fleet-row) .robot-artwork { width:64px; height:64px; flex-shrink:0; border-radius:10px; }
.robot-detail { max-width:680px; margin:0 auto; padding-bottom:20px; position:relative; }
.round-back { position:absolute; z-index:2; top:max(18px,var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); left:22px; width:46px; display:grid; place-items:center; border-radius:50%; font-size:2rem; background:#ffffff10; color:inherit; }
.robot-hero { text-align:center; padding:calc(74px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 24px 16px; background:#000; }
.robot-stage { width:min(100%,400px); aspect-ratio:4/3; margin:20px auto 12px; }
.robot-battery { display:flex; justify-content:space-between; align-items:center; margin:18px 0; font-size:0.8125rem; color:var(--muted); }
.robot-battery strong { font-size:1.375rem; color:#f5f5f5; font-weight:600; }
.robot-hero.estop { background:radial-gradient(ellipse at 50% 65%,#ef626b22,transparent 65%); }
.robot-hero.offline,.robot-hero.error { background:radial-gradient(ellipse at 50% 65%,#ffffff0c,transparent 65%); }
.robot-hero>p { font-size:0.75rem; opacity:.8; margin:auto; }
.robot-hero h1 { margin-top:8px; font-size:1.875rem; }
.robot-hero>small { font-size:0.75rem; color:var(--muted); }
.robot-detail-body { padding:20px 28px; }
.robot-detail-body .robot-sheet h2 { font-size:1.5625rem; }
.robot-detail-body .primary-button { border-radius:var(--app-radius-control); margin-top:26px; }
.robot-detail-body .saurus-entry { width:100%; text-align:left; background:#161719; padding:18px; }
.control-screen { max-width:600px; min-height:calc(100dvh - var(--nav-height)); margin:auto; padding:calc(88px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 24px 28px; position:relative; display:flex; }
.control-screen .app-entry-content { min-height:calc(100dvh - var(--nav-height) - 116px - var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); }
.control-screen .app-entry-visual { height:auto; max-height:360px; border-radius:var(--app-radius-panel); background:#111; }
.control-screen .app-entry-visual img { min-height:0; }
.control-screen .form-error { margin:0; }
.control-refresh { position:absolute; top:max(18px,var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); right:22px; width:46px; height:46px; display:grid; place-items:center; border-radius:var(--app-radius-control); background:#161719; color:inherit; }
@media(max-width:900px) {
  .home-robot { min-height:82px; }
  .home-selection-title h1 { font-size:1.5rem; }
  .bottom-nav button { font-size:0.75rem; }
  .fleet-row { gap:10px; }
  .fleet-row-label strong { font-size:0.9375rem; overflow-wrap:anywhere; }
}
@media(max-width:360px) {
  .verification-form .verification-code { font-size:1.625rem; letter-spacing:.2em; }
  .profile-fields { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:no-preference) {
  .robot-pill.estop,.fleet-row.estop,.home-robot.estop,.robot-sheet.estop { position:relative; }
  .robot-pill.estop::after,.fleet-row.estop::after,.home-robot.estop::after,.robot-sheet.estop::after { content:""; pointer-events:none; position:absolute; inset:-2px; border:2px solid #ff9199; border-radius:inherit; opacity:0; animation:stop-emphasis 1.6s cubic-bezier(.45,0,.55,1) 3; }
  .home-robot.estop::after,.robot-sheet.estop::after { inset:-8px; }
  @keyframes stop-emphasis { 50% { opacity:1; } }
}
@media(hover:hover) and (pointer:fine) {
  .primary-button:hover:not(:disabled) { filter:brightness(1.08); }
  .site-choice:hover,.account-row:hover { background:#00000004; }
  .home-robot:hover,.fleet-row:hover { background:#ffffff08; }
  .saurus-entry:hover { border-color:#c9b28b55; }
}
/* Keyboard workflows keep their final visual state without spatial feedback. */
html[data-interaction=keyboard] #customer-content *,html[data-interaction=keyboard] #customer-content *::after,html[data-interaction=keyboard] dialog,html[data-interaction=keyboard] .bottom-nav * { animation:none; transition:none; }
html[data-interaction=keyboard] button:active:not(:disabled) { transform:none; }
.customer-dark-view dialog .form-error { color:#ff8a83; }
@media(prefers-reduced-motion:reduce) {
  .primary-button:active:not(:disabled),.saurus-entry:active { opacity:.8; }
}

/* Material is reserved for floating chrome; grouped content stays opaque. */
.bottom-nav button { border-radius: 1rem; min-height: 3rem; }
.bottom-nav button[aria-current] { background: var(--accent); color: #17140f; }
.map-caption, .map-picker { background: var(--material); -webkit-backdrop-filter: blur(20px) saturate(150%); backdrop-filter: blur(20px) saturate(150%); }
.account-row:not(:last-child) { border-bottom: 1px solid var(--line); }
.access-screen .text-button, dialog .text-button { color: #c9b28b; }
.customer-login[data-access=landing] { --accent: #c9b28b; }
.landing-links .text-button { color: #f5f5f7; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  button:not(:disabled):not([aria-disabled=true]):active { transform: none; }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  :root { --material: #111111; }
  .customer-dark-view { --material: #111111; }
  .landing-language .app-language, .landing-actions .secondary-button { background: #242424; }
  *, *::before, *::after { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
}
@media (prefers-contrast: more) {
  :root, dialog { --muted: #e5e5ea; --line: #8e8e93; }
  .customer-dark-view { --muted: #e5e5ea; --line: #8e8e93; }
  .bottom-nav, .map-caption, .map-picker, .monitor-panel, dialog { border: 1px solid var(--line); }
  button:not(:disabled), input, select, textarea { outline: 1px solid currentColor; outline-offset: -1px; }
  :is(button, input, select, textarea, a, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
}

/* Match the native workspace dock and keep the map separate from robot controls. */
.bottom-nav { left:12px; right:12px; bottom:max(12px,env(safe-area-inset-bottom)); height:auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:0; border-radius:var(--app-rail-radius); background:var(--app-rail-material); gap:var(--app-nav-gap); overflow:visible; padding:8px; }
.bottom-nav button { border-radius:var(--app-radius-panel); min-width:0; min-height:76px; padding:4px 0; gap:5px; font:var(--app-label-small); color:var(--app-foreground); }
.bottom-nav button > span:not(.app-nav-icon) { overflow-wrap:anywhere; }
.bottom-nav .app-nav-icon > svg { width:var(--app-nav-icon-size); height:var(--app-nav-icon-size); }
.bottom-nav button[aria-current],.customer-dark-view .bottom-nav button[aria-current] { color:var(--app-foreground); background:transparent; font-weight:700; }

@media(min-width:600px) {
  body:not(.customer-login) { padding-left:122px; }
  .bottom-nav { inset:12px auto 12px 12px; display:flex; width:var(--app-rail-width); flex-direction:column; justify-content:flex-start; padding:14px 8px; gap:18px; overflow-y:auto; }
  .bottom-nav button { flex:none; width:100%; min-height:var(--app-rail-item-height); }
  .bottom-nav .app-nav-icon { width:var(--app-nav-tile-size); height:var(--app-nav-tile-size); }
  .bottom-nav button[data-tab=account] { margin-top:auto; }
  #customer-content { padding-bottom:12px; min-height:calc(100dvh - 80px); }
}
@media(min-width:600px) and (max-width:1020px) {
}

.app-product { padding:12px 20px 0; font:var(--app-title-small); }
.workspace-icon { display:grid; place-items:center; flex:none; width:48px; height:48px; padding:12px; border-radius:var(--app-radius-control); background:transparent; color:var(--accent); }
.workspace-icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.workspace-tabs { display:flex; gap:8px; flex:1; min-width:0; }
.workspace-tabs + #site-name { flex:1; }
.workspace-tabs:not([hidden]) + #site-name { display:none; }
.workspace-tabs button { min-height:48px; padding:8px 16px; border-radius:var(--app-radius-control); color:var(--muted); background:transparent; font:var(--app-label-large); }
.workspace-tabs button[aria-selected=true] { color:var(--accent); background:var(--app-surface); }
.account-kind { margin-bottom:8px; color:var(--accent); font:var(--app-label-large); }
.site-geography { margin-top:20px; }
.site-geography summary,.account-tools summary { min-height:48px; padding:12px 0; color:var(--accent); cursor:pointer; }
.site-geography .customer-site-explorer { height:520px; }
.account-page { display:flex; flex-direction:column; gap:16px; padding:20px; }
.account-facts { display:block; }
.account-facts .robot-fact { padding:14px 0; }
.account-facts .robot-fact + .robot-fact { border-top:1px solid var(--app-border); }
.account-facts .robot-fact strong { font:var(--app-body-large); overflow-wrap:anywhere; }
.account-sites { display:grid; gap:16px; }
.account-sites h2 { font:var(--app-title-medium); }
.account-sites .secondary-button { border-color:var(--app-border); background:transparent; }
.account-version { margin:0; padding:0; border:0; }
.account-language { display:flex; justify-content:space-between; align-items:center; }
.account-policies { display:flex; flex-wrap:wrap; gap:16px; }
.account-row { text-decoration:none; }
.account-tools .account-row { font:var(--app-body-medium); }
.account-delete { text-align:center; }
.calendar-page { max-width:none; padding:20px; }
.home-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:599px) { .workspace-tabs button { padding-inline:10px; } .monitor-layout { padding:16px; } .map-stage { height:440px; } .app-header { flex-wrap:wrap; } .workspace-tabs { order:1; flex-basis:100%; } }
.program-confirmation p { margin-block:16px; color:var(--muted); }
.confirmation-actions { display:flex; justify-content:flex-end; gap:24px; }
.site-metrics { display:flex; flex-wrap:wrap; gap:24px; padding:16px 20px 0; }
.site-metrics .robot-fact { display:flex; align-items:baseline; gap:8px; }
.site-metrics strong { color:var(--accent); font:var(--app-title-medium); }
.connection-banner { display:flex; align-items:center; justify-content:space-between; gap:16px; }

.account-operations h2 { font:var(--app-title-medium); margin:0 0 12px; }
.account-tool-help { margin:0; padding:0 20px 16px 68px; color:var(--app-muted); font:var(--app-body-medium); }
