:root{--vc-bg:#ffffff;--vc-surface:#ffffff;--vc-ink:#12201e;--vc-ink-muted:#5b6b68;--vc-line:#e1ebe9;--vc-accent:#0f766e;--vc-accent-ink:#ffffff;--vc-user-bubble:var(--vc-accent);--vc-assist-bg:#f0faf8;--vc-assist-line:#d5ebe7;--vc-safety:#b4231d;--vc-safety-bg:#fdf2f1;--vc-ok:#1a7f37;--vc-shadow:0 1px 2px rgba(13,80,74,0.05),0 8px 20px -10px rgba(13,80,74,0.2);--vc-sp-xs:4px;--vc-sp-sm:8px;--vc-sp-md:16px;--vc-sp-lg:24px;--vc-sp-xl:40px;--vc-radius-card:16px;--vc-radius-pill:999px;--vc-radius-bubble:16px;--vc-font:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;--vc-safety-line:#f0cfcd}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--vc-bg);color:var(--vc-ink);font-family:var(--vc-font);line-height:1.5}.shell{max-width:680px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:0 var(--vc-sp-md)}header.top{padding:var(--vc-sp-lg) 0 var(--vc-sp-md);border-bottom:1px solid var(--vc-line)}header.top h1{font-size:1.25rem;letter-spacing:-.01em;margin:0}header.top p{margin:4px 0 0;color:var(--vc-ink-muted);font-size:.9rem}.account{margin-top:var(--vc-sp-sm);font-size:.85rem;display:flex;gap:var(--vc-sp-md);flex-wrap:wrap}.account .signed-in{color:var(--vc-ink-muted)}.link{background:none;border:none;padding:0;color:var(--vc-accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.account .claim{display:flex;gap:var(--vc-sp-sm);flex-wrap:wrap}.account .claim input{flex:1 1;min-width:180px;font-family:inherit;font-size:.9rem;padding:8px 12px;border:1px solid var(--vc-line);border-radius:var(--vc-radius-card);background:var(--vc-surface);color:var(--vc-ink)}.account .claim .btn{padding:8px 16px;font-size:.85rem}.account-note{margin-top:6px;color:var(--vc-ink-muted);flex-basis:100%}.shell.auth{justify-content:center;align-items:center}.auth-card{width:100%;max-width:380px;padding:var(--vc-sp-lg);text-align:center}.auth-card h1{font-size:1.5rem;letter-spacing:-.01em;margin:0}.auth-tagline{color:var(--vc-ink-muted);font-size:.9rem;margin:6px 0 var(--vc-sp-lg)}.btn.google{justify-content:center;gap:10px;width:100%;background:var(--vc-surface);color:var(--vc-ink);border:1px solid var(--vc-line);text-decoration:none}.auth-or,.btn.google{display:flex;align-items:center}.auth-or{gap:12px;color:var(--vc-ink-muted);font-size:.8rem;margin:var(--vc-sp-md) 0}.auth-or:after,.auth-or:before{content:"";flex:1 1;height:1px;background:var(--vc-line)}.auth-form{display:flex;flex-direction:column;gap:var(--vc-sp-sm);text-align:left}.auth-form label{font-size:.8rem;font-weight:600;color:var(--vc-ink-muted)}.auth-form input{font-family:inherit;font-size:1rem;padding:10px 14px;border:1px solid var(--vc-line);border-radius:var(--vc-radius-card);background:var(--vc-surface);color:var(--vc-ink)}.auth-form input:focus{outline:2px solid var(--vc-accent);outline-offset:-1px}.auth-form .btn{margin-top:4px}.auth-hint{color:var(--vc-ink-muted);font-size:.8rem;margin:4px 0 0;text-align:center}.auth-sent-title{font-weight:600;color:var(--vc-ok);margin-bottom:6px}.auth-sent p{font-size:.9rem}.auth-back,.auth-sent p{color:var(--vc-ink-muted)}.auth-back{display:inline-block;margin-top:var(--vc-sp-lg);font-size:.85rem;text-decoration:none}.auth-back:hover{color:var(--vc-accent)}.thread{flex:1 1;display:flex;flex-direction:column;gap:var(--vc-sp-md);padding:var(--vc-sp-lg) 0;overflow-y:auto}.msg{max-width:82%;padding:10px 14px;border-radius:var(--vc-radius-bubble);white-space:pre-wrap;word-wrap:break-word}.msg.user{align-self:flex-end;background:var(--vc-user-bubble);color:var(--vc-accent-ink);border-bottom-right-radius:4px}.msg.assistant{align-self:flex-start;background:var(--vc-assist-bg);border:1px solid var(--vc-assist-line);border-bottom-left-radius:4px}.msg.assistant[data-route=safety]{border-color:var(--vc-safety);background:var(--vc-safety-bg)}.badge{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--vc-safety);margin-bottom:4px}.status,.thinking{align-self:flex-start;color:var(--vc-ink-muted);font-size:.85rem;font-style:italic}.thinking{display:flex;align-items:center;gap:.5rem}.dots{display:inline-flex;gap:.24rem;flex:none}.dots i{width:.4rem;height:.4rem;border-radius:50%;background:var(--vc-ink-muted);animation:vc-blink 1.4s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes vc-blink{0%,60%,to{opacity:.25;transform:scale(1)}30%{opacity:1;transform:scale(1.28)}}@media (prefers-reduced-motion:reduce){.dots i{animation:none;opacity:.6}}.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}.saved{align-self:flex-start;color:var(--vc-ok);font-size:.85rem;font-weight:600}.propose{align-self:stretch;background:var(--vc-surface);border:1px solid var(--vc-accent);border-radius:var(--vc-radius-card);padding:var(--vc-sp-md);box-shadow:var(--vc-shadow)}.propose .label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--vc-accent)}.propose .summary{font-weight:600;margin:6px 0}.propose .body{color:var(--vc-ink-muted);font-size:.92rem;margin:0 0 var(--vc-sp-md);white-space:pre-wrap}.propose .actions{display:flex;flex-wrap:wrap;gap:var(--vc-sp-sm)}.signin-boundary{color:var(--vc-ink-muted);font-size:.9rem;margin-top:var(--vc-sp-sm)}.signin-boundary-title{color:var(--vc-ink);font-size:.95rem;font-weight:600;margin:0}.signin-boundary-copy{margin:4px 0 0}.signin-boundary-actions{display:flex;flex-wrap:wrap;gap:var(--vc-sp-sm);align-items:center;margin-top:var(--vc-sp-md)}.page-state .signin-boundary-actions{justify-content:center}.page-state .signin-boundary-actions .btn{margin-top:0}.b-card{align-self:stretch;background:var(--vc-assist-bg);border:1px solid var(--vc-assist-line);border-radius:var(--vc-radius-card);padding:var(--vc-sp-md)}.b-head{display:flex;align-items:center;gap:.55rem;margin-bottom:8px}.b-kicker{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--vc-accent)}.b-note{color:var(--vc-ink-muted);font-size:.88rem;margin:0 0 12px}.b-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.b-steps li{font-size:.86rem;color:var(--vc-ink-muted);display:flex;gap:.55rem;align-items:baseline}.b-steps li:before{content:"✓";color:var(--vc-ok);font-weight:700;flex:none}.b-steps li.active{color:var(--vc-ink)}.b-steps li.active:before{content:"○";color:var(--vc-accent)}.b-done{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.9rem;color:var(--vc-ink)}.b-done .tick{color:var(--vc-ok);font-weight:700}.b-done .sep{color:var(--vc-ink-muted)}.b-expand{border:none;background:none;font:inherit;font-size:.82rem;font-weight:600;color:var(--vc-accent);cursor:pointer;padding:0;margin-left:auto}.b-sources{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid var(--vc-assist-line);display:flex;flex-direction:column;gap:8px}.b-sources.hidden{display:none}.b-sources li{font-size:.8rem;color:var(--vc-ink-muted);overflow-wrap:anywhere}.b-sources .t1{color:var(--vc-accent);font-weight:700;font-size:.66rem;letter-spacing:.04em}.b-card.stopped{display:flex;align-items:center;gap:.5rem;color:var(--vc-ink-muted);font-size:.88rem;background:none;border-style:dashed}.upd-kicker{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--vc-accent);margin-bottom:6px}.composer{display:flex;gap:var(--vc-sp-sm);padding:var(--vc-sp-md) 0 var(--vc-sp-lg);border-top:1px solid var(--vc-line);position:-webkit-sticky;position:sticky;bottom:0;background:var(--vc-bg)}.composer textarea{flex:1 1;resize:none;font-family:inherit;font-size:1rem;padding:10px 14px;border:1px solid var(--vc-line);border-radius:var(--vc-radius-card);background:var(--vc-surface);color:var(--vc-ink)}.composer textarea:focus{outline:2px solid var(--vc-accent);outline-offset:-1px}.btn{background:var(--vc-accent);color:var(--vc-accent-ink);border:none;border-radius:var(--vc-radius-pill);padding:10px 22px;font-size:.95rem;font-family:inherit;font-weight:600;cursor:pointer;display:inline-block;text-decoration:none}.btn:disabled{opacity:.45;cursor:default}.btn.secondary{background:transparent;color:var(--vc-ink-muted);border:1px solid var(--vc-line)}.auth-back:focus-visible,.b-expand:focus-visible,.back:focus-visible,.btn:focus-visible,.link:focus-visible,.post-visit:focus-visible{outline:2px solid var(--vc-accent);outline-offset:2px}.btn.stop{background:var(--vc-safety-bg);color:var(--vc-safety);border:1px solid var(--vc-safety-line);display:inline-flex;align-items:center;gap:.5em}.btn.stop:hover{background:#fbe8e6}.btn.stop:active{background:#f7dad7}.btn.stop .sq{width:.62em;height:.62em;border-radius:3px;background:var(--vc-safety);flex:none}.error{align-self:center;color:var(--vc-safety);font-size:.9rem}.back{display:inline-block;color:var(--vc-ink-muted);font-size:.85rem;text-decoration:none;margin-bottom:var(--vc-sp-sm)}.back:hover{color:var(--vc-accent)}.records{list-style:none;margin:0;padding:var(--vc-sp-lg) 0 var(--vc-sp-xl);display:flex;flex-direction:column;gap:var(--vc-sp-md)}.record{background:var(--vc-surface);border:1px solid var(--vc-line);border-radius:var(--vc-radius-card);padding:var(--vc-sp-md);box-shadow:var(--vc-shadow)}.record-meta{display:flex;align-items:center;gap:var(--vc-sp-sm)}.chip{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--vc-ink-muted);background:var(--vc-bg);border:1px solid var(--vc-line);border-radius:var(--vc-radius-pill);padding:2px 10px;white-space:nowrap}.record-date{color:var(--vc-ink-muted);font-size:.8rem}.record-remove{margin:calc(-1 * var(--vc-sp-sm)) calc(-1 * var(--vc-sp-sm)) calc(-1 * var(--vc-sp-sm)) auto;padding:var(--vc-sp-sm);background:none;border:none;font:inherit;font-size:.8rem;color:var(--vc-ink-muted);cursor:pointer}.record-remove:focus-visible,.record-remove:hover{color:var(--vc-safety);text-decoration:underline}.record-body{margin:var(--vc-sp-sm) 0 0;font-size:.95rem;white-space:pre-wrap;overflow-wrap:anywhere}.record.confirming .record-body{color:var(--vc-ink-muted)}.record-confirm{margin:0;font-size:.9rem;font-weight:600}.record-actions{display:flex;gap:var(--vc-sp-sm);margin-top:var(--vc-sp-md)}.btn.danger{background:var(--vc-safety);color:var(--vc-accent-ink)}.record-error{color:var(--vc-safety);font-size:.85rem;margin:var(--vc-sp-sm) 0 0}.notice{color:var(--vc-ok);font-size:.85rem;font-weight:600;margin-top:var(--vc-sp-md);min-height:1lh}.page-state{text-align:center;color:var(--vc-ink-muted);padding:var(--vc-sp-xl) 0;font-size:.95rem}.page-state .btn{margin-top:var(--vc-sp-md)}.disclaimer{text-align:center;color:var(--vc-ink-muted);font-size:.75rem;padding-bottom:var(--vc-sp-md)}.prepare{margin-top:var(--vc-sp-lg)}.prepare .error,.prepare .prepare-hint,.prepare .status{display:block;margin:var(--vc-sp-sm) 0 0}.prepare-hint{color:var(--vc-ink-muted);font-size:.9rem}.summaries{margin-top:var(--vc-sp-lg)}.summaries h2{margin:0 0 var(--vc-sp-sm);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vc-ink-muted)}.summaries ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--vc-sp-xs)}.summaries li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--vc-sp-sm);flex-wrap:wrap}.summaries .link{font-size:.9rem}.sheet-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--vc-sp-sm);padding:var(--vc-sp-lg) 0 var(--vc-sp-md)}.sheet-nav .back{margin-bottom:0}.sheet{background:var(--vc-surface);border:1px solid var(--vc-line);border-radius:var(--vc-radius-card);padding:clamp(24px,6vw,40px);margin-bottom:var(--vc-sp-xl);box-shadow:var(--vc-shadow);font-size:1rem;line-height:1.55;overflow-wrap:anywhere}.sheet-kicker{margin:0;font-size:.72rem;color:var(--vc-accent)}.sheet h2,.sheet-kicker,.sheet-label{font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sheet h2,.sheet-label{margin:var(--vc-sp-lg) 0 var(--vc-sp-sm);font-size:.78rem;color:var(--vc-ink-muted)}.sheet h1{margin:var(--vc-sp-xs) 0 0;font-size:1.35rem;letter-spacing:-.01em;line-height:1.3}.sheet section{margin:0}.sheet ul{margin:0;padding-left:1.2em}.sheet li{margin:4px 0}.sheet-footer{margin-top:var(--vc-sp-xl);padding-top:var(--vc-sp-md);border-top:1px solid var(--vc-line);color:var(--vc-ink-muted);font-size:.8rem}.sheet-actions{display:flex;align-items:center;gap:var(--vc-sp-sm);flex-wrap:wrap;justify-content:flex-end}.sheet-actions .btn{padding:8px 14px;font-size:.85rem}.lang-switch{display:inline-flex;gap:var(--vc-sp-xs)}.regen-status{align-self:flex-start;margin:var(--vc-sp-sm) 0 var(--vc-sp-md)}.post-visit{color:var(--vc-ink-muted);text-decoration:none;font-size:.9rem}.post-visit:hover{color:var(--vc-accent)}.post-visit-preview{display:inline-block;margin:0 0 var(--vc-sp-xl)}.post-visit-row{font-size:.8rem;white-space:nowrap}@media print{@page{size:A4;margin:18mm 16mm}body{background:#fff}.sheet-nav{display:none}.sheet-shell{display:block;max-width:none;min-height:0;padding:0}.sheet{border:0;border-radius:0;padding:0;margin:0;box-shadow:none;background:#fff;color:#000;font-size:10.5pt;line-height:1.45}.sheet-kicker{color:#000;font-size:8pt}.sheet h2,.sheet-label{color:#444;font-size:8.5pt;margin:5mm 0 2mm;page-break-after:avoid;break-after:avoid}.sheet h1{font-size:15pt;margin:1mm 0 0}.sheet section{page-break-inside:avoid;break-inside:avoid}.sheet li{margin:1mm 0}.sheet-footer{margin-top:6mm;padding-top:3mm;border-top:.5pt solid #999;color:#555;font-size:8pt}.post-visit,.regen-status{display:none}}.admin-headline{display:flex;flex-wrap:wrap;gap:var(--vc-sp-md);margin:var(--vc-sp-md) 0}.admin-stat{flex:1 1 120px;padding:var(--vc-sp-md);border:1px solid var(--vc-line);border-radius:var(--vc-radius-card);background:var(--vc-surface)}.admin-stat .n{font-size:1.8rem;font-weight:650;color:var(--vc-accent)}.admin-stat .k{color:var(--vc-ink-muted);font-size:.85rem}.admin-section{margin:var(--vc-sp-lg) 0}.admin-section h2{font-size:1.05rem;margin-bottom:var(--vc-sp-sm)}.admin-funnel{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--vc-sp-xs)}.admin-funnel li{display:flex;align-items:center;gap:var(--vc-sp-sm)}.admin-funnel .bar{height:20px;background:var(--vc-accent);border-radius:var(--vc-radius-pill);min-width:2px}.admin-funnel .lbl{flex:0 0 150px;color:var(--vc-ink-muted);font-size:.9rem}.admin-funnel .drop{color:var(--vc-ink-muted);font-size:.8rem}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table td,.admin-table th{text-align:left;padding:var(--vc-sp-xs) var(--vc-sp-sm);border-bottom:1px solid var(--vc-line);white-space:nowrap}.admin-table th{color:var(--vc-ink-muted);font-weight:600}.admin-spark{display:flex;align-items:flex-end;gap:2px;height:48px}.admin-spark .d{flex:1 1;background:var(--vc-assist-line);min-height:2px;border-radius:2px 2px 0 0}.admin-spark .d.on{background:var(--vc-accent)}.admin-chart{display:grid;grid-template-columns:2rem minmax(0,1fr);grid-template-rows:160px auto;grid-column-gap:var(--vc-sp-sm);column-gap:var(--vc-sp-sm);grid-row-gap:var(--vc-sp-xs);row-gap:var(--vc-sp-xs);width:100%}.admin-chart-y{align-self:center;justify-self:center;writing-mode:vertical-rl;transform:rotate(180deg);color:var(--vc-ink-muted);font-size:.75rem;font-weight:600}.admin-chart-plot{position:relative;min-width:0;height:160px;border-left:1px solid var(--vc-line);border-bottom:1px solid var(--vc-line);background:linear-gradient(to bottom,var(--vc-line) 1px,transparent 1px) 0 0 /100% 50%,var(--vc-bg)}.admin-chart-svg{position:absolute;inset:0 0 0 1.75rem;width:calc(100% - 1.75rem);height:100%;overflow:visible}.admin-chart-line{fill:none;stroke:var(--vc-accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.admin-chart-dot{fill:var(--vc-accent);vector-effect:non-scaling-stroke}.admin-chart-tick{position:absolute;left:.3rem;transform:translateY(50%);color:var(--vc-ink-muted);font-size:.68rem;line-height:1}.admin-chart-tick.top{top:0;transform:translateY(-10%)}.admin-chart-tick.mid{top:50%}.admin-chart-tick.base{bottom:0}.admin-chart-x{grid-column:2;display:flex;justify-content:space-between;gap:var(--vc-sp-sm);color:var(--vc-ink-muted);font-size:.75rem;font-weight:600}