  :root{
    --ground:#0E1820;
    --surface:#16242E;
    --surface-hi:#1C2F3B;
    --hair:#273B47;
    --ink:#E8EEF1;
    --muted:#8DA3AD;
    --signal:#F2A33C;
    --pass:#4BD080;
    --fail:#F06A5B;
    --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html,body{margin:0;height:100%;}
  body{
    background:var(--ground);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.4;
    overscroll-behavior:none;
  }
  /* ---- legend / labels ---- */
  .legend{
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    font-weight:600;
  }

  /* ---- top bar ---- */
  header{
    position:sticky;top:0;z-index:5;
    background:linear-gradient(180deg,var(--ground),rgba(14,24,32,.86));
    backdrop-filter:blur(8px);
    padding:calc(env(safe-area-inset-top) + 14px) 20px 12px;
    border-bottom:1px solid var(--hair);
    display:flex;align-items:baseline;gap:10px;
  }
  header .mark{
    font-family:var(--mono);font-weight:700;font-size:18px;letter-spacing:.02em;
  }
  header .mark b{color:var(--signal);}
  header .mark-img{width:24px;height:24px;align-self:center;}
  header .ttl{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}

  main{padding:16px 16px calc(40px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto;}
  .tab-page{display:none;animation:fade .18s ease;}
  .tab-page.active{display:block;}
  @keyframes fade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion:reduce){.tab-page{animation:none;}}

  /* ---- cards ---- */
  .card{
    background:var(--surface);
    border:1px solid var(--hair);
    border-radius:14px;
    padding:14px 16px;
    margin-bottom:14px;
  }
  .card > .legend{display:block;margin-bottom:10px;}

  /* ---- input rows ---- */
  .row{
    display:flex;align-items:center;justify-content:space-between;
    padding:9px 0;border-bottom:1px solid var(--hair);
  }
  .row:last-child{border-bottom:none;}
  .row label{font-size:15px;flex:1 1 0;min-width:4.5em;}
  .row{flex-wrap:wrap;gap:6px 10px;}
  .row .field{margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}
  .row .field{display:flex;align-items:center;gap:6px;}
  input[type=number]{
    width:84px;background:var(--surface-hi);border:1px solid var(--hair);
    color:var(--ink);font-family:var(--mono);font-size:16px;text-align:right;
    padding:8px 10px;border-radius:9px;
  }
  input[type=number]:focus{outline:none;border-color:var(--signal);}
  .unit{color:var(--muted);font-size:13px;width:24px;}
  select{
    background:var(--surface-hi);border:1px solid var(--hair);color:var(--ink);
    font-family:var(--mono);font-size:15px;padding:8px 10px;border-radius:9px;
    min-width:120px;
  }

  /* ---- segmented control ---- */
  .seg{display:flex;background:var(--surface-hi);border:1px solid var(--hair);
    border-radius:10px;overflow:hidden;}
  .seg button{
    flex:1;background:transparent;border:none;color:var(--muted);
    font-family:var(--sans);font-size:14px;font-weight:600;padding:9px 6px;cursor:pointer;
    border-right:1px solid var(--hair);
  }
  .seg button:last-child{border-right:none;}
  .seg button.on{background:var(--signal);color:#1a1206;}
  .seg button{min-width:0;}
  @media (max-width:360px){
    .seg button{font-size:13px;padding:9px 3px;}
    select{min-width:0;max-width:100%;}
  }

  .seg-row{display:flex;flex-direction:column;gap:7px;padding:9px 0;border-bottom:1px solid var(--hair);}
  .seg-row:last-child{border-bottom:none;}

  /* ---- annunciator readout (signature) ---- */
  .annun{
    background:radial-gradient(120% 140% at 50% 0%,var(--surface-hi),var(--surface));
    border:1px solid var(--hair);border-radius:14px;padding:16px;margin-bottom:14px;
    position:relative;
  }
  .annun .lamp{
    position:absolute;top:14px;right:16px;width:13px;height:13px;border-radius:50%;
    background:#33454f;transition:background .2s,box-shadow .2s;
  }
  .annun.ok .lamp{background:var(--pass);box-shadow:0 0 12px var(--pass);}
  .annun.bad .lamp{background:var(--fail);box-shadow:0 0 12px var(--fail);}
  .big{font-family:var(--mono);font-size:40px;font-weight:700;line-height:1;margin:6px 0 2px;}
  .big.ok{color:var(--pass);} .big.bad{color:var(--fail);}
  .sub{font-family:var(--mono);font-size:14px;color:var(--muted);}
  .sub.basis{color:var(--signal);font-size:13px;margin-top:3px;}

  .out{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--hair);}
  .out:last-child{border-bottom:none;}
  .out .v{font-family:var(--mono);font-weight:600;}
  .out{flex-wrap:wrap;gap:0 10px;}
  .out .v{margin-left:auto;text-align:right;white-space:nowrap;}
  .out .v.hl{color:var(--signal);}
  .note{font-size:12.5px;color:var(--muted);line-height:1.5;}
  .toggle{display:flex;align-items:center;gap:10px;}
  .sw{width:46px;height:28px;border-radius:16px;background:var(--surface-hi);
    border:1px solid var(--hair);position:relative;cursor:pointer;flex:none;}
  .sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;
    border-radius:50%;background:var(--muted);transition:.18s;}
  button.sw{padding:0;-webkit-appearance:none;appearance:none;}
  .sw.on{background:var(--signal);border-color:var(--signal);}
  .sw.on::after{left:21px;background:#1a1206;}

  /* Info page: data verification list */
  .kv .val.lvl-ok{color:var(--pass);font-family:var(--sans);font-size:13px;}
  .kv .val.lvl-no{color:var(--signal);font-family:var(--sans);font-size:13px;}
  .kv .val.lvl-na{color:var(--muted);font-family:var(--sans);font-size:13px;}
  /* unverified-data marker */
  .unv{display:inline-block;margin-left:6px;padding:1px 5px;border:1px solid var(--signal);border-radius:4px;
    color:var(--signal);font:600 9.5px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;
    vertical-align:middle;white-space:nowrap;}
  .big .unv{font-size:10px;vertical-align:8px;}
  /* keyboard focus */
  button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--signal);outline-offset:2px;}

  /* ---- guide cards ---- */
  .guide h3{font-size:15px;margin:0 0 4px;}
  .guide p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.5;}
  .guide .item{padding:11px 0;border-bottom:1px solid var(--hair);}
  .guide .item:last-child{border-bottom:none;}

  /* ---- color chips / swatches ---- */
  .chips{display:flex;flex-wrap:wrap;gap:8px;}
  .chip{display:flex;align-items:center;gap:8px;background:var(--surface-hi);
    border:1px solid var(--hair);border-radius:10px;padding:7px 11px;}
  .dot{width:18px;height:18px;border-radius:5px;border:1px solid rgba(255,255,255,.28);flex:none;}
  .chip .role{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em;}
  .chip .cname{font-size:13.5px;line-height:1.2;}
  .sw-gy{background:repeating-linear-gradient(48deg,#2FA84F 0 5px,#E8C81E 5px 10px);}

  /* ---- conductor list builder ---- */
  .addbtn{
    margin-top:10px;width:100%;background:var(--surface-hi);border:1px solid var(--hair);
    color:var(--signal);border-radius:9px;padding:9px 12px;cursor:pointer;
    font-family:var(--sans);font-size:14px;font-weight:600;
  }
  .clist-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--hair);}
  .clist-row:last-of-type{border-bottom:none;}
  .clist-row select{flex:1;min-width:0;}
  .clist-row .cn{width:64px;}
  .clist-row select.kind{flex:0 1 auto;min-width:0;max-width:42%;}
  .clist-row .rm{background:none;border:none;color:var(--fail);font-size:22px;line-height:1;cursor:pointer;padding:0 4px;flex:none;}
  .wide{width:100%;font-family:var(--mono);font-size:12.5px;background:var(--surface-hi);
    border:1px solid var(--hair);color:var(--ink);border-radius:9px;padding:10px;}
  .wide:focus{outline:none;border-color:var(--signal);}

  /* ---- back button ---- */
  .back{
    background:none;border:none;color:var(--signal);font-size:30px;line-height:1;
    cursor:pointer;padding:0 4px 0 0;margin:0;display:none;
  }
  header.in-tool .back{display:block;}
  header.in-tool .mark,header.in-tool .mark-img{display:none;}

  /* ---- home grid ---- */
  .home-intro{color:var(--muted);font-size:14px;margin:2px 2px 16px;}
  .home-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
  .tile{
    background:var(--surface);border:1px solid var(--hair);border-radius:14px;
    padding:16px 14px;cursor:pointer;text-align:left;color:var(--ink);font-family:inherit;
    display:flex;flex-direction:column;gap:8px;min-height:104px;
    transition:border-color .15s,transform .1s;
  }
  .tile:active{transform:scale(.98);}
  .tile svg{width:26px;height:26px;stroke:var(--signal);fill:none;stroke-width:1.7;}
  .tile .t-title{font-weight:700;font-size:15px;}
  .tile .t-desc{color:var(--muted);font-size:12px;line-height:1.35;}
  @media (prefers-reduced-motion:reduce){.tile{transition:none;}}

  /* ---- search + categories ---- */
  .search{
    width:100%;background:var(--surface-hi);border:1px solid var(--hair);color:var(--ink);
    font-family:var(--sans);font-size:15px;padding:12px 14px;border-radius:11px;margin:0 0 18px;
    -webkit-appearance:none;
  }
  .search::placeholder{color:var(--muted);}
  .search:focus{outline:none;border-color:var(--signal);}
  .cat-head{
    display:flex;align-items:center;gap:10px;margin:18px 2px 11px;
  }
  .cat-head:first-child{margin-top:0;}
  .cat-head .legend{flex:none;}
  .cat-head .rule{flex:1;height:1px;background:var(--hair);}
  .home-empty{color:var(--muted);font-size:14px;text-align:center;padding:30px 0;}
  /* small-readout rows for instrument-style tables */
  .kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--hair);font-size:14px;}
  .kv:last-child{border-bottom:none;}
  .kv .k{color:var(--muted);} .kv .val{font-family:var(--mono);text-align:right;}
  .warn{border-color:#5a3a1c;background:linear-gradient(180deg,#241a0e,var(--surface));}
  .warn .legend{color:var(--signal);}
  /* primary action button (disclaimer gate "I understand") */
  .gate-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
    background:var(--signal);color:#1a1206;border:none;border-radius:11px;
    padding:13px;font-family:var(--sans);font-size:15px;font-weight:700;cursor:pointer;margin-top:6px;
    transition:transform .1s;}
  .gate-btn:active{transform:scale(.98);}
  @media (prefers-reduced-motion:reduce){.gate-btn{transition:none;}}
  /* first-run disclaimer gate */
  .gate{position:fixed;inset:0;z-index:50;background:rgba(6,12,16,.93);
    -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
    display:flex;align-items:center;justify-content:center;padding:24px;}
  .gate[hidden]{display:none;}
  .gate-card{background:var(--surface);border:1px solid var(--hair);border-radius:16px;
    padding:22px 20px;max-width:430px;width:100%;}
  .gate-card .mark{font-family:var(--mono);font-weight:700;font-size:20px;}
  .gate-card .mark b{color:var(--signal);}
  .gate-h{font-size:16px;font-weight:700;margin:14px 0 8px;}
  .gate-p{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 16px;}
/*$vite$:1*/