:root{--bg:#eef0ed;--panel:#fff;--panel-soft:#f6f7f5;--ink:#18201e;--muted:#65706c;--line:#d8ddda;--accent:#087e70;--accent-soft:#dff2ed;--danger:#c4553f;--danger-soft:#f9e9e5;--positive:#2f9b84;--negative:#d06f58}*{box-sizing:border-box}html,body{width:100%;height:100%}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;overflow:hidden}button,textarea{font:inherit}button,a{color:inherit}.auth-check{min-height:100dvh;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.login-shell{background:radial-gradient(circle at 15% 15%,#087e701f,#0000 32%),linear-gradient(145deg,#edf2ef 0%,#f8f9f8 100%);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:#fffffff0;border-radius:18px;width:min(100%,560px);padding:clamp(32px,6vw,58px);box-shadow:0 24px 70px #1527221a}.login-mark{background:var(--accent);border-radius:5px;width:34px;height:5px;display:block}.login-eyebrow{letter-spacing:.14em;color:var(--accent)!important;margin:20px 0 10px!important;font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace!important}.login-card h1{letter-spacing:-.04em;margin:0;font-size:clamp(30px,7vw,48px)}.login-card p{color:var(--muted);margin:22px 0 0;font-size:14px;line-height:1.85}.login-button{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-height:50px;margin-top:30px;font-size:14px;font-weight:750;text-decoration:none;display:flex}.login-button:hover{background:#066e62}.login-card small{color:#8b9490;margin-top:14px;font-size:10px;display:block}.app-shell{grid-template-rows:54px minmax(0,1fr);width:100%;height:100dvh;min-height:0;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line);z-index:10;background:#fffffff0;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:0 18px;display:grid}.app-title{align-items:center;gap:10px;font-size:13px;display:flex}.app-title strong{letter-spacing:.02em;font-weight:750}.app-mark{background:var(--accent);border-radius:2px;width:4px;height:18px}.model-state{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.status-dot{background:#a4aaa7;border-radius:50%;width:7px;height:7px}.status-dot.ready{background:var(--positive);box-shadow:0 0 0 3px #2f9b841f}.header-actions{justify-self:end;align-items:center;gap:14px;display:flex}.signed-in-user{text-overflow:ellipsis;white-space:nowrap;max-width:150px;color:var(--muted);font-size:10px;overflow:hidden}.turn-count{color:var(--muted);font-size:11px}.text-button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:6px;padding:7px 10px;font-size:11px;font-weight:700}.text-button:hover{background:var(--panel-soft);border-color:#aab2ae}.logout-link{text-decoration:none}.workspace{grid-template-columns:300px minmax(0,1fr) 310px;gap:12px;min-height:0;padding:12px;display:grid;overflow:hidden}.panel,.vector-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:0;min-height:0}.input-panel,.history-panel{flex-direction:column;gap:12px;padding:16px;display:flex;overflow:hidden}.panel-heading{justify-content:space-between;align-items:center;gap:12px;min-height:34px;display:flex}.panel-heading>div{align-items:baseline;gap:9px;min-width:0;display:flex}.panel-heading h1,.panel-heading h2{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:750;line-height:1}.section-number{color:var(--accent);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.input-state{color:var(--muted);background:var(--panel-soft);border-radius:4px;flex:none;padding:5px 7px;font-size:10px}.input-state.listening{color:var(--accent);background:var(--accent-soft)}.input-state.speaking{color:#fff;background:var(--accent)}.field-group{flex-direction:column;gap:7px;display:flex}.field-label{color:#3e4844;font-size:11px;font-weight:700}.field-label small{color:var(--muted);margin-left:6px;font-size:9px;font-weight:500}.speaker-switch{background:var(--panel-soft);border:1px solid var(--line);border-radius:7px;grid-template-columns:1fr 1fr;padding:3px;display:grid}.speaker-switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:8px 5px;font-size:11px}.speaker-switch button.selected{background:var(--panel);color:var(--accent);font-weight:750;box-shadow:0 1px 3px #1527221a}.monitor{background:#16231f;border:1px solid #2d3f3a;border-radius:8px;padding:10px 11px 8px}.waveform{justify-content:center;align-items:center;gap:2px;height:78px;display:flex;overflow:hidden}.waveform span{background:#42554f;border-radius:1px;flex:1;max-width:4px;min-height:3px;transition:height 90ms,background .16s}.waveform.active span{background:#58bca4}.monitor-caption{color:#8fa39d;justify-content:space-between;gap:8px;margin-top:6px;font-size:8px;display:flex}.record-button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:42px;padding:10px 14px;font-size:12px;font-weight:750;display:flex}.record-button:hover{background:#066e62}.record-button:disabled{opacity:.5;cursor:wait}.record-button.stop{background:var(--danger)}.record-icon{background:#fff;border-radius:50%;width:8px;height:8px;display:block}.record-button.stop .record-icon{border-radius:1px}.file-input{cursor:pointer;background:var(--panel-soft);border:1px dashed #b9c2be;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:9px 11px;display:flex}.file-input:hover,.file-input.dragging{border-color:var(--accent);background:#eef8f5}.file-input span{font-size:11px;font-weight:700}.file-input small{color:var(--muted);font-size:8px}.transcript-field{flex-direction:column;flex:1;gap:7px;min-height:0;display:flex}.transcript-field textarea{resize:none;border:1px solid var(--line);width:100%;min-height:78px;color:var(--ink);background:var(--panel);border-radius:7px;outline:none;flex:1;padding:10px;font-size:11px;line-height:1.65}.transcript-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #087e7014}.transcript-field textarea::placeholder{color:#a0a8a4}.error-banner{background:var(--danger-soft);color:#873c2e;border-radius:6px;align-items:flex-start;gap:7px;padding:8px 9px;font-size:9px;line-height:1.4;display:flex}.error-banner strong{flex:none}.vectors-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;min-height:0;display:grid;overflow:hidden}.vector-card{flex-direction:column;height:100%;padding:16px;display:flex;overflow:hidden}.vector-heading{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.vector-heading .eyebrow{color:var(--accent);margin-bottom:6px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.vector-heading h2{letter-spacing:-.02em;margin:0;font-size:17px;font-weight:750}.dimension{border:1px solid var(--line);color:var(--muted);background:var(--panel-soft);border-radius:4px;flex:none;padding:5px 6px;font:8px ui-monospace,SFMono-Regular,Menlo,monospace}.heatmap{grid-template-columns:repeat(16,minmax(3px,1fr));gap:3px;width:100%;margin:18px 0;display:grid;position:relative}.heat-cell{aspect-ratio:1;border-radius:1px;display:block}.heatmap.empty .heat-cell{background:#e9edea}.heatmap-placeholder{color:#8b9490;place-items:center;font-size:10px;display:grid;position:absolute;inset:0}.vector-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.vector-stats div{flex-direction:column;gap:4px;min-width:0;padding:12px 0;display:flex}.vector-stats div+div{border-left:1px solid var(--line);padding-left:12px}.vector-stats span{color:var(--muted);font:8px ui-monospace,SFMono-Regular,Menlo,monospace}.vector-stats strong{text-overflow:ellipsis;font:14px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.value-strip{grid-template-columns:repeat(8,1fr);gap:4px;margin-top:auto;padding-top:16px;display:grid}.value-strip div{background:var(--panel-soft);border-radius:3px;flex-direction:column;gap:2px;min-width:0;padding:6px 4px;display:flex}.value-strip span{color:#919a96;font:7px ui-monospace,SFMono-Regular,Menlo,monospace}.value-strip strong{text-overflow:clip;font:8px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.history-heading{flex:none}.history-count{color:var(--muted);font-size:10px}.history-list{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.history-list::-webkit-scrollbar{width:5px}.history-list::-webkit-scrollbar-track{background:0 0}.history-list::-webkit-scrollbar-thumb{background:#c5ccc8;border-radius:5px}.history-item{border-bottom:1px solid var(--line);flex:0 0 57px;min-height:0;padding:7px 0;overflow:hidden}.history-topline{grid-template-columns:25px 1fr auto;align-items:center;gap:7px;display:grid}.history-topline .turn-index{color:var(--accent);font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.history-topline strong{min-width:0;font-size:10px}.history-topline>span:last-child{color:var(--muted);font-size:8px}.history-item p{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);margin:4px 0 5px 32px;font-size:9px;overflow:hidden}.turn-bars{flex-direction:column;gap:2px;margin-left:32px;display:flex}.turn-bars i{border-radius:2px;min-width:2px;max-width:100%;height:2px;display:block}.turn-bars i.mid{background:var(--positive)}.turn-bars i.long{background:var(--negative)}.history-empty{text-align:center;height:100%;min-height:120px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.history-empty span{color:#535d59;font-size:12px;font-weight:700}.history-empty p{max-width:190px;margin:7px 0 0;font-size:9px;line-height:1.6}.history-summary{flex:none;grid-template-columns:1fr 1fr;gap:7px;display:grid}.history-summary div{border:1px solid var(--line);background:var(--panel-soft);border-radius:6px;grid-template-columns:1fr auto;align-items:baseline;gap:2px 6px;min-width:0;padding:8px;display:grid}.history-summary span{color:var(--muted);font-size:8px}.history-summary strong{font:14px ui-monospace,SFMono-Regular,Menlo,monospace}.history-summary small{color:#929b97;grid-column:1/-1;font-size:7px}.outline-button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:6px;flex:none;min-height:36px;padding:8px 10px;font-size:10px;font-weight:700}.outline-button:hover:not(:disabled){background:var(--panel-soft);border-color:#aab2ae}.outline-button:disabled{opacity:.4;cursor:default}@media (width<=1180px){.workspace{grid-template-columns:270px minmax(0,1fr) 280px;gap:9px;padding:9px}.input-panel,.history-panel,.vector-card{padding:13px}.heatmap{gap:2px}}@media (height<=720px) and (width>=981px){.app-shell{grid-template-rows:48px minmax(0,1fr)}.workspace{gap:8px;padding:8px}.input-panel,.history-panel,.vector-card{gap:9px;padding:12px}.waveform{height:58px}.monitor{padding-top:7px}.heatmap{margin:12px 0}.value-strip{display:none}.history-item{flex-basis:52px}}@media (width<=980px){body{overflow:auto}.app-shell{height:auto;min-height:100dvh;overflow:visible}.workspace{grid-template-columns:290px minmax(0,1fr);overflow:visible}.history-panel{grid-column:1/-1;min-height:420px}.history-list{overflow:hidden auto}.history-item{flex-basis:auto}}@media (width<=680px){.app-shell{grid-template-rows:auto 1fr}.topbar{grid-template-columns:1fr auto;gap:6px 12px;min-height:58px;padding:9px 12px}.model-state{grid-area:2/1/auto/-1}.turn-count,.signed-in-user{display:none}.workspace{grid-template-columns:1fr;padding:8px}.vectors-panel{grid-template-columns:1fr;overflow:visible}.vector-card{min-height:500px}.history-panel{grid-column:auto}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
