html,body{margin:0;padding:0;background:#0A0A0B;overflow-x:hidden;}
  #lunch-app-root,#lunch-app-root*{box-sizing:border-box;}
  #lunch-app-root{
    color-scheme:dark;
    --bg:#0A0A0B;--paper:#131315;--ink:#F2F1EE;--ink-soft:#9C9B97;
    --line:rgba(255,255,255,.10);--accent:#CA171F;--accent-dark:#970F15;--accent-tint:rgba(202,23,31,.16);
    --accent-glow:rgba(202,23,31,.45);--ink-on-accent:#fff;
    --good:#3ECB7A;--good-tint:rgba(62,203,122,.14);--skip:#A9A8A4;--skip-tint:rgba(169,168,164,.12);
    --warn:#FF5C5C;--warn-tint:rgba(255,92,92,.14);
    --vegan:#4CD97D;--vegan-tint:rgba(76,217,125,.14);--vegan-dark:#8CEBAA;
    --holiday:#A78BFA;--holiday-tint:rgba(167,139,250,.16);
    --glass-bg:rgba(20,20,22,.5);--glass-bg-2:rgba(18,18,20,.78);--glass-border:rgba(255,255,255,.14);
    --glass-highlight:rgba(255,255,255,.05);--shadow-color:rgba(0,0,0,.45);
    --input-bg:rgba(255,255,255,.05);--protein-input-bg:rgba(255,255,255,.06);
    --ghost-bg:rgba(255,255,255,.05);--ghost-border:rgba(255,255,255,.14);--ghost-hover:rgba(255,255,255,.12);
    --pill-bg:rgba(255,255,255,.04);--pill-hover:rgba(255,255,255,.1);
    --divider:rgba(255,255,255,.1);--divider-strong:rgba(255,255,255,.16);
    --submitbar-bg:rgba(18,18,20,.78);--submitbar-border:rgba(255,255,255,.1);--submitbar-shadow:rgba(0,0,0,.55);
    --confirm-bg:rgba(62,203,122,.1);--swatch-ring:rgba(255,255,255,.35);--select-panel-bg:rgba(22,22,25,.94);
    --blob-op-1:.14;--blob-op-2:.09;
    --glass-reflex-light:0.3;--glass-reflex-dark:2;
    font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    color:var(--ink);background:var(--bg);min-height:100%;line-height:1.45;-webkit-font-smoothing:antialiased;
    position:relative;
  }
  #lunch-app-root[data-theme="light"]{
    color-scheme:light;
    --bg:#FAFAFA;--paper:#FFFFFF;--ink:#1A1A1A;--ink-soft:#6E6E6E;--line:#EAEAEA;
    --good:#1F7A33;--good-tint:#E6F4E9;--skip:#8B8B8B;--skip-tint:#F0F0F0;
    --warn:#A8121A;--warn-tint:#FBE4E5;
    --vegan:#2E7D32;--vegan-tint:#E8F5E9;--vegan-dark:#1B5E20;
    --holiday:#5C35A0;--holiday-tint:#EDE7F6;
    --glass-bg:rgba(255,255,255,.72);--glass-bg-2:rgba(255,255,255,.62);--glass-border:rgba(255,255,255,.58);
    --glass-highlight:rgba(255,255,255,.6);--shadow-color:rgba(0,0,0,.05);
    --input-bg:rgba(255,255,255,.85);--protein-input-bg:#fff;
    --ghost-bg:rgba(255,255,255,.6);--ghost-border:rgba(0,0,0,.12);--ghost-hover:rgba(255,255,255,.9);
    --pill-bg:rgba(255,255,255,.5);--pill-hover:rgba(255,255,255,.85);
    --divider:rgba(0,0,0,.08);--divider-strong:rgba(0,0,0,.15);
    --submitbar-bg:rgba(26,26,26,.82);--submitbar-border:transparent;--submitbar-shadow:rgba(0,0,0,.25);
    --confirm-bg:rgba(230,244,233,.85);--swatch-ring:rgba(255,255,255,.7);--select-panel-bg:rgba(255,255,255,.94);
    --blob-op-1:.1;--blob-op-2:.06;
    --glass-reflex-light:1;--glass-reflex-dark:1;
  }

  #lunch-app-root .display{font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
  #lunch-app-root .mono{font-family:"SF Mono","Roboto Mono",Consolas,"Courier New",monospace;}
  #lunch-app-root a,#lunch-app-root button{font-family:inherit;}

  /* ---------- background blobs (soft ambient glow, breathing) ---------- */
  .lo-blob-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;filter:blur(70px);}
  .lo-blob-bg .b1{position:absolute;width:30vw;height:30vw;min-width:220px;min-height:220px;top:-10vw;left:-8vw;border-radius:50%;background:radial-gradient(circle, var(--accent), transparent 70%);opacity:var(--blob-op-1);animation:loBlob1 26s ease-in-out infinite;transition:background 1s ease,opacity .6s ease;}
  .lo-blob-bg .b2{position:absolute;width:24vw;height:24vw;min-width:170px;min-height:170px;bottom:-8vw;right:-6vw;border-radius:50%;background:radial-gradient(circle, var(--accent), transparent 70%);opacity:var(--blob-op-2);animation:loBlob2 30s ease-in-out infinite;transition:background 1s ease,opacity .6s ease;}
  @keyframes loBlob1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(3vw,4vw) scale(1.12);}}
  @keyframes loBlob2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-3vw,-3vw) scale(1.15);}}

  /* ---------- theme-change flash ---------- */
  .lo-theme-flash{position:fixed;inset:0;z-index:6;pointer-events:none;background:radial-gradient(circle at 50% 15%, var(--accent), transparent 60%);opacity:0;}
  .lo-theme-flash.go{animation:loFlash .7s cubic-bezier(.2,.8,.2,1);}
  @keyframes loFlash{0%{opacity:0;}22%{opacity:.28;}100%{opacity:0;}}

  /* ---------- shared entrance keyframes ---------- */
  @keyframes loFadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
  @keyframes loFadeIn{from{opacity:0;}to{opacity:1;}}
  @keyframes loPopIn{0%{transform:scale(.85);opacity:0;}60%{transform:scale(1.06);opacity:1;}100%{transform:scale(1);}}
  @keyframes loCheckPop{0%{transform:scale(0) rotate(-20deg);}55%{transform:scale(1.3) rotate(6deg);}100%{transform:scale(1) rotate(0);}}
  @keyframes loBadgePop{0%{transform:scale(.55) translateY(6px);opacity:0;}65%{transform:scale(1.08) translateY(0);}100%{transform:scale(1);opacity:1;}}
  @keyframes loRipple{to{transform:scale(2.6);opacity:0;}}
  .lo-pop-once{animation:loCheckPop .4s cubic-bezier(.34,1.56,.64,1);}

  .lo-wrap{max-width:980px;margin:0 auto;padding:18px 16px 64px;position:relative;z-index:1;}
  .lo-logo{display:flex;align-items:stretch;gap:9px;flex:none;}
  .lo-logo-bar{width:12px;background:var(--accent);border-radius:2px;flex:none;transition:background .8s ease;}
  .lo-logo-text{display:flex;flex-direction:column;justify-content:center;line-height:0.92;}
  .lo-logo-line{font-weight:800;color:var(--accent);letter-spacing:0.01em;font-family:-apple-system,"Helvetica Neue",Arial,sans-serif;transition:color .8s ease;}
  .lo-logo-the{font-size:11px;letter-spacing:0.08em;}.lo-logo-ninani{font-size:21px;}.lo-logo-group{font-size:15px;}
  .lo-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;margin-bottom:18px;
    background:var(--glass-bg-2);
    border:1px solid var(--glass-border);border-radius:22px;box-shadow:0 8px 30px var(--shadow-color), inset 0 1px 0 var(--glass-highlight);
    animation:loFadeUp .5s cubic-bezier(.2,.8,.2,1) both;}
  .lo-brand{display:flex;align-items:center;gap:12px;min-width:0;}
  .lo-brand-title{font-size:22px;font-weight:700;letter-spacing:0.01em;}
  .lo-brand-sub{font-size:12.5px;color:var(--ink-soft);margin-top:1px;}
  .lo-tabs{display:flex;gap:6px;}
  .lo-tab{position:relative;overflow:hidden;border:1.5px solid var(--ghost-border);background:var(--pill-bg);color:var(--ink);padding:7px 14px;border-radius:999px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .15s ease;white-space:nowrap;}
  .lo-tab:active{transform:scale(.95);}
  .lo-tab.active{background:var(--accent);color:var(--ink-on-accent);border-color:transparent;box-shadow:0 6px 16px var(--accent-glow);}
  .lo-tab:hover:not(.active){background:var(--pill-hover);}
  .lo-deadline{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;background:var(--accent-tint);color:var(--accent);margin-top:8px;transition:background .8s ease,color .8s ease;}
  .lo-deadline.closed{background:var(--warn-tint);color:var(--warn);}
  .lo-deadline .dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:loPulse 1.8s ease-in-out infinite;}
  @keyframes loPulse{0%,100%{opacity:1;}50%{opacity:.35;}}

  .lo-section-label{font-size:11px;text-transform:uppercase;letter-spacing:0.08em;font-weight:700;color:var(--ink-soft);margin:28px 0 10px;}
  .lo-card{background:var(--glass-bg);
    border:1px solid var(--glass-border);border-radius:20px;padding:18px 20px;
    box-shadow:0 8px 30px var(--shadow-color), inset 0 1px 0 var(--glass-highlight);
    transition:box-shadow .4s ease,border-color .4s ease;animation:loFadeUp .5s cubic-bezier(.2,.8,.2,1) both;}
  .lo-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .lo-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
  .lo-field label{font-size:12.5px;font-weight:700;color:var(--ink-soft);}
  .lo-field input,.lo-field select,.lo-field textarea{font-size:15px;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--input-bg);color:var(--ink);font-family:inherit;width:100%;max-width:100%;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease;}
  .lo-field input::placeholder,.lo-field textarea::placeholder{color:var(--ink-soft);opacity:.75;}
  .lo-field input:focus,.lo-field select:focus,.lo-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}
  .lo-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  @media(max-width:560px){.lo-row2{grid-template-columns:1fr;}}
  .lo-btn{position:relative;overflow:hidden;border:none;border-radius:14px;padding:12px 20px;font-size:14.5px;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .3s ease,background .4s ease;}
  .lo-btn:active{transform:scale(0.97);}.lo-btn:disabled{opacity:0.5;cursor:not-allowed;}
  .lo-btn-primary{background:var(--accent);color:var(--ink-on-accent);box-shadow:0 8px 20px var(--accent-glow);}
  .lo-btn-primary:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 12px 26px var(--accent-glow);}
  .lo-btn-ghost{background:var(--ghost-bg);border:1.5px solid var(--ghost-border);color:var(--ink);}.lo-btn-ghost:hover{background:var(--ghost-hover);}
  .lo-btn-danger{background:transparent;border:1.5px solid var(--warn);color:var(--warn);}.lo-btn-danger:hover{background:var(--warn-tint);}
  .lo-btn-holiday{background:transparent;border:1.5px solid var(--holiday);color:var(--holiday);border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;cursor:pointer;transition:background .15s;}
  .lo-btn-holiday:hover{background:var(--holiday-tint);}.lo-btn-holiday.active{background:var(--holiday);color:#fff;}
  .lo-btn-link{background:none;border:none;color:var(--ink-soft);font-size:13px;text-decoration:underline;cursor:pointer;padding:4px 0;}

  /* ---------- liquid-glass theme switcher (2-way, replaces the plain toggle button) ---------- */
  .lo-switcher{position:fixed;top:16px;right:16px;z-index:45;display:flex;align-items:center;gap:2px;width:auto;height:40px;box-sizing:border-box;padding:3px;margin:0;border:1px solid var(--glass-border);border-radius:999px;
    background:var(--glass-bg-2);
    box-shadow:
      inset 0 0 0 1px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 10%), transparent),
      inset 1px 1.6px 0px -1px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 90%), transparent),
      inset -1px -1px 0px -1px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 80%), transparent),
      inset -0.3px -1px 3px 0px color-mix(in srgb, var(--c-dark,#000) calc(var(--glass-reflex-dark) * 12%), transparent),
      0 3px 8px var(--shadow-color);
    transition:background-color .3s ease,box-shadow .3s ease;}
  .lo-switcher__legend{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;white-space:nowrap;clip:rect(0 0 0 0);overflow:hidden;}
  .lo-switcher__input{clip:rect(0 0 0 0);height:1px;width:1px;overflow:hidden;position:absolute;white-space:nowrap;}
  .lo-switcher__option{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;width:34px;height:34px;flex:none;color:var(--ink-soft);border-radius:50%;cursor:pointer;transition:color .2s ease;}
  .lo-switcher__option:has(input:checked){color:var(--ink-on-accent);}
  .lo-switcher__icon{display:flex;align-items:center;justify-content:center;width:17px;height:17px;transition:scale .2s cubic-bezier(.5,0,0,1);}
  .lo-switcher__icon svg{display:block;vertical-align:top;}
  .lo-switcher__option:has(input:checked) .lo-switcher__icon{scale:1.08;}
  .lo-switcher::after{content:"";position:absolute;left:3px;top:3px;width:34px;height:34px;border-radius:50%;z-index:0;
    background:var(--accent);box-shadow:0 2px 8px var(--accent-glow);
    transition:translate .3s cubic-bezier(1,0,.4,1);}
  .lo-switcher:has(input[c-option="1"]:checked)::after{translate:0 0;animation:loSwitcherPop .35s ease;}
  .lo-switcher:has(input[c-option="2"]:checked)::after{translate:36px 0;animation:loSwitcherPop .35s ease;}
  @keyframes loSwitcherPop{0%{scale:1 1;}50%{scale:1.14 1;}100%{scale:1 1;}}
  .lo-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.4);transform:scale(0);pointer-events:none;animation:loRipple .6s ease-out forwards;}
  .lo-vegan-toggle{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;cursor:pointer;border:1.5px solid var(--line);background:var(--ghost-bg);font-size:13.5px;font-weight:700;color:var(--ink-soft);transition:all .3s ease;user-select:none;}
  .lo-vegan-toggle:active{transform:scale(.96);}
  .lo-vegan-toggle.active{background:var(--vegan-tint);border-color:var(--vegan);color:var(--vegan-dark);box-shadow:0 4px 14px rgba(76,217,125,.28);}
  .lo-vegan-toggle .toggle-knob{width:36px;height:20px;border-radius:999px;background:var(--line);position:relative;transition:background .3s cubic-bezier(.2,.8,.2,1);flex:none;}
  .lo-vegan-toggle .toggle-knob::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.4);transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
  .lo-vegan-toggle.active .toggle-knob{background:var(--vegan);}.lo-vegan-toggle.active .toggle-knob::after{transform:translateX(16px);}
  .lo-protein-row{margin-top:6px;padding:10px 12px 12px;background:var(--vegan-tint);border:1px solid var(--vegan);border-radius:10px;display:none;}
  .lo-protein-row.visible{display:block;}
  .lo-protein-row label{font-size:11px;font-weight:700;color:var(--vegan-dark);letter-spacing:0.04em;text-transform:uppercase;display:block;margin-bottom:4px;}
  .lo-protein-row input{font-size:13.5px;padding:8px 10px;border:1px solid var(--glass-border);border-radius:7px;background:var(--protein-input-bg);color:var(--ink);width:100%;font-family:inherit;box-sizing:border-box;}
  .lo-protein-row input:focus{outline:2px solid var(--vegan);outline-offset:1px;border-color:var(--vegan);}
  .lo-protein-hint{font-size:10.5px;color:var(--vegan);margin-top:4px;}
  .lo-vegan-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--vegan-dark);background:var(--vegan-tint);border:1px solid var(--vegan);border-radius:999px;padding:2px 7px;vertical-align:middle;margin-left:4px;}
  .lo-holiday-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--holiday);background:var(--holiday-tint);border:1px solid var(--holiday);border-radius:999px;padding:2px 7px;vertical-align:middle;}
  .lo-period-btn{border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;border:1.5px solid var(--ghost-border);background:var(--pill-bg);color:var(--ink);transition:all .3s ease;}
  .lo-period-btn.active{background:var(--accent);color:var(--ink-on-accent);border-color:transparent;box-shadow:0 6px 14px var(--accent-glow);}
  .lo-period-btn:hover:not(.active){background:var(--pill-hover);}
  .lo-day-rail{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:14px;}
  @media(max-width:900px){.lo-day-rail{grid-template-columns:1fr 1fr;}}
  @media(max-width:560px){.lo-day-rail{grid-template-columns:1fr;}}
  .lo-day-card{position:relative;background:var(--glass-bg);
    border:1.5px solid var(--glass-border);border-radius:18px 18px 6px 6px;padding:14px 12px 18px;display:flex;flex-direction:column;gap:8px;
    box-shadow:0 6px 24px var(--shadow-color);transition:border-color .4s ease,box-shadow .4s ease,transform .15s ease;
    animation:loFadeUp .5s cubic-bezier(.2,.8,.2,1) both;}
  .lo-day-card:hover{transform:translateY(-2px);}
  .lo-day-card.popping{animation:loPopIn .35s cubic-bezier(.34,1.56,.64,1) both;}
  .lo-day-card.complete{border-color:var(--accent);box-shadow:0 8px 20px var(--accent-glow);}
  .lo-day-card.holiday{border-color:var(--holiday);background:var(--holiday-tint);opacity:0.75;pointer-events:none;}
  .lo-day-card-head{display:flex;flex-direction:column;border-bottom:1.5px dashed var(--divider);padding-bottom:8px;margin-bottom:4px;}
  .lo-day-name{font-weight:800;font-size:14.5px;letter-spacing:.03em;text-transform:uppercase;}
  .lo-day-status{font-size:11px;color:var(--ink-soft);margin-top:2px;}
  .lo-day-card.complete .lo-day-status{color:var(--accent);font-weight:700;}
  .lo-day-card.holiday .lo-day-status{color:var(--holiday);font-weight:700;}
  .lo-option{display:flex;align-items:flex-start;gap:8px;padding:7px 6px;border-radius:10px;cursor:pointer;font-size:12.8px;border:1px solid transparent;transition:all .3s ease;}
  .lo-option:hover{background:var(--accent-tint);}
  .lo-option input{margin-top:2px;accent-color:var(--accent);flex:none;}
  .lo-option .opt-num{flex:none;width:16px;height:16px;border-radius:50%;border:1.3px solid var(--ink-soft);font-size:9.5px;font-weight:800;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);margin-top:1px;transition:all .3s ease;}
  .lo-option input:checked~.opt-num,.lo-option.selected .opt-num{background:var(--accent);border-color:transparent;color:var(--ink-on-accent);}
  .lo-option.selected{background:var(--accent-tint);border-color:var(--accent);box-shadow:0 4px 12px var(--accent-glow);}
  .lo-option .opt-text{flex:1;}
  .lo-option.skip{margin-top:4px;border-top:1px dashed var(--divider);padding-top:9px;}
  .lo-option.skip .opt-text{color:var(--ink-soft);font-style:italic;}
  .lo-option.skip.selected{background:var(--skip-tint);border-color:var(--skip);box-shadow:none;}
  .lo-option.skip.selected .opt-num{background:var(--skip);border-color:var(--skip);}
  .lo-day-card::after{content:"";position:absolute;left:8px;right:8px;bottom:6px;height:0;border-bottom:1.5px dotted var(--divider);}
  .lo-submit-bar{position:sticky;bottom:12px;margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;
    background:var(--submitbar-bg);color:#fff;border:1px solid var(--submitbar-border);border-radius:18px;padding:12px 18px;box-shadow:0 10px 34px var(--submitbar-shadow);
    animation:loFadeUp .55s cubic-bezier(.2,.8,.2,1) both;}
  .lo-progress-text{font-size:13px;font-weight:600;}
  .lo-submit-bar .lo-btn-primary{background:var(--accent);}
  .lo-confirm{position:relative;margin-top:20px;border:1.5px solid var(--good);background:var(--confirm-bg);border-radius:16px;padding:16px 18px;animation:loFadeUp .4s cubic-bezier(.2,.8,.2,1) both;overflow:visible;}
  .lo-lottie-burst{width:230px;height:230px;margin:0 auto 8px;pointer-events:none;}
  .lo-confirm h4{margin:0 0 6px;color:var(--good);font-size:14px;}
  .lo-confirm ul{margin:8px 0 0;padding-left:18px;font-size:13px;}
  .lo-dash-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
  .lo-dash-controls select{padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;font-size:13.5px;background:var(--input-bg);color:var(--ink);}
  .lo-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;}
  @media(max-width:560px){.lo-stat-row{grid-template-columns:1fr;}}
  .lo-stat-tile{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;padding:16px;text-align:center;box-shadow:0 6px 20px var(--shadow-color);animation:loFadeUp .5s cubic-bezier(.2,.8,.2,1) both;}
  .lo-stat-num{font-size:32px;font-weight:800;color:var(--accent);transition:color .8s ease;}
  .lo-stat-num.mono{font-family:"SF Mono","Roboto Mono",Consolas,monospace;}
  .lo-stat-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-top:4px;}
  .lo-day-report-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
  @media(max-width:900px){.lo-day-report-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:560px){.lo-day-report-grid{grid-template-columns:1fr;}}
  .lo-report-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:12px 14px;animation:loFadeUp .45s cubic-bezier(.2,.8,.2,1) both;}
  .lo-report-card h5{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;}
  .lo-report-line{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:4px 0;border-bottom:1px dotted var(--divider);}
  .lo-report-line:last-child{border-bottom:none;}
  .lo-report-line .n{font-family:"SF Mono","Roboto Mono",Consolas,monospace;font-weight:700;}
  .lo-report-line.skip-line .n{color:var(--skip);}
  .lo-report-line.vegan-line{color:var(--vegan-dark);}.lo-report-line.vegan-line .n{color:var(--vegan);}
  .lo-report-total{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1.5px solid var(--divider-strong);font-weight:800;font-size:12.5px;}
  table.lo-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:4px;min-width:480px;}
  table.lo-table th,table.lo-table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--divider);}
  table.lo-table th:first-child,table.lo-table td:first-child{text-align:left;}
  table.lo-table th{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);}
  table.lo-table td.mono{font-family:"SF Mono","Roboto Mono",Consolas,monospace;}
  table.lo-table tr.total-row td{font-weight:800;border-top:2px solid var(--ink);border-bottom:none;}
  table.lo-table tr.vegan-row td{background:var(--vegan-tint);}
  table.lo-table tbody tr{animation:loFadeIn .4s ease both;}
  .lo-empty{color:var(--ink-soft);font-size:13.5px;padding:30px 10px;text-align:center;}
  .lo-setup-days{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}
  @media(max-width:700px){.lo-setup-days{grid-template-columns:1fr;}}
  .lo-setup-days textarea{min-height:110px;resize:vertical;font-size:13.5px;}
  .lo-setup-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;}
  .lo-status-msg{margin-top:12px;font-size:13px;font-weight:600;}
  .lo-status-msg.ok{color:var(--good);}.lo-status-msg.err{color:var(--warn);}
  .lo-hint{font-size:11.5px;color:var(--ink-soft);margin-top:6px;}
  .lo-hr-gate{max-width:360px;margin:40px auto;text-align:center;}
  .lo-hr-gate-icon{font-size:32px;margin-bottom:6px;}
  .lo-hr-gate input{text-align:center;}
  .lo-hr-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-soft);margin-bottom:8px;}
  .lo-hr-meta b{color:var(--ink);}
  .lo-hr-log-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:14px;}
  @media(max-width:900px){.lo-hr-log-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:560px){.lo-hr-log-grid{grid-template-columns:1fr;}}
  .lo-hr-log-card .lo-field{margin-bottom:10px;}
  .lo-hr-log-card textarea{min-height:54px;resize:vertical;font-size:13px;}
  .lo-subtabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1.5px solid var(--line);padding-bottom:10px;}
  .lo-subtab{border:none;background:transparent;color:var(--ink-soft);font-weight:700;font-size:13.5px;padding:8px 4px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:color .3s ease,border-color .3s ease;}
  .lo-subtab.active{color:var(--accent);border-bottom-color:var(--accent);}
  .lo-subtab:hover:not(.active){color:var(--ink);}
  .lo-day-setup-row{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:14px 16px;}
  .lo-day-setup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .lo-day-setup-header strong{font-size:13px;text-transform:uppercase;letter-spacing:.04em;}
  .lo-roster-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;background:var(--good-tint);color:var(--good);border:1px solid var(--good);border-radius:999px;padding:3px 10px;animation:loBadgePop .5s cubic-bezier(.2,.8,.2,1) both;}
  .lo-anon-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;background:var(--skip-tint);color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:2px 8px;}
  .lo-feedback-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:14px 16px;margin-bottom:10px;animation:loFadeUp .4s cubic-bezier(.2,.8,.2,1) both;}
  .lo-feedback-card .fb-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
  .lo-feedback-card .fb-day{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);}
  .lo-feedback-card .fb-meta{font-size:11.5px;color:var(--ink-soft);}
  .lo-feedback-card .fb-body{font-size:13.5px;color:var(--ink);line-height:1.5;margin-bottom:6px;}
  .lo-feedback-card .fb-comments{font-size:12.5px;color:var(--ink-soft);font-style:italic;}
  .lo-checkbox-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft);margin-bottom:14px;cursor:pointer;user-select:none;}
  .lo-checkbox-row input{width:16px;height:16px;accent-color:var(--accent);}
  .lo-company-swatch{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle;box-shadow:0 0 0 2px var(--swatch-ring) inset;}
  .lo-badge-anim{animation:loBadgePop .45s cubic-bezier(.2,.8,.2,1) both;}
  @media(max-width:1024px){
    .lo-topbar{flex-direction:column;align-items:flex-start;}
    .lo-topbar>div:last-child{align-items:flex-start!important;width:100%;}
    .lo-tabs{display:none;}
    .lo-dash-controls>select,.lo-dash-controls>button{flex:1 1 auto;min-width:140px;}
    .lo-subtabs{justify-content:flex-start;}
    .lo-subtabs .lo-btn-link{margin-left:0!important;}
  }
  @media(max-width:480px){
    .lo-brand-title{font-size:19px;}.lo-logo-ninani{font-size:18px;}
    .lo-submit-bar{flex-direction:column;align-items:stretch;gap:8px;}
    .lo-submit-bar .lo-btn{width:100%;}
    .lo-card{padding:16px;}
    .lo-setup-actions>.lo-btn{width:100%;}
    .lo-brand-sub{display:flex;flex-direction:column;gap:0;}
    .lo-sub-sep{display:none;}
  }  /* ---------- toasts ---------- */
  /* ---------- add-to-home-screen banner (fixed, sits above the bottom nav on mobile) ---------- */
  .lo-install-banner{position:fixed;left:50%;transform:translateX(-50%) translateY(8px);bottom:16px;z-index:41;
    display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(calc(100% - 32px),480px);padding:11px 14px;
    background:var(--glass-bg-2);
    border:1px solid var(--glass-border);border-radius:14px;box-shadow:0 8px 24px var(--shadow-color);
    opacity:0;transition:opacity .3s ease,transform .3s ease;}
  .lo-install-banner.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .lo-install-text{font-size:13px;color:var(--ink);flex:1;min-width:0;}
  .lo-install-icon{display:inline-block;transform:scaleY(1.3);}
  .lo-install-close{background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:4px;flex:none;display:flex;}
  .lo-install-close:hover{color:var(--ink);}

  .lo-toast-host{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(92vw,420px);}
  .lo-toast{pointer-events:auto;display:flex;align-items:center;gap:10px;background:rgba(20,20,22,.92);color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px 12px 10px 14px;box-shadow:0 12px 30px rgba(0,0,0,.4);opacity:0;transform:translateY(14px) scale(.96);transition:opacity .25s ease,transform .25s cubic-bezier(.2,.8,.2,1);font-size:13.5px;width:100%;}
  .lo-toast.show{opacity:1;transform:translateY(0) scale(1);}
  .lo-toast.leave{opacity:0;transform:translateY(6px) scale(.98);}
  .lo-toast-icon{flex:none;font-size:14px;}
  .lo-toast.err .lo-toast-icon{color:#FF6B6B;}
  .lo-toast.warn .lo-toast-icon{color:#FFC24B;}
  .lo-toast:not(.err):not(.warn) .lo-toast-icon{color:#3ECB7A;}
  .lo-toast-msg{flex:1;line-height:1.4;}
  .lo-toast-close{flex:none;background:none;border:none;color:rgba(255,255,255,.55);cursor:pointer;font-size:11px;padding:4px;}
  .lo-toast-close:hover{color:#fff;}

  /* ---------- confirm modal ---------- */
  .lo-modal-overlay{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .2s ease;}
  .lo-modal-overlay.show{opacity:1;}
  .lo-modal{width:100%;max-width:380px;background:var(--glass-bg-2);border:1px solid var(--glass-border);border-radius:18px;padding:22px 22px 18px;box-shadow:0 20px 50px var(--shadow-color);transform:translateY(10px) scale(.97);transition:transform .2s cubic-bezier(.2,.8,.2,1);}
  .lo-modal-wide{max-width:480px;}
  .lo-modal-overlay.show .lo-modal{transform:translateY(0) scale(1);}
  .lo-modal-title{font-weight:800;font-size:16px;color:var(--ink);margin-bottom:8px;}
  .lo-modal-body{font-size:13.5px;color:var(--ink);line-height:1.5;margin-bottom:20px;}
  .lo-modal-body ul{margin:10px 0;padding-left:18px;}
  .lo-modal-body li{margin-bottom:4px;}
  .lo-modal-actions{display:flex;justify-content:flex-end;gap:10px;}
  .lo-modal-actions .lo-btn{padding:9px 16px;font-size:13.5px;}

  /* ---------- bottom nav (mobile) — floating liquid-glass pill ---------- */
  .lo-bottom-nav{display:none;}
  @media(max-width:1024px){
    .lo-bottom-nav{display:flex;position:fixed;left:50%;transform:translateX(-50%);width:min(calc(100% - 32px),420px);bottom:calc(14px + env(safe-area-inset-bottom));z-index:40;justify-content:space-around;align-items:center;
      background:var(--glass-bg-2);
      border:1px solid var(--glass-border);border-radius:999px;
      box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 10%), transparent),
        inset 1.8px 3px 0px -2px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 90%), transparent),
        inset -2px -2px 0px -2px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 80%), transparent),
        inset -3px -8px 1px -6px color-mix(in srgb, var(--c-light,#fff) calc(var(--glass-reflex-light) * 60%), transparent),
        inset -0.3px -1px 4px 0px color-mix(in srgb, var(--c-dark,#000) calc(var(--glass-reflex-dark) * 12%), transparent),
        inset -1.5px 2.5px 0px -2px color-mix(in srgb, var(--c-dark,#000) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 0px 3px 4px -2px color-mix(in srgb, var(--c-dark,#000) calc(var(--glass-reflex-dark) * 20%), transparent),
        inset 2px -6.5px 1px -4px color-mix(in srgb, var(--c-dark,#000) calc(var(--glass-reflex-dark) * 10%), transparent),
        0 14px 36px var(--shadow-color);
      padding:8px 8px;}
    .lo-bnav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--ink-soft);font-size:10.5px;font-weight:700;padding:7px 4px;cursor:pointer;border-radius:999px;transition:color .2s ease,background .2s ease,transform .15s ease;}
    .lo-bnav-item .bnav-icon{font-size:18px;line-height:1;}
    .lo-bnav-item.active{color:var(--ink-on-accent);background:var(--accent);box-shadow:0 4px 14px var(--accent-glow);}
    .lo-bnav-item:active{transform:scale(.94);}
    .lo-wrap{padding-bottom:98px;}
    .lo-submit-bar{position:sticky;bottom:calc(88px + env(safe-area-inset-bottom));z-index:41;}
    .lo-install-banner{bottom:calc(88px + env(safe-area-inset-bottom));}
  }

  /* ---------- initials avatar ---------- */
  .lo-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:10px;font-weight:800;color:var(--ink-on-accent);vertical-align:middle;margin-right:7px;flex:none;}

  /* ---------- themed date/time picker ---------- */
  /* ---------- native select theming ----------
     Modern Chromium (99+) and increasingly other engines support recoloring an
     <option>'s own background/text directly — no custom overlay needed, so this
     can never overlap page content or get trapped in a stacking context: it's
     the browser's own native popup layer, just recolored. Where a browser
     doesn't support option styling, color-scheme (set at the theme root) still
     gives a reasonable dark/light default instead of stark white-on-dark. */
  #lunch-app-root select option{background-color:var(--paper);color:var(--ink);}
  #lunch-app-root select option:checked{background-color:var(--accent-tint);color:var(--accent);}
  #lunch-app-root select option:disabled{color:var(--ink-soft);}

  .lo-dtpicker{position:relative;width:100%;}
  .lo-dtpicker-input{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;width:100%;box-sizing:border-box;font-size:15px;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--input-bg);color:var(--ink);font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease;}
  .lo-dtpicker-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}
  .lo-dtpicker-input .dt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .lo-dtpicker-input .cal-icon{opacity:.7;font-size:14px;flex:none;}
  .lo-dtpop{position:fixed;z-index:55;background:var(--select-panel-bg);border:1px solid var(--glass-border);border-radius:14px;box-shadow:0 16px 40px var(--shadow-color);padding:12px;width:264px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s ease,transform .18s ease;}
  .lo-dtpop.show{opacity:1;transform:translateY(0);pointer-events:auto;}
  .lo-dtpop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
  .lo-dtpop-head button{background:none;border:none;color:var(--ink);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:8px;}
  .lo-dtpop-head button:hover{background:var(--pill-hover);}
  .lo-dtpop-month{font-weight:700;font-size:13px;color:var(--ink);}
  .lo-dtgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
  .lo-dtgrid .dow{font-size:9.5px;color:var(--ink-soft);text-align:center;padding:4px 0;font-weight:700;}
  .lo-dtgrid .day{font-size:12px;text-align:center;padding:6px 0;border-radius:8px;cursor:pointer;color:var(--ink);background:none;border:none;}
  .lo-dtgrid .day:hover{background:var(--pill-hover);}
  .lo-dtgrid .day.sel{background:var(--accent);color:var(--ink-on-accent);font-weight:800;}
  .lo-dtgrid .day.muted{color:var(--ink-soft);opacity:.35;}
  .lo-dtpop-time{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--divider);}
  .lo-dtpop-time select{flex:1;padding:6px;font-size:12.5px;border:1.5px solid var(--line);border-radius:8px;background:var(--input-bg);color:var(--ink);}
  .lo-dtpop-done{width:100%;margin-top:10px;}
