  /* ============================================================
     DESIGN TOKENS — one set per theme. Markup & structure are
     shared across every screen; only these custom properties
     (+ scoped ornaments) change. Switch live with the top bar.
     ============================================================ */
  :root{               /* default = ALMANAC (theme B) */
    --paper:#F6F1E6; --panel:#FBF8F0; --ink:#1B1714; --soft:#6A6256; --hair:rgba(27,23,20,.22);
    --accent:#A4231E; --fast:#A4231E; --ok:#3f7a55; --hover:rgba(27,23,20,.045);
    --font-display:'Spectral',Georgia,serif; --font-body:'Spectral',Georgia,serif;
    --font-data:'IBM Plex Mono',ui-monospace,Menlo,monospace;
    --card-shadow:none; --card-border:1px; --rule-strong:2px;
    --cell-pad:7px 8px; --label-col:64px; --base:14px;
    --fast-mark:"\2629"; --fast-bg:rgba(164,35,30,.05); --brand-sub:"A Family Meal Almanac";
    --tag-border:var(--hair); --tag-fill:transparent;
    --c-bf:#2F5CFF; --c-lu:#1E8A4C; --c-di:#F54E00; --c-sn:#F4BE1B;
  }
  [data-theme="ledger"]{
    --paper:#ECEBE3; --panel:#F3F2EC; --ink:#16150F; --soft:#615F53; --hair:rgba(22,21,15,.16);
    --accent:#B23A1E; --fast:#34326B; --ok:#2E6B4A; --hover:rgba(22,21,15,.05);
    --font-display:'JetBrains Mono',ui-monospace,monospace; --font-body:'JetBrains Mono',ui-monospace,monospace;
    --font-data:'JetBrains Mono',ui-monospace,monospace;
    --card-shadow:none; --card-border:1px; --rule-strong:2px;
    --cell-pad:6px 7px; --label-col:82px; --base:13px;
    --fast-mark:"\25B2"; --fast-bg:rgba(52,50,107,.06); --brand-sub:"Kitchen Ledger";
    --grid:rgba(22,21,15,.055);
  }
  [data-theme="arcade"]{       /* theme C — monochrome LCD handheld */
    --paper:#E7E4D8; --panel:#EDEBDF; --ink:#1B2016; --soft:#535949; --hair:rgba(27,32,22,.20);
    --accent:#2F3A28; --fast:#2F3A28; --ok:#46503a; --hover:rgba(27,38,22,.07);
    --font-display:'Pixelify Sans',system-ui,sans-serif; --font-body:'Share Tech Mono',ui-monospace,monospace;
    --font-data:'Share Tech Mono',ui-monospace,monospace;
    --card-shadow:4px 4px 0 var(--ink); --card-border:3px; --rule-strong:4px;
    --cell-pad:6px 9px; --label-col:34px; --base:15px;
    --fast-mark:"\25C6"; --fast-bg:#9aa98a; --brand-sub:"Meal Quest";
    --tag-border:rgba(27,38,22,.45); --tag-fill:transparent;
    --c-bf:#454e38; --c-lu:#373f2b; --c-di:#2b3121; --c-sn:#555c47;
    --screen:#B7C1A8; --screen-line:rgba(25,35,26,.24); --screen-ink:#17211A; --screen-dim:#3D4B35;
    --hp:#2c3a23;
  }

  /* ===================== SHARED STRUCTURE ===================== */
  *{box-sizing:border-box;}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:var(--base); line-height:1.42;}
  [data-theme="ledger"] body{
    background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
    background-size:27px 27px;}
  .wrap{max-width:1240px; margin:0 auto; padding:18px 18px 56px;}
  a{color:inherit;}

  /* top command bar (persistent shell) — reads as a terminal prompt;
     future home for typed agent instructions (not wired up yet). */
  .themebar{position:sticky; top:0; z-index:9; background:var(--ink); color:var(--paper);
    display:flex; align-items:center; gap:9px; padding:7px 16px; font-family:var(--font-data); font-size:11px;}
  .themebar .tb-caret{flex:none; font-weight:700; letter-spacing:.02em; user-select:none;}
  .themebar .tb-cursor{animation:tb-blink 1.15s steps(1, end) infinite;}
  @keyframes tb-blink{50%{opacity:0;}}
  .themebar .tb-next{cursor:pointer; opacity:.68; letter-spacing:.03em; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .themebar .tb-next:hover{opacity:1;}
  .themebar .tb-next .tb-k{text-transform:uppercase; letter-spacing:.16em; font-size:10px; margin-right:7px; opacity:.7;}
  .themebar .tb-next b{font-weight:700;}

  /* theme selector (Account · Preferences) */
  .preflab{font-family:var(--font-data); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--soft); margin-bottom:7px;}
  .themepick{display:flex; gap:4px; flex-wrap:wrap;}
  .tbtn{font-family:var(--font-data); font-size:11px; text-transform:uppercase; letter-spacing:.08em;
    border:1px solid var(--ink); background:var(--panel); color:var(--ink); padding:6px 12px; cursor:pointer;}
  .tbtn:hover{background:var(--hover);}
  .tbtn.on{background:var(--ink); color:var(--paper); font-weight:700;}

  /* masthead */
  .topbar{display:flex; align-items:baseline; gap:16px; padding:16px 0 12px; border-bottom:var(--rule-strong) solid var(--ink);}
  .brandwrap{display:flex; flex-direction:column;}
  .brand{font-family:var(--font-display); font-weight:800; font-size:42px; line-height:1; letter-spacing:.01em; cursor:pointer;}
  .brand-sub{font-family:var(--font-data); font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--soft); margin-top:7px;}
  .brand-sub::after{content:var(--brand-sub);}
  .tnav{display:flex; gap:2px; flex-wrap:wrap; margin-left:14px;}
  .tnav a{font-family:var(--font-data); font-size:11px; text-transform:uppercase; letter-spacing:.1em; text-decoration:none;
    color:var(--ink); padding:6px 11px; border:1px solid transparent; cursor:pointer;}
  .tnav a:hover{border-color:var(--hair);}
  .tnav a.on{background:var(--ink); color:var(--paper);}
  .avatar{margin-left:auto; width:30px; height:30px; border:2px solid var(--ink); background:var(--c-sn); cursor:pointer;
    display:flex; align-items:center; justify-content:center; font-weight:700; font-family:var(--font-display); flex:none;}
  [data-theme="ledger"] .brand{font-size:19px; text-transform:uppercase; letter-spacing:.14em; border-left:5px solid var(--accent); padding-left:11px;}
  [data-theme="almanac"] .topbar{flex-direction:column; align-items:center; text-align:center; gap:10px;
    border-top:3px double var(--ink); border-bottom-width:1px;}
  [data-theme="almanac"] .tnav{margin-left:0; justify-content:center;}
  [data-theme="almanac"] .avatar{position:absolute; right:18px; top:60px;}

  /* screens / routing */
  .screen{display:none;}
  .screen.on{display:block;}

  /* generic section header */
  .shead{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding:16px 0 10px; border-bottom:1px solid var(--hair); margin-bottom:16px;}
  .shead h2{font-family:var(--font-display); font-weight:800; font-size:26px; margin:0; line-height:1;}
  [data-theme="ledger"] .shead h2{font-size:18px; text-transform:uppercase; letter-spacing:.08em;}
  .shead .req{font-family:var(--font-data); font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--soft);}
  .shead .sp{margin-left:auto;}
  .sub{color:var(--soft); font-size:calc(var(--base) - 1px); max-width:820px; line-height:1.5; margin:-4px 0 18px;}
  .sub b{color:var(--ink);}

  /* week strip (plan) */
  .week{display:flex; align-items:center; gap:12px; padding:4px 0 12px; border-bottom:1px solid var(--hair); flex-wrap:wrap;}
  .wk{font-family:var(--font-display); font-weight:600; font-size:19px;}
  [data-theme="ledger"] .wk{font-size:14px; font-weight:700; letter-spacing:.03em;}
  .nav-btn{font-family:var(--font-data); border:1px solid var(--ink); background:var(--panel); width:28px; height:26px; cursor:pointer;}
  .pill{font-family:var(--font-data); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em;
    color:#fff; background:var(--fast); border:1px solid var(--ink); padding:4px 9px;}
  [data-theme="almanac"] .pill{background:transparent; color:var(--fast); border-color:var(--fast);}
  .grow{margin-left:auto;}
  .btn{font-family:var(--font-data); font-size:11px; text-transform:uppercase; letter-spacing:.07em; cursor:pointer;
    border:1px solid var(--ink); background:var(--panel); padding:6px 13px; color:var(--ink); text-decoration:none; display:inline-block;}
  .btn.pri{background:var(--accent); border-color:var(--accent); color:#fff;}
  .btn.sm{padding:4px 9px; font-size:10px;}

  /* layout (plan) */
  .layout{display:grid; grid-template-columns:1fr 262px; gap:20px; margin-top:18px;}
  @media(max-width:920px){.layout{grid-template-columns:1fr;}}

  /* planner grid */
  .board{border:var(--card-border) solid var(--ink); background:var(--panel); box-shadow:var(--card-shadow); position:relative;}
  [data-theme="almanac"] .board{border-color:var(--hair); border-top-color:var(--ink);}
  .scroller{overflow-x:auto;}
  .grid{display:grid; grid-template-columns:var(--label-col) repeat(7,minmax(118px,1fr)); min-width:790px;}
  .gh{padding:7px 8px; border-right:1px solid var(--hair); border-bottom:var(--rule-strong) solid var(--ink);}
  .gh .dy{font-family:var(--font-data); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--soft);}
  .gh .nu{font-family:var(--font-display); font-size:21px; font-weight:700; line-height:1.05;}
  .gh.fast{background:var(--fast-bg); border-bottom-color:var(--fast);}
  .gh.fast .dy{color:var(--fast);}
  [data-theme="almanac"] .gh.fast .nu{color:var(--fast);}
  .fl{display:block; font-family:var(--font-data); font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--fast); margin-top:2px;}
  .fl::before{content:var(--fast-mark) "\00a0";}
  .rl{border-right:var(--rule-strong) solid var(--ink); border-bottom:1px solid var(--hair); padding:7px 6px;
    font-family:var(--font-data); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft); font-weight:600;}
  .c{border-right:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:var(--cell-pad); min-height:60px;}
  .c.fast{background:var(--fast-bg);}
  .nm{font-family:var(--font-body); font-weight:500; font-size:calc(var(--base) + .5px); line-height:1.22;}
  .kc{font-family:var(--font-data); font-size:10px; color:var(--soft); margin-top:3px;}
  .kc b{color:var(--ink);}
  .lo{color:var(--ok); font-weight:600;}
  [data-theme="almanac"] .lo{font-style:italic;}
  .tg{margin-top:4px; display:flex; gap:3px; flex-wrap:wrap;}
  .tg span{font-family:var(--font-data); font-size:9px; letter-spacing:.03em; text-transform:uppercase; color:var(--soft);
    border:1px solid var(--tag-border); background:var(--tag-fill); padding:0 4px;}
  .fishok{font-family:var(--font-data); font-size:9px; font-weight:700; text-transform:uppercase; color:var(--ok);}
  .flag{display:inline-block; margin-top:4px; font-family:var(--font-data); font-size:9px; font-weight:700; letter-spacing:.02em;
    text-transform:uppercase; color:var(--accent); border-left:2px solid var(--accent); padding-left:5px;}
  .flag::before{content:"\26A0\00a0";}
  .add{color:var(--hair); font-weight:600;}
  [data-theme="almanac"] .add{font-style:italic;}

  /* rail */
  .rail{display:flex; flex-direction:column; gap:16px;}
  .card{border:var(--card-border) solid var(--ink); background:var(--panel); box-shadow:var(--card-shadow);}
  [data-theme="almanac"] .card{border-width:1px;}
  .ch{font-family:var(--font-data); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
    padding:7px 11px; border-bottom:2px solid var(--ink); display:flex; justify-content:space-between; align-items:center; gap:8px;}
  .ch a{font-size:9px; color:var(--soft); text-decoration:none;}
  .cb{padding:11px;}
  .mem{margin-bottom:10px;} .mem:last-child{margin-bottom:0;}
  .mem .t{display:flex; justify-content:space-between; align-items:baseline;}
  .mem .t b{font-family:var(--font-body); font-weight:700; font-size:calc(var(--base) + 1px);}
  .mem .t .v{font-family:var(--font-data); font-size:11px; color:var(--soft);}
  .meter{height:8px; border:1px solid var(--ink); margin-top:4px; background:var(--paper);}
  .meter i{display:block; height:100%; background:var(--ink);}
  .meter.over i{background:var(--accent);}
  .srow{display:flex; justify-content:space-between; padding:5px 0; border-bottom:1px dotted var(--hair); font-size:calc(var(--base) - .5px);}
  .srow:last-child{border-bottom:0;} .srow .v{font-family:var(--font-data); font-weight:700;}
  .srow a{text-decoration:none;}
  .ck{display:flex; gap:8px; align-items:baseline; padding:6px 0; border-bottom:1px dotted var(--hair); font-size:calc(var(--base) - 1px);}
  .ck:last-child{border-bottom:0;}
  .ck .d{font-family:var(--font-data); font-size:9.5px; font-weight:700; text-transform:uppercase; color:var(--fast); letter-spacing:.05em;}

  /* ===== generic content primitives (token-driven, used by every screen) ===== */
  .search{font-family:var(--font-data); font-size:12px; border:1px solid var(--ink); background:var(--panel); color:var(--ink); padding:6px 10px; min-width:210px;}
  .search::placeholder{color:var(--soft);}
  .chips{display:flex; gap:6px; flex-wrap:wrap;}
  .chip{font-family:var(--font-data); font-size:10px; letter-spacing:.04em; text-transform:uppercase; border:1px solid var(--hair);
    padding:3px 8px; color:var(--ink); background:var(--panel); cursor:pointer;}
  .chip.on{background:var(--ink); color:var(--paper); border-color:var(--ink);}

  .tbl-wrap{border:var(--card-border) solid var(--ink); background:var(--panel); box-shadow:var(--card-shadow); overflow-x:auto;}
  [data-theme="almanac"] .tbl-wrap{border-color:var(--hair); border-top:2px solid var(--ink);}
  .tbl{width:100%; border-collapse:collapse; font-size:calc(var(--base) - .5px); min-width:560px;}
  .tbl th{font-family:var(--font-data); font-size:9px; letter-spacing:.09em; text-transform:uppercase; color:var(--soft);
    text-align:left; font-weight:600; padding:8px 9px; border-bottom:var(--rule-strong) solid var(--ink); white-space:nowrap;}
  .tbl td{padding:7px 9px; border-bottom:1px solid var(--hair); vertical-align:top;}
  .tbl tbody tr:hover td{background:var(--hover);}
  .tbl tr:last-child td{border-bottom:0;}
  .tbl .num{font-family:var(--font-data); text-align:right; white-space:nowrap;}
  .tbl .nmc{font-weight:600;} .tbl .nmc.lk{cursor:pointer;}
  .tbl .mut{color:var(--soft);}

  .badge{font-family:var(--font-data); font-size:9px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    padding:1px 6px; border:1px solid var(--ink); display:inline-block; white-space:nowrap;}
  .badge.dish{background:var(--ink); color:var(--paper);}
  .badge.comp{background:transparent; color:var(--ink);}
  .badge.src{background:transparent; color:var(--soft); border-color:var(--hair);}
  .badge.src.allergy,.badge.src.medical{color:var(--accent); border-color:var(--accent);}
  .badge.ok{color:var(--ok); border-color:var(--ok);}
  .badge.staple{color:var(--ok); border-color:var(--ok); background:transparent;}
  .badge.warn{color:var(--accent); border-color:var(--accent);}

  .cardgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:16px;}
  .detail{display:grid; grid-template-columns:1fr 300px; gap:20px;}
  @media(max-width:880px){.detail{grid-template-columns:1fr;}}

  .kv{display:grid; grid-template-columns:max-content 1fr; gap:0 16px; font-size:calc(var(--base) - .5px); margin:0;}
  .kv dt{font-family:var(--font-data); font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--soft); padding:4px 0; border-bottom:1px dotted var(--hair);}
  .kv dd{margin:0; padding:4px 0; border-bottom:1px dotted var(--hair);}
  .kv dt:last-of-type,.kv dd:last-of-type{border-bottom:0;}

  /* recipe tree */
  .tree{font-size:calc(var(--base) - .5px); line-height:1.5;}
  .tree ul{list-style:none; margin:0; padding-left:16px; border-left:1px solid var(--hair);}
  .tree>ul{padding-left:0; border-left:0;}
  .tree li{position:relative; padding:3px 0 3px 13px;}
  .tree li::before{content:""; position:absolute; left:0; top:13px; width:9px; height:1px; background:var(--hair);}
  .tree>ul>li{padding-left:0;} .tree>ul>li::before{display:none;}
  .tree .rn{font-weight:600;}
  .tree li.leaf .rn{font-weight:400;}
  .tree .qty{font-family:var(--font-data); font-size:10px; color:var(--soft); margin-left:6px;}

  /* checkable list (shopping) */
  .cr{display:flex; align-items:baseline; gap:9px; padding:7px 0; border-bottom:1px dotted var(--hair); font-size:calc(var(--base) - .5px);}
  .cr:last-child{border-bottom:0;}
  .cr .box{width:14px; height:14px; border:1.5px solid var(--ink); flex:none; position:relative; top:2px; cursor:pointer;}
  .cr .box.x{background:var(--ink);}
  .cr .box.x::after{content:"\2713"; color:var(--paper); font-size:10px; line-height:1; position:absolute; left:1px; top:0; font-family:var(--font-data);}
  .cr .why{font-family:var(--font-data); font-size:10px; color:var(--soft);}
  .cr .q{margin-left:auto; font-family:var(--font-data); color:var(--soft); white-space:nowrap;}
  .cr.dim{opacity:.55;} .cr.dim .nmc{text-decoration:line-through;}

  /* mini month calendar (diet) */
  .cal{display:grid; grid-template-columns:repeat(7,1fr); border:var(--card-border) solid var(--ink); background:var(--panel); box-shadow:var(--card-shadow);}
  [data-theme="almanac"] .cal{border-color:var(--hair); border-top:2px solid var(--ink);}
  .cal .cdh{font-family:var(--font-data); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft);
    padding:6px 7px; border-bottom:var(--rule-strong) solid var(--ink); border-right:1px solid var(--hair);}
  .cal .cd{min-height:56px; border-right:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:4px 6px;}
  .cal .cd .dn{font-family:var(--font-display); font-size:15px; font-weight:700; line-height:1;}
  .cal .cd .lv{display:block; font-family:var(--font-data); font-size:8.5px; letter-spacing:.03em; text-transform:uppercase; color:var(--fast); margin-top:4px;}
  .cal .cd.fast{background:var(--fast-bg);}
  .cal .cd.fast .dn{color:var(--fast);}
  [data-theme="ledger"] .cal .cd.fast .dn{color:var(--ink);}
  .cal .cd.dim{opacity:.34;}

  .legend{display:flex; gap:16px; flex-wrap:wrap; font-family:var(--font-data); font-size:10px; color:var(--soft); text-transform:uppercase; letter-spacing:.05em; margin-top:10px;}
  .legend span{display:flex; align-items:center; gap:6px;}
  .swatch{width:13px; height:13px; border:1px solid var(--ink); display:inline-block;}
  .swatch.f{background:var(--fast-bg);}

  .stack{display:flex; flex-direction:column; gap:18px;}
  .cfile{font-family:var(--font-data); font-size:10px; color:var(--soft); border:1px solid var(--hair); padding:2px 7px; display:inline-block; background:var(--paper);}
  .gbtn{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-data); font-size:12px; border:1px solid var(--ink);
    background:#fff; color:#222; padding:8px 16px; text-decoration:none; cursor:pointer;}
  .gbtn .g{font-family:var(--font-display); font-weight:800; color:#4285F4;}

  .note{color:var(--soft); font-size:calc(var(--base) - 1px); line-height:1.5;}
  .note b{color:var(--ink);}
  .ftr{margin-top:34px; border-top:var(--rule-strong) solid var(--ink); padding-top:12px; color:var(--soft); font-size:11px; line-height:1.6;}

  /* ===== modals & forms (create / edit) — token-driven, all themes ===== */
  .modal-bd{position:fixed; inset:0; z-index:50; display:none; background:rgba(20,17,14,.5); padding:38px 16px 64px; overflow-y:auto;}
  .modal-bd.on{display:block;}
  .modal{margin:0 auto; width:100%; max-width:660px; background:var(--panel); border:var(--rule-strong) solid var(--ink); box-shadow:7px 7px 0 rgba(20,17,14,.16);}
  .modal.lg{max-width:880px;}
  [data-theme="almanac"] .modal{border-width:1px; border-top:3px double var(--ink);}
  .mh{display:flex; align-items:baseline; gap:12px; padding:13px 16px 11px; border-bottom:2px solid var(--ink);}
  .mh h3{font-family:var(--font-display); font-weight:800; font-size:21px; line-height:1; margin:0;}
  [data-theme="ledger"] .mh h3{font-size:16px; text-transform:uppercase; letter-spacing:.06em;}
  .mh .req{font-family:var(--font-data); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--soft);}
  .mx{margin-left:auto; cursor:pointer; font-family:var(--font-data); border:1px solid var(--ink); background:var(--paper); color:var(--ink); width:26px; height:26px; line-height:1; font-size:14px;}
  .mb{padding:16px;}
  .mb .sub{margin:-2px 0 15px;}
  .mf{display:flex; gap:9px; align-items:center; padding:12px 16px; border-top:1px solid var(--hair); background:var(--paper);}
  .mf .sp{margin-left:auto;}
  .btn.del{border-color:var(--accent); color:var(--accent);}
  .fsec{font-family:var(--font-data); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft); margin:18px 0 9px; padding-bottom:5px; border-bottom:1px solid var(--hair);}
  .fsec:first-child{margin-top:0;}

  .field{margin-bottom:13px;} .field:last-child{margin-bottom:0;}
  .field>label{display:block; font-family:var(--font-data); font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--soft); margin-bottom:5px;}
  .field>label .rq{color:var(--accent);}
  .in{width:100%; font-family:var(--font-data); font-size:13px; border:1px solid var(--ink); background:var(--paper); color:var(--ink); padding:7px 9px;}
  .in:focus{outline:2px solid var(--accent); outline-offset:-1px;}
  select.in{appearance:none; padding-right:24px;
    background-image:linear-gradient(45deg,transparent 50%,var(--soft) 50%),linear-gradient(135deg,var(--soft) 50%,transparent 50%);
    background-position:calc(100% - 13px) 15px,calc(100% - 9px) 15px; background-size:4px 4px,4px 4px; background-repeat:no-repeat;}
  textarea.in{resize:vertical; min-height:50px; line-height:1.45;}
  .fhint{font-family:var(--font-data); font-size:10px; color:var(--soft); margin-top:5px; line-height:1.45;}
  .frow{display:grid; gap:12px;}
  .frow.c2{grid-template-columns:1fr 1fr;}
  .frow.c3{grid-template-columns:1fr 1fr 1fr;}
  .frow.c4{grid-template-columns:repeat(4,1fr);}
  .frow.qty{grid-template-columns:1fr 110px;}
  @media(max-width:560px){.frow.c2,.frow.c3,.frow.c4{grid-template-columns:1fr 1fr;}}

  .seg{display:inline-flex; border:1px solid var(--ink); flex-wrap:wrap;}
  .seg button{font-family:var(--font-data); font-size:11px; text-transform:uppercase; letter-spacing:.04em; border:0; border-right:1px solid var(--ink); background:var(--panel); color:var(--ink); padding:6px 13px; cursor:pointer;}
  .seg button:last-child{border-right:0;}
  .seg button.on{background:var(--ink); color:var(--paper);}

  .tagsel{display:flex; gap:6px; flex-wrap:wrap;}
  .tagsel .chip{cursor:pointer;}

  /* ingredient builder (recipe form) */
  .builder{border:1px solid var(--hair); background:var(--paper);}
  .bhd{display:grid; grid-template-columns:1fr 92px 64px 26px; gap:8px; padding:6px 9px; border-bottom:1px solid var(--hair);
    font-family:var(--font-data); font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--soft);}
  .brow{display:grid; grid-template-columns:1fr 92px 64px 26px; gap:8px; align-items:center; padding:6px 9px; border-bottom:1px dotted var(--hair);}
  .brow:last-of-type{border-bottom:1px solid var(--hair);}
  .brow .in{padding:5px 7px; font-size:12px;}
  .brow .rm{cursor:pointer; border:1px solid var(--hair); background:var(--panel); color:var(--soft); width:26px; height:26px; font-family:var(--font-data); font-size:12px;}
  .badd{font-family:var(--font-data); font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; border:1px dashed var(--hair); background:transparent; color:var(--soft); cursor:pointer; padding:7px 10px; width:100%; margin-top:9px;}
  .rollup{margin-top:13px; border:1px solid var(--ink); background:var(--paper);}
  .rollup .rh{font-family:var(--font-data); font-size:9px; letter-spacing:.09em; text-transform:uppercase; color:var(--soft); padding:6px 10px; border-bottom:1px solid var(--hair); display:flex; justify-content:space-between;}
  .rollup .rv{padding:9px 10px; display:flex; gap:7px 20px; flex-wrap:wrap; font-family:var(--font-data); font-size:13px;}
  .rollup .rv b{font-weight:700;} .rollup .rv .mut{color:var(--soft);}

  /* editable rows: a row click opens its edit dialog */
  [data-screen="recipes"] .tbl tbody tr,
  [data-screen="ingredients"] .tbl tbody tr,
  [data-screen="inventory"] .tbl tbody tr{cursor:pointer;}
  .tbl tbody tr td .pen{float:right; font-family:var(--font-data); font-size:9px; color:var(--soft); opacity:0; letter-spacing:.05em;}
  .tbl tbody tr:hover td .pen{opacity:1;}
  .cedit{font-size:9px; color:var(--soft); text-decoration:none; margin-left:7px;}
  .cedit:hover{color:var(--ink);}

  /* ============================================================
     THEME C — LCD HANDHELD overrides (planner = pale LCD screen;
     other screens = handheld "menu panel" cards). Monochrome.
     ============================================================ */
  [data-theme="arcade"] .brand{font-size:25px; color:var(--ink); text-transform:uppercase; text-shadow:3px 3px 0 var(--hair);}
  [data-theme="arcade"] .brand-sub{font-size:13px; letter-spacing:.12em; margin-top:9px;}
  [data-theme="arcade"] .tnav a{font-size:15px; letter-spacing:.04em;}
  [data-theme="arcade"] .tnav a.on{box-shadow:2px 2px 0 var(--ink);}
  [data-theme="arcade"] .avatar{font-size:12px; box-shadow:2px 2px 0 var(--ink); background:#c9ccba;}
  [data-theme="arcade"] .wk{font-family:var(--font-data); font-size:21px; font-weight:400;}
  [data-theme="arcade"] .nav-btn{border-width:2px; box-shadow:2px 2px 0 var(--ink); font-size:15px;}
  [data-theme="arcade"] .pill{background:transparent; color:var(--ink); font-size:13px; border-width:2px; box-shadow:2px 2px 0 var(--ink); padding:2px 9px;}
  [data-theme="arcade"] .btn{font-size:15px; border-width:2px; box-shadow:3px 3px 0 var(--ink); padding:4px 13px;}
  [data-theme="arcade"] .btn.pri{background:var(--ink); border-color:var(--ink); color:var(--paper);}
  [data-theme="arcade"] .btn:active{transform:translate(2px,2px); box-shadow:1px 1px 0 var(--ink);}
  [data-theme="arcade"] .shead h2{font-family:var(--font-display); font-size:18px; text-transform:uppercase; text-shadow:2px 2px 0 var(--hair);}
  [data-theme="arcade"] .sub{font-size:15px;}

  /* the monochrome LCD screen (planner) */
  [data-theme="arcade"] .board{background:var(--screen); border:5px solid var(--ink); box-shadow:6px 6px 0 var(--ink); overflow:hidden;}
  [data-theme="arcade"] .board::after{content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.10), inset 0 2px 7px rgba(23,33,26,.16);}
  [data-theme="arcade"] .gh{background:var(--screen); border-right:1px solid var(--screen-line); border-bottom:3px solid var(--screen-ink); color:var(--screen-ink);}
  [data-theme="arcade"] .gh .dy{color:var(--screen-dim); font-size:13px;}
  [data-theme="arcade"] .gh .nu{font-family:var(--font-data); font-weight:400; color:var(--screen-ink); font-size:18px;}
  [data-theme="arcade"] .gh.fast{background:var(--screen-ink); border-bottom-color:var(--screen-ink);}
  [data-theme="arcade"] .gh.fast .dy, [data-theme="arcade"] .gh.fast .nu, [data-theme="arcade"] .gh.fast .fl{color:var(--screen);}
  [data-theme="arcade"] .fl{font-size:12px; color:var(--screen-dim);}
  [data-theme="arcade"] .rl{writing-mode:vertical-rl; transform:rotate(180deg); text-align:center; border-right:0;
    padding:6px 0; font-family:var(--font-data); font-size:12px; color:var(--paper); letter-spacing:.12em;}
  [data-theme="arcade"] .rl.bf{background:var(--c-bf);} [data-theme="arcade"] .rl.lu{background:var(--c-lu);}
  [data-theme="arcade"] .rl.di{background:var(--c-di);} [data-theme="arcade"] .rl.sn{background:var(--c-sn);}
  [data-theme="arcade"] .c{background:var(--screen); border-right:1px solid var(--screen-line); border-bottom:1px solid var(--screen-line); color:var(--screen-ink);}
  [data-theme="arcade"] .c.fast{background:var(--fast-bg);}
  [data-theme="arcade"] .nm{font-size:16px; color:var(--screen-ink); line-height:1.12;}
  [data-theme="arcade"] .kc{font-size:13px; color:var(--screen-dim); margin-top:1px;}
  [data-theme="arcade"] .kc b{color:var(--screen-ink);}
  [data-theme="arcade"] .lo{color:var(--screen-dim);}
  [data-theme="arcade"] .tg span{color:var(--screen-dim); border-color:var(--screen-line); background:transparent; font-size:12px; padding:0 4px;}
  [data-theme="arcade"] .fishok{color:var(--screen); background:var(--screen-ink); padding:0 5px; font-size:12px; border:1px solid var(--screen-ink);}
  [data-theme="arcade"] .flag{border-left:0; background:var(--screen-ink); color:var(--screen); border:2px solid var(--ink);
    font-family:var(--font-data); font-weight:400; font-size:11px; letter-spacing:.04em; padding:2px 6px; box-shadow:2px 2px 0 var(--ink);
    animation:hc-blink 1.1s steps(1,end) infinite;}
  [data-theme="arcade"] .add{color:var(--screen-dim); font-size:15px;}

  /* handheld "menu panel" cards + content primitives */
  [data-theme="arcade"] .card,[data-theme="arcade"] .tbl-wrap,[data-theme="arcade"] .cal{background:var(--panel); border:3px solid var(--ink);
    box-shadow:inset 2px 2px 0 rgba(255,255,255,.5), inset -2px -2px 0 rgba(35,41,29,.14), 4px 4px 0 var(--ink);}
  [data-theme="arcade"] .ch{background:var(--ink); color:var(--paper); border-bottom:0; font-family:var(--font-data); font-size:11.5px; letter-spacing:.11em;}
  [data-theme="arcade"] .ch a{color:#c9ccba;}
  [data-theme="arcade"] .mem .t b{font-size:16px;}
  [data-theme="arcade"] .mem .t .v{font-size:13px;}
  [data-theme="arcade"] .meter{height:13px; border:2px solid var(--ink); background:#cdd1bf; padding:1px;}
  [data-theme="arcade"] .meter i{background:repeating-linear-gradient(90deg, var(--screen-ink) 0 5px, transparent 5px 7px);}
  [data-theme="arcade"] .srow{font-size:14px;} [data-theme="arcade"] .srow .v{font-size:14px;}
  [data-theme="arcade"] .ck{font-size:14px;}
  [data-theme="arcade"] .ck .d{font-family:var(--font-data); font-size:10.5px; letter-spacing:.06em; background:var(--ink); color:var(--paper); padding:2px 6px;}
  [data-theme="arcade"] .tbl th{font-family:var(--font-data); font-size:11px; letter-spacing:.08em; color:var(--ink);}
  [data-theme="arcade"] .tbl td{font-size:14px;}
  [data-theme="arcade"] .badge{border-width:2px; box-shadow:1px 1px 0 var(--ink); font-family:var(--font-data); font-size:10.5px; letter-spacing:.04em;}
  [data-theme="arcade"] .search,[data-theme="arcade"] .chip{font-size:14px; border-width:2px;}
  [data-theme="arcade"] .kv dt{font-size:11.5px;} [data-theme="arcade"] .kv dd{font-size:14px;}
  [data-theme="arcade"] .tree{font-size:14px;}
  [data-theme="arcade"] .cr{font-size:14px;} [data-theme="arcade"] .cr .why{font-size:12px;} [data-theme="arcade"] .cr .q{font-size:12.5px;}
  [data-theme="arcade"] .cal .cdh{font-family:var(--font-data); font-size:11px; letter-spacing:.06em;}
  [data-theme="arcade"] .cal .cd .dn{font-family:var(--font-data); font-size:15px;}
  [data-theme="arcade"] .cal .cd.fast{background:var(--screen-ink);}
  [data-theme="arcade"] .cal .cd.fast .dn,[data-theme="arcade"] .cal .cd.fast .lv{color:var(--screen);}
  [data-theme="arcade"] .cfile{font-size:13px; border-width:2px;}
  [data-theme="arcade"] .note{font-size:14px;}

  /* Single-weight LCD face: never faux-bold — emphasize with full-dark ink + size */
  [data-theme="arcade"] b,[data-theme="arcade"] strong,
  [data-theme="arcade"] .nm,[data-theme="arcade"] .kc b,[data-theme="arcade"] .lo,
  [data-theme="arcade"] .tbl td,[data-theme="arcade"] .tbl .nmc,
  [data-theme="arcade"] .tree .rn,[data-theme="arcade"] .qty,
  [data-theme="arcade"] .mem .t b,[data-theme="arcade"] .srow,[data-theme="arcade"] .srow .v,
  [data-theme="arcade"] .kv dt,[data-theme="arcade"] .kv dd,[data-theme="arcade"] .note,
  [data-theme="arcade"] .sub,[data-theme="arcade"] .pill,[data-theme="arcade"] .fishok,
  [data-theme="arcade"] .cr,[data-theme="arcade"] .ck,[data-theme="arcade"] .cr b,
  [data-theme="arcade"] .wk,[data-theme="arcade"] .cal .cd .dn{font-weight:400;}
  [data-theme="arcade"] .tbl .nmc,[data-theme="arcade"] .tree .rn,
  [data-theme="arcade"] .mem .t b,[data-theme="arcade"] .srow .v,
  [data-theme="arcade"] .kv dd{color:var(--ink);}

  /* THEME C — modals & forms as handheld panels */
  [data-theme="arcade"] .modal-bd{background:rgba(27,32,22,.55);}
  [data-theme="arcade"] .modal{border:3px solid var(--ink); box-shadow:7px 7px 0 var(--ink); background:var(--panel);}
  [data-theme="arcade"] .mh{border-bottom:3px solid var(--ink);}
  [data-theme="arcade"] .mh h3{font-family:var(--font-display); font-size:17px; text-transform:uppercase; text-shadow:2px 2px 0 var(--hair);}
  [data-theme="arcade"] .mx{border-width:2px; box-shadow:2px 2px 0 var(--ink); font-size:13px;}
  [data-theme="arcade"] .field>label{font-size:11px;}
  [data-theme="arcade"] .in{border-width:2px; font-size:14px;}
  [data-theme="arcade"] .seg{border-width:2px;}
  [data-theme="arcade"] .seg button{font-size:13px; border-right-width:2px;}
  [data-theme="arcade"] .seg button:last-child{border-right:0;}
  [data-theme="arcade"] .badd{font-size:12px; border-width:2px;}
  [data-theme="arcade"] .bhd{font-size:10px;}
  [data-theme="arcade"] .brow .rm{border-width:2px;}
  [data-theme="arcade"] .rollup{border-width:2px; box-shadow:2px 2px 0 var(--ink);}
  [data-theme="arcade"] .rollup .rv{font-size:14px;}
  [data-theme="arcade"] .rollup .rv b{font-weight:400; color:var(--ink);}
  [data-theme="arcade"] .fhint,[data-theme="arcade"] .fsec{font-size:12px;}

  @keyframes hc-blink{50%{opacity:.35;}}
  @media (prefers-reduced-motion: reduce){ [data-theme="arcade"] .flag{animation:none;} }
