/* ── ASCENT Interview Shell ─────────────────────────────────── */ .iv-shell { min-height: 100dvh; display: flex; flex-direction: column; background: var(--bg-base); } /* Top Bar */ .iv-bar { height: 52px; border-bottom: 1px solid var(--border); background: var(--bg-elevated); display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; padding: 0 var(--space-5); position: sticky; top: 0; z-index: var(--z-nav); gap: var(--space-4); } .iv-bar__left { display: flex; align-items: center; gap: var(--space-2); } .iv-bar__center{ display: flex; align-items: center; justify-content: center; } .iv-bar__right { display: flex; align-items: center; gap: var(--space-3); justify-content: flex-end; } .iv-bar__title { font-family: var(--font-display); font-weight: 700; font-size: var(--text-md); } .iv-bar__divider { width: 1px; height: 16px; background: var(--border-medium); margin: 0 var(--space-1); } .iv-bar__role { font-size: var(--text-sm); color: var(--text-secondary); font-weight: 500; } .iv-bar__name { font-size: var(--text-sm); color: var(--text-secondary); font-weight: 500; } .iv-bar__level { font-size: var(--text-xs) !important; } .iv-warning { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); background: rgba(217,119,6,0.10); border: 1px solid rgba(217,119,6,0.25); border-radius: var(--radius-full); font-size: var(--text-xs); font-weight: 600; color: var(--warning-dark); white-space: nowrap; } /* Main Layout */ .iv-layout { flex: 1; display: grid; grid-template-columns: 1fr 280px; gap: 0; min-height: 0; overflow: hidden; } /* Left: Main question area */ .iv-main { padding: var(--space-6) var(--space-8); display: flex; flex-direction: column; gap: var(--space-5); overflow-y: auto; min-width: 0; } .iv-q-header { display: flex; align-items: center; gap: var(--space-3); } .iv-q-num { font-size: var(--text-sm); font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; } .iv-loading { display: flex; align-items: center; gap: var(--space-3); font-size: var(--text-sm); color: var(--text-secondary); padding: var(--space-6); } .iv-question { font-size: var(--text-xl); font-weight: 500; line-height: 1.5; color: var(--text-primary); padding: var(--space-6) var(--space-7); background: var(--bg-elevated); border: 1.5px solid var(--border); border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); } /* Eval bar */ .iv-eval-bar { position: relative; height: 40px; background: var(--ascent-blue-glow); border: 1px solid rgba(20,184,166,0.2); border-radius: var(--radius-lg); overflow: hidden; display: flex; align-items: center; justify-content: center; } .iv-eval-bar__fill { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, var(--ascent-blue-glow-strong) 50%, transparent 100%); background-size: 200% 100%; animation: evalSweep 1.4s linear infinite; } @keyframes evalSweep { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .iv-eval-bar__label { position: relative; z-index: 1; display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--ascent-blue-700); font-weight: 500; } /* Mode tabs */ .iv-mode-tabs { display: flex; gap: var(--space-2); background: var(--bg-surface); padding: var(--space-1); border-radius: var(--radius-full); border: 1px solid var(--border); width: fit-content; } .iv-mode-tab { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-5); border-radius: var(--radius-full); font-size: var(--text-sm); font-weight: 500; color: var(--text-secondary); background: transparent; transition: all var(--dur-fast) var(--ease-out); } .iv-mode-tab:hover { background: var(--bg-elevated); color: var(--text-primary); } .iv-mode-tab.active { background: var(--bg-elevated); color: var(--text-primary); box-shadow: var(--shadow-xs); } /* Text area */ .iv-text-area-wrap { display: flex; flex-direction: column; gap: var(--space-2); } .iv-textarea { min-height: 160px; resize: vertical; padding: var(--space-4) var(--space-5); font-size: var(--text-base); line-height: 1.65; border-radius: var(--radius-xl); width: 100%; background: var(--bg-elevated); border: 1.5px solid var(--border-medium); transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); } .iv-textarea:focus { border-color: var(--primary); box-shadow: var(--shadow-glow-ascent-blue); } .iv-textarea-hint { display: flex; justify-content: space-between; font-size: var(--text-xs); color: var(--text-muted); padding: 0 var(--space-1); } /* Audio area */ .iv-audio-wrap { display: flex; flex-direction: column; gap: var(--space-4); } .iv-audio-error { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); background: var(--danger-glow); border: 1px solid rgba(220,38,38,0.2); border-radius: var(--radius-lg); font-size: var(--text-sm); color: var(--danger-dark); } .iv-audio-controls { display: flex; flex-direction: column; gap: var(--space-3); align-items: flex-start; } .iv-rec-btn { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-6); border-radius: var(--radius-full); font-size: var(--text-base); font-weight: 600; transition: all var(--dur-fast) var(--ease-out); } .iv-rec-btn--start { background: var(--gradient-ascent-blue); color: #fff; } .iv-rec-btn--start:hover { transform: translateY(-1px); box-shadow: 0 4px 16px rgba(20,184,166,0.3); } .iv-rec-btn--stop { background: var(--danger-glow); color: var(--danger); border: 1.5px solid rgba(220,38,38,0.3); position: relative; } .iv-rec-dot { position: absolute; top: 6px; right: 6px; width: 8px; height: 8px; border-radius: 50%; background: var(--danger); animation: recPulse 1s ease-in-out infinite; } @keyframes recPulse { 0%,100%{opacity:1;} 50%{opacity:0.3;} } .iv-audio-ready { display: flex; align-items: center; gap: var(--space-3); color: var(--success-dark); font-size: var(--text-sm); font-weight: 500; } .iv-audio-preview { width: 100%; height: 36px; } .iv-audio-note { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-xs); color: var(--text-muted); } /* Submit row */ .iv-submit-row { display: flex; align-items: center; justify-content: flex-end; padding-top: var(--space-4); border-top: 1px solid var(--border); margin-top: auto; } .iv-submit { padding: var(--space-3) var(--space-8); font-size: var(--text-md); } /* Sidebar */ .iv-sidebar { border-left: 1px solid var(--border); background: var(--bg-surface); display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-5); overflow-y: auto; min-height: 0; } .iv-posture-card { display: flex; flex-direction: column; gap: var(--space-3); } .iv-posture-card__header { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); } .iv-info-card { display: flex; flex-direction: column; gap: var(--space-2); } .iv-info-row { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--text-secondary); font-weight: 500; } .iv-info-row svg { flex-shrink: 0; color: var(--text-muted); } .iv-tips { display: flex; flex-direction: column; gap: var(--space-3); } .iv-tips__title { font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); } .iv-tips__list { list-style: none; display: flex; flex-direction: column; gap: var(--space-2); } .iv-tips__list li { font-size: var(--text-xs); color: var(--text-secondary); line-height: 1.5; padding-left: var(--space-4); position: relative; } .iv-tips__list li::before { content: "·"; position: absolute; left: var(--space-1); color: var(--ascent-blue-500); font-weight: 700; } /* ── Responsive ─────────────────────────────────────────────── */ /* Tablet */ @media (max-width: 1024px) { .iv-layout { grid-template-columns: 1fr 240px; } .iv-main { padding: var(--space-5) var(--space-6); } } /* Mobile */ @media (max-width: 768px) { /* Stack sidebar below main */ .iv-layout { grid-template-columns: 1fr; overflow: visible; } .iv-main { padding: var(--space-4); overflow: visible; } .iv-sidebar { border-left: none; border-top: 1px solid var(--border); overflow: visible; /* Sidebar items shown inline on mobile */ flex-direction: row; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-4); } .iv-posture-card { flex: 1; min-width: 200px; } .iv-info-card, .iv-tips { flex: 1; min-width: 200px; } /* Top bar: 2-col, hide center warning */ .iv-bar { grid-template-columns: 1fr auto; } .iv-bar__center { display: none; } .iv-bar__right { gap: var(--space-2); } .iv-bar__level { display: none; } /* Question text: smaller on phones */ .iv-question { font-size: var(--text-lg); padding: var(--space-4) var(--space-5); } /* Mode tabs: full width */ .iv-mode-tabs { width: 100%; } .iv-mode-tab { flex: 1; justify-content: center; } /* Submit: full width on mobile */ .iv-submit-row { justify-content: stretch; } .iv-submit { width: 100%; justify-content: center; } } /* Small phone */ @media (max-width: 400px) { .iv-bar__role, .iv-bar__name { display: none; } .iv-question { font-size: var(--text-base); padding: var(--space-3) var(--space-4); } }