@charset "UTF-8";
:root {
  --bg:#fafaf8;
  --surface:#fff;
  --ink:#202e29;
  --muted:#6d776e;
  --line:#e3e7e0;
  --accent:#28634d;
  --accent-hover:#1c4e3c;
  --tint:#edf3ee;
  --danger:#a44337;
  --amber:#926b24;
  --radius:8px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:14px/1.5 var(--font);
  -webkit-font-smoothing:antialiased;
}
a {
  color:var(--accent);
  text-decoration:none;
}
a:hover {
  text-decoration:underline;
}
button,input,textarea,select {
  font:inherit;
}
button,select,summary {
  cursor:pointer;
}
button:disabled {
  cursor:not-allowed;
  opacity:.5;
}
button {
  color:inherit;
}
input,select,textarea {
  min-width:0;
  color:var(--ink);
}
input:not([type=checkbox]):not([type=hidden]),select,textarea {
  border:1px solid #d6dcd4;
  border-radius:6px;
  background:var(--surface);
  padding:10px 12px;
}
input[type=checkbox] {
  accent-color:var(--accent);
  width:16px;
  height:16px;
  margin:0;
}
textarea {
  width:100%;
  resize:vertical;
  line-height:1.65;
}
input::placeholder,textarea::placeholder {
  color:#738077;
}
input:focus,textarea:focus,select:focus {
  border-color:var(--accent);
}
:focus-visible {
  outline:3px solid #94b7a3;
  outline-offset:3px;
}
h1,h2,h3,p {
  margin-top:0;
}
h1 {
  font-size:31px;
  line-height:1.22;
  letter-spacing:-1.05px;
  font-weight:650;
  margin-bottom:10px;
}
h2 {
  font-size:16px;
  letter-spacing:-.25px;
  margin-bottom:0;
  font-weight:650;
}
h3 {
  font-size:14px;
  font-weight:650;
  margin-bottom:8px;
}
p {
  margin-bottom:12px;
}
p:last-child {
  margin-bottom:0;
}
svg {
  display:block;
}
form {
  margin:0;
}
[hidden] {
  display:none!important;
}
.visually-hidden {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.skip-link {
  position:fixed;
  top:-80px;
  left:16px;
  padding:12px;
  background:var(--surface);
  z-index:100;
}
.skip-link:focus {
  top:8px;
}
.muted {
  color:var(--muted);
}
.small {
  font-size:12px;
  line-height:1.55;
}
.eyebrow {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.8px;
  color:var(--accent);
  font-weight:700;
  margin-bottom:12px;
}
.app-header {
  min-height:75px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  gap:21px;
  padding:0 40px;
  background:var(--surface);
}
.brand {
  font-size:20px;
  color:var(--ink);
  font-weight:650;
  letter-spacing:-.65px;
  display:inline-flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
.brand:hover {
  text-decoration:none;
}
.brand-mark {
  width:29px;
  height:29px;
  display:flex;
  gap:3px;
  align-items:center;
  justify-content:center;
  background:var(--accent);
  border-radius:7px;
}
.brand-mark i {
  width:2px;
  display:block;
  background:#fff;
  border-radius:2px;
  height:7px;
}
.brand-mark i:nth-child(2),.brand-mark i:nth-child(4) {
  height:13px;
}
.brand-mark i:nth-child(3) {
  height:19px;
}
.deployment-brand {
  font-size:12px;
  color:var(--muted);
  border-left:1px solid var(--line);
  padding-left:21px;
}
.app-nav {
  display:flex;
  gap:26px;
  align-self:stretch;
  align-items:stretch;
  margin-left:auto;
}
.app-nav a {
  display:flex;
  align-items:center;
  position:relative;
  font-size:12px;
  color:var(--muted);
}
.app-nav a[aria-current=page] {
  color:var(--ink);
  font-weight:600;
}
.app-nav a[aria-current=page]:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  background:var(--accent);
  height:2px;
}
.logout-form {
  margin-left:8px;
}
.private-label {
  margin-left:auto;
  font-size:12px;
  color:var(--muted);
}
.main-shell {
  padding:43px 40px 28px;
  max-width:1680px;
  margin:auto;
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:9px;
  min-height:41px;
  padding:9px 16px;
  border:1px solid transparent;
  border-radius:6px;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
  text-decoration:none;
  transition:background .12s,border-color .12s;
}
.button:hover {
  text-decoration:none;
}
.button.primary {
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
}
.button.primary:hover {
  background:var(--accent-hover);
}
.button.secondary {
  background:var(--surface);
  color:var(--ink);
  border-color:#d6ded3;
}
.button.secondary:hover {
  background:#f0f3ee;
}
.button.compact {
  min-height:33px;
  padding:7px 11px;
  font-size:11px;
}
.button.disabled,.icon-button.disabled {
  opacity:.4;
  cursor:default;
}
.text-button {
  border:0;
  padding:4px 0;
  background:none;
  font-size:12px;
  color:var(--accent);
  font-weight:550;
}
.text-button:hover:not(:disabled) {
  text-decoration:underline;
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:33px;
  height:33px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:5px;
  font-size:18px;
  color:var(--ink);
}
.icon-button:hover:not(.disabled) {
  background:var(--tint);
  text-decoration:none;
}
.full-width {
  width:100%;
}
.library-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:30px;
}
.library-heading>div>p:last-child {
  font-size:13px;
}
.library-toolbar {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin-bottom:23px;
}
.search-main {
  display:flex;
  align-items:stretch;
  gap:10px;
  padding:12px;
}
.search-input-wrap {
  display:flex;
  align-items:center;
  flex:1;
  border:1px solid var(--line);
  border-radius:5px;
  background:#fcfdfb;
}
.search-input-wrap:focus-within {
  outline:2px solid #94b7a3;
  outline-offset:1px;
}
.search-icon {
  font-size:28px;
  line-height:1;
  display:block;
  margin-left:12px;
  color:#7a887d;
  transform:rotate(-18deg);
}
.search-input-wrap input[type=search] {
  flex:1;
  width:100%;
  border:0!important;
  outline:0!important;
  background:transparent;
  padding:11px 12px;
  font-size:13px;
}
.search-mode {
  display:flex;
}
.search-mode select {
  font-size:12px;
  padding-right:29px;
  border-color:var(--line);
}
.filter-bar {
  display:flex;
  gap:17px;
  align-items:center;
  padding:10px 14px;
  border-top:1px solid var(--line);
  background:#fdfefb;
  border-radius:0 0 var(--radius) var(--radius);
  min-height:52px;
}
.date-filters {
  display:flex;
  align-items:center;
  gap:15px;
}
.date-filters label,.sort-control {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
}
.date-filters input[type=date] {
  font-size:11px;
  padding:5px 7px;
  min-height:29px;
  border-color:var(--line);
  width:129px;
}
.sort-control {
  margin-left:auto;
}
.sort-control select {
  font-size:11px;
  padding:6px 24px 6px 8px;
  min-height:29px;
  border-color:var(--line);
}
.apply-filters,.clear-filters {
  font-size:11px;
}
.clear-filters {
  color:var(--muted);
}
.results-heading {
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 11px;
  font-size:12px;
}
.results-heading p {
  margin:0;
}
.results-heading strong {
  font-weight:600;
}
.results-timezone {
  margin-left:auto;
  font-size:10px;
}
.recording-list {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.recording-list-head,.recording-row {
  display:grid;
  grid-template-columns:124px minmax(200px,1.16fr) minmax(205px,.94fr) minmax(245px,1.42fr);
  column-gap:24px;
  align-items:center;
}
.recording-list-head {
  padding:12px 18px;
  background:#f6f8f3;
  border-bottom:1px solid var(--line);
  font-size:10px;
  font-weight:650;
  color:#677560;
  letter-spacing:.65px;
  text-transform:uppercase;
}
.recording-row {
  padding:17px 18px;
  border-bottom:1px solid var(--line);
  min-height:82px;
  transition:background .12s;
  cursor:pointer;
}
.recording-row:last-child {
  border-bottom:0;
}
.recording-row:hover {
  background:#f9fbf6;
}
.recording-row:focus-within {
  background:#f6faf5;
}
.recording-date {
  font-size:11px;
  font-variant-numeric:tabular-nums;
  color:#4c5a50;
}
.row-secondary {
  font-size:10px;
  color:#727d73;
  display:block;
  margin-top:2px;
}
.recording-title-cell {
  min-width:0;
}
.recording-title {
  color:var(--ink);
  font-size:12px;
  font-weight:650;
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.recording-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  min-height:15px;
  margin-top:4px;
  font-size:10px;
  color:var(--muted);
}
.recording-meta>span+span:before {
  content:"·";
  margin-right:8px;
  color:#a4ada3;
}
.recording-keywords {
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.keyword-chip {
  background:#eff3ed;
  border:1px solid #e1e8dd;
  border-radius:4px;
  padding:3px 6px;
  color:#5b6b54;
  font-size:10px;
  line-height:1.25;
  white-space:nowrap;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:background .12s;
}
.keyword-chip:hover {
  background:#e2ebdc;
  text-decoration:none;
  color:#334d32;
}
.keyword-chip.selected {
  background:#e1eddf;
  border-color:#b8cdb2;
  color:#3e6136;
  font-size:11px;
  padding:4px 8px;
  display:inline-flex;
  gap:10px;
}
.recording-summary {
  min-width:0;
  font-size:11px;
  line-height:1.6;
  color:#677368;
}
.recording-summary p {
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin:0;
}
.search-excerpt {
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-top:5px;
  color:#477252;
  line-height:1.6;
  font-size:11px;
}
.search-excerpt span {
  font-variant-numeric:tabular-nums;
  font-weight:600;
  background:#eaf1e7;
  border-radius:3px;
  padding:1px 3px;
  margin-right:4px;
}
.pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:17px;
  gap:20px;
}
.pagination>p {
  margin:0;
}
.pagination>div {
  display:flex;
  align-items:center;
  gap:13px;
}
.page-number {
  font-variant-numeric:tabular-nums;
  font-size:11px;
  color:var(--muted);
}
.library-footnote {
  text-align:center;
  color:#727d73;
  font-size:10px;
  margin-top:33px;
}
.empty-state {
  padding:64px 24px 70px;
  text-align:center;
  border:1px dashed #dce3d6;
  border-radius:var(--radius);
  background:var(--surface);
}
.empty-state h2 {
  font-size:20px;
  margin:16px 0 10px;
  letter-spacing:-.5px;
}
.empty-state p {
  font-size:13px;
  max-width:420px;
  margin:0 auto 21px;
}
.empty-wave {
  font-size:43px;
  display:block;
  color:#8aa781;
  line-height:1;
}
.notice {
  padding:12px 15px;
  font-size:12px;
  border:1px solid #d4e2d0;
  background:#f1f6ed;
  border-radius:6px;
  color:#3c6442;
  overflow-wrap:anywhere;
}
.notice.warning {
  color:#84621d;
  border-color:#e8dbb9;
  background:#faf6e9;
}
.notice.error {
  color:var(--danger);
  border-color:#eed5cf;
  background:#fff5f1;
}
.flash-messages {
  margin:20px 40px 0;
}
.flash-messages .notice {
  margin-bottom:8px;
}
.upload-panel {
  background:var(--surface);
  border:1px solid #cfdccb;
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:24px;
}
.section-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
  margin-bottom:17px;
}
.section-heading p {
  margin:5px 0 0;
}
.upload-options {
  display:flex;
  align-items:flex-end;
  gap:22px;
  margin-bottom:16px;
}
.upload-options label {
  font-size:11px;
  font-weight:600;
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:195px;
}
.upload-options select {
  font-size:12px;
  padding:8px 10px;
}
.upload-options p {
  max-width:380px;
  margin-bottom:6px;
}
.drop-zone {
  border:1px dashed #c7d4c1;
  background:#f7faf3;
  border-radius:6px;
  display:flex;
  align-items:center;
  gap:16px;
  padding:19px;
}
.drop-zone.is-dragging {
  background:#e8f2e2;
  border-color:var(--accent);
  outline:3px solid #dbe8d6;
}
.drop-zone strong {
  font-size:13px;
}
.drop-zone p {
  margin:4px 0 0;
  font-size:11px;
}
.upload-glyph {
  font-size:31px;
  color:var(--accent);
  line-height:1;
  width:27px;
  text-align:center;
}
.file-picker {
  margin-left:auto;
  cursor:pointer;
}
.drop-zone:focus-within .file-picker {
  outline:3px solid #94b7a3;
  outline-offset:3px;
}
.upload-queue {
  list-style:none;
  padding:0;
  margin:12px 0 0;
  display:grid;
  gap:8px;
}
.upload-item {
  display:grid;
  grid-template-columns:minmax(120px,1fr) minmax(100px,1fr) auto;
  column-gap:16px;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding:11px 0;
}
.upload-item:last-child {
  border-bottom:0;
}
.upload-name {
  font-size:12px;
  font-weight:550;
  overflow-wrap:anywhere;
}
.upload-size {
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:400;
  margin-top:2px;
}
.upload-progress-wrap {
  min-width:0;
}
.upload-progress {
  width:100%;
  height:4px;
  display:block;
  accent-color:var(--accent);
  border:0;
  border-radius:3px;
  overflow:hidden;
}
.upload-progress::-webkit-progress-bar {
  background:#e8eee3;
}
.upload-progress::-webkit-progress-value {
  background:var(--accent);
}
.upload-state {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:5px;
  overflow-wrap:anywhere;
}
.upload-item.failed .upload-state {
  color:var(--danger);
}
.upload-action {
  font-size:11px;
}
.status-failed {
  color:var(--danger)!important;
}
.status-running {
  color:var(--amber)!important;
}
.status-pending {
  color:var(--muted)!important;
}
.status-succeeded {
  color:var(--accent)!important;
}
.desk-shell {
  max-width:1440px;
  padding-top:25px;
}
.desk-navigation {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:28px;
}
.back-link {
  font-size:12px;
  color:#617061;
}
.desk-navigation nav {
  display:flex;
  gap:7px;
}
.desk-heading {
  position:relative;
  margin-bottom:22px;
  padding-right:170px;
}
.desk-heading h1 {
  font-size:30px;
  line-height:1.3;
  margin-bottom:11px;
  overflow-wrap:anywhere;
}
.desk-heading .eyebrow {
  margin-bottom:8px;
}
.desk-metadata {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:13px;
  font-size:11px;
  color:var(--muted);
}
.desk-metadata>span:before {
  content:"·";
  margin-right:13px;
  color:#a3ada1;
}
.participants {
  font-size:12px;
  color:#63705f;
  margin-top:10px;
}
.metadata-editor {
  margin-top:14px;
}
.metadata-editor>summary {
  position:absolute;
  right:0;
  top:39px;
  font-size:11px;
  color:var(--accent);
}
details>summary {
  font-size:12px;
  color:var(--accent);
  cursor:pointer;
}
details>summary:hover {
  text-decoration:underline;
}
.metadata-form {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:6px;
  padding:20px;
  max-width:650px;
  margin-top:13px;
}
.stage-status {
  margin-bottom:20px;
}
.stage-chips {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
}
.stage-chip {
  background:#f1f4ee;
  border:1px solid #e1e7dc;
  color:#6b7767;
  font-size:10px;
  padding:5px 8px;
  border-radius:5px;
  display:inline-flex;
  gap:8px;
}
.stage-chip strong {
  font-weight:600;
}
.stage-chip.status-failed {
  background:#fff2ed;
  border-color:#f0d9d0;
}
.stage-chip.status-running {
  background:#faf5e9;
  border-color:#ece2cb;
}
.poll-state {
  font-size:10px;
  margin-left:auto;
}
.stage-error {
  border:1px solid #ebd5cd;
  background:#fff7f3;
  border-radius:6px;
  margin-top:10px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:12px 15px;
  font-size:11px;
  overflow-wrap:anywhere;
}
.stage-error>div {
  min-width:0;
}
.stage-error strong {
  color:#925346;
  font-weight:600;
}
.stage-error p {
  color:#8d7265;
  margin:4px 0 0;
  white-space:pre-wrap;
}
.player-panel {
  background:var(--surface);
  border:1px solid #dce5d8;
  border-radius:var(--radius);
  padding:17px 20px 13px;
  margin-bottom:30px;
  box-shadow:0 2px 9px #253b2010;
}
.player-topline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:11px;
  gap:12px;
}
.player-label {
  font-size:10px;
  text-transform:uppercase;
  font-weight:650;
  letter-spacing:1px;
  color:#61765b;
  display:flex;
  align-items:center;
  gap:8px;
}
.live-dot {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#81a371;
}
.player-topline>a {
  font-size:11px;
}
audio {
  width:100%;
  height:42px;
  display:block;
}
audio:not([src]) {
  opacity:.5;
}
.player-options {
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:20px;
  font-size:11px;
}
.speed-control {
  display:flex;
  align-items:center;
  gap:8px;
}
.speed-control select {
  font-size:11px;
  padding:3px 20px 3px 7px;
  border-color:var(--line);
}
.follow-control {
  display:flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
}
.player-options>.small {
  margin-left:auto;
  font-size:10px;
}
.player-unavailable {
  margin:10px 0 0;
}
.desk-columns {
  display:grid;
  grid-template-columns:minmax(0,1.85fr) minmax(275px,1fr);
  gap:37px;
  align-items:start;
}
.transcript-panel>.section-heading {
  padding:0 1px 14px;
  border-bottom:1px solid var(--line);
  margin-bottom:0;
}
.export-links {
  display:flex;
  gap:13px;
  font-size:10px;
  font-weight:600;
  padding-top:3px;
}
.transcript-content {
  max-height:calc(100vh - 280px);
  min-height:300px;
  overflow-y:auto;
  padding:8px 10px 30px 0;
  scrollbar-width:thin;
  scrollbar-color:#d4dfcd transparent;
  border-radius:4px;
  scroll-padding:60px;
  overscroll-behavior:contain;
}
.transcript-segment {
  cursor:pointer;
  display:grid;
  grid-template-columns:55px minmax(0,1fr);
  gap:15px;
  padding:15px 14px 15px 11px;
  margin:2px 0;
  border-left:2px solid transparent;
  border-radius:0 5px 5px 0;
  transition:background .1s,border-color .1s;
}
.transcript-segment.is-active {
  background:#edf3e8;
  border-left-color:#6c9060;
}
.segment-timestamp {
  font-size:10px;
  line-height:1.6;
  color:#7d8b76;
  background:none;
  border:0;
  padding:2px 0;
  text-align:left;
  align-self:start;
  font-variant-numeric:tabular-nums;
}
.segment-timestamp:hover {
  color:var(--accent);
  text-decoration:underline;
}
.is-active .segment-timestamp {
  color:var(--accent);
  font-weight:650;
}
.speaker-label {
  display:block;
  font-size:10px;
  font-weight:650;
  color:#596d52;
  margin-bottom:5px;
}
.segment-copy p {
  font-size:13px;
  line-height:1.8;
  color:#43513d;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  margin:0;
}
.transcript-empty {
  padding:48px 35px;
  text-align:center;
}
.transcript-empty h3 {
  font-size:17px;
  margin:20px 0 11px;
}
.transcript-empty p {
  font-size:12px;
  max-width:370px;
  margin:auto;
}
.analysis-panel {
  background:#f1f4ed;
  border:1px solid #e4e9de;
  border-radius:var(--radius);
  padding:20px 21px 22px;
}
.analysis-panel>.section-heading {
  border-bottom:1px solid #dfe6d8;
  padding-bottom:14px;
  margin-bottom:17px;
  align-items:center;
}
.analysis-panel .text-button {
  font-size:10px;
}
.summary-lede {
  font-size:13px;
  line-height:1.65;
  color:#43563b;
  font-weight:600;
  padding-bottom:15px;
  border-bottom:1px solid #dfe6d8;
  margin-bottom:15px;
}
.summary-text {
  white-space:pre-wrap;
  font-size:12px;
  line-height:1.8;
  color:#526349;
  overflow-wrap:anywhere;
}
.summary-provenance {
  font-size:10px;
  margin-top:18px;
}
.summary-empty {
  padding:4px 0 18px;
  font-size:12px;
}
.desk-keywords {
  border-top:1px solid #dfe6d8;
  margin-top:22px;
  padding-top:16px;
}
.desk-keywords h3 {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:#77886c;
  margin-bottom:10px;
}
.desk-keywords .keyword-chip {
  background:#e5ecdf;
  border-color:#dbe4d4;
}
.analysis-explanation {
  font-size:10px;
  line-height:1.7;
  margin-top:23px;
  margin-bottom:9px;
}
.analysis-panel>#analysis-content>a {
  font-size:11px;
}
.analysis-history {
  border-top:1px solid #dfe6d8;
  margin-top:19px;
  padding-top:14px;
}
.analysis-history>summary {
  font-size:11px;
}
.analysis-history ol {
  list-style:none;
  padding:0;
  margin:14px 0 0;
}
.analysis-history li {
  padding:11px 0;
  border-top:1px solid #dfe6d8;
  font-size:11px;
}
.analysis-history li>div {
  display:flex;
  gap:12px;
  justify-content:space-between;
}
.analysis-history li>p {
  font-size:10px;
  margin:4px 0 9px;
}
.analysis-history li details>summary {
  font-size:10px;
}
.analysis-history li details>p {
  margin-top:10px;
}
.history-text {
  font-size:11px;
}
.error-text {
  color:var(--danger);
}
.stacked-form p {
  margin-bottom:17px;
}
.stacked-form label {
  display:block;
  font-size:12px;
  font-weight:550;
  margin-bottom:7px;
}
.stacked-form input:not([type=checkbox]):not([type=hidden]) {
  width:100%;
  min-height:41px;
}
.stacked-form select {
  width:100%;
}
.stacked-form .helptext {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:6px;
  font-weight:400;
}
.errorlist {
  color:var(--danger);
  font-size:12px;
  list-style:none;
  padding:10px 12px;
  margin:0 0 10px;
  background:#fff0ec;
  border-radius:5px;
}
.login-shell {
  max-width:470px;
  margin:0 auto;
  padding:105px 24px 70px;
}
.login-panel .eyebrow {
  margin-bottom:17px;
}
.login-panel h1 {
  font-size:33px;
  letter-spacing:-1px;
  max-width:320px;
  margin-bottom:14px;
}
.login-intro {
  font-size:14px;
  line-height:1.75;
  max-width:330px;
  margin-bottom:31px;
}
.login-footnote {
  font-size:11px;
  color:var(--muted);
  text-align:center;
  margin-top:22px;
}
.settings-shell {
  max-width:950px;
  padding-top:30px;
}
.settings-heading {
  margin-top:36px;
  margin-bottom:27px;
}
.settings-heading h1 {
  font-size:29px;
}
.settings-heading>.muted {
  font-size:13px;
}
.prompt-panel {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
}
.prompt-panel>.section-heading {
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.version-label {
  background:var(--tint);
  font-size:10px;
  padding:4px 8px;
  color:#68835a;
  border-radius:4px;
}
.prompt-form textarea {
  min-height:360px;
  font-family:var(--font);
  font-size:13px;
  padding:15px;
}
.prompt-save {
  display:flex;
  align-items:center;
  gap:25px;
  justify-content:space-between;
  padding-top:5px;
}
.prompt-save p {
  margin:0;
  max-width:510px;
  font-size:11px;
}
.prompt-contract {
  padding:26px 2px 0;
  max-width:730px;
}
.prompt-contract h2 {
  font-size:14px;
  margin-bottom:10px;
}
.prompt-contract p {
  font-size:12px;
  line-height:1.75;
}
.prompt-contract p.small {
  font-size:11px;
}
@media(min-width:1500px) {
  .recording-list-head,.recording-row {
    grid-template-columns:140px minmax(255px,1.14fr) minmax(260px,1fr) minmax(325px,1.5fr);
  }
}
@media(max-width:1150px) {
  .app-header {
    padding:0 26px;
  }
  .main-shell {
    padding-left:26px;
    padding-right:26px;
  }
  .recording-list-head,.recording-row {
    grid-template-columns:100px minmax(165px,1.1fr) minmax(160px,.9fr) minmax(195px,1.15fr);
    column-gap:17px;
  }
  .recording-row {
    padding:15px 14px;
  }
  .recording-list-head {
    padding-left:14px;
    padding-right:14px;
  }
  .keyword-chip {
    font-size:9px;
    padding:3px 5px;
  }
  .desk-columns {
    gap:24px;
    grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);
  }
  .analysis-panel {
    padding:17px;
  }
  .flash-messages {
    margin-left:26px;
    margin-right:26px;
  }
}
@media(max-width:850px) {
  .app-header {
    min-height:67px;
    padding:0 21px;
    gap:15px;
  }
  .deployment-brand {
    font-size:10px;
    padding-left:15px;
  }
  .app-nav {
    gap:17px;
  }
  .main-shell {
    padding:29px 21px 24px;
  }
  .library-heading {
    margin-bottom:24px;
  }
  .recording-list-head,.recording-row {
    grid-template-columns:91px minmax(155px,1fr) minmax(150px,1fr);
    gap:13px;
  }
  .recording-list-head>span:last-child {
    display:none;
  }
  .recording-summary {
    grid-column:2/4;
    padding-top:2px;
  }
  .recording-row {
    min-height:109px;
    row-gap:7px;
  }
  .recording-title {
    font-size:12px;
  }
  .recording-date {
    align-self:start;
    padding-top:1px;
  }
  .recording-keywords {
    align-self:start;
  }
  .recording-summary p {
    font-size:11px;
  }
  .filter-bar {
    gap:12px;
    flex-wrap:wrap;
  }
  .sort-control {
    margin-left:0;
  }
  .clear-filters {
    margin-left:auto;
  }
  .desk-heading {
    padding-right:0;
  }
  .metadata-editor>summary {
    position:static;
  }
  .desk-columns {
    grid-template-columns:minmax(0,1.5fr) minmax(245px,1fr);
    gap:19px;
  }
  .transcript-segment {
    padding-left:6px;
    padding-right:8px;
    grid-template-columns:43px minmax(0,1fr);
    gap:9px;
  }
  .segment-copy p {
    font-size:12px;
  }
  .player-panel {
    margin-bottom:24px;
  }
  .summary-text {
    font-size:11px;
  }
  .desk-heading h1 {
    font-size:27px;
  }
}
@media(max-width:680px) {
  html {
    scroll-behavior:auto;
  }
  .app-header {
    padding:14px 16px 0;
    gap:12px;
    flex-wrap:wrap;
    min-height:100px;
  }
  .brand {
    font-size:19px;
  }
  .brand-mark {
    height:26px;
    width:26px;
    gap:3px;
  }
  .deployment-brand {
    font-size:10px;
    padding-left:12px;
  }
  .app-nav {
    order:3;
    margin:0;
    flex-basis:100%;
    min-height:39px;
    gap:24px;
  }
  .app-nav a {
    font-size:11px;
  }
  .logout-form {
    margin-left:auto;
  }
  .logout-form .text-button {
    font-size:10px;
  }
  .private-label {
    font-size:10px;
  }
  .app-header:has(.private-label) {
    min-height:65px;
    padding-bottom:14px;
  }
  .main-shell {
    padding:25px 16px 22px;
  }
  .library-heading {
    align-items:flex-start;
    gap:15px;
  }
  .library-heading h1 {
    font-size:26px;
  }
  .library-heading .eyebrow {
    font-size:8px;
    letter-spacing:1.5px;
    margin-bottom:8px;
  }
  .library-heading>div>p:last-child {
    font-size:11px;
    max-width:150px;
  }
  .library-heading>.button {
    font-size:10px;
    padding:9px 10px;
    min-height:36px;
    gap:5px;
    margin-top:22px;
  }
  .search-main {
    gap:7px;
    padding:9px;
    flex-wrap:wrap;
  }
  .search-input-wrap {
    flex-basis:100%;
  }
  .search-input-wrap input[type=search] {
    font-size:12px;
    padding-top:10px;
    padding-bottom:10px;
  }
  .search-mode {
    flex:1;
  }
  .search-mode select {
    width:100%;
    font-size:11px;
    padding-top:8px;
    padding-bottom:8px;
  }
  .search-main>.button {
    min-width:92px;
    min-height:36px;
    font-size:11px;
  }
  .filter-bar {
    padding:10px;
    gap:11px 10px;
  }
  .date-filters {
    width:100%;
    gap:11px;
    justify-content:space-between;
  }
  .date-filters label {
    flex:1;
    gap:6px;
    font-size:10px;
  }
  .date-filters input[type=date] {
    width:100%;
    padding:6px;
    font-size:10px;
  }
  .sort-control {
    font-size:10px;
  }
  .sort-control select {
    font-size:10px;
    max-width:150px;
  }
  .apply-filters,.clear-filters {
    font-size:10px;
  }
  .results-heading {
    flex-wrap:wrap;
    gap:7px;
    font-size:11px;
  }
  .results-timezone {
    font-size:9px;
    flex-basis:100%;
    margin-left:0;
  }
  .recording-list {
    border-radius:6px;
  }
  .recording-list-head {
    display:none;
  }
  .recording-row {
    grid-template-columns:minmax(0,1fr) auto;
    padding:16px 13px;
    gap:9px 12px;
    min-height:0;
  }
  .recording-title-cell {
    grid-column:1;
    grid-row:1;
  }
  .recording-title {
    font-size:12px;
    white-space:normal;
    line-height:1.5;
  }
  .recording-date {
    grid-column:2;
    grid-row:1;
    font-size:10px;
    text-align:right;
    padding-top:2px;
    white-space:nowrap;
  }
  .row-secondary {
    font-size:9px;
  }
  .recording-meta {
    font-size:9px;
    gap:6px;
    margin-top:4px;
  }
  .recording-meta>span+span:before {
    margin-right:6px;
  }
  .recording-keywords {
    grid-column:1/3;
    grid-row:2;
    gap:5px;
  }
  .keyword-chip {
    font-size:9px;
    padding:3px 6px;
  }
  .recording-summary {
    grid-column:1/3;
    grid-row:3;
    padding-top:0;
    font-size:11px;
  }
  .recording-summary p {
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    line-height:1.65;
  }
  .pagination {
    gap:12px;
    align-items:flex-start;
    flex-direction:column;
  }
  .pagination>div {
    width:100%;
    justify-content:space-between;
  }
  .pagination>p {
    font-size:10px;
  }
  .library-footnote {
    font-size:9px;
    margin-top:25px;
  }
  .empty-state {
    padding:44px 20px;
  }
  .empty-state h2 {
    font-size:18px;
  }
  .empty-state p {
    font-size:12px;
  }
  .upload-panel {
    padding:14px;
  }
  .section-heading h2 {
    font-size:14px;
  }
  .section-heading p {
    font-size:10px;
  }
  .upload-options {
    display:block;
  }
  .upload-options label {
    font-size:10px;
    max-width:100%;
    margin-bottom:9px;
  }
  .upload-options p {
    font-size:10px;
    max-width:100%;
    margin-bottom:13px;
  }
  .drop-zone {
    flex-wrap:wrap;
    padding:15px;
    gap:10px;
  }
  .drop-zone>div {
    flex:1;
  }
  .drop-zone strong {
    font-size:12px;
  }
  .drop-zone p {
    font-size:10px;
  }
  .file-picker {
    width:100%;
    margin-left:0;
    font-size:11px;
  }
  .upload-item {
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px 12px;
  }
  .upload-progress-wrap {
    grid-column:1/3;
    grid-row:2;
  }
  .upload-action {
    grid-column:2;
    grid-row:1;
  }
  .upload-name {
    font-size:11px;
  }
  .flash-messages {
    margin-left:16px;
    margin-right:16px;
  }
  .desk-shell {
    padding-top:18px;
  }
  .desk-navigation {
    margin-bottom:24px;
  }
  .desk-heading h1 {
    font-size:26px;
  }
  .desk-metadata {
    gap:7px;
    font-size:10px;
  }
  .desk-metadata>span:before {
    margin-right:7px;
  }
  .desk-heading .eyebrow {
    font-size:9px;
  }
  .participants {
    font-size:11px;
  }
  .metadata-editor>summary {
    font-size:11px;
  }
  .metadata-form {
    padding:15px;
  }
  .stage-chips {
    gap:5px;
  }
  .stage-chip {
    font-size:9px;
    padding:4px 6px;
    gap:5px;
  }
  .poll-state {
    width:100%;
    margin-top:4px;
  }
  .stage-error {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    font-size:10px;
    padding:12px;
  }
  .player-panel {
    padding:14px 10px 12px;
    margin-bottom:25px;
  }
  .player-topline {
    padding:0 3px;
    gap:10px;
  }
  .player-label {
    font-size:8px;
    letter-spacing:.65px;
  }
  .player-topline>a {
    font-size:9px;
  }
  .player-options {
    gap:12px;
    flex-wrap:wrap;
    font-size:10px;
    padding:0 3px;
  }
  .player-options>.small {
    flex-basis:100%;
    margin-left:0;
    font-size:9px;
  }
  .speed-control {
    gap:5px;
  }
  .speed-control select {
    font-size:10px;
  }
  .follow-control input {
    width:14px;
    height:14px;
  }
  .desk-columns {
    display:flex;
    flex-direction:column;
    gap:26px;
  }
  .transcript-panel,.analysis-panel {
    width:100%;
  }
  .transcript-content {
    max-height:62vh;
    min-height:210px;
    padding-right:0;
  }
  .transcript-panel>.section-heading {
    padding-bottom:11px;
  }
  .transcript-segment {
    grid-template-columns:39px minmax(0,1fr);
    gap:10px;
    padding:13px 9px 13px 7px;
  }
  .segment-copy p {
    font-size:12px;
    line-height:1.8;
  }
  .segment-timestamp {
    font-size:9px;
  }
  .speaker-label {
    font-size:9px;
  }
  .summary-text {
    font-size:12px;
  }
  .analysis-panel {
    padding:18px;
  }
  .analysis-panel .recording-keywords {
    display:flex;
  }
  .prompt-panel {
    padding:18px 15px;
  }
  .settings-heading {
    margin-top:28px;
  }
  .settings-heading h1 {
    font-size:27px;
    max-width:290px;
  }
  .settings-heading>.muted {
    font-size:12px;
  }
  .prompt-save {
    flex-direction:column;
    align-items:stretch;
    gap:16px;
  }
  .prompt-form textarea {
    min-height:380px;
    padding:12px;
    font-size:12px;
  }
  .prompt-contract {
    padding-top:23px;
  }
  .login-shell {
    padding-top:70px;
    max-width:420px;
  }
  .login-panel h1 {
    font-size:30px;
  }
  .login-intro {
    font-size:13px;
  }
  .login-footnote {
    font-size:10px;
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important;
  }
}
