:root{--ink:#16323a;--muted:#3e5860;--bg:#eff8f7;--card:#fff;--line:#16323a24;--accent:#1c7c8c;--accent-deep:#0e4c57;--accent-bright:#2fa4b4;--accent-ink:#fff;--citrus:#f0954c;--leaf:#3f9160;--danger:#d97757}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#eaf5f5;--muted:#9fc2c7;--bg:#0e2429;--card:#16343b;--line:#eaf5f524;--accent:#2fa4b4;--accent-deep:#1c7c8c;--accent-bright:#5fc4d1;--accent-ink:#06181b;--citrus:#f0954c;--leaf:#4fae72;--danger:#e08a6e}}:root[data-theme=dark]{--ink:#eaf5f5;--muted:#9fc2c7;--bg:#0e2429;--card:#16343b;--line:#eaf5f524;--accent:#2fa4b4;--accent-deep:#1c7c8c;--accent-bright:#5fc4d1;--accent-ink:#06181b;--citrus:#f0954c;--leaf:#4fae72;--danger:#e08a6e}:root[data-theme=light]{--ink:#16323a;--muted:#3e5860;--bg:#eff8f7;--card:#fff;--line:#16323a24;--accent:#1c7c8c;--accent-deep:#0e4c57;--accent-bright:#2fa4b4;--accent-ink:#fff;--citrus:#f0954c;--leaf:#3f9160;--danger:#d97757}*,:before,:after{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.5 Work Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{max-width:640px;min-height:100svh;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));margin:0 auto}h1,h2,h3{color:var(--ink);margin:0 0 .5rem;font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.25}h1{font-size:1.7rem}h2{font-size:1.25rem}p{color:var(--muted);margin:0 0 .75rem}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:var(--ink);font-size:16px}button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;min-height:44px;padding:0 1rem}button[type=submit],button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button[role=alert],[role=alert]{color:var(--danger)}input,select,textarea{border:1px solid var(--line);background:var(--card);border-radius:10px;width:100%;min-height:44px;padding:.5rem .75rem;display:block}textarea{min-height:88px}input[type=checkbox],input[type=radio]{flex-shrink:0;width:1.25rem;height:1.25rem;min-height:0;padding:0;display:inline-block}:is(label:has(input[type=checkbox]),label:has(input[type=radio])){align-items:center;gap:.5rem;display:flex}label{color:var(--muted);margin:.75rem 0 .25rem;font-size:.85rem;display:block}form>div,form>label{margin-bottom:.25rem}ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}li{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem;display:flex}nav{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}[role=group]{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.chat-layout{flex-wrap:wrap;gap:1.5rem;display:flex}.chat-layout>*{flex:260px;min-width:0}.phrase-large{text-align:center;margin:2rem 0;font-family:Fraunces,Georgia,serif;font-size:3rem;font-weight:600;line-height:1.2}.switch{background:var(--line);border-radius:99px;flex-shrink:0;width:44px;height:26px;min-height:0;padding:0;position:relative}.switch[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .16s;position:absolute;top:3px;left:3px}.switch[aria-pressed=true]:after{transform:translate(18px)}.guest-layout{min-height:calc(100svh - 2rem - env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.guest-layout-body{flex:auto;padding-bottom:4.5rem}.tabbar{border-top:1px solid var(--line);background:var(--card);max-width:640px;padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));z-index:10;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbtn{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px;font-size:.68rem;font-weight:600;display:flex}.tabbtn svg{width:20px;height:20px}.tabbtn.on{color:var(--accent)}.welcome-hero{min-height:calc(100svh - 2rem - env(safe-area-inset-bottom,0px));padding:34px 26px calc(30px + env(safe-area-inset-bottom,0px));background:radial-gradient(120% 90% at 15% 0%, var(--accent) 0%, var(--accent-deep) 46%, var(--ink) 100%);color:#fff;flex-direction:column;justify-content:space-between;margin:-1rem -1rem 0;display:flex}.welcome-hero .brand{font-family:Fraunces,Georgia,serif;font-size:2.6rem;font-style:italic;font-weight:600}.welcome-hero .eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#ffffffb3;margin-bottom:8px;font-family:Work Sans,sans-serif;font-size:.72rem;font-style:normal;font-weight:600;display:block}.welcome-hero p{color:#ffffffe0;max-width:30ch;font-size:.95rem;line-height:1.6}.welcome-hero .go{color:var(--accent-deep);background:#fff;border:0;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:15px 18px;font-size:.98rem;font-weight:700;display:flex}.welcome-hero .install{color:#fff;background:#ffffff24;border:1px solid #fff6;border-radius:14px;width:100%;margin-bottom:10px;padding:13px 18px;font-size:.9rem;font-weight:600}.tiles{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.tile{background:var(--card);border:1px solid var(--line);text-align:left;border-radius:16px;flex-direction:column;justify-content:space-between;gap:20px;height:auto;min-height:90px;padding:14px;display:flex}.tile .ic{width:26px;height:26px;color:var(--accent)}.tile .ic svg{width:22px;height:22px}.tile .lbl{color:var(--ink);font-size:.88rem;font-weight:600;line-height:1.25}.search{background:var(--card);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;margin-bottom:10px;padding:0 12px;display:flex}.search svg{width:16px;height:16px;color:var(--muted);flex:none}.search input{background:0 0;border:0;padding:9px 0}.notice{background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:12px;align-items:center;gap:8px;margin-bottom:10px;padding:10px 12px;font-size:.85rem;display:flex}.notice svg{width:18px;height:18px;color:var(--accent);flex:none}.chiprow{flex-wrap:wrap;gap:7px;margin-bottom:10px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:99px;min-height:0;padding:7px 13px;font-size:.79rem;font-weight:600}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.card{align-items:flex-start;gap:12px;display:flex}.thumb{color:#fff;border-radius:11px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;font-family:Fraunces,Georgia,serif;font-size:1.1rem;font-weight:600;display:flex}.card-main{text-align:left;background:0 0;border:0;flex:auto;min-width:0;min-height:0;padding:0}.card-name{color:var(--ink);margin-bottom:2px;font-size:.94rem;font-weight:700}.card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.75rem;display:flex}.tag{border-radius:99px;padding:2px 7px;font-size:.68rem;font-weight:700}.tag.yes{color:var(--leaf);background:#3f916026}.tag.ask{color:var(--danger);background:#d9775726}.heart-btn{border-radius:9px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;min-height:0;margin-left:auto;padding:0;display:flex}.heart-btn svg{width:16px;height:16px;color:var(--muted)}.heart-btn[aria-pressed=true] svg{color:var(--danger);fill:var(--danger)}.note{color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:11px;margin-bottom:10px;padding:10px 12px;font-size:.82rem;line-height:1.5}.hero{color:#fff;border-radius:16px;align-items:flex-end;height:150px;margin-bottom:12px;padding:12px;font-family:Fraunces,Georgia,serif;font-size:1.3rem;font-weight:600;display:flex;position:relative;overflow:hidden}.hero .over{text-shadow:0 2px 10px #00000059;position:relative}.hero:after{content:"";background:linear-gradient(#0000 40%,#00000073);position:absolute;inset:0}.rows{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.row{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;font-size:.86rem;display:flex}.row .k{color:var(--muted)}.row .v{text-align:right;font-weight:600}.krow{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:12px 14px}.krow .big{letter-spacing:.01em;font-size:1.05rem;font-weight:700}.krow .small{color:var(--muted);margin-top:2px;font-size:.78rem}.pickbox{background:var(--card);border:1px dashed var(--line);border-radius:12px;margin-bottom:12px;padding:11px 13px;font-size:.83rem}.pickbox b{text-transform:uppercase;letter-spacing:.08em;color:var(--citrus);margin-bottom:3px;font-size:.7rem;display:block}.actions{gap:8px;margin-bottom:14px;display:flex}.btn{border:0;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;padding:13px;font-size:.86rem;font-weight:700;display:flex}.btn svg{width:18px;height:18px}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}.btn.ghost[aria-pressed=true]{color:var(--danger)}.btn.icon{flex:0 0 52px}.reflink{color:var(--muted);margin-bottom:14px;font-size:.76rem}.linkbtn{color:var(--accent);background:0 0;border:0;align-items:center;gap:6px;width:auto;min-height:0;padding:0;font-size:.82rem;font-weight:700;display:inline-flex}.linkbtn svg{width:16px;height:16px}.gcards{flex-direction:column;gap:10px;display:flex}.gcard{background:var(--card);border:1px solid var(--line);text-align:left;border-radius:15px;width:100%;min-height:0;padding:15px}.gcard .eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--accent);margin-bottom:5px;font-size:.68rem;font-weight:700}.gcard h3{margin-bottom:4px;font-size:1rem}.gcard p{color:var(--muted);margin:0;font-size:.8rem}.phrase-card{text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:0;display:flex}.phrase-card .en{color:var(--muted);font-size:.78rem}.phrase-card .kr{margin-top:2px;font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-weight:600}.phrase-card svg{width:18px;height:18px;color:var(--muted);flex-shrink:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chatlog{flex-direction:column;gap:9px;margin:0;padding-bottom:10px;list-style:none;display:flex}.bubble{border-radius:16px;max-width:76%;padding:10px 13px;font-size:.86rem;line-height:1.45}.bubble.host{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}.bubble.me{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.composer{align-items:center;gap:8px;margin-top:10px;display:flex}.composer input{border-radius:99px;flex:auto}.sendbtn{background:var(--accent);width:44px;height:44px;min-height:0;color:var(--accent-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.sendbtn svg{width:18px;height:18px}.srow{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 2px;display:flex}.srow .lbl{font-size:.88rem;font-weight:600}.srow .desc{color:var(--muted);margin-top:2px;font-size:.75rem}.srow-group{flex-wrap:wrap;gap:7px;display:flex}.dangerbtn{border:1px solid var(--danger);width:100%;color:var(--danger);background:0 0;border-radius:12px;margin-top:16px;font-size:.85rem;font-weight:700}.empty{text-align:center;color:var(--muted);padding:30px 10px;font-size:.85rem}.empty b{color:var(--ink);margin-bottom:4px;font-family:Fraunces,Georgia,serif;font-size:1.05rem;display:block}.appbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.appbar h2{margin:0;font-size:1.18rem}.appbar .sub{color:var(--muted);margin-top:2px;font-size:.74rem;font-weight:500}.iconbtn{border:1px solid var(--line);background:var(--card);border-radius:11px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;min-height:0;padding:0;display:flex}.iconbtn svg{width:17px;height:17px}.chip.halal[aria-pressed=true]{background:var(--leaf);border-color:var(--leaf);color:#fff}.map{border:1px solid var(--line);background:radial-gradient(120% 100% at 20% 0,#bfe3de 0%,#8fcbc4 55%,#5fafae 100%);border-radius:16px;height:190px;margin-bottom:10px;position:relative;overflow:hidden}:root[data-theme=dark] .map{background:radial-gradient(120% 100% at 20% 0,#144049 0%,#0e343d 55%,#0a272e 100%)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .map{background:radial-gradient(120% 100% at 20% 0,#144049 0%,#0e343d 55%,#0a272e 100%)}}.pin{border:2px solid #fff;border-radius:50% 50% 50% 0;width:26px;height:26px;min-height:0;padding:0;position:absolute;transform:translate(-50%,-100%)rotate(-45deg);box-shadow:0 3px 8px #00000040}.pin span{color:#fff;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;inset:0;rotate:45deg}.toastwrap{pointer-events:none;z-index:40;justify-content:center;display:flex;position:fixed;bottom:84px;left:0;right:0}.toast{background:var(--ink);color:#fff;opacity:0;border-radius:99px;padding:10px 16px;font-size:.8rem;font-weight:600;transition:opacity .18s,transform .18s;transform:translateY(8px);box-shadow:0 10px 25px #0000004d}.toast.show{opacity:1;transform:translateY(0)}.backdrop{opacity:0;pointer-events:none;z-index:45;background:#0a191d66;transition:opacity .18s;position:fixed;inset:0}.backdrop.show{opacity:1;pointer-events:auto}.sheet{background:var(--bg);border-top:1px solid var(--line);max-width:640px;padding:18px 18px calc(20px + env(safe-area-inset-bottom,0px));z-index:46;border-radius:20px 20px 0 0;max-height:74vh;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -18px 40px #00000040}.sheet .grabber{background:var(--line);border-radius:99px;width:38px;height:4px;margin:0 auto 12px}.stamp{color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:9px;margin-top:10px;padding:7px 10px;font-size:.74rem;display:inline-block}.seg{background:var(--card);border:1px solid var(--line);border-radius:11px;gap:3px;padding:3px;display:flex}.seg button{background:0 0;border:0;border-radius:8px;flex:1;min-height:0;padding:8px;font-size:.78rem;font-weight:700}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.quick{flex-wrap:wrap;gap:7px;margin-bottom:8px;display:flex}.qchip{border:1px solid var(--accent);color:var(--accent);background:0 0;border-radius:99px;min-height:0;padding:7px 12px;font-size:.78rem;font-weight:600}
