:root{font-family:"Plus Jakarta Sans",system-ui,sans-serif;color:#4a453e;background:#faf9f6}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:#faf9f6}main{max-width:1120px;margin:auto;padding:32px 24px}button,input{font:inherit}button{cursor:pointer;border:0}.login-shell{min-height:calc(100vh - 64px);display:grid;place-items:center}.login-card{width:min(100%,440px);padding:42px;border:1px solid #e5e1d8;border-radius:32px;background:#fff;box-shadow:0 12px 35px rgba(79,68,48,.06)}.login-icon,.brand-icon{display:grid;place-items:center;background:#5f6683;color:#fff}.login-icon{width:64px;height:64px;border-radius:20px;margin:0 auto 24px;box-shadow:0 8px 18px rgba(95,102,131,.2)}svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-heading{text-align:center;margin-bottom:28px}.login-heading h1,.page-title h1{margin:0;color:#3a3630;letter-spacing:-.04em}.login-heading h1{font-size:28px}.login-heading p,.muted{margin:8px 0 0;color:#8c867a;font-size:13px}.tabs{display:flex;padding:4px;background:#f2f0eb;border:1px solid #e5e1d8;border-radius:13px;margin-bottom:26px}.tab{flex:1;padding:10px;border-radius:9px;background:transparent;color:#8c867a;font-size:13px;font-weight:700}.tab.active{background:#5f6683;color:#fff;box-shadow:0 2px 5px rgba(80,75,65,.15)}.auth-form label,.label-row{display:block;color:#7f7362;text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-size:10px}.label-row{display:flex;justify-content:space-between;align-items:center}.label-row button{padding:0;background:none;color:#5f6683;text-transform:none;letter-spacing:0;font-size:10px;font-weight:800}input{width:100%;margin-top:8px;padding:14px 16px;border:1px solid #e5e1d8;border-radius:15px;background:#faf9f6;color:#3a3630;outline:none;font-size:14px;transition:.2s}input:focus{border-color:#7b819f;box-shadow:0 0 0 3px #e9eaef}#code-wrap{margin-top:18px}#code{text-align:center;letter-spacing:.35em;font-family:monospace;font-size:18px}.field-hint{color:#9e9282;font-size:10px;line-height:1.5}.primary,.refresh{display:flex;justify-content:center;align-items:center;gap:10px;background:#5f6683;color:#fff;font-weight:800;border-radius:15px;transition:.2s}.primary{width:100%;margin-top:22px;padding:14px 18px;font-size:14px}.primary:hover,.refresh:hover{background:#4a5168;transform:translateY(-1px)}.primary span,.refresh span{font-size:20px;line-height:12px}#error{margin:18px 0 0;padding:12px 14px;border:1px solid #fecdd3;border-radius:14px;background:#fff1f2;color:#be123c;text-align:center;font-size:12px;font-weight:700}header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:64px}.brand-mark{display:flex;align-items:center;gap:11px;color:#5f6683;font-size:14px;font-weight:800}.brand-icon{width:38px;height:38px;border-radius:13px}.brand-icon svg{width:19px;height:19px}.logout{padding:9px 12px;background:transparent;color:#a05b5b;font-size:12px;font-weight:800}.page-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:30px}.eyebrow{margin:0 0 9px;color:#9e9282;font-size:10px;font-weight:800;letter-spacing:.18em}.page-title h1{font-size:34px}.refresh{padding:12px 16px;white-space:nowrap;font-size:13px}.meeting-list{display:grid;gap:12px}.meeting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 22px;border:1px solid #e5e1d8;border-radius:22px;background:#fff;transition:.2s}.meeting:hover{border-color:#d6d0c2;box-shadow:0 8px 22px rgba(79,68,48,.05)}.meeting b{display:block;color:#3a3630;font-size:14px;margin-bottom:7px}.meta{color:#8c867a;font-size:12px}.badge{padding:7px 10px;border-radius:999px;background:#e7f8ef;color:#27845a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.processing{background:#fff3d8;color:#a36e07}@media(max-width:600px){main{padding:18px}.login-shell{min-height:calc(100vh - 36px)}.login-card{padding:30px 24px;border-radius:26px}header{margin-bottom:44px}.page-title{align-items:flex-start;flex-direction:column}.page-title h1{font-size:30px}.refresh{width:100%}.meeting{padding:17px;align-items:flex-start;flex-direction:column;gap:12px}.badge{align-self:flex-start}}
button,input,select{font:inherit}.meeting{width:100%;text-align:left}.back{margin:0 0 26px;padding:0;background:none;color:#5f6683;font-size:13px;font-weight:800}.detail-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:26px}.detail-title h1{margin:0;color:#3a3630;letter-spacing:-.04em;font-size:30px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:18px}.settings-card,.files-card{padding:25px;border:1px solid #e5e1d8;border-radius:22px;background:#fff}.settings-card h2,.files-card h2{margin:0 0 20px;color:#3a3630;font-size:16px}.settings-card label{display:block;margin-top:18px;color:#7f7362;text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-size:10px}.settings-card input,.settings-card select{width:100%;margin-top:8px;padding:14px 16px;border:1px solid #e5e1d8;border-radius:15px;background:#faf9f6;color:#3a3630;outline:none;font-size:14px}.settings-card .primary{margin-top:22px}.save-message{margin:14px 0 0;color:#27845a;font-size:12px;font-weight:700}.file-row{padding:14px 0;border-bottom:1px solid #eeeae2}.file-row:last-child{border-bottom:0}.file-row b{display:block;color:#3a3630;font-size:13px}.file-row span{display:block;margin-top:5px;color:#8c867a;font-size:11px}@media(max-width:600px){.detail-grid{grid-template-columns:1fr}.detail-title{flex-direction:column}.detail-title h1{font-size:25px}}

.save-error{color:#be123c}

.delivery-options{margin:22px 0 0;padding:0;border:0}.delivery-options legend{color:#7f7362;text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-size:10px}.toggle{display:flex!important;align-items:center;gap:10px;margin-top:13px!important;color:#3a3630!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;cursor:pointer}.toggle input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.toggle-control{position:relative;width:40px;height:23px;border-radius:999px;background:#d7d1c7;transition:.2s}.toggle-control::after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:.2s}.toggle input:checked+.toggle-control{background:#5f6683}.toggle input:checked+.toggle-control::after{transform:translateX(17px)}.toggle input:focus-visible+.toggle-control{outline:3px solid #e9eaef;outline-offset:2px}
.file-details{display:grid;gap:3px;margin-top:9px}.file-details span{margin:0}.file-error{color:#be123c!important}
.settings-actions{display:flex;gap:10px;margin-top:22px}.settings-actions .primary{width:auto;flex:1;margin-top:0}.download{flex:1;padding:14px 18px;border:1px solid #5f6683;border-radius:15px;background:#fff;color:#5f6683;font-size:14px;font-weight:800;transition:.2s}.download:hover{background:#f0f1f6}@media(max-width:600px){.settings-actions{flex-direction:column}.settings-actions .primary,.download{width:100%}}

/* Compact meeting cards with directly selectable delivery adapters. */
.header-actions{display:flex;align-items:center;gap:18px}.view-switch{display:flex;align-items:center;gap:8px;padding:9px 10px;color:#292824;font-size:13px;font-weight:800;text-decoration:none}.view-switch:hover{color:#5f6683}.view-switch svg{width:21px;height:21px}.header-action{width:auto;margin:0;background:transparent;box-shadow:none}.header-action.refresh{padding:9px 10px;color:#292824}.header-action.refresh:hover{color:#5f6683;background:transparent;transform:none}.header-action.logout{display:flex;align-items:center;gap:8px;font-size:13px}.header-action.logout svg{width:21px;height:21px}.page-title{margin-bottom:22px}.meeting-list{gap:16px}.meeting{display:block;padding:26px 30px;border-radius:24px;cursor:pointer;outline:none}.meeting:focus-visible{border-color:#7b819f;box-shadow:0 0 0 3px #e9eaef}.meeting-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px}.meeting-heading b{margin:0;font-size:19px;letter-spacing:-.02em}.meeting-heading time{color:#77736c;font-size:14px}.meeting-adapters{display:flex;align-items:flex-start;gap:15px;margin-top:22px}.adapter{display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;min-height:48px;padding:5px;border-radius:13px;background:transparent;color:#aaa7a1;filter:grayscale(1);opacity:.5;transition:color .18s,background .18s,opacity .18s,transform .18s,filter .18s}.adapter svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.8}.adapter small{margin-top:1px;font-size:7px;font-weight:900;line-height:1;letter-spacing:.08em}.adapter:hover{background:#f3f1ed;opacity:.8;transform:translateY(-1px)}.adapter.active{filter:none;opacity:1}.adapter-upload_google_drive.active{color:#25a55f}.adapter-upload_sftp.active{color:#7357c9}.adapter-keep_local_copy.active{color:#e29228}.adapter-auto_upload.active{color:#e34f65}.adapter:focus-visible{outline:3px solid #e9eaef;outline-offset:1px}.adapter:disabled{cursor:wait;opacity:.35}
@media(max-width:600px){header{align-items:flex-start}.brand-mark>span:last-child{display:none}.header-actions{gap:5px}.meeting{padding:21px 20px}.meeting-heading{display:block}.meeting-heading b{font-size:17px}.meeting-heading time{display:block;margin-top:7px;font-size:12px}.meeting-adapters{justify-content:space-between;gap:5px}.adapter{width:44px}}


/* Keep the action bar and cards as one content-sized, right-aligned unit. */
#dashboard{width:fit-content;max-width:100%}#dashboard>header{width:100%;margin-bottom:8px}#meetings-view{width:fit-content;max-width:100%}.meeting-list{width:max-content;max-width:100%}.meeting{width:100%}.header-actions{margin-left:auto}
@media(max-width:600px){#dashboard{width:100%}#dashboard>header,#meetings-view,.meeting-list{width:100%;max-width:100%}#dashboard>header{justify-content:flex-end;margin-bottom:6px}.header-actions{width:auto;margin-left:auto}.header-action.refresh{width:auto}}


/* Center the content-sized list and the contents of every meeting card. */
#dashboard{margin-inline:auto}.meeting{text-align:center}.meeting-heading{justify-content:center;text-align:center}.meeting-adapters{justify-content:center}
@media(max-width:600px){.meeting-heading{text-align:center}.meeting-adapters{justify-content:center}}


/* Live workflow status and the manual upload action. */
.meeting-status{margin:10px 0 0;color:#8c867a;font-size:11px;line-height:1.45;text-align:center}.meeting-status-error{color:#be123c}.meeting-adapters{margin-top:14px}.adapter-manual_upload{color:#4f668f;filter:none;opacity:1}.adapter-manual_upload:hover{color:#334b75}.adapter-manual_upload small{font-size:6px;letter-spacing:.04em}
.adapter-manual_upload.processing-active{cursor:not-allowed;color:#aaa7a1;filter:grayscale(1);opacity:.35}.adapter-manual_upload.processing-active:hover{background:transparent;color:#aaa7a1;transform:none}
.notice{position:fixed;left:50%;bottom:28px;z-index:1000;max-width:min(420px,calc(100vw - 36px));padding:13px 18px;border:1px solid #ddd8ce;border-radius:14px;background:#3f3c37;color:#fff;box-shadow:0 10px 28px rgba(45,42,37,.2);font-size:13px;font-weight:700;text-align:center;opacity:0;transform:translate(-50%,8px);transition:opacity .18s,transform .18s}.notice-visible{opacity:1;transform:translate(-50%,0)}

.adapter-upload_google_drive .google-letter{stroke:none;fill:currentColor}.adapter-upload_google_drive .google-letter text{font:900 24px Arial,sans-serif}.adapter-upload_google_drive.active{color:#db4437}.adapter-remove_silence.active{color:#1b9aaa}
.adapter-notify_telegram.active{color:#229ed9}


/* A completed meeting remains available, but visually recedes from active work. */
.meeting-complete{border-color:#dedbd4;background:repeating-linear-gradient(-45deg,rgba(95,102,131,.035) 0,rgba(95,102,131,.035) 8px,rgba(250,249,246,.72) 8px,rgba(250,249,246,.72) 16px),#f4f3f0;box-shadow:none}.meeting-complete>.meeting-heading,.meeting-complete>.meeting-status,.meeting-complete>.meeting-adapters{opacity:.58;filter:saturate(.35);transition:opacity .2s,filter .2s}.meeting-complete:hover{border-color:#d5d1ca;box-shadow:0 6px 16px rgba(79,68,48,.035)}.meeting-complete:hover>.meeting-heading,.meeting-complete:hover>.meeting-status,.meeting-complete:hover>.meeting-adapters{opacity:.72}

/* Inline filename-template editor shown in place of the adapter icons. */
.meeting-editing{cursor:default}.meeting-template-form{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;margin-top:14px;text-align:left}.meeting-template-form input{min-width:0;margin:0;font-size:12px}.meeting-template-form .meeting-template-save{width:46px;margin:0;padding:0;font-size:20px}.meeting-template-message{grid-column:1/-1;margin:0;color:#be123c;font-size:11px;font-weight:700}.meeting-complete.meeting-editing>.meeting-heading,.meeting-complete.meeting-editing>.meeting-status{opacity:.72}
@media(max-width:600px){.meeting-template-form{grid-template-columns:minmax(0,1fr) auto}.meeting-template-message{grid-column:1/-1}}

/* Expanded meeting editor and automatically discovered Zoom names. */
.meeting-editing{position:relative;max-width:100%;text-align:left}
.meeting-editing .meeting-heading{justify-content:flex-start;padding-right:48px;text-align:left}
.meeting-editing .meeting-status{text-align:left}
.meeting-expanded{width:100%;margin-top:22px;padding-top:20px;border-top:1px solid #eeeae2;text-align:left}
.meeting-editor-skeleton{display:grid;gap:12px;overflow:hidden}
.skeleton-line{position:relative;display:block;overflow:hidden;border-radius:10px;background:#efede8}
.skeleton-line::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:skeleton-shimmer 1.15s ease-in-out infinite}
.skeleton-heading{width:38%;height:18px}.skeleton-input{height:44px}.skeleton-subheading{width:55%;height:16px;margin-top:8px}.skeleton-row{height:58px;border:1px solid #ebe7df;border-radius:14px}
.meeting-expanded-ready{animation:meeting-editor-in .2s ease-out}
@keyframes skeleton-shimmer{to{transform:translateX(100%)}}
@keyframes meeting-editor-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.skeleton-line::after,.meeting-expanded-ready{animation:none}}
.meeting-expanded-toolbar,.names-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.meeting-expanded h3,.names-panel h2{margin:0;color:#3a3630}
.meeting-expanded h3{font-size:15px}
.meeting-expanded-close{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;border-radius:8px 20px 8px 8px;background:#f2f0eb;color:#716b62;font-size:16px;line-height:1}
.meeting-template-form-expanded{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-top:18px}
.meeting-template-form-expanded label{color:#7f7362;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800}
.meeting-template-form-expanded label input{display:block}
.meeting-template-save-wide{width:44px!important;height:44px;margin:0!important;padding:0!important;font-size:19px!important;line-height:1}
.save-success{padding:14px 16px;border:1px solid #d9e9df;border-radius:14px;background:#f5faf7;color:#3a3630}
.filename-preview-title{display:block;margin-bottom:9px;color:#6f786f;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.filename-preview-list{display:grid;gap:6px}
.filename-preview-file{display:block;padding:8px 10px;border-radius:9px;background:#fff;color:#27845a;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.filename-preview-file::before{content:"✓";margin-right:8px;color:#27845a}
.filename-preview-empty{color:#8c867a;font-weight:500}
.meeting-participants{margin-top:28px}
.participant-list{display:grid;gap:8px;margin-top:13px}
.participant-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border:1px solid #ebe7df;border-radius:14px;background:#faf9f6}
.participant-identity{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:baseline;gap:10px;width:100%}
.participant-identity b,.name-source b{display:block;margin:0;color:#3a3630;font-size:13px}
.participant-identity span,.name-source span{display:block;margin-top:4px;color:#8c867a;font-size:10px}
.participant-identity span{margin-top:0}
.participant-time{font-variant-numeric:tabular-nums;white-space:nowrap}
.participant-tracks{white-space:nowrap;text-align:right}
.participant-below-minimum{border-style:dashed;background:#f5f3ef;opacity:.62}
.participant-below-minimum .participant-identity b{text-decoration:line-through}
.participant-below-minimum .participant-tracks{color:#9b675d;font-weight:700}
.names-panel{width:100%;padding:28px 30px;border:1px solid #e5e1d8;border-radius:24px;background:#fff}
.names-heading{margin-bottom:22px}
.names-ai{flex:0 0 auto}
.names-ai-message{padding:12px 14px;border-radius:12px;background:#f2f0eb;color:#716b62;font-size:11px}
.name-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto auto;align-items:center;gap:10px;padding:13px 0;border-top:1px solid #eeeae2}
.name-row input{margin:0;padding:11px 13px}
.name-save{width:auto;margin:0;padding:11px 14px;font-size:11px}
.name-delete{padding:11px 12px;border-radius:12px;background:#fff1f2;color:#be123c;font-size:11px;font-weight:800}
.name-row-readonly{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;color:#3a3630;font-size:13px}
.name-parts{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-weight:800}
.name-parts span{padding:4px 5px;border-radius:7px;transition:.18s}
.name-parts span.selected{background:#e8eaf3;color:#4f587b;box-shadow:inset 0 0 0 1px #d1d5e5}
.name-actions{display:flex;align-items:center;gap:7px;margin-left:auto}
.name-icon{display:grid;place-items:center;height:30px;padding:0 9px;border:1px solid #ddd8ce;border-radius:9px;background:#fff;color:#716b62;font-size:12px;font-weight:800;line-height:1;transition:.18s}
.name-icon:hover{border-color:#a9a293;background:#f7f5f1;color:#3a3630}
.name-icon:disabled{cursor:wait;opacity:.45}
.name-switch{width:30px;padding:0;font-size:17px}
.name-warrior{font-size:8px;letter-spacing:.08em}
.name-warrior.active{border-color:#5f6683;background:#5f6683;color:#fff}
.name-remove{width:30px;padding:0;border-color:#f0d1d4;color:#b95b65;font-size:18px}
.name-excluded .name-parts{opacity:.48;text-decoration:line-through}
@media(max-width:700px){
  .meeting-template-form-expanded{grid-template-columns:1fr}
  .participant-row{align-items:flex-start;flex-direction:column}
  .names-panel{padding:22px 18px}
  .names-heading{flex-direction:column}
  .name-row{grid-template-columns:1fr 1fr}
  .name-source,.name-row input{grid-column:1/-1}
  .name-row-readonly{flex-direction:row}
}

.participant-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.participant-analyze{flex:0 0 auto;padding:9px 12px;font-size:10px}
@media(max-width:700px){.participant-heading{align-items:flex-start;flex-direction:column}}

/* Keep the navigation and both meeting-card states on the same horizontal edges. */
#meetings-view,.meeting-list{max-width:100%}.meeting-list,.meeting{width:100%}
@media(max-width:600px){.meeting-editing{width:calc(100vw - 36px)}}

/* Center one shared column; align navigation to the cards' right edge. */
#dashboard{width:600px;max-width:100%;margin-inline:auto}
#dashboard>header{width:100%;justify-content:flex-end}
#dashboard>header .header-actions{margin-left:auto}
#meetings-view{width:100%;margin-inline:0}

.participant-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.playback-modal{width:min(1200px,calc(100vw - 40px));max-height:90vh;padding:24px;border:1px solid #dedbd3;border-radius:20px;background:#faf9f6;color:#38362f;box-shadow:0 20px 80px #0004;overflow:auto}
.playback-modal::backdrop{background:#171923aa}
.playback-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.playback-heading h2{margin:0;font-size:22px}
.playback-modal .playback-close{width:40px;height:40px;padding:0;border-radius:50%;font-size:28px;background:#eeece6;color:#38362f;flex-shrink:0}
.playback-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px}
.playback-modal video{display:block;width:100%;max-height:65vh;aspect-ratio:16/9;background:#151515;border-radius:12px}
.playback-hint,.playback-status{font-size:14px;line-height:1.5}
.playback-hint{color:#77736c;margin:12px 0 0}
.playback-participants{display:flex;flex-direction:column;gap:8px;max-height:65vh;overflow:auto}
.playback-modal .playback-jump{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px;border:1px solid #e3dfd6;border-radius:10px;background:white;color:#38362f;text-align:left;font-size:14px;box-shadow:none}
.playback-jump time{font-size:12px;color:#77736c;font-variant-numeric:tabular-nums;white-space:nowrap}
.playback-modal .playback-jump:hover{background:#eeedf5}
.playback-modal button:focus-visible{outline:3px solid #969abb;outline-offset:2px}
.playback-modal [hidden]{display:none!important}
@media(max-width:800px){.playback-layout{grid-template-columns:1fr}.playback-participants{max-height:30vh}.playback-modal{padding:16px}.participant-actions{justify-content:flex-start}}
