:root{--bg: #0b1014;--surface: #121a21;--surface-hi: #18232b;--stroke: rgba(255, 255, 255, .07);--teal: #2f9bb3;--teal-deep: #227c92;--gold: #c9a15e;--text: #e9eef2;--sub: #8c9ba7;--green: #2fae76;--red: #c4574e;--serif: "Iowan Old Style", Palatino, Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:#070b0e;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--bg);position:relative}.app{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.scroll{padding:12px 16px calc(96px + env(safe-area-inset-bottom))}.screen-pad{padding:18px 16px calc(24px + env(safe-area-inset-bottom))}h1,h2,.serif{font-family:var(--serif);font-weight:900;letter-spacing:-.02em;margin:0}h1{font-size:30px;line-height:1.05}h2{font-size:26px;line-height:1.1}.lede{color:var(--sub);font-size:14px;line-height:1.45;margin:6px 0 0}.micro{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);margin:0}.micro.teal{color:var(--teal)}.micro.green{color:var(--green)}.card{background:var(--surface);border:1px solid var(--stroke);border-radius:18px;padding:16px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:10px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:14px 16px;border:0;border-radius:14px;background:linear-gradient(180deg,var(--teal),var(--teal-deep));color:#fff;font-weight:800;font-size:16px}.btn:disabled{opacity:.45}.btn.gold{background:var(--gold);color:var(--bg)}.btn.ghost{background:var(--surface);color:var(--sub);border:1px solid var(--stroke);width:auto;min-width:52px;min-height:52px}.btn.link{background:transparent;color:var(--teal);min-height:44px;font-size:14px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:12px;font-weight:700;color:var(--sub)}.field input,.field textarea{width:100%;min-height:52px;border-radius:14px;border:1px solid var(--stroke);background:var(--surface-hi);padding:12px 14px;font-size:16px}.field textarea{min-height:96px;resize:vertical}.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--surface-hi);padding:4px;border-radius:14px}.seg button{min-height:44px;border:0;border-radius:11px;background:transparent;color:var(--sub);font-weight:800}.seg button.on{background:var(--surface);color:var(--text)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{text-align:left;min-height:88px;padding:12px;border-radius:16px;border:1px solid var(--stroke);background:var(--surface)}.tile.on{border-color:var(--teal);background:#2f9bb329}.tile strong{display:block;font-family:var(--serif);font-size:15px}.tile span{display:block;margin-top:4px;color:var(--sub);font-size:11px;line-height:1.3}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.chip{flex:0 0 auto;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--stroke);background:var(--surface);color:var(--text);font-size:13px;font-weight:700}.chip.on{background:var(--teal);border-color:var(--teal);color:var(--bg)}.tabbar{position:fixed;left:50%;transform:translate(-50%);width:min(480px,100%);bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px 8px calc(8px + env(safe-area-inset-bottom));background:#0b1014f0;border-top:1px solid var(--stroke);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5}.tabbar a{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--sub);font-size:10px;font-weight:800;letter-spacing:.3px}.tabbar a.active{color:var(--teal)}.tabbar svg{width:20px;height:20px}.logo{width:72px;height:72px;border-radius:18px;display:block}.belt{display:flex;gap:8px}.belt i{width:26px;height:8px;border-radius:2px;display:block;box-shadow:inset 0 0 0 .5px #0006}.method{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--stroke)}.mark{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:10px;color:var(--gold);background:#c9a15e1a;border:1px solid rgba(201,161,94,.35);font-family:var(--serif);font-weight:900}.dots{display:flex;gap:6px;justify-content:center;padding-top:8px}.dots i{height:7px;border-radius:99px;background:#ffffff1f;width:7px;display:block}.dots i.on{width:22px;background:var(--gold)}.footer-bar{position:sticky;bottom:0;display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--stroke)}.goal-pills{display:flex;gap:8px}.goal-pills button{flex:1;min-height:48px;border-radius:12px;border:1px solid var(--stroke);background:var(--surface);font-family:var(--serif);font-size:17px;font-weight:800}.goal-pills button.on{background:var(--gold);color:var(--bg);border-color:var(--gold)}.ring{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold) calc(var(--p) * 1%),rgba(255,255,255,.08) 0)}.ring span{width:44px;height:44px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-family:var(--serif);font-weight:800}.stat{flex:1;text-align:center;padding:12px 6px}.stat b{display:block;font-family:var(--serif);font-size:20px}.stat small{color:var(--sub);font-size:11px;font-weight:700}.quote{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.35;margin:8px 0}.bubble{background:var(--surface-hi);border-radius:18px;padding:15px;border:1px solid rgba(255,255,255,.1)}.choice{width:100%;text-align:left;min-height:52px;padding:12px 14px;border-radius:14px;border:1px solid var(--stroke);background:var(--surface);font-size:14px;line-height:1.35}.grade{display:flex;gap:8px}.grade button{flex:1;min-height:48px;border-radius:12px;border:1px solid var(--stroke);background:var(--surface);font-size:13px;font-weight:800}.bar{height:6px;border-radius:99px;background:#ffffff14;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--green))}.err{color:var(--red);font-size:13px;font-weight:700}.ok{color:var(--green);font-size:13px;font-weight:700}.toast{position:fixed;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--surface-hi);border:1px solid rgba(201,161,94,.45);color:var(--text);border-radius:999px;padding:10px 16px;font-size:13px;font-weight:800;z-index:6;max-width:calc(100% - 32px)}.chat{display:flex;flex-direction:column;min-height:100dvh;padding-top:env(safe-area-inset-top)}.chat-log{flex:1;padding:12px 16px;display:flex;flex-direction:column;gap:10px}.msg{max-width:88%;padding:12px 14px;border-radius:16px;line-height:1.4}.msg.them{background:var(--surface-hi);align-self:flex-start}.msg.me{background:#2f9bb333;border:1px solid rgba(47,155,179,.35);align-self:flex-end}.composer{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--stroke);background:var(--bg)}.composer input{flex:1;min-height:48px;border-radius:14px;border:1px solid var(--stroke);background:var(--surface);padding:0 12px;font-size:16px}.composer button{min-width:72px;min-height:48px;border:0;border-radius:14px;background:var(--teal);color:#fff;font-weight:800}.back{min-height:44px;border:0;background:transparent;color:var(--sub);font-weight:800;padding:0}.pill{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;background:#2f9bb31f;color:var(--teal);border:1px solid rgba(47,155,179,.4);font-size:12px;font-weight:800}.model{padding:13px;border-radius:13px;background:#2fae760f;border:1px solid rgba(47,174,118,.3);font-family:var(--serif);line-height:1.45}
