.app-bar{position:sticky;top:0;z-index:60;height:56px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:0 24px;background:#fff;border-bottom:1px solid var(--border)}
.app-bar .brand{margin:0;min-width:0}
.app-bar .brand-copy{flex-direction:row;align-items:baseline;gap:8px}
.app-bar .brand-copy strong{font-size:15px;letter-spacing:.06em}
.app-bar .brand-copy>span{font-size:14px;letter-spacing:0;color:#4d6358}
.library-link{color:#4d6358;text-decoration:none;font-size:14px;font-weight:550;padding:8px 12px;border-radius:999px}
.library-link[aria-current="page"]{background:var(--green-soft);color:var(--green);font-weight:650}
.app-tools{justify-self:end;display:flex;align-items:center;gap:8px}
.connection-dot{width:32px;height:32px;border:0;border-radius:50%;background:transparent;display:grid;place-items:center;padding:0}
.connection-dot .status-dot{width:8px;height:8px;border-radius:50%;background:#c4a062;box-shadow:0 0 0 4px #f8f1e4}
.connection-dot.ready .status-dot{background:#2f8f6b;box-shadow:0 0 0 4px #e7f4ee}
.upload-top{min-height:36px;padding:8px 14px;font-size:14px;text-decoration:none}
.app-error{margin:0;border-radius:0;border-left:0;border-right:0}
.library-home,.settings-home{max-width:1080px;margin:0 auto}
.settings-home{max-width:960px}
.library-heading h1,.settings-home>h1{font-size:24px;font-weight:600;letter-spacing:0;line-height:1.35}
.library-heading .count{margin-left:8px;font-size:14px;font-weight:550}
.library-notice{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px;padding:12px 14px;border-radius:10px;background:#faf7ee;border:1px solid #eee5cf;color:#6d5a32;font-size:14px;line-height:1.6}
.library-notice a{color:var(--green);font-weight:650}
.library-notice.is-warning{background:#fff3ef;border-color:#efd9cf;color:#a95e4a}
.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 16px 8px}
.filters{display:flex;gap:8px;min-width:0}
.filters button{height:32px;border-radius:999px;padding:0 12px;background:#fff;border:1px solid var(--border);color:#3e5649;font-size:14px}
.filters button[aria-selected="true"]{background:var(--green);border-color:var(--green);color:#fff}
.filters button:active{background:#edf3ef}
.filters button[aria-selected="true"]:active{background:var(--green-dark)}
.filter-count{font-variant-numeric:tabular-nums}
.filter-count.is-zero{opacity:.55}
.library-board{background:#fff;border:1px solid var(--border);border-radius:12px}
.library-board .record-search{margin:0;max-width:280px;background:#f4f7f5;border-radius:999px;padding:8px 12px}
.library-board .record-search input{font-size:14px}
.recordings{padding:0 0 8px}
.group-label{margin:8px 16px 0;font-size:12px;font-weight:600;letter-spacing:.04em;color:#70817a}
.record-row{position:relative;display:flex;align-items:stretch;min-height:64px;border-bottom:1px solid var(--border)}
.record-row:last-child{border-bottom:0}
.record-link{flex:1;min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr) auto auto auto;gap:12px;align-items:center;padding:8px 8px 8px 16px;color:inherit;text-decoration:none}
.record-link:active,.record-row:active{background:#f3f7f4}
.record-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.record-copy strong{font-size:15px;font-weight:550;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.record-customer,.record-meta,.record-status,.record-duration,.record-time{font-size:13px;color:#70817a}
.record-status,.record-duration,.record-time{white-space:nowrap}
.record-meta{display:none}
.state-icon{width:16px;height:16px;display:grid;place-items:center}
.state-ring{width:14px;height:14px;border:2px solid #d5e3db;border-top-color:#216b5b;border-radius:50%;animation:shell-spin .8s linear infinite}
.state-dot{width:10px;height:10px;border-radius:50%;background:#216b5b}
.state-check{color:#5d8f78}
.state-clock{color:#b79a65}
.state-alert{color:#c45c4a}
.row-more{align-self:center;margin-right:8px}
.row-menu-pop{position:absolute;right:12px;top:48px;z-index:5;display:flex;flex-direction:column;min-width:140px;padding:6px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #183d2414}
.menu-item{display:flex;width:100%;text-align:left;text-decoration:none;background:#fff;color:#243e2c;border:0;border-radius:8px;padding:8px 10px;font-size:14px}
.menu-item:hover,.menu-item:active{background:#f3f7f4;transform:none}
.library-empty{padding:28px 16px;color:#70817a}
.empty-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:280px;margin-top:16px;border:1.5px dashed #c5d5cb;border-radius:12px;background:#fff;text-align:center;color:#3e5649}
.empty-drop .icon{width:28px;height:28px;color:#216b5b}
.empty-hint{color:#70817a;font-size:13px;line-height:1.7}
.upload-fab{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:30;width:56px;height:56px;border-radius:50%;background:#216b5b;color:#fff;display:grid;place-items:center;text-decoration:none;box-shadow:0 6px 16px #216b5b33}
.upload-fab .icon{width:26px;height:26px}
.drop-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#17382c66;color:#fff;font-size:28px;font-weight:650;pointer-events:none}
#uploadDialog{width:min(560px,calc(100vw - 32px));border:1px solid var(--border);border-radius:16px;padding:0;color:var(--ink)}
#uploadDialog form{padding:8px 24px 20px}
.upload-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}
.upload-dialog-head h2{font-size:20px;font-weight:650}
.drawer-handle{display:none;width:40px;height:4px;border-radius:4px;background:#d5ded8;margin:8px auto 0}
#uploadDialog .file-zone{min-height:140px;margin-top:8px}
.selected-file{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#f7faf8}
.upload-config-note{margin:8px 0 0;color:#8e784b;font-size:13px}
.upload-dialog-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}
#uploadError{margin:8px 0 0}
.settings-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:start;margin-top:20px}
.settings-nav{display:flex;flex-direction:column;gap:4px}
.settings-nav a,.settings-segment a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:8px;color:#31483e;text-decoration:none}
.settings-nav a[aria-current="page"],.settings-segment a[aria-current="page"]{background:#eaf3ee;color:#216b5b;font-weight:650}
.settings-segment{display:none;gap:8px;margin-top:12px}
.nav-dot{width:8px;height:8px;border-radius:50%;background:#c5cec8;flex:none}
.nav-dot.ready{background:#2f8f6b}
.nav-dot.pending{background:#c4a062}
.settings-summary{margin:8px 0 16px}
.settings-summary p{margin:0 0 4px}
.settings-summary .is-missing{color:#8e784b}
.settings-home .settings-body{overflow:visible;padding:0}
#settingsForm{display:block;max-height:none;padding:0}
.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.probe-wrap{display:flex;flex-direction:column;gap:4px}
.crm-status-line{font-weight:650}
.crm-footer{justify-content:flex-end}
.settings-back{margin-top:16px}
body:not([data-mode="meeting"]) #sidebar,body:not([data-mode="meeting"]) #sidebarBackdrop{display:none!important}
body:not([data-mode="meeting"]) .workspace{margin-left:0!important}
body[data-mode="library"] .workspace>main,body[data-mode="settings"] .workspace>main{padding:28px 32px 64px}
body[data-mode="meeting"] .sidebar{top:56px;height:calc(100dvh - 56px)}
a.back-library{text-decoration:none}
.detail-heading-bar{display:flex;align-items:flex-start;gap:8px}
.detail-heading-bar h1{min-width:0;flex:1}
.meeting-meta .header-tools{margin-left:auto}
@keyframes shell-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){
  .app-bar{height:52px;grid-template-columns:minmax(0,1fr) auto;padding:0 12px}
  .library-link,.upload-top,.brand-company{display:none}
  .app-bar .icon-button,.connection-dot,.filters button,.upload-dialog-footer button,#filePickerButton,#replaceFile,#emptyChooseButton,#loadModelsButton,#clearFilters,.settings-footer button,.settings-segment a,.row-more,.text-button,#editTitleButton{min-width:44px;min-height:44px}
  .library-heading h1,.settings-home>h1{font-size:22px}
  .record-copy strong{font-size:16px;font-weight:550}
  .record-customer,.record-meta{font-size:14px}
  .record-link{grid-template-columns:28px minmax(0,1fr);min-height:72px}
  .record-status,.record-duration,.record-time{display:none}
  .record-meta{display:block}
  .record-customer.is-empty{display:none}
  .library-board{background:transparent;border:0}
  .library-toolbar{flex-direction:column;align-items:stretch;padding:0}
  .filters{overflow-x:auto;padding-bottom:4px}
  .record-row{display:block;background:#fff;border:0;border-radius:10px;margin-bottom:8px;min-height:72px}
  .library-board .record-search{max-width:none}
  .library-board .record-search input,.upload-dialog input,.upload-dialog select,.settings-home input,.settings-home select,.settings-home textarea{font-size:16px}
  body[data-mode="library"] .workspace>main,body[data-mode="settings"] .workspace>main{padding:16px 16px 96px}
  body[data-mode="meeting"] .sidebar{top:52px;height:calc(100dvh - 52px)}
  .settings-layout{grid-template-columns:1fr}
  .settings-nav{display:none}
  .settings-segment{display:flex}
  .settings-footer{position:sticky;bottom:0;z-index:4;background:#fff;padding:12px 0 calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}
  .settings-footer .primary{width:100%}
  #uploadDialog{position:fixed;inset:auto 0 0 0;width:100%;max-width:100%;max-height:90vh;margin:0;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  #uploadDialog form{max-height:90vh;overflow:auto}
  .drawer-handle{display:block}
  .upload-dialog-footer{position:sticky;bottom:0;background:#fff;padding-top:12px}
  .upload-dialog-footer .primary,.upload-dialog-footer .secondary{flex:1}
}
.title-edit{width:32px;height:32px;flex:none}
.title-input{font:inherit;font-size:16px;min-height:36px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;min-width:min(16rem,100%)}
#renameDialog{border:1px solid var(--border);border-radius:12px;padding:20px;width:min(420px,calc(100% - 32px));background:#fff}
#renameDialog h2{margin:0 0 12px;font-size:18px}
#renameDialog .field{display:flex;flex-direction:column;gap:6px}
#renameDialog .field input{font:inherit;font-size:16px;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}
#renameDialog .dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
#renameError{color:#9b2c2c;margin:8px 0 0}
@media(prefers-reduced-motion:reduce){.state-ring{animation:none}}
