:root{--white:#ffffff;--surface:#f5f5f5;--green:#36c273;--ink:#333333;--green-soft:#e3f6ec;--line:#e4e4e4;--danger:#c24d36}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink)}.chat-shell,body{background:var(--white)}.chat-shell{max-width:760px;margin:0 auto;height:100dvh;display:flex;flex-direction:column}header.chat{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}header.chat .logo{width:34px;height:34px;border-radius:8px;background:var(--green);color:var(--white);display:grid;place-items:center;font-weight:700}header.chat h1{font-size:1rem;margin:0;flex:1 1}.messages{flex:1 1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.bubble{max-width:85%;padding:.65rem .9rem;border-radius:14px;font-size:.9rem;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}.bubble.user{align-self:flex-end;background:var(--green);color:var(--white);border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:var(--surface);border-bottom-left-radius:4px}.bubble.error{align-self:flex-start;background:#f8ded4;color:var(--danger)}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 .6rem}.markdown ol,.markdown ul{margin:0 0 .6rem;padding-left:1.2rem}.markdown li{margin-bottom:.2rem}.markdown h1,.markdown h2,.markdown h3{font-size:.95rem;margin:.8rem 0 .4rem}.markdown code{padding:.1rem .3rem;border-radius:4px;font-size:.85em;font-family:ui-monospace,SF Mono,Menlo,monospace}.markdown code,.markdown pre{background:rgba(51,51,51,.07)}.markdown pre{padding:.6rem;border-radius:8px;overflow-x:auto}.markdown pre code{background:none;padding:0}.markdown a{color:#1d7a48}.markdown blockquote{margin:0 0 .6rem;padding-left:.7rem;border-left:3px solid var(--green-border,#b9e7cd);color:#666}.markdown table{border-collapse:collapse;font-size:.85em;margin-bottom:.6rem;display:block;overflow-x:auto}.markdown td,.markdown th{border:1px solid var(--line);padding:.3rem .5rem;text-align:left}.markdown th{background:var(--surface)}.options{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.5rem 0 .2rem}.options-label{font-size:.78rem;color:#777}.option-chip{padding:.3rem .75rem;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);font-size:.8rem;cursor:pointer}.option-chip:hover{border-color:var(--green);background:var(--green-soft);color:#1d7a48;filter:none}.map-card{margin-top:.6rem;border:1px solid var(--green);border-radius:10px;background:var(--green-soft);padding:.6rem .75rem;font-size:.82rem}.map-card-title{font-weight:700;color:#1d7a48;margin-bottom:.35rem}.map-card-fields{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.4rem}.map-card details summary{cursor:pointer;color:#1d7a48}.map-card pre{background:var(--white);border-radius:8px;padding:.5rem;overflow-x:auto;font-size:.72rem}.status-line{align-self:flex-start;display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:#777;padding:.2rem .4rem}.dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.empty-state{margin:auto;text-align:center;color:#888;font-size:.9rem;max-width:380px}.empty-state strong{color:var(--ink)}form.composer{display:flex;gap:.6rem;padding:.8rem 1rem;border-top:1px solid var(--line)}form.composer input{flex:1 1;padding:.65rem .85rem;border:1px solid var(--line);border-radius:10px;font-size:.9rem;color:var(--ink)}form.composer input:focus{outline:2px solid var(--green);border-color:transparent}button{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:1px solid var(--green);border-radius:10px;background:var(--green);color:var(--white);cursor:pointer;font-size:.87rem}button.ghost{background:var(--white);color:var(--ink);border-color:var(--line);font-size:.78rem;padding:.4rem .7rem}button:hover:not(:disabled){filter:brightness(.94)}button:disabled{opacity:.45;cursor:default}