:root { color-scheme: light; --ink:#20231f; --muted:#697169; --line:#d9ddd8; --paper:#fff; --canvas:#f4f5f1; --sidebar:#ecefea; --green:#176b4d; --green-dark:#10523b; --red:#b93630; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; min-height:100vh; background:var(--canvas); color:var(--ink); }
button,input,textarea,select { font:inherit; letter-spacing:0; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.5; }
input,select,textarea { border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(23,107,77,.12); }
label { display:grid; gap:7px; color:var(--muted); font-size:13px; }
label input,label select { min-height:42px; padding:8px 10px; }
h1,h2,p { margin-top:0; }
.primary-button,.secondary-button { min-height:42px; padding:0 16px; border:1px solid transparent; border-radius:6px; font-weight:680; }
.primary-button { background:var(--green); color:#fff; }
.primary-button:hover { background:var(--green-dark); }
.secondary-button { background:#fff; border-color:var(--line); color:var(--ink); }
.compact { min-height:36px; padding:0 13px; font-size:13px; }
.icon-button { width:38px; height:38px; flex:0 0 38px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); font-size:19px; }
.icon-button.danger:hover { color:var(--red); border-color:#dfaaa6; }
.text-button { border:0; background:transparent; color:var(--green); font-weight:650; }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font-weight:750; }
.brand.large { font-size:18px; margin-bottom:30px; }
.brand-mark { width:30px; height:30px; display:grid; place-items:center; border-radius:6px; background:var(--green); color:#fff; font-family:serif; }
.auth-view { min-height:100vh; display:grid; place-items:center; padding:24px; background:#e9ede8; }
.auth-panel { width:min(390px,100%); display:grid; gap:18px; padding:34px; border:1px solid var(--line); border-radius:8px; background:var(--paper); box-shadow:0 16px 50px rgba(27,35,29,.08); }
.auth-panel h1 { margin-bottom:2px; font-size:25px; }
.auth-panel .primary-button { width:100%; }
.subtle,.form-error { color:var(--muted); font-size:13px; margin:0; }
.form-error { color:#9d302a; min-height:18px; }
.topbar { height:62px; display:flex; align-items:center; justify-content:space-between; padding:0 24px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.94); }
.account-menu { display:flex; align-items:center; gap:12px; font-size:13px; }
.app-shell { min-height:calc(100vh - 62px); display:grid; grid-template-columns:250px minmax(0,1fr); }
.sidebar { min-width:0; display:flex; flex-direction:column; padding:18px 12px; border-right:1px solid var(--line); background:var(--sidebar); }
.sidebar-label { margin:25px 9px 8px; color:var(--muted); font-size:12px; font-weight:700; }
.meeting-list { display:flex; flex-direction:column; gap:3px; overflow:auto; }
.meeting-item { min-width:0; padding:10px; border:0; border-radius:6px; background:transparent; text-align:left; color:var(--ink); }
.meeting-item:hover,.meeting-item.active { background:rgba(255,255,255,.88); }
.meeting-item strong,.meeting-item span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.meeting-item strong { margin-bottom:4px; font-size:14px; }
.meeting-item span,.empty-list { color:var(--muted); font-size:12px; }
.empty-list { padding:10px; }
.storage-note { margin-top:auto; padding:15px 8px 0; border-top:1px solid var(--line); display:flex; align-items:center; gap:8px; color:var(--muted); font-size:11px; }
.status-dot { width:8px; height:8px; border-radius:50%; background:#2fa56f; }
.workspace { min-width:0; }
.empty-state { min-height:calc(100vh - 62px); display:grid; place-content:center; justify-items:center; padding:40px; }
.empty-state h1 { font-size:25px; }
.wave-icon { height:52px; display:flex; align-items:center; gap:5px; margin-bottom:16px; }
.wave-icon i { width:6px; height:20px; border-radius:3px; background:var(--green); }
.wave-icon i:nth-child(2),.wave-icon i:nth-child(4) { height:36px; opacity:.75; }
.wave-icon i:nth-child(3) { height:50px; }
.meeting-view,.admin-view { width:min(1080px,calc(100% - 56px)); margin:0 auto; padding:38px 0 72px; }
.meeting-header,.section-header { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:26px; }
.meeting-heading { min-width:0; flex:1; }
.title-input { width:min(720px,100%); padding:3px 0 5px; border:0; border-bottom:1px solid transparent; border-radius:0; background:transparent; font-size:28px; font-weight:760; }
.title-input:focus { box-shadow:none; border-color:var(--green); }
.meeting-meta,.section-header p { margin-top:8px; color:var(--muted); font-size:13px; }
.progress-panel { padding:22px; border:1px solid var(--line); background:#fff; border-radius:8px; }
.progress-panel>div { display:flex; justify-content:space-between; }
.progress-panel progress,#uploadProgress progress { width:100%; height:8px; margin-top:16px; accent-color:var(--green); }
audio { width:100%; height:46px; margin-bottom:20px; }
.tabs { display:flex; height:50px; border-bottom:1px solid var(--line); }
.tab { padding:0 3px; margin-right:24px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font-weight:680; }
.tab.active { color:var(--green); border-color:var(--green); }
.tab-panel { padding-top:18px; }
.speaker-bar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.speaker-bar label { display:flex; align-items:center; gap:6px; padding:4px 4px 4px 9px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.speaker-bar label span { font-size:10px; }
.speaker-bar input { width:120px; min-height:30px; border:0; padding:4px 7px; color:var(--ink); }
.segments { border-top:1px solid var(--line); }
.segment { display:grid; grid-template-columns:76px minmax(0,1fr) 38px; gap:16px; align-items:start; padding:20px 4px; border-bottom:1px solid var(--line); }
.timestamp { padding:3px 0; border:0; background:transparent; color:var(--green); font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace; text-align:left; }
.segment strong { display:block; margin-bottom:7px; font-size:13px; }
.segment textarea { width:100%; min-height:62px; padding:9px 10px; resize:vertical; border-color:transparent; background:transparent; line-height:1.65; }
.segment textarea:hover { border-color:var(--line); background:#fff; }
.note-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:16px; }
.note-toolbar select { min-height:36px; padding:0 30px 0 9px; }
#noteVersions { margin-left:auto; max-width:340px; }
.markdown-preview { min-height:480px; margin:0; padding:28px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:#fff; white-space:pre-wrap; overflow-wrap:anywhere; font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace; }
.section-header h1 { margin:0; font-size:27px; }
.inline-form { display:grid; grid-template-columns:1fr 1.6fr 130px auto; gap:9px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.status-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:18px 0; border:1px solid var(--line); background:var(--line); }
.status-item { min-width:0; padding:13px; background:#fff; }
.status-item span,.status-item strong { display:block; overflow:hidden; text-overflow:ellipsis; }
.status-item span { margin-bottom:5px; color:var(--muted); font-size:11px; }
.status-item strong { font-size:13px; }
.inline-form input,.inline-form select { min-height:38px; padding:7px 9px; }
.invitation-result { display:flex; align-items:center; gap:10px; padding:14px; margin:14px 0; border:1px solid #bcd8ca; border-radius:6px; background:#edf7f1; font-size:13px; }
.invitation-result code { flex:1; overflow:auto; }
.user-row { display:flex; justify-content:space-between; align-items:center; padding:16px 4px; border-bottom:1px solid var(--line); }
.user-row strong,.user-row span { display:block; }
.user-row span { margin-top:4px; color:var(--muted); font-size:12px; }
.audit-heading { margin:30px 0 7px; font-size:17px; }
.audit-list { border-top:1px solid var(--line); }
.audit-row { display:grid; grid-template-columns:165px 1fr auto; gap:12px; padding:10px 4px; border-bottom:1px solid var(--line); font-size:12px; }
.audit-row time,.audit-row span { color:var(--muted); }
dialog { width:min(520px,calc(100% - 28px)); padding:0; border:1px solid var(--line); border-radius:8px; box-shadow:0 24px 70px rgba(0,0,0,.22); }
dialog::backdrop { background:rgba(24,29,25,.48); }
#uploadForm,#passwordForm { display:grid; gap:17px; padding:24px; }
#uploadForm header,#passwordForm header { display:flex; justify-content:space-between; align-items:center; }
#uploadForm h2,#passwordForm h2 { margin:0; font-size:22px; }
.consent { grid-template-columns:20px 1fr; align-items:start; line-height:1.5; }
.consent input { min-height:auto; margin-top:2px; }
#uploadProgress { display:grid; grid-template-columns:1fr auto; align-items:center; gap:10px; }
#uploadProgress progress { margin:0; }
.toast { position:fixed; left:50%; bottom:24px; z-index:10; transform:translate(-50%,12px); padding:11px 16px; border-radius:6px; background:#202722; color:#fff; opacity:0; pointer-events:none; transition:.2s; font-size:13px; }
.toast.show { opacity:1; transform:translate(-50%,0); }
@media (max-width:760px) {
  .topbar { padding:0 14px; }
  .account-menu>span { display:none; }
  .app-shell { display:block; }
  .sidebar { min-height:auto; border-right:0; border-bottom:1px solid var(--line); padding:10px 14px; }
  .sidebar-label,.storage-note { display:none; }
  .sidebar>.primary-button { width:100%; }
  .meeting-list { flex-direction:row; gap:6px; margin-top:9px; padding-bottom:2px; }
  .meeting-item { flex:0 0 165px; background:rgba(255,255,255,.62); }
  .empty-state { min-height:calc(100vh - 116px); }
  .meeting-view,.admin-view { width:calc(100% - 28px); padding:26px 0 50px; }
  .title-input { font-size:23px; }
  .segment { grid-template-columns:64px minmax(0,1fr); gap:8px; }
  .segment>.icon-button { grid-column:2; justify-self:end; }
  .note-toolbar select { flex:1; min-width:130px; }
  #noteVersions { order:2; flex-basis:100%; max-width:none; margin-left:0; }
  .markdown-preview { min-height:380px; padding:18px; }
  .inline-form { grid-template-columns:1fr; }
  .status-grid { grid-template-columns:repeat(2,1fr); }
  .audit-row { grid-template-columns:1fr; gap:3px; }
  .invitation-result { align-items:stretch; flex-direction:column; }
  .auth-panel { padding:26px 22px; }
}

.account-form { display:grid; gap:14px; padding:22px; background:var(--panel, #fff); border:1px solid var(--line); border-radius:8px; margin-bottom:20px; }
.account-form header { display:flex; align-items:center; justify-content:space-between; }
.account-form h2 { margin:0; font-size:20px; }
.account-form p { margin:0; overflow-wrap:anywhere; }
.account-form small { color:var(--muted); }
.authenticator-qr { width:260px; max-width:100%; height:auto; justify-self:center; }
.user-actions { display:flex; flex-wrap:wrap; gap:8px; }
.user-row { gap:12px; flex-wrap:wrap; }
.user-row > div:first-child { min-width:0; overflow-wrap:anywhere; }
