:root {
  --navy: #183246;
  --navy-deep: #102535;
  --navy-soft: #284c61;
  --teal: #347f77;
  --teal-dark: #286a64;
  --teal-soft: #eaf5f3;
  --bg: #edf2f5;
  --surface: #ffffff;
  --line: #d5e0e6;
  --line-soft: #e8eef1;
  --ink: #1d2c38;
  --muted: #687986;
  --danger: #b42318;
  --danger-bg: #fff0ef;
  --warning: #8a5800;
  --warning-bg: #fff5df;
  --shadow: 0 18px 42px rgba(24, 50, 70, 0.09);
}

* { box-sizing: border-box; }
html { min-width: 320px; }
body { margin: 0; min-height: 100vh; font-family: Inter, "Segoe UI", Arial, sans-serif; color: var(--ink); background: radial-gradient(circle at 90% 0, #f8fbfc 0, var(--bg) 42%); font-size: 16px; line-height: 1.5; letter-spacing: .003em; }
button, input, select, textarea { font: inherit; }
button { min-height: 40px; border: 0; border-radius: 11px; padding: 9px 15px; font-weight: 700; cursor: pointer; transition: background .18s ease, transform .18s ease, box-shadow .18s ease; }
button:hover { transform: translateY(-1px); }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(7, 148, 134, .22); outline-offset: 2px; }
button:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.hidden { display: none !important; }
.primary { color: #fff; background: linear-gradient(145deg, var(--teal), var(--teal-dark)); box-shadow: 0 6px 16px rgba(52, 127, 119, .2); }
.primary:hover { background: var(--teal-dark); }
.ghost { color: var(--navy); background: #eaf0f5; }
.ghost:hover { background: #dce7ef; }
.danger { color: var(--danger); background: var(--danger-bg); border: 1px solid #ffd1cd; }
.danger:hover { background: #ffe1df; }

.login-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 20% 15%, #1b5278 0, var(--navy) 42%, var(--navy-deep) 100%); }
.login-card { width: min(440px, 100%); padding: 36px; background: #fff; border-radius: 22px; box-shadow: 0 28px 90px rgba(2, 11, 20, .55); }
.brand-mark { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 22px; border-radius: 16px; color: #fff; background: linear-gradient(145deg, var(--teal), #0b6176); font-size: 22px; font-weight: 800; }
.brand-mark.small { width: 40px; height: 40px; margin: 0; border-radius: 11px; font-size: 16px; flex: 0 0 auto; }
.login-card h1 { margin: 0 0 6px; font-size: 1.75rem; line-height: 1.2; }
.login-card > p { margin: 0 0 28px; color: var(--muted); }
.login-card form .primary { width: 100%; min-height: 46px; }
.password-field { margin-bottom: 16px; }
.password-field > label { margin-bottom: 7px; }
.password-input { position: relative; }
.password-input input { margin-top: 0; padding-right: 76px; }
.password-input button { position: absolute; top: 5px; right: 5px; min-height: 34px; padding: 5px 10px; color: var(--teal-dark); background: var(--teal-soft); font-size: .8rem; }
.password-input button:hover { transform: none; }
.secure-note { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .82rem; text-align: center; }

label, .field-label { display: block; margin: 0 0 16px; font-size: .9rem; font-weight: 700; color: #24384c; }
input, select, textarea { display: block; width: 100%; min-height: 44px; margin-top: 7px; padding: 10px 12px; border: 1px solid #c8d5e0; border-radius: 10px; color: var(--ink); background: #fff; }
textarea { resize: vertical; line-height: 1.55; }
input:focus, select:focus, textarea:focus { border-color: var(--teal); }
label small, .file-field small { display: block; margin-top: 6px; color: var(--muted); font-size: .78rem; font-weight: 500; }

.app { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; }
aside { position: fixed; inset: 0 auto 0 0; z-index: 20; display: flex; flex-direction: column; width: 248px; padding: 24px 15px; color: #fff; background: linear-gradient(165deg, #1d3b4f 0%, var(--navy-deep) 72%); box-shadow: 12px 0 34px rgba(20, 43, 58, .08); overflow-y: auto; }
.side-brand { display: flex; align-items: center; gap: 12px; padding: 2px 8px 24px; }
.side-brand strong, .side-brand span { display: block; }
.side-brand strong { font-size: .95rem; }
.side-brand span { margin-top: 2px; color: #a9bdcf; font-size: .78rem; }
.workspace-brand { display: flex; align-items: center; gap: 10px; padding: 4px 8px 14px; }
.workspace-current { min-width: 0; flex: 1; }
.workspace-current strong, .workspace-current small { display: block; }
.workspace-current strong { font-size: .88rem; line-height: 1.3; }
.workspace-current small { color: #b6cbd8; font-size: .7rem; margin-top: 4px; }
.dashboard-workspaces { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.dashboard-workspace-card { display:flex; align-items:center; gap:17px; text-align:left; background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; color:var(--ink); box-shadow:0 6px 22px #18324608; }
.dashboard-workspace-card.selected { border-color:#78aaa3; background:#f0f8f6; }
.dashboard-workspace-card:hover { border-color:var(--teal); box-shadow:0 10px 28px #18324612; }
.dashboard-workspace-icon { display:grid; place-items:center; width:48px; height:48px; flex:0 0 auto; border-radius:13px; background:var(--navy); color:#fff; font-size:1.45rem; }
.dashboard-workspace-card strong,.dashboard-workspace-card small,.dashboard-workspace-card em { display:block; }
.dashboard-workspace-card strong { font-size:1rem; }
.dashboard-workspace-card small { font-size:.76rem; font-weight:400; color:var(--muted); margin:5px 0 9px; }
.dashboard-workspace-card em { font-size:.73rem; font-style:normal; color:var(--teal-dark); }
@media(max-width:760px){.dashboard-workspaces{grid-template-columns:1fr}.header-actions .shield{display:none}}
nav { display: grid; gap: 7px; }
nav button { display: flex; align-items: center; gap: 11px; width: 100%; padding: 12px 13px; color: #c7d4dc; background: transparent; text-align: left; font-weight: 650; }
nav button:hover, nav button.active { color: #fff; background: rgba(255, 255, 255, .105); box-shadow: inset 3px 0 #73c5ba; transform: none; }
.nav-icon { display: inline-grid; place-items: center; width: 22px; font-size: 1.05rem; }
.side-bottom { margin-top: auto; padding: 17px 8px 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.side-bottom .ghost { width: 100%; margin-top: 13px; color: #fff; background: rgba(255, 255, 255, .09); }
#userChip strong, #userChip span { display: block; overflow-wrap: anywhere; }
#userChip strong { font-size: .9rem; }
#userChip span { margin-top: 3px; color: #9fb4c6; font-size: .75rem; }

main { grid-column: 2; min-width: 0; }
header { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 84px; padding: 15px 32px; border-bottom: 1px solid rgba(213,224,230,.8); background: rgba(249, 251, 252, .9); backdrop-filter: blur(16px); }
.header-title, .header-actions { display: flex; align-items: center; gap: 14px; min-width: 0; }
header h1 { margin: 0 0 3px; font-size: 1.4rem; line-height: 1.2; }
header p { margin: 0; color: var(--muted); font-size: .83rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shield { color: #087669; font-size: .82rem; white-space: nowrap; }
.notification-button { position: relative; white-space: nowrap; }
.notification-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: 5px; padding: 0 6px; border-radius: 999px; color: #fff; background: var(--danger); font-size: .7rem; }
.menu-toggle { display: none; color: var(--navy); background: #eaf0f5; font-size: 1.2rem; padding-inline: 12px; }
#content { width: 100%; max-width: 1680px; margin: 0 auto; padding: 30px 32px 48px; }

.cards { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 14px; }
.cards.has-six { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
.card, .panel { border: 1px solid rgba(213, 224, 230, .9); background: rgba(255, 255, 255, .96); box-shadow: 0 8px 24px rgba(24, 50, 70, .055); }
.card { padding: 20px; border-radius: 18px; }
.metric span { display: block; min-height: 40px; color: var(--muted); font-size: .84rem; }
.metric strong { display: block; margin-top: 4px; color: var(--navy); font-size: 2rem; line-height: 1.1; }
.metric small { display: block; margin-top: 8px; color: #8190a0; font-size: .75rem; }
.metric .text-metric { font-size: 1.35rem; }
.metric-link { position: relative; min-height: 142px; color: inherit; text-align: left; font-weight: inherit; }
.metric-link::after { content: "→"; position: absolute; right: 17px; bottom: 15px; color: var(--teal); font-size: 1.15rem; font-weight: 800; transition: transform .18s ease; }
.metric-link:hover { border-color: #8bcfc8; box-shadow: 0 12px 28px rgba(11, 37, 64, .11); transform: translateY(-3px); }
.metric-link:hover::after { transform: translateX(4px); }
.metric-link:active { transform: translateY(-1px); }
.panel { margin-top: 22px; border-radius: 18px; overflow: hidden; }
.flush-panel { margin-top: 0; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; padding: 16px 19px; border-bottom: 1px solid var(--line); }
.panel-head h2 { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.panel-head p, .modal-title p { margin: 4px 0 0; color: var(--muted); font-size: .8rem; }
.panel-body { padding: 20px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.graph-panel { min-width: 0; }
.graph-body { display: grid; gap: 13px; padding: 20px; }
.graph-row { display: grid; grid-template-columns: minmax(85px, 135px) minmax(100px, 1fr) 32px; align-items: center; gap: 12px; font-size: .84rem; }
.graph-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #44566a; }
.graph-row > strong { color: var(--navy); text-align: right; }
progress { width: 100%; height: 13px; overflow: hidden; border: 0; border-radius: 999px; background: #e7eef3; }
progress::-webkit-progress-bar { border-radius: 999px; background: #e7eef3; }
progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, var(--teal), #19b3a5); }
progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, var(--teal), #19b3a5); }
.access-panel { margin-top: 20px; }

.responsive-head { flex-wrap: wrap; }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 9px; }
.toolbar input, .toolbar select { width: auto; min-width: 175px; margin: 0; }
.document-format { white-space: nowrap; font-weight: 750; }
.document-toolbar { min-width: 0; max-width: 100%; }
.document-toolbar input, .document-toolbar select { max-width: 100%; }
.document-toolbar select { width: 250px; }
.flush-panel { overflow: visible; }
.filter-picker { position: relative; min-width: 175px; flex: 1 1 175px; }
.filter-picker-control { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid #c8d5e0; border-radius: 10px; color: var(--ink); background: #fff; text-align: left; font-weight: 500; }
.filter-picker-control:hover, .filter-picker-control:focus-visible { color: var(--ink); background: #fff; box-shadow: none; transform: none; }
.filter-picker-control[aria-expanded="true"] { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(7, 148, 134, .12); }
.filter-picker-chevron { flex: 0 0 auto; color: var(--ink); font-size: .9rem; line-height: 1; }
.filter-picker input[type=hidden] { display: none; }
.filter-picker-options { position: absolute; z-index: 100; top: calc(100% + 5px); left: 0; width: max(100%, 250px); max-height: 300px; overflow: hidden; padding: 7px; border: 1px solid #9aaeb8; border-radius: 0 0 5px 5px; background: #fff; box-shadow: 0 14px 30px rgba(24,50,70,.18); }
.filter-picker-search-wrap { padding: 0 0 7px; border-bottom: 1px solid var(--line-soft); }
.filter-picker-search { width: 100% !important; min-width: 0 !important; min-height: 36px; margin: 0; padding: 7px 9px; border: 1px solid #c8d5e0; border-radius: 7px; font-size: .78rem; }
.filter-picker-list { max-height: 245px; overflow-y: auto; padding-top: 4px; }
.filter-picker-option { display: block; width: 100%; min-height: 36px; padding: 8px 10px; color: var(--ink); background: #fff; border: 0; border-radius: 0; text-align: left; font-size: .78rem; font-weight: 500; }
.filter-picker-option[hidden], .filter-picker-empty[hidden] { display: none !important; }
.filter-picker-option:hover, .filter-picker-option:focus-visible { color: #fff; background: #2167c7; transform: none; }
.filter-picker-empty { padding: 12px 10px; color: var(--muted); font-size: .76rem; }
.document-pin-badge { margin-left: 7px; color: #7a4d00; background: #fff1d6; }
.category-field { display:flex; align-items:flex-end; gap:8px; }
.category-field label { flex:1; margin-bottom:16px; }
.category-add { flex:0 0 auto; margin-bottom:16px; white-space:nowrap; }
.category-filter { display:flex; align-items:center; }
.category-filter select { width:250px !important; margin:0; }
@media (max-width:680px) { .category-filter select { width:100% !important; } }
@media (max-width: 680px) { .document-toolbar select { width: 100%; } }
.table-wrap { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
table { width: 100%; min-width: 780px; border-collapse: collapse; }
th, td { padding: 13px 15px; border-bottom: 1px solid var(--line-soft); font-size: .86rem; text-align: left; vertical-align: middle; }
th { color: #5f707d; background: #f6f9fa; font-size: .73rem; text-transform: uppercase; letter-spacing: .055em; white-space: nowrap; }
tbody tr:nth-child(even) td { background: #fbfcfd; }
tbody tr:hover td { background: #f2f8f7; }
tbody tr:last-child td { border-bottom: 0; }
td .sub { display: block; margin-top: 3px; color: var(--muted); font-size: .75rem; }
.download-state { font-weight: 700; }
.download-state.pending { color: var(--warning); }
.download-state.approved { color: var(--teal-dark); }
.download-state.rejected, .download-state.expired, .download-state.revoked { color: var(--danger); }
.actions-heading, .actions-cell { position: sticky; right: 0; z-index: 2; min-width: 158px; box-shadow: -10px 0 18px -18px rgba(11, 37, 64, .65); }
.actions-heading { z-index: 3; background: #f8fafc; }
.actions-cell { background: #fff; }
tbody tr:nth-child(even) .actions-cell { background: #fbfcfd; }
tbody tr:hover .actions-cell { background: #fbfdfd; }
.actions { display: flex; flex-wrap: wrap; gap: 7px; }
.actions button { min-height: 34px; padding: 6px 9px; font-size: .76rem; }
.party-line { display: block; margin-bottom: 4px; font-size: .8rem; }
.party-line span { color: var(--muted); font-weight: 500; }
.badge { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; color: #087669; background: var(--teal-soft); font-size: .75rem; font-weight: 750; white-space: nowrap; }
.badge.warn { color: var(--warning); background: var(--warning-bg); }
.badge.off { color: #66717e; background: #eef1f4; }
.empty { padding: 46px 22px; color: var(--muted); text-align: center; }
.empty.compact { padding: 22px; }
.error-copy { color: var(--danger); }

.form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2px 20px; }
.form-grid .wide, .account-wide { grid-column: 1 / -1; }
.form-panel { max-width: 1050px; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; padding-top: 15px; border-top: 1px solid var(--line-soft); }
.file-field { padding: 15px; border: 1px dashed #aebfcd; border-radius: 12px; background: #f8fbfc; }
.file-field input { padding: 8px; background: #fff; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
.upload-form-panel { max-width: 1120px; }
.upload-panel-head { min-height: 88px; background: linear-gradient(115deg, rgba(234, 245, 243, .88), rgba(255, 255, 255, .96) 58%); }
.upload-eyebrow { display: block; margin-bottom: 4px; color: var(--teal-dark); font-size: .68rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.upload-files-field { margin: 2px 0 17px; padding: 18px; border: 1px solid #cedce3; border-radius: 16px; background: linear-gradient(180deg, #fbfdfd, #f6f9fa); box-shadow: inset 0 1px rgba(255, 255, 255, .8); }
.upload-section-heading, .upload-queue-toolbar, .upload-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.upload-section-heading { margin-bottom: 13px; }
.upload-section-heading h3 { margin: 0; color: var(--navy); font-size: .98rem; }
.upload-section-heading p { margin: 3px 0 0; color: var(--muted); font-size: .78rem; }
.upload-limit-badge { flex: 0 0 auto; padding: 5px 9px; border: 1px solid #cbe0dc; border-radius: 999px; color: var(--teal-dark); background: #edf8f6; font-size: .72rem; font-weight: 800; }
.upload-drop-zone { display: flex; align-items: center; gap: 16px; min-height: 136px; padding: 24px; border: 2px dashed #9dbdc1; border-radius: 14px; color: #274559; background: radial-gradient(circle at 10% 0, #f2fbf9, #fff 66%); cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.upload-drop-zone:hover, .upload-drop-zone:focus-visible, .upload-drop-zone.is-dragging { border-color: var(--teal); background: #f0faf8; box-shadow: 0 0 0 4px rgba(52, 127, 119, .09), 0 12px 24px rgba(24, 50, 70, .07); outline: 0; transform: translateY(-1px); }
.upload-drop-zone.is-dragging { border-style: solid; }
.upload-drop-zone.is-disabled { cursor: wait; opacity: .64; transform: none; }
.upload-drop-icon { display: grid; place-items: center; flex: 0 0 auto; width: 54px; height: 54px; border-radius: 15px; color: #fff; background: linear-gradient(145deg, #43988e, #246c67); box-shadow: 0 9px 20px rgba(35, 112, 104, .22); font-size: 1.65rem; font-weight: 500; }
.upload-drop-copy { display: block; min-width: 0; }
.upload-drop-copy strong, .upload-drop-copy small { display: block; }
.upload-drop-copy strong { color: var(--navy); font-size: 1rem; }
.upload-drop-copy small { margin-top: 3px; color: var(--muted); font-size: .8rem; }
.upload-browse-action { flex: 0 0 auto; margin-left: auto; padding: 9px 13px; border: 1px solid #bad0d8; border-radius: 10px; color: var(--navy); background: #fff; font-size: .78rem; font-weight: 800; box-shadow: 0 4px 12px rgba(24, 50, 70, .07); }
.upload-help { display: block; margin: 9px 2px 17px; color: var(--muted); font-size: .76rem; }
.upload-queue-toolbar { padding: 13px 2px 10px; border-top: 1px solid var(--line-soft); }
.upload-queue-toolbar strong, .upload-queue-toolbar span { display: block; }
.upload-queue-toolbar strong { color: var(--navy); font-size: .83rem; }
.upload-queue-toolbar span { margin-top: 2px; color: var(--muted); font-size: .73rem; }
.upload-clear { min-height: 32px; padding: 5px 10px; font-size: .73rem; }
.upload-file-list { display: grid; gap: 8px; }
.upload-empty { display: grid; justify-items: center; padding: 25px 18px; border: 1px solid var(--line-soft); border-radius: 12px; color: var(--muted); background: rgba(255, 255, 255, .72); text-align: center; }
.upload-empty > span { display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 7px; border-radius: 9px; color: var(--teal-dark); background: var(--teal-soft); font-size: 1.15rem; }
.upload-empty strong { color: #486070; font-size: .82rem; }
.upload-empty small { margin-top: 2px; font-size: .73rem; }
.upload-queue-item { display: grid; grid-template-columns: 46px minmax(0, 1fr) minmax(135px, auto) 34px; align-items: center; gap: 12px; min-height: 68px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 4px 12px rgba(24, 50, 70, .035); transition: border-color .18s ease, background .18s ease; }
.upload-file-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 11px; color: #fff; background: #627383; font-size: .66rem; font-weight: 900; letter-spacing: .035em; box-shadow: inset 0 -10px 18px rgba(0, 0, 0, .09); }
.upload-file-icon.type-pdf { background: #c84b45; }
.upload-file-icon.type-excel { background: #24845d; }
.upload-file-icon.type-csv { background: #287a83; }
.upload-file-icon.type-document { background: #376da2; }
.upload-file-icon.type-presentation { background: #b56235; }
.upload-file-icon.type-zip { background: #9a6b21; }
.upload-file-icon.type-email { background: #665aa1; }
.upload-file-icon.type-text { background: #667985; }
.upload-file-icon.type-image { background: #6f65a8; }
.upload-file-icon.type-video { background: #315a82; }
.upload-file-details { min-width: 0; }
.upload-file-details strong, .upload-file-details small { display: block; min-width: 0; }
.upload-file-details strong { overflow: hidden; color: #243b4c; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.upload-file-details small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.upload-file-status { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; color: #577080; font-size: .73rem; font-weight: 750; text-align: right; }
.upload-status-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: #6f9a91; box-shadow: 0 0 0 3px rgba(52, 127, 119, .1); }
.upload-remove { display: grid; place-items: center; min-height: 32px; width: 32px; padding: 0; border: 1px solid transparent; color: #738390; background: transparent; font-size: 1.2rem; line-height: 1; }
.upload-remove:hover { border-color: #f0c7c3; color: var(--danger); background: var(--danger-bg); transform: none; }
.upload-queue-item.status-invalid, .upload-queue-item.status-failed, .upload-queue-item.status-rollback-failed { border-color: #efc4c0; background: #fffafa; }
.status-invalid .upload-file-status, .status-failed .upload-file-status, .status-rollback-failed .upload-file-status { color: var(--danger); }
.status-invalid .upload-status-dot, .status-failed .upload-status-dot, .status-rollback-failed .upload-status-dot { background: var(--danger); box-shadow: 0 0 0 3px rgba(180, 35, 24, .1); }
.upload-queue-item.status-uploading { border-color: #73beb6; background: #f3fbfa; box-shadow: 0 0 0 3px rgba(52, 127, 119, .08); }
.status-uploading .upload-status-dot, .status-rolling-back .upload-status-dot { background: transparent; border: 2px solid #83aca7; border-top-color: var(--teal-dark); box-shadow: none; animation: upload-spin .8s linear infinite; }
.status-uploaded .upload-file-status { color: #147260; }
.status-uploaded .upload-status-dot { background: #1b927d; }
.status-rolling-back .upload-file-status { color: var(--warning); }
.status-rolled-back, .status-not-uploaded { opacity: .72; background: #f7f9fa; }
.status-rolled-back .upload-status-dot, .status-not-uploaded .upload-status-dot { background: #8998a3; box-shadow: none; }
.upload-progress { margin-top: 12px; padding: 13px 14px; border: 1px solid #bcd9d5; border-radius: 12px; color: #31564f; background: #eef8f6; }
.upload-progress strong { font-size: .78rem; }
.upload-progress span { color: var(--muted); font-size: .72rem; font-weight: 700; }
.upload-progress progress { display: block; height: 8px; margin-top: 9px; }
.upload-progress.has-error { border-color: #edc3bf; color: var(--danger); background: #fff5f4; }
.protected-text-field { padding: 16px; border: 1px solid #cedce3; border-radius: 14px; background: #f8fbfc; }
.upload-form-actions { align-items: center; justify-content: space-between; }
.upload-form-actions > span { color: var(--muted); font-size: .76rem; }
@keyframes upload-spin { to { transform: rotate(360deg); } }
.field-group { margin-bottom: 12px; }
.field-label { margin-bottom: 8px; }
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.checks label { display: flex; align-items: center; gap: 9px; min-height: 45px; margin: 0; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfd; font-weight: 550; }
.checks input, .switch-label input { flex: 0 0 auto; width: 18px; min-height: 18px; margin: 0; }
.share-picker > small { display: block; margin: -3px 0 10px; color: var(--muted); }
.share-picker .checks { max-height: 230px; padding-right: 3px; overflow-y: auto; }
.share-picker .checks label > span, .share-picker .checks strong, .share-picker .checks small { display: block; min-width: 0; }
.share-picker .checks strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.share-picker .checks small { margin-top: 2px; color: var(--muted); font-weight: 500; }
.recipient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-height: 300px; padding-right: 3px; overflow-y: auto; }
.recipient-card { min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfd; }
.recipient-card:hover { border-color: #a8d9d4; background: #fcfefe; }
.recipient-card.recipient-superadmin { border-color: #8ccfc5; background: linear-gradient(135deg, #eefaf7, #f8fcfb); box-shadow: inset 4px 0 0 var(--accent); }
.recipient-main, .download-option { display: flex; align-items: center; gap: 9px; margin: 0; cursor: pointer; }
.recipient-main { min-height: 38px; }
.recipient-main input, .download-option input { flex: 0 0 auto; width: 18px; min-height: 18px; margin: 0; }
.recipient-main > span, .recipient-main strong, .recipient-main small { display: block; min-width: 0; }
.recipient-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recipient-main small { margin-top: 2px; color: var(--muted); font-size: .76rem; font-weight: 500; }
.download-choice { margin: 1px 0 16px; padding: 15px; border: 1px solid #b9d7d4; border-radius: 12px; background: #f6fbfa; }
.download-choice legend { padding: 0 7px; color: var(--navy); font-weight: 750; }
.download-choice > small { display: block; margin-top: 9px; color: var(--muted); }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.download-option { min-height: 60px; padding: 10px 11px; border: 1px solid transparent; border-radius: 9px; color: #315068; background: #eef5f7; font-size: .78rem; font-weight: 650; }
.download-option:has(input:checked) { border-color: var(--teal); background: #e1f5f2; box-shadow: 0 0 0 2px rgba(19, 136, 124, .08); }
.download-option strong, .download-option small { display: block; }
.download-option small { margin-top: 3px; color: var(--muted); font-weight: 500; }
.download-option:has(input:disabled) { color: #8a98a6; background: #f2f4f6; cursor: not-allowed; }
.branch-prompt { margin: 0 0 14px; }
.switch-label { display: flex; align-items: center; gap: 9px; min-height: 44px; }
.muted-copy { color: var(--muted); font-size: .85rem; }
.notice { margin: 14px 0; padding: 13px 14px; border-radius: 10px; color: #285e61; background: #edf8f7; font-size: .84rem; }
.notice.warning { color: #805b19; background: var(--warning-bg); }
.compact-notice { align-self: start; margin: 0 0 16px; }
.approval-note { margin: 16px 19px; }
.request-status.pending { color: var(--warning); background: var(--warning-bg); }
.request-status.approved, .request-status.downloaded { color: #087669; background: var(--teal-soft); }
.request-status.rejected, .request-status.revoked, .request-status.expired { color: var(--danger); background: var(--danger-bg); }
.security-list { line-height: 1.9; }
.security-cards { grid-template-columns: repeat(3, 1fr); }

.work-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; padding: 20px; }
.work-card { position: relative; min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcfd; cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.work-card:hover { transform: translateY(-3px); border-color: #8bcfc8; box-shadow: 0 12px 28px rgba(11, 37, 64, .1); }
.work-card.has-unread { border-left: 5px solid var(--teal); background: #f5fbfa; }
.work-card-top, .work-card-foot, .message-meta, .reply-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.work-kind { display: inline-block; color: var(--teal-dark); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.work-card h3 { margin: 12px 0 7px; color: var(--navy); font-size: 1.02rem; }
.work-card > p { min-height: 43px; margin: 0 0 12px; color: var(--muted); font-size: .84rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.work-people { min-height: 55px; padding: 10px 0; border-top: 1px solid var(--line-soft); color: #4f6372; font-size: .78rem; }
.work-card-foot { padding-top: 10px; border-top: 1px solid var(--line-soft); color: var(--muted); font-size: .73rem; }
.priority-urgent { color: var(--danger); font-weight: 800; }
.priority-high { color: var(--warning); font-weight: 800; }
.priority-normal { color: var(--teal-dark); font-weight: 700; }
.badge.status-new { color: #245c8a; background: #e9f3ff; }
.badge.status-in_progress { color: #6b4d00; background: #fff2c7; }
.badge.status-waiting { color: #76501b; background: #fff5df; }
.badge.status-returned { color: #8a3e09; background: #ffeadb; }
.badge.status-completed { color: #087669; background: var(--teal-soft); }
.work-empty { grid-column: 1 / -1; }
.work-thread-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.work-thread-title h2 { margin-top: 6px; }
.work-thread { display: grid; gap: 12px; max-height: 48vh; padding: 15px; overflow-y: auto; border: 1px solid var(--line); border-radius: 13px; background: #f5f8fa; }
.work-message { max-width: 82%; padding: 13px 15px; border: 1px solid var(--line); border-radius: 14px 14px 14px 4px; background: #fff; box-shadow: 0 4px 12px rgba(24, 50, 70, .05); }
.work-message.mine { justify-self: end; border-color: #b8ddd8; border-radius: 14px 14px 4px 14px; background: #edf8f7; }
.message-meta { margin-bottom: 7px; color: var(--muted); font-size: .73rem; }
.message-meta strong { color: var(--navy); }
.work-message p { margin: 0 0 10px; overflow-wrap: anywhere; }
.work-message .workAttachment { width: 100%; text-align: left; }
.work-attachment-actions { display: flex; align-items: stretch; gap: 7px; }
.work-attachment-actions .workAttachment { flex: 1 1 auto; width: auto; }
.work-attachment-actions .workAttachmentDownload { flex: 0 0 auto; }
.reply-box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .45fr); gap: 12px; margin-top: 16px; }
.reply-box label { margin: 0; }
.reply-actions { grid-column: 1 / -1; justify-content: flex-end; padding-top: 10px; border-top: 1px solid var(--line-soft); }
.reply-actions select { width: auto; min-width: 145px; margin: 0 auto 0 0; }
.handover-list { display: grid; gap: 11px; padding: 20px; }
.handover-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfd; cursor: pointer; transition: border-color .18s ease, transform .18s ease; }
.handover-card:hover { border-color: #8bcfc8; transform: translateY(-2px); }
.handover-card span, .handover-card small { display: block; color: var(--muted); font-size: .75rem; }
.handover-card h3 { margin: 3px 0; font-size: 1rem; }
.handover-card p { max-width: 850px; margin: 0; overflow: hidden; color: #4c6070; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.handover-card > div:last-child { text-align: right; }
.handover-card > div:last-child strong { display: block; margin-bottom: 4px; color: var(--teal-dark); font-size: .8rem; }
.report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.report-section { min-height: 150px; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #fafcfd; }
.report-section h3 { margin: 0 0 10px; color: var(--navy); font-size: .94rem; }
.report-section p { margin: 0; color: #455a6a; overflow-wrap: anywhere; }
.notification-list { display: grid; gap: 8px; max-height: 58vh; overflow-y: auto; }
.mobile-alerts { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 16px; align-items: center; margin-bottom: 14px; }
.mobile-alerts small { color: var(--muted); }
.mobile-alerts button { grid-column: 2; grid-row: 1 / span 2; }
.notification-row { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 11px; width: 100%; padding: 13px 14px; border: 1px solid var(--line); color: var(--ink); background: #fbfcfd; text-align: left; font-weight: 500; }
.notification-row:hover { border-color: #8bcfc8; background: #f6fbfa; transform: none; }
.notification-row.unread { background: #edf8f7; border-color: #b8ddd8; }
.notification-dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: #aab7c1; }
.notification-row.unread .notification-dot { background: var(--teal); box-shadow: 0 0 0 4px rgba(52,127,119,.12); }
.notification-row strong, .notification-row small, .notification-row time { display: block; }
.notification-row small { margin-top: 3px; color: #506473; }
.notification-row time { margin-top: 5px; color: var(--muted); font-size: .72rem; }

.account-panel { max-width: 900px; }
.account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.account-item { min-height: 88px; padding: 15px; border: 1px solid var(--line-soft); border-radius: 11px; background: #fafcfd; }
.account-item span, .account-item strong { display: block; }
.account-item span { margin-bottom: 7px; color: var(--muted); font-size: .78rem; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.account-item strong { font-size: .95rem; overflow-wrap: anywhere; }

dialog { width: min(900px, calc(100vw - 28px)); max-height: 92vh; padding: 28px; border: 0; border-radius: 17px; color: var(--ink); box-shadow: 0 28px 90px rgba(4, 17, 31, .42); overflow-y: auto; }
dialog::backdrop { background: rgba(6, 18, 31, .68); }
.modal-close { position: absolute; top: 12px; right: 14px; z-index: 2; min-height: 38px; padding: 3px 11px; color: #5a6b7d; background: transparent; font-size: 1.55rem; }
.modal-title { padding-right: 35px; margin-bottom: 22px; }
.modal-title h2 { margin: 0; font-size: 1.3rem; }
.modal-table { min-width: 620px; }
.viewer-shell { background: #fff; }
.viewer-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.viewer-tools { display: flex; flex-wrap: wrap; gap: 7px; }
.viewer-tools button { min-height: 36px; padding: 6px 10px; }
.viewer { position: relative; height: 70vh; overflow: auto; border-radius: 11px; background: #151b22; }
.viewer-stage { min-height: 100%; transform-origin: top center; }
.pdf-document-viewer { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.pdf-document-viewer.text-panel-open { grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); grid-template-areas: "text stage"; }
.pdf-document-viewer .viewer-stage { min-width: 0; overflow: auto; }
.pdf-document-viewer.text-panel-open .viewer-stage { grid-area: stage; }
.pdf-text-panel { min-width: 0; padding: 15px; color: #24384c; background: #f8fbfc; border-left: 0; border-right: 1px solid #cbd8df; overflow: auto; }
.pdf-document-viewer.text-panel-open .pdf-text-panel { grid-area: text; }
.pdf-text-panel.hidden { display: none; }
.pdf-text-panel-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pdf-text-panel-head strong { font-size:.84rem; }
.pdf-text-panel p { margin:8px 0; color:var(--muted); font-size:.74rem; line-height:1.4; }
.pdf-text-panel textarea { min-height: calc(70vh - 100px); resize: vertical; color:#23384a; background:#fff; font: .78rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; user-select:text; }
@media (max-width:900px) { .pdf-document-viewer.text-panel-open { grid-template-columns: 1fr; grid-template-areas: "stage" "text"; } .pdf-text-panel { border-left:0; border-right:0; border-top:1px solid #cbd8df; min-height:260px; } }
.viewer iframe, .viewer img, .viewer video { display: block; width: 100%; height: 70vh; border: 0; object-fit: contain; }
.viewer-help { display: block; margin-top: 8px; color: var(--muted); text-align: center; }
.text-document { min-height: 70vh; padding: 36px; color: #17283a; background: #fff; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; line-height: 1.65; overflow-wrap: anywhere; }
.viewer-shell:fullscreen { width: 100vw; height: 100vh; padding: 18px; background: #fff; }
.viewer-shell:fullscreen .viewer { height: calc(100vh - 105px); }
.viewer-shell:fullscreen .viewer iframe, .viewer-shell:fullscreen .viewer img, .viewer-shell:fullscreen .viewer video, .viewer-shell:fullscreen .text-document { height: calc(100vh - 105px); min-height: calc(100vh - 105px); }
.viewer-message { display: grid; place-items: center; min-height: 60vh; padding: 28px; color: #fff; text-align: center; }
.viewer-message > div { max-width: 620px; }
.viewer-message strong { display: block; margin-bottom: 8px; font-size: 1.05rem; }
.viewer-message p { margin: 0; color: #d7e0e7; line-height: 1.55; }
.viewer-error strong { color: #ffd1ce; }
.viewer-status { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 10px; border: 1px solid #c7d5de; border-radius: 9px; color: #385165; background: #f5f8fa; font-size: .76rem; font-weight: 750; }
.pdf-pages { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; justify-items: center; gap: 18px; min-height: 100%; padding: 20px; background: #3a4652; }
.pdf-page { position: relative; width: fit-content; max-width: 100%; overflow: hidden; background: #fff; border-radius: 3px; box-shadow: 0 7px 24px rgba(0,0,0,.28); }
.pdf-page canvas { display: block; max-width: 100%; height: auto !important; background: #fff; }
.pdf-page-label { position: absolute; top: 8px; right: 8px; z-index: 2; padding: 4px 7px; border-radius: 6px; color: #fff; background: rgba(9,27,43,.74); font-size: .68rem; font-weight: 750; pointer-events: none; user-select: none; }
.pdf-text-overlay { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
/* TextLayer geometry matches the installed PDF.js 6 renderer. */
.pdf-text-overlay .textLayer { color-scheme: only light; position: absolute; inset: 0; overflow: clip; text-align: initial; line-height: 1; letter-spacing: normal; word-spacing: normal; text-size-adjust: none; -webkit-text-size-adjust: none; forced-color-adjust: none; transform-origin: 0 0; --min-font-size: 1; --text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size)); --min-font-size-inv: calc(1 / var(--min-font-size)); }
.pdf-text-overlay .textLayer :is(span, br) { position: absolute; color: transparent; white-space: pre; cursor: text; transform-origin: 0 0; user-select: text; -webkit-user-select: text; }
.pdf-text-overlay .textLayer > :not(.markedContent), .pdf-text-overlay .markedContent span:not(.markedContent) { z-index: 1; --font-height: 0; font-size: calc(var(--text-scale-factor) * var(--font-height)); --scale-x: 1; --rotate: 0deg; transform: rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv)); }
.pdf-text-overlay .markedContent { display: contents; }
.pdf-text-overlay .textLayer ::selection { background: rgb(0 100 220 / .3); color: transparent; }
.pdf-text-overlay .textLayer br::selection { background: transparent; }
.pdf-text-overlay [data-main-rotation="90"] { transform: rotate(90deg) translateY(-100%); }
.pdf-text-overlay [data-main-rotation="180"] { transform: rotate(180deg) translate(-100%, -100%); }
.pdf-text-overlay [data-main-rotation="270"] { transform: rotate(270deg) translateX(-100%); }
.pdf-ocr-layer { position: absolute; inset: 0; line-height: 1; font-family: sans-serif; }
.pdf-ocr-layer span { position: absolute; color: transparent; white-space: pre; cursor: text; transform-origin: 0 0; user-select: text; -webkit-user-select: text; }
.pdf-ocr-layer span::selection { color: transparent; background: rgb(0 100 220 / .3); }
.pdf-scan-tools { position: absolute; bottom: 8px; left: 8px; right: 8px; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; width: fit-content; max-width: calc(100% - 16px); padding: 6px 8px; border-radius: 8px; color: #183246; background: rgb(255 255 255 / .94); box-shadow: 0 1px 7px rgb(0 0 0 / .12); user-select: none; }
.pdf-scan-tools button { min-height: 30px; padding: 4px 8px; font-size: .74rem; }
.pdf-scan-tools span { max-width: 350px; font-size: .7rem; }
.pdf-recovery-note { width: min(760px, 100%); padding: 10px 13px; border: 1px solid #c7ddd8; border-radius: 9px; color: #163e39; background: #eaf6f3; text-align: center; font-size: .8rem; font-weight: 700; }
.attachment-actions { display: flex; justify-content: center; margin-top: 18px; }
.download-progress { width: min(420px, 100%); min-width: 190px; margin-top: 12px; padding: 12px; border: 1px solid #b8d8d3; border-radius: 11px; color: var(--ink); background: #f0f8f6; text-align: left; }
.download-progress-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.download-progress-heading strong { font-size: .84rem; }
.download-progress .download-cancel { min-height: 30px; padding: 4px 8px; font-size: .74rem; }
.download-progress progress { display: block; margin: 9px 0 6px; height: 8px; }
.download-progress [role="status"] { display: block; color: var(--muted); font-size: .76rem; overflow-wrap: anywhere; }
.download-progress.download-error { border-color: #efc1bd; background: var(--danger-bg); }
.download-busy::before { content: ''; display: inline-block; width: 12px; height: 12px; margin-right: 7px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -1px; animation: download-spin .8s linear infinite; }
@keyframes download-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .download-busy::before { animation: none; } }
.backup-summary { display: grid; justify-items: center; padding: 48px 28px; border: 1px solid var(--line); border-radius: 13px; background: #f8fbfc; text-align: center; }
.backup-summary h3 { margin: 15px 0 4px; }
.backup-summary p { max-width: 580px; margin: 6px 0 0; color: var(--muted); }
.backup-icon { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 18px; color: #fff; background: linear-gradient(145deg, var(--teal), var(--navy-soft)); font-size: 1.05rem; font-weight: 850; letter-spacing: .06em; box-shadow: 0 10px 24px rgba(11, 37, 64, .16); }
.watermarks { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); align-content: center; gap: 60px; color: #fff; opacity: .18; font-size: .82rem; font-weight: 800; transform: rotate(-24deg); pointer-events: none; }
.watermarks span { white-space: nowrap; }
.csvtable { min-height: 100%; padding: 20px; background: #fff; }
.workbook-viewer { min-height: 100%; color: #173047; background: #f4f7f9; }
.word-viewer { min-height: 100%; padding: 30px; color: #1e293b; background: #e9eef3; }
.word-document { width: min(860px, 100%); min-height: 1040px; margin: 0 auto; padding: 64px 72px; border: 1px solid #d7dde3; border-radius: 4px; background: #fff; box-shadow: 0 10px 32px rgba(15, 23, 42, .16); line-height: 1.55; overflow-wrap: anywhere; }
.word-document h1, .word-document h2, .word-document h3, .word-document h4 { margin: 1.15em 0 .55em; color: #14283a; line-height: 1.25; }
.word-document p { margin: 0 0 1em; }
.word-document table { width: 100%; margin: 1em 0; border-collapse: collapse; }
.word-document th, .word-document td { padding: 8px 10px; border: 1px solid #cfd8df; text-align: left; vertical-align: top; }
.word-document img { display: block; max-width: 100%; height: auto; margin: 1em auto; }
.word-document pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
@media (max-width: 760px) { .word-viewer { padding: 10px; } .word-document { min-height: 0; padding: 28px 22px; } }
.workbook-note { padding: 12px 16px; border-bottom: 1px solid #cbd8df; color: #3c5365; background: #edf5f3; font-size: .78rem; line-height: 1.5; }
.sheet-tabs { position: sticky; top: 0; z-index: 5; display: flex; gap: 6px; padding: 9px 12px; overflow-x: auto; border-bottom: 1px solid #bdccd5; background: #e5ecef; }
.sheet-tab { min-height: 34px; padding: 6px 13px; border: 1px solid #b7c7d0; border-radius: 8px 8px 3px 3px; color: #344f62; background: #f7f9fa; white-space: nowrap; }
.sheet-tab.active { border-color: #168477; color: #075e54; background: #fff; box-shadow: inset 0 -3px #168477; }
.workbook-sheet { min-width: 100%; overflow: visible; background: #fff; }
.excel-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: auto; font-size: .78rem; }
.excel-table th, .excel-table td { min-width: 105px; max-width: 420px; padding: 7px 9px; border-right: 1px solid #d8e0e5; border-bottom: 1px solid #d8e0e5; color: #183044; background: #fff; text-align: left; vertical-align: top; white-space: pre-wrap; overflow-wrap: anywhere; }
.excel-table thead th { position: sticky; top: 53px; z-index: 3; min-width: 54px; color: #435b6d; background: #eef3f5; text-align: center; }
.excel-table .row-number { position: sticky; left: 0; z-index: 2; min-width: 54px; width: 54px; color: #607482; background: #eef3f5; text-align: right; }
.excel-table .sheet-corner { left: 0; z-index: 4; width: 54px; }
.badge.danger-badge { color: #8a2720; background: #fde9e7; }

.toast { position: fixed; top: 22px; right: 22px; z-index: 100; max-width: min(420px, calc(100vw - 30px)); padding: 12px 16px; border-radius: 10px; color: #fff; background: #102b45; box-shadow: var(--shadow); transform: translateY(-100px); transition: transform .25s ease; }
.toast.show { transform: none; }
.toast.error { background: #932b24; }

@media (max-width: 1200px) {
  .cards, .cards.has-six { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .work-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .app { grid-template-columns: 1fr; }
  main { grid-column: 1; }
  aside { width: min(290px, 86vw); transform: translateX(-105%); transition: transform .22s ease; box-shadow: 12px 0 36px rgba(3, 15, 27, .25); }
  body.menu-open aside { transform: translateX(0); }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  header { padding: 14px 18px; }
  #content { padding: 20px 18px 36px; }
  .shield { display: none; }
  .dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .login-card { padding: 28px 22px; border-radius: 18px; }
  header { min-height: 76px; }
  header p { max-width: 44vw; }
  #quickUpload { padding-inline: 11px; font-size: .82rem; }
  .notification-button { padding-inline: 10px; font-size: .8rem; }
  .notification-button::first-letter { font-size: .9rem; }
  .notification-count { margin-left: 0; font-size: .68rem; }
  .cards, .cards.has-six, .security-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card { padding: 15px; }
  .metric-link { min-height: 132px; }
  .metric span { min-height: 38px; }
  .metric strong { font-size: 1.65rem; }
  .panel-head { align-items: flex-start; }
  .responsive-head { flex-direction: column; }
  .responsive-head > button, .responsive-head > .toolbar, .toolbar input, .toolbar select { width: 100%; }
  .toolbar { justify-content: stretch; }
  .toolbar .primary { width: 100%; }
  .form-grid, .checks, .recipient-grid, .choice-grid, .account-grid { grid-template-columns: 1fr; }
  .upload-files-field { padding: 14px; }
  .upload-drop-zone { flex-direction: column; justify-content: center; min-height: 180px; padding: 22px 16px; text-align: center; }
  .upload-browse-action { margin: 2px 0 0; }
  .upload-queue-item { grid-template-columns: 42px minmax(0, 1fr) 32px; gap: 9px; }
  .upload-file-icon { width: 42px; height: 42px; }
  .upload-file-status { grid-column: 2 / 4; grid-row: 2; justify-content: flex-start; text-align: left; }
  .upload-remove { grid-column: 3; grid-row: 1; }
  .upload-form-actions { align-items: stretch; flex-direction: column; }
  .upload-form-actions > span { text-align: center; }
  .upload-form-actions button { width: 100%; }
  .work-board, .report-grid, .reply-box { grid-template-columns: 1fr; }
  .reply-actions { grid-column: auto; flex-wrap: wrap; }
  .reply-actions select { width: 100%; margin: 0; }
  .handover-card { grid-template-columns: 1fr; }
  .handover-card > div:last-child { text-align: left; }
  .work-message { max-width: 94%; }
  .form-grid .wide, .account-wide { grid-column: auto; }
  .account-item.account-wide { grid-column: auto; }
  .graph-row { grid-template-columns: 76px minmax(80px, 1fr) 28px; gap: 8px; }
  dialog { padding: 24px 18px; }
}

@media (max-width: 420px) {
  .cards, .cards.has-six, .security-cards { grid-template-columns: 1fr; }
  .metric span { min-height: auto; }
  .header-title { gap: 9px; }
  header h1 { font-size: 1.15rem; }
  header p { display: none; }
  #quickUpload { max-width: 120px; }
}

/* Friendly motion layer: polished, lightweight, and accessibility-aware. */
@keyframes portal-page-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes portal-card-in {
  from { opacity: 0; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes portal-modal-in {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes portal-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes portal-toast-in {
  from { opacity: 0; transform: translateY(-18px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes portal-bg-drift {
  from { background-position: 90% 0; }
  to { background-position: 76% 12%; }
}
@keyframes portal-dropzone-breathe {
  0%, 100% { box-shadow: 0 0 0 0 rgba(52, 127, 119, 0); }
  50% { box-shadow: 0 0 0 5px rgba(52, 127, 119, .055); }
}
@keyframes portal-alert-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(180, 35, 24, 0); }
  50% { box-shadow: 0 0 0 4px rgba(180, 35, 24, .09); }
}

body {
  background-size: 140% 140%;
  animation: portal-bg-drift 24s ease-in-out infinite alternate;
}
.login-card {
  animation: portal-modal-in .62s cubic-bezier(.2, .75, .25, 1) both;
}
.login-card .brand-mark {
  animation: portal-card-in .7s cubic-bezier(.2, .75, .25, 1) both;
}
header {
  animation: portal-page-in .5s cubic-bezier(.2, .75, .25, 1) both;
}
#content > * {
  animation: portal-page-in .46s cubic-bezier(.2, .75, .25, 1) both;
}
#content > *:nth-child(2) { animation-delay: .05s; }
#content > *:nth-child(3) { animation-delay: .1s; }
#content > *:nth-child(4) { animation-delay: .15s; }

.cards > .card {
  animation: portal-card-in .52s cubic-bezier(.2, .75, .25, 1) both;
}
.cards > .card:nth-child(2) { animation-delay: .055s; }
.cards > .card:nth-child(3) { animation-delay: .11s; }
.cards > .card:nth-child(4) { animation-delay: .165s; }
.cards > .card:nth-child(5) { animation-delay: .22s; }
.cards > .card:nth-child(6) { animation-delay: .275s; }

.card, .work-card, .recipient-card, .account-item {
  transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}
.card:not(.metric-link):hover, .recipient-card:hover, .account-item:hover {
  transform: translateY(-2px);
  border-color: #a4d7d1;
  box-shadow: 0 12px 28px rgba(11, 37, 64, .1);
}
.work-board > .work-card {
  animation: portal-card-in .42s cubic-bezier(.2, .75, .25, 1) both;
}
.work-board > .work-card:nth-child(2) { animation-delay: .05s; }
.work-board > .work-card:nth-child(3) { animation-delay: .1s; }
.work-board > .work-card:nth-child(4) { animation-delay: .15s; }
.work-board > .work-card:nth-child(5) { animation-delay: .2s; }

button:not(:disabled) {
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
button:not(:disabled):active {
  transform: translateY(0) scale(.97);
}
button.primary:not(:disabled):hover {
  box-shadow: 0 8px 20px rgba(52, 127, 119, .2);
  filter: saturate(1.06);
}
nav button .nav-icon {
  transition: transform .2s ease, color .2s ease;
}
nav button:hover .nav-icon, nav button.active .nav-icon {
  transform: translateX(2px) scale(1.08);
}
input, select, textarea {
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
input:focus, select:focus, textarea:focus {
  box-shadow: 0 0 0 4px rgba(52, 127, 119, .1);
}
dialog[open] {
  animation: portal-modal-in .28s cubic-bezier(.2, .75, .25, 1) both;
}
dialog[open]::backdrop {
  animation: portal-backdrop-in .24s ease-out both;
}
.toast.show {
  animation: portal-toast-in .32s cubic-bezier(.2, .75, .25, 1) both;
}
.upload-drop-zone {
  animation: portal-dropzone-breathe 4.5s ease-in-out infinite;
}
.upload-drop-zone:hover, .upload-drop-zone:focus-visible, .upload-drop-zone.is-dragging {
  animation-play-state: paused;
}
.badge.warn, .notification-count {
  animation: portal-alert-pulse 2.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  body { animation: none !important; }
}

/* Documents toolbar and category editor refinements. */
.document-toolbar {
  position: relative;
  z-index: 40;
  flex-wrap: wrap;
  justify-content: flex-start;
  overflow: visible;
  padding-bottom: 5px;
  white-space: normal;
}
.document-toolbar > * { flex: 0 0 auto; }
.document-toolbar input { flex: 0 1 220px; min-width: 200px; }
.document-toolbar select { flex: 0 0 210px; }
.category-edit-list {
  display: grid;
  gap: 10px;
  max-height: 55vh;
  padding: 2px 4px 2px 0;
  overflow-y: auto;
}
.category-edit-row {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fbfc;
}
.category-edit-row span { color: var(--navy); font-size: .84rem; font-weight: 750; }
.category-edit-row input { margin: 0; min-width: 0; }
.protected-video {
  background: #0c1d2b;
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(4, 17, 31, .24);
}
@media (max-width: 680px) {
  .document-toolbar input { flex: 0 0 220px; width: 220px; }
  .document-toolbar select { flex: 0 0 210px; width: 210px; }
  .category-edit-row { grid-template-columns: 1fr; gap: 5px; }
}

@media print {
  @page { size: auto; margin: 10mm; }
  body:not(.printing-document) { display: none !important; }
  body.printing-document { display: block !important; background: #fff !important; }
  body.printing-document > :not(dialog) { display: none !important; }
  body.printing-document dialog { position: static !important; display: block !important; width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; border: 0 !important; box-shadow: none !important; }
  body.printing-document dialog::backdrop, body.printing-document .modal-close, body.printing-document .viewer-title, body.printing-document .viewer-help, body.printing-document .pdf-text-panel, body.printing-document .watermarks { display: none !important; }
  body.printing-document .viewer, body.printing-document .viewer-stage, body.printing-document .pdf-pages, body.printing-document .word-viewer, body.printing-document .workbook-viewer { width: 100% !important; height: auto !important; max-height: none !important; overflow: visible !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; box-shadow: none !important; zoom: 1 !important; transform: none !important; }
  body.printing-document .pdf-page { break-after: page; page-break-after: always; margin: 0 auto !important; border: 0 !important; box-shadow: none !important; }
  body.printing-document .pdf-page:last-child { break-after: auto; page-break-after: auto; }
  body.printing-document .pdf-page-label, body.printing-document .pdf-text-overlay, body.printing-document .pdf-scan-tools, body.printing-document .pdf-recovery-note, body.printing-document .workbook-note, body.printing-document .sheet-tabs { display: none !important; }
  body.printing-document canvas, body.printing-document img { display: block; max-width: 100% !important; height: auto !important; margin: 0 auto; }
  body.printing-document .excel-table { width: 100%; font-size: 8pt; }
  body.printing-document video { display: none !important; }
}

@media(max-width:680px){.mobile-alerts{grid-template-columns:1fr}.mobile-alerts button{grid-column:1;grid-row:auto}.mobile-alerts small{overflow-wrap:anywhere}}

/* Document urgency stays distinct from expiry and workflow status. */
.document-priority{white-space:nowrap;border:1px solid transparent;font-weight:700}
.priority-low{background:#e5f3eb;color:#225b3a;border-color:#b4d7c2}
.priority-moderate{background:#e7f0fc;color:#254d80;border-color:#b9cfea}
.priority-high{background:#fff1cd;color:#765000;border-color:#e5c879}
.priority-too_urgent{background:#fde6e6;color:#9c2424;border-color:#e9adad}

/* Reviewed person details remain attached to their own PDF. */
.upload-people-panel{grid-column:1/-1;border-top:1px solid var(--line);padding:14px 4px 4px;min-width:0}
.upload-people-panel p{margin:7px 0 12px;color:#567080;font-size:13px}
.people-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.person-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:10px}
.person-row label{min-width:0}.person-row input{width:100%;box-sizing:border-box}
.people-review{display:flex!important;align-items:center;gap:9px;margin-top:12px;font-size:13px}
.people-review input{width:auto!important;flex-shrink:0}
.passenger-summary{margin:10px 0;padding:10px 12px;background:#f0f7f6;border:1px solid #cde2df;border-radius:10px;min-width:190px;max-width:100%;overflow-wrap:anywhere}
.passenger-summary>div{display:flex;flex-direction:column;gap:3px;margin-bottom:7px}
.passenger-summary span{font-size:12px;color:#385865}
.passenger-summary button{font-size:12px;padding:7px 10px}
@media(max-width:600px){.person-row{grid-template-columns:minmax(0,1fr)}.person-row button{justify-self:start}.people-review{align-items:flex-start}.passenger-summary{min-width:0}}
@media print{body.printing-document .passenger-summary{display:none!important}}

/* Private personal notes */
.notes-workspace{display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);min-height:680px;overflow:hidden;background:#fff}
.notes-list-panel{min-width:0;border-right:1px solid var(--line);background:linear-gradient(180deg,#fbfdfd,#f3f8f7);display:flex;flex-direction:column}
.notes-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 18px 14px;border-bottom:1px solid var(--line)}
.notes-eyebrow{display:block;color:var(--teal-dark);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.notes-list-head h2{margin:3px 0 2px;color:var(--navy);font-size:1.12rem}
.notes-list-head p{margin:0;color:var(--muted);font-size:.75rem}
.notes-add{min-width:40px;min-height:40px;padding:6px 11px;border-radius:12px;font-size:1.1rem}
.notes-search{margin:14px 15px 10px}
.notes-search input{margin:0;min-height:40px;border-radius:12px;background:#fff}
.notes-list{display:grid;gap:4px;padding:0 9px 15px;overflow:auto}
.note-list-item{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:64px;padding:11px 10px;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:12px;text-align:left;font-weight:500}
.note-list-item:hover{background:#eaf4f2;transform:none}
.note-list-item.active{border-color:#abd4cf;background:#e4f2ef;box-shadow:none}
.note-list-lock{width:22px;flex:0 0 22px;text-align:center}
.note-list-copy{min-width:0;display:block}
.note-list-copy strong,.note-list-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note-list-copy strong{color:var(--navy);font-size:.84rem}
.note-list-copy small{margin-top:3px;color:var(--muted);font-size:.72rem}
.notes-editor{display:flex;flex-direction:column;min-width:0;min-height:680px;background:#fff}
.notes-editor-empty,.note-locked-state{display:grid;place-items:center;align-content:center;gap:10px;min-height:100%;padding:35px;color:var(--muted);text-align:center}
.notes-editor-empty h2,.note-locked-state h2{margin:3px 0 0;color:var(--navy);font-size:1.15rem}
.notes-editor-empty p,.note-locked-state p{max-width:360px;margin:0;color:var(--muted);font-size:.82rem}
.note-lock-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:22px;color:#fff;background:linear-gradient(145deg,var(--teal),var(--navy));font-size:1.7rem;box-shadow:0 12px 24px rgba(24,50,70,.16)}
.notes-editor-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 24px 13px;border-bottom:1px solid var(--line-soft)}
.notes-editor-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.notes-editor-actions button{min-height:34px;padding:6px 10px;font-size:.75rem}
.notes-status{display:block;margin-top:4px;color:var(--muted);font-size:.73rem}
.note-title-input{min-height:58px;margin:0;padding:22px 26px 7px;border:0;border-radius:0;color:var(--navy);font-size:1.45rem;font-weight:750;box-shadow:none}
.note-title-input:focus{box-shadow:none;outline:0}
.note-content-input{flex:1;min-height:470px;margin:0;padding:12px 26px 26px;border:0;border-radius:0;resize:none;color:#334c5d;background:#fff;font-size:.96rem;line-height:1.75;box-shadow:none}
.note-content-input:focus{box-shadow:none;outline:0}
.notes-editor-footer{display:flex;justify-content:space-between;gap:12px;padding:12px 26px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:.72rem}
.notes-empty-list{padding:25px 13px;color:var(--muted);font-size:.8rem;text-align:center}
@media(max-width:800px){.notes-workspace{grid-template-columns:1fr;min-height:0}.notes-list-panel{border-right:0;border-bottom:1px solid var(--line)}.notes-list{max-height:230px}.notes-editor{min-height:560px}.note-content-input{min-height:360px}.notes-editor-head{padding:15px 16px 11px}.note-title-input,.note-content-input{padding-left:18px;padding-right:18px}.notes-editor-footer{padding-inline:18px}}


.chrome-setup-panel{overflow:hidden}.chrome-setup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px}.chrome-step{display:flex;gap:14px;align-items:flex-start;padding:18px;border:1px solid var(--line,#ead3c3);border-radius:16px;background:linear-gradient(145deg,#fff,#fff8f2);transition:transform .2s ease,box-shadow .2s ease}.chrome-step:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(111,63,37,.12)}.chrome-step-number{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--copper,#a6532d);color:#fff;font-weight:800}.chrome-step h3{margin:0 0 8px;font-size:1.05rem}.chrome-step p{margin:0 0 14px;line-height:1.55;color:var(--muted,#795f50)}.chrome-step code{padding:2px 5px;border-radius:5px;background:#f3e7dd;color:#754326}.button-link{display:inline-flex;align-items:center;text-decoration:none}.chrome-pair-result{margin-top:16px;padding:12px;border-radius:12px;background:#f8eee6}.chrome-pair-result input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.chrome-pair-result small{color:var(--muted,#795f50)}.chrome-security-note{margin:0 20px 20px}.compact-notice{font-size:.9rem;line-height:1.45}@media(max-width:980px){.chrome-setup-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.chrome-setup-grid{grid-template-columns:1fr;padding:14px}.chrome-security-note{margin:0 14px 14px}}
.chrome-step strong{color:var(--ink,#38261f)}.chrome-pair-result .form-actions{align-items:center;margin-top:8px}.chrome-pair-result .form-actions button{margin:0}.chrome-setup-panel .panel-head{padding-bottom:4px}.chrome-setup-panel .panel-head p{max-width:680px}.chrome-step .primary{white-space:nowrap}.chrome-setup-panel a:focus-visible,.chrome-setup-panel button:focus-visible{outline:3px solid rgba(34,164,156,.35);outline-offset:3px}
.drive-panel{overflow:hidden}.drive-head-actions{display:flex;align-items:center;gap:10px}.drive-privacy{margin:0 20px 18px;background:linear-gradient(135deg,#fff7ed,#edf8f6);border-color:#d8c3b3}.drive-drop-zone{display:flex;align-items:center;gap:14px;margin:0 20px 18px;padding:20px 22px;border:1.5px dashed #b7653d;border-radius:16px;background:#fffaf6;color:var(--ink,#38261f);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.drive-drop-zone:hover,.drive-drop-zone:focus-visible,.drive-drop-zone.is-dragging{transform:translateY(-2px);background:#fff1e4;box-shadow:0 12px 26px rgba(111,63,37,.12);outline:none}.drive-drop-zone>span:last-child{display:grid;gap:4px}.drive-drop-zone strong{font-size:.96rem}.drive-drop-zone small{color:var(--muted,#795f50)}.drive-upload-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;margin:0 20px 18px;padding:13px 16px;border:1px solid #c8e0dc;border-radius:13px;background:#eff9f7;color:var(--ink,#38261f)}.drive-upload-progress progress{grid-column:1/-1;width:100%;height:8px}.drive-toolbar{justify-content:flex-end;margin:0 20px 14px}.drive-toolbar input{min-width:260px}.drive-table .actions{justify-content:flex-end}.drive-table td{vertical-align:top}.drive-table .sub{display:block}.saveDrive.saved{color:#167e73;border-color:#9ccfc7;background:#eff9f7}.drive-panel .table-wrap{margin:0 20px 20px;border:1px solid var(--line,#ead3c3);border-radius:14px}.drive-panel .table-wrap table{border:0}.drive-panel .empty{padding:38px 18px}@media(max-width:800px){.drive-panel .panel-head{align-items:flex-start}.drive-head-actions{width:100%}.drive-head-actions button{width:100%}.drive-drop-zone{margin-inline:14px;padding:17px}.drive-privacy{margin-inline:14px}.drive-toolbar{margin-inline:14px}.drive-toolbar input{min-width:0;width:100%}.drive-panel .table-wrap{margin-inline:14px}.drive-table{min-width:720px}}
.cloud-capture-panel{overflow:hidden}.cloud-capture-note{margin:0 20px 16px;line-height:1.5}.cloud-capture-toolbar{display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto repeat(3,42px);gap:8px;padding:16px 20px;border-bottom:1px solid var(--line,#ead3c3);align-items:center}.cloud-capture-toolbar input{min-width:0}.cloud-browser-status{margin:14px 20px 0;padding:10px 12px;border-radius:10px;background:#f8eee6;color:var(--ink,#38261f);font-size:.9rem}.cloud-browser-status.error{background:#fff0ee;color:#a22828}.cloud-browser-shell{position:relative;margin:14px 20px;background:#17232e;border-radius:14px;min-height:480px;display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.cloud-browser-screen{display:block;width:100%;height:auto;max-height:760px;object-fit:contain;background:#fff;cursor:crosshair;outline:0}.cloud-browser-screen.hidden{display:none}.cloud-browser-empty{color:#d7e0e6;padding:70px 20px;text-align:center}.cloud-browser-empty.hidden{display:none}.cloud-browser-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 20px 18px}.cloud-browser-help{color:var(--muted,#795f50);font-size:.82rem;flex:1 1 260px}.cloud-capture-result{margin:0 20px 20px;padding:16px;border:1px solid var(--line,#ead3c3);border-radius:14px;background:linear-gradient(145deg,#fff,#fff8f2)}.cloud-upload-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.cloud-upload-form>label{position:relative}.cloud-upload-form .form-actions,.cloud-upload-form .cloud-check,.cloud-upload-form .cloud-employee-section{grid-column:1/-1}.cloud-check{display:flex;gap:8px;align-items:center}.cloud-check input{width:auto}.cloud-picker-options{position:absolute;z-index:5;left:0;right:0;top:100%;max-height:190px;overflow:auto;background:#fff;border:1px solid var(--line,#ead3c3);border-radius:0 0 10px 10px;box-shadow:0 10px 22px #0002}.cloud-picker-options.hidden{display:none}.cloud-picker-option{display:block;width:100%;padding:10px 12px;text-align:left;border:0;background:#fff;color:var(--ink,#38261f)}.cloud-picker-option:hover,.cloud-picker-option.active{background:#f8eee6}.cloud-employee-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:180px;overflow:auto;padding:8px;border:1px solid var(--line,#ead3c3);border-radius:10px;background:#fff}.cloud-employee-row{display:flex!important;gap:8px;align-items:flex-start;padding:7px;border-radius:8px;background:#fff8f2}.cloud-employee-row input{width:auto!important;margin-top:3px}.cloud-employee-row span{display:grid;gap:2px}.cloud-employee-row small{color:var(--muted,#795f50)}.cloud-capture-panel .has-selection{border-color:var(--teal,#16aaa4);background:#f2fbf9}@media(max-width:850px){.cloud-capture-toolbar{grid-template-columns:1fr 1fr repeat(3,42px)}.cloud-capture-toolbar input{grid-column:1/-1}.cloud-upload-form{grid-template-columns:1fr}}@media(max-width:600px){.cloud-capture-toolbar{padding:12px;gap:6px}.cloud-browser-shell,.cloud-capture-result{margin-left:12px;margin-right:12px}.cloud-browser-actions,.cloud-capture-note{padding-left:12px;padding-right:12px;margin-left:0;margin-right:0}.cloud-employee-options{grid-template-columns:1fr}}
.cloud-capture-blocked{display:grid;gap:8px;margin:0 20px 14px;border-color:#d27a50;background:#fff0e7}.cloud-capture-blocked.hidden{display:none}.cloud-capture-blocked strong{color:#9b3e25}.cloud-capture-blocked span{line-height:1.5;color:var(--muted,#795f50)}.cloud-capture-blocked .form-actions{margin-top:2px}.viewer-members{margin:.3rem 0 0;color:var(--muted);font-size:.76rem;line-height:1.35}
.reminders-panel{overflow:hidden}.reminder-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px;border-bottom:1px solid var(--line)}.reminder-details-field,.reminder-form .form-actions{grid-column:1/-1}.reminder-form textarea{resize:vertical;min-height:78px}.reminder-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:20px 20px 10px}.reminder-list-head h3{margin:0;color:var(--navy);font-size:1rem}.reminder-list-head small{color:var(--muted);font-size:.75rem}.reminder-list{display:grid;gap:10px;padding:0 20px 22px}.reminder-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#fffaf6,#f4fbfa)}.reminder-row.is-completed{opacity:.68;background:#f5f7f7}.reminder-copy{min-width:0}.reminder-row-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.reminder-row h3{margin:0;color:var(--navy);font-size:.94rem}.reminder-copy p{margin:7px 0 0;color:var(--muted);font-size:.8rem;white-space:pre-wrap}.reminder-copy time{display:block;margin-top:8px;color:var(--teal-dark);font-size:.76rem;font-weight:650}.reminder-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.reminder-actions button{min-height:32px;padding:6px 9px;font-size:.74rem}.reminder-member-field{grid-column:1/-1}.reminder-member-field select{min-height:94px;padding:8px}.reminder-member-field small{display:block;margin-top:5px;color:var(--muted);font-size:.73rem}.reminder-members{display:block;margin-top:7px;color:var(--teal-dark);font-size:.75rem;font-weight:650}.dashboard-reminders-panel{grid-column:1/-1;overflow:hidden}.dashboard-reminder-list{display:grid;gap:8px;padding:0 20px 20px}.dashboard-reminder-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#fffaf6,#f1faf8)}.dashboard-reminder-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.dashboard-reminder-row small,.dashboard-reminder-popup-row>small{display:block;margin-top:5px;color:var(--muted);font-size:.75rem}.dashboard-reminder-popup-list{display:grid;gap:12px;max-height:65vh;overflow:auto}.dashboard-reminder-popup-row{padding:15px;border:1px solid var(--line);border-radius:13px;background:#fffaf6}.dashboard-reminder-popup-row p{margin:8px 0;color:var(--muted);font-size:.8rem;white-space:pre-wrap}.dashboard-reminder-reschedule{display:flex;align-items:end;gap:9px;margin-top:12px}.dashboard-reminder-reschedule label{flex:1;margin:0}.dashboard-reminder-reschedule button{white-space:nowrap}.dashboard-reminder-popup-row input{margin-top:5px}@media(max-width:700px){.reminder-member-field{grid-column:auto}.dashboard-reminder-row{align-items:flex-start;flex-direction:column}.dashboard-reminder-row button{width:100%}.dashboard-reminder-reschedule{align-items:stretch;flex-direction:column}.dashboard-reminder-reschedule button{width:100%}}@media(max-width:700px){.reminder-form{grid-template-columns:1fr}.reminder-details-field,.reminder-form .form-actions{grid-column:auto}.reminder-list-head,.reminder-row{align-items:flex-start;flex-direction:column}.reminder-actions{justify-content:flex-start;width:100%}}
.reminder-table-head,.reminder-row{grid-template-columns:minmax(220px,1.8fr) minmax(150px,1.1fr) minmax(110px,.8fr) minmax(180px,1.4fr) minmax(210px,1.5fr)}
.reminder-table-head{display:grid;gap:12px;padding:0 16px 8px;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.reminder-row{display:grid;align-items:start;gap:12px}
.reminder-cell{min-width:0}
.reminder-cell h3{overflow-wrap:anywhere}
.reminder-cell time{display:block;margin:0;color:var(--teal-dark);font-size:.78rem;font-weight:700}
.reminder-cell>small{display:block;margin-top:5px;color:var(--muted);font-size:.73rem}
.reminder-repeat{display:inline-flex;padding:4px 8px;border-radius:999px;color:var(--navy);background:#eef5f4;font-size:.73rem;font-weight:700}
.reminder-people{color:var(--ink);font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}
.reminder-actions{align-items:center;justify-content:flex-start!important}
.reminder-actions .badge{margin-right:auto}
.dashboard-reminder-popup-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.dashboard-reminder-popup-meta span{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.dashboard-reminder-popup-meta small{color:var(--muted);font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.dashboard-reminder-popup-meta strong{color:var(--navy);font-size:.78rem;overflow-wrap:anywhere}
.dashboard-reminder-popup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media(max-width:1000px){.reminder-table-head{display:none}.reminder-row{grid-template-columns:repeat(2,minmax(0,1fr))}.reminder-cell[data-label]::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.reminder-actions .badge{margin-right:0}}
@media(max-width:680px){.reminder-row{grid-template-columns:1fr}.dashboard-reminder-popup-meta{grid-template-columns:1fr}.reminder-actions{align-items:flex-start!important;justify-content:flex-start!important}.reminder-actions .badge{margin-right:0}}
.dashboard-reminder-table-head,.dashboard-reminder-row{grid-template-columns:minmax(180px,1.8fr) minmax(130px,1fr) minmax(100px,.8fr) minmax(170px,1.4fr) minmax(120px,.8fr)}
.dashboard-reminder-table-head{display:grid;gap:12px;padding:0 14px 7px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.dashboard-reminder-row{display:grid;align-items:center;padding:11px 14px}
.dashboard-reminder-row>div{min-width:0}
.dashboard-reminder-row>div>small{display:block;margin-top:4px;color:var(--muted);font-size:.72rem}
.dashboard-reminder-row[data-label]::before{display:none}
@media(max-width:1000px){.dashboard-reminder-table-head{display:none}.dashboard-reminder-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.dashboard-reminder-row>div[data-label]::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}}
@media(max-width:680px){.dashboard-reminder-row{grid-template-columns:1fr}.dashboard-reminder-row button{width:auto}}
.daily-reminder-sticky{position:fixed;top:0;left:248px;right:0;z-index:1200;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;box-sizing:border-box;padding:6px 24px;border:0;border-bottom:1px solid #e3b58e;border-radius:0;background:linear-gradient(90deg,#fff7ed,#f1fbf8);box-shadow:0 6px 18px rgba(60,42,33,.18);animation:daily-reminder-in .24s ease-out}
.daily-reminder-sticky.hidden{display:none}
.daily-reminder-sticky-copy{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}
.daily-reminder-kicker{flex:0 0 auto;color:var(--copper,#a6532d);font-size:.66rem;font-weight:800;letter-spacing:.1em}
.daily-reminder-sticky-summary{display:flex;align-items:center;gap:8px;min-width:0;color:var(--navy)}
.daily-reminder-sticky-summary strong{font-size:.83rem;white-space:nowrap}
.daily-reminder-sticky-summary span{min-width:0;color:var(--muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daily-reminder-open{flex:0 0 auto;min-height:31px;padding:5px 12px;border:1px solid rgba(166,83,45,.32);border-radius:999px;color:#fff;background:var(--copper,#a6532d);font-size:.74rem;font-weight:750;white-space:nowrap}
.daily-reminder-open:hover{filter:brightness(1.05);transform:translateY(-1px)}
.has-daily-reminder main header{top:44px}
@keyframes daily-reminder-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.daily-reminder-sticky{left:0;padding-inline:18px}.has-daily-reminder main header{top:44px}}
@media(max-width:680px){.daily-reminder-sticky{gap:8px;min-height:42px;padding:5px 10px}.daily-reminder-sticky-copy{gap:7px}.daily-reminder-kicker{font-size:.59rem}.daily-reminder-sticky-summary{display:block}.daily-reminder-sticky-summary strong{display:block;font-size:.76rem}.daily-reminder-sticky-summary span{display:block;max-width:48vw;font-size:.68rem}.daily-reminder-open{min-height:29px;padding:4px 9px;font-size:.68rem}}

/* Compact ordered daily reminder strip. */
.daily-reminder-sticky{min-height:54px;gap:9px}
.daily-reminder-sticky-copy{flex:0 0 auto;gap:8px;overflow:visible}
.daily-reminder-count{color:var(--muted);font-size:.68rem;font-weight:750;white-space:nowrap}
.daily-reminder-sequence{display:flex;align-items:center;gap:7px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:thin}
.daily-reminder-chip{display:flex;align-items:center;gap:7px;flex:0 1 210px;min-width:120px;max-width:230px;padding:5px 8px;border:1px solid rgba(166,83,45,.2);border-radius:10px;color:var(--navy);background:#fff}
.daily-reminder-chip:hover{transform:translateY(-1px);background:#fffaf6}
.daily-reminder-order{display:grid;place-items:center;flex:0 0 21px;width:21px;height:21px;border-radius:50%;color:#fff;background:var(--copper,#a6532d);font-size:.65rem;font-weight:800}
.daily-reminder-chip-copy{display:grid;min-width:0;gap:2px}
.daily-reminder-chip-copy strong{overflow:hidden;font-size:.73rem;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.daily-reminder-chip-copy small{overflow:hidden;color:var(--muted);font-size:.64rem;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.daily-reminder-more{flex:0 0 auto;color:var(--muted);font-size:.68rem;white-space:nowrap}
.daily-reminder-open{min-height:30px;padding:4px 10px}
.has-daily-reminder main header{top:56px}
@media(max-width:900px){.daily-reminder-sticky{min-height:54px}.has-daily-reminder main header{top:54px}}
@media(max-width:680px){.daily-reminder-sticky{min-height:54px;gap:6px;padding:5px 8px}.daily-reminder-sticky-copy{display:grid;gap:1px}.daily-reminder-kicker{font-size:.56rem}.daily-reminder-count{font-size:.62rem}.daily-reminder-sequence{overflow-x:auto}.daily-reminder-chip{flex:0 0 min(54vw,175px);min-width:115px;padding:4px 7px}.daily-reminder-open{min-height:29px;padding:4px 8px;font-size:.66rem}.has-daily-reminder main header{top:54px}}
/* Multi-person reminders and ordered reminder stages */
.reminder-member-field>label{display:block;margin:0 0 7px;font-weight:650}
.reminder-member-field>input[type=search]{width:100%;margin:0 0 8px}
.reminder-member-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:240px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.reminder-member-option{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 10px;border:1px solid #e1e8ef;border-radius:9px;background:#fff;cursor:pointer}
.reminder-member-option:hover{border-color:#90c7bb;background:#f1faf8}
.reminder-member-option[hidden]{display:none!important}
.reminder-member-option input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-height:0;margin:0;accent-color:var(--teal-dark)}
.reminder-member-option span{display:grid;gap:2px;min-width:0}
.reminder-member-option strong,.reminder-member-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reminder-member-option strong{font-size:.8rem;color:var(--navy)}
.reminder-member-option small,.reminder-member-count{font-size:.7rem;color:var(--muted)}
.reminder-member-count{display:block;margin-top:8px;font-weight:700}
.daily-reminder-next{display:grid;place-items:center;flex:0 0 18px;color:var(--copper,#a6532d);font-size:1rem;font-weight:850}
.reminder-actions button[data-reminder-action=alert]{border-color:#edd3bd;background:#fff7ed;color:#95501f}
@media(max-width:700px){.reminder-member-picker{grid-template-columns:1fr;max-height:200px}.daily-reminder-next{flex-basis:13px;font-size:.85rem}}