/* Luna's Apps house style: iOS-like, system font, deep oxblood ground with a warm red accent. */
:root{
  --bg:#170608; --glow:#5B1019; --cell:#2A0E13; --cell-2:#341219; --sep:#4A1F27;
  --fg:#F8EDEF; --fg-2:#CDA9AF; --fg-3:#9C767D;
  --accent:#FF5B4F; --accent-ink:#1A0507; --done:#30D158; --done-ink:#03230D;
  --g-ex:#30D158; --g-good:#FFD60A; --g-fair:#FF9F0A; --g-poor:#8E7C80; --g-ink:#1A0507;
  --shadow:rgba(0,0,0,.55);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,Arial,sans-serif;
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",Roboto,Arial,sans-serif;
  color-scheme:dark;
}
@media (prefers-color-scheme: light){:root{
  --bg:#F6EDEE; --glow:#FBD9DC; --cell:#FFFFFF; --cell-2:#FBF4F5; --sep:#EADADD;
  --fg:#1F0A0D; --fg-2:#6E4E54; --fg-3:#9A7C81; --accent:#D92B3A; --accent-ink:#FFFFFF; --done:#248A3D; --done-ink:#FFFFFF;
  --g-ex:#1E8E3E; --g-good:#B98900; --g-fair:#C25E00; --g-poor:#8A7478; --g-ink:#FFFFFF; --shadow:rgba(80,10,20,.18); color-scheme:light}}

*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--fg);font:17px/1.35 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;
  padding-top:env(safe-area-inset-top,0px)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.app{position:relative;height:100%;max-width:460px;margin:0 auto;display:flex;flex-direction:column;
  background:radial-gradient(120% 50% at 100% 0%,var(--glow) 0%,transparent 60%),var(--bg)}
.screen{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 calc(32px + env(safe-area-inset-bottom,0px))}
.screen.with-tabs{padding-bottom:32px}
.nav{position:sticky;top:0;z-index:5;height:44px;display:flex;align-items:center;justify-content:space-between;margin:0 -16px;padding:0 16px;transition:background .2s}
.nav.scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:0 .5px 0 var(--sep)}
.nav .mini{font-weight:600;opacity:0;transition:opacity .2s}
.nav.scrolled .mini{opacity:1}
.lnk{all:unset;cursor:pointer;color:var(--accent);font-size:17px;display:inline-flex;align-items:center;gap:3px;padding:6px 0;text-decoration:none}
:is(.lnk,.btn,.chip,.tab,.tile,.sw,.dish,.card,.seg button,.score button):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1{font-family:var(--display);font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.4px;margin:4px 0 2px;text-wrap:balance}
h2{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.2px;margin:0 0 4px;text-wrap:balance}
.sub{color:var(--fg-2);font-size:15px;margin:0 0 18px}
.label{font-size:13px;letter-spacing:.2px;text-transform:uppercase;color:var(--fg-3);margin:24px 4px 8px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.label .lnk{font-size:15px;text-transform:none;letter-spacing:0;padding:0}
.group{background:var(--cell);border-radius:12px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:.5px solid var(--sep);min-width:0}
.row:first-child{border-top:none}
.row .grow{flex:1;min-width:0}
.row .t{font-size:17px;overflow-wrap:anywhere}
.row .m{font-size:13px;color:var(--fg-2);overflow-wrap:anywhere}
.foot{font-size:13px;color:var(--fg-3);margin:8px 4px 0;line-height:1.4}
.btn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;border-radius:14px;
  background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:17px;padding:12px 16px;text-align:center}
.btn.sec{background:var(--cell);color:var(--accent)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.4;cursor:default}
.btns{display:grid;gap:10px;margin-top:14px}
.btns.two{grid-template-columns:1fr 1fr}
.field{display:flex;align-items:center;background:var(--cell);border-radius:12px;padding:0 14px}
.field input{flex:1;min-width:0;border:0;background:transparent;color:var(--fg);font:inherit;font-size:17px;padding:13px 0;outline:none}
.field input::placeholder{color:var(--fg-3)}
.field .lnk{padding-left:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{all:unset;box-sizing:border-box;cursor:pointer;font-size:15px;line-height:1.25;padding:9px 13px;border-radius:999px;background:var(--cell);color:var(--fg);border:1px solid var(--sep);max-width:100%;overflow-wrap:anywhere}
.chip[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chip.no[aria-pressed="true"]{background:var(--cell-2);color:var(--fg);border-color:var(--accent);text-decoration:line-through;text-decoration-color:var(--accent)}
.seg{display:flex;background:var(--cell-2);border-radius:9px;padding:2px;gap:2px;overflow-x:auto}
.seg button{all:unset;cursor:pointer;flex:1;text-align:center;font-size:13px;font-weight:600;padding:7px 10px;border-radius:7px;color:var(--fg);white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.sw{all:unset;cursor:pointer;flex:none;width:51px;height:31px;border-radius:16px;background:var(--cell-2);position:relative;transition:background .2s;border:1px solid var(--sep);box-sizing:border-box}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:25px;height:25px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3);transition:transform .2s}
.sw[aria-checked="true"]{background:var(--g-ex);border-color:var(--g-ex)}
.sw[aria-checked="true"]::after{transform:translateX(20px)}
.spin{width:44px;height:44px;border-radius:50%;border:4px solid var(--cell-2);border-top-color:var(--accent);animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.notice{background:var(--cell);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--fg-2);margin-top:12px}
.demo{background:var(--cell-2);border-radius:10px;padding:8px 12px;font-size:13px;color:var(--fg-2);margin:4px 0 12px}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translate(-50%,160%);transition:transform .25s ease,opacity .25s;opacity:0;pointer-events:none;
  background:var(--fg);color:var(--bg);border-radius:14px;padding:12px 14px 12px 16px;display:flex;gap:14px;align-items:center;font-size:15px;z-index:20;max-width:calc(100% - 32px)}
.toast.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.toast button{all:unset;cursor:pointer;font-weight:700;color:var(--accent);padding:4px 8px}
.loading{display:grid;place-items:center;padding:120px 0}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
