:root {
  color-scheme: light;
  --navy-950: #071426;
  --navy-900: #10233d;
  --navy-800: #183554;
  --blue-600: #1768e5;
  --blue-100: #eaf2ff;
  --ink: #152235;
  --muted: #64748b;
  --line: #dbe4ef;
  --soft-line: #eaf0f6;
  --surface: #ffffff;
  --canvas: #f4f6f9;
  --success: #0c7765;
  --topbar-height: 52px;
  --discovery-gap: 12px;
  --discovery-top: calc(var(--topbar-height) + var(--discovery-gap));
  font-family: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--canvas); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
[hidden] { display: none !important; }
.upload-dialog.review-dialog { width: min(960px, calc(100vw - 28px)); max-width: 960px; height: min(920px, calc(100vh - 28px)); max-height: calc(100vh - 28px); overflow: clip; background: #f5f7fb; }
.upload-dialog.review-dialog[open] { display: flex; flex-direction: column; }
.review-header { flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 28px 20px; border-bottom: 1px solid #e0e6f0; background: #fff; z-index: 1; }
.review-heading-copy { min-width: 0; }
#review-title { margin: 0 0 9px; color: #4264a2; font-size: .79rem; font-weight: 800; letter-spacing: .04em; }
#review-document { margin: 0; color: #172b49; font-size: 1.18rem; font-weight: 750; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; }
.review-header .dialog-close { flex: 0 0 36px; width: 36px; height: 36px; }
.review-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px 28px 26px; scroll-padding-block: 18px; scrollbar-gutter: stable; }
.review-footer { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 28px; background: #fff; border-top: 1px solid #e0e6f0; }
.review-footer .form-error { flex-basis: 100%; margin: 0; }
.review-footer .secondary-button { font-size: .8rem; min-height: 36px; padding: 8px 14px; }
.review-dialog :is(button, a, summary, select, textarea, input, [tabindex]):focus-visible { outline: 2px solid #315faa; outline-offset: 3px; }
.review-overview { margin-bottom: 22px; }
.review-overall { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: .82rem; }
.review-overall strong { color: #315b96; background: #e7eefb; padding: 6px 10px; border-radius: 6px; font-weight: 700; }
.review-overall small { color: #65758b; font-size: .77rem; }
.review-section { --section-color: #2e62aa; padding: 22px; margin: 18px 0; background: #fff; border: 1px solid #dfe6f0; border-radius: 14px; }
.review-section-title { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.review-section-title > span { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 8px; background: #eaf1fc; color: var(--section-color); font-size: .75rem; font-weight: 800; }
.review-section-title h3 { margin: 0; font-size: .98rem; font-weight: 750; }
.review-dialog .dialog-description { color: #65758a; font-size: .78rem; line-height: 1.65; margin: 8px 0 14px; }
.review-policy { padding-top: 16px; margin-top: 18px; border-top: 1px solid #dfe5ed; color: #68768a; font-size: .75rem; line-height: 1.7; }
.review-policy summary { cursor: pointer; }
.review-policy p { margin-bottom: 0; }
.review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.review-entry, .review-assignment, .review-history { margin-top: 18px; padding-top: 14px; border-top: 1px solid #e6ebf3; font-size: .78rem; line-height: 1.65; }
.review-entry small, .review-card small, .review-history small { display: block; margin-top: 8px; color: var(--muted); }
.review-notice { padding: 11px 13px; border-radius: 8px; background: #fff6e5; color: #765421; font-size: .78rem; line-height: 1.65; }
.review-card { --review-accent: #2e689e; --review-tint: #eef5fd; padding: 0 18px 18px; border: 1px solid #d9e4f1; border-radius: 12px; margin-top: 16px; background: #fff; }
.review-card[data-reviewer="lead"] { --review-accent: #72529c; --review-tint: #f4effb; border-color: #e2d8ef; }
.review-card:not([open]) { padding-bottom: 0; }
.review-card h3 { margin-top: 0; }
.review-card fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.review-card fieldset:disabled { opacity: .8; }
.review-check { display: flex; align-items: center; gap: 9px; margin: 12px 0; }
.review-check input { width: 17px; height: 17px; }
.review-check small { display: inline; margin: 0; }
.review-card textarea { width: 100%; box-sizing: border-box; resize: vertical; padding: 10px 12px; border: 1px solid #d8e1ed; border-radius: 8px; font: inherit; font-size: .84rem; line-height: 1.6; background: #fcfdff; }
.review-card .field { display: block; font-size: .78rem; color: #586a82; line-height: 1.6; }
.review-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.review-assignment summary, .review-history summary { cursor: pointer; font-weight: 700; margin-bottom: 12px; }
.review-history article { border-bottom: 1px solid var(--line); padding: 12px 0; overflow-wrap: anywhere; }
.review-comment { white-space: pre-wrap; }
.review-form-title { color: #627087; font-size: .78rem; line-height: 1.6; margin: 8px 0; }
.review-report { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; padding: 14px; background: #f4f7fb; border-radius: 10px; }
.review-report dt { color: var(--muted); font-size: .85rem; }
.review-report dd { margin: 0; }
.review-card > summary { cursor: pointer; display: flex; align-items: center; gap: 8px 14px; justify-content: space-between; flex-wrap: wrap; margin: 0 -18px; padding: 16px 18px; background: var(--review-tint); border-radius: 11px; color: var(--review-accent); }
.review-card[open] > summary { border-radius: 11px 11px 0 0; border-bottom: 1px solid #e1e6ef; }
.review-card > summary strong { font-size: .9rem; }
.review-card > summary span { font-size: .75rem; color: #626f83; }
.review-item { padding: 22px 0; border-top: 1px solid #e6ecf4; }
.review-item h4 { margin: 0 0 10px; font-size: .93rem; color: var(--review-accent); }
.review-question { font-size: .9rem; line-height: 1.8; margin: 0 0 12px; word-break: keep-all; overflow-wrap: anywhere; }
.review-reference { font-size: .75rem; color: #66758a; margin-bottom: 14px; line-height: 1.65; }
.review-reference summary { cursor: pointer; }
.review-answer-row { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin: 12px 0; }
.review-answer-row .field { width: 170px; }
.review-uncertain { display: flex; align-items: center; gap: 8px; font-size: .76rem; color: #77521c; line-height: 1.5; }
.review-uncertain input { flex-shrink: 0; width: 16px; height: 16px; accent-color: #b27b1b; }
.review-verdict { padding: 11px 13px; background: #f1f5fa; border-radius: 8px; line-height: 1.65; font-size: .8rem; font-weight: 600; }
.review-manuscript { --section-color: #16786e; }
.review-manuscript .review-section-title > span { background: #e7f4ef; }
.review-manuscript .primary-button { background: #16786e; }
.review-checklist-section { --section-color: #72529c; }
.review-checklist-section .review-section-title > span { background: #f1ebf8; }
.review-manuscript h3 { margin-top: 0; }
.review-manuscript input[type="file"] { display: block; width: 100%; box-sizing: border-box; padding: 12px; border: 1px dashed var(--line); border-radius: 8px; background: white; }
.review-progress { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); list-style: none; padding: 0; gap: 6px; margin: 14px 0 18px; }
.review-progress li { min-width: 0; padding: 10px; border-radius: 8px; background: #eaf0f6; color: #617186; font-size: .74rem; line-height: 1.5; }
.review-progress li span { display: inline-block; margin-right: 5px; font-weight: 800; }
.review-progress li.current { background: #e3eefc; color: #275d9c; box-shadow: inset 0 0 0 1px #b9d0ec; font-weight: 700; }
.review-progress li.done { background: #e8f4ef; color: #38735b; }
.review-progress li.legacy { background: #f1f3f6; color: #697484; }
.review-progress li small { display: block; font-size: .67rem; }
.review-coordinator { --section-color: #12685f; border-color: #97c8c0; border-top: 4px solid #167c71; background: #f2faf8; }
.review-coordinator .review-section-title > span { background: #d5ede7; }
.review-coordinator-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; line-height: 1.65; }
.review-coordinator-status strong { color: #0d554c; font-size: .9rem; }
.review-coordinator-status > span { color: #3f615c; font-size: .82rem; }
.review-coordinator .primary-button { background: #126c62; }
.review-coordinator .dialog-description, .review-coordinator form > small { color: #45665f; }
.review-coordinator form { padding: 16px; background: #fff; border: 1px solid #b7d8d2; border-radius: 10px; }
.review-coordinator form > small { display: block; margin-top: 12px; font-size: .76rem; line-height: 1.65; }
.review-coordinator-ack { display: flex; align-items: flex-start; gap: 9px; color: #183d37; font-size: .86rem; line-height: 1.65; }
.review-coordinator-ack input { width: 18px; height: 18px; flex: 0 0 18px; margin: 3px 0 0; accent-color: #126c62; }
.review-coordinator-record { padding: 13px 15px; background: #e1f2ec; border-radius: 8px; color: #165f4c; font-size: .86rem; line-height: 1.7; }
.review-coordinator-record span { display: block; margin-top: 4px; font-size: .79rem; }
.review-owners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.review-owners > div { padding: 12px 14px; border-left: 3px solid #729acd; background: #fff; border-radius: 8px; }
.review-owners > div:last-child { border-left-color: #ac8dc9; }
.review-owners small, .review-owners strong, .review-owners span { display: block; }
.review-owners strong { margin: 5px 0; font-size: .94rem; }
.review-owners small, .review-owners span { color: #65748a; font-size: .73rem; line-height: 1.5; }
.review-word { display: flex; align-items: flex-start; flex-direction: column; gap: 9px; padding: 15px; background: #f0f5fd; border: 1px solid #dce7f7; border-radius: 10px; overflow-wrap: anywhere; }
.review-word a, .review-complete a { text-decoration: none; display: inline-block; }
.review-word span { font-size: .86rem; line-height: 1.5; }
.review-word small, .review-complete small { color: var(--muted); font-size: .78rem; }
.review-lock { background: #f0f3f7; color: #536479; padding: 12px; border-radius: 8px; font-size: .84rem; line-height: 1.6; }
.review-complete { padding: 24px; border-radius: 14px; background: #ebf6f0; border: 1px solid #b6d9c5; margin: 0 0 22px; line-height: 1.7; }
.review-complete-heading { display: flex; align-items: flex-start; gap: 14px; }
.review-complete-check { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 50%; background: #257450; color: white; font-size: 1.25rem; font-weight: 800; }
.review-complete-kicker { margin: 0 0 6px; font-size: .75rem; font-weight: 700; color: #397759; }
.review-complete h3 { margin: 0; color: #195c3d; font-size: 1.26rem; line-height: 1.5; }
.review-complete > p { font-size: .87rem; color: #456251; }
.review-complete-next { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 9px; background: #fff; font-size: .86rem; }
.review-complete .primary-button { background: #257450; }
.review-complete .review-actions { flex-wrap: wrap; }
.review-complete strong { color: #2e654b; }
.review-complete small { display: block; margin-top: 12px; }
.review-sent { background: #edf6f8; border-color: #afcbd3; }
.review-sent h3, .review-sent strong { color: #22556b; }
.review-sent .review-complete-kicker { color: #3b7180; }
.review-sent .review-complete-check { background: #285b72; }
.review-not-sent { background: #f5f4f1; border-color: #d6d2ca; }
.review-not-sent h3, .review-not-sent strong { color: #514b42; }
.review-not-sent .review-complete-kicker, .review-not-sent > p { color: #686155; }
.review-not-sent .review-complete-check { background: #776f62; }
.review-decision-note { margin: 0 0 8px; white-space: pre-wrap; overflow-wrap: anywhere; color: #383b40; }
.review-delivery-decision { margin-bottom: 16px; padding: 14px 16px; border: 1px solid #d5dce3; border-radius: 10px; background: #fafbfc; }
.review-delivery-decision h3 { margin: 0; font-size: .94rem; }
.review-delivery-decision p { margin: 5px 0 10px; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.review-delivery-decision .review-actions { flex-wrap: wrap; }
.review-delivery-decision .secondary-button, .review-delivery-confirm .secondary-button, .review-delivery-confirm .primary-button { min-height: 34px; padding: 6px 12px; font-size: .83rem; }
.review-export { margin: 18px 0 12px; }
.review-export .primary-button { max-width: 100%; white-space: normal; text-align: center; }
.review-export [aria-disabled="true"] { opacity: .65; cursor: wait; }
.review-export p { margin: 9px 0 0; color: #456251; font-size: .83rem; }
.review-export small { margin-top: 5px; }
.review-export-archive { margin-top: 12px; padding: 12px 14px; border: 1px solid #c3d9cd; border-radius: 9px; background: #fff; }
.review-export-archive p { margin: 5px 0 8px; overflow-wrap: anywhere; }
.review-export-archive > span { color: var(--muted); font-size: .75rem; }
.review-export-archive-pending { background: #fff8eb; border-color: #e4c99c; color: #68451d; }
.review-export-archive-pending p, .review-export-archive-pending > span { color: #68451d; }
.review-export-path { display: block; margin-top: 5px; color: #40586b; font-family: Consolas, 'Courier New', monospace; font-size: .75rem; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; user-select: all; }
.review-export-unavailable { margin: 16px 0 10px; color: #607286; font-size: .82rem; }
.review-sent .review-export .primary-button { background: #285b72; }
.review-delivery-confirm { margin-top: 16px; padding: 16px; border: 1px solid #bed5c8; border-radius: 10px; background: #fff; font-size: .86rem; }
.review-delivery-confirm p { margin: 8px 0 12px; }
.review-delivery-confirm label { display: flex; align-items: center; gap: 8px; }
.review-delivery-confirm input { width: 17px; height: 17px; flex: 0 0 auto; }
.review-delivery-confirm textarea { display: block; width: 100%; margin: 6px 0 12px; padding: 9px 10px; border: 1px solid #becad5; border-radius: 6px; resize: vertical; font: inherit; line-height: 1.6; }
.review-decision-reason { font-weight: 650; }
.review-decision-reason span { color: var(--muted); font-size: .75rem; font-weight: 400; }
.review-delegation { display: flex; flex-direction: column; gap: 3px; margin: 12px 0; padding: 10px 12px; border: 1px solid #c7d5e4; border-radius: 7px; background: #edf3f9; color: #304963; font-size: .82rem; line-height: 1.65; }
.review-delegation strong { color: #24405d; }
.review-delegation small { margin-top: 2px; color: #52677d; }
.review-delegation-history { color: #365779; font-weight: 600; }
.review-archived-workflow > summary { cursor: pointer; padding: 14px 4px; margin-bottom: 12px; color: #4c667b; font-weight: 700; }
.review-bulk { margin: 14px 0 20px; padding: 14px; border: 1px solid #dce7e3; background: #f4faf7; border-radius: 10px; }
.review-bulk-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.review-bulk-heading p { margin: 0; color: #4d695e; font-size: .76rem; line-height: 1.6; }
.review-bulk-heading button { font-size: .8rem; white-space: nowrap; }
.review-bulk-panel { margin-top: 12px; padding: 14px; background: #fff8e8; border: 1px solid #ead8ab; border-radius: 8px; }
.review-bulk-panel strong { font-size: .83rem; color: #704c0b; }
.review-bulk-panel p { margin: 8px 0 12px; font-size: .77rem; line-height: 1.65; color: #795a27; }
.review-bulk-ack { display: flex; gap: 9px; align-items: flex-start; font-size: .8rem; font-weight: 650; line-height: 1.6; color: #5a471f; }
.review-bulk-ack input { flex: 0 0 17px; width: 17px; height: 17px; margin: 4px 0 0; accent-color: #2c735d; }
.review-bulk-result { font-size: .77rem; line-height: 1.6; color: #2c7058; margin: 10px 0 0; }
.review-bulk-blocked { color: #805618 !important; }
.upload-dialog.notifications-dialog { width: min(660px, calc(100vw - 32px)); }
#notifications-open.has-unread { color: #285d9b; background: #edf4ff; border-color: #bcd1eb; }
.notification-history-toggle { display: flex; align-items: center; gap: 8px; margin: 14px 0 18px; font-size: .85rem; color: var(--muted); }
.desktop-notifications { padding: 16px; margin: 18px 0; border: 1px solid #d6e3f3; background: #f4f8fd; border-radius: 10px; }
.desktop-notifications h3 { font-size: .94rem; margin: 0 0 8px; }
.desktop-notifications p { font-size: .83rem; line-height: 1.6; margin: 8px 0; }
.desktop-notifications small { display: block; color: var(--muted); line-height: 1.6; font-size: .74rem; }
.desktop-notifications .review-actions { flex-wrap: wrap; gap: 8px; }
.desktop-notifications button { font-size: .79rem; }
.notification-item { display: flex; flex-direction: column; width: 100%; gap: 9px; padding: 16px; margin: 10px 0; border: 1px solid var(--line); background: #fff; border-radius: 10px; text-align: left; color: var(--ink); cursor: pointer; font: inherit; line-height: 1.6; }
.notification-item.unread { border-color: #a8c5e8; background: #f1f6fd; }
.notification-item.inactive { background: #f5f6f8; color: #758091; }
.notification-item:hover { border-color: #789abd; }
.notification-item > span:not(.notification-heading) { font-size: .86rem; }
.notification-item .notification-kind { align-self: flex-start; padding: 3px 8px; border-radius: 5px; background: #e6f3eb; color: #276846; font-size: .77rem; font-weight: 700; }
.notification-item.inactive .notification-kind { background: #e9edf2; color: #65748a; }
.notification-item small { font-size: .75rem; color: var(--muted); }
.notification-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
@media (max-width: 680px) {
  .review-header { padding: 18px; gap: 10px; }
  #review-document { font-size: 1rem; }
  .review-scroll { padding: 16px 14px 20px; }
  .review-footer { padding: 10px 16px; }
  .review-progress { display: flex; overflow-x: auto; padding-bottom: 6px; }
  .review-progress li { flex: 0 0 100px; }
  .review-owners { gap: 8px; }
  .review-owners > div { padding: 10px; }
  .review-section { padding: 16px 14px; }
  .review-card { padding-inline: 12px; }
  .review-card > summary { margin-inline: -12px; padding: 14px 12px; }
  .review-answer-row { display: block; }
  .review-answer-row .field { width: 100%; }
  .review-uncertain { margin-top: 12px; }
  .review-actions > button { flex: 1 1 auto; }
}
@media (max-width: 680px) { .review-grid { grid-template-columns: 1fr; } }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.auth-screen { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.auth-card { width: min(460px, 100%); padding: 36px; background: white; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 16px 48px #10233d0d; }
.auth-card .brand { margin-bottom: 32px; }
.auth-card h1 { font-size: 1.65rem; }
.auth-card p { color: var(--muted); line-height: 1.6; }
.auth-card .field, .account-password .field { margin: 16px 0; }
.auth-card .primary-button { width: 100%; margin-top: 12px; }
.auth-local-note { font-size: 0.8rem; padding-top: 18px; border-top: 1px solid var(--line); }
.account-password { margin: 24px 0; }
.account-password summary { cursor: pointer; font-weight: 700; }
.account-member { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.account-member small, #invite-result small { display: block; margin-top: 5px; color: var(--muted); font-size: 0.8rem; }
.invite-form { display: grid; gap: 12px; }
#invite-result { margin: 18px 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }
#invite-link { width: 100%; margin: 10px 0; padding: 8px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 220px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 27px 18px 22px; color: #fff; background: var(--navy-950); }
.brand { padding: 0 8px; color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 11px; font-size: 1.12rem; font-weight: 800; letter-spacing: 0.06em; }
.brand-mark { width: 34px; height: 34px; border-radius: 10px 3px 10px 3px; display: grid; place-items: center; color: var(--navy-950); background: linear-gradient(145deg, #6ee7f2, #8ab8ff); font-weight: 850; letter-spacing: 0; }
.primary-nav { margin-top: 42px; display: grid; gap: 7px; }
.primary-nav button { width: 100%; border: 0; border-radius: 10px; padding: 12px 13px; display: flex; align-items: center; gap: 12px; color: #aebdce; background: transparent; text-align: left; font-size: 0.92rem; font-weight: 680; cursor: pointer; }
.primary-nav button:hover { color: #fff; background: rgba(255, 255, 255, 0.06); }
.primary-nav button.active { color: #fff; background: #183653; }
.nav-icon { display: block; flex: 0 0 20px; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; color: #91a8c2; }
.primary-nav button.active .nav-icon { color: #75d7e7; }
.sidebar-footer { margin-top: auto; padding: 18px 9px 0; border-top: 1px solid #23364c; }
.sidebar-footer span, .sidebar-footer small { display: block; }
.sidebar-footer span { color: #d4deea; font-size: 0.8rem; font-weight: 700; }
.sidebar-footer small { margin-top: 5px; color: #71849a; font-size: 0.72rem; }

.app-main { min-width: 0; }
.topbar { position:sticky; top:0; z-index:12; min-height:52px; padding:8px clamp(18px, 3vw, 40px); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 2px 8px #10233d08; }
.global-search { width:100%; max-width:620px; height:32px; padding:0 3px 0 10px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:7px; color:#6f8298; background:#f2f5f8; border:1px solid transparent; border-radius:7px; }
.global-search:focus-within { background: #fff; border-color: #94b8e5; box-shadow: 0 0 0 3px #e8f1fc; }
.global-search input { min-width:0; border:0; outline:0; color:var(--ink); background:transparent; font-size:.8rem; }
.global-search button { height:26px; padding:0 11px; border:0; border-radius:5px; color:#fff; background:var(--blue-600); font-size:.74rem; font-weight:750; cursor:pointer; }
.topbar-meta { min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:8px; color:var(--muted); font-size:.72rem; white-space:nowrap; }
.topbar-meta .upload-button,.topbar-meta .secondary-button { height:32px; min-height:32px; padding:0 10px; border-radius:6px; font-size:.75rem; white-space:nowrap; }
.topbar-meta .upload-button,.topbar-meta #notifications-open { flex-shrink:0; }
.topbar-meta #account-open { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.view-section { scroll-margin-top:var(--discovery-top); }
.upload-button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 8px; color: #fff; background: var(--navy-900); font-size: 0.84rem; font-weight: 750; cursor: pointer; }
.upload-button:hover { background: var(--navy-800); }

.workspace { width: min(1380px, calc(100% - 56px)); margin: 0 auto; padding: 38px 0 64px; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.eyebrow { margin: 0 0 7px; color: #7f91a8; font-size: 0.73rem; font-weight: 800; letter-spacing: 0.12em; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1 { margin: 0; color: var(--navy-900); font-size: clamp(1.65rem, 2.5vw, 2.15rem); line-height: 1.25; letter-spacing: -0.04em; }
h2 { margin: 0; color: var(--navy-900); font-size: 1.22rem; letter-spacing: -0.025em; }
.page-description { margin: 8px 0 0; color: var(--muted); font-size: 0.92rem; }
.heading-stat { text-align: right; }
.heading-stat strong { display: block; color: var(--blue-600); font-size: 1.65rem; line-height: 1; }
.heading-stat span { display: block; margin-top: 7px; color: var(--muted); font-size: 0.78rem; }

.library-panel, .interpretation-card, .results-panel, .placeholder-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 30px rgba(15, 35, 61, 0.04); }
.library-panel { margin-top: 25px; overflow: hidden; }
.library-toolbar { min-height: 70px; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--soft-line); }
.team-filter { display: flex; gap: 4px; padding: 4px; background: #edf2f7; border-radius: 9px; }
.team-filter button { border: 0; border-radius: 6px; padding: 8px 12px; color: #5a6b80; background: transparent; font-size: 0.82rem; font-weight: 700; cursor: pointer; }
.team-filter button.active { color: var(--navy-900); background: #fff; box-shadow: 0 2px 8px rgba(15, 35, 61, 0.1); }
.select-filters { display: flex; gap: 9px; }
.select-filters select { min-width: 132px; height: 38px; padding: 0 34px 0 11px; color: #44566c; background: #fff; border: 1px solid var(--line); border-radius: 8px; font-size: 0.82rem; }
.list-summary { padding: 18px 22px 11px; display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: 0.79rem; }
.list-summary strong { color: var(--navy-900); font-size: 0.88rem; }
.document-table { padding: 0 20px 15px; }
.document-header, .document-row { display: grid; grid-template-columns: 105px minmax(280px, 2.7fr) 90px 130px minmax(140px, 1fr); align-items: center; gap: 14px; }
.document-header { min-height: 39px; padding: 0 14px; color: #7b8ca0; background: #f6f8fb; border-top: 1px solid var(--soft-line); border-bottom: 1px solid var(--line); font-size: 0.74rem; font-weight: 750; }
.document-row { width: 100%; min-height: 72px; padding: 11px 14px; border: 0; background: transparent; text-align: left; cursor: pointer; }
.document-row:hover, .document-row:focus-visible { position: relative; z-index: 1; outline: 0; background: #eaf0f7; box-shadow: inset 3px 0 var(--blue-600); }
.document-date, .document-author, .document-team, .document-topic { color: #586a80; font-size: 0.8rem; line-height: 1.45; }
.document-title-cell { min-width: 0; }
.document-title { display: block; color: var(--navy-900); font-size: 0.91rem; line-height: 1.45; }
.document-series { display: block; margin-top: 4px; color: #8a99aa; font-size: 0.72rem; }
.document-topic { color: #3e6389; }
.document-title[type="button"] { padding:0; border:0; background:none; font-family:inherit; font-weight:700; text-align:left; cursor:pointer; }
.document-title[type="button"]:hover { color:var(--blue-600); text-decoration:underline; text-underline-offset:3px; }
.document-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.document-topic .material-tag { margin:3px 3px 3px 0; }
.library-selection,.personal-selection { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.material-tag-selection { display:inline-flex; align-items:center; flex-wrap:wrap; gap:7px; max-width:100%; }
.material-tag-selection[hidden],.material-tag-reset[hidden],.material-tag-mode[hidden] { display:none; }
.material-tag-reset { border:0; padding:7px 4px; background:transparent; font:inherit; font-size:.76rem; color:#546d7e; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.material-tag-reset:focus-visible { outline:3px solid #4389c4; outline-offset:3px; border-radius:4px; }
.material-tag-mode { color:#597866; font-size:.74rem; line-height:1.5; }
.external-overview>[data-external-tag-selection] { flex-basis:100%; }
.material-tag,.material-tag-clear { font:inherit; font-size:.77rem; line-height:1.4; padding:6px 9px; border:1px solid #cbdde5; border-radius:6px; background:#f0f6f9; color:#365d75; cursor:pointer; overflow-wrap:anywhere; max-width:100%; }
.material-tag-clear { background:#e7f3ed; border-color:#a9cdbb; color:#235c45; font-weight:700; }
.external-overview .material-tag-clear { background:#e7f3ed; border-color:#a9cdbb; color:#235c45; font-weight:700; }
.material-tag-clear[hidden] { display:none; }
:is(.document-tags,.document-topic,.personal-tags,.external-tags) .material-tag:hover { background:#e2efe9; border-color:#88b59f; color:#215c44; }
:is(.document-tags,.document-topic,.personal-tags,.external-tags) .material-tag[aria-pressed="true"] { background:#2b6653; border-color:#2b6653; color:#fff; }
:is(.material-tag,.material-tag-clear,.document-title[type="button"]):focus-visible { outline:3px solid #4389c4; outline-offset:3px; }
#library-tag-summary,.personal-list-heading,.external-overview { scroll-margin-top:100px; }
@media(max-width:820px) {
  #library-tag-summary,.personal-list-heading,.external-overview { scroll-margin-top:205px; }
  .list-summary { flex-wrap:wrap; }
  .document-tags .material-tag { min-height:34px; }
}
.document-selectable { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; background: #fff; border-bottom: 1px solid #d8e0e8; }
.document-selectable:nth-child(even) { background: #f3f5f7; }
.document-selectable:last-child { border-bottom: 0; }
.geo-select { width: 18px; height: 18px; accent-color: var(--blue-600); cursor: pointer; }
.geo-select:disabled { cursor: default; }
.geo-selectable .document-header { margin-left: 32px; }
.document-geo { display: inline-flex; align-items: center; max-width: 100%; padding: 4px 9px; border: 1px solid transparent; border-radius: 6px; font-size: 0.68rem; font-weight: 750; line-height: 1.45; margin-top: 7px; }
.document-geo:empty { display: none; }
.geo-badge-processing { color: #617185; background: #eff2f6; border-color: #e0e6ed; }
.geo-badge-linked { color: #285b8e; background: #edf4fc; border-color: #cddff3; }
.geo-badge-pending { color: #885400; background: #fff0ce; border-color: #ead4a6; }
.geo-badge-attention { color: #9d4136; background: #fff0eb; border-color: #ecc7bc; }
.geo-badge-complete { color: #256648; background: #e7f4ec; border-color: #bcdcc9; }
.geo-badge-sent { color: #fff; background: #285b72; border-color: #285b72; }
.geo-badge-not-sent { color: #5a5348; background: #efede8; border-color: #d6d1c7; }
.geo-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 22px; }
.geo-toolbar strong { font-size: 0.875rem; }
.geo-toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.geo-operation-result { margin: 0 22px 18px; padding: 14px 16px; border: 1px solid #c8ddf2; border-radius: 10px; background: #f4f8fd; font-size: .84rem; line-height: 1.7; overflow-wrap: anywhere; }
.geo-operation-result p { margin: 0 0 6px; }
.geo-operation-result details { margin-top: 8px; }
.geo-operation-result summary { cursor: pointer; }
.geo-demo-panel { margin-bottom: 28px; padding: 24px; border: 2px solid #d6b369; border-radius: 16px; background: #fffbf1; }
.geo-demo-panel .eyebrow { color: #92702d; }
.geo-demo-panel.geo-demo-compact { padding: 16px 20px; margin-bottom: 20px; }
.geo-demo-compact .geo-demo-heading h2 { font-size: .95rem; line-height: 1.6; }
.geo-demo-compact .geo-demo-heading .eyebrow { margin-bottom: 5px; }
.geo-demo-compact > p, .geo-demo-compact > small, .geo-demo-compact .geo-demo-steps { display: none; }
.geo-demo-compact .geo-demo-roles { margin-top: 12px; }
.geo-demo-panel h2 { color: #604c28; }
.geo-demo-panel > p { margin: 12px 0; font-size: .9rem; line-height: 1.7; }
.geo-demo-panel small { display: block; color: #7b694a; font-size: .78rem; line-height: 1.6; }
.geo-demo-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.geo-demo-heading a { text-decoration: none; }
.geo-demo-roles { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.geo-demo-roles span { margin-right: 8px; font-weight: 700; font-size: .85rem; }
.geo-demo-roles button[aria-pressed="true"] { color: #fff; background: #80602b; border-color: #80602b; }
.geo-demo-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0; padding: 0; list-style: none; counter-reset: geo-demo-step; }
.geo-demo-steps li { min-width: 0; padding: 16px; border: 1px solid #e8d7b7; border-radius: 10px; background: #fffefa; counter-increment: geo-demo-step; }
.geo-demo-steps strong { display: block; margin-bottom: 14px; font-size: .85rem; }
.geo-demo-steps strong::before { content: counter(geo-demo-step) ". "; color: #96722d; }
.geo-demo-steps small { margin-top: 8px; }
.geo-demo-steps button { width: 100%; }
@media (max-width: 980px) { .geo-demo-steps { grid-template-columns: 1fr; } }
.geo-text-button { color: #376a9a; background: transparent; border: 0; padding: 10px; font-size: 0.875rem; cursor: pointer; }
.geo-connection { margin: 0; padding: 0 22px 16px; font-size: 0.8rem; color: var(--muted); }
.geo-error { color: #a33b3b; }
.detail-geo { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.detail-geo h3 { margin: 0 0 12px; font-size: 1.05rem; }
.detail-geo p { font-size: 0.875rem; line-height: 1.65; color: var(--muted); }
.geo-status { color: #28685e; font-size: 0.9rem; }
.geo-file-list, .geo-request-documents { padding-left: 20px; font-size: 0.875rem; line-height: 1.6; overflow-wrap: anywhere; }
.geo-file-list li, .geo-request-documents li { margin: 12px 0; }
.geo-file-list a { color: #215b99; }
.geo-file-list small, .geo-request-documents small { display: block; color: var(--muted); font-size: 0.75rem; }
.geo-request-documents { max-height: 40vh; overflow-y: auto; }
.select-filters { flex-wrap: wrap; }

.search-summary { margin-bottom: 24px; display: flex; align-items: flex-start; gap: 22px; }
.back-button { margin-top: 4px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; color: #52657b; background: #fff; font-size: 0.79rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.content-grid { display: grid; grid-template-columns: 255px minmax(0, 1fr); gap: 22px; align-items: start; }
.interpretation-card { position: sticky; top: 20px; padding: 21px; }
.aside-heading, .results-toolbar, .result-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.rule-label { flex: 0 0 auto; padding: 5px 8px; color: var(--success); background: #eefaf7; border: 1px solid #bce7df; border-radius: 999px; font-size: 0.7rem; font-weight: 700; }
.interpretation-list { margin: 20px 0 0; }
.interpretation-list div { padding: 12px 0; border-top: 1px solid var(--soft-line); }
.interpretation-list dt { color: var(--muted); font-size: 0.74rem; font-weight: 700; }
.interpretation-list dd { margin: 6px 0 0; color: var(--navy-900); font-size: 0.86rem; font-weight: 680; line-height: 1.5; }
.aside-note { margin-top: 16px; padding: 14px; border: 1px solid #e1eaf4; border-radius: 10px; background: #f4f8fd; }
.aside-note strong { display: block; color: var(--navy-800); font-size: 0.8rem; }
.aside-note p { margin: 5px 0 0; color: var(--muted); font-size: 0.76rem; line-height: 1.5; }
.results-panel { min-width: 0; padding: 22px; }
.results-list { margin-top: 16px; border-top: 1px solid var(--line); }
.result-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 23px 3px; border-bottom: 1px solid var(--line); }
.result-card:last-child { border-bottom: 0; }
.result-kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--muted); font-size: 0.78rem; }
.result-rank { color: var(--blue-600); font-weight: 800; }
.result-title { margin: 8px 0 0; color: var(--navy-900); font-size: 1.02rem; line-height: 1.45; letter-spacing: -0.02em; }
.match-tags { margin-top: 11px; display: flex; flex-wrap: wrap; gap: 6px; }
.match-tag { padding: 4px 7px; color: #315272; background: #edf5fc; border-radius: 5px; font-size: 0.71rem; font-weight: 680; }
.result-snippet { margin: 13px 0 0; padding: 12px 14px; border: 0; border-left: 3px solid #93b9e8; color: #506176; background: #f7f9fc; font-size: 0.83rem; line-height: 1.6; }
mark { color: inherit; background: #fff0a8; border-radius: 2px; padding: 0 1px; }
.result-actions { align-self: center; flex-direction: column; justify-content: center; min-width: 94px; }
.page-link { color: var(--muted); font-size: 0.74rem; white-space: nowrap; }
.pdf-link { color: var(--blue-600); text-decoration: none; font-size: 0.82rem; font-weight: 750; white-space: nowrap; }
.pdf-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.empty-state, .error-state { padding: 64px 20px; text-align: center; color: var(--muted); font-size: 0.88rem; }
.empty-state strong, .error-state strong { display: block; margin-bottom: 8px; color: var(--navy-900); font-size: 1rem; }

.placeholder-card { max-width: 660px; margin: 50px auto; padding: 60px 35px; text-align: center; }
.placeholder-icon { width: 52px; height: 52px; margin: 0 auto 18px; display: grid; place-items: center; color: var(--blue-600); background: var(--blue-100); border-radius: 15px; font-size: 1.4rem; }
.placeholder-card p:not(.eyebrow) { max-width: 480px; margin: 12px auto 24px; color: var(--muted); line-height: 1.65; }
.primary-button { padding: 10px 16px; border: 0; border-radius: 8px; color: #fff; background: var(--blue-600); font-size: 0.86rem; font-weight: 750; cursor: pointer; }

.calendar-page-heading { align-items: center; }
.calendar-panel { margin-top: 25px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 30px rgba(15, 35, 61, 0.04); }
.calendar-toolbar { min-height: 70px; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--soft-line); }
.calendar-filter-groups { display: flex; align-items: center; gap: 9px; }
.calendar-layer-toggles { display: flex; gap: 4px; padding: 4px; background: #f2f4f7; border-radius: 9px; }
.calendar-layer-toggles button { min-height: 34px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px; color: #8390a0; background: transparent; border: 0; border-radius: 6px; font-size: 0.76rem; font-weight: 720; cursor: pointer; }
.calendar-layer-toggles button.active { color: var(--navy-900); background: #fff; box-shadow: 0 2px 8px rgba(15, 35, 61, 0.1); }
.layer-dot { width: 8px; height: 8px; border-radius: 50%; background: #aab4c0; }
.calendar-layer-toggles button.active .layer-dot.publication { background: #4f8fd7; }
.calendar-layer-toggles button.active .layer-dot.institute { background: #8a62cb; }
.month-navigation { display: flex; align-items: center; gap: 8px; }
.month-navigation button { min-width: 34px; height: 34px; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; color: #52657b; background: #fff; font-size: 1.15rem; cursor: pointer; }
.month-navigation button:hover { color: var(--blue-600); border-color: #a9c8ed; }
.month-navigation strong { min-width: 118px; color: var(--navy-900); text-align: center; font-size: 1.04rem; }
.month-navigation .current-month-button { margin-left: 3px; font-size: 0.75rem; font-weight: 720; }
.calendar-summary { min-height: 47px; padding: 0 21px; display: flex; align-items: center; gap: 20px; color: var(--muted); border-bottom: 1px solid var(--soft-line); font-size: 0.76rem; }
.calendar-summary span { display: inline-flex; align-items: baseline; gap: 5px; }
.calendar-summary strong { color: var(--navy-900); font-size: 0.9rem; }
.calendar-summary small { margin-left: auto; color: #7a8da3; font-size: 0.72rem; }
.event-type-legend { display: flex; align-items: center; gap: 10px; color: #718197; font-size: 0.7rem; }
.event-type-legend span { gap: 4px; }
.event-type-legend i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; }
.event-type-legend i.meeting { background: #8a62cb; }
.event-type-legend i.seminar { background: #d99132; }
.event-type-legend i.other { background: #73849a; }
.calendar-scroll { overflow-x: auto; }
.calendar-weekdays, .calendar-grid { min-width: 910px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays { min-height: 38px; align-items: center; color: #71839a; background: #f7f9fc; border-bottom: 1px solid var(--line); text-align: center; font-size: 0.74rem; font-weight: 750; }
.calendar-grid { background: var(--line); gap: 1px; }
.calendar-day { min-width: 0; min-height: 142px; padding: 10px 8px; background: #fff; cursor: pointer; }
.calendar-day:hover { box-shadow: inset 0 0 0 1px #b6cce7; }
.calendar-add-hint { margin: 0; padding: 9px 20px; color: #71839a; border-bottom: 1px solid var(--line); font-size: .74rem; }
.calendar-meeting-archive { margin-top: 24px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.calendar-meeting-archive > summary { padding: 18px 20px; color: var(--navy-900); font-size: .9rem; font-weight: 750; cursor: pointer; }
.calendar-meeting-archive > summary:focus-visible { outline: 2px solid var(--blue-600); outline-offset: -3px; border-radius: 12px; }
.calendar-meeting-archive-description { margin: 0; padding: 0 20px 16px; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.calendar-meeting-archive #meetings-view { padding: 0 20px 20px; }
.schedule-error { padding: 12px 14px; color: #9e2424; background: #fff2f0; border: 1px solid #edc4bf; border-radius: 8px; font-size: .83rem; line-height: 1.6; }
.calendar-day.outside { background: #fafbfd; }
.calendar-day.issue-day:not(.outside) { background: #fbfdff; }
.calendar-day.today { box-shadow: inset 0 0 0 2px #86afe2; }
.calendar-day-head { min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.calendar-day-add { min-height: 32px; padding: 0 4px 0 0; display: inline-flex; align-items: center; gap: 1px; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.calendar-day-add:hover { background: #eaf3ff; }
.calendar-day-add:focus-visible { outline: 2px solid var(--blue-600); outline-offset: 2px; }
.calendar-day-plus { color: #7c95b2; font-size: .85rem; }
.calendar-day-number { width: 26px; height: 26px; display: grid; place-items: center; color: #53677e; border-radius: 50%; font-size: 0.76rem; font-weight: 720; }
.calendar-day.outside .calendar-day-number { color: #a8b3c1; }
.calendar-day.today .calendar-day-number { color: #fff; background: var(--blue-600); }
.issue-day-label { color: #8194aa; font-size: 0.63rem; font-weight: 700; }
.calendar-events { margin-top: 5px; display: grid; gap: 5px; }
.calendar-event { width: 100%; min-width: 0; padding: 7px 8px; display: grid; gap: 3px; color: #29425e; background: #edf5ff; border: 0; border-left: 3px solid #4f8fd7; border-radius: 6px; text-align: left; cursor: default; }
.calendar-event[data-document-id] { cursor: pointer; }
.calendar-event[data-document-id]:hover, .calendar-event[data-document-id]:focus-visible { outline: 0; background: #e2efff; box-shadow: 0 0 0 2px #c3daf4; }
.calendar-event[data-schedule-id] { cursor: pointer; }
.calendar-event[data-schedule-id]:hover, .calendar-event[data-schedule-id]:focus-visible { outline: 0; box-shadow: 0 0 0 2px rgba(55, 105, 165, 0.26); filter: brightness(0.98); }
.calendar-event.market { color: #245354; background: #eaf8f5; border-left-color: #3a9b91; }
.calendar-event.market[data-document-id]:hover, .calendar-event.market[data-document-id]:focus-visible { background: #dff3ef; box-shadow: 0 0 0 2px #bee3dc; }
.calendar-event.institute.meeting { color: #533f78; background: #f2edfb; border-left-color: #8a62cb; }
.calendar-event.institute.seminar { color: #744e17; background: #fff4df; border-left-color: #d99132; }
.calendar-event.institute.other { color: #46566b; background: #eef2f6; border-left-color: #73849a; }
.calendar-event.postponed { color: #785316; background: #fff6df; border-left-color: #d99a2b; }
.calendar-event.recess { color: #687587; background: #f0f2f5; border-left-color: #9aa6b4; }
.calendar-event-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 0.63rem; font-weight: 760; }
.calendar-event-status { opacity: 0.78; }
.calendar-event-title { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 0.72rem; font-weight: 760; line-height: 1.35; }
.calendar-event-author { opacity: 0.82; font-size: 0.65rem; }
.calendar-event-time { font-size: .7rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.calendar-event-location { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .65rem; opacity: .88; }
.calendar-event-records { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
.calendar-event-record-badge { display: inline-flex; align-items: center; padding: 2px 5px; border: 1px solid #d7c9e9; border-radius: 4px; color: #634483; background: #ffffffb8; font-size: .61rem; font-weight: 650; line-height: 1.3; white-space: nowrap; }
.upload-dialog.schedule-dialog { width: min(660px, calc(100vw - 28px)); }
.schedule-fields { margin-top: 0; }
.schedule-field-help { margin: -5px 0 0; color: #71839a; font-size: .72rem; line-height: 1.55; }
.schedule-fields textarea { width: 100%; min-height: 80px; padding: 11px 12px; border: 1px solid #cfd9e4; border-radius: 8px; color: var(--navy-900); background: #fff; font: inherit; font-size: .85rem; line-height: 1.55; resize: vertical; }
.schedule-fields textarea:focus { outline: 2px solid #b5d2f5; outline-offset: 1px; border-color: var(--blue-600); }
#schedule-dialog .upload-form { padding: 24px 26px 22px; }
#schedule-dialog .dialog-heading { align-items: center; }
#schedule-dialog .dialog-heading .eyebrow { margin-bottom: 5px; font-size: .67rem; }
#schedule-dialog #schedule-eyebrow { display: none; }
#schedule-dialog .dialog-heading h2 { font-size: 1.2rem; }
#schedule-dialog .schedule-fields { margin-top: 0; gap: 12px; }
#schedule-dialog .schedule-fields .field label, #schedule-dialog .schedule-fields .topic-field legend { margin-bottom: 6px; font-size: .78rem; }
#schedule-dialog .schedule-fields .field input:not(.solve-datetime-native), #schedule-dialog .schedule-fields .field select { height: 36px; padding-block: 7px; font-size: .83rem; }
#schedule-dialog .schedule-fields textarea { min-height: 64px; padding: 9px 11px; font-size: .83rem; }
#schedule-dialog .schedule-field-help { margin: -5px 0 0; color: #64758b; font-size: .7rem; line-height: 1.5; }
#schedule-dialog .schedule-choice-group { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; min-width: 0; }
#schedule-dialog .schedule-choice { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 4px 10px; border: 1px solid #cbd8e5; border-radius: 7px; background: #fff; color: #4b6178; font-size: .79rem; font-weight: 650; line-height: 1.2; white-space: nowrap; cursor: pointer; }
#schedule-dialog .schedule-choice:hover { border-color: #819bb9; color: #203e60; background: #edf3f9; }
#schedule-dialog .schedule-choice[aria-pressed="true"] { border-color: #294d76; color: #fff; background: #294d76; }
#schedule-dialog .schedule-choice:focus-visible { outline: 2px solid #1768e5; outline-offset: 3px; }
#schedule-dialog .schedule-choice:disabled { opacity: .5; cursor: not-allowed; }
#schedule-dialog .schedule-kind-choices { flex-wrap: nowrap; gap: 4px; margin: 12px 0 14px; padding: 4px; border: 1px solid #d8e1eb; border-radius: 10px; background: #f0f4f8; }
#schedule-dialog .schedule-kind-choices .schedule-choice { flex: 1 1 0; min-height: 32px; padding: 5px 10px; border-color: transparent; border-radius: 6px; background: transparent; color: #617286; font-size: .83rem; font-weight: 750; }
#schedule-dialog .schedule-kind-choices .schedule-choice:hover { background: #e4ecf5; color: #264b74; }
#schedule-dialog .schedule-kind-choices .schedule-choice[aria-pressed="true"] { border-color: #c7d5e5; background: #fff; color: #203e60; box-shadow: 0 1px 3px #1935520b; }
#schedule-dialog .schedule-classification { display: grid; gap: 6px; min-width: 0; padding: 8px 10px; border: 1px solid #dce5ee; border-radius: 8px; background: #f7f9fc; }
#schedule-dialog .schedule-classification-row { display: grid; grid-template-columns: 80px minmax(0, 1fr); align-items: center; gap: 8px; min-width: 0; }
#schedule-dialog .schedule-fields .schedule-classification .schedule-classification-row > label, #schedule-dialog .schedule-choice-label { margin: 0; color: #42576f; font-size: .77rem; font-weight: 700; line-height: 1.5; }
#schedule-dialog .schedule-choice-label small { margin-left: 4px; color: #7a899b; font-size: .67rem; font-weight: 500; }
#schedule-dialog #schedule-seminar-field { padding-top: 6px; border-top: 1px solid #e1e7ef; }
#schedule-dialog #schedule-seminar-field .schedule-choice[aria-pressed="true"] { border-color: #745197; background: #745197; color: #fff; }
#schedule-dialog .schedule-time-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; }
#schedule-dialog .schedule-time-grid.date-only { grid-template-columns: minmax(0, 1fr); grid-column: auto; }
#schedule-dialog .schedule-time-grid .solve-datetime-control { gap: 5px; }
#schedule-dialog .schedule-time-grid .solve-datetime-button { min-height: 36px; padding: 5px 8px; font-size: .72rem; }
#schedule-dialog .dialog-actions { position: sticky; bottom: 0; z-index: 2; margin-top: 14px; padding: 12px 0; border-top: 1px solid #e4eaf1; background: #fff; box-shadow: 0 -8px 12px #ffffffeb; }
#schedule-dialog .dialog-actions { gap: 8px; }
#schedule-dialog .dialog-action-group { display: flex; flex: 0 0 auto; margin-left: auto; gap: 8px; }
#schedule-dialog .dialog-actions button { min-height: 36px; padding: 7px 12px; white-space: nowrap; }
#schedule-dialog [hidden] { display: none !important; }
@media (max-width: 600px) {
  #schedule-dialog .upload-form { padding: 21px 18px 19px; }
  #schedule-dialog .schedule-time-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  #schedule-dialog .schedule-time-grid > .field:first-child { grid-column: 1 / -1; }
}
@media (max-width: 360px) {
  #schedule-dialog .schedule-classification-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}

.drawer-backdrop { position: fixed; inset: 0; z-index: 20; background: rgba(5, 17, 31, 0.38); backdrop-filter: blur(1px); }
.detail-drawer { --detail-gutter: 36px; position: fixed; z-index: 21; top: 0; right: 0; width: min(800px, 100vw); height: 100vh; height: 100dvh; padding: 0 var(--detail-gutter) 36px; overflow-y: auto; overscroll-behavior: contain; scroll-padding-top: 84px; background: #edf2f7; color: #1a3047; box-shadow: -18px 0 50px rgba(5, 17, 31, 0.24); transform: translateX(102%); transition: transform 180ms ease; }
.detail-drawer.open { transform: translateX(0); }
.detail-toolbar { position: sticky; top: 0; z-index: 2; margin: 0 calc(-1 * var(--detail-gutter)); padding: 12px var(--detail-gutter); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #344d67; background: #10233d; color: #e1eaf4; font-size: .82rem; font-weight: 700; }
.detail-toolbar > span { display: inline-flex; align-items: center; gap: 10px; }
.detail-toolbar > span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #89d6c5; }
.drawer-close { width: 40px; height: 40px; flex-shrink: 0; border: 1px solid #627b94; border-radius: 10px; color: #fff; background: #294460; font-size: 1.5rem; cursor: pointer; }
.drawer-close:hover { background: #3b5875; }
.detail-heading { margin: 0 calc(-1 * var(--detail-gutter)); padding: 30px var(--detail-gutter) 28px; border-bottom: 4px solid #398c86; background: #183554; }
.detail-series { display: inline-block; margin: 0 0 16px; padding: 6px 10px; border: 1px solid #66849c; border-radius: 6px; background: #244762; font-size: .8rem; color: #cbf1e8; font-weight: 750; letter-spacing: .02em; }
.detail-drawer h2 { margin: 0; max-width: 670px; color: #fff; font-size: clamp(1.45rem, 2.4vw, 1.9rem); line-height: 1.45; letter-spacing: -.035em; word-break: keep-all; overflow-wrap: anywhere; }
.detail-meta { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 8px; color: #d3e0ef; font-size: .87rem; line-height: 1.6; overflow-wrap: anywhere; }
.detail-meta span + span::before { margin-right: 8px; color: #92adc7; content: "·"; }
.detail-heading-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 22px; }
.detail-topics { display: flex; flex-wrap: wrap; gap: 7px; }
.detail-topic { padding: 6px 10px; border: 1px solid #66849c; color: #f0f5fa; background: #294966; border-radius: 6px; font-size: .78rem; font-weight: 600; }
.detail-original { display: inline-flex; align-items: center; justify-content: center; gap: 12px; flex-shrink: 0; min-height: 44px; max-width: 100%; padding: 12px 16px; background: #e4f5ef; color: #144c46; text-decoration: none; border: 1px solid #b9e0d5; border-radius: 8px; font-size: .85rem; font-weight: 800; }
.detail-original:hover { background: #fff; }
.detail-reading { display: grid; gap: 22px; padding-top: 24px; }
.detail-reading > section { min-width: 0; padding: 24px; border: 1px solid #c8d5e2; border-radius: 12px; background: #fff; box-shadow: 0 3px 8px rgba(24, 53, 84, .04); }
.detail-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 18px; }
.detail-section-heading h3, .detail-reading-empty h3 { margin: 0; color: #183554; font-size: 1.06rem; font-weight: 800; letter-spacing: -.02em; }
.detail-section-heading h3 { padding-left: 11px; border-left: 4px solid #247a72; }
.detail-section-heading > span { color: #50647b; font-size: .78rem; line-height: 1.6; font-weight: 500; }
.detail-reading > .detail-intro { background: #e7f3f0; border-color: #9cc8bf; border-top: 4px solid #247a72; }
.detail-intro p { margin: 0 0 16px; font-size: 1rem; line-height: 1.9; color: #183e3a; word-break: keep-all; overflow-wrap: anywhere; white-space: pre-line; }
.detail-source { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 4px 9px; border: 1px solid #b8cfda; border-radius: 5px; background: #f0f6fa; color: #225673; font-size: .79rem; font-weight: 650; text-decoration: none; }
.detail-source:hover { background: #dcecf3; border-color: #7cabbf; text-decoration: underline; }
.detail-excerpts { margin: 0; }
.detail-excerpts ol { padding: 0; margin: 0; list-style: none; }
.detail-excerpts li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 15px; padding: 20px 0; border-top: 1px solid #d4e0e9; }
.detail-excerpts li:first-child { padding-top: 2px; border-top: 0; }
.detail-excerpts li:last-child { padding-bottom: 0; }
.detail-excerpt-number { display: grid; place-items: center; height: 34px; border-radius: 9px; background: #dcefe9; color: #205e54; font-size: .83rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.detail-excerpts li p { margin: 0 0 10px; font-size: .98rem; line-height: 1.85; color: #23394f; word-break: keep-all; overflow-wrap: anywhere; }
.detail-keywords { margin: 0; }
.detail-reading > .detail-keywords { padding: 18px 22px; background: #f9fbfd; box-shadow: none; }
.detail-keywords .detail-section-heading { margin-bottom: 12px; }
.detail-keywords .detail-section-heading h3 { padding-left: 0; border-left: 0; font-size: .9rem; }
.detail-keyword-list { display: flex; flex-wrap: wrap; gap: 8px; }
.detail-keyword-list button { max-width: 100%; min-height: 40px; padding: 9px 12px; border: 1px solid #adc3d6; border-radius: 8px; background: #eaf1f8; color: #204b6a; font-size: .83rem; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; cursor: pointer; }
.detail-keyword-list button span { color: #326b7c; }
.detail-keyword-list button small { display: inline-block; margin-left: 7px; padding: 1px 5px; border-radius: 4px; background: #d6e3ee; font-size: .69rem; color: #405a73; font-weight: 600; }
.detail-keyword-list button:hover { background: #dcecf4; border-color: #6d98b3; }
.detail-provenance { margin: -7px 2px 0; font-size: .79rem; line-height: 1.75; color: #4d6278; }
.detail-summary-evidence { margin-top: 18px; border-top: 1px solid #c7d9d6; padding-top: 12px; }
.detail-summary-evidence > summary { cursor: pointer; color: #385c61; font-size: .82rem; font-weight: 600; }
.detail-summary-evidence > div { margin-top: 14px; }
.detail-summary-evidence blockquote { margin: 0 0 8px; padding-left: 12px; border-left: 2px solid #b0cbc5; font-size: .85rem; line-height: 1.75; color: #435768; overflow-wrap: anywhere; }
.detail-ai-implications > p { line-height: 1.8; color: #435768; }
.detail-reading-empty p { margin-bottom: 0; color: #435c73; font-size: .91rem; line-height: 1.8; }
.detail-secondary { margin-top: 18px; border: 1px solid #c8d5e2; border-radius: 10px; background: #f8fafc; }
.detail-secondary:not([open]) > :not(summary) { display: none; }
.detail-secondary > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; color: #29465f; cursor: pointer; list-style: none; }
.detail-secondary > summary::-webkit-details-marker { display: none; }
.detail-secondary > summary strong { display: block; font-size: .9rem; font-weight: 750; }
.detail-secondary > summary small { display: block; margin-top: 5px; color: #64778a; font-size: .78rem; line-height: 1.5; }
.detail-secondary > summary::after { content: ""; flex-shrink: 0; width: 8px; height: 8px; margin-right: 3px; border-right: 2px solid #59718a; border-bottom: 2px solid #59718a; transform: rotate(45deg); }
.detail-secondary[open] > summary { border-bottom: 1px solid #d4e0e9; }
.detail-secondary[open] > summary::after { transform: rotate(225deg); }
.detail-secondary > summary:hover { background: #eaf1f7; border-radius: 10px; }
.detail-secondary > summary:focus-visible { outline: 3px solid #327cb5; outline-offset: 3px; border-radius: 10px; }
.detail-secondary-body { padding: 0 20px 8px; }
.detail-file-info { padding-top: 20px; }
.detail-file-info > h3 { margin: 0 0 12px; color: #29465f; font-size: .92rem; }
.detail-facts { margin: 0; }
.detail-facts div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 14px; padding: 13px 0; border-top: 1px solid #d4e0e9; }
.detail-facts dt { color: #4c6279; font-size: .81rem; }
.detail-facts dd { margin: 0; color: var(--navy-900); font-size: .85rem; font-weight: 650; line-height: 1.6; overflow-wrap: anywhere; }
.detail-geo { margin-top: 24px; padding: 24px; border: 1px solid #bfcfdf; border-top: 4px solid #345d88; border-radius: 12px; background: #fff; }
.detail-secondary > .detail-geo { margin-top: 0; border: 0; border-radius: 0 0 10px 10px; }
.detail-geo h3 { color: #183554; font-size: 1.05rem; font-weight: 800; }
.detail-geo p, .detail-geo small { color: #4c6279; }
.detail-geo .geo-status { display: inline-block; padding: 6px 10px; border: 1px solid #9ec5ba; border-radius: 6px; background: #e5f2ec; color: #205e4e; font-size: .82rem; }
.detail-geo .review-word { padding: 16px; border: 1px solid #c7d6e5; border-radius: 9px; background: #f0f5fa; }
.detail-geo .review-word span { color: #445c75; font-size: .79rem; }
.detail-geo .review-entry { padding: 20px; border: 0; border-radius: 10px; background: #164552; }
.detail-geo .review-entry h3 { color: #fff; }
.detail-geo .review-entry p, .detail-geo .review-entry small { color: #dcecf0; }
.detail-geo .review-entry .review-notice { color: #423b2e; background: #fff6e5; border: 1px solid #e6d5b6; font-size: .9rem; font-weight: 500; white-space: pre-wrap; overflow-wrap: anywhere; }
.detail-geo .review-entry .primary-button { border-color: #e3f3f1; background: #e3f3f1; color: #153f48; }
.detail-geo .review-entry .primary-button:hover { background: #fff; }
.detail-geo :is(button, .primary-button) { max-width: 100%; white-space: normal; overflow-wrap: anywhere; line-height: 1.6; }
.detail-geo .geo-text-button { margin-top: 8px; padding: 8px 0; color: #2b577d; font-size: .81rem; text-decoration: underline; text-underline-offset: 3px; }
.geo-detail-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin-top: 16px; }
.detail-geo .geo-detail-actions .geo-text-button { margin-top: 0; }
.detail-notice { margin: -5px 0 22px; padding: 13px 14px; color: #725110; background: #fff8e7; border: 1px solid #f0deb3; border-radius: 9px; font-size: 0.79rem; line-height: 1.55; }
.detail-secondary-body > .detail-notice { margin: 10px 0; }
.library-heading-actions { display: flex; align-items: center; gap: 22px; }
.library-heading-actions > button { font-size: .77rem; font-weight: 600; }
.detail-manage { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-bottom: 1px solid #d4e0e9; }
.detail-manage[hidden] { display: none; }
.detail-manage-label { color: #304e67; font-size: .82rem; font-weight: 750; white-space: nowrap; }
.detail-manage-actions { display: flex; gap: 10px; }
.detail-manage button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; font-size: .84rem; font-weight: 750; white-space: nowrap; }
.detail-manage button svg { width: 18px; height: 18px; flex-shrink: 0; }
.detail-manage .danger-button { color: #a32935; border-color: #dca6ad; background: #fff3f4; }
.detail-manage .danger-button:hover { color: #8f1f2a; border-color: #ca7b86; background: #ffe6e9; }
.management-document-title { margin: 18px 0 20px; padding: 14px 16px; border-radius: 9px; background: #f2f6f9; color: #3c5268; font-size: .9rem; font-weight: 650; line-height: 1.7; overflow-wrap: anywhere; }
.managed-auto-section { margin-top: 25px; }
.managed-auto-section h3 { margin: 0 0 7px; font-size: .9rem; color: #334f66; }
.managed-auto-section > p { color: #72808f; font-size: .76rem; line-height: 1.7; }
.managed-auto-section button { overflow-wrap: anywhere; }
.managed-excluded { margin-top: 17px; padding-top: 14px; border-top: 1px solid #e6edf1; }
.managed-excluded:empty { display: none; }
.managed-excluded > p { margin: 0 0 9px; color: #83909c; font-size: .73rem; }
.managed-excluded .upload-keyword-options button { border-style: dashed; color: #83909c; }
.management-message { min-height: 22px; margin: 18px 0 0; color: #48766d; font-size: .79rem; line-height: 1.8; white-space: pre-line; }
.management-message.keyword-error { color: #9c4545; }
.document-management-dialog :is(button, input):focus-visible { outline: 2px solid #1768e5; outline-offset: 3px; }
.document-management-dialog .dialog-action-group { flex-wrap: wrap; }
.document-management-dialog .dialog-actions { justify-content: flex-end; }
.document-management-dialog .dialog-actions > span:empty { display: none; }
.document-delete-dialog { max-width: 550px; }
.document-trash-list { margin-top: 13px; }
.document-trash-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 0; border-bottom: 1px solid #e6edf1; }
.document-trash-row > div { min-width: 0; }
.document-trash-row strong { display: block; font-size: .91rem; color: #344d64; line-height: 1.65; overflow-wrap: anywhere; }
.document-trash-row small { display: block; margin-top: 6px; color: #82909e; font-size: .73rem; line-height: 1.6; overflow-wrap: anywhere; }
.document-trash-row button { flex-shrink: 0; font-size: .77rem; }
.detail-drawer :is(button, a, summary):focus-visible { outline: 2px solid #1768e5; outline-offset: 4px; }
.detail-toolbar button:focus-visible, .detail-heading a:focus-visible, .detail-geo .review-entry button:focus-visible { outline-color: #a1ead9; }
.result-detail { display: block; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; font: inherit; font-weight: inherit; line-height: inherit; cursor: pointer; }
.result-detail:hover { color: var(--blue-600); text-decoration: underline; text-underline-offset: 4px; }
.result-detail:focus-visible { outline: 2px solid #1768e5; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .detail-drawer { transition: none; } }
@media (pointer: coarse) { .detail-drawer :is(button, a, summary) { min-height: 44px; } }
.primary-link { min-height: 46px; display: flex; align-items: center; justify-content: center; gap: 7px; color: #fff; background: var(--blue-600); border-radius: 9px; text-decoration: none; font-size: 0.88rem; font-weight: 750; }

.upload-dialog { width: min(690px, calc(100vw - 28px)); max-height: min(860px, calc(100vh - 28px)); margin: auto; padding: 0; color: var(--ink); background: #fff; border: 0; border-radius: 18px; box-shadow: 0 26px 80px rgba(5, 17, 31, 0.26); overflow: auto; }
.upload-dialog::backdrop { background: rgba(5, 17, 31, 0.48); backdrop-filter: blur(2px); }
.upload-form { padding: 30px 32px 27px; }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.dialog-close { width: 34px; height: 34px; border: 0; border-radius: 50%; color: #596b80; background: #eef2f6; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.dialog-description { margin: 8px 0 22px; color: var(--muted); font-size: 0.9rem; }
.pdf-dropzone { min-height: 154px; padding: 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: #53677e; background: #f6f9fd; border: 1.5px dashed #a8bed8; border-radius: 13px; text-align: center; cursor: pointer; transition: 140ms ease; }
.pdf-dropzone:hover, .pdf-dropzone.dragging { color: var(--blue-600); background: #eef5fe; border-color: var(--blue-600); }
.pdf-dropzone strong { color: var(--navy-900); font-size: 0.96rem; }
.pdf-dropzone > .upload-ppt-hint { color: var(--blue-600); font-size: 0.9rem; font-weight: 750; }
.pdf-dropzone > span:last-child { font-size: 0.8rem; }
.upload-symbol { width: 40px; height: 40px; margin-bottom: 4px; display: grid; place-items: center; color: var(--blue-600); background: var(--blue-100); border-radius: 11px; font-size: 1.15rem; font-weight: 800; }
.upload-file-card { min-height: 76px; padding: 13px 14px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; background: #f6f9fd; border: 1px solid #d6e2ef; border-radius: 11px; }
.pdf-badge { width: 42px; height: 42px; display: grid; place-items: center; color: #b43b36; background: #fff0ee; border-radius: 9px; font-size: 0.7rem; font-weight: 850; }
.upload-presentation { padding: 14px; border: 1px solid #d6e2ef; border-radius: 11px; background: #f6f9fd; min-width: 0; }
.upload-presentation-heading, .original-files-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.upload-presentation-heading strong { font-size: 0.86rem; }
.upload-presentation-heading strong small { color: var(--muted); font-weight: 500; }
.upload-presentation-heading > div { display: flex; gap: 6px; }
.upload-presentation p { margin: 10px 0 5px; font-size: 0.8rem; overflow-wrap: anywhere; }
.upload-presentation > small { color: var(--muted); font-size: 0.74rem; }
.detail-original-files { padding: 20px 0; margin: 0; border-bottom: 1px solid #d4e0e9; min-width: 0; }
.original-files-heading h3 { margin: 0; font-size: 0.92rem; }
.original-file-name { font-size: 0.83rem; line-height: 1.6; overflow-wrap: anywhere; }
.original-file-name small { color: var(--muted); }
.original-files-help { color: var(--muted); font-size: 0.78rem; line-height: 1.6; }
.original-previous, .original-folder { margin-top: 13px; font-size: 0.8rem; }
.original-previous summary { cursor: pointer; color: var(--navy-900); }
.original-folder { padding-top: 16px; margin-top: 20px; border-top: 1px dashed #d4e0e9; }
.original-folder h4 { margin: 0; font-size: .87rem; color: #29465f; }
.original-previous a { display: block; margin-top: 7px; overflow-wrap: anywhere; white-space: normal; }
.original-folder-path { overflow-wrap: anywhere; user-select: text; line-height: 1.7; }
#presentation-file { max-width: 100%; font-size: 0.82rem; }
.upload-file-card strong, .upload-file-card span { display: block; }
.upload-file-card strong { color: var(--navy-900); font-size: 0.86rem; line-height: 1.4; }
.upload-file-card div span { margin-top: 3px; color: var(--muted); font-size: 0.74rem; }
.upload-file-card button { border: 0; color: var(--blue-600); background: transparent; font-size: 0.78rem; font-weight: 750; cursor: pointer; }
.form-error { margin: 10px 0 0; padding: 10px 12px; color: #a7352f; background: #fff1f0; border-radius: 8px; font-size: 0.8rem; }
.upload-status { margin: 10px 0 0; padding: 11px 13px; color: #1857a5; background: #eef6ff; border-radius: 8px; font-size: 0.8rem; line-height: 1.5; }
#upload-form[aria-busy="true"] :is(input, select, button) { cursor: wait; opacity: 0.6; }
#upload-form[aria-busy="true"] .pdf-dropzone { pointer-events: none; }
#upload-author:disabled { color: #53677e; background: #f3f6f9; opacity: 1; }
.upload-fields { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 17px 15px; }
.upload-suggestion-note { padding: 11px 13px; display: flex; align-items: flex-start; gap: 8px; color: #38536f; background: #eef6ff; border: 1px solid #cee2f7; border-radius: 9px; font-size: 0.78rem; line-height: 1.5; }
.upload-suggestion-note strong { flex: 0 0 auto; color: #1857a5; }
.field { min-width: 0; }
.full-field { grid-column: 1 / -1; }
.field label, .topic-field legend { display: block; margin-bottom: 7px; color: #34485f; font-size: 0.8rem; font-weight: 750; }
.field label span { margin-left: 4px; color: var(--blue-600); font-size: 0.68rem; }
.field label small, .topic-field legend small { margin-left: 5px; color: #8997a8; font-size: 0.7rem; font-weight: 600; }
.field input, .field select { width: 100%; height: 42px; padding: 0 11px; color: var(--ink); background: #fff; border: 1px solid #cfdbe8; border-radius: 8px; outline: 0; font-size: 0.86rem; }
.field input:focus, .field select:focus { border-color: #729fd7; box-shadow: 0 0 0 3px #e9f2fd; }
.field input[readonly] { color: #53677e; background: #f3f6f9; }
.topic-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.topic-suggest-button { margin: -29px 0 9px auto; display: block; padding: 4px 2px; color: var(--blue-600); background: transparent; border: 0; font-size: 0.72rem; font-weight: 720; cursor: pointer; }
.topic-suggest-button:hover { text-decoration: underline; }
.topic-suggest-button:focus-visible { outline: 2px solid var(--blue-600); outline-offset: 2px; border-radius: 3px; }
.topic-options { display: flex; flex-wrap: wrap; gap: 7px; }
.upload-keyword-field { min-width: 0; margin: 6px 0 0; padding: 18px; border: 1px solid #dae6eb; border-radius: 10px; background: #f7fafb; }
.upload-keyword-field legend { padding: 0 5px; }
.upload-keyword-field legend small { margin-left: 5px; font-size: .72rem; color: #7d8997; font-weight: 400; }
.upload-keyword-field > p { margin: 0 0 13px; color: #687e8e; font-size: .77rem; line-height: 1.65; }
.keyword-selected-heading { display: flex; justify-content: space-between; color: #48727a; font-size: .74rem; margin: 14px 0 8px; }
.upload-keyword-selected, .upload-keyword-options { display: flex; flex-wrap: wrap; gap: 7px; }
.upload-keyword-selected { min-height: 38px; margin-bottom: 13px; align-items: center; }
.upload-keyword-selected button { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid #b8d6d3; border-radius: 7px; color: #236960; background: #e8f4f1; font-size: .78rem; cursor: pointer; overflow-wrap: anywhere; }
.upload-keyword-entry { display: flex; gap: 8px; }
.upload-keyword-entry input { width: 0; flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid #cfdce4; border-radius: 8px; background: #fff; font-size: .85rem; }
.upload-keyword-entry button { flex-shrink: 0; padding: 9px 13px; font-size: .78rem; }
.upload-keyword-field .keyword-input-help { margin: 7px 0 12px; font-size: .71rem; color: #788997; }
#upload-author-note { margin: 7px 0 0; font-size: .7rem; line-height: 1.6; color: #687b91; }
#upload-author-note[data-tone="warning"] { color: #a35419; }
.upload-keyword-options button { padding: 7px 10px; border: 1px solid #dce5eb; border-radius: 6px; background: #fff; color: #617484; font-size: .75rem; cursor: pointer; }
.upload-keyword-options button[aria-pressed="true"] { border-color: #a6cfca; color: #236960; background: #e8f4f1; }
.upload-keyword-field .keyword-message { min-height: 18px; margin: 10px 0 0; color: #477b70; font-size: .73rem; }
.upload-keyword-field .keyword-message.keyword-error { color: #a13b3b; }
.keyword-empty { color: #7f8d99; font-size: .75rem; line-height: 1.65; }
.upload-keyword-field :is(button,input):focus-visible { outline: 2px solid #1768e5; outline-offset: 3px; }
.topic-option { position: relative; }
.topic-option input { position: absolute; opacity: 0; pointer-events: none; }
.topic-option span { min-height: 34px; padding: 0 10px; display: inline-flex; align-items: center; color: #53677e; background: #f2f5f8; border: 1px solid transparent; border-radius: 7px; font-size: 0.76rem; font-weight: 680; cursor: pointer; }
.topic-option input:checked + span { color: #1857a5; background: #eaf3ff; border-color: #a9c8ed; }
.topic-option input:focus-visible + span { outline: 2px solid var(--blue-600); outline-offset: 2px; }
.prototype-note { margin-top: 22px; padding: 12px 14px; display: grid; gap: 3px; color: #5e6f82; background: #f7f8fa; border: 1px solid #e2e7ed; border-radius: 9px; font-size: 0.74rem; line-height: 1.5; }
.prototype-note strong { color: #40546b; }
.dialog-actions { margin-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dialog-action-group { display: flex; justify-content: flex-end; gap: 9px; }
.secondary-button { padding: 10px 16px; border: 1px solid #cfd9e4; border-radius: 8px; color: #4d6177; background: #fff; font-size: 0.86rem; font-weight: 750; cursor: pointer; }
.danger-button { padding: 10px 16px; border: 1px solid #e5b9b9; border-radius: 8px; color: #a33b3b; background: #fff7f7; font-size: 0.86rem; font-weight: 750; cursor: pointer; }
.danger-button:hover, .danger-button:focus-visible { outline: 0; color: #8a2525; background: #ffeded; border-color: #d99a9a; }
.danger-button:disabled { opacity: 0.45; cursor: not-allowed; }
.primary-button:disabled { opacity: 0.45; cursor: not-allowed; }
.secondary-button:disabled { opacity: 0.45; cursor: not-allowed; }
.toast { position: fixed; z-index: 40; right: 28px; bottom: 28px; max-width: min(380px, calc(100vw - 32px)); padding: 14px 17px; color: #fff; background: #12304e; border-radius: 10px; box-shadow: 0 12px 36px rgba(5, 17, 31, 0.24); font-size: 0.84rem; font-weight: 700; }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 180px minmax(0, 1fr); }
  .document-header, .document-row { grid-template-columns: 90px minmax(240px, 2.5fr) 80px 110px; }
  .document-header span:last-child, .document-topic { display: none; }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { position: static; height: auto; padding: 14px 18px; flex-direction: row; align-items: center; gap: 18px; }
  .brand { padding: 0; }
  .primary-nav { margin: 0 0 0 auto; display: flex; gap: 3px; }
  .primary-nav button { width: auto; padding: 9px 10px; }
  .primary-nav button span:last-child { display: none; }
  .sidebar-footer { display: none; }
  :root { --topbar-height:85px; --discovery-gap:8px; }
  .topbar { grid-template-columns:minmax(0,1fr); padding:7px 14px; gap:6px; }
  .global-search { max-width:none; }
  .topbar-meta { display: flex; }
  .topbar-meta > span { display: none; }
  .workspace { width: min(100% - 28px, 760px); padding-top: 28px; }
  .content-grid { grid-template-columns: 1fr; }
  .interpretation-card { position: static; }
  .interpretation-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .document-header { display: none; }
  .document-table { padding-top: 4px; }
  .document-row { grid-template-columns: 86px minmax(0, 1fr) 80px; }
  .document-team, .document-topic { display: none; }
  .calendar-toolbar { align-items: stretch; flex-direction: column; }
  .calendar-filter-groups { align-items: stretch; flex-wrap: wrap; }
}
@media (max-width: 580px) {
  .sidebar { gap: 8px; }
  .brand > span:last-child { display: none; }
  .primary-nav button { padding: 8px; }
  .global-search { height: 32px; }
  .global-search button { padding: 0 10px; }
  .workspace { width: min(100% - 20px, 520px); padding-top: 23px; }
  .page-heading { align-items: flex-start; }
  .heading-stat span { display: none; }
  .calendar-page-heading { align-items: flex-start; }
  .calendar-page-heading .primary-button { white-space: nowrap; }
  .library-toolbar, .results-toolbar { align-items: stretch; flex-direction: column; }
  .team-filter button { flex: 1; }
  .select-filters { display: grid; grid-template-columns: 1fr 1fr; }
  .select-filters select { width: 100%; min-width: 0; }
  .document-table { padding-inline: 10px; }
  .document-row { grid-template-columns: 74px minmax(0, 1fr); padding-inline: 8px; }
  .document-author { display: none; }
  .search-summary { display: block; }
  .search-summary .back-button { margin-bottom: 18px; }
  .result-card { grid-template-columns: 1fr; }
  .result-actions { flex-direction: row; justify-content: space-between; }
  .interpretation-list { grid-template-columns: 1fr; }
  .detail-drawer { --detail-gutter: 18px; padding-bottom: 24px; }
  .detail-toolbar { padding-block: 10px; }
  .detail-heading { padding-block: 24px; }
  .detail-reading { gap: 18px; padding-top: 20px; }
  .detail-reading > section, .detail-reading > .detail-keywords, .detail-geo { padding: 18px; }
  .detail-section-heading h3 { font-size: 1rem; }
  .detail-heading-bottom { align-items: flex-start; }
  .detail-secondary > summary { padding: 16px; }
  .detail-secondary-body { padding: 0 16px 8px; }
  .detail-manage { flex-direction: column; align-items: stretch; gap: 11px; padding: 16px 0; }
  .detail-manage-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .detail-manage button { padding-inline: 10px; }
  .detail-excerpts li { grid-template-columns: 28px minmax(0, 1fr); gap: 11px; }
  .detail-excerpt-number { height: 28px; font-size: .76rem; }
  .detail-excerpts li p, .detail-intro p { font-size: .94rem; }
  .detail-geo .review-entry, .detail-geo .review-word { padding: 14px; }
  .detail-facts div { grid-template-columns: 80px minmax(0, 1fr); gap: 10px; }
  .month-navigation { flex-wrap: wrap; }
  .month-navigation strong { min-width: 104px; }
  .calendar-summary { padding: 10px 14px; flex-wrap: wrap; gap: 8px 16px; }
  .calendar-summary small { width: 100%; margin-left: 0; }
  .event-type-legend { width: 100%; }
  .calendar-filter-groups { display: grid; }
  .calendar-layer-toggles button, .calendar-filter-groups .team-filter button { flex: 1; justify-content: center; }
  .upload-form { padding: 25px 20px 21px; }
  .upload-fields { grid-template-columns: 1fr; }
  .full-field { grid-column: auto; }
  .dialog-actions { align-items: stretch; }
  .dialog-action-group { display: grid; flex: 1; grid-template-columns: 1fr 1fr; }
}

/* Compact exploration controls shared by archive, search, research and calendar. */
.view-section>.page-heading { margin-bottom:24px; }
.page-heading>.primary-button,.page-heading>.secondary-button { flex-shrink:0; white-space:nowrap; }
.library-discovery,.external-discovery,.search-discovery,.calendar-toolbar { position:sticky; top:var(--discovery-top); z-index:8; border:1px solid #bed0e0; border-top:3px solid #6584a1; border-radius:12px; background:#eaf1f7; box-shadow:0 5px 18px #1d3a570d; scroll-margin-top:var(--discovery-top); }
.library-discovery::before,.external-discovery::before,.search-discovery::before,.calendar-toolbar::before { content:""; position:absolute; top:-15px; left:-1px; right:-1px; height:12px; background:var(--canvas); pointer-events:none; }
.library-discovery select,.external-discovery select,.external-discovery input,.search-discovery input { height:34px; min-height:34px; min-width:0; padding:0 10px; font:inherit; font-size:.79rem; color:#476077; border:1px solid #c8d6e3; border-radius:7px; background-color:#fcfdff; }
.library-discovery select,.external-discovery select { appearance:none; padding-right:27px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23647c92' stroke-width='1.4'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 9px center; }
.library-discovery .team-filter,.search-discovery .team-filter,.calendar-toolbar .team-filter,.calendar-layer-toggles { padding:3px; background:#dae5ef; }
.library-discovery .team-filter button,.search-discovery .team-filter button,.calendar-toolbar .team-filter button { padding:6px 10px; font-size:.77rem; white-space:nowrap; }
.library-discovery .material-tag-clear,.external-discovery .material-tag-clear { padding:4px 8px; font-size:.73rem; }
.library-discovery .material-tag-mode,.external-discovery .material-tag-mode { font-size:.7rem; }

.library-panel { margin-top:0; border:0; background:transparent; box-shadow:none; overflow:visible; }
.library-discovery { margin-bottom:20px; padding:12px 16px 10px; }
.library-search { position:relative; margin-bottom:10px; }
.library-search>svg { position:absolute; top:50%; left:11px; transform:translateY(-50%); width:16px; height:16px; color:#74899b; pointer-events:none; }
.library-search input { width:100%; height:34px; min-width:0; padding:0 36px 0 34px; border:1px solid #c8d6e3; border-radius:7px; background:#fcfdff; color:#476077; font:inherit; font-size:.79rem; }
.library-search input::placeholder { color:#7c90a2; }
.library-search input::-webkit-search-cancel-button { display:none; }
.library-search>button { position:absolute; top:1px; right:1px; width:32px; height:32px; border:0; border-radius:6px; background:transparent; color:#637c92; font:inherit; font-size:1.1rem; cursor:pointer; }
.library-search input:focus-visible,.library-search>button:focus-visible { outline:2px solid #82a9c9; outline-offset:1px; }
.library-discovery .library-toolbar { min-height:0; padding:0 0 10px; gap:12px; border-bottom:1px solid #cad9e6; }
.library-discovery .select-filters { min-width:0; gap:7px; }
.library-discovery .select-filters label { min-width:0; }
.library-discovery .select-filters select { min-width:0; width:145px; }
.library-tag-browser { position:relative; display:flex; align-items:center; flex-wrap:wrap; gap:7px; padding:10px 0; border-bottom:1px solid #cad9e6; }
.library-tag-heading { color:#526d83; font-size:.74rem; font-weight:700; white-space:nowrap; margin-right:3px; }
.library-tag-popular { display:contents; }
.library-tag-browser .material-tag { padding:4px 8px; font-size:.73rem; background:#f8fbfe; }
.library-tag-browser .material-tag small { margin-left:3px; opacity:.7; font-size:.67rem; }
.library-tag-browser .material-tag[aria-pressed="true"] { background:#dbeafb; border-color:#638eb4; color:#244d72; }
.library-tag-picker { margin-left:auto; }
.library-tag-picker>summary { cursor:pointer; list-style:none; padding:5px 8px; color:#3d6282; font-size:.73rem; font-weight:700; white-space:nowrap; }
.library-tag-picker>summary::after { content:' ▾'; }
.library-tag-picker[open]>summary::after { content:' ▴'; }
.library-tag-menu { position:absolute; z-index:12; top:100%; right:0; width:min(480px,100%); padding:14px; border:1px solid #bdd0e2; border-radius:10px; background:#fff; box-shadow:0 12px 32px #19395226; }
.library-tag-menu input { width:100%; min-width:0; height:34px; padding:0 10px; border:1px solid #c8d6e3; border-radius:7px; font:inherit; font-size:.78rem; }
.library-tag-menu p { margin:8px 0 10px; font-size:.71rem; color:#76899a; }
.library-tag-options { display:flex; flex-wrap:wrap; align-content:flex-start; gap:7px; max-height:min(280px,35vh); overflow-y:auto; padding:3px; overscroll-behavior:contain; }
.library-tag-options .material-tag { max-width:100%; white-space:normal; overflow-wrap:anywhere; text-align:left; }
.library-tag-picker:not([open])>.library-tag-menu { display:none; }
.library-tag-picker>summary:focus-visible,.library-tag-menu input:focus-visible,.library-tag-browser button:focus-visible { outline:2px solid #82a9c9; outline-offset:2px; }
@media(max-width:600px) {
  .library-tag-popular { display:flex; flex:1; gap:6px; min-width:0; overflow-x:auto; scrollbar-width:thin; }
  .library-tag-popular .material-tag { flex-shrink:0; }
  .library-tag-picker { margin-left:0; }
}
.library-discovery .list-summary { padding:9px 0 0; gap:8px; align-items:center; }
.library-selection { min-width:0; gap:8px; }
#library-tag-selection { flex-wrap:nowrap; overflow-x:auto; max-width:55vw; scrollbar-width:thin; }
#library-tag-selection>* { flex-shrink:0; white-space:nowrap; }
.library-discovery .list-summary>span { font-size:.71rem; }
.library-management { margin:0 0 18px; background:#fff; border:1px solid var(--line); border-radius:10px; }
.library-management>summary { cursor:pointer; padding:12px 16px; color:#506c83; font-size:.78rem; font-weight:700; }
.library-management>summary>span { margin-left:12px; font-size:.72rem; font-weight:400; color:#8593a0; }
.library-management:not([open])>:not(summary) { display:none; }
.library-management .geo-toolbar { padding:12px 16px; }
.library-management .geo-toolbar button { font-size:.76rem; padding:7px 10px; }
.library-management .geo-connection { margin:0 16px 14px; font-size:.72rem; }
.library-panel>.document-table { padding:12px 16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.library-management:not([open]) + .document-table .geo-select { display:none; }
.library-management:not([open]) + .document-table .document-selectable { grid-template-columns:minmax(0,1fr); }
.library-management:not([open]) + .document-table .document-header { margin-left:0; }
.library-heading-actions { flex-shrink:0; }
.library-heading-actions>button,.library-heading-actions .heading-stat { white-space:nowrap; }

.calendar-panel { overflow:visible; border:0; background:transparent; box-shadow:none; margin-top:0; }
.calendar-toolbar { min-height:0; padding:12px 16px; margin-bottom:18px; }
.calendar-toolbar .month-navigation strong { font-size:.92rem; }
.calendar-toolbar .calendar-layer-toggles button { min-height:30px; font-size:.74rem; }
.calendar-summary { background:#fff; padding:12px 16px; border:1px solid var(--line); border-radius:12px 12px 0 0; }
.calendar-scroll { border:1px solid var(--line); border-top:0; border-radius:0 0 12px 12px; }
.calendar-filter-groups { min-width:0; }

#search-view .content-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
#search-view .interpretation-card { position:static; padding:0; background:#edf2f6; box-shadow:none; border-radius:10px; }
.interpretation-card>summary { padding:12px 16px; color:#45627a; cursor:pointer; font-size:.79rem; font-weight:700; }
.interpretation-card>summary>span { margin-left:10px; color:#7b8d9a; font-size:.72rem; font-weight:400; }
.interpretation-card:not([open])>:not(summary) { display:none; }
.interpretation-card>.aside-heading { display:none; }
.interpretation-card>.interpretation-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 16px; margin:0; padding:0 16px; }
.interpretation-card>.aside-note { margin:0 16px 16px; }
#search-view .results-panel { padding:0; border:0; box-shadow:none; background:transparent; }
.search-discovery { padding:12px 16px; }
.results-search { display:flex; gap:8px; margin-bottom:10px; }
.results-search input { flex:1; width:100%; }
.results-search button { padding:0 16px; border:0; border-radius:7px; background:#365f84; color:#fff; font:inherit; font-size:.78rem; cursor:pointer; }
.search-discovery .eyebrow { display:none; }
.search-discovery h2 { font-size:.96rem; }
#search-view .results-list { margin-top:24px; border:0; }
#search-view .result-card { padding:22px; margin-bottom:14px; border:1px solid var(--line); border-radius:12px; background:#fff; }


:is(.external-tag-picker>summary,.external-tag-menu button,.library-management>summary,.interpretation-card>summary):focus-visible { outline:3px solid #82b7dc; outline-offset:3px; border-radius:6px; }

@media(max-width:1100px) {
  .topbar-meta > span { display:none; }
  .calendar-toolbar { flex-wrap:wrap; gap:10px; }
  .library-discovery .library-toolbar { flex-wrap:wrap; }
}
@media(max-width:820px) {
  .topbar-meta { max-width:100%; gap:6px; }
  .topbar-meta #account-open { max-width:40%; }
  .page-heading { gap:14px; }
  .page-heading>.primary-button,.page-heading>.secondary-button { padding:9px 12px; font-size:.78rem; }
  .library-discovery,.external-discovery,.search-discovery,.calendar-toolbar { padding:10px 12px; }
  .library-discovery .select-filters { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .library-discovery .select-filters select { width:100%; font-size:.74rem; padding-left:8px; padding-right:22px; background-position:right 6px center; }
  .library-discovery .list-summary { flex-direction:column; align-items:stretch; }
  .library-discovery .list-summary>span { display:none; }
  .library-discovery .library-selection { flex-wrap:wrap; }
  .library-discovery .material-tag-mode { display:none; }
  #library-tag-selection { max-width:100%; }
  .library-panel>.document-table { padding:8px; }
  .library-heading-actions { flex-direction:column; align-items:flex-end; gap:10px; }
  .library-heading-actions>button { padding:8px 10px; }
  .library-heading-actions .heading-stat strong { font-size:1.1rem; }
  .library-management .geo-toolbar { flex-wrap:wrap; }
  .calendar-toolbar { gap:8px; }
  .calendar-filter-groups { display:flex; flex-wrap:wrap; gap:7px; }
  .calendar-filter-groups .team-filter { display:flex; flex:1; }
  .calendar-layer-toggles { flex:1; white-space:nowrap; }
  .calendar-summary { padding:10px 12px; }
  #search-view .search-summary { flex-direction:column; gap:14px; }
  .interpretation-card>.interpretation-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .search-discovery .results-toolbar { flex-wrap:wrap; gap:10px; }
  #search-view .result-card { padding:18px; }
}
@media(max-width:580px) {
  .library-panel .document-row { grid-template-columns:1fr auto; gap:8px; padding:16px 10px; }
  .library-panel .document-date { grid-column:1; grid-row:1; }
  .library-panel .document-author { display:block; grid-column:2; grid-row:1; font-size:.74rem; }
  .library-panel .document-title-cell { grid-column:1/-1; grid-row:2; }
}

/* Missing publication materials remain visible after an alert is read. */
.publication-warning { margin:0 0 24px; padding:18px 20px; border:1px solid #edb3b0; border-left:4px solid #c6433d; border-radius:12px; background:#fff3f1; color:#8e302c; }
.publication-warning-heading>strong { font-size:1rem; }
.publication-warning-heading>strong>span { margin-left:7px; font-size:.8rem; }
.publication-warning-heading p { margin:6px 0 12px; color:#a45c57; font-size:.78rem; }
.publication-warning ul { margin:0; padding:0; list-style:none; max-height:260px; overflow:auto; }
.publication-warning li+li { border-top:1px solid #f0ceca; }
.publication-warning li button { display:flex; align-items:center; gap:10px; padding:11px 0; width:100%; border:0; background:transparent; text-align:left; color:inherit; font:inherit; cursor:pointer; }
.publication-warning li strong { flex:1; font-size:.9rem; }
.publication-warning li button>span { font-size:.76rem; }
.publication-warning-status { border-radius:5px; padding:4px 7px; background:#bd3d37; color:#fff; white-space:nowrap; }
.publication-warning-action { white-space:nowrap; }
.publication-warning button:focus-visible { outline:2px solid #a7433d; outline-offset:2px; }
.calendar-event.publication-missing { background:#fff0ee; border-color:#c6433d; color:#9d302b; }
.calendar-registration-warning { display:block; margin-top:6px; font-size:.7rem; color:#b6322d; font-weight:800; }
#notifications-open.has-publication-due { color:#a9302a; border-color:#dc9691; background:#fff0ed; }
.notification-item.publication-due { border-color:#e5aaa5; border-left:4px solid #bd3d37; background:#fff2f0; }
.notification-item.publication-due:hover { border-color:#bd3d37; background:#ffeae6; }
.notification-item.publication-due .notification-kind { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; background:#bd3d37; color:#fff; font-size:.78rem; }
.schedule-registration-warning { font-size:.84rem; line-height:1.7; }
@media(max-width:700px) {
 .publication-warning { padding:14px; }
 .publication-warning li button { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; }
 .publication-warning li button>span:nth-last-child(2) { grid-column:1/-1; }
 .publication-warning-action { grid-column:1/-1; text-align:right; }
}

/* SOLVE editorial theme. Brand/chrome only: semantic badge, tag, team,
   GEO-role, warning and calendar-event palettes remain defined above and
   in their feature stylesheets. Do not remap the legacy --blue-* tokens. */
html:has(body.solve-editorial) { min-width:0; background:#f7f5f0; }
body.solve-editorial {
  --solve-navy: #1b2a46;
  --solve-lilac: #c29fc5;
  --solve-greige: #b7afa2;
  --solve-paper: #f7f5f0;
  --solve-white: #fffefa;
  --solve-tint: #eee4ee;
  --solve-muted: #6c6b72;
  --solve-border: #dedad3;
  --canvas: var(--solve-paper);
  background: var(--solve-paper);
  color: var(--solve-navy);
}
body.solve-editorial .sidebar { background:var(--solve-navy); }
body.solve-editorial .brand { gap:0; font-family:Georgia,serif; font-size:30px; font-weight:400; letter-spacing:1.5px; }
body.solve-editorial .brand-mark { display:none; }
body.solve-editorial .brand::after { content:'.'; color:var(--solve-lilac); }
body.solve-editorial .primary-nav { gap:0; }
body.solve-editorial .primary-nav .nav-group { display:grid; gap:5px; }
body.solve-editorial .primary-nav .nav-group + .nav-group { margin-top:12px; padding-top:12px; border-top:1px solid #ffffff18; }
body.solve-editorial .primary-nav button { min-height:44px; border-radius:5px; color:#d2d4dd; font-weight:550; font-size:.86rem; white-space:nowrap; }
body.solve-editorial .primary-nav .nav-icon { color:#b5bbcc; }
body.solve-editorial .primary-nav .nav-children { position:relative; margin:3px 0 0 22px; padding-left:9px; }
body.solve-editorial .primary-nav .nav-children::before { content:""; position:absolute; top:-5px; left:0; width:7px; height:24px; border-left:1px solid #ffffff30; border-bottom:1px solid #ffffff30; border-bottom-left-radius:4px; }
body.solve-editorial .primary-nav .nav-children button { min-height:38px; padding:9px 8px; gap:7px; font-size:.78rem; font-weight:500; }
body.solve-editorial .primary-nav .nav-children .nav-icon { flex-basis:17px; width:17px; height:17px; }
body.solve-editorial .primary-nav .nav-branch:has(.nav-children .active) > button { color:var(--solve-tint); }
body.solve-editorial .primary-nav button:hover { background:#ffffff0d; color:#fff; }
body.solve-editorial .primary-nav button:focus-visible { outline:2px solid var(--solve-lilac); outline-offset:2px; }
body.solve-editorial .primary-nav button.active { background:var(--solve-lilac); color:var(--solve-navy); font-weight:750; }
body.solve-editorial .primary-nav button.active .nav-icon { color:var(--solve-navy); }
body.solve-editorial .sidebar-footer { border-color:#ffffff26; }
body.solve-editorial .sidebar-footer span { color:#e2dfe6; }
body.solve-editorial .sidebar-footer small { color:#b1b5c1; }
body.solve-editorial .topbar { background:var(--solve-white); border-color:var(--solve-border); box-shadow:none; }
body.solve-editorial .global-search { background:#f4f1ec; border-color:var(--solve-greige); border-radius:7px; }
body.solve-editorial .global-search input { color:var(--solve-navy); }
body.solve-editorial .global-search input::placeholder { color:#77727c; }
body.solve-editorial .global-search button { background:var(--solve-navy); color:#fff; }
body.solve-editorial .upload-button { background:var(--solve-navy); border-radius:6px; }
body.solve-editorial .upload-button:hover { background:#2d3d5b; }
body.solve-editorial .topbar-meta { color:var(--solve-muted); }
body.solve-editorial .topbar-meta .secondary-button:not(.has-publication-due) { background:var(--solve-white); border-color:var(--solve-border); color:var(--solve-navy); }
body.solve-editorial .workspace { padding-top:34px; }
body.solve-editorial :is(.page-heading,.search-summary) h1 { color:var(--solve-navy); font-weight:650; letter-spacing:-.045em; }
body.solve-editorial .page-description { color:var(--solve-muted); line-height:1.7; }
body.solve-editorial .eyebrow { color:#78637d; font-weight:600; }
body.solve-editorial .heading-stat strong { color:var(--solve-navy); font-weight:500; }
body.solve-editorial .heading-stat span { color:var(--solve-muted); }
body.solve-editorial :is(.page-heading,.auth-card,.ask-form-actions,.dialog-actions) > .primary-button,
body.solve-editorial .auth-card .primary-button,
body.solve-editorial #ask-submit { background:var(--solve-navy); border-radius:6px; }
body.solve-editorial :is(.page-heading,.auth-card,.ask-form-actions) .secondary-button { color:var(--solve-navy); border-color:var(--solve-greige); background:var(--solve-white); border-radius:6px; }

/* Keep measured sticky offsets and all filtering/selection behaviour intact. */
body.solve-editorial :is(.library-discovery,.search-discovery,.calendar-toolbar),
body.solve-editorial #external-view .external-discovery,
body.solve-editorial #personal-view[data-personal-view] .personal-discovery {
  background:#f0ece6; border-color:var(--solve-border); border-top:2px solid var(--solve-greige); border-radius:8px; box-shadow:none;
}
body.solve-editorial :is(.library-discovery,.search-discovery,.calendar-toolbar)::before,
body.solve-editorial #external-view .external-discovery::before,
body.solve-editorial #personal-view[data-personal-view] .personal-discovery::before { background:var(--solve-paper); }
body.solve-editorial :is(.library-discovery,.search-discovery) :is(input,select),
body.solve-editorial #external-view .external-discovery :is(input,select),
body.solve-editorial #personal-view[data-personal-view] .personal-toolbar :is(input:not([type=checkbox]),select) { background-color:var(--solve-white); border-color:#c9c1b8; color:var(--solve-navy); border-radius:6px; }
body.solve-editorial .library-discovery .library-toolbar,
body.solve-editorial .library-tag-browser,
body.solve-editorial #external-view :is(.external-period,.external-overview) { border-color:var(--solve-border); }
body.solve-editorial :is(.library-tag-heading,.library-tag-picker>summary,.library-management>summary) { color:#655d6b; }
body.solve-editorial :is(.library-tag-menu,.external-tag-menu,.personal-tag-menu) { background:var(--solve-white); border-color:var(--solve-border); box-shadow:0 8px 24px #1b2a4614; }
body.solve-editorial .library-panel>.document-table { border-color:var(--solve-border); border-radius:8px; background:var(--solve-white); }
body.solve-editorial .document-header { background:#eeebe6; color:#6b6570; border-color:var(--solve-border); }
body.solve-editorial .document-selectable { background:var(--solve-white); border-bottom-color:var(--solve-border); }
body.solve-editorial .document-selectable:nth-child(even) { background:#f2efea; }
body.solve-editorial .document-row:hover,
body.solve-editorial .document-row:focus-visible { background:#eee7ef; box-shadow:inset 3px 0 var(--solve-lilac); }
body.solve-editorial .document-title { color:var(--solve-navy); }
body.solve-editorial .library-management { background:var(--solve-white); border-color:var(--solve-border); }
body.solve-editorial .library-management>summary>span { color:#756e76; }
body.solve-editorial #search-view .interpretation-card { background:#efebe5; border-color:var(--solve-border); }
body.solve-editorial #search-view .result-card { background:var(--solve-white); border-color:var(--solve-border); border-radius:8px; box-shadow:none; }
body.solve-editorial .results-search button { background:var(--solve-navy); }
body.solve-editorial :is(.library-discovery,.search-discovery,.calendar-toolbar) .team-filter { background:#e6e0d9; }
body.solve-editorial :is(.library-discovery,.search-discovery,.calendar-toolbar) .team-filter button.active { background:var(--solve-white); color:var(--solve-navy); box-shadow:none; }

/* Research and personal reading surfaces; institution/topic/saved-state
   chips deliberately retain their established category colours. */
body.solve-editorial #external-view .external-group { background:var(--solve-white); border-radius:8px; }
body.solve-editorial #external-view .external-group:not(.external-group-all)>header { color:var(--ink); }
body.solve-editorial #external-view .external-group-all>header { background:#f2efea; border-bottom-color:var(--solve-border); }
body.solve-editorial #external-view .external-report { border-bottom-color:var(--solve-border); }
body.solve-editorial #external-view .external-report .external-summary { background:#f3f0eb; color:#484657; }
body.solve-editorial #external-view .external-week-panel { background:var(--solve-navy); border-color:var(--solve-navy); border-radius:8px; box-shadow:none; }
body.solve-editorial #external-view .external-week-content { border-top-color:#ffffff35; }
body.solve-editorial #external-view .external-report h3 a { color:var(--solve-navy); }
body.solve-editorial #external-view .external-report h3 a:hover { color:#73547b; }
body.solve-editorial #external-view .external-institutions { background:var(--solve-white); border-color:var(--solve-border); }
body.solve-editorial #personal-view .personal-item { background:var(--solve-white); border-color:var(--solve-border); border-radius:8px; }
body.solve-editorial #personal-view .personal-title { color:var(--solve-navy); }
body.solve-editorial #personal-view .personal-excerpt { color:#444757; }
body.solve-editorial #personal-view[data-personal-view="interests"] .personal-topic-picker { background:var(--solve-white); border-color:var(--solve-border); }
body.solve-editorial #ask-view .ask-compose { background:#eee7ef; border-color:#dacddd; border-radius:8px; }
body.solve-editorial #ask-view .ask-compose textarea { background:var(--solve-white); border-color:var(--solve-greige); color:var(--solve-navy); border-radius:6px; }
body.solve-editorial #ask-view .ask-compose textarea:focus { outline-color:#83648c; }
body.solve-editorial #ask-view .ask-compose p { color:#665c6d; }
body.solve-editorial #ask-view .ask-examples button { background:var(--solve-white); border-color:#d3c5d6; color:#62516d; border-radius:5px; }
body.solve-editorial #ask-view .ask-card { background:var(--solve-white); border-color:var(--solve-border); border-radius:8px; }
body.solve-editorial #ask-view .ask-document { color:var(--solve-navy); }
body.solve-editorial #ask-view .ask-question { border-left-color:var(--solve-lilac); }
body.solve-editorial #ask-view .ask-card blockquote { background:#f2efea; border-left-color:var(--solve-greige); }

/* Calendar backgrounds change; event, team, holiday and warning colours do not. */
body.solve-editorial .calendar-summary { background:var(--solve-white); border-color:var(--solve-border); }
body.solve-editorial .calendar-scroll { border-color:var(--solve-border); }
body.solve-editorial .calendar-weekdays { background:#eeebe6; border-color:var(--solve-border); color:#69636d; }
body.solve-editorial .calendar-grid { background:var(--solve-border); }
body.solve-editorial .calendar-day { background:var(--solve-white); }
body.solve-editorial .calendar-day.issue-day:not(.outside) { background:#fcf9fd; }
body.solve-editorial .calendar-day.outside { background:#eeebe6; }
body.solve-editorial .calendar-meeting-archive { background:var(--solve-white); border-color:var(--solve-border); border-radius:8px; }
body.solve-editorial :is(.meeting-list-panel,.meeting-list-summary,.meeting-row) { background:var(--solve-white); border-color:var(--solve-border); box-shadow:none; }
body.solve-editorial .meeting-toolbar { background:#f0ece6; border-color:var(--solve-border); }

/* Reading drawers and forms; review controls and decisions are not recoloured. */
body.solve-editorial .detail-drawer { background:var(--solve-paper); }
body.solve-editorial .detail-toolbar,
body.solve-editorial .detail-heading { background:var(--solve-navy); }
body.solve-editorial .detail-heading { border-bottom-color:var(--solve-lilac); }
body.solve-editorial .detail-toolbar>span::before { background:var(--solve-lilac); }
body.solve-editorial .detail-reading>section:not(.detail-intro) { background:var(--solve-white); border-color:var(--solve-border); border-radius:8px; box-shadow:none; }
body.solve-editorial .detail-reading>.detail-intro { background:#eee7ef; border-color:#dacddd; border-top-color:var(--solve-lilac); border-radius:8px; box-shadow:none; }
body.solve-editorial .detail-intro p { color:#474050; }
body.solve-editorial .detail-secondary { background:var(--solve-white); border-color:var(--solve-border); }
body.solve-editorial .upload-dialog { border-radius:10px; }
body.solve-editorial .upload-dialog:not(.review-dialog) { background:var(--solve-white); }
body.solve-editorial .upload-dialog.review-dialog { background:var(--solve-paper); }
body.solve-editorial .review-header,
body.solve-editorial .review-footer { background:var(--solve-white); border-color:var(--solve-border); }
body.solve-editorial .auth-card { background:var(--solve-white); border-color:var(--solve-border); border-radius:10px; box-shadow:0 12px 40px #1b2a4609; }
body.solve-editorial .auth-card .brand { color:var(--solve-navy); }
body.solve-editorial .auth-card input { border-color:var(--solve-greige); }

@media(min-width:821px) { body.solve-editorial .app-shell { grid-template-columns:220px minmax(0,1fr); } }
@media(max-width:820px) {
  body.solve-editorial .workspace { padding-top:25px; }
  body.solve-editorial .brand { font-size:25px; }
  body.solve-editorial .primary-nav button { font-size:.82rem; }
  body.solve-editorial .primary-nav .nav-group,
  body.solve-editorial .primary-nav .nav-branch { display:flex; align-items:center; gap:2px; }
  body.solve-editorial .primary-nav .nav-group + .nav-group { margin:0 0 0 6px; padding:0 0 0 6px; border-top:0; border-left:1px solid #ffffff18; }
  body.solve-editorial .primary-nav .nav-children { margin:0; padding-left:3px; }
  body.solve-editorial .primary-nav .nav-children::before { top:50%; left:-2px; width:5px; height:0; border-left:0; border-radius:0; }
  body.solve-editorial .primary-nav .nav-children button { min-height:44px; padding:9px 8px; }
}
@media(max-width:580px) {
  body.solve-editorial .sidebar { flex-direction:column; align-items:stretch; gap:12px; padding:15px 12px 12px; }
  body.solve-editorial .sidebar .brand { align-self:flex-start; }
  body.solve-editorial .brand>span:last-child { display:inline; }
  body.solve-editorial .primary-nav { margin:0; width:100%; justify-content:space-between; gap:2px; }
  body.solve-editorial .primary-nav button { justify-content:center; flex:1; min-width:0; padding:8px 4px; }
  body.solve-editorial .primary-nav .nav-group { flex:1; min-width:0; }
  body.solve-editorial .primary-nav .nav-group:nth-child(2) { flex:3; }
  body.solve-editorial .primary-nav .nav-group:last-child { flex:2; }
  body.solve-editorial .primary-nav .nav-group + .nav-group { margin-left:3px; padding-left:5px; }
  body.solve-editorial .primary-nav .nav-branch { flex:2; min-width:0; }
  body.solve-editorial .primary-nav .nav-children { flex:1; min-width:0; }
  body.solve-editorial .primary-nav .nav-children button { width:100%; padding:8px 4px; }
  body.solve-editorial .workspace { padding-top:22px; }
}
