:root{--truffl-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--truffl-blue:#315cff;--truffl-blue-hover:#254bdc;--truffl-text:#202b40;--truffl-muted:#657188;--truffl-border:#e2e6f0;--truffl-canvas:#f8f9ff;--truffl-sidebar:#f7f7fc;--truffl-surface:#fff;--truffl-tint:#edf2ff;--truffl-selected:#ebecf3;--truffl-focus:#96acff;--truffl-control-radius:10px;--truffl-card-radius:16px;--truffl-body-size:14px;--truffl-caption-size:12px;--truffl-control-height:42px;--truffl-space:24px}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--truffl-font);background:#f4f5f7;color:#1a1a1a;line-height:1.5}main{min-height:100vh;justify-content:center;padding:2rem 1rem}.chat,main{display:flex}.chat{width:100%;max-width:640px;flex-direction:column;gap:1rem}.chat-header h1{margin:0;font-size:1.5rem;font-weight:600}.subtitle{margin:.25rem 0 0;font-size:.875rem;color:#666}.tts-debug-badge{margin:.25rem 0 0;font-size:.75rem;color:#999;font-family:monospace}.speak-toggle{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.875rem;color:#444;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.speak-toggle input{width:1rem;height:1rem;cursor:pointer}.audio-unavailable{font-size:.75rem;color:#888;font-style:italic}.voice-controls{display:flex;flex-direction:column;gap:.5rem}.voice-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.record-btn{padding:.5rem 1rem;border:1px solid #ccc;border-radius:8px;background:#fff;font-size:.875rem;font-weight:500;cursor:pointer}.record-btn:disabled{opacity:.5;cursor:not-allowed}.record-btn:not(:disabled):hover{background:#f5f5f5}.record-btn-stop:not(:disabled){border-color:#b91c1c;color:#b91c1c}.record-btn-stop:not(:disabled):hover{background:#fef2f2}.recording-status{margin:0;font-size:.8125rem;color:#666}.stt-preview{margin:0;font-size:.8125rem;color:#444;font-style:italic}.tool-activity{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:.5rem .75rem;font-size:.8125rem}.tool-activity summary{cursor:pointer;font-weight:600;color:#444}.tool-session-flags{margin:.5rem 0 0;color:#666;font-size:.75rem}.tool-activity-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.tool-card{border-radius:8px;padding:.5rem .625rem;border:1px solid #e8e8e8}.tool-card-fetch{background:#f0f7ff;border-color:#c7ddf5}.tool-card-action{background:#f7f5f0;border-color:#e5dfd0}.tool-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.tool-badge{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.125rem .375rem;border-radius:4px;background:#fff;color:#555}.tool-label{font-weight:600;color:#333}.tool-summary{margin:0 0 .375rem;color:#444}.tool-details{margin:0;display:grid;grid-gap:.25rem;gap:.25rem}.tool-detail-row{display:grid;grid-template-columns:7rem 1fr;grid-gap:.5rem;gap:.5rem;font-size:.75rem}.tool-detail-row dt{color:#888;margin:0}.tool-detail-row dd{margin:0;color:#222;word-break:break-word}.tool-raw{margin-top:.375rem;font-size:.6875rem}.tool-raw pre{margin:.25rem 0 0;padding:.5rem;background:#fafafa;border-radius:4px;overflow-x:auto;max-height:120px}.transcript{flex:1 1;gap:.75rem;background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;min-height:360px;max-height:60vh;overflow-y:auto}.message,.transcript{display:flex;flex-direction:column}.message{gap:.25rem;max-width:85%}.message-user{align-self:flex-end}.message-assistant{align-self:flex-start}.message-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#888}.message-user .message-label{text-align:right}.message p{margin:0;padding:.625rem .875rem;border-radius:10px;font-size:.9375rem}.message-user p{background:#2563eb;color:#fff;border-bottom-right-radius:2px}.message-assistant p{background:#f0f0f0;color:#1a1a1a;border-bottom-left-radius:2px}.typing{color:#888;font-style:italic}.error{margin:0;padding:.5rem .75rem;background:#fef2f2;color:#b91c1c;border-radius:8px;font-size:.875rem}.input-row{display:flex;gap:.5rem}.input-row input{flex:1 1;padding:.625rem .875rem;border:1px solid #ccc;border-radius:8px;font-size:1rem}.input-row input:focus{outline:2px solid #2563eb;outline-offset:1px;border-color:#2563eb}.input-row button{padding:.625rem 1.25rem;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer}.input-row button:disabled{opacity:.5;cursor:not-allowed}.input-row button:not(:disabled):hover{background:#1d4ed8}.session-review{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:.5rem .75rem;font-size:.8125rem}.session-review summary{cursor:pointer;font-weight:600;color:#444}.session-review-section{margin-top:.75rem}.session-review-heading{margin:0 0 .5rem;font-size:.8125rem;font-weight:600;color:#333}.session-review-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:.375rem .75rem;gap:.375rem .75rem;margin:0}.session-review-summary dt{font-size:.6875rem;color:#888;text-transform:uppercase;letter-spacing:.03em}.session-review-summary dd{margin:0;font-size:.8125rem;word-break:break-all}.session-review-flags{margin:.5rem 0 0;font-size:.75rem;color:#666}.latency-turns{display:flex;flex-direction:column;gap:.875rem}.latency-turn{border:1px solid #ebebeb;border-radius:6px;padding:.5rem .625rem;background:#fafafa}.latency-turn-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.latency-turn-label{font-size:.75rem;font-weight:600;color:#333}.latency-turn-perceived{font-size:.75rem;color:#2563eb;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.latency-bar{display:flex;height:18px;border-radius:4px;overflow:hidden;background:#e5e7eb;margin-bottom:.5rem;gap:1px}.latency-bar-segment{min-width:2px;transition:opacity .15s}.latency-bar-segment--stt{background:#3b82f6}.latency-bar-segment--chat{background:#10b981}.latency-bar-segment--tts{background:#8b5cf6}.latency-bar-segment--play{background:#6b7280}.latency-bar-segment--dominant{filter:brightness(1.1);outline:2px solid #f59e0b;outline-offset:-1px}.latency-legend{display:flex;flex-wrap:wrap;gap:.375rem .75rem;margin-bottom:.5rem}.latency-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.6875rem;color:#555}.latency-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.latency-detail{display:grid;grid-template-columns:1fr 1fr;grid-gap:.2rem .75rem;gap:.2rem .75rem;font-size:.6875rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.latency-detail dt{color:#888}.latency-detail dd{margin:0;color:#222}.latency-detail dd.latency-dominant{color:#d97706;font-weight:600}.latency-tool-list{margin:0;padding:0;list-style:none;font-size:.6875rem;color:#555}.latency-no-data{font-size:.75rem;color:#aaa;font-style:italic}.session-timeline{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:.375rem}.session-timeline-item{display:flex;gap:.5rem;font-size:.75rem;line-height:1.4;padding:.375rem .5rem;border-radius:6px;background:#f8f8f8}.session-timeline-time{flex-shrink:0;color:#888;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.session-eval-controls{display:flex;flex-direction:column;gap:.625rem}.session-eval-controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:#444}.session-eval-controls select,.session-eval-notes textarea{font-size:.8125rem;padding:.375rem .5rem;border:1px solid #ccc;border-radius:6px;font-family:inherit}.session-eval-tags{border:none;margin:0;padding:0}.session-eval-tags legend{font-size:.75rem;color:#444;margin-bottom:.375rem}.session-eval-tag-list{display:flex;flex-wrap:wrap;gap:.375rem .75rem}.session-eval-tag{display:flex;align-items:center;gap:.25rem;font-size:.6875rem;color:#555;cursor:pointer}.session-export-btn{margin-top:.75rem;padding:.5rem 1rem;background:#fff;border:1px solid #ccc;border-radius:8px;font-size:.8125rem;font-weight:500;cursor:pointer}.session-export-btn:hover{background:#f5f5f5}:where(button,summary,select,textarea,input:not([type=checkbox],[type=radio],[type=hidden])){min-height:24px}.public-review-site{min-height:100vh;background:#f8f9ff;color:var(--truffl-text);font-family:var(--truffl-font)}.public-review-site a{color:inherit;text-decoration:none}.public-review-site a:focus-visible{outline:3px solid var(--truffl-focus);outline-offset:4px}.public-review-skip{position:absolute;top:-60px;left:16px;z-index:20;padding:10px 14px;background:white;border-radius:8px}.public-review-skip:focus{top:12px}.public-review-header{max-width:1280px;margin:auto;padding:24px 44px;display:flex;align-items:center;gap:44px}.public-review-brand{display:inline-flex;align-items:center;gap:6px;font-size:28px;font-weight:800;letter-spacing:-.065em;line-height:1;white-space:nowrap}.public-review-brand-mark{display:inline-block;width:30px;height:30px;margin-right:3px;background:url(/truffl-mark.svg) 50%/contain no-repeat}.public-review-brand-period{color:var(--truffl-blue);margin-left:-5px}.public-review-header nav{display:flex;align-items:center;gap:28px;margin-left:auto;color:#526078;font-size:14px;font-weight:600}.public-review-footer nav a:hover,.public-review-header nav a:hover{color:var(--truffl-blue)}.public-review-header-signin{padding:11px 16px;border:1px solid #d8def0;border-radius:11px;background:#fff;font-size:13px;font-weight:700;white-space:nowrap}.public-review-header-signin span{color:var(--truffl-blue);margin-left:8px}.public-review-main{display:block;width:100%;min-height:auto;max-width:1280px;margin:0 auto;padding:0 44px 64px}.public-review-hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);grid-gap:5vw;gap:5vw;align-items:center;padding:84px 0 105px}.public-review-eyebrow{color:var(--truffl-blue);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.public-review-hero h1{max-width:720px;margin:22px 0;font-size:clamp(42px,5.5vw,76px);line-height:1.04;letter-spacing:-.065em}.public-review-lede{max-width:590px;color:#526078;font-size:clamp(17px,1.8vw,21px);line-height:1.65}.public-review-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.public-review-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px;padding:12px 20px;border-radius:11px;background:var(--truffl-blue);color:#fff!important;font-weight:700;box-shadow:0 9px 24px #315cff24}.public-review-button:hover{background:var(--truffl-blue-hover)}.public-review-button-secondary{background:white;color:var(--truffl-text)!important;border:1px solid var(--truffl-border);box-shadow:none}.public-review-button-secondary:hover{background:var(--truffl-tint)}.public-review-hero-note{margin-top:18px;color:var(--truffl-muted);font-size:13px}.public-review-preview{overflow:hidden;background:#fff;border:1px solid #dbe2f1;border-radius:25px;box-shadow:0 30px 65px #253a6b19;transform:rotate(2deg)}.public-review-preview-top{display:flex;align-items:center;gap:9px;padding:22px 26px;border-bottom:1px solid #e8ecf5;color:#536179;font-size:12px;font-weight:700}.public-review-preview-top>span:last-child{margin-left:auto;color:#9ba7ba}.public-review-preview-dot{width:9px;height:9px;border-radius:50%;background:#47bc9c}.public-review-preview-body{padding:16px 27px 23px}.public-review-preview-step{display:flex;gap:17px;padding:19px 0;border-bottom:1px solid #e8ecf5}.public-review-preview-step:last-child{border-bottom:0}.public-review-preview-step>span{display:grid;flex:none;place-items:center;width:37px;height:37px;border-radius:11px;background:#edf2ff;color:var(--truffl-blue);font-weight:800;font-size:12px}.public-review-preview-step strong{font-size:17px}.public-review-preview-step p{margin:4px 0 0;color:#6b778d;font-size:13px;line-height:1.5}.public-review-preview-bottom{display:flex;justify-content:space-between;padding:18px 27px;background:#eef2ff;color:#3656be;font-size:13px;font-weight:700}.public-review-section{padding:72px 0;border-top:1px solid #e0e6f1}.public-review-section h2{margin:10px 0 16px;font-size:clamp(32px,3.5vw,48px);line-height:1.12;letter-spacing:-.05em}.public-review-section p{line-height:1.65}.public-review-section-heading{max-width:690px}.public-review-section-heading>p:last-child{color:#5f6d83;font-size:16px}.public-review-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-top:35px}.public-review-card{min-height:245px;padding:29px;border:1px solid #e0e5ef;border-radius:18px;background:white}.public-review-card-number,.public-review-price-card>span{color:var(--truffl-blue);font-size:12px;font-weight:800;letter-spacing:.1em}.public-review-card h3{margin:44px 0 8px;font-size:22px;letter-spacing:-.035em}.public-review-card p{margin:0;color:#69768b;font-size:14px}.public-review-billing{display:grid;grid-template-columns:1fr .86fr;grid-gap:9vw;gap:9vw;align-items:center}.public-review-billing>div:first-child>p:not(.public-review-eyebrow){max-width:550px;color:#5f6d83;font-size:16px}.public-review-text-link{display:inline-block;margin-top:14px;color:var(--truffl-blue)!important;font-weight:700;text-decoration:underline!important;text-underline-offset:4px}.public-review-price-card{padding:36px;background:#eaf0ff;border:1px solid #d7e2ff;border-radius:21px}.public-review-price-card strong{display:block;margin:17px 0;font-size:44px;letter-spacing:-.05em}.public-review-price-card small{color:#65738b;font-size:15px;font-weight:600;letter-spacing:0}.public-review-price-card p{color:#55627a;font-size:14px}.public-review-price-table{width:100%;margin:25px 0;border-collapse:collapse;text-align:left;font-size:15px}.public-review-price-table caption{padding-bottom:12px;text-align:left;font-weight:700}.public-review-price-table td,.public-review-price-table th{padding:12px 8px;border-bottom:1px solid #cad7f1}.public-review-price-table thead th{font-size:13px;color:#526078}.public-review-help{text-align:center}.public-review-help p:not(.public-review-eyebrow){max-width:610px;margin:0 auto 25px;color:#5f6d83}.public-review-help p a,.public-review-policy a:not(.public-review-text-link){color:var(--truffl-blue);text-decoration:underline;text-underline-offset:3px}.public-review-footer{display:grid;grid-template-columns:1fr auto;grid-gap:28px;gap:28px;max-width:1280px;margin:auto;padding:45px 44px 55px;border-top:1px solid #dfe5f0}.public-review-footer .public-review-brand{font-size:24px}.public-review-footer p,.public-review-footer small{color:var(--truffl-muted);font-size:13px}.public-review-footer nav{display:flex;flex-wrap:wrap;align-content:flex-start;gap:14px 25px;color:#526078;font-size:13px;font-weight:600}.public-review-footer small{grid-column:1/-1}.public-review-policy{padding-top:66px;padding-bottom:95px}.public-review-policy h1{max-width:800px;margin:14px 0 20px;font-size:clamp(39px,5vw,66px);line-height:1.05;letter-spacing:-.06em}.public-review-policy-grid{display:grid;grid-template-columns:minmax(230px,.55fr) 1fr;grid-gap:6vw;gap:6vw;align-items:start;margin-top:60px}.public-review-policy-grid aside{padding:28px;border-radius:18px;background:#eaf0ff;color:#43516a}.public-review-policy-grid aside strong{color:var(--truffl-text);font-size:18px}.public-review-policy-grid aside p{line-height:1.65}.public-review-policy-copy section{padding:0 0 29px;margin-bottom:28px;border-bottom:1px solid #dfe5f0}.public-review-policy-copy h2{margin:0 0 9px;font-size:23px;letter-spacing:-.035em}.public-review-policy-copy p{margin:0;color:#56637b;font-size:15px;line-height:1.75}@media (max-width:900px){.public-review-header{padding:20px 24px;gap:20px}.public-review-header nav{gap:14px}.public-review-main{padding-left:24px;padding-right:24px}.public-review-hero{gap:28px;padding-top:60px}.public-review-footer{padding-left:24px;padding-right:24px}}@media (max-width:700px){.public-review-header{flex-wrap:wrap;gap:15px}.public-review-brand{font-size:24px}.public-review-header nav{order:3;width:100%;overflow-x:auto;margin-left:0;padding-bottom:3px}.public-review-header-signin{margin-left:auto}.public-review-billing,.public-review-hero,.public-review-policy-grid{grid-template-columns:1fr}.public-review-hero{padding:55px 0 75px}.public-review-preview{transform:none}.public-review-grid{grid-template-columns:1fr}.public-review-card{min-height:0}.public-review-card h3{margin-top:24px}.public-review-section{padding:54px 0}.public-review-policy{padding-top:50px}.public-review-policy-grid{gap:32px;margin-top:35px}.public-review-footer{grid-template-columns:1fr}.public-review-footer small{grid-column:1}}.latency-readout-readout{color:#172235;min-width:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.latency-readout-overview{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(260px,1.4fr);grid-gap:24px;gap:24px;margin:18px 0}.latency-readout-eyebrow{color:#59667a;font-size:.72rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}.latency-readout-number{font-size:clamp(2.2rem,5vw,3.5rem);line-height:1.1;font-weight:730;letter-spacing:-.04em}.latency-readout-muted{color:#59667a;font-size:.78rem;line-height:1.55}.latency-readout-chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.latency-readout-chip{border-radius:6px;background:#eef2f7;padding:4px 8px;font-size:.72rem}.latency-readout-over{color:#9a3412;background:#fff0e9}.latency-readout-under{color:#166534;background:#eaf7ef}.latency-readout-bar{display:flex;height:13px;overflow:hidden;border-radius:4px;background:#edf1f6;min-width:0}.latency-readout-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:10px 0;font-size:.74rem;color:#475569}.latency-readout-swatch{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:2px}.latency-readout-finding{margin-top:9px;border-left:3px solid;background:#f7f9fc;padding:10px 13px;border-radius:0 7px 7px 0}.latency-readout-finding strong{font-size:.84rem}.latency-readout-finding p{margin:4px 0 0}.latency-readout-rows{display:grid;grid-gap:5px;gap:5px;margin:18px 0}.latency-readout-row{display:grid;grid-template-columns:minmax(120px,.6fr) minmax(120px,2fr) 85px;grid-gap:12px;gap:12px;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-radius:8px;padding:10px;background:transparent;color:inherit;cursor:pointer}.latency-readout-row:hover{background:#f7f5ff}.latency-readout-row[aria-pressed=true]{border-color:#a78bfa;background:#f4f0ff}.latency-readout-row:focus-visible{outline:2px solid #6d28d9;outline-offset:2px}.latency-readout-track{position:relative;height:17px}.latency-readout-target{position:absolute;top:-5px;bottom:-5px;border-left:2px dashed #b94b35}.latency-readout-sound{position:absolute;top:-5px;width:7px;height:7px;border-radius:100%;background:#ad7410}.latency-readout-breakdown{border-top:1px solid #dce3eb;padding-top:18px;margin-top:18px}.latency-readout-stage{border:1px solid #e2e8f0;border-radius:8px;margin:7px 0;padding:10px 12px}.latency-readout-stage summary{display:grid;grid-template-columns:minmax(120px,1.4fr) minmax(60px,1fr) 95px;align-items:center;grid-gap:12px;gap:12px;cursor:pointer;font-size:.86rem}.latency-readout-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:9px;gap:9px;margin:14px 0}.latency-readout-fact{padding:10px 12px;background:#f5f7fb;border-radius:7px}.latency-readout-fact strong{display:block;margin-top:4px;font-size:1.05rem}.latency-readout-advanced{border:1px solid #dce3eb;border-radius:8px;padding:12px;margin-top:16px}.latency-readout-advanced>summary{cursor:pointer;font-weight:600;font-size:.82rem}@media (max-width:720px){.latency-readout-overview{grid-template-columns:1fr;gap:14px}.latency-readout-row{grid-template-columns:1fr 80px}.latency-readout-stage summary{grid-template-columns:1fr 85px}.latency-readout-stage summary>.latency-readout-bar,.latency-readout-stage summary>span:empty{display:none}.latency-readout-track{grid-column:1/-1;grid-row:2}}.latency-readout-bubble{display:block;border:0;padding:3px 0 7px;text-align:left;background:transparent;font:inherit;font-size:.74rem;color:#334155;cursor:pointer}.latency-readout-bubble:focus-visible{outline:2px solid #6d28d9;outline-offset:2px}