:root{color-scheme:light;--ink: #1f1a17;--muted: #6b625b;--paper: #fbf8f3;--line: #e4dccf;--accent: #8a1f11;--wood: #2e7d32;--fire: #c62828;--earth: #8d6e63;--metal: #b8860b;--water: #1565c0;font-family:system-ui,-apple-system,PingFang SC,Noto Sans CJK SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--paper)}body{margin:0}main{max-width:40rem;margin:0 auto;padding:1rem}h1{color:var(--accent);font-size:1.6rem;margin:.5rem 0 1rem}form label,form legend{display:block;margin-top:.75rem;font-weight:600}fieldset{border:0;padding:0;margin:0}fieldset label{display:inline-flex;gap:.25rem;margin-right:1rem;font-weight:400}input[type=text],input[type=date],input[type=time],input[type=number],input:not([type]){box-sizing:border-box;width:100%;font-size:1rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;background:#fff}[role=listbox]{list-style:none;margin:.25rem 0 0;padding:0;border:1px solid var(--line);border-radius:.5rem;background:#fff}[role=option]{padding:.6rem;cursor:pointer}[role=option]:hover{background:var(--paper)}[role=alert]{color:var(--fire);margin:.25rem 0}button{margin-top:1rem;font-size:1rem;padding:.7rem 1.4rem;border:0;border-radius:.5rem;background:var(--accent);color:#fff}button:disabled{opacity:.6}.pillars{width:100%;border-collapse:collapse;text-align:center;margin:.5rem 0 1rem}.pillars th,.pillars td{border-bottom:1px solid var(--line);padding:.4rem .2rem}.pillars tbody tr:nth-child(2) td,.pillars tbody tr:nth-child(3) td{font-size:1.8rem;font-weight:700}.pillars td.unknown{color:var(--muted);font-size:1rem}.hidden{font-size:.85rem}.el-wood{color:var(--wood)}.el-fire{color:var(--fire)}.el-earth{color:var(--earth)}.el-metal{color:var(--metal)}.el-water{color:var(--water)}.elements,.luck{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}.luck li{display:flex;flex-direction:column;align-items:center;min-width:4.5rem;padding:.4rem;border:1px solid var(--line);border-radius:.5rem;font-size:.8rem}.luck li strong{font-size:1.1rem}.luck li.current{border-color:var(--accent);background:#fff3ef}.correction,.birthplace,.luck-summary,.intro{color:var(--muted)}button.link{background:none;color:var(--accent);padding:.3rem 0;margin-top:0;text-decoration:underline}[role=tablist]{display:flex;gap:.5rem}[role=tab]{margin-top:0;background:#fff;color:var(--ink);border:1px solid var(--line)}[role=tab][aria-selected=true]{background:var(--accent);color:#fff}input[type=password]{box-sizing:border-box;width:100%;font-size:1rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;background:#fff}.notice{color:var(--muted);font-size:.9rem}.profiles{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}button.profile{width:100%;margin-top:0;display:flex;justify-content:space-between;background:#fff;color:var(--ink);border:1px solid var(--line)}.partner{margin-top:1rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.partner p{margin:.25rem 0}.partner button{margin:.5rem .5rem 0 0;padding:.5rem 1rem}.partner label{display:block;margin-top:.5rem;color:var(--muted)}.partner select{box-sizing:border-box;width:100%;font-size:1rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;background:#fff}.chat{display:flex;flex-direction:column}.messages{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.msg{padding:.6rem .8rem;border-radius:.75rem;overflow-wrap:anywhere}.msg-user{align-self:flex-end;max-width:85%;background:#fff3ef}.msg-assistant{background:#fff;border:1px solid var(--line)}.msg p{margin:.4rem 0}.msg h3,.msg h4,.msg h5{margin:.8rem 0 .3rem;color:var(--accent)}.status,.hint{color:var(--muted)}.table-wrap{overflow-x:auto}.table-wrap table{border-collapse:collapse;font-size:.9rem}.table-wrap th,.table-wrap td{border:1px solid var(--line);padding:.3rem .5rem;white-space:nowrap}textarea{box-sizing:border-box;width:100%;font-size:1rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;font-family:inherit}.chats{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}button.chat-row{width:100%;margin-top:0;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"badge who when" "badge preview preview";gap:.1rem .6rem;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line)}.chat-row .badge{grid-area:badge;align-self:center;width:2.6rem;height:2.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff3ef;color:var(--accent);font-weight:700}.chat-row .who{grid-area:who}.chat-row .pillars,.chat-row .when,.chat-row .preview{color:var(--muted);font-size:.85rem}.chat-row .when{grid-area:when}.chat-row .preview{grid-area:preview;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.totals{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.totals li{padding:.4rem .7rem;border:1px solid var(--line);border-radius:.5rem;background:#fff}.admin-profiles{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.admin-profiles li{padding:.6rem .8rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.admin-profiles button{margin-right:.5rem}details.thinking{margin-top:.5rem;color:var(--muted)}details.thinking pre{white-space:pre-wrap;font-family:inherit;font-size:.85rem}.fresh .code{font-family:ui-monospace,monospace;font-size:1.3rem;letter-spacing:.1em;color:var(--accent)}.meta{color:var(--muted);font-size:.8rem}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.5rem;margin:-1rem -1rem .75rem;padding:calc(.5rem + env(safe-area-inset-top)) .75rem .5rem;background:var(--paper);border-bottom:1px solid var(--line)}.topbar-title{flex:1;min-width:0}.topbar h1{font-size:1.15rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-subtitle{margin:0;font-size:.8rem;color:var(--muted)}.topbar-actions{display:flex;gap:.25rem}button.icon{margin:0;padding:.35rem .6rem;font-size:1.3rem;line-height:1;background:none;color:var(--accent)}button.icon.back{font-size:1.8rem;padding:0 .5rem .2rem}main.chat-screen{display:flex;flex-direction:column;height:100dvh;box-sizing:border-box;padding-bottom:0}main.chat-screen .chat{flex:1;min-height:0}main.chat-screen .messages{flex:1;overflow-y:auto;margin:0 -1rem;padding:.5rem 1rem}.msg.bubble-row{display:flex;gap:.5rem;padding:0;max-width:none;background:none;border:0;border-radius:0}.bubble-row.me{flex-direction:column;align-items:flex-end;align-self:stretch}.bubble-row.master{align-items:flex-start}.bubble-row.notice{justify-content:center}.bubble{padding:.55rem .8rem;border-radius:1.1rem;max-width:80%;overflow-wrap:anywhere;line-height:1.55}.bubble-user{background:var(--accent);color:#fff;border-bottom-right-radius:.3rem}.bubble-user .bubble-text{margin:0;white-space:pre-wrap}.bubble-col{display:flex;flex-direction:column;align-items:flex-start;max-width:85%;min-width:0}.bubble-col .bubble{max-width:100%;box-sizing:border-box}.bubble-master{background:#fff;border:1px solid var(--line);border-bottom-left-radius:.3rem}.bubble-master>:first-child{margin-top:0}.bubble-master>:last-child{margin-bottom:0}.avatar{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--accent);color:#fff;font-size:.9rem}.bubble-time{margin:.15rem .3rem 0;font-size:.7rem;color:var(--muted)}.bubble-row.notice .notice{margin:0;padding:.3rem .8rem;border-radius:1rem;background:#efe8dc;font-size:.8rem}.scroll-anchor{height:1px}.composer{display:flex;gap:.5rem;align-items:flex-end;margin:0 -1rem;padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}.composer textarea{flex:1;width:auto;max-height:8rem;resize:none;border-radius:1.2rem;padding:.55rem .9rem}.composer .send{margin:0;padding:.6rem 1.1rem;border-radius:1.2rem}.chat-error{display:flex;align-items:center;gap:.75rem;padding:.25rem 0}.chat-error button{margin:0;padding:.4rem 1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.drawer-root{position:fixed;inset:0;z-index:50}.scrim{position:absolute;inset:0;background:#00000059;animation:fade-in .2s ease-out}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(88vw,26rem);box-sizing:border-box;overflow-y:auto;padding:calc(.75rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--paper);box-shadow:-4px 0 16px #00000026;animation:slide-in .22s ease-out}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-head h2{margin:0;font-size:1.1rem}nav.menu{display:flex;flex-direction:column;gap:.25rem;margin-top:1.25rem;padding-top:.75rem;border-top:1px solid var(--line)}.menu-user{margin:0 0 .25rem;color:var(--muted)}button.menu-item{margin:0;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line)}@keyframes slide-in{0%{transform:translate(100%)}to{transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.drawer,.scrim{animation:none}}.thinking{display:flex;flex-direction:column;gap:.2rem}.thinking-dots{display:inline-flex;gap:.3rem;height:.9rem;align-items:center}.thinking-dots span{width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);opacity:.25;animation:thinking-pulse 1.2s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}.thinking .thinking-phrase{margin:0;animation:fade-in .4s ease-out}.thinking-meta{margin:0;font-size:.75rem;color:var(--muted)}.retry-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0;padding:.5rem .75rem;border-radius:.75rem;background:#fff3e0;border:1px solid #f0d9b5}.retry-banner p{flex:1 1 100%;margin:0;font-size:.9rem}.retry-banner button{margin:0;padding:.4rem 1rem}.retry-banner button+button{background:#fff;color:var(--ink);border:1px solid var(--line)}@keyframes thinking-pulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-.2rem)}}@media(prefers-reduced-motion:reduce){.thinking-dots span,.thinking .thinking-phrase{animation:none;opacity:.8}}.composer{flex-wrap:wrap}.composer-photos{display:flex;flex:1 1 100%;gap:.5rem;margin:0;padding:0;list-style:none;overflow-x:auto}.composer-photos li{position:relative;flex:none}.composer-photos img{display:block;width:4rem;height:4rem;object-fit:cover;border-radius:.6rem;border:1px solid var(--line)}.composer-photos .remove{position:absolute;top:-.4rem;right:-.4rem;width:1.4rem;height:1.4rem;margin:0;padding:0;border-radius:50%;font-size:.9rem;line-height:1.4rem;background:var(--ink);color:#fff}.composer-tools{display:flex;gap:.25rem;align-self:center}.composer-tools .pick{display:grid;place-items:center;width:2.4rem;height:2.4rem;margin:0;border-radius:50%;font-size:1.25rem;font-weight:400;cursor:pointer;background:#fff;border:1px solid var(--line)}.composer-tools .pick:has(input:disabled){opacity:.4;cursor:default}.bubble-photos{display:grid;grid-template-columns:repeat(2,minmax(0,7rem));gap:.3rem;margin-bottom:.3rem}.bubble-photos .photo{display:block;margin:0;padding:0;border:0;border-radius:.6rem;overflow:hidden;background:none}.bubble-photos img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.photo-viewer{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:env(safe-area-inset-top) .5rem env(safe-area-inset-bottom);background:#000000e0}.photo-viewer img{max-width:100%;max-height:90dvh;object-fit:contain}.photo-viewer button{position:absolute;top:calc(.75rem + env(safe-area-inset-top));right:.75rem;color:#fff;font-size:1.8rem}.photo-error{flex:1 1 100%;margin:.25rem 0}.composer textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #8a1f112e}.composer textarea:focus-visible{outline:none}.share-invite{margin:.5rem 0;padding:.75rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.share-invite .code{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:.08em;color:var(--accent)}.share-invite .link{margin:.25rem 0 0;font-size:.85rem;color:var(--muted);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.share-actions{display:flex;flex-wrap:wrap;gap:.5rem}.share-actions button{margin-top:.5rem;padding:.5rem 1rem}.invites .quota{margin:.25rem 0 .5rem}.invite-list{display:flex;flex-direction:column;gap:.4rem;margin:1rem 0 0;padding:0;list-style:none}.invite-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.invite-list .code{font-weight:700;letter-spacing:.05em}.invite-list .state{flex:1;font-size:.85rem;color:var(--muted)}.invite-list button{margin:0;padding:.35rem .8rem;font-size:.9rem}.allowance{margin:.75rem 0;padding:.75rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.allowance h3{margin:0 0 .25rem;font-size:1rem}.allowance p{margin:.25rem 0}.allowance button{margin:.5rem .5rem 0 0;padding:.45rem .9rem}.install-popover{position:fixed;top:calc(3.6rem + env(safe-area-inset-top));right:.5rem;z-index:40;width:min(22rem,calc(100vw - 1rem));max-height:calc(100dvh - 5rem - env(safe-area-inset-top));box-sizing:border-box;overflow-y:auto;padding:.9rem 1rem;border:1px solid var(--line);border-radius:1rem;background:#fff;box-shadow:0 8px 24px #0000002e;animation:fade-in .18s ease-out}.install-popover:before{content:"";position:absolute;top:-.45rem;right:3.4rem;width:.8rem;height:.8rem;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}.install-guide h2{margin:0 0 .25rem;font-size:1.1rem}.install-guide .steps,.install-guide .in-app ol{margin:.5rem 0;padding-left:1.3rem;line-height:1.6}.install-guide .note,.install-guide .in-app{margin:.5rem 0;padding:.5rem .75rem;border-radius:.6rem;background:#fff3e0}.install-guide .in-app p{margin:0}.install-guide [role=tablist],.install-guide .prompt button{margin-top:.5rem}button.icon.install{font-size:1.4rem}.notify-toggle{margin-top:1rem;padding:.75rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.notify-toggle h3{margin:0 0 .25rem;font-size:1rem}.notify-toggle p{margin:.25rem 0}.notify-toggle button{margin:.5rem .5rem 0 0;padding:.45rem .9rem}.notify-toggle button+button{background:#fff;color:var(--ink);border:1px solid var(--line)}.update-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .75rem;padding:.5rem .75rem;border:1px solid var(--accent);border-radius:.5rem;background:#fff7f2;color:var(--ink)}.update-banner button{flex:none;padding:.4rem .9rem}main.chat-screen .update-banner{flex:none}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.chips button{margin-top:0;padding:.35rem .8rem;font-size:.95rem;background:#fff;color:var(--ink);border:1px solid var(--line)}.chips button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.chat-row .relation{margin-right:.4em;color:var(--muted);font-weight:400}.home-tabs{margin:0 0 .75rem}.home-tabs [role=tab]{flex:1;padding:.5rem .75rem}.home-tabs .badge{display:inline-block;min-width:1.2em;margin-left:.4rem;padding:0 .35em;border-radius:1em;background:var(--fire);color:#fff;font-size:.8rem;line-height:1.4}.friends section{margin:0 0 1.25rem}.friends ul{list-style:none;padding:0;margin:.5rem 0}.friends li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.friends li button{margin-top:0;padding:.4rem .8rem;font-size:.95rem}.friends li button+button{background:#fff;color:var(--ink);border:1px solid var(--line)}.friend-finder input{box-sizing:border-box;width:100%;font-size:1rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;background:#fff}.friend-chat-start select{display:block;width:100%;margin:.25rem 0 .75rem;padding:.5rem;font-size:1rem}.friend-chat-start button{margin-right:.5rem}.friend-chat-start button+button{background:#fff;color:var(--ink);border:1px solid var(--line)}
