:root{--ink: #111;--ink-soft: #555;--muted: #888;--border: #eee;--bg: #fff;--bg-subtle: #fafafa;--chip-bg: #f2f2f2;--danger: #c0392b;--success: #1e7e34;--success-bg: #e6f4ea;--radius: 12px;--radius-sm: 8px;--ink-title: #333;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit}a{color:inherit}.page{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.page-main{flex:1 1 auto;min-height:0;overflow-y:auto}.page-body{width:100%;max-width:720px;margin:0 auto;padding:20px;flex:1}.page-body--narrow{max-width:480px}.topbar{border-bottom:1px solid var(--border);background:var(--bg)}.topbar-inner{width:100%;max-width:720px;margin:0 auto;padding:20px}.greeting{text-align:center;margin:0 0 26px}.brand-logo{display:inline-flex;align-items:baseline;gap:.09em;font-family:Kumbh Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1}.brand-logo-ch{font-weight:700;line-height:1}.brand-logo-o{width:.74em;height:.74em;color:currentColor;flex-shrink:0}.nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.nav-link{font-family:Jost,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);font-weight:600;font-size:15px;text-decoration:none;background:none;border:none;padding:0;cursor:pointer}.nav-link:hover{text-decoration:underline}.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);padding:0 20px;max-width:720px;margin:0 auto}.admin-tab{padding:12px 14px;font-size:14px;font-weight:600;color:var(--ink-soft);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.admin-tab:hover{color:var(--ink)}.admin-tab.active{color:var(--ink);border-bottom-color:var(--ink)}.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 24px;text-align:center}.title{margin:0 0 8px;text-align:center}.page-heading{font-family:Jost,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:20px;font-weight:600;color:var(--ink-title)}.subtitle{font-size:14px;color:var(--ink-soft);margin:0 0 32px;text-align:center}.empty{text-align:center;color:var(--muted);margin-top:40px;padding:0 24px}.hint{color:var(--muted)}.error-text{color:var(--danger);text-align:center}.section-title{font-size:13px;font-weight:700;margin:24px 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.field{width:100%;border:1px solid #ddd;border-radius:var(--radius-sm);padding:14px;margin-bottom:12px;font-size:16px}.field:focus{outline:none;border-color:var(--ink)}.field-label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 6px}.editable-text{display:block;width:calc(100% + 12px);border:none;border-radius:6px;background:none;padding:4px 6px;margin:0 -6px 8px;font:inherit;color:inherit;cursor:text;resize:none;overflow:hidden;transition:background-color .15s ease,box-shadow .15s ease}.editable-text:hover{background-color:var(--bg-subtle)}.editable-text:focus{outline:none;background-color:var(--bg-subtle);box-shadow:0 0 0 2px #1111111a}.editable-text::placeholder{color:var(--muted)}.saved-flash{font-size:11px;font-weight:600;color:var(--success)}.link-btn-danger{color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);padding:14px 20px;font-size:15px;font-weight:600;cursor:pointer;background:var(--ink);color:#fff}.btn:disabled{opacity:.6;cursor:default}.btn:hover:not(:disabled){opacity:.9}.btn-block{width:100%}.btn-secondary{background:none;color:var(--muted);padding:12px}.btn-secondary:hover:not(:disabled){color:var(--ink)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:10px 14px;font-size:13px;border-radius:var(--radius-sm)}.btn-outline{background:transparent;color:var(--ink);border:1px solid #d6d6d6}.btn-outline:hover:not(:disabled){opacity:1;border-color:#b8b8b8;background:var(--bg-subtle)}.link-btn{background:none;border:none;color:var(--ink);font-weight:600;font-size:12px;cursor:pointer;padding:0}.seg-toggle{display:inline-flex;border:1px solid #d6d6d6;border-radius:var(--radius-sm);padding:2px;gap:2px}.seg-toggle button{border:none;background:none;color:var(--muted);font-size:13px;font-weight:600;padding:7px 12px;border-radius:calc(var(--radius-sm) - 2px);cursor:pointer}.seg-toggle button.active{background:var(--ink);color:#fff}.seg-toggle-full{display:flex;width:100%}.seg-toggle-full button{flex:1;text-align:center}.table-wrap{overflow-x:auto}.ranking-table{width:100%;border-collapse:collapse;font-size:14px}.ranking-table th,.ranking-table td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.ranking-table th{color:var(--muted);font-size:12px;font-weight:600}.ranking-table .rank-col{width:32px;text-align:center;font-weight:700}.ranking-table td.numeric{text-align:right;font-weight:700;color:var(--muted)}.ranking-table th.numeric{text-align:right}.ranking-table tbody tr.me-row{background:var(--bg-subtle)}.ranking-table .sort-th{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}.ranking-table .sort-th.active,.ranking-table td.col-active{color:var(--ink)}.link-btn:hover{text-decoration:underline}.card{border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card+.card{margin-top:12px}.scenario-card{position:relative;padding-right:40px;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.scenario-card:hover,.scenario-card:focus-within{border-color:#d6d6d6;background:var(--bg-subtle);box-shadow:0 10px 24px -14px #11111159}.scenario-card-arrow{position:absolute;top:16px;right:14px;display:flex;color:var(--muted);opacity:0;transform:translate(-4px);transition:opacity .15s ease,transform .15s ease,color .15s ease;pointer-events:none}.scenario-card:hover .scenario-card-arrow,.scenario-card:focus-within .scenario-card-arrow{opacity:1;transform:translate(0);color:var(--ink)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between}.card-title{font-family:Jost,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-title);margin:0 0 6px}.card-text{font-size:14px;color:var(--ink-soft);margin:0 0 10px;line-height:1.4}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:11px;background:var(--chip-bg);color:var(--ink-soft);border-radius:6px;padding:4px 8px}.badge{font-size:11px;color:var(--muted);background:var(--chip-bg);border-radius:6px;padding:4px 8px;text-transform:uppercase;white-space:nowrap}.badge-approved{color:var(--success);background:var(--success-bg)}.badge-gap{color:var(--danger);background:#fbeaea}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner-dark{border:2px solid rgba(0,0,0,.15);border-top-color:var(--ink)}@keyframes spin{to{transform:rotate(360deg)}}.roleplay-page{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle)}.transcript{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:85%;border-radius:14px;padding:12px}.bubble-me{align-self:flex-end;background:var(--ink);color:#fff}.bubble-client{align-self:flex-start;background:#eee;color:var(--ink)}.bubble-label{font-size:11px;opacity:.8;margin-bottom:2px}.bubble-text{font-size:15px;white-space:pre-wrap}.typing-indicator{display:inline-flex;align-items:center;gap:4px;padding:2px 0}.typing-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.4;animation:typing-bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.controls{padding:20px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border);background:var(--bg)}.talk-btn{position:relative;background:var(--ink);color:#fff;border:none;border-radius:100px;padding:22px;font-size:16px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.talk-btn:focus{outline:none}.talk-btn.active{background:var(--danger);animation:talk-btn-pulse 1.4s ease-out infinite}.talk-btn:disabled{opacity:.5;cursor:default}@keyframes talk-btn-pulse{0%{box-shadow:0 0 #dc262673}to{box-shadow:0 0 0 24px #dc262600}}.recording-indicator{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;color:var(--danger);font-variant-numeric:tabular-nums}.recording-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:recording-dot-blink 1s ease-in-out infinite}@keyframes recording-dot-blink{0%,to{opacity:1}50%{opacity:.25}}.bubble-client.bubble-closed{background:var(--success-bg);color:var(--success);animation:bubble-closed-pop .4s ease-out}@keyframes bubble-closed-pop{0%{transform:scale(.92)}60%{transform:scale(1.03)}to{transform:scale(1)}}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:1000}.confetti-piece{position:absolute;top:-12px;width:8px;height:14px;opacity:.9;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--drift),110vh) rotate(var(--rotation));opacity:0}}.overall-card{background:var(--ink);border-radius:16px;padding:24px;text-align:center;margin-bottom:20px}.overall-score{font-size:40px;font-weight:800;color:#fff;line-height:1}.overall-label{color:#ccc;margin:6px 0 12px;font-size:13px}.overall-feedback{color:#fff;line-height:1.5}.turn-row{padding:10px 0;border-bottom:1px solid #f2f2f2}.turn-speaker{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:2px}.stats-row{display:flex;justify-content:space-between}.stat{text-align:center}.stat-value{font-size:20px;font-weight:700}.stat-label{font-size:12px;color:var(--muted);margin-top:2px}.chart-wrap{position:relative}.chart-grid{stroke:var(--border);stroke-width:1}.chart-crosshair{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3}.chart-tick{font-size:10px;fill:var(--muted)}.chart-endlabel{font-size:12px;font-weight:700}.chart-tooltip{position:absolute;top:0;background:var(--ink);color:#fff;border-radius:8px;padding:8px 10px;font-size:12px;pointer-events:none;white-space:nowrap;z-index:2;box-shadow:0 4px 12px #0000002e}.chart-tooltip--center{transform:translate(-50%)}.chart-tooltip--start{transform:translate(0)}.chart-tooltip--end{transform:translate(-100%)}.chart-tooltip-date{font-weight:700;margin-bottom:4px}.chart-tooltip-row{display:flex;align-items:center;gap:6px;padding:2px 0}.chart-tooltip-swatch{width:10px;height:2px;border-radius:1px;flex-shrink:0}.chart-tooltip-name{color:#ccc;flex:1}.chart-tooltip-value{font-weight:700;color:#fff}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.chart-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}.chart-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.skill-tile{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px}.skill-tile-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.skill-tile-name{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:600;color:var(--ink-soft)}.skill-tile-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-tile-swatch{width:8px;height:8px;border-radius:50%;flex-shrink:0}.skill-tile-value{font-size:18px;font-weight:700;flex-shrink:0}.skill-tile-delta{font-size:12px;font-weight:700;margin-top:4px}.upload-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.switch{width:44px;height:26px;flex-shrink:0}@media (max-width: 480px){.page-body{padding:16px}.topbar-inner{padding:22px 16px}}
