
  
  :root{
    
    --ground:var(--color-bg); --surface:var(--color-surface); --surface-2:var(--color-neutral-900);
    --edge:var(--color-neutral-500); --dis:#6b7c8f; 
    --ink:var(--color-text); --ink-2:var(--color-neutral-400); --ink-3:var(--color-neutral-600);
    --rule:var(--color-divider);
    
    --light:var(--color-accent-300);  --light-bg:var(--color-accent-500);
    --dark:var(--color-neutral-600);  --dark-bg:var(--color-neutral-800);
    
    --display:var(--font-heading);
    --body:var(--font-body);
    --data:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    
    --root-size:18px;

    
    --sp-1:1px;   --sp-2:2px;   --sp-3:3px;    --sp-4:4px;  --sp-5:5px;
    --sp-6:6px;   --sp-7:7px;   --sp-8:8px;    --sp-9:9px;  --sp-10:10px;
    --sp-12:12px; --sp-13-5:13.5px; --sp-14:14px; --sp-18:18px;

    
    --press-ms:120ms;
  }

  
  :root[data-theme="light"]{ --ink-2:var(--color-neutral-700); }

  *{box-sizing:border-box}
  
  [hidden]{display:none !important}
  #signed-out-msg,#supabase-signin{position:fixed;inset:0;z-index:1000;display:flex;
    flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;
    text-align:center;background:var(--color-bg);color:var(--color-text)}
  #signed-out-msg p,#supabase-signin p{max-width:32ch;margin:0}
  
  
  #supabase-signin{
    --color-bg:#0d1723;--color-text:#f0f4f9;--color-accent:#eca84a;
    --ground:#0d1723;--surface:#1c2633;--ink:#f0f4f9;
    --ink-2:#aab9ca;--ink-3:#6b7c8f;--surface-2:#222c37;
    --rule:color-mix(in srgb,#f0f4f9 16%,transparent);
    background:radial-gradient(ellipse 95% 60% at 50% 0%,
    color-mix(in srgb,white 55%,var(--color-bg)),var(--color-bg) 80%)}
  .signin-mark{border-radius:12px;margin-bottom:-4px}
  #supabase-signin .wordmark{color:var(--ink-2);margin-bottom:4px}
  .signin-card{width:100%;max-width:300px;background:var(--surface);
    border:1px solid var(--rule);border-radius:var(--radius-md,8px);
    padding:28px;display:flex;flex-direction:column;align-items:center;gap:18px}
  .signin-card h2{margin:0;font-weight:700}
  #supabase-signin-google{width:100%}
  #supabase-signin-google svg{width:16px;height:16px;flex:none}
  #supabase-signin-email-form{display:flex;flex-direction:column;gap:8px;width:100%}
  #supabase-signin-email{padding:10px;border-radius:8px;border:1px solid var(--rule);
    font-size:16px;font-family:inherit;background:var(--surface-2);color:var(--ink)}
  
  html{overflow-x:hidden;font-size:var(--root-size)}
  body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);
       font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased}
  
  
  .wrap{max-width:1120px;margin:0 auto;
        
        --wrap-top:calc(var(--sp-13-5) + env(safe-area-inset-top,0px));
        padding:0
                calc(var(--sp-13-5) + env(safe-area-inset-right,0px))
                calc(104px + env(safe-area-inset-bottom,0px))
                calc(var(--sp-13-5) + env(safe-area-inset-left,0px));
        display:flex;flex-direction:column;gap:9px}
  h1,h2,h3{font-family:var(--display);font-weight:var(--font-heading-weight,500);
           margin:0;line-height:1.2;text-wrap:balance}
  
  h1{font-size:22.5px;font-weight:700;letter-spacing:normal}
  h2{font-size:20.25px} h3{font-size:18px}
  
  .eyebrow{font-family:var(--body);font-size:13.5px;font-weight:600;letter-spacing:.08em;
           text-transform:uppercase;color:var(--color-accent)}
  .sub{color:var(--ink-2);font-size:15.75px}
  
  #hdr-status{font-family:var(--body);font-size:13.5px;letter-spacing:.06em;
    text-transform:uppercase;color:color-mix(in srgb,var(--ink) 48%,transparent)}
  
  .card{background:var(--surface);box-shadow:var(--shadow-sm);
        border-radius:22.5px;padding:13.5px 15px}
  .stack{display:flex;flex-direction:column;gap:9px}
  
  #route-globe{display:flex;flex-direction:column;gap:10px}
  .rg-head{display:flex;align-items:center;justify-content:space-between}
  .rg-expand{width:44px;height:44px;margin:-12px -12px -12px 0;border:0;background:transparent;
    color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
  .rg-globe{display:flex;justify-content:center}
  .rg-globe svg{display:block;width:100%;max-width:326px;height:auto;overflow:visible}
  .rg-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
    padding-top:12px;border-top:1px solid var(--rule)}
  .rg-fact{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:0}
  .rg-fact:nth-child(2){align-items:center} .rg-fact:nth-child(3){align-items:flex-end}
  .rg-v{font-family:var(--data);font-size:17px;font-weight:600;color:var(--ink)}
  .rg-k{font-size:12px;letter-spacing:.04em;color:var(--ink-2);white-space:nowrap}
  .rg-cap{font-size:13px;color:var(--ink-2)}
  
  .rg-now{font-size:14px;color:var(--ink)} .rg-now b{font-weight:600;color:var(--color-accent)}
  
  #rg-dialog{position:fixed;inset:0;z-index:60;background:var(--ground);color:var(--ink);
    display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
  .rgd-head{display:flex;align-items:center;justify-content:space-between;
    padding:8px 4px 8px 16px;border-bottom:1px solid var(--rule)}
  .rgd-close{width:44px;height:44px;border:0;background:transparent;color:var(--ink);
    display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
  .rgd-titles{padding:16px 16px 0;display:flex;flex-direction:column;gap:4px}
  .rgd-title{margin:0;font-size:22.5px;font-weight:500}
  .rgd-line{font-size:14.5px;color:var(--ink-2)}
  
  .rgd-globe{display:flex;justify-content:center;padding:40px 0 8px;position:relative}
  .rgd-recentre{position:absolute;right:16px;bottom:8px;display:inline-flex;align-items:center;gap:6px;
    min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);
    background:var(--color-surface);color:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer;
    white-space:nowrap}
  .rgd-recentre svg{flex:none}
  .rgd-recentre[hidden]{display:none}
  .rgd-globe > svg{display:block;width:100%;max-width:520px;height:auto;touch-action:none;overflow:visible;
    cursor:grab;user-select:none;-webkit-user-select:none}
  .rgd-body{padding:0 16px 24px;display:flex;flex-direction:column;gap:14px;
    max-width:520px;width:100%;margin:0 auto;box-sizing:border-box}
  .rgd-legend{display:flex;flex-direction:column;gap:8px}
  .rgd-li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2)}
  .rgd-route{stroke:var(--color-accent-500)}
  html:not([data-theme="light"]) .rgd-route{stroke:var(--color-accent-400)}
  .rgd-night{fill:var(--color-text);fill-opacity:.3}
  html:not([data-theme="light"]) .rgd-night{fill:var(--color-bg);fill-opacity:.7;stroke:var(--color-text);stroke-opacity:.3}
  .rgd-hint{font-size:13px;color:var(--ink-2)}

  
  .set-list{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;
    overflow:hidden;display:flex;flex-direction:column}
  .set-row{display:flex;align-items:center;gap:var(--sp-10);padding:12px 15px;
    min-height:44px;border-top:1px solid var(--rule);background:none;border-left:0;
    border-right:0;border-bottom:0;width:100%;box-sizing:border-box;text-align:left;
    color:var(--ink);text-decoration:none;font:inherit}
  .set-list > .set-row:first-child,.set-list > a.set-row:first-child{border-top:0}
  button.set-row{cursor:pointer}
  .set-row-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .set-row-t b{font-weight:500}
  .set-row-sub{font-size:.82rem;color:var(--ink-2)}
  
  .set-row-value{color:var(--ink-2);font-size:.87rem;white-space:nowrap;flex:none}
  
  .set-row.set-warn .set-row-sub{color:var(--color-accent-500);font-weight:600}
  .set-row-arrow{color:var(--ink-3);font-size:1.1rem;line-height:1;flex:none}
  .set-row-details{flex-direction:column;align-items:stretch}
  
  .set-switch{flex:none;width:44px;min-height:44px;background:none;border:0;padding:0;
    display:flex;align-items:center;cursor:pointer}
  .set-track{width:44px;height:26px;border-radius:13px;background:var(--rule-2,var(--rule));
    padding:2px;display:flex;align-items:center;transition:background .15s}
  .set-switch[aria-checked="true"] .set-track{background:var(--color-accent-400)}
  .set-knob{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);
    transition:transform .15s;transform:translateX(0)}
  .set-switch[aria-checked="true"] .set-knob{transform:translateX(18px)}
  button{font:inherit;cursor:pointer}
  
  .chipf,.ghost,summary{min-height:44px}
  
  a{color:var(--color-accent-soft)}
  :focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}

  
  .ring-row{display:flex;align-items:center;gap:15px}
  .ring{flex:none}
  .ring-n{font-family:var(--display);font-size:27px;font-weight:700;fill:var(--ink)}
  .ring-of{font-family:var(--display);font-size:13.5px;font-weight:500;fill:var(--ink-2)}
  .ring-title{font-size:22.5px;font-weight:700;line-height:1.12;text-wrap:pretty}
  .ring-sub{font-size:15.75px;color:var(--ink-2);line-height:1.4;margin-top:4.5px}
  .cta{display:flex;align-items:center;justify-content:center;gap:6.75px;width:100%;
       font-size:18px;font-weight:600;color:var(--ground);background:var(--color-accent);
       border:0;border-radius:999px;min-height:48px;padding:var(--sp-9) var(--sp-18);text-decoration:none}
  .strip-cap{font-size:13.5px;color:var(--ink-2);line-height:1.4}
  
  
  .eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-7)}
  
  .hcard-head-r{display:inline-flex;align-items:center;gap:var(--sp-7)}
  
  .tzlab{font-family:var(--data);font-size:.62rem;letter-spacing:.04em;color:var(--ink-3);
    white-space:nowrap}
  .tzsw{display:inline-flex;gap:2px;flex:none;margin:-7px 0}
  
  .tzsw-b{display:inline-flex;align-items:center;background:transparent;border:0;
    padding:0 var(--sp-3);min-height:40px;cursor:pointer}
  .tzsw-p{font-family:var(--data);font-size:.66rem;letter-spacing:.04em;
    color:var(--ink-3);border:1px solid var(--rule);border-radius:99px;
    padding:var(--sp-3) var(--sp-8);white-space:nowrap}
  .tzsw-b[aria-pressed="true"] .tzsw-p{color:var(--color-accent);border-color:var(--color-accent)}
  
  
  .strip-more{display:inline-flex;align-items:center;gap:var(--sp-5);min-height:44px;
    font-size:13.5px;margin-top:4.5px;font-family:inherit;background:transparent;
    border:0;padding:0;cursor:pointer;color:var(--color-accent-soft);
    text-decoration:underline;text-underline-offset:3px}
  
  .strip-more-car{display:inline-block;width:10px;height:10px;flex:none;
    transition:transform .15s ease}
  .strip-more[aria-expanded="true"] .strip-more-car{transform:rotate(180deg)}
  @media (prefers-reduced-motion:reduce){.strip-more-car{transition:none}}
  
  .strip-rest{margin-top:var(--sp-7)}
  .strip-rest .dboard-window{flex-direction:column;align-items:flex-start;gap:2px}
  .strip-rest-note{font-size:12px;line-height:1.35;color:var(--ink-2)}
  
  .strip-rest .dboard-row::after{content:none}
  
  .strip-rest-all{display:inline-flex;align-items:center;min-height:44px;
    font-size:13px;padding:0 var(--sp-12)}

  
  
  
  #now .time{display:inline-flex;align-items:center;font-family:var(--data);line-height:1;
    letter-spacing:0;font-variant-numeric:tabular-nums;margin-top:var(--sp-8);gap:3px}
  #now .time .flap{position:relative;background:var(--color-bg);border:1px solid var(--rule);
    border-radius:3px;width:24px;height:32px;flex:none;display:flex;align-items:center;
    justify-content:center;font-size:20px;font-weight:600;overflow:hidden}
  #now .time .flap::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;
    background:#000;opacity:.5}
  #now .time .colon{border:0;background:none;width:8px;height:32px;flex:none;display:flex;
    align-items:center;justify-content:center;font-size:20px;font-weight:600;opacity:.5}
  #now .until{font-family:var(--data);font-size:.88rem;color:var(--ink-2);
    font-variant-numeric:tabular-nums}
  #now .say{font-size:1rem;margin-top:4px}

  
  .strip{height:24px;border-radius:5px;overflow:hidden;display:flex;border:1px solid var(--rule);
         position:relative;background:var(--surface-2)}
  .strip i{display:block;height:100%;position:absolute;top:0}
  .strip i.l{background:var(--light-bg);box-shadow:inset 0 0 0 1px var(--light)}
  .strip i.d{background:var(--dark-bg);box-shadow:inset 0 0 0 1px var(--dark)}
  .strip .nowline{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);border-radius:2px}
  .ticks{display:flex;justify-content:space-between;font-family:var(--data);font-size:.6rem;
         color:var(--ink-3);margin-top:3px}
  
  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
  .field{display:flex;flex-direction:column;gap:var(--sp-5);position:relative;min-width:0}
  
  #p-clock-grid{grid-template-rows:auto auto}
  
  #p-clock-grid .field{display:grid;grid-template-rows:subgrid;grid-row:span 2}
  
  
  .field label{font-family:var(--body);font-size:12px;letter-spacing:normal;
    text-transform:none;color:color-mix(in srgb,var(--ink) 70%,transparent)}
  
  .inp{border:1px solid var(--rule);background:var(--surface);color:var(--ink);
    border-radius:8px;padding:var(--sp-6) var(--sp-10);font:inherit;font-size:14px;
    width:100%;max-width:100%;min-width:0}
  
  @media (max-width:899px){ .inp{font-size:16px;padding:8px 10px} }
  
  .inp:focus{outline:none;border-color:var(--color-accent);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 18%,transparent)}
  
  .field.err .inp{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 15%,transparent)}
  .msg{font-size:.72rem;min-height:1.05rem}
  .msg.err{color:var(--color-accent)} .msg.hint{color:var(--ink-3)}
  
  .msg.warn.staging-refresh{
    display:flex; align-items:flex-start; gap:var(--sp-10); flex-wrap:wrap;
    font-size:.78rem; line-height:1.5; color:var(--color-accent-200);
    background:var(--color-accent-900); border-left:3px solid var(--color-accent-500);
    border-radius:0 8px 8px 0; padding:var(--sp-10) var(--sp-12); margin-bottom:var(--sp-12);
  }
  .msg.warn.staging-refresh b{color:var(--color-accent-100)}
  .msg.warn.staging-refresh>div{flex:1 1 15rem; min-width:0}
  .msg.warn.staging-refresh .ghost{flex:0 0 auto; min-height:44px}
  
  .ob-next{border-left:3px solid var(--color-accent-500);border-radius:0 8px 8px 0;
    padding:2px 0 2px var(--sp-10);display:flex;flex-direction:column;gap:6px;
    text-decoration:none;color:inherit}
  .ob-bar{height:4px;border-radius:2px;background:var(--rule)}
  .ob-fill{height:100%;border-radius:2px;background:var(--color-accent)}
  .ob-next .sub{color:var(--ink-2)}
  .msg.ok{color:var(--ink-2)}
  .ac{position:absolute;top:100%;left:0;right:0;z-index:40;background:var(--surface);
    border:1px solid var(--rule);border-radius:8px;margin-top:var(--sp-3);max-height:210px;
    overflow-y:auto;display:none}
  .ac.open{display:block}
  .ac div{padding:var(--sp-8) var(--sp-10);cursor:pointer;font-size:.82rem}
  .ac div:hover,.ac div.sel{background:color-mix(in srgb,var(--color-accent) 16%,transparent)}
  .ac .c{font-family:var(--data);color:var(--ink)}
  
  .go{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-6);
    border:1px solid var(--color-accent);background:transparent;color:var(--color-accent);
    border-radius:var(--radius-md,8px);padding:var(--sp-9) var(--sp-18);
    font-family:var(--font-heading);font-weight:var(--font-heading-weight,500);font-size:.86rem}
  .go:active{background:color-mix(in srgb,var(--color-accent) var(--go-active-mix),transparent);
    border-color:var(--color-accent-soft);color:var(--color-accent-soft)}
  .go[disabled]{opacity:.45;cursor:not-allowed}
  
  :root[data-theme="light"]{--edge:var(--color-neutral-600);--dis:#8a97a6}
  .delbox .inp{border:2px solid var(--edge);padding:7px 9px}
  .delbox .inp:focus{outline:3px solid var(--color-accent);outline-offset:2px}
  .delbox .field span{color:var(--ink)}
  .delbox .chk input{appearance:none;-webkit-appearance:none;width:22px;height:22px;flex:none;
    margin:0;border:2px solid var(--edge);border-radius:6px;background:transparent;
    display:grid;place-content:center}
  .delbox .chk input::after{content:"";width:10px;height:10px;transform:scale(0);
    background:var(--color-accent);border-radius:2px}
  .delbox .chk input:checked{border-color:var(--color-accent)}
  .delbox .chk input:checked::after{transform:scale(1)}
  .delbox .chk input:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
  .delbox .go[disabled]{border-color:var(--dis);color:var(--dis);opacity:1}
  .ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-6);
    border:1px solid var(--rule);background:transparent;color:var(--ink-2);
    border-radius:var(--radius-md,8px);padding:var(--sp-7) var(--sp-12);
    font-family:var(--font-heading);font-weight:var(--font-heading-weight,500);font-size:.8rem}
  .ghost:active{background:color-mix(in srgb,var(--ink) 22%,transparent);
    border-color:var(--ink-2);color:var(--ink)}

  
  @media (hover:hover){
    .cta:hover{background:var(--color-accent-300)}
    .go:hover{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}
    .ghost:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}
    .stop-remove:hover{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}
    .add-stop:hover{border-color:var(--color-accent);color:var(--color-accent)}
  }

  .go,.ghost,.cta,.tway,.add-stop,.stop-remove,.view-back,.chipf button{
    transition:background var(--press-ms) ease,border-color var(--press-ms) ease,
               color var(--press-ms) ease,opacity var(--press-ms) ease;
    
    -webkit-tap-highlight-color:transparent}

  
  .cta:active{background:var(--color-accent-500)}
  .tway:active{background:var(--color-neutral-700)}
  .add-stop:active{border-color:var(--color-accent);color:var(--color-accent);
    background:color-mix(in srgb,var(--color-accent) 14%,transparent)}
  .stop-remove:active{background:color-mix(in srgb,var(--ink) 16%,transparent);color:var(--ink)}
  .view-back:active{color:var(--color-accent)}
  .chipf button:active{color:var(--ink)}

  
  .ghost[disabled],.cta[disabled],.tway[disabled],.add-stop[disabled],.stop-remove[disabled]{
    opacity:.45;cursor:not-allowed}

  
  .is-pending{opacity:.6;border-style:dashed;cursor:progress}
  .is-pending::after{content:"";flex:none;width:7px;height:7px;border-radius:50%;
    background:currentColor}
  
  .is-pending.is-slow::after{width:12px;height:12px;background:none;
    border:2px solid color-mix(in srgb,currentColor 30%,transparent);
    border-top-color:currentColor;animation:jl-spin .7s linear infinite}
  @keyframes jl-spin{to{transform:rotate(360deg)}}

  
  @media (prefers-reduced-motion:reduce){
    .go,.ghost,.cta,.tway,.add-stop,.stop-remove,.view-back,.chipf button{transition:none}
    .is-pending.is-slow::after{animation:none;
      border-top-color:color-mix(in srgb,currentColor 30%,transparent)}
  }
  .chips{display:flex;gap:var(--sp-10);flex-wrap:wrap;margin-top:12px}
  .chipf{display:flex;align-items:center;gap:var(--sp-6);border:1px solid var(--rule);
    border-radius:99px;padding:var(--sp-3) var(--sp-6) var(--sp-3) var(--sp-12);background:var(--surface);
    
    position:relative}
  .chipf label{font-family:var(--data);font-size:.66rem;letter-spacing:.06em;
    text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
  .chipf input,.chipf select{border:0;background:transparent;color:var(--ink);
    font:inherit;font-size:.8rem;font-family:var(--data);padding:var(--sp-3) var(--sp-4);
    border-radius:6px;min-width:0}
  
  
  .chipf select{min-height:34px}
  .chipf input[type=number]{width:3.4rem}
  .chipf input:focus,.chipf select:focus{outline:2px solid var(--color-accent);outline-offset:1px}
  .chipf button{border:0;background:transparent;color:var(--ink-3);
    font-size:.68rem;font-family:var(--data);padding:var(--sp-2) var(--sp-6);text-decoration:underline}
  
  .group-hdr{font-family:var(--data);font-size:.62rem;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-3);margin:6px 0 3px;display:flex;align-items:center;gap:8px}
  .req-star{color:var(--color-accent)}
  .tag-optional{font-weight:400;letter-spacing:.04em;color:var(--ink-3);opacity:.8}
  
  .field-hero{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-10);
    background:var(--surface);border:1.5px solid var(--color-accent);
    border-radius:10px;padding:var(--sp-5) var(--sp-12);margin:4px 0}
  .field-hero label{font-family:var(--data);font-size:.62rem;letter-spacing:.06em;
    text-transform:uppercase;color:var(--color-accent-2);flex:0 0 auto}
  .field-hero input{background:transparent;border:0;color:var(--ink);font:inherit;
    font-size:1.02rem;font-family:var(--data);padding:0;flex:1 1 auto;min-width:70px}
  .field-hero input:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
  .field-hero .msg{flex:0 0 100%;margin:0}
  
  .seg{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:12px;
    background:color-mix(in srgb,var(--ink) 8%,transparent)}
  .seg button{min-height:44px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);
    font:inherit;font-weight:600;cursor:pointer}
  .seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--rule)}
  .seg button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
  
  .seg-4{grid-template-columns:repeat(4,1fr)}
  .seg-4 button{font-size:.85rem;min-width:0;padding:6px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  
  .seg button[aria-checked="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--ink-2)}
  .leg{display:flex;flex-direction:column;gap:var(--sp-10);border:1px solid var(--rule);
    border-radius:12px;padding:var(--sp-12)}
  .leg-h{font-weight:600;font-size:.92rem;color:var(--ink)}
  
  .pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-10)}
  .inline{display:flex;gap:var(--sp-8);align-items:stretch}
  .inline .inp{flex:1 1 auto;min-width:0}
  .inline select.inp{flex:0 0 auto;width:auto}
  .inline .ghost{flex:0 0 auto;white-space:nowrap}
  .route-line{font-size:.85rem;color:var(--ink-2)}
  .linkish{align-self:flex-start;border:0;background:transparent;color:var(--ink-2);padding:var(--sp-3) 0;
    font:inherit;font-size:.78rem;text-decoration:underline;cursor:pointer;min-height:32px}
  
  .inp[type=date],.inp[type=time]{min-width:0;min-height:44px;-webkit-appearance:none;appearance:none}
  .inp::-webkit-date-and-time-value{text-align:left}
  
  .stops-label{font-family:var(--data);font-size:.62rem;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-3);margin:14px 0 8px}
  .stop-card{background:var(--surface);border:1px solid var(--rule);border-radius:12px;
    padding:var(--sp-12) var(--sp-14);margin-bottom:10px}
  .stop-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .stop-route{font-family:var(--data);font-size:.92rem;color:var(--ink);display:flex;align-items:center;gap:6px}
  .stop-route .arrow{color:var(--ink-3)}
  .stop-remove{background:transparent;border:0;color:var(--ink-3);cursor:pointer;padding:var(--sp-6) var(--sp-10);
    display:flex;align-items:center;justify-content:center;gap:var(--sp-4);border-radius:6px;min-height:32px;
    font-family:var(--font-heading);font-weight:var(--font-heading-weight,500);font-size:.72rem}
  .stops-empty{font-family:var(--body);font-size:.8rem;color:var(--ink-3);margin:4px 0 10px}
  .stop-sub{margin-top:var(--sp-10);display:flex;flex-direction:column;gap:10px}
  .stop-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .stop-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-10);flex-wrap:wrap}
  .stop-row .k{font-family:var(--body);font-size:.78rem;color:var(--ink-2)}
  .three-way{display:flex;gap:6px}
  
  .three-way.four-way{flex-wrap:wrap;justify-content:flex-end}
  .tway{border:1px solid var(--rule);background:var(--color-neutral-800);color:var(--color-neutral-100);
    border-radius:99px;padding:var(--sp-5) var(--sp-12);font-family:var(--font-heading);font-weight:var(--font-heading-weight,500);
    font-size:.72rem;cursor:pointer;min-height:32px}
  
  .tway[aria-pressed="true"]{border-color:var(--color-accent-500);background:var(--color-accent-500);color:var(--color-accent-900)}
  .stop-note{font-family:var(--body);font-size:.72rem;color:var(--ink-3);line-height:1.5}
  .add-stop{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-6);
    border:1px dashed var(--rule);background:transparent;color:var(--ink-2);
    border-radius:var(--radius-md,8px);padding:var(--sp-10) var(--sp-14);width:100%;
    font-family:var(--font-heading);font-weight:var(--font-heading-weight,500);font-size:.86rem;
    cursor:pointer;min-height:44px}
  .routing-hint{background:var(--surface-2);border-radius:var(--radius-md,8px);
    padding:var(--sp-10) var(--sp-12);margin-top:var(--sp-12);font-family:var(--body);font-size:.72rem;
    color:var(--ink-2);line-height:1.5}
  
  .adh-block{margin-top:var(--sp-8);padding-top:var(--sp-8);border-top:1px solid var(--rule)}
  
  .override-card{margin-top:var(--sp-8)}
  .override-card summary{text-transform:none;letter-spacing:normal;font-family:var(--body);
    font-size:.9rem;color:var(--ink)}
  .ov-intro{margin:var(--sp-5) 0 var(--sp-7);font-size:.82rem}
  .ov-row{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-7) 0;
    border-top:1px solid var(--rule)}
  .ov-win{display:flex;align-items:baseline;gap:var(--sp-7)}
  .ov-win .n{font-family:var(--body);font-size:13.5px;color:var(--ink)}
  .ov-win .t{font-family:var(--data);font-size:.72rem;color:var(--ink-3)}
  
  .ov-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6)}
  .ov-lbl{font-size:.82rem;color:var(--ink-2)}
  
  .ov-form .inp{flex:0 0 auto;width:7.1em}
  .ov-form .ov-save{flex:1 0 100%;margin-top:var(--sp-5);min-height:44px}
  .ov-said{font-size:.85rem;color:var(--ink-2);display:flex;align-items:center;gap:var(--sp-7);flex-wrap:wrap}
  .ov-msg{margin-top:var(--sp-7);font-size:.85rem;color:var(--ink-2);line-height:1.45}
  .ov-msg:empty{display:none}
  .adh-title{font-family:var(--body);font-size:13.5px;font-weight:600;color:var(--ink)}
  .adh-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-10);
    padding:var(--sp-7) 0;flex-wrap:wrap}
  .adh-win{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
  .adh-win .n{font-family:var(--body);font-size:13.5px;color:var(--ink)}
  .adh-win .t{font-family:var(--data);font-size:.66rem;color:var(--ink-3)}
  .adh-err{color:var(--color-accent);font-size:.72rem;margin-top:2px}
  
  .adh-detail{display:flex;flex-direction:column;gap:var(--sp-7);
    margin:0 0 var(--sp-7) var(--sp-10);padding:var(--sp-7) 0 var(--sp-7) var(--sp-10);
    border-left:2px solid var(--rule)}
  .adh-f{display:flex;align-items:center;gap:var(--sp-7);flex-wrap:wrap}
  .adh-f>span{font-family:var(--body);font-size:13.5px;color:var(--ink-2);min-width:74px}
  .adh-f .u{font-family:var(--data);font-size:.66rem;color:var(--ink-3);min-width:0}
  
  .adh-detail .inp{min-height:44px}
  .adh-time{width:9.5em}
  .adh-dur{width:5.5em}
  
  
  button.chipf[aria-pressed],button.chipf[aria-checked]{color:var(--ink-2);
    padding:var(--sp-5) var(--sp-14);font-family:var(--font-heading);
    font-weight:var(--font-heading-weight,500);font-size:.8rem}
  
  button.chipf[aria-pressed="true"],button.chipf[aria-checked="true"]{border-color:var(--color-accent-500);
    background:var(--color-accent-500);color:var(--color-accent-900)}
  button.chipf[aria-pressed="false"],button.chipf[aria-checked="false"]{border-color:var(--rule);
    background:var(--color-neutral-800);color:var(--color-neutral-100)}
  
  #profile-body button.chipf[aria-pressed]{border-radius:9px}
  .chrono-name{font-weight:600;color:var(--ink)}
  
  #date-shortcuts button.chipf{min-height:44px}
  
  #nt2-date-shortcuts button.chipf{min-height:44px}
  .nt-numinp{font-family:var(--data);text-transform:uppercase;letter-spacing:.03em}
  .nt-numinp::placeholder{text-transform:none;letter-spacing:0}
  .nt-find{width:100%;min-height:44px}
  
  #m-nt2-num:empty,#m-nt2r-num:empty,#m-nt2r-date:empty,#m-nt2-picks:empty,#m-nt2r-picks:empty{display:none}
  .nt-banner{border:1px solid color-mix(in srgb,var(--color-accent) 45%,transparent);
    border-radius:10px;padding:var(--sp-9) var(--sp-12);font-size:13px;line-height:1.45;
    color:var(--ink-2);background:color-mix(in srgb,var(--ink) 6%,transparent)}
  .nt-banner b{color:var(--color-accent);font-weight:600}
  .nt-card{background:var(--surface);border:1px solid var(--rule);border-radius:12px;overflow:hidden}
  .nt-card:focus{outline:none}
  .nt-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
  .nt-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-8);
    padding:var(--sp-9) var(--sp-12);border-bottom:1px dashed var(--rule)}
  .nt-num{font-family:var(--data);font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--ink)}
  .nt-date{font-size:12px;color:var(--ink-2)}
  .nt-legs{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--sp-6);align-items:end;padding:var(--sp-12)}
  .nt-end{display:flex;flex-direction:column;gap:1px;min-width:0}
  .nt-r{text-align:right}
  .nt-code{font-family:var(--data);font-size:24px;font-weight:600;line-height:1;color:var(--ink)}
  .nt-city{font-size:11.5px;color:var(--ink-2)}
  .nt-time{font-family:var(--data);font-size:14px;font-variant-numeric:tabular-nums;margin-top:var(--sp-4);color:var(--ink)}
  .nt-plus{font-size:9.5px;color:var(--color-accent);margin-left:1px}
  .nt-arrow{color:var(--ink-3);font-family:var(--data);padding-bottom:20px;text-align:center;font-size:12px}
  .nt-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-8);
    padding:0 var(--sp-4) 0 var(--sp-12);background:color-mix(in srgb,var(--ink) 6%,transparent);font-size:12px;color:var(--ink-2)}
  .nt-foot b{color:var(--ink);font-weight:600}
  
  .nt-chg{background:none;border:0;color:var(--color-accent);font:inherit;font-size:13px;
    font-weight:600;cursor:pointer;padding:0 var(--sp-8);min-height:44px}
  .nt-via{display:block;font-size:10px;color:var(--ink-2)}
  
  .nt-jr{display:flex;flex-direction:column;gap:13px}
  .nt-vianote{font-size:11px;color:var(--ink-2);font-weight:400}
  .nt-warnrow{border:1px solid color-mix(in srgb,var(--color-accent) 45%,transparent);border-radius:10px;
    padding:8px 11px;font-size:12.5px;line-height:1.45;background:var(--surface);color:var(--color-accent)}
  .nt-flist{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:12px;background:var(--surface);overflow:hidden}
  .nt-frow{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-8);padding:0 var(--sp-4) 0 var(--sp-12)}
  .nt-frow + .nt-frow,.nt-waitrow + .nt-frow{border-top:1px solid var(--rule)}
  .nt-fmain{display:flex;flex-direction:column;gap:1px;min-width:0;padding-block:var(--sp-8)}
  .nt-fnum{font-family:var(--data);font-weight:600;font-size:13px;color:var(--ink)}
  .nt-froute{font-family:var(--data);font-size:11.5px;color:var(--ink-2)}
  .nt-fact{display:flex;flex-shrink:0}
  .nt-fchg{background:none;border:0;color:var(--color-accent);font:inherit;font-size:12.5px;font-weight:600;
    min-width:44px;min-height:44px;padding:0 9px;cursor:pointer}
  .nt-waitrow{text-align:center;font-size:11px;color:var(--ink-2);padding:6px 10px;border-top:1px dashed var(--rule);
    background:color-mix(in srgb,var(--ink) 6%,transparent)}
  .nt-addconn{color:var(--color-accent);font-weight:600;min-height:44px;
    display:inline-flex;align-items:flex-start;padding:4px 0 0}
  
  .nt-foot:has(> [id$="-change"][hidden]){min-height:34px}
  .nt-fixed{border:1px dashed var(--rule);border-radius:10px;padding:9px 11px;background:var(--surface);
    font-family:var(--data);font-size:14px;font-weight:600;color:var(--ink)}
  .nt-nomatch{border:1px dashed var(--rule);border-radius:10px;padding:8px 11px;font-size:12.5px;line-height:1.45;
    color:var(--ink-2);background:color-mix(in srgb,var(--ink) 6%,transparent)}
  #nt2c-try,#nt2rc-try{min-height:44px}
  #nt2c-chips,#nt2rc-chips{margin-top:0}
  #m-nt2c-num:empty,#m-nt2c-picks:empty,#m-nt2c-to:empty,
  #m-nt2rc-num:empty,#m-nt2rc-picks:empty,#m-nt2rc-to:empty{display:none}
  
  #ne-date-shortcuts button.chipf,#ner-date-shortcuts button.chipf{min-height:44px}
  #m-ne-num:empty,#m-ner-num:empty,#m-ne-picks:empty,#m-ner-picks:empty,#ne-msg:empty{display:none}
  #ne{margin-top:14px}
  
  #nec-try,#nerc-try{min-height:44px}
  #nec-chips,#nerc-chips{margin-top:0}
  #m-nec-num:empty,#m-nec-picks:empty,#m-nec-to:empty,
  #m-nerc-num:empty,#m-nerc-picks:empty,#m-nerc-to:empty{display:none}
  #ne-jsub{min-height:0}
  
  #nt2r-date-shortcuts button.chipf{min-height:44px}
  .nt-q{font-family:var(--font-heading);font-weight:600;font-size:16px;line-height:1.35;margin:0;color:var(--ink);text-wrap:balance}
  .nt-q:focus{outline:none}
  .nt-c{align-self:center}
  .nt-picks{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:12px;background:var(--surface);overflow:hidden}
  .nt-pick{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;
    min-height:44px;padding:11px 12px;background:none;border:0;text-align:left;color:var(--ink)}
  .nt-pick + .nt-pick{border-top:1px solid var(--rule)}
  .nt-pick:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}
  .nt-radio{width:17px;height:17px;border-radius:50%;border:1.5px solid var(--ink-3)}
  .nt-pick[aria-checked="true"]{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}
  .nt-pick[aria-checked="true"] .nt-radio{border-color:var(--color-accent);
    box-shadow:inset 0 0 0 3.5px var(--surface),inset 0 0 0 10px var(--color-accent)}
  .nt-pmid{min-width:0}
  .nt-proute{display:block;font-family:var(--data);font-size:13.5px;font-weight:600}
  .nt-psub{display:block;font-size:11.5px;color:var(--ink-2)}
  .nt-pt{font-family:var(--data);font-size:12.5px;text-align:right;font-variant-numeric:tabular-nums}
  .nt-lab{font-family:var(--body);font-size:12px;color:color-mix(in srgb,var(--ink) 70%,transparent)}
  .nt-routebox{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-8);
    border:1px dashed var(--rule);border-radius:10px;padding:0 var(--sp-4) 0 var(--sp-12);background:var(--surface)}
  .nt-routecodes{font-family:var(--data);font-size:15px;font-weight:600;letter-spacing:.03em;color:var(--ink)}
  .nt-note{border:1px dashed var(--rule);border-radius:10px;padding:var(--sp-9) var(--sp-12);font-size:13px;
    line-height:1.45;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 6%,transparent)}
  .nt-note b{color:var(--ink);font-weight:600}
  
  #nt2-manual > .leg,#nt2r-manual > .leg{border:0;border-radius:0;padding:0}
  
  .nt-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-8)}
  .nt-fresh{margin-left:auto;background:none;border:0;color:var(--ink-2);font:inherit;font-size:13px;
    cursor:pointer;min-height:44px;padding:0 0 0 var(--sp-12)}
  
  .nt-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 var(--sp-8);
    border:1px solid var(--rule);border-radius:10px;padding:0 var(--sp-4) 0 var(--sp-12);
    background:color-mix(in srgb,var(--ink) 6%,transparent)}
  .nt-notice:empty{display:none}
  .nt-ntxt{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 9rem;padding-block:var(--sp-8)}
  .nt-ntxt b{font-size:13px;font-weight:600;color:var(--ink)}
  .nt-ndata{font-family:var(--data);font-size:12px;color:var(--ink-2)}
  .nt-nacts{display:flex;margin-left:auto}
  .nt-nbtn{background:none;border:0;font:inherit;font-size:13px;font-weight:600;color:var(--color-accent);
    cursor:pointer;min-height:44px;padding:0 var(--sp-8)}
  .nt-nbtn.nt-plain{color:var(--ink-2);font-weight:500}
  #nt2-oldform{min-height:44px}
  
  #nt2-date-shortcuts button.chipf[aria-pressed],#nt2r-date-shortcuts button.chipf[aria-pressed],
  #ne-date-shortcuts button.chipf[aria-pressed],#ner-date-shortcuts button.chipf[aria-pressed]{
    border-color:var(--rule);background:var(--surface);color:var(--ink-2)}
  #nt2-date-shortcuts button.chipf[aria-pressed="true"],#nt2r-date-shortcuts button.chipf[aria-pressed="true"],
  #ne-date-shortcuts button.chipf[aria-pressed="true"],#ner-date-shortcuts button.chipf[aria-pressed="true"]{
    border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,var(--surface));
    color:var(--ink);font-weight:600}
  .nt-tick{display:none}
  button.chipf[aria-pressed="true"] > .nt-tick{display:inline}

  details{border-top:1px solid var(--rule);padding-top:12px}
  
  summary{cursor:pointer;display:flex;align-items:center;font-family:var(--data);font-size:.72rem;
    letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);list-style:none}
  summary::-webkit-details-marker{display:none}
  
  .overlap-d{border-top:0;padding-top:0}
  .overlap-d>summary{display:block;text-transform:none;letter-spacing:normal;
    font-family:var(--body);font-size:1rem;color:var(--ink-2);min-height:0;padding:2px 0}
  
  summary::before{content:"+";color:var(--color-accent);margin-right:.45em}
  details[open] summary::before{content:"−"}
  table{width:100%;border-collapse:collapse;font-size:.8rem;margin-top:10px}
  th,td{text-align:left;padding:var(--sp-6) var(--sp-8);border-bottom:1px solid var(--rule)}
  th{font-family:var(--data);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
     color:var(--ink-3);font-weight:600}
  td.n{font-family:var(--data);font-variant-numeric:tabular-nums;white-space:nowrap}
  
  .abbr{font-family:var(--data);font-size:.66rem;letter-spacing:.06em;color:var(--color-accent);
    border:1px solid var(--color-accent);border-radius:99px;padding:var(--sp-1) var(--sp-7);margin-left:var(--sp-6);
    white-space:nowrap;font-weight:400}
  
  #trust-flag[data-state]{border-color:currentColor}
  .spine{display:flex;height:24px;border-radius:6px;overflow:hidden;border:1px solid var(--rule)}
  .spine .sp{display:flex;align-items:center;justify-content:center;font-family:var(--data);
    font-size:.6rem;color:var(--ink-2);letter-spacing:.05em}
  .spine .prep{background:var(--light-bg);box-shadow:inset 0 0 0 1px var(--light)}
  .spine .out{background:var(--dark-bg);box-shadow:inset 0 0 0 1px var(--dark)}
  .spine .home{background:var(--surface-2)}
  .spinedates{display:flex;justify-content:space-between;font-family:var(--data);
    font-size:.64rem;color:var(--ink-3);margin-top:3px}
  .stagenav{display:flex;gap:var(--sp-6);margin-top:10px}
  .stagenav span{flex:1;font-family:var(--data);font-size:.62rem;letter-spacing:.05em;
    text-transform:uppercase;color:var(--ink-3);padding-top:var(--sp-6);border-top:3px solid var(--surface-2)}
  .stagenav span.on{color:var(--color-accent);border-top-color:var(--color-accent)}
  
  .stagenav span.past{color:var(--ink);border-top-color:var(--ink-3)}
  .stagebox{border:0;border-top:1px solid var(--rule);padding-top:var(--sp-8);margin-top:8px}
  .stagebox summary{text-transform:none;letter-spacing:0;font-family:var(--body);
    font-size:.9rem;color:var(--ink);display:flex;gap:var(--sp-9);align-items:baseline;flex-wrap:wrap}
  .advcount{font-family:var(--data);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;
    color:var(--color-accent);border:1px solid var(--color-accent);border-radius:99px;
    padding:var(--sp-1) var(--sp-7);margin:0 6px}
  #adv summary{margin-bottom:4px;flex-wrap:wrap;row-gap:2px}
  
  #adv-sum .sub{flex:0 0 100%;font-family:var(--body);text-transform:none;letter-spacing:0;
    font-size:.8rem;color:var(--ink-2);padding-left:1.05em}
  
  .legwrap{margin-top:var(--sp-10);container-type:inline-size}
  
  .daybox{border-bottom:1px solid var(--rule)}
  .daybox summary.chead{padding:var(--sp-7) 0 0}
  .daybox .crow{padding:0 0 var(--sp-7);border-bottom:0}
  .crow{padding:var(--sp-7) 0;border-bottom:1px solid var(--rule)}
  .chead{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-10);
    font-family:var(--data);font-size:.74rem;margin-bottom:3px}
  .cdate{font-weight:600;color:var(--ink)}
  .crem{color:var(--ink-3);font-size:.68rem}
  .cbar{position:relative;height:26px;border-radius:5px;background:var(--surface-2);
    border:1px solid var(--rule);overflow:hidden}
  .cbar i{position:absolute;top:0;height:100%;display:block}
  .cbar i.l{background:var(--light-bg);box-shadow:inset 0 0 0 1px var(--light)}
  .cbar i.d{background:var(--dark-bg);box-shadow:inset 0 0 0 1px var(--dark)}
  
  .cbar i.f{background:repeating-linear-gradient(135deg, var(--ink-3) 0 3px, transparent 3px 7px);
    opacity:.35}
  
  .cbar span.fico{position:absolute;top:50%;transform:translate(-50%,-50%);
    color:var(--ink);opacity:.8;padding:0;line-height:0}
  .cbar span{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--data);
    font-size:.62rem;white-space:nowrap;padding:0 var(--sp-3);font-variant-numeric:tabular-nums}
  .cbar .tl{color:var(--light)} .cbar .td{color:var(--dark)}
  .cfoot{display:flex;gap:var(--sp-12);font-family:var(--data);font-size:.68rem;margin-top:var(--sp-3);
    font-variant-numeric:tabular-nums;flex-wrap:wrap}
  .cfoot .lit{color:var(--light)} .cfoot .drk{color:var(--dark)}
  
  .cfoot .exr{color:var(--ink-2)}
  
  .crow.done .chead{opacity:.6}
  .caxis{display:flex;justify-content:space-between;font-family:var(--data);
    font-size:.6rem;color:var(--ink-3);margin-top:2px}
  
  
  @container (max-width: 380px){
    .cbar span{display:none}
  }
  .key{display:flex;align-items:center;gap:var(--sp-7);flex-wrap:wrap;margin-top:var(--sp-8);
    font-size:.74rem;color:var(--ink-2)}
  .key .k{width:14px;height:10px;border-radius:3px;display:inline-block}
  .key .k.lit{background:var(--light-bg);box-shadow:inset 0 0 0 1px var(--light)}
  .key .k.drk{background:var(--dark-bg);box-shadow:inset 0 0 0 1px var(--dark)}
  
  .trips{display:flex;flex-direction:column;border:1px solid var(--rule);
    border-radius:var(--radius-md,8px);overflow:hidden}
  .trip{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-10);
    padding:var(--sp-12) var(--sp-14);border-bottom:1px solid var(--rule);font-size:.85rem;min-width:0}
  .trip:last-child{border-bottom:0}
  .trip b{font-weight:500}
  
  .result-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .result-head h2{margin:0}
  .trip.editing{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}
  .trip.editing .open{color:var(--color-accent);border-color:var(--color-accent)}
  
  .trip > div:first-child{min-width:0;overflow-wrap:anywhere}
  
  .foot{font-family:var(--data);font-size:.66rem;color:var(--ink-3);text-align:center;
    margin-top:auto}
  
  .foot .env-dot{display:inline-block;width:7px;height:7px;border-radius:50%;
    margin-right:var(--sp-5);vertical-align:middle}
  .foot[data-env="staging"] .env-dot{background:#c9a227}
  .foot[data-env="prod"] .env-dot{background:#3f9463}

  
  
  .demand{margin-bottom:var(--sp-10);padding-bottom:var(--sp-10);
    border-bottom:1px solid var(--rule)}
  .demand-head{font-family:var(--data);font-size:1rem;color:var(--ink);margin:var(--sp-5) 0}
  .demand-rows{display:flex;flex-direction:column;gap:var(--sp-5);margin-top:var(--sp-7)}
  .demand-row{display:flex;align-items:baseline;gap:var(--sp-7);font-size:.85rem}
  .demand-rank{font-family:var(--data);font-size:.7rem;color:var(--ink-3);
    min-width:1.1em;text-align:right}
  .demand-name{color:var(--ink);flex:0 0 auto}
  .demand-worth{color:var(--ink-2);font-size:.8rem}
  .demand-lighter,.demand-note{margin-top:var(--sp-8);font-size:.82rem;color:var(--ink-2);
    line-height:1.45}
  .demand-lighter b{color:var(--ink)}

  .recent-changes{font-family:var(--data);font-size:.66rem;color:var(--ink-3);
    text-align:center;margin-top:var(--sp-6)}
  .recent-changes summary{cursor:pointer;color:var(--ink-2)}
  .recent-changes ul{list-style:none;margin:var(--sp-6) 0 0;padding:0;text-align:left;
    max-width:420px;margin-left:auto;margin-right:auto}
  .recent-changes li{padding:var(--sp-5) 0;border-top:1px solid var(--rule)}
  .recent-changes li:first-child{border-top:none}
  .recent-changes .rc-date{color:var(--ink-3);margin-right:var(--sp-6)}

  
  
  .dboard{display:flex;flex-direction:column;border:1px solid var(--rule);
    border-radius:var(--radius-md,8px);overflow:hidden}
  .dboard-row{display:grid;grid-template-columns:3.6em 1fr auto;gap:var(--sp-12);align-items:center;
    padding:11px var(--sp-14);position:relative;font-size:.84rem;border-top:1px solid var(--rule)}
  
  .dboard-row::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;
    background:var(--color-bg);opacity:.5;pointer-events:none}
  .dboard-time{font-family:var(--data);font-variant-numeric:tabular-nums;
    color:var(--ink-2)}
  .dboard-window{display:flex;align-items:center;gap:var(--sp-8);color:var(--ink)}
  .dboard-window svg{flex:none;color:var(--ink-3)}
  .dboard-status{font-family:var(--data);font-size:.66rem;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-3);text-align:right}
  .dboard-row.status-boarding .dboard-status{color:var(--color-accent)}
  .dboard-row.status-boarding .dboard-window,
  .dboard-row.status-boarding .dboard-window svg{color:var(--color-accent)}
  
  .dboard-lg .dboard-row{font-size:1rem;padding:14px}
  .dboard-lg .dboard-time{font-size:1.05rem;color:var(--ink)}
  .dboard-lg .dboard-status{font-size:.72rem}
  .dboard-lg .dboard-window svg{width:17px;height:17px}
  
  :root[data-route="home"]        [data-view]:not([data-view~="home"]),
  :root[data-route="timing"]      [data-view]:not([data-view~="timing"]),
  :root[data-route="settings"]    [data-view]:not([data-view~="settings"]),
  :root[data-route="new-trip"]    [data-view]:not([data-view~="new-trip"]),
  :root[data-route="about"]       [data-view]:not([data-view~="about"]),
  :root[data-route="privacy"]     [data-view]:not([data-view~="privacy"]),
  :root[data-route="setup"]       [data-view]:not([data-view~="setup"]),
  :root[data-route="tips"]        [data-view]:not([data-view~="tips"]),
  :root[data-route="body-clock"]  [data-view]:not([data-view~="body-clock"]),
  :root[data-route="account-view"] [data-view]:not([data-view~="account-view"]),
  :root[data-route="notifications"] [data-view]:not([data-view~="notifications"]),
  :root[data-route="trips"]       [data-view]:not([data-view~="trips"]){display:none !important}

  
  body.admin-only #profile,
  body.admin-only #push,
  body.admin-only #capability-switches,
  body.admin-only #travel,
  body.admin-only #today-melatonin,
  body.admin-only #onboard{display:none !important}

  
  body.admin-only .nav-item[data-goto="home"],
  body.admin-only .nav-item[data-goto="timing"]{display:none !important}

  
  body.oura-disabled #ring,
  body.oura-disabled #trust-panel,
  body.oura-disabled #cmp{display:none !important}
  
  body.oura-disabled #nights-logged-tile{display:none !important}

  
  
  .view-back{display:none;align-items:center;gap:var(--sp-7);background:transparent;border:0;
    align-self:flex-start;min-height:44px;padding:var(--sp-6) var(--sp-10) var(--sp-6) 0;
    color:var(--color-accent);font-family:var(--body);font-size:13px;cursor:pointer}
  :root[data-route="new-trip"] .view-back,
  :root[data-route="about"] .view-back,
  :root[data-route="privacy"] .view-back,
  :root[data-route="setup"] .view-back,
  :root[data-route="body-clock"] .view-back,
  :root[data-route="account-view"] .view-back,
  :root[data-route="notifications"] .view-back,
  :root[data-route="trips"] .view-back{display:inline-flex}

  

  
  
  
  
  .topbar{display:flex;align-items:center;gap:11.2px;
    padding-top:var(--wrap-top,0px);padding-bottom:var(--sp-14);
    border-bottom:1px solid var(--rule);
    position:sticky;top:0;z-index:40;background:var(--color-bg);
    
    transform:translateZ(0)}
  .nav-brand{display:flex;align-items:center;gap:var(--sp-9);font-size:22.5px;font-weight:700;flex:none}
  
  .wordmark{font-family:var(--font-wordmark);font-weight:600;font-size:19px;
    letter-spacing:0.14em;text-transform:uppercase}
  .topbar-status{margin-left:auto;display:flex;align-items:center;gap:var(--sp-8);flex:none}
  .nav#nav-desktop{background:transparent;border:0;padding:0;margin:0;gap:11.2px}
  #nav-desktop .nav-item{display:inline-flex;align-items:center;text-decoration:none;
    background:transparent;border:0;color:var(--ink);font-family:var(--body);
    font-weight:400;font-size:14px;padding:0;cursor:pointer}
  #nav-desktop .nav-item svg{display:none}
  #nav-desktop .nav-item:hover{color:var(--color-accent)}
  #nav-desktop .nav-item[aria-current="page"]{color:var(--color-accent)}

  
  .navbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;
    background:var(--surface);border-top:1px solid var(--rule);
    padding:10px 6px calc(14px + env(safe-area-inset-bottom,0px))}
  
  .navbar .nav-item{flex:1;display:flex;flex-direction:column;align-items:center;text-decoration:none;
    gap:var(--sp-4);background:transparent;border:0;color:var(--ink-3);
    font-family:var(--body);font-weight:400;letter-spacing:.02em;
    font-size:10px;padding:0 var(--sp-2);border-radius:var(--radius-md,8px);cursor:pointer}
  .navbar .nav-item[aria-current="page"]{color:var(--color-accent)}
  
  .navbar .nav-item{position:relative}
  .navbar .nav-item::after{content:'';position:absolute;left:0;right:0;top:-4px;bottom:-4px}
  
  
  
  @media (max-width:899px){ .wrap{min-height:100dvh;
    padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
    #main{flex:1;display:flex;flex-direction:column} }
  
  
  .dboard-head{display:grid;grid-template-columns:3.6em 1fr auto;gap:var(--sp-12);
    padding:var(--sp-8) var(--sp-14);font-family:var(--body);font-size:10px;letter-spacing:.14em;
    text-transform:uppercase;color:color-mix(in srgb,var(--ink) 55%,transparent);
    background:var(--surface-2)}
  .dboard-head span:last-child{text-align:right}
  .dboard-row.status-boarding{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}
  
  .dboard-status.pill{display:inline-block;justify-self:end;background:var(--color-accent-800);
    color:var(--color-accent-100);border-radius:6px;padding:var(--sp-2) var(--sp-7);
    font-size:9.5px;text-transform:uppercase;letter-spacing:.06em}

  
  #now[data-state="none"]{background:transparent;box-shadow:none;padding:0;
    display:flex;flex-direction:column;justify-content:center}
  
  @media (max-width:899px){ #now[data-state="none"]{min-height:calc(100dvh - 152px)}
    
    #onboard:not([hidden]) ~ #now[data-state="none"]{min-height:0} }
  
  .ghost-preview{opacity:.3;pointer-events:none}

  
  .hcard-head{display:flex;justify-content:space-between;align-items:baseline;
    font-family:var(--data);font-size:.62rem;letter-spacing:.08em;color:var(--ink-3)}
  .hcard-title{font-size:.95rem;font-weight:500;margin-top:3px}
  .hcard-note{font-family:var(--data);font-size:.72rem;color:var(--ink-2);margin-top:6px}
  
  .nwd{display:grid;grid-template-columns:4.2em 1fr;gap:var(--sp-9) var(--sp-13-5);margin:0;
    font-size:1rem}
  .nwd dt{padding-top:2px}
  .nwd dd{margin:0;color:var(--ink-2)}
  
  #now .time.compact{gap:var(--sp-3);margin-top:0;flex:none}
  #now .time.big .flap{width:34px;height:46px;font-size:28px}
  #now .time.big .colon{height:46px;font-size:28px}

  
  .stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  @media (min-width:700px){ .stats-row{grid-template-columns:repeat(4,1fr)} }
  
  .split{flex:1;background:var(--surface-2);border:1px solid var(--rule);
    border-radius:6px;padding:var(--sp-8) var(--sp-10);text-align:center}
  
  .split .v{font-family:var(--data);font-size:26px;font-weight:600;
    letter-spacing:-.01em;line-height:1;color:var(--color-neutral-100)}
  
  .split .v.hrs{font-size:18px;line-height:26px;white-space:nowrap}
  .split .v:empty::before{content:"\00a0"}   
  .split .k{font-size:9px;letter-spacing:.1em;text-transform:uppercase;
    color:var(--color-neutral-400);margin-top:4px}

  
  .tag-daynight{font-family:var(--data);font-size:.6rem;letter-spacing:.1em;
    text-transform:uppercase;border:1px solid currentColor;border-radius:99px;
    padding:var(--sp-2) var(--sp-8);flex:none}
  .tag-daynight.dark{color:var(--dark)} .tag-daynight.light{color:var(--light)}
  
  .tag-daynight-tappable{cursor:pointer}

  
  .tboard{display:flex;flex-direction:column;border:1px solid var(--rule);
    border-radius:8px;overflow:hidden}
  .tboard-head{display:grid;grid-template-columns:52px 1fr 60px;gap:var(--sp-10);
    padding:var(--sp-8) var(--sp-14);background:var(--surface-2);font-family:var(--data);
    font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
  .tboard-head span:last-child{text-align:right}
  .tboard-row{display:grid;grid-template-columns:52px 1fr 60px;gap:var(--sp-10);
    align-items:center;padding:var(--sp-9) var(--sp-14);border-top:1px solid var(--rule)}
  .tboard-row.done{opacity:.5}
  .tboard-row.today{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}
  .tboard-date{font-family:var(--data);font-size:.75rem}
  .tboard-row.today .tboard-date{color:var(--color-accent);font-weight:600}
  .tboard-status{font-family:var(--data);font-size:.6rem;letter-spacing:.06em;
    text-transform:uppercase;text-align:right;color:var(--ink-3)}
  .tboard-status.today{color:var(--color-accent-100);background:var(--color-accent-800);
    border-radius:99px;padding:var(--sp-2) var(--sp-7);display:inline-block}

  
  .tb-ticks{font-style:normal;opacity:.55;letter-spacing:.06em;display:none}
  @media (min-width:900px){ .tb-ticks{display:inline} }
  .plan-actions{display:flex;flex-direction:column;gap:var(--sp-9);margin-top:6px}
  .plan-actions .go,.plan-actions .ghost{width:100%;justify-content:center}
  .days-meta{font-family:var(--data);font-size:10px;letter-spacing:.06em;
    text-transform:uppercase;color:color-mix(in srgb,var(--ink) 48%,transparent)}

  
  #today-melatonin{display:flex;flex-direction:column;gap:14px;margin-top:14px}
  
  body.no-melatonin .mel-only{display:none !important}
  
  
  .rem-card{padding:var(--sp-14) 16px;font-size:12.5px;border:1px solid var(--rule);
    border-radius:var(--radius-md,8px);display:flex;flex-direction:column}
  .rem-card .hcard-note{font-family:var(--body);font-size:11.5px;line-height:1.5}
  .rem-dose{font-size:19px;font-weight:500;margin-top:3px}
  

  
  .cmp-board{display:flex;flex-direction:column;border:1px solid var(--rule);
    border-radius:var(--radius-md,8px);overflow:hidden;margin-bottom:10px}
  .cmp-head{display:grid;grid-template-columns:1fr 70px 70px;padding:var(--sp-8) var(--sp-14);
    background:var(--surface-2);font-family:var(--body);font-size:10px;letter-spacing:.1em;
    text-transform:uppercase;color:color-mix(in srgb,var(--ink) 55%,transparent)}
  .cmp-head span:not(:first-child),.cmp-row span:not(:first-child){text-align:right}
  .cmp-row{display:grid;grid-template-columns:1fr 70px 70px;align-items:center;
    padding:var(--sp-10) var(--sp-14);border-top:1px solid var(--rule);font-size:12.5px}
  .cmp-m{font-family:var(--data);font-variant-numeric:tabular-nums}
  .cmp-m.accent{color:var(--color-accent);font-weight:600}
  
  .cmp-x{font-family:var(--data);font-variant-numeric:tabular-nums;opacity:.6}

  
  .segs-head{text-transform:uppercase}
  .segs-title{font-size:1.15rem;font-weight:700;line-height:1.2;margin-top:6px}
  .segs,.segdates{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5px}
  .segs{margin-top:10px}
  .segs i{height:10px;border-radius:5px;background:var(--dark-bg)}
  
  .segs i.done{background:var(--light-bg);opacity:.4}
  .segs i.today{background:var(--light-bg)}
  .segdates{margin-top:4px;font-family:var(--data);font-size:.62rem;color:var(--ink-3);
    text-align:center;font-variant-numeric:tabular-nums}
  .segdates .t{color:var(--ink);font-weight:700}
  
  .segs.many{gap:2px}
  .segs.many i{border-radius:2px}
  .segs.many + .segdates{display:none}
  
  .segs.dense{gap:0}
  .segs.dense i{border-radius:0}
  .segs-note{font-family:var(--body);font-size:.85rem;line-height:1.4;margin-top:10px}
  .segs-note b{color:var(--ink)}

  
  .cols{display:grid;gap:22px}
  
  .cols > *{min-width:0}
  
  @media (min-width:900px){
    .wrap{max-width:900px;gap:18px;
          --wrap-top:calc(24px + env(safe-area-inset-top,0px));
          padding:0
                  calc(22px + env(safe-area-inset-right,0px))
                  calc(64px + env(safe-area-inset-bottom,0px))
                  calc(22px + env(safe-area-inset-left,0px))}
    .cols{grid-template-columns:1fr;gap:var(--sp-18);align-items:start}
    
    .view-back{display:none !important}
    
    #nt2-nav:has(> #nt2-fresh[hidden]){display:none}
    
    .cols > .stack{display:grid;grid-template-columns:1fr;gap:var(--sp-18);align-items:start}
    body.has-schedule .cols > .stack{grid-template-columns:1.4fr 1fr}
    .cols > .stack > *{grid-column:1 / -1;order:6}
    #alerts{order:0}
    #stats-row{order:1}
    #now{order:2}
    
    #schedule{order:4}
    
    #planner-col{order:7}
    body:not(.has-schedule) #planner-col{order:4}
    body.has-schedule #schedule{grid-column:1}
    body.has-schedule #tonight:not([hidden]){order:5;grid-column:2;align-self:start}
    
    body.has-schedule #progress-panel{order:6;grid-column:1 / -1}
    
    #home-footer-actions{order:9}
  }
  @media (max-width:899px){
    .desktop-only{display:none}
    
    #planner-col > .card{background:transparent;box-shadow:none;padding:0}
  }
  @media (min-width:900px){
    .phone-only{display:none}
    
    :root[data-route="home"] body.has-schedule #progress-panel{display:flex !important}
    
    :root[data-route="home"] body:not(.has-schedule) #planner-col,
    :root[data-route="home"] body:not(.has-schedule) #new-trip-form{display:flex !important}
  }

  
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-var(--sp-1);overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0}
  
  .view-heading-host{display:contents}
  .skip-link{position:absolute;left:-999px;top:0;z-index:1000;background:var(--surface);
    color:var(--color-accent);padding:.6rem 1rem;border-radius:var(--radius-md,8px);
    box-shadow:var(--shadow-md)}
  .skip-link:focus{left:.5rem;top:.5rem}
