:root{--paper:#f4eee2;--paper-2:#efe7d8;--card:#fbf8f1;--ink:#241f1a;--muted:#7c7264;--faint:#a99e8c;--line:#e4d9c6;--green:#2f4a3d;--green-2:#3c5d4d;--sage:#dce6da;--sage-line:#bcd0bb;--ochre:#bf8a3c;--ochre-soft:#f0e2c8;--rust:#a8492f;--shadow:0 1px 2px rgba(36,31,26,.04),0 8px 24px rgba(36,31,26,.06);--r:16px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:Hanken Grotesk,-apple-system,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow:hidden}.serif{font-family:Fraunces,Georgia,serif}.app{height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:18px;padding:14px 26px;border-bottom:1px solid var(--line);background:#f4eee2d9}.brand{display:flex;align-items:center;gap:11px;font-weight:600}.mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(150deg,var(--green),var(--green-2));color:#f4eee2;font-family:Fraunces,serif;font-size:18px;box-shadow:var(--shadow)}.brand .name{font-family:Fraunces,serif;font-size:20px}.brand .name i{font-style:normal;color:var(--ochre)}.spacer{flex:1}.membership{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--green);background:var(--sage);border:1px solid var(--sage-line);padding:6px 12px;border-radius:999px;font-weight:600}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #2f4a3d26}.main{flex:1;display:grid;grid-template-columns:1.05fr .95fr;min-height:0}@media (max-width:920px){.main{grid-template-columns:1fr}.plan{display:none}}.chat{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}.chat-scroll{flex:1;overflow-y:auto;padding:30px 30px 12px}.msg{display:flex;margin-bottom:18px;gap:11px}.msg .who{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:13px;font-weight:700;margin-top:2px}.msg.bot .who{background:linear-gradient(150deg,var(--green),var(--green-2));color:#f4eee2;font-family:Fraunces,serif}.msg.me{flex-direction:row-reverse}.msg.me .who{background:var(--ochre-soft);color:var(--ochre);border:1px solid var(--line)}.bubble{max-width:86%;font-size:15px;line-height:1.6;white-space:pre-wrap}.msg.me .bubble{background:var(--sage);border:1px solid var(--sage-line);padding:11px 15px;border-radius:15px 15px 4px;color:#27352c}.bubble b{color:var(--green)}.tool-chip{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);background:var(--card);border:1px solid var(--line);padding:7px 13px;border-radius:999px;margin-bottom:14px;box-shadow:var(--shadow)}.spin{width:13px;height:13px;border-radius:50%;border:2px solid var(--sage-line);border-top-color:var(--green);animation:spin .7s linear infinite}.tool-chip.done .spin{border-color:var(--green);animation:none}@keyframes spin{to{transform:rotate(360deg)}}.composer{padding:14px 22px 20px;border-top:1px solid var(--line)}.box{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px 6px 6px 16px;box-shadow:var(--shadow)}.box input{flex:1;border:0;background:transparent;font:inherit;font-size:15px;color:var(--ink);outline:none;padding:9px 0}.send{width:38px;height:38px;border-radius:10px;border:0;cursor:pointer;background:linear-gradient(150deg,var(--green),var(--green-2));color:#f4eee2;font-size:16px;display:grid;place-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin:4px 0 6px;overflow:hidden}.cap{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);font-weight:600}.cap .ico{color:var(--ochre)}.card .body{padding:6px 16px 14px}.stack-item{padding:13px 0;border-bottom:1px solid var(--line)}.stack-item:last-child{border-bottom:0}.si-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.si-name{font-family:Fraunces,serif;font-size:17px;font-weight:500}.si-dose{font-weight:700;font-size:14px;color:var(--green)}.si-why{font-size:13.5px;color:var(--muted);margin:4px 0 9px;line-height:1.5}.tag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:6px}.tag.ess{background:var(--sage);color:var(--green)}.tag.opt{background:var(--ochre-soft);color:var(--ochre)}.prio{display:flex;align-items:center;gap:9px}.track{flex:1;height:5px;border-radius:9px;background:var(--paper-2);overflow:hidden}.fill{height:100%;border-radius:9px;background:linear-gradient(90deg,var(--ochre),var(--green))}.lab{font-size:11px;color:var(--faint);width:74px;text-align:right}.gap-row{padding:12px 0;border-bottom:1px solid var(--line)}.gap-row:last-child{border-bottom:0}.gap-top{display:flex;justify-content:space-between;font-size:14px;margin-bottom:7px}.gap-name{font-family:Fraunces,serif}.meter{position:relative;height:9px;border-radius:9px;background:var(--paper-2);overflow:hidden}.meter .got{position:absolute;left:0;top:0;bottom:0;border-radius:9px}.got.ok{background:var(--green)}.got.low{background:var(--ochre)}.src{font-size:12.5px;color:var(--muted);margin-top:8px}.src-badge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:6px}.src-badge.food{background:var(--sage);color:var(--green)}.src-badge.supp{background:var(--ochre-soft);color:var(--ochre)}.gate{border:1px solid var(--ochre);background:linear-gradient(180deg,#fdf6e9,var(--card));border-radius:var(--r);padding:15px 16px;box-shadow:var(--shadow)}.gate .gl{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--ochre);font-weight:700;margin-bottom:8px}.gate .what{font-size:14.5px;line-height:1.5;margin-bottom:13px}.acts{display:flex;gap:9px}.btn{border:0;cursor:pointer;font:inherit;font-weight:600;font-size:13.5px;padding:9px 16px;border-radius:10px}.btn.primary{background:linear-gradient(150deg,var(--green),var(--green-2));color:#f4eee2}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.ok{color:var(--green);font-weight:600;font-size:14px}.traj-disc{font-size:11px;color:var(--faint);margin-top:8px}.plan{display:flex;flex-direction:column;min-height:0;background:var(--paper-2)}.plan-head{padding:22px 28px 14px}.plan-head .ey{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ochre);font-weight:700}.plan-head h1{font-family:Fraunces,serif;font-weight:500;font-size:26px;margin:5px 0 2px}.plan-head .meta{font-size:13px;color:var(--muted)}.plan-scroll{flex:1;overflow-y:auto;padding:6px 28px 28px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.panel h3{margin:0 0 12px;font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);font-weight:600}.empty{color:var(--muted);font-size:14px;padding:30px;text-align:center}.err{color:var(--rust);font-size:13px}.auth-screen{min-height:100vh;display:grid;place-items:center;background:var(--paper);padding:24px}.auth-loading{color:var(--muted);font-size:15px}.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:28px 26px;display:flex;flex-direction:column;gap:16px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:4px}.auth-title{font-family:Fraunces,serif;font-size:22px;color:var(--ink);line-height:1.1}.auth-sub{font-size:13px;color:var(--muted)}.auth-label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:600}.auth-label input{font:inherit;font-weight:400;color:var(--ink);padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--paper);outline:none}.auth-label input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f4a3d1f}.auth-submit{font:inherit;font-weight:600;color:#f4eee2;background:var(--green);border:none;padding:12px;border-radius:10px;cursor:pointer;box-shadow:var(--shadow)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-switch{font-size:13px;color:var(--muted);text-align:center}.auth-switch button{font:inherit;color:var(--green);font-weight:600;background:none;border:none;cursor:pointer;padding:0}.auth-error{font-size:13px;color:var(--rust);background:#a8492f14;border:1px solid rgba(168,73,47,.2);padding:9px 12px;border-radius:9px}.auth-notice{font-size:13px;color:var(--green);background:var(--sage);border:1px solid var(--sage-line);padding:9px 12px;border-radius:9px}.signout{font:inherit;font-size:12.5px;font-weight:600;color:var(--muted);background:none;border:1px solid var(--line);padding:6px 12px;border-radius:999px;cursor:pointer}.signout:hover{color:var(--ink);border-color:var(--faint)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 8px}.md ul,.md ol{margin:6px 0 8px;padding-left:18px}.md li{margin:3px 0}.md li::marker{color:var(--ochre)}.md strong{font-weight:600;color:var(--ink)}.md em{color:var(--muted)}.md h1,.md h2,.md h3,.md h4{font-family:Fraunces,serif;font-size:15px;margin:10px 0 6px;color:var(--ink)}.md code{font-family:ui-monospace,monospace;font-size:.92em;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:1px 5px}.md a{color:var(--green);text-underline-offset:2px}.md hr{border:none;border-top:1px solid var(--line);margin:10px 0}
