:root {
  --ink: #14263b;
  --muted: #718095;
  --line: #e7ebf0;
  --paper: #ffffff;
  --canvas: #f4f7f9;
  --navy: #102a43;
  --teal: #168b7a;
  --teal-dark: #0f6e61;
  --day: #f4d35e;
  --night: #ef6461;
  --leave: #667085;
  --owed: #69a7e8;
  --swap: #9b7b25;
  --radius: 16px;
  --shadow: 0 12px 36px rgba(22, 42, 66, .07);
  --font-micro: 12px;
  --font-caption: 13px;
  --font-ui: 14px;
  --font-body-small: 15px;
}

/* Administrative audit history and granular powers */
.balance-row-actions { display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; }
.balance-history-dialog, .power-dialog { width: min(780px, calc(100vw - 28px)); }
.balance-history-shell { max-height: min(880px, calc(100vh - 30px)); display: flex; flex-direction: column; }
.dialog-loading { min-height: 180px; display: grid; place-items: center; color: var(--muted); font-size: var(--font-ui); }
.balance-history-list { position: relative; display: grid; gap: 0; }
.balance-history-item { position: relative; display: grid; grid-template-columns: 16px 1fr; gap: 12px; padding: 0 0 17px; }
.balance-history-item:not(:last-child)::before { content: ""; position: absolute; top: 12px; bottom: -3px; left: 6px; width: 1px; background: #dfe7ea; }
.balance-history-item > i { z-index: 1; width: 13px; height: 13px; margin-top: 3px; border: 3px solid white; border-radius: 50%; background: #8a98a5; box-shadow: 0 0 0 1px #cbd5da; }
.balance-history-item > i.positive { background: #1ca88d; box-shadow: 0 0 0 1px #79caba; }.balance-history-item > i.negative { background: #e15c59; box-shadow: 0 0 0 1px #eda5a2; }
.balance-history-item > div { min-width: 0; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfd; }
.balance-history-item header { display: flex; align-items: flex-start; justify-content: space-between; gap: 13px; }.balance-history-item header > span { display: flex; flex-direction: column; }.balance-history-item header strong { font-size: var(--font-ui); }.balance-history-item header small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }.balance-history-item header > b { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; color: #147562; background: #e7f7f2; font-size: var(--font-caption); }.balance-history-item header > b.negative { color: #a43e3b; background: #fce9e8; }
.balance-history-movement { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }.balance-history-movement > span { display: flex; flex-direction: column; padding: 8px; border-radius: 8px; background: white; }.balance-history-movement small { color: #8b98a4; font-size: var(--font-micro); text-transform: uppercase; }.balance-history-movement strong { margin-top: 3px; font-size: var(--font-caption); }.balance-history-item p { margin: 9px 0 0; color: #5e7081; font-size: var(--font-caption); line-height: 1.45; }.balance-history-request { display: block; margin-top: 6px; color: var(--teal-dark); font-size: var(--font-caption); font-weight: 700; }.balance-history-empty { min-height: 190px; display: flex; align-items: center; justify-content: center; gap: 12px; color: #647585; }.balance-history-empty > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: #edf2f4; font-size: 18px; }.balance-history-empty > div, .balance-history-empty.error { display: flex; flex-direction: column; }.balance-history-empty strong { font-size: var(--font-ui); }.balance-history-empty small { margin-top: 4px; color: var(--muted); font-size: var(--font-caption); }

.power-safety-note { display: inline-flex; align-items: center; min-height: 31px; padding: 0 11px; border: 1px solid #d8c9ec; border-radius: 999px; color: #684994; background: #f7f2fd; font-size: var(--font-caption); font-weight: 800; }.power-catalogue { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 14px; }.power-catalogue article { min-width: 0; min-height: 115px; display: flex; flex-direction: column; padding: 13px; border: 1px solid #e1e7ea; border-radius: 11px; background: linear-gradient(145deg, #fff, #f8fafb); }.power-catalogue article > span { width: max-content; padding: 3px 6px; border-radius: 999px; color: #187362; background: #eaf8f4; font-size: var(--font-micro); font-weight: 800; text-transform: uppercase; }.power-catalogue strong { margin-top: 9px; font-size: var(--font-ui); line-height: 1.3; }.power-catalogue small { margin-top: 5px; color: var(--muted); font-size: var(--font-caption); line-height: 1.45; }.power-scope-grid { display: grid; gap: 13px; }.power-scope-grid .admin-table-toolbar > div { display: flex; flex-direction: column; }.power-scope-grid .admin-table-toolbar > div strong { font-size: var(--font-ui); }.power-scope-grid .admin-table-toolbar > div small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }.power-scope-grid .search-field { width: 220px; }.power-table { min-width: 850px; }.power-table th:nth-child(2) { width: 48%; }.individual-power-table th:nth-child(2) { width: auto; }.individual-power-table th:nth-child(3) { width: 40%; }.power-chip-list { display: flex; flex-wrap: wrap; gap: 4px; }.power-chip-list > span { padding: 4px 6px; border: 1px solid #c9e3dc; border-radius: 999px; color: #226f62; background: #f0f9f6; font-size: var(--font-caption); font-weight: 750; }.power-chip-list.direct > span { border-color: #d8caea; color: #6b4b92; background: #f7f2fd; }.power-chip-list em { color: #9aa5af; font-size: var(--font-caption); font-style: normal; }.power-table td > small { display: block; margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }.power-footnote { margin: 12px 3px 0; color: #7c8995; font-size: var(--font-caption); text-align: center; }.power-editor-note { display: grid; grid-template-columns: 29px 1fr; align-items: center; gap: 10px; margin-bottom: 16px; padding: 11px 12px; border: 1px solid #d8e5e1; border-radius: 10px; background: #f3faf8; }.power-editor-note > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: white; background: var(--teal); font-size: var(--font-ui); font-weight: 800; }.power-editor-note p { display: flex; flex-direction: column; margin: 0; }.power-editor-note strong { font-size: var(--font-ui); }.power-editor-note small { margin-top: 3px; color: #637970; font-size: var(--font-caption); line-height: 1.4; }.power-option-list { display: grid; gap: 7px; margin: 0; padding: 0; border: 0; }.power-option-list legend { margin-bottom: 4px; color: #34495b; font-size: var(--font-ui); font-weight: 800; }.power-option { min-height: 72px; display: grid; grid-template-columns: 0 30px 1fr auto; align-items: center; gap: 10px; padding: 10px 12px; overflow: hidden; border: 1px solid #dce4e8; border-radius: 11px; background: white; cursor: pointer; }.power-option:has(input:checked) { border-color: #87c6b9; background: #f0f9f6; box-shadow: inset 3px 0 0 var(--teal); }.power-option.inherited { border-color: #e0e4e8; background: #f5f7f8; cursor: default; box-shadow: none; }.power-option input { width: 1px; height: 1px; opacity: 0; }.power-check { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid #cbd6db; border-radius: 8px; color: transparent; background: #f5f7f8; font-size: var(--font-ui); font-weight: 800; }.power-option input:focus-visible + .power-check { outline: 2px solid var(--navy); outline-offset: 2px; }.power-option input:checked + .power-check { color: white; border-color: var(--teal); background: var(--teal); }.power-option.inherited .power-check { color: white; border-color: #8b98a5; background: #8b98a5; }.power-option > span:nth-of-type(2) { min-width: 0; display: flex; flex-direction: column; }.power-option strong { font-size: var(--font-ui); }.power-option small { margin-top: 4px; color: var(--muted); font-size: var(--font-caption); line-height: 1.4; }.power-option em { padding: 4px 7px; border-radius: 999px; color: #6b7885; background: #edf1f3; font-size: var(--font-micro); font-style: normal; font-weight: 800; white-space: nowrap; }

/* Administrator-only answer review */
.incorrect-answer-panel { margin-top: 17px; overflow: hidden; }.review-private-chip { align-self: center; padding: 5px 8px; border-radius: 999px; color: #6b4b92; background: #f2eafb; font-size: var(--font-caption); font-weight: 800; }.incorrect-answer-list { display: grid; gap: 9px; padding: 17px 20px 20px; border-top: 1px solid var(--line); }.incorrect-answer-card { padding: 14px; border: 1px solid #eed0ce; border-radius: 11px; background: #fffafa; }.incorrect-answer-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #a34a47; }.incorrect-answer-card > header span { font-size: var(--font-caption); font-weight: 800; letter-spacing: .08em; }.incorrect-answer-card > header small { font-size: var(--font-caption); }.incorrect-answer-card h4 { margin: 8px 0 12px; color: #273d50; font-size: var(--font-body-small); line-height: 1.45; }.answer-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.answer-comparison > div { min-width: 0; display: flex; flex-direction: column; padding: 10px; border-radius: 9px; }.answer-comparison span { font-size: var(--font-micro); font-weight: 800; text-transform: uppercase; }.answer-comparison strong { margin-top: 4px; font-size: var(--font-caption); line-height: 1.4; overflow-wrap: anywhere; }.given-answer { color: #8f3e3b; background: #fce9e8; }.correct-answer { color: #176f60; background: #eaf8f4; }.all-answers-correct { min-height: 135px; display: flex; align-items: center; justify-content: center; gap: 12px; border-top: 1px solid var(--line); }.all-answers-correct > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--teal); }.all-answers-correct > div { display: flex; flex-direction: column; }.all-answers-correct strong { font-size: var(--font-ui); }.all-answers-correct small { margin-top: 4px; color: var(--muted); font-size: var(--font-caption); }

@media (max-width: 1050px) {
  .power-catalogue { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .power-catalogue { grid-template-columns: 1fr; }.power-catalogue article { min-height: 0; }.power-scope-grid .admin-table-toolbar { align-items: stretch; flex-direction: column; }.power-scope-grid .search-field { width: 100%; }.answer-comparison, .balance-history-movement { grid-template-columns: 1fr; }.balance-history-dialog, .power-dialog { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 18px 18px 0 0; }.balance-history-shell, .power-dialog > form { max-height: calc(100vh - 16px); }.power-option { grid-template-columns: 0 30px 1fr; }.power-option em { grid-column: 2 / -1; width: max-content; margin-top: -3px; }
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: Tahoma, Arial, sans-serif; font-size: 16px; }
button, input, select, textarea { font: inherit; }
small { font-size: var(--font-caption); line-height: 1.4; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 232px; display: flex; flex-direction: column; color: #dce7ee; background: var(--navy); padding: 26px 18px 20px; z-index: 20; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 9px 29px; }
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1; }
.brand strong { color: white; font: 800 20px/1 Tahoma, Arial, sans-serif; letter-spacing: .08em; }
.brand small { margin-top: 6px; font-size: var(--font-caption); font-weight: 700; letter-spacing: .18em; color: #8eb1be; }
.brand-logo { width: 78px; height: auto; display: block; flex: 0 0 auto; border-radius: 9px; background: #000; box-shadow: 0 8px 18px rgba(0,0,0,.2); }
.brand-mark { width: 38px; height: 38px; padding: 8px; border-radius: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: linear-gradient(145deg, #25b49c, #117a6b); box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.brand-mark i { background: #fff; border-radius: 2px; opacity: .95; }
.main-nav { display: grid; gap: 6px; }
.main-nav a { min-height: 48px; display: flex; align-items: center; gap: 13px; padding: 0 13px; border-radius: 11px; font-weight: 600; color: #9fb5c3; transition: .2s ease; }
.main-nav a:hover { color: white; background: rgba(255,255,255,.05); }
.main-nav a.active { color: white; background: rgba(35, 178, 154, .16); box-shadow: inset 3px 0 #2ac0a7; }
.nav-icon { width: 22px; font-size: 19px; line-height: 1; text-align: center; }
.sidebar-foot { margin-top: auto; display: flex; align-items: center; gap: 10px; padding: 14px 10px 2px; border-top: 1px solid rgba(255,255,255,.09); }
.sidebar-foot > span:last-child { display: flex; flex-direction: column; }
.sidebar-foot strong { color: #dce7ee; font-size: var(--font-body-small); }
.sidebar-foot small { margin-top: 3px; color: #718d9f; font-size: var(--font-ui); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: #2ad1a9; box-shadow: 0 0 0 5px rgba(42,209,169,.12); }

.main-area { grid-column: 2; min-width: 0; }
.topbar { height: 94px; padding: 0 34px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.92); }
.topbar h1 { margin: 3px 0 0; font: 800 24px/1.2 Tahoma, Arial, sans-serif; letter-spacing: -.03em; }
.eyebrow { color: var(--teal); font-size: var(--font-ui); font-weight: 700; letter-spacing: .16em; }
.profile-chip { display: flex; align-items: center; gap: 10px; min-width: 166px; padding: 7px 10px 7px 7px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.avatar, .person-avatar { display: grid; place-items: center; border-radius: 10px; font-weight: 700; }
.avatar { width: 35px; height: 35px; color: white; background: linear-gradient(145deg, #1ba088, #0f6c61); font-size: var(--font-body-small); }
.profile-chip > span:nth-child(2) { display: flex; flex: 1; flex-direction: column; }
.profile-chip strong { font-size: 12px; }
.profile-chip small { color: var(--muted); font-size: var(--font-ui); margin-top: 2px; }
.profile-chip b { color: #8d99a8; }
.page-content { padding: 29px 34px 44px; }

.rota-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; padding: 5px 9px; color: #147264; background: #e5f6f1; border-radius: 999px; font-size: var(--font-ui); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.status-pill i { width: 6px; height: 6px; background: #1db294; border-radius: 50%; }
.rota-hero h2 { margin: 9px 0 4px; font: 800 28px/1.2 Tahoma, Arial, sans-serif; letter-spacing: -.04em; }
.rota-hero p { margin: 0; color: var(--muted); }
.hero-actions { display: flex; gap: 8px; }
.button { min-height: 39px; border: 0; border-radius: 10px; padding: 0 15px; cursor: pointer; font-weight: 700; font-size: 12px; }
.button.ghost { color: #405267; border: 1px solid #dfe5eb; background: white; }
.button.primary { color: white; background: var(--teal); box-shadow: 0 7px 18px rgba(22,139,122,.2); }
.button.danger { color: white; background: #bd4b48; box-shadow: 0 7px 18px rgba(189,75,72,.18); }.button.danger:hover { background: #a43e3b; }

.summary-strip { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); margin: 25px 0 18px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.summary-strip > div { min-height: 86px; display: flex; align-items: center; gap: 13px; padding: 18px 21px; border-right: 1px solid var(--line); }
.summary-strip > div:last-child { border: 0; }
.summary-strip > div > span:last-child { display: flex; flex-direction: column; }
.summary-strip strong { font: 800 19px/1.1 Tahoma, Arial, sans-serif; }
.summary-strip small { margin-top: 4px; color: var(--muted); font-size: var(--font-body-small); }
.summary-icon { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 11px; font: 800 12px Tahoma, Arial, sans-serif; }
.summary-icon.day { background: #fff7cc; color: #8d6900; }
.summary-icon.night { background: #ffebea; color: #a83f3c; }
.summary-icon.leave { background: #eceef1; color: #4f5968; }
.summary-icon.open { background: #fff0e4; color: #bd631c; }

.rota-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.rota-card-head { height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid var(--line); }
.rota-card-head h3 { margin: 0 0 3px; font: 700 15px Tahoma, Arial, sans-serif; }
.rota-card-head span { color: var(--muted); font-size: var(--font-ui); }
.icon-button { border: 0; border-radius: 8px; color: #8190a0; background: transparent; font-weight: 700; letter-spacing: 2px; cursor: pointer; }
.rota-scroll { overflow: auto; scrollbar-color: #c7d0da transparent; }
.preview-grid { min-width: 1190px; display: grid; grid-template-columns: 190px repeat(14, minmax(68px, 1fr)); }
.staff-head, .date-head { height: 58px; position: sticky; top: 0; z-index: 4; background: #fbfcfd; border-bottom: 1px solid var(--line); }
.staff-head { left: 0; z-index: 6; display: flex; align-items: center; padding: 0 18px; border-right: 1px solid var(--line); }
.staff-head span, .date-head span { color: #8995a4; font-size: var(--font-ui); font-weight: 700; letter-spacing: .09em; }
.date-head { display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid #f0f2f5; }
.date-head strong { font: 700 14px Tahoma, Arial, sans-serif; }
.date-head span { margin-top: 3px; font-size: var(--font-caption); }
.date-head.weekend, .note-cell.weekend, .shift-cell.weekend { background: #f7f8fa; }
.date-head.today, .note-cell.today, .shift-cell.today { background: #eaf8f5; }
.date-head.today::after { content: ""; position: absolute; bottom: 0; width: 22px; height: 3px; border-radius: 3px 3px 0 0; background: var(--teal); }
.date-head.bank-holiday { color: #6f5200; background: #fff2bd; box-shadow: inset 0 -3px #c89422; }
.bank-holiday-badge { position: absolute; top: 5px; right: 5px; min-width: 18px; height: 14px; display: grid; place-items: center; padding: 0 3px; border-radius: 5px; color: white; background: #9b741f; font-size: var(--font-micro); font-style: normal; font-weight: 800; letter-spacing: .04em; }
.note-label, .note-cell { min-height: 54px; border-bottom: 1px solid var(--line); background: #fffdf7; }
.note-label { position: sticky; left: 0; z-index: 3; display: flex; align-items: center; padding: 0 18px; border-right: 1px solid var(--line); color: #8c6c2d; font-size: var(--font-ui); font-weight: 700; }
.note-cell { padding: 8px 6px; border-right: 1px solid #f0f2f5; text-align: center; }
.note-cell span { display: block; color: #956823; font-size: var(--font-caption); line-height: 1.25; }
.note-cell.bank-holiday, .shift-cell.bank-holiday { background: #fffaf0; box-shadow: inset 0 3px rgba(177,132,31,.2); }
.note-cell .day-holiday-title { display: block; color: #765714; font-size: var(--font-caption); font-weight: 800; line-height: 1.2; }
.note-cell .day-note-text { margin-top: 4px; color: #7d6f4c; }
.staff-cell, .shift-cell { min-height: 67px; border-bottom: 1px solid var(--line); background: white; }
.staff-cell { position: sticky; left: 0; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 0 14px; border-right: 1px solid var(--line); }
.staff-cell > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.staff-cell strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.staff-cell small { margin-top: 3px; color: #8a96a5; font-size: var(--font-ui); }
.person-avatar { flex: 0 0 auto; width: 33px; height: 33px; font-size: var(--font-ui); }
.person-avatar.clay { color: #935e3f; background: #f5dfcf; }.person-avatar.teal { color: #147363; background: #d9f0ea; }.person-avatar.blue { color: #3e6c9c; background: #dceafa; }.person-avatar.violet { color: #68529d; background: #e8e1f8; }
.shift-cell { position: relative; display: grid; place-items: center; border-right: 1px solid #f0f2f5; padding: 7px; }
.shift { width: 100%; min-height: 36px; display: grid; place-items: center; border-radius: 8px; font: 800 var(--font-ui) Tahoma, Arial, sans-serif; }
.shift.day, .key.day { color: #6d5200; background: var(--day); }.shift.night, .key.night { color: #812b2a; background: var(--night); }.shift.leave, .key.leave { color: white; background: var(--leave); }.shift.owed, .key.owed { color: #214f7a; background: var(--owed); }.shift.swap, .key.swap { color: white; background: var(--swap); }.shift.unfilled { color: #6d5200; background: #fff078; }.shift.unfilled.danger { color: #8d2e2b; background: #ff8a84; }
.confirmed { position: absolute; right: 4px; bottom: 4px; width: 15px; height: 15px; display: grid; place-items: center; border: 2px solid white; border-radius: 50%; color: white; background: var(--teal); font-size: var(--font-caption); font-style: normal; box-shadow: 0 1px 3px rgba(0,0,0,.16); }
.legend { min-height: 63px; display: flex; flex-wrap: wrap; align-items: center; gap: 19px; padding: 13px 21px; border-top: 1px solid var(--line); color: #657488; font-size: var(--font-ui); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.key { width: 12px; height: 12px; display: inline-block; border-radius: 4px; }
.confirmed-key { width: 14px; height: 14px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--teal); font-size: var(--font-caption); font-style: normal; }
.position-change-legend-key { width: 15px; height: 15px; display: grid; place-items: center; border: 1px solid #a9d9cf; border-radius: 5px; color: #087765; background: #e3f7f2; font-size: var(--font-ui); font-style: normal; font-weight: 900; line-height: 1; }

@media (max-width: 900px) {
  .app-shell { grid-template-columns: 72px minmax(0, 1fr); }
  .sidebar { width: 72px; padding-inline: 10px; }
  .brand { padding-inline: 7px; justify-content: center; }.brand .brand-logo { width: 48px; }.brand > span:last-child, .main-nav a span:last-child, .sidebar-foot > span:last-child { display: none; }
  .main-nav a { justify-content: center; padding: 0; }.nav-icon { width: auto; }.sidebar-foot { justify-content: center; }
  .main-area { grid-column: 2; }
  .summary-strip { grid-template-columns: repeat(2, 1fr); }.summary-strip > div:nth-child(2) { border-right: 0; }.summary-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 620px) {
  .app-shell { display: block; padding-bottom: 68px; }
  .sidebar { inset: auto 0 0; width: 100%; height: 64px; flex-direction: row; align-items: center; padding: 7px 10px; border-top: 1px solid rgba(255,255,255,.08); }
  .brand, .sidebar-foot { display: none; }.main-nav { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); }.main-nav a { min-height: 48px; flex-direction: column; gap: 3px; border-radius: 9px; font-size: var(--font-ui); }.main-nav a span:last-child { display: block; }.nav-icon { font-size: 16px; }.main-nav a.active { box-shadow: inset 0 -2px #2ac0a7; }
  .main-area { min-width: 0; }.topbar { height: 78px; padding: 0 18px; }.topbar h1 { font-size: 21px; }.profile-chip { min-width: auto; border: 0; padding: 0; }.profile-chip > span:nth-child(2), .profile-chip b { display: none; }
  .page-content { padding: 21px 14px 28px; }.rota-hero { align-items: flex-start; }.rota-hero p { max-width: 220px; }.hero-actions .ghost { display: none; }.button.primary { padding: 0 12px; }.rota-hero h2 { font-size: 23px; }
  .summary-strip { grid-template-columns: 1fr 1fr; }.summary-strip > div { min-height: 72px; padding: 13px; }.summary-icon { width: 32px; height: 32px; }.summary-strip strong { font-size: 16px; }
  .rota-card-head { padding: 0 15px; }.legend { gap: 12px; padding-inline: 15px; }
}

/* Application shell and shared overlays */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }
.topbar { position: relative; z-index: 12; }
.topbar-actions { display: flex; align-items: center; gap: 9px; }
.topbar-icon { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 11px; color: #536579; background: white; cursor: pointer; font-size: 18px; }
.profile-chip { cursor: pointer; text-align: left; }
.overlay-popover { position: fixed; z-index: 90; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 20px 60px rgba(13, 34, 54, .18); }
.profile-menu { top: 77px; right: 34px; width: 236px; padding: 8px; }
.profile-menu-head { display: flex; flex-direction: column; padding: 12px 12px 13px; border-bottom: 1px solid var(--line); margin-bottom: 5px; }
.profile-menu-head strong { font-size: 13px; }.profile-menu-head span { margin-top: 3px; color: var(--muted); font-size: var(--font-ui); }
.profile-menu a, .profile-menu button { width: 100%; min-height: 39px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; border: 0; border-radius: 9px; background: transparent; color: #3a4d61; cursor: pointer; font-weight: 600; font-size: var(--font-body-small); }
.profile-menu a:hover, .profile-menu button:hover { background: #f3f7f8; color: var(--teal-dark); }
.command-hint { min-height: 39px; display: flex; justify-content: space-between; align-items: center; margin: 22px 4px 0; padding: 0 10px; color: #88a2b2; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(255,255,255,.035); cursor: pointer; font-size: var(--font-ui); }
kbd { min-width: 23px; padding: 3px 6px; border: 1px solid #d9dfe5; border-bottom-width: 2px; border-radius: 5px; color: #6b7787; background: #f8fafb; font: 600 var(--font-ui)/1.1 Tahoma, Arial, sans-serif; text-align: center; }
.command-hint kbd { border-color: rgba(255,255,255,.13); color: #8ba3b2; background: rgba(0,0,0,.14); }
.command-dialog { width: min(600px, calc(100vw - 28px)); max-height: min(620px, calc(100vh - 50px)); padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 18px; color: var(--ink); background: white; box-shadow: 0 30px 100px rgba(4, 23, 38, .32); }
dialog::backdrop { background: rgba(9, 27, 43, .52); backdrop-filter: blur(5px); }
.command-search { height: 68px; display: flex; align-items: center; gap: 13px; padding: 0 18px; border-bottom: 1px solid var(--line); }
.command-search > span { color: var(--teal); font-size: 22px; }.command-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); font-size: 16px; }.command-search input::placeholder { color: #9ba6b2; }
.command-results { display: grid; gap: 3px; padding: 9px; }
.command-results a { min-height: 58px; display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 11px; }
.command-results a:hover, .command-results a.selected { background: #edf8f5; }
.command-results a > span:nth-child(2) { display: flex; flex: 1; flex-direction: column; }.command-results strong { font-size: 12px; }.command-results small { margin-top: 3px; color: var(--muted); font-size: var(--font-ui); }
.command-glyph { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: #4f6578; background: #edf1f4; font-size: 16px; }.command-glyph.accent { color: #087867; background: #dff4ee; }
.command-results kbd { margin-left: auto; }.command-foot { height: 43px; display: flex; align-items: center; gap: 18px; padding: 0 17px; border-top: 1px solid var(--line); color: #8794a3; background: #fbfcfd; font-size: var(--font-ui); }.command-foot span { display: inline-flex; align-items: center; gap: 4px; }
.flash-banner { position: fixed; top: 104px; left: calc(232px + 50%); transform: translateX(-50%); z-index: 75; min-width: 280px; max-width: 520px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 14px; border: 1px solid #bfe7dc; border-radius: 11px; color: #155e54; background: #ecf9f5; box-shadow: 0 10px 35px rgba(13,45,40,.12); font-size: var(--font-body-small); font-weight: 600; }
.flash-banner button { border: 0; color: inherit; background: transparent; cursor: pointer; font-size: 17px; }
.toast-stack { position: fixed; right: 20px; bottom: 20px; z-index: 140; width: min(360px, calc(100vw - 28px)); display: grid; gap: 9px; pointer-events: none; }
.toast { display: grid; grid-template-columns: 27px 1fr auto; align-items: center; gap: 10px; padding: 12px 13px; border: 1px solid #dce4e9; border-radius: 12px; background: rgba(255,255,255,.97); box-shadow: 0 15px 45px rgba(9,31,49,.2); animation: toast-in .25s ease both; pointer-events: auto; }
.toast.removing { animation: toast-out .2s ease both; }.toast > i { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--teal); font-size: var(--font-body-small); font-style: normal; }.toast.error > i { background: #d94d4a; }.toast strong { display: block; font-size: var(--font-body-small); }.toast small { display: block; margin-top: 2px; color: var(--muted); font-size: var(--font-ui); }.toast button { border: 0; color: #8996a4; background: none; cursor: pointer; font-size: 16px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px) scale(.97); } } @keyframes toast-out { to { opacity: 0; transform: translateX(20px) scale(.96); } }
.button-link { display: inline-flex; align-items: center; justify-content: center; gap: 18px; }.button.dark { color: white; background: var(--navy); }.button.small { min-height: 34px; padding-inline: 12px; font-size: var(--font-ui); }.button.square { width: 39px; padding: 0; font-size: 18px; }
.text-button { border: 0; padding: 6px; color: var(--teal-dark); background: transparent; cursor: pointer; font-size: var(--font-body-small); font-weight: 700; }.danger-text { color: #bb4240 !important; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.page-intro, .welcome-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.page-intro h2, .welcome-row h2 { margin: 10px 0 4px; font: 800 27px/1.2 Tahoma, Arial, sans-serif; letter-spacing: -.035em; }.page-intro p, .welcome-row p { margin: 0; color: var(--muted); }
.narrow-content { max-width: 930px; }

/* Sign in */
.login-body { min-height: 100vh; overflow-x: hidden; background: #fff; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, 46%) 1fr; }
.login-brand-panel { position: relative; overflow: hidden; min-height: 100vh; display: flex; flex-direction: column; padding: 38px clamp(38px, 5vw, 76px); color: white; background: radial-gradient(circle at 85% 22%, rgba(35,185,159,.23), transparent 30%), radial-gradient(circle at 5% 90%, rgba(51,116,156,.25), transparent 32%), linear-gradient(150deg, #102e49 0%, #0d2439 60%, #091d2f 100%); }
.login-brand-panel::before, .login-brand-panel::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.05); border-radius: 50%; }.login-brand-panel::before { width: 440px; height: 440px; right: -230px; top: 27%; }.login-brand-panel::after { width: 290px; height: 290px; right: -140px; top: 36%; }
.login-brand { padding: 0; position: relative; z-index: 2; }.login-brand .brand-logo { width: 112px; border-radius: 12px; }.login-message { position: relative; z-index: 2; max-width: 520px; margin: clamp(60px, 10vh, 120px) 0 40px; }
.login-message .status-pill { color: #8be1d0; background: rgba(36,178,154,.13); }.login-message h1 { margin: 20px 0 17px; font: 800 clamp(36px, 4.3vw, 58px)/1.07 Tahoma, Arial, sans-serif; letter-spacing: -.055em; }.login-message p { max-width: 470px; margin: 0; color: #a9bfcc; font-size: 15px; line-height: 1.65; }
.login-preview-card { position: relative; z-index: 2; width: min(440px, 100%); margin-top: auto; padding: 19px; border: 1px solid rgba(255,255,255,.11); border-radius: 17px; background: rgba(255,255,255,.07); box-shadow: 0 24px 60px rgba(0,0,0,.18); backdrop-filter: blur(12px); }
.mini-card-top { display: flex; justify-content: space-between; padding-bottom: 13px; color: #9fb5c3; font-size: var(--font-ui); }.mini-card-top b { color: #dce8ee; font-weight: 600; }.mini-shift { display: grid; grid-template-columns: 35px 1fr 45px; align-items: center; gap: 10px; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.08); }.mini-shift > span:nth-child(2) { display: flex; flex-direction: column; }.mini-shift strong { color: white; font-size: var(--font-body-small); }.mini-shift small { margin-top: 3px; color: #8ba5b4; font-size: var(--font-ui); }.mini-shift .shift { min-height: 31px; }.mini-status { display: flex; justify-content: space-between; padding-top: 11px; border-top: 1px solid rgba(255,255,255,.08); color: #83d8c8; font-size: var(--font-ui); }.mini-status span { display: inline-flex; align-items: center; gap: 6px; }.mini-status i { width: 6px; height: 6px; border-radius: 50%; background: #2ac6a8; }.mini-status small { color: #728e9e; }
.login-copyright { position: absolute; bottom: 19px; left: clamp(38px, 5vw, 76px); color: #547184; font-size: var(--font-caption); letter-spacing: .08em; }
.login-form-panel { display: grid; place-items: center; padding: 50px clamp(28px, 7vw, 100px); background: #fff; }
.login-form-wrap { width: min(390px, 100%); }.login-form-wrap > h2 { margin: 8px 0 5px; font: 800 30px Tahoma, Arial, sans-serif; letter-spacing: -.04em; }.login-form-wrap > p { margin: 0 0 26px; color: var(--muted); }
.mobile-login-brand { display: none; }.form-alert { display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 9px; margin-bottom: 18px; padding: 11px; border: 1px solid #f1c5c3; border-radius: 10px; color: #943c39; background: #fff3f2; }.form-alert > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: white; background: #d95753; font-weight: 800; }.form-alert p { margin: 0; font-size: var(--font-ui); line-height: 1.4; }
.login-form { display: grid; }.login-form > label { margin: 14px 0 6px; color: #35495c; font-size: var(--font-ui); font-weight: 700; }.input-wrap { min-height: 49px; display: flex; align-items: center; gap: 10px; padding: 0 13px; border: 1px solid #dce3e8; border-radius: 11px; background: #fbfcfd; transition: .2s ease; }.input-wrap:focus-within { border-color: #3aa893; background: white; box-shadow: 0 0 0 3px rgba(22,139,122,.09); }.input-wrap > span { width: 16px; color: #8d99a6; font-size: var(--font-ui); text-align: center; }.input-wrap input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; }.input-wrap button { border: 0; color: var(--teal-dark); background: transparent; cursor: pointer; font-size: var(--font-ui); font-weight: 700; }
.login-submit { min-height: 50px; justify-content: space-between; margin-top: 24px; padding-inline: 19px; }.login-submit b { font-size: 17px; }.login-help { margin: 21px 0 0 !important; text-align: center; font-size: var(--font-ui); line-height: 1.5; }

/* Overview */
.dashboard-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-bottom: 18px; }
.dashboard-stats article { min-height: 116px; display: flex; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: var(--shadow); }.dashboard-stats article > div { min-width: 0; display: grid; }.dashboard-stats article small { color: var(--muted); font-size: var(--font-ui); }.dashboard-stats article strong { margin: 3px 0 2px; font: 800 24px Tahoma, Arial, sans-serif; }.dashboard-stats article span:last-child { color: #96a0ac; font-size: var(--font-caption); }.dashboard-stats .summary-icon { flex: 0 0 auto; }.summary-icon.published { color: #15705f; background: #dff5ef; }.status-word { font-size: 20px !important; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr); gap: 18px; }.panel-head { min-height: 72px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid var(--line); }.panel-head h3 { margin: 4px 0 0; font: 700 15px Tahoma, Arial, sans-serif; }.panel-head > a { color: var(--teal-dark); font-size: var(--font-ui); font-weight: 700; }.panel-head > a span { margin-left: 4px; }
.today-list, .activity-list { padding: 5px 16px 12px; }.today-list article { min-height: 64px; display: grid; grid-template-columns: 37px 1fr 47px 16px; align-items: center; gap: 10px; padding: 8px 3px; border-bottom: 1px solid #eef1f4; }.today-list article:last-child { border: 0; }.today-list article > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }.today-list strong { overflow: hidden; font-size: var(--font-body-small); text-overflow: ellipsis; white-space: nowrap; }.today-list small { margin-top: 3px; color: var(--muted); font-size: var(--font-ui); }.dynamic-shift { min-height: 31px; display: grid; place-items: center; border-radius: 8px; color: var(--shift-fg); background: var(--shift-bg); font-size: var(--font-ui); }.row-confirmed { width: 15px; height: 15px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--teal); font-size: var(--font-caption); font-style: normal; }
.activity-list article { min-height: 58px; display: grid; grid-template-columns: 13px 1fr; gap: 9px; padding: 10px 1px; border-bottom: 1px solid #eef1f4; }.activity-list article:last-child { border: 0; }.activity-dot { width: 8px; height: 8px; margin-top: 4px; border: 2px solid #b7e5da; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 3px #edf8f5; }.activity-list strong { display: block; font-size: var(--font-ui); line-height: 1.35; }.activity-list small { display: block; margin-top: 4px; color: var(--muted); font-size: var(--font-caption); }
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }.empty-state.compact { min-height: 175px; }.empty-state > span { width: 36px; height: 36px; display: grid; place-items: center; margin-bottom: 9px; border-radius: 11px; color: var(--teal-dark); background: #e4f5f1; font-size: 16px; }.empty-state strong { font-size: var(--font-body-small); }.empty-state p { max-width: 260px; margin: 4px 0 0; color: var(--muted); font-size: var(--font-ui); }
.tools-section { margin-top: 28px; }.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 12px; }.section-heading h3 { margin: 4px 0 0; font: 700 17px Tahoma, Arial, sans-serif; }.section-heading > a { color: var(--teal-dark); font-size: var(--font-ui); font-weight: 700; }.tool-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }.tool-card { min-height: 142px; display: flex; flex-direction: column; align-items: flex-start; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: white; }.tool-card:hover.available { transform: translateY(-2px); border-color: #b9ded5; box-shadow: var(--shadow); }.tool-card > span:nth-child(2) { display: grid; margin-top: 13px; }.tool-card strong { font-size: var(--font-body-small); }.tool-card small { margin-top: 4px; color: var(--muted); font-size: var(--font-ui); }.tool-card b { margin-top: auto; padding-top: 13px; color: #97a2ad; font-size: var(--font-caption); text-transform: uppercase; letter-spacing: .05em; }.tool-card.available b { color: var(--teal-dark); }.tool-glyph { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; font-size: 15px; }.teal-tool { color: #0e7665; background: #def4ef; }.blue-tool { color: #326b98; background: #e1eef8; }.amber-tool { color: #9c681e; background: #fff0d8; }.violet-tool { color: #6a4e98; background: #ece5f8; }

/* Team, tools and account foundations */
.team-directory { overflow: hidden; }.directory-toolbar { min-height: 75px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 20px; border-bottom: 1px solid var(--line); }.search-field { min-width: 220px; display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid #dfe5ea; border-radius: 9px; background: #fafbfc; }.search-field span { color: #8d99a6; }.search-field input { width: 100%; height: 36px; border: 0; outline: 0; background: transparent; font-size: var(--font-ui); }.filter-chips { display: flex; gap: 5px; overflow-x: auto; }.filter-chips button { min-height: 32px; padding: 0 10px; border: 1px solid #e1e6ea; border-radius: 8px; color: #667486; background: white; cursor: pointer; font-size: var(--font-ui); font-weight: 700; white-space: nowrap; }.filter-chips button.active { color: #0e6e60; border-color: #bbe2d9; background: #eaf7f4; }
.directory-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }.directory-grid article { min-height: 188px; display: grid; grid-template-columns: 42px 1fr auto; align-content: start; align-items: center; gap: 11px; padding: 20px; background: white; }.directory-grid article > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }.directory-grid article strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.directory-grid article small { margin-top: 3px; color: var(--muted); font-size: var(--font-ui); }.directory-grid dl { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 19px 0 0; padding-top: 13px; border-top: 1px solid #edf0f2; }.directory-grid dl div { display: grid; }.directory-grid dt { color: #95a0ac; font-size: var(--font-caption); }.directory-grid dd { margin: 4px 0 0; font-size: var(--font-ui); font-weight: 700; }.role-badge { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 999px; color: #4e5c6c; background: #edf0f3; font-size: var(--font-caption); font-weight: 700; }.role-administrator { color: #6a4d17; background: #fff0c6; }.role-supervisor { color: #116b5e; background: #dff5f0; }.role-manager { color: #3e6090; background: #e3edf9; }.active-text { color: #16816f; }.inactive-text { color: #b04644; }.avatar-1 { color: #935e3f; background: #f5dfcf; }.avatar-2 { color: #147363; background: #d9f0ea; }.avatar-3 { color: #3e6c9c; background: #dceafa; }.avatar-4 { color: #68529d; background: #e8e1f8; }.directory-empty { min-height: 250px; }
.large-tool-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }.large-tool-card { position: relative; min-height: 265px; display: flex; flex-direction: column; align-items: flex-start; padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 8px 25px rgba(20,38,59,.04); }.large-tool-card.ready { border-color: #c7e5dd; background: linear-gradient(145deg, white, #f3fbf9); }.large-tool-card.ready:hover { transform: translateY(-3px); box-shadow: var(--shadow); }.large-tool-icon { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 13px; color: #556779; background: #edf1f4; font-size: 19px; }.ready .large-tool-icon { color: #0f7665; background: #dff5ef; }.tool-state { position: absolute; top: 24px; right: 22px; color: #117361; font-size: var(--font-caption); font-weight: 800; letter-spacing: .11em; }.tool-state.planned { color: #9aa4ae; }.large-tool-card h3 { margin: 22px 0 7px; font: 700 17px Tahoma, Arial, sans-serif; }.large-tool-card p { margin: 0; color: var(--muted); font-size: var(--font-body-small); line-height: 1.55; }.large-tool-card > div { width: 100%; display: flex; justify-content: space-between; margin-top: auto; padding-top: 22px; color: #93a0ac; border-top: 1px solid #edf0f2; font-size: var(--font-ui); font-weight: 700; }.ready > div { color: var(--teal-dark); }.suggestion-card { color: white; border: 0; background: linear-gradient(145deg, #183a56, #102a43); }.suggestion-card .large-tool-icon { color: white; background: rgba(255,255,255,.12); }.suggestion-card p { color: #a9bdca; }.suggestion-card > div { color: #7ed7c5; border-color: rgba(255,255,255,.1); }
.account-card { overflow: hidden; }.account-identity { display: flex; align-items: center; gap: 17px; padding: 27px; border-bottom: 1px solid var(--line); background: linear-gradient(100deg, #f8fbfc, white); }.large-avatar { width: 60px; height: 60px; border-radius: 16px; font-size: 17px; }.account-identity h3 { margin: 0; font: 700 18px Tahoma, Arial, sans-serif; }.account-identity p { margin: 3px 0 8px; color: var(--muted); font-size: var(--font-ui); }.account-details { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 24px 27px; }.account-details div { display: grid; gap: 5px; }.account-details dt { color: var(--muted); font-size: var(--font-ui); }.account-details dd { margin: 0; font-size: var(--font-body-small); font-weight: 700; }.account-note { display: flex; align-items: flex-start; gap: 10px; margin: 0 27px 27px; padding: 13px; border-radius: 10px; color: #526779; background: #eef5f7; }.account-note span { flex: 0 0 auto; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: white; background: #55889a; font: 700 var(--font-ui) Tahoma, Arial, sans-serif; }.account-note p { margin: 1px 0 0; font-size: var(--font-ui); line-height: 1.5; }.not-found-card { min-height: 520px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }.not-found-card > span { color: #cdd5dc; font: 800 72px Tahoma, Arial, sans-serif; }.not-found-card h2 { margin: 5px 0 8px; font: 700 22px Tahoma, Arial, sans-serif; }.not-found-card p { margin: 0 0 22px; color: var(--muted); }

/* Interactive rota */
.rota-page { --staff-column: 190px; --day-column: 70px; }.rota-hero-actions { align-items: center; }.month-switcher { display: flex; gap: 5px; }.edit-console { min-height: 69px; display: grid; grid-template-columns: minmax(220px, .8fr) minmax(350px, 1.3fr) auto; align-items: center; gap: 17px; margin: 20px 0 -7px; padding: 10px 13px 10px 16px; border: 1px solid #bfe4db; border-radius: 13px; background: #eaf8f5; box-shadow: 0 10px 30px rgba(11,95,81,.07); }.edit-console-copy { display: flex; align-items: center; gap: 10px; }.edit-console-copy > div { display: flex; flex-direction: column; }.edit-console-copy strong { color: #0d6759; font-size: var(--font-body-small); }.edit-console-copy small { margin-top: 3px; color: #5c807a; font-size: var(--font-caption); line-height: 1.3; }.edit-live-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: #18aa8f; box-shadow: 0 0 0 5px rgba(24,170,143,.12); }.paint-palette { min-width: 0; display: flex; align-items: center; gap: 5px; overflow-x: auto; scrollbar-width: none; }.paint-palette::-webkit-scrollbar { display: none; }.paint-option { flex: 0 0 auto; min-width: 33px; height: 33px; display: grid; place-items: center; border: 2px solid transparent; border-radius: 9px; color: var(--paint-fg); background: var(--paint-bg); box-shadow: inset 0 0 0 1px rgba(20,38,59,.08); cursor: pointer; font-size: var(--font-ui); font-weight: 800; }.paint-option:hover { transform: translateY(-1px); }.paint-option.selected { border-color: white; outline: 2px solid var(--navy); box-shadow: 0 0 0 3px rgba(16,42,67,.1); }.paint-option[data-code=""] { color: #7e8b99; border: 1px dashed #aeb8c1; background: white; }.edit-console-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; white-space: nowrap; }.rota-history-actions { display: inline-flex; align-items: center; gap: 4px; padding-right: 7px; border-right: 1px solid #c8e4dd; }.rota-history-button { min-width: 67px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: #176f62 !important; border-color: #bcded6 !important; background: rgba(255,255,255,.75) !important; }.rota-history-button > span { font-size: 15px; line-height: 1; }.rota-history-button:not(:disabled):hover { border-color: #75b8a9 !important; background: white !important; transform: translateY(-1px); }.rota-history-button:disabled { cursor: not-allowed; opacity: .42; box-shadow: none; }
.rota-summary { margin-top: 25px; }.interactive-rota-card { position: relative; min-height: 420px; }.interactive-head { position: relative; z-index: 7; }.rota-view-tools { display: flex; align-items: center; gap: 7px; }.compact-search { width: 175px; height: 34px; display: flex; align-items: center; gap: 6px; padding: 0 9px; border: 1px solid #e1e6ea; border-radius: 8px; background: #fafbfc; }.compact-search span { font-size: 13px; }.compact-search input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; font-size: var(--font-ui); }.icon-button.framed { height: 34px; padding: 0 10px; border: 1px solid #e1e6ea; font-size: var(--font-ui); letter-spacing: normal; }.rota-loading { min-height: 350px; display: flex; flex-direction: column; align-items: center; justify-content: center; }.rota-loading strong { margin-top: 13px; font-size: var(--font-body-small); }.rota-loading small { margin-top: 4px; color: var(--muted); font-size: var(--font-ui); }.loading-mark { width: 43px; height: 43px; padding: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; border-radius: 13px; background: #e3f5f0; animation: loading-pulse 1.2s ease-in-out infinite; }.loading-mark i { border-radius: 3px; background: var(--teal); }.loading-mark i:nth-child(2), .loading-mark i:nth-child(3) { opacity: .45; } @keyframes loading-pulse { 50% { transform: scale(.94); opacity: .65; } }
.rota-scroll { max-height: min(68vh, 780px); overscroll-behavior: contain; }.rota-grid { min-width: max-content; display: grid; grid-template-columns: var(--staff-column) repeat(var(--day-count), var(--day-column)); }.rota-grid .staff-head, .rota-grid .date-head { top: 0; }.rota-grid .staff-head { width: var(--staff-column); }.rota-grid .date-head { width: var(--day-column); }.date-head.note-button, .note-cell.note-button { cursor: pointer; }.date-head.note-button:hover, .note-cell.note-button:hover { background: #f0faf7; }.date-head.has-note::before { content: ""; position: absolute; top: 7px; right: 7px; width: 5px; height: 5px; border-radius: 50%; background: #dd8c2e; }.note-cell { overflow: hidden; cursor: default; }.note-cell button { width: 100%; height: 100%; min-height: 53px; display: block; overflow: hidden; padding: 7px 5px; border: 0; color: #956823; background: transparent; cursor: pointer; font-size: var(--font-caption); line-height: 1.25; text-overflow: ellipsis; }.note-cell button:hover { background: rgba(255,232,175,.22); }.note-label button { border: 0; color: inherit; background: transparent; cursor: default; font-size: inherit; font-weight: inherit; }
.date-head.bank-holiday.has-note::before { right: auto; left: 7px; }
.rota-grid .staff-cell, .rota-grid .shift-cell { min-height: 63px; }.rota-grid .staff-cell.filtered, .rota-grid .shift-cell.filtered { display: none; }.staff-cell .drag-handle { display: none; margin-left: auto; border: 0; color: #a4afb9; background: transparent; cursor: grab; font-size: 13px; }.editing .staff-cell .drag-handle { display: block; }.rota-cell-button { position: absolute; inset: 5px; width: calc(100% - 10px); height: calc(100% - 10px); display: grid; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 8px; color: #9aa4ae; background: transparent; cursor: default; }.editing .rota-cell-button { cursor: crosshair; }.rota-cell-button:hover, .rota-cell-button:focus-visible { z-index: 2; border-color: #8cc9bb; outline: 0; background: rgba(225,246,241,.65); }.rota-cell-button.empty::after { content: "+"; opacity: 0; color: #4f9788; font-size: 16px; }.editing .rota-cell-button.empty:hover::after, .rota-cell-button.empty:focus-visible::after { opacity: 1; }.cell-shift { width: 100%; height: 100%; min-height: 35px; display: grid; place-items: center; overflow: hidden; border-radius: 7px; color: var(--shift-fg); background: var(--shift-bg); box-shadow: inset 0 0 0 1px rgba(20,38,59,.06); font-size: var(--font-ui); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.cell-shift.pending { background-image: repeating-linear-gradient(135deg, transparent 0 6px, rgba(255,255,255,.32) 6px 10px); }.cell-flags { position: absolute; right: 3px; bottom: 3px; display: flex; gap: 2px; }.cell-flag { min-width: 14px; height: 14px; display: grid; place-items: center; padding: 0 3px; border: 1px solid white; border-radius: 5px; color: white; background: #52677a; box-shadow: 0 1px 3px rgba(0,0,0,.15); font-size: var(--font-micro); font-style: normal; font-weight: 800; }.cell-flag.confirmed-flag { border-radius: 50%; background: var(--teal); }.cell-note-dot { position: absolute; top: 3px; right: 3px; width: 6px; height: 6px; border: 1px solid white; border-radius: 50%; background: #db8326; }.cell-saving .cell-shift { opacity: .45; }.cell-saving::after { content: ""; position: absolute; width: 13px; height: 13px; border: 2px solid rgba(16,42,67,.2); border-top-color: var(--navy); border-radius: 50%; animation: spinner .6s linear infinite; } @keyframes spinner { to { transform: rotate(360deg); } }.cell-error { animation: cell-error .4s ease; } @keyframes cell-error { 50% { background: #ffe7e5; } }
.interactive-legend { position: relative; z-index: 4; background: white; }.legend-more { border: 0; color: var(--teal-dark); background: transparent; cursor: pointer; font-size: var(--font-ui); font-weight: 700; }.rota-help-strip { display: flex; flex-wrap: wrap; gap: 19px; margin: 11px 4px 0; color: #8793a1; font-size: var(--font-caption); }.rota-help-strip > div { display: flex; align-items: center; gap: 5px; }
.edit-console { position: relative; z-index: 12; overflow: visible; }
.paint-palette { overflow: visible; flex-wrap: wrap; }
.paint-option-group { position: relative; z-index: 1; flex: 0 0 33px; width: 33px; height: 33px; }
.paint-option-group:hover, .paint-option-group:focus-within { z-index: 30; }
.paint-option-group .paint-option:first-child { position: absolute; inset: 0; }
.paint-option-group .night-vacancy-option { position: absolute; top: calc(100% + 6px); left: 0; opacity: 0; pointer-events: none; transform: translateY(-5px) scale(.94); box-shadow: 0 8px 22px rgba(116,41,39,.28); transition: opacity .14s ease, transform .14s ease; }
.paint-option-group:hover .night-vacancy-option, .paint-option-group:focus-within .night-vacancy-option { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.paint-option-group::after { content: "Night position"; position: absolute; top: calc(100% + 10px); left: 40px; width: max-content; padding: 6px 8px; border-radius: 7px; color: white; background: #742927; box-shadow: 0 8px 22px rgba(20,38,59,.18); opacity: 0; pointer-events: none; transform: translateX(-4px); transition: opacity .14s ease, transform .14s ease; font-size: var(--font-caption); font-weight: 750; letter-spacing: .02em; }
.paint-option-group:hover::after, .paint-option-group:focus-within::after { opacity: 1; transform: translateX(0); }
.live-sync-status { display: inline-flex; align-items: center; gap: 5px; margin-left: 9px; color: #7b8996; font-size: var(--font-caption); font-weight: 700; vertical-align: middle; }
.live-sync-status i { width: 6px; height: 6px; border-radius: 50%; background: #d49a39; box-shadow: 0 0 0 3px rgba(212,154,57,.12); }
.live-sync-status.connected { color: #347c6f; }.live-sync-status.connected i { background: #20ae90; box-shadow: 0 0 0 3px rgba(32,174,144,.12); }
.live-sync-status.reconnecting i { background: #d16c5f; box-shadow: 0 0 0 3px rgba(209,108,95,.12); animation: live-pulse 1.2s ease-in-out infinite; }
@keyframes live-pulse { 50% { opacity: .35; transform: scale(.72); } }
.rota-total-label, .rota-total-cell { min-height: 31px; display: grid; place-items: center; border-bottom: 1px solid var(--line); border-right: 1px solid #edf0f2; font-size: var(--font-caption); font-weight: 800; }.rota-total-label { position: sticky; left: 0; z-index: 3; place-items: center start; padding-left: 18px; }.rota-total-label.day-total, .rota-total-cell.day-total { color: #725700; background: #fff5b8; }.rota-total-label.night-total, .rota-total-cell.night-total { color: #7a2b29; background: #ffd6d4; }.rota-total-cell.weekend { filter: saturate(.78) brightness(.98); }.rota-total-cell.today { box-shadow: inset 0 -3px var(--teal); }
.rota-total-cell.bank-holiday { box-shadow: inset 0 3px #b88a25; }
.rota-fullscreen-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }
.rota-fullscreen-button .fullscreen-icon { color: currentColor; font-size: 13px; line-height: 1; }
.rota-fullscreen-button[aria-pressed="true"] { color: #0e7767; border-color: #94cfc2; background: #edf9f6; }
body.rota-fullscreen-open { overflow: hidden; }
.rota-page:fullscreen, .rota-page.rota-fullscreen-fallback { width: 100vw; height: 100vh; min-height: 0; display: flex; flex-direction: column; gap: 10px; box-sizing: border-box; overflow: hidden; padding: 10px; background: #edf2f4; }
.rota-page.rota-fullscreen-fallback { position: fixed; inset: 0; z-index: 300; }
.rota-page:fullscreen::backdrop { background: #edf2f4; }
.rota-page:fullscreen > .rota-hero, .rota-page:fullscreen > .rota-summary, .rota-page:fullscreen > .month-announcement, .rota-page:fullscreen > .rota-help-strip, .rota-page.rota-fullscreen-fallback > .rota-hero, .rota-page.rota-fullscreen-fallback > .rota-summary, .rota-page.rota-fullscreen-fallback > .month-announcement, .rota-page.rota-fullscreen-fallback > .rota-help-strip { display: none; }
.rota-page:fullscreen > .edit-console, .rota-page.rota-fullscreen-fallback > .edit-console { flex: 0 0 auto; width: 100%; margin: 0; }
.rota-page:fullscreen > .interactive-rota-card, .rota-page.rota-fullscreen-fallback > .interactive-rota-card { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; border-radius: 13px; }
.rota-page:fullscreen .interactive-head, .rota-page.rota-fullscreen-fallback .interactive-head, .rota-page:fullscreen .rota-legend-shell, .rota-page.rota-fullscreen-fallback .rota-legend-shell { flex: 0 0 auto; }
.rota-page:fullscreen .rota-loading, .rota-page.rota-fullscreen-fallback .rota-loading { flex: 1 1 auto; min-height: 0; }
.rota-page:fullscreen .interactive-rota-card .rota-scroll, .rota-page.rota-fullscreen-fallback .interactive-rota-card .rota-scroll { flex: 1 1 auto; min-height: 0; max-height: none; overflow: auto; overscroll-behavior: contain; }
.month-announcement { display: flex; align-items: flex-start; gap: 9px; margin: 14px 0 -9px; padding: 11px 13px; border: 1px solid #edd9aa; border-radius: 10px; color: #705c2e; background: #fffaf0; font-size: var(--font-ui); }.month-announcement > span { flex: 0 0 auto; width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; color: white; background: #c4932c; font: 700 var(--font-ui) Tahoma, Arial, sans-serif; }.month-announcement p { margin: 2px 0 0; line-height: 1.45; }

/* Production form of the no-inner-scroll rota. The same live grid, editing
   controls and SSE transport remain in use; only its viewport behaviour swaps. */
.rota-layout-sticky:not(.rota-fullscreen-active) .interactive-rota-card { overflow: visible; isolation: isolate; }
.rota-layout-sticky:not(.rota-fullscreen-active) .interactive-head { position: sticky; top: 8px; z-index: 48; height: auto; min-height: 70px; gap: 10px; padding-block: 10px; border-radius: var(--radius) var(--radius) 0 0; background: #fff; box-shadow: 0 7px 17px rgba(18,42,65,.055); }
.rota-layout-sticky:not(.rota-fullscreen-active) .rota-view-tools { flex-wrap: wrap; justify-content: flex-end; }
.rota-layout-sticky:not(.rota-fullscreen-active) .rota-scroll { max-height: none; overflow: clip; scrollbar-width: none; }
.rota-layout-sticky .rota-sticky-shell { min-width: 0; display: grid; grid-template-columns: var(--staff-column) minmax(0,1fr); align-items: stretch; }
.rota-layout-sticky .rota-fixed-grid { position: relative; z-index: 12; width: var(--staff-column); min-width: 0; display: grid; grid-template-columns: var(--staff-column); align-content: start; border-right: 1px solid var(--line); background: white; }
.rota-layout-sticky .rota-day-pane { min-width: 0; }
.rota-layout-sticky .rota-day-head-clip { position: sticky; top: var(--rota-sticky-grid-top,78px); z-index: 40; min-width: 0; overflow: hidden; contain: paint; background: #fbfcfd; transform: translateZ(0); }
.rota-layout-sticky .rota-day-head-track { width: calc(var(--day-count) * var(--day-column)); min-width: calc(var(--day-count) * var(--day-column)); display: grid; grid-template-columns: repeat(var(--day-count),var(--day-column)); }
.rota-layout-sticky .rota-day-head-track .date-head { position: relative; top: auto; z-index: 1; width: var(--day-column); }
.rota-layout-sticky .rota-day-clip { min-width: 0; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; contain: paint; will-change: scroll-position; scrollbar-width: auto; scrollbar-color: #aebbc6 #edf1f4; transform: translateZ(0); }
.rota-layout-sticky .rota-day-clip::-webkit-scrollbar { height: 13px; }
.rota-layout-sticky .rota-day-clip::-webkit-scrollbar-track { background: #edf1f4; }
.rota-layout-sticky .rota-day-clip::-webkit-scrollbar-thumb { min-width: 42px; border: 3px solid #edf1f4; border-radius: 999px; background: #aebbc6; }
.rota-layout-sticky .rota-day-clip::-webkit-scrollbar-thumb:hover { background: #8f9eaa; }
@media (pointer: fine) {
  .rota-drag-ready { cursor: default; }
  .rota-drag-ready .rota-cell-button { cursor: default; }
  .editing .rota-drag-ready .rota-cell-button { cursor: crosshair; }
  .editing.selection-mode .rota-drag-ready .rota-cell-button { cursor: cell; }
  .editing .rota-drag-ready .note-button { cursor: pointer; }
}
.rota-drag-panning,.rota-drag-panning * { cursor: grabbing !important; user-select: none !important; }
.rota-drag-panning .rota-cell-button { pointer-events: none; }
.rota-layout-sticky .rota-sticky-shell .rota-day-grid { width: calc(var(--day-count) * var(--day-column)); min-width: calc(var(--day-count) * var(--day-column)); display: grid; grid-template-columns: repeat(var(--day-count),var(--day-column)); align-content: start; }
.rota-layout-sticky .rota-fixed-grid .staff-head { position: sticky; top: var(--rota-sticky-grid-top,78px); z-index: 42; width: var(--staff-column); }
.rota-layout-sticky .rota-fixed-grid .staff-cell,
.rota-layout-sticky .rota-fixed-grid .note-label,
.rota-layout-sticky .rota-fixed-grid .rota-total-label { position: relative; left: auto; width: var(--staff-column); z-index: 8; box-shadow: 1px 0 rgba(20,38,59,.06); }
.rota-layout-sticky .rota-fixed-grid .note-label,
.rota-layout-sticky .rota-day-grid .note-cell { height: 69px; min-height: 69px; }
.rota-layout-sticky .rota-fixed-grid .staff-cell,
.rota-layout-sticky .rota-day-grid .shift-cell { height: 63px; min-height: 63px; }
.rota-layout-sticky .rota-fixed-grid .rota-total-label,
.rota-layout-sticky .rota-day-grid .rota-total-cell { height: 31px; min-height: 31px; }
.rota-layout-sticky .rota-fixed-grid .staff-cell.filtered { display: none; }

/* Rota dialogs and floating overlays */
.overlay-dialog { width: min(760px, calc(100vw - 28px)); max-height: min(880px, calc(100vh - 30px)); padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 18px; color: var(--ink); background: white; box-shadow: 0 30px 100px rgba(4,23,38,.32); }.overlay-dialog > form, .staff-dialog-shell { max-height: min(880px, calc(100vh - 30px)); display: flex; flex-direction: column; }.entry-dialog { width: min(800px, calc(100vw - 28px)); }.small-dialog { width: min(560px, calc(100vw - 28px)); }.publish-dialog { width: min(650px, calc(100vw - 28px)); }.staff-dialog { width: min(940px, calc(100vw - 28px)); }
.dialog-head { flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; padding: 21px 23px 18px; border-bottom: 1px solid var(--line); }.dialog-kicker { color: var(--teal); font-size: var(--font-caption); font-weight: 800; letter-spacing: .13em; }.dialog-head h2 { margin: 5px 0 3px; font: 800 21px Tahoma, Arial, sans-serif; letter-spacing: -.035em; }.dialog-head p { margin: 0; color: var(--muted); font-size: var(--font-ui); }.dialog-close { flex: 0 0 auto; width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid #e1e6ea; border-radius: 9px; color: #7b8897; background: white; cursor: pointer; font-size: 18px; }.dialog-close:hover { color: var(--ink); background: #f5f7f9; }.dialog-body { min-height: 0; overflow-y: auto; padding: 21px 23px; }.dialog-foot { flex: 0 0 auto; min-height: 65px; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 7px; padding: 0 19px; border-top: 1px solid var(--line); background: #fbfcfd; }.dialog-foot .button { min-width: 90px; }
.shift-chooser, .modifier-grid, .status-choice { margin: 0; padding: 0; border: 0; }.shift-chooser legend, .modifier-grid legend, .status-choice legend { margin-bottom: 9px; color: #35495c; font-size: var(--font-ui); font-weight: 800; }.shift-chooser > div { display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; }.shift-choice { min-width: 0; min-height: 58px; position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 8px 9px; border: 2px solid transparent; border-radius: 10px; color: var(--choice-fg); background: var(--choice-bg); cursor: pointer; box-shadow: inset 0 0 0 1px rgba(20,38,59,.07); }.shift-choice strong { font-size: var(--font-ui); }.shift-choice small { max-width: 100%; margin-top: 2px; overflow: hidden; opacity: .72; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }.shift-choice.selected { border-color: white; outline: 2px solid var(--navy); box-shadow: 0 0 0 3px rgba(16,42,67,.1); }.shift-choice.clear-choice { color: #657486; border: 1px dashed #bdc6ce; background: #f8fafb; }
.form-grid { display: grid; gap: 12px; margin-top: 20px; }.form-grid.two-columns { grid-template-columns: 1fr 1fr; }.form-grid label, .stacked-field, .staff-add-panel label { display: flex; flex-direction: column; gap: 6px; color: #364a5d; font-size: var(--font-ui); font-weight: 700; }.form-grid input, .stacked-field textarea, .staff-add-panel input, .staff-add-panel select { width: 100%; border: 1px solid #dce3e8; border-radius: 9px; outline: 0; color: var(--ink); background: #fbfcfd; font-size: var(--font-ui); }.form-grid input, .staff-add-panel input, .staff-add-panel select { height: 42px; padding: 0 11px; }.stacked-field textarea { min-height: 108px; resize: vertical; padding: 11px; line-height: 1.5; }.form-grid input:focus, .stacked-field textarea:focus, .staff-add-panel input:focus, .staff-add-panel select:focus { border-color: #3aa893; background: white; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }.form-grid small, .stacked-field > small { color: #929da8; font-size: var(--font-caption); font-weight: 400; }.stacked-field > small { align-self: flex-end; }.stacked-field em { margin-left: 4px; color: #9ca5ae; font-size: var(--font-caption); font-style: normal; font-weight: 500; }
.stacked-field input { width: 100%; height: 42px; padding: 0 11px; border: 1px solid #dce3e8; border-radius: 9px; outline: 0; color: var(--ink); background: #fbfcfd; font-size: var(--font-ui); }.stacked-field input:focus { border-color: #3aa893; background: white; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }.day-settings-body { display: grid; gap: 17px; }.day-settings-body .bank-holiday-switch { margin: 0; }.day-settings-body .bank-holiday-switch:has(input:checked) { border-color: #d8b964; background: #fff8df; }.day-settings-body .bank-holiday-switch input:checked + .switch-control { background: #a47b20; }
.modifier-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; margin-top: 19px; }.modifier-grid legend { grid-column: 1 / -1; }.switch-card { min-height: 58px; display: grid; grid-template-columns: 31px 1fr; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e1e6ea; border-radius: 10px; cursor: pointer; }.switch-card > input { position: absolute; opacity: 0; pointer-events: none; }.switch-control { position: relative; width: 31px; height: 18px; border-radius: 999px; background: #cbd3da; transition: .2s ease; }.switch-control::after { content: ""; position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: .2s ease; }.switch-card input:checked + .switch-control { background: var(--teal); }.switch-card input:checked + .switch-control::after { transform: translateX(13px); }.switch-card > span:last-child { display: flex; flex-direction: column; }.switch-card strong { font-size: var(--font-ui); }.switch-card small { margin-top: 2px; color: var(--muted); font-size: var(--font-caption); }.switch-card:has(input:checked) { border-color: #b8dfd6; background: #f1faf7; }
.status-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 19px; }.status-choice legend { grid-column: 1 / -1; }.status-choice label { cursor: pointer; }.status-choice input { position: absolute; opacity: 0; }.status-choice label > span { min-height: 68px; display: grid; grid-template-columns: 10px 1fr; align-content: center; column-gap: 9px; padding: 10px 12px; border: 1px solid #e0e5e9; border-radius: 10px; }.status-choice label > span > i { grid-row: 1 / 3; align-self: center; width: 8px; height: 8px; border-radius: 50%; }.draft-dot { background: #d28b29; }.published-dot { background: var(--teal); }.status-choice strong { font-size: var(--font-ui); }.status-choice small { color: var(--muted); font-size: var(--font-caption); }.status-choice input:checked + span { border-color: #78bcae; background: #eef9f6; box-shadow: 0 0 0 2px rgba(22,139,122,.08); }
.staff-dialog-columns { min-height: 500px; display: grid; grid-template-columns: 1.15fr .85fr; overflow: hidden; }.staff-list-panel { min-width: 0; overflow-y: auto; border-right: 1px solid var(--line); }.staff-list-head { height: 59px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid var(--line); }.staff-list-head strong { font-size: var(--font-ui); }.staff-list-head small { color: var(--muted); font-size: var(--font-caption); }.sortable-staff-list { padding: 8px; }.sortable-staff-item { min-height: 55px; display: grid; grid-template-columns: 25px 34px 1fr auto; align-items: center; gap: 8px; padding: 7px 8px; border: 1px solid transparent; border-radius: 9px; background: white; }.sortable-staff-item:hover { border-color: #e1e6ea; background: #fafcfc; }.sortable-staff-item.dragging { opacity: .45; }.sort-handle { border: 0; color: #a2adb7; background: transparent; cursor: grab; font-size: 13px; }.sortable-staff-item > span:nth-child(3) { min-width: 0; display: flex; flex-direction: column; }.sortable-staff-item strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }.sortable-staff-item small { margin-top: 2px; color: var(--muted); font-size: var(--font-caption); }.staff-row-actions { display: flex; gap: 3px; }.staff-row-actions button { min-width: 27px; height: 27px; border: 1px solid #e2e6ea; border-radius: 7px; color: #788594; background: white; cursor: pointer; font-size: var(--font-ui); }.staff-row-actions button:hover { color: var(--ink); background: #f2f5f7; }.staff-add-panel { padding: 22px; background: #fbfcfd; }.staff-add-panel h3 { margin: 5px 0 15px; font: 700 16px Tahoma, Arial, sans-serif; }.add-method-tabs { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 17px; padding: 3px; border-radius: 9px; background: #edf1f3; }.add-method-tabs button { height: 31px; border: 0; border-radius: 7px; color: #7a8795; background: transparent; cursor: pointer; font-size: var(--font-caption); font-weight: 700; }.add-method-tabs button.active { color: var(--ink); background: white; box-shadow: 0 2px 7px rgba(20,38,59,.09); }.staff-add-panel form { display: grid; gap: 13px; }.full-button { width: 100%; margin-top: 4px; }.staff-tip { display: flex; gap: 8px; margin-top: 18px; padding: 11px; border-radius: 9px; color: #5d6f7e; background: #eaf2f5; }.staff-tip span { flex: 0 0 auto; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; color: white; background: #63899a; font: 700 var(--font-ui) Tahoma, Arial, sans-serif; }.staff-tip p { margin: 1px 0 0; font-size: var(--font-caption); line-height: 1.45; }
.context-menu { position: fixed; z-index: 120; width: 220px; padding: 7px; border: 1px solid #dce3e8; border-radius: 12px; background: white; box-shadow: 0 18px 55px rgba(6,27,43,.25); }.context-menu > div:first-child { padding: 7px 8px 9px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: var(--font-caption); font-weight: 700; }.context-shifts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 8px 2px; }.context-shift { height: 31px; border: 1px solid rgba(20,38,59,.05); border-radius: 8px; color: var(--context-fg); background: var(--context-bg); cursor: pointer; font-size: var(--font-caption); font-weight: 800; }.context-menu > button { width: 100%; min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 8px; border: 0; border-radius: 7px; color: #465a6d; background: transparent; cursor: pointer; font-size: var(--font-ui); font-weight: 600; }.context-menu > button:hover { background: #f1f5f6; }.hover-card { position: fixed; z-index: 115; width: 230px; padding: 12px; border: 1px solid #dce3e8; border-radius: 11px; background: rgba(255,255,255,.98); box-shadow: 0 14px 40px rgba(8,29,45,.19); pointer-events: none; }.hover-card strong { display: block; font-size: var(--font-ui); }.hover-card > span { display: block; margin-top: 2px; color: var(--muted); font-size: var(--font-caption); }.hover-card p { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--line); color: #5c6d7c; font-size: var(--font-caption); line-height: 1.4; }.hover-card dl { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 0; }.hover-card dd { margin: 0; padding: 3px 5px; border-radius: 5px; color: #516374; background: #edf1f3; font-size: var(--font-caption); }

.more-menu { width: 225px; }.more-month-field { display: grid; gap: 5px; padding: 9px 8px; border-bottom: 1px solid var(--line); color: #6f7d8c; font-size: var(--font-caption); font-weight: 700; }.more-month-field input { width: 100%; height: 33px; padding: 0 8px; border: 1px solid #dce3e8; border-radius: 7px; color: var(--ink); background: #fafbfc; font-size: var(--font-ui); }.danger-button { background: #c74946 !important; box-shadow: 0 7px 18px rgba(199,73,70,.18) !important; }

@media print {
  .sidebar, .topbar, .rota-hero-actions, .edit-console, .rota-view-tools, .rota-help-strip, .summary-strip, .interactive-legend, .toast-stack { display: none !important; }
  body, .main-area, .page-content { margin: 0 !important; padding: 0 !important; background: white !important; }
  .app-shell { display: block !important; }.main-area { min-width: 100% !important; }.rota-hero { margin: 0 0 10px !important; }.rota-card { overflow: visible !important; border: 0 !important; box-shadow: none !important; }.rota-card-head { display: none !important; }.rota-scroll { max-height: none !important; overflow: visible !important; }.rota-grid { transform-origin: top left; zoom: .62; }.staff-head, .date-head, .staff-cell, .note-label { position: static !important; }
  .rota-layout-sticky .rota-sticky-shell { width: max-content !important; zoom: .62; }
  .rota-layout-sticky .rota-day-pane, .rota-layout-sticky .rota-day-clip { width: max-content !important; overflow: visible !important; }
  .rota-layout-sticky .rota-day-grid { zoom: 1; }
}

@media (max-width: 1150px) {
  .dashboard-stats { grid-template-columns: repeat(2, 1fr); }.tool-card-grid { grid-template-columns: repeat(2, 1fr); }.directory-grid { grid-template-columns: repeat(2, 1fr); }.large-tool-grid { grid-template-columns: repeat(2, 1fr); }.edit-console { grid-template-columns: 1fr 1.4fr; }.edit-console-actions { grid-column: 1 / -1; justify-content: flex-end; }
}

@media (max-width: 900px) {
  .command-hint { display: none; }.flash-banner { left: calc(72px + 50%); }.dashboard-grid { grid-template-columns: 1fr; }.staff-dialog-columns { grid-template-columns: 1fr; overflow-y: auto; }.staff-list-panel { max-height: 340px; border-right: 0; border-bottom: 1px solid var(--line); }.shift-chooser > div { grid-template-columns: repeat(4, 1fr); }.login-shell { grid-template-columns: minmax(360px, 43%) 1fr; }.login-brand-panel { padding-inline: 35px; }.login-message h1 { font-size: 38px; }
}

@media (max-width: 720px) {
  .login-shell { display: block; }.login-brand-panel { display: none; }.login-form-panel { min-height: 100vh; padding: 32px 24px; }.mobile-login-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 70px; }.mobile-login-brand .brand-logo { width: 84px; border-radius: 9px; }.mobile-login-brand strong { color: var(--ink); font: 800 17px Tahoma, Arial, sans-serif; }.directory-toolbar { align-items: stretch; flex-direction: column; padding-block: 13px; }.search-field { width: 100%; }.filter-chips { width: 100%; }.directory-grid { grid-template-columns: 1fr; }.large-tool-grid { grid-template-columns: 1fr; }.account-details { grid-template-columns: 1fr; gap: 17px; }.edit-console { grid-template-columns: 1fr; }.edit-console-actions { grid-column: 1; }.form-grid.two-columns, .modifier-grid { grid-template-columns: 1fr; }.shift-chooser > div { grid-template-columns: repeat(3, 1fr); }.status-choice { grid-template-columns: 1fr; }.dialog-foot { grid-template-columns: auto 1fr auto; }.dialog-foot .button.ghost { display: none; }
}

@media (max-width: 620px) {
  .topbar-actions .topbar-icon { display: none; }.profile-menu { top: 65px; right: 14px; }.flash-banner { top: 86px; left: 50%; width: calc(100vw - 28px); }.welcome-row, .page-intro { align-items: flex-start; flex-direction: column; }.dashboard-stats { grid-template-columns: 1fr 1fr; gap: 8px; }.dashboard-stats article { min-height: 102px; align-items: flex-start; flex-direction: column; gap: 8px; padding: 13px; }.dashboard-stats article strong { font-size: 19px; }.tool-card-grid { grid-template-columns: 1fr 1fr; }.tool-card { min-height: 135px; padding: 14px; }.rota-hero { align-items: flex-start; flex-direction: column; }.rota-hero-actions { width: 100%; justify-content: space-between; }.month-switcher { display: flex; }.rota-hero-actions [data-manage-staff] { display: none; }.rota-summary { grid-template-columns: repeat(2, 1fr); }.rota-summary > div { min-height: 72px; }.interactive-head { height: auto; min-height: 76px; align-items: flex-start; flex-direction: column; gap: 9px; padding-block: 12px; }.rota-view-tools { width: 100%; }.compact-search { flex: 1; width: auto; }.edit-console { margin-top: 16px; }.rota-page { --staff-column: 150px; --day-column: 62px; }.staff-cell { padding-inline: 9px; }.staff-cell .person-avatar { display: none; }.rota-help-strip { display: none; }.overlay-dialog { width: 100vw; max-width: none; max-height: calc(100vh - 16px); margin: auto 0 0; border-radius: 18px 18px 0 0; }.overlay-dialog > form, .staff-dialog-shell { max-height: calc(100vh - 16px); }.entry-dialog, .small-dialog, .publish-dialog, .staff-dialog { width: 100vw; }.dialog-head { padding: 18px 17px 15px; }.dialog-body { padding: 17px; }.dialog-foot { padding-inline: 12px; }.shift-chooser > div { grid-template-columns: repeat(3, 1fr); }.staff-add-panel { padding: 18px; }.toast-stack { right: 14px; bottom: 80px; }.command-dialog { margin-top: 12px; }
}

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

/* Notifications */
.notification-trigger { position: relative; font-size: 17px; }.notification-trigger > b { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 5px; border: 2px solid white; border-radius: 999px; color: white; background: #e3514e; font-size: var(--font-caption); letter-spacing: 0; }
.notification-popover { top: 77px; right: 215px; width: min(410px, calc(100vw - 28px)); overflow: hidden; }.notification-popover > header { min-height: 62px; display: flex; align-items: center; justify-content: space-between; padding: 11px 15px; border-bottom: 1px solid var(--line); }.notification-popover > header > span { display: flex; flex-direction: column; }.notification-popover header strong { font-size: 13px; }.notification-popover header small { margin-top: 3px; color: var(--muted); font-size: var(--font-ui); }.notification-popover header button { border: 0; color: var(--teal-dark); background: transparent; cursor: pointer; font-size: var(--font-ui); font-weight: 750; }
.notification-mini-list { max-height: 390px; overflow-y: auto; }.notification-mini-list > a { min-height: 76px; display: grid; grid-template-columns: 34px 1fr; gap: 10px; padding: 12px 14px; border-bottom: 1px solid #f0f2f4; }.notification-mini-list > a:hover { background: #f7faf9; }.notification-mini-list > a.unread { background: #eef9f6; }.notification-mini-list > a > i, .notification-page-item > i { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 10px; color: #117565; background: #dff4ee; font-size: 12px; font-style: normal; font-weight: 800; }.notification-mini-list > a > span { min-width: 0; display: flex; flex-direction: column; }.notification-mini-list strong { font-size: var(--font-ui); }.notification-mini-list small { margin-top: 3px; overflow: hidden; color: #68798a; font-size: var(--font-caption); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }.notification-mini-list time { margin-top: 5px; color: #9aa5af; font-size: var(--font-caption); }.notification-popover > footer { height: 44px; display: grid; place-items: center; background: #fbfcfd; }.notification-popover > footer a { color: var(--teal-dark); font-size: var(--font-ui); font-weight: 750; }.notification-empty { min-height: 150px; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 25px; text-align: center; }.notification-empty > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--teal); }.notification-empty strong { margin-top: 10px; font-size: var(--font-body-small); }.notification-empty small { margin-top: 4px; color: var(--muted); font-size: var(--font-caption); }
.notifications-page { margin-inline: auto; }.notification-page-list { overflow: hidden; }.notification-page-item { min-height: 94px; display: grid; grid-template-columns: 42px 1fr 12px 25px; align-items: center; gap: 13px; padding: 15px 18px; border-bottom: 1px solid var(--line); }.notification-page-item:last-child { border-bottom: 0; }.notification-page-item:hover { background: #f8fafb; }.notification-page-item.unread { background: #f0faf7; }.notification-page-item > span strong { display: block; font-size: 12px; }.notification-page-item p { margin: 4px 0; color: #607286; font-size: var(--font-ui); line-height: 1.45; }.notification-page-item small { color: #929da8; font-size: var(--font-caption); }.notification-page-item > b { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }.notification-page-item > em { color: #91a0ad; font-style: normal; }

/* Test Centre */
.test-summary-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 20px; }.test-summary-strip article { min-height: 102px; display: flex; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: var(--shadow); }.test-summary-strip article > div { display: flex; flex-direction: column; }.test-summary-strip small { color: var(--muted); font-size: var(--font-ui); }.test-summary-strip strong { margin: 2px 0; font: 800 21px Tahoma, Arial, sans-serif; }.test-summary-strip article span:last-child { color: #8995a3; font-size: var(--font-caption); }.summary-icon.test-clock { color: #5b4c97; background: #eeeafb; }.summary-icon.published { color: #126f60; background: #def4ed; }
.assignment-panel { overflow: hidden; margin-bottom: 20px; }.test-panel-head { height: auto; min-height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; border-bottom: 1px solid var(--line); }.test-panel-head h3 { margin: 3px 0 0; font-size: 15px; }.test-panel-head > span { color: var(--muted); font-size: var(--font-ui); }.assignment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 15px; }.assignment-card { min-width: 0; display: flex; flex-direction: column; padding: 18px; border: 1px solid #e0e6ea; border-radius: 13px; background: #fbfcfd; }.assignment-card.in-progress { border-color: #8dcbbf; background: #f3fbf8; box-shadow: inset 3px 0 var(--teal); }.assignment-card header { display: flex; align-items: center; justify-content: space-between; color: #8995a2; font-size: var(--font-caption); }.test-state { display: inline-flex; align-items: center; min-height: 21px; padding: 0 7px; border-radius: 999px; color: #7f6323; background: #fff1c9; font-size: var(--font-caption); font-weight: 800; letter-spacing: .08em; }.test-state.published, .test-state.completed { color: #126d5f; background: #dff4ee; }.test-state.in_progress, .test-state.in-progress { color: #2f6292; background: #e2effb; }.test-state.archived { color: #6e7885; background: #eceff2; }.assignment-card h3 { margin: 14px 0 5px; font: 750 17px Tahoma, Arial, sans-serif; }.assignment-card > p { min-height: 34px; margin: 0; color: var(--muted); font-size: var(--font-ui); line-height: 1.45; }.assignment-card dl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin: 17px 0; }.assignment-card dl div { padding: 9px; border-radius: 8px; background: white; }.assignment-card dt { color: #8995a1; font-size: var(--font-caption); }.assignment-card dd { margin: 3px 0 0; font-size: var(--font-ui); font-weight: 750; }.assignment-card footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }.assignment-card footer > span { color: #788795; font-size: var(--font-caption); }.test-empty { grid-column: 1 / -1; min-height: 210px; }.test-history-panel { overflow: hidden; margin-bottom: 20px; }.responsive-table-wrap { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; text-align: left; }.data-table th { padding: 11px 15px; color: #8995a2; background: #fafbfc; border-bottom: 1px solid var(--line); font-size: var(--font-caption); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.data-table td { padding: 13px 15px; border-bottom: 1px solid #edf0f2; color: #526477; font-size: var(--font-ui); vertical-align: middle; }.data-table tr:last-child td { border-bottom: 0; }.data-table td strong { display: block; color: var(--ink); font-size: var(--font-ui); }.data-table td small { display: block; margin-top: 3px; color: #919ca8; font-size: var(--font-caption); }.table-empty { padding: 35px; color: var(--muted); text-align: center; }.result-pill { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 999px; font-size: var(--font-caption); font-weight: 800; text-transform: uppercase; }.result-pill.pass { color: #126d5f; background: #def4ed; }.result-pill.fail { color: #a13c3a; background: #fde5e4; }.result-pill.neutral { color: #687584; background: #edf0f2; }.integrity-note { display: flex; gap: 12px; padding: 15px 17px; border: 1px solid #d8e4eb; border-radius: 12px; color: #536a7d; background: #eef5f8; }.integrity-note > span { flex: 0 0 auto; width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; color: white; background: #5f8799; }.integrity-note strong { font-size: var(--font-ui); }.integrity-note p { margin: 3px 0 0; font-size: var(--font-caption); line-height: 1.5; }

/* Secure test workspace */
.secure-attempt-page { min-height: calc(100vh - 94px); padding: 30px 34px; }.security-gate { max-width: 740px; min-height: 520px; display: flex; align-items: center; flex-direction: column; justify-content: center; margin: 20px auto; padding: 45px; text-align: center; }.security-mark { width: 70px; height: 70px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 22px; color: white; background: linear-gradient(145deg, #1ba088, #0d6f61); box-shadow: 0 15px 35px rgba(22,139,122,.23); font-size: 28px; }.security-gate h2 { margin: 9px 0 6px; font: 800 28px Tahoma, Arial, sans-serif; }.security-gate > p { max-width: 500px; margin: 0; color: var(--muted); line-height: 1.5; }.security-checklist { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 27px 0; text-align: left; }.security-checklist > span { min-height: 112px; display: grid; grid-template-columns: 27px 1fr; align-content: center; gap: 3px 8px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fafcfc; }.security-checklist i { grid-row: 1 / 3; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; color: #167666; background: #ddf3ed; font-style: normal; }.security-checklist b { font-size: var(--font-ui); }.security-checklist small { color: var(--muted); font-size: var(--font-caption); line-height: 1.35; }.secure-enter-button { min-width: 190px; }.security-footnote { max-width: 500px; margin-top: 13px; color: #909ba6; font-size: var(--font-caption); }
.candidate-instructions { width: 100%; max-height: 150px; margin-top: 16px; padding: 12px 14px; overflow-y: auto; border: 1px solid #dce5e8; border-radius: 10px; color: #516879; background: #f5f8f9; text-align: left; }.candidate-instructions strong { font-size: var(--font-ui); }.candidate-instructions p { margin: 4px 0 0; font-size: var(--font-caption); line-height: 1.5; }
.secure-test-mode { overflow: hidden; background: #f1f5f7; }.secure-test-mode .sidebar, .secure-test-mode .topbar, .secure-test-mode .flash-banner { display: none !important; }.secure-test-mode .app-shell { display: block; }.secure-test-mode .main-area { min-width: 100%; }.secure-test-mode .secure-attempt-page { height: 100vh; min-height: 0; padding: 0; }.secure-workspace { height: 100vh; display: flex; flex-direction: column; background: #f2f5f7; }.secure-test-header { flex: 0 0 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 25px; color: white; background: var(--navy); box-shadow: 0 4px 18px rgba(9,27,43,.2); }.secure-test-header > div { display: flex; align-items: center; gap: 10px; }.secure-test-header > div > span { display: flex; flex-direction: column; }.secure-test-header small { color: #8eadbc; font-size: var(--font-caption); font-weight: 800; letter-spacing: .12em; }.secure-test-header strong { margin-top: 3px; font-size: 13px; }.secure-pulse { width: 9px; height: 9px; border-radius: 50%; background: #2ad1a9; box-shadow: 0 0 0 6px rgba(42,209,169,.13); }.secure-test-stats { gap: 22px !important; }.secure-test-stats > span { display: flex; flex-direction: column; text-align: right; }.secure-test-stats > span strong { margin-top: 2px; }.secure-test-stats time { min-width: 105px; padding: 10px 13px; border-radius: 10px; color: #bff8e9; background: rgba(0,0,0,.2); font: 800 21px/1 Tahoma, Arial, sans-serif; text-align: center; }.secure-test-stats time.warning { color: #ffe298; }.secure-test-stats time.critical { color: #ffaaa7; animation: live-pulse .7s infinite; }.integrity-counter.warning strong { color: #ffcf87; }
.fullscreen-blocker { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 20px; background: rgba(7,22,35,.9); backdrop-filter: blur(8px); }.fullscreen-blocker > div { width: min(440px, 100%); padding: 35px; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; color: white; background: #102a43; box-shadow: 0 25px 80px rgba(0,0,0,.35); text-align: center; }.fullscreen-blocker > div > span { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 15px; color: #102a43; background: #ffce79; font-size: 20px; }.fullscreen-blocker h2 { margin: 0 0 7px; font-size: 22px; }.fullscreen-blocker p { margin: 0 0 20px; color: #acc0cc; font-size: var(--font-ui); line-height: 1.5; }
.secure-test-body { min-height: 0; flex: 1; display: grid; grid-template-columns: 230px 1fr; }.question-navigator { min-height: 0; display: flex; flex-direction: column; padding: 24px 18px; border-right: 1px solid #dfe5e9; background: white; }.question-navigator > div strong { display: block; margin-top: 4px; font-size: 15px; }.question-navigator nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-top: 19px; overflow-y: auto; }.question-navigator nav button { aspect-ratio: 1; border: 1px solid #dce3e7; border-radius: 9px; color: #647587; background: #fafbfc; cursor: pointer; font-size: var(--font-ui); font-weight: 800; }.question-navigator nav button.answered { color: #126e60; border-color: #a9d7cd; background: #e4f6f1; }.question-navigator nav button.active { color: white; border-color: var(--navy); background: var(--navy); box-shadow: 0 5px 12px rgba(16,42,67,.17); }.question-navigator > footer { display: grid; gap: 6px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); color: #82909e; font-size: var(--font-caption); }.question-navigator footer span { display: flex; align-items: center; gap: 6px; }.question-navigator footer i { width: 8px; height: 8px; border: 1px solid #cdd5db; border-radius: 3px; background: #fafbfc; }.question-navigator footer i.answered-key { border-color: #a9d7cd; background: #dff4ee; }
.question-stage { min-width: 0; min-height: 0; position: relative; display: flex; flex-direction: column; padding: 35px clamp(28px, 7vw, 110px) 20px; overflow-y: auto; }.autosave-state { position: absolute; top: 18px; right: 26px; display: flex; align-items: center; gap: 6px; color: #668073; font-size: var(--font-caption); font-weight: 700; }.autosave-state i { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); }.autosave-state.saving i { background: #d49a39; animation: live-pulse 1s infinite; }.autosave-state.error { color: #ad4140; }.autosave-state.error i { background: #d84e4b; }.question-stage > article { width: min(850px, 100%); margin: auto; }.question-stage article header h2 { margin: 9px 0 7px; font: 800 clamp(21px, 3vw, 30px)/1.25 Tahoma, Arial, sans-serif; letter-spacing: -.03em; }.question-stage article header p { margin: 0 0 25px; color: var(--muted); font-size: var(--font-ui); }.secure-answer-list { display: grid; gap: 9px; }.secure-answer-list label { min-height: 65px; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 12px; padding: 10px 15px; border: 1px solid #dce3e8; border-radius: 12px; background: white; cursor: pointer; transition: .15s ease; }.secure-answer-list label:hover { border-color: #86bdb3; transform: translateY(-1px); }.secure-answer-list input { position: absolute; opacity: 0; }.secure-answer-list i { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; color: #647486; background: #edf1f3; font-size: var(--font-ui); font-style: normal; font-weight: 800; }.secure-answer-list span { font-size: var(--font-body-small); line-height: 1.4; }.secure-answer-list label:has(input:checked) { border-color: #56aa9a; background: #f0faf7; box-shadow: 0 0 0 2px rgba(22,139,122,.08); }.secure-answer-list input:checked + i { color: white; background: var(--teal); }.secure-text-answer textarea { width: 100%; min-height: 190px; padding: 17px; border: 1px solid #dce3e8; border-radius: 12px; outline: 0; resize: vertical; color: var(--ink); background: white; line-height: 1.5; }.secure-text-answer textarea:focus { border-color: #56aa9a; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }.question-controls { width: min(850px, 100%); min-height: 62px; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 8px; margin: 25px auto 0; padding-top: 15px; border-top: 1px solid #dfe4e8; }.question-controls > span { color: #8995a2; font-size: var(--font-caption); text-align: center; }

/* Test result */
.result-page { max-width: 1050px; margin-inline: auto; }.result-hero { min-height: 300px; display: flex; align-items: center; gap: 45px; padding: 38px 55px; overflow: hidden; }.result-hero.passed { background: linear-gradient(135deg, #fff 45%, #e7f7f2); }.result-hero.failed { background: linear-gradient(135deg, #fff 45%, #fdf0ef); }.result-ring { flex: 0 0 auto; width: 190px; height: 190px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--teal) calc(var(--result) * 1%), #e4e9ec 0); }.result-hero.failed .result-ring { background: conic-gradient(#d75552 calc(var(--result) * 1%), #e4e9ec 0); }.result-ring::before { content: ""; grid-area: 1 / 1; width: 150px; height: 150px; border-radius: 50%; background: white; }.result-ring > span { grid-area: 1 / 1; z-index: 1; display: flex; align-items: center; flex-direction: column; }.result-ring strong { font: 800 33px Tahoma, Arial, sans-serif; }.result-ring small { margin-top: 2px; color: var(--muted); font-size: var(--font-caption); font-weight: 800; letter-spacing: .12em; }.result-copy h2 { margin: 12px 0 7px; font: 800 29px Tahoma, Arial, sans-serif; }.result-copy p { max-width: 530px; margin: 0 0 20px; color: var(--muted); line-height: 1.5; }.result-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 17px 0; }.result-detail-grid article { min-height: 120px; display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: 20px; }.result-detail-grid span { color: var(--muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }.result-detail-grid strong { margin: 5px 0 2px; font-size: 19px; }.result-detail-grid small { color: #8995a2; font-size: var(--font-caption); }.integrity-clear { color: #16806f !important; }.integrity-review { color: #b27320 !important; }.integrity-breached { color: #c24340 !important; }.integrity-result-panel { overflow: hidden; }.integrity-event-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 20px; }.integrity-event-list span { min-width: 160px; display: flex; justify-content: space-between; padding: 10px; border-radius: 9px; background: #f5f7f8; font-size: var(--font-caption); }.integrity-event-list p { width: 100%; margin: 5px 0 0; color: #a3413f; font-size: var(--font-ui); }.result-privacy-note { color: #8d99a4; font-size: var(--font-caption); text-align: center; }

/* Leave */
.leave-balance-card { position: relative; display: grid; grid-template-columns: .85fr 2fr; gap: 25px; margin-bottom: 18px; padding: 25px; overflow: hidden; }.leave-balance-main { padding-right: 25px; border-right: 1px solid var(--line); }.leave-balance-main > strong { display: block; margin: 7px 0 3px; font: 800 46px/1 Tahoma, Arial, sans-serif; }.leave-balance-main > strong small { margin-left: 5px; color: var(--muted); font-size: 13px; }.leave-balance-main p { margin: 8px 0 0; color: var(--muted); font-size: var(--font-caption); line-height: 1.4; }.leave-balance-breakdown { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; align-content: center; }.leave-balance-breakdown span { display: flex; align-items: center; flex-direction: column; justify-content: center; min-height: 72px; padding: 9px; border-radius: 10px; background: #f7f9fa; text-align: center; }.leave-balance-breakdown small { color: var(--muted); font-size: var(--font-caption); }.leave-balance-breakdown strong { margin-top: 4px; font-size: 14px; }.leave-meter { position: absolute; inset: auto 0 0; height: 5px; background: #e5eaed; }.leave-meter span { display: block; width: var(--leave-used); height: 100%; background: linear-gradient(90deg, var(--teal), #d9a43c); }
.leave-requests-panel { overflow: hidden; }.leave-request-list { display: grid; }.leave-request-row { min-height: 88px; display: grid; grid-template-columns: 47px minmax(180px, 1fr) 90px 100px 70px; align-items: center; gap: 13px; padding: 13px 18px; border-bottom: 1px solid var(--line); }.leave-request-row:last-child { border-bottom: 0; }.leave-date-block { width: 45px; height: 52px; display: flex; align-items: center; flex-direction: column; justify-content: center; border-radius: 10px; color: #126e60; background: #e1f4ef; }.leave-date-block strong { font-size: 16px; }.leave-date-block small { font-size: var(--font-caption); }.leave-request-row h3 { margin: 0; font-size: var(--font-body-small); }.leave-request-row p { margin: 4px 0 0; color: var(--muted); font-size: var(--font-caption); }.review-note { display: block; margin-top: 5px; color: #7d6840; font-size: var(--font-caption); }.leave-status { display: inline-flex; width: max-content; min-height: 23px; align-items: center; padding: 0 8px; border-radius: 999px; color: #876221; background: #fff1c9; font-size: var(--font-caption); font-weight: 800; text-transform: uppercase; }.leave-status.approved, .leave-status.completed { color: #126d5f; background: #def4ed; }.leave-status.declined, .leave-status.revoked, .leave-status.cancelled { color: #a13c3a; background: #fde5e4; }.leave-status.withdrawn { color: #657382; background: #edf0f2; }.leave-status.in_progress { color: #326595; background: #e1eef9; }.rota-link-state { color: #87939f; font-size: var(--font-caption); font-weight: 700; }.rota-link-state.linked { color: #157565; }.leave-help-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin-top: 17px; }.leave-help-grid article { display: flex; gap: 11px; padding: 15px; }.leave-help-grid article > span { flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: white; background: var(--teal); font-size: var(--font-ui); font-weight: 800; }.leave-help-grid strong { font-size: var(--font-ui); }.leave-help-grid p { margin: 3px 0 0; color: var(--muted); font-size: var(--font-caption); line-height: 1.45; }.leave-request-dialog { width: min(650px, calc(100vw - 28px)); }.no-margin { margin-top: 0 !important; }.leave-reason-field { margin-top: 17px; }.form-information { display: flex; gap: 9px; margin-top: 17px; padding: 11px; border-radius: 9px; color: #5e7180; background: #eaf2f5; }.form-information span { flex: 0 0 auto; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; color: white; background: #6d90a0; font: 700 var(--font-ui) Tahoma, Arial, sans-serif; }.form-information p { margin: 2px 0 0; font-size: var(--font-caption); line-height: 1.45; }
.leave-period-list { display: grid; gap: 10px; }.leave-period { padding: 13px; border: 1px solid #dfe5e9; border-radius: 11px; background: #f8fafb; }.leave-period > header { display: flex; align-items: center; justify-content: space-between; min-height: 24px; margin-bottom: 9px; }.leave-period > header strong { color: #42586b; font-size: var(--font-ui); }.leave-period > header .text-button { font-size: var(--font-caption); }.add-leave-period { width: 100%; margin-top: 10px; border-style: dashed; }.add-leave-period:disabled { cursor: not-allowed; opacity: .55; }
.bank-holiday-booking-dialog { width: min(570px, calc(100vw - 28px)); }.bank-holiday-policy-note { display: grid; grid-template-columns: 36px 1fr; align-items: center; gap: 11px; padding: 12px; border: 1px solid #eadba8; border-radius: 10px; color: #66572f; background: #fffaf0; }.bank-holiday-policy-note > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 9px; color: white; background: #ad7c1f; font-size: var(--font-caption); font-weight: 800; }.bank-holiday-policy-note p { margin: 0; font-size: var(--font-caption); line-height: 1.5; }.bank-holiday-policy-note strong { color: #594819; }.bank-holiday-booking-list { display: grid; gap: 8px; margin-top: 14px; }.bank-holiday-booking-option { min-height: 64px; display: grid; grid-template-columns: 0 29px 1fr; align-items: center; gap: 10px; padding: 10px 12px; overflow: hidden; border: 1px solid #dce3e7; border-radius: 11px; background: white; cursor: pointer; }.bank-holiday-booking-option:has(input:checked) { border-color: #86c3b6; background: #eff9f6; box-shadow: inset 3px 0 0 var(--teal); }.bank-holiday-booking-option input { width: 1px; height: 1px; opacity: 0; }.bank-holiday-check-marker { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid #ccd6dc; border-radius: 8px; color: transparent; background: #f5f7f8; font-size: var(--font-body-small); font-weight: 800; }.bank-holiday-booking-option input:focus-visible + .bank-holiday-check-marker { outline: 2px solid var(--navy); outline-offset: 2px; }.bank-holiday-booking-option input:checked + .bank-holiday-check-marker { color: white; border-color: var(--teal); background: var(--teal); }.bank-holiday-booking-option > span:last-child { min-width: 0; display: flex; flex-direction: column; }.bank-holiday-booking-option strong { font-size: var(--font-ui); }.bank-holiday-booking-option small { margin-top: 4px; color: var(--muted); font-size: var(--font-caption); }.bank-holiday-booking-summary { margin: 12px 2px 0; color: #516b63; font-size: var(--font-caption); font-weight: 700; text-align: right; }

/* Admin panel */
.admin-role-chip, .queue-count { display: inline-flex; align-items: center; min-height: 32px; padding: 0 11px; border: 1px solid #cfe2dd; border-radius: 999px; color: #177565; background: #f1faf7; font-size: var(--font-caption); font-weight: 800; }.admin-tabs { display: flex; gap: 5px; margin-bottom: 20px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: var(--shadow); overflow-x: auto; }.admin-tabs button { min-width: 135px; height: 43px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 0; border-radius: 9px; color: #6f7e8e; background: transparent; cursor: pointer; font-size: var(--font-ui); font-weight: 750; white-space: nowrap; }.admin-tabs button > span { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; background: #edf1f3; }.admin-tabs button b { margin-left: auto; min-width: 20px; padding: 3px; border-radius: 999px; color: #7c8995; background: #edf1f3; font-size: var(--font-caption); }.admin-tabs button.active { color: #126e60; background: #eaf8f4; }.admin-tabs button.active > span, .admin-tabs button.active b { color: white; background: var(--teal); }.admin-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 5px 0 17px; }.admin-section-head h3 { margin: 4px 0 3px; font: 800 22px Tahoma, Arial, sans-serif; }.admin-section-head p { margin: 0; color: var(--muted); font-size: var(--font-ui); }.admin-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }.admin-test-card { min-width: 0; display: flex; flex-direction: column; padding: 17px; }.admin-test-card.archived { opacity: .68; }.admin-test-card > header { display: flex; justify-content: space-between; }.admin-test-card h3 { margin: 13px 0 5px; font-size: 14px; }.admin-test-card > p { min-height: 35px; margin: 0; color: var(--muted); font-size: var(--font-caption); line-height: 1.45; }.admin-test-card dl { display: grid; grid-template-columns: repeat(4, 1fr); margin: 15px 0; border: 1px solid var(--line); border-radius: 9px; }.admin-test-card dl div { padding: 9px 5px; border-right: 1px solid var(--line); text-align: center; }.admin-test-card dl div:last-child { border-right: 0; }.admin-test-card dt { color: #8a96a3; font-size: var(--font-micro); }.admin-test-card dd { margin: 2px 0 0; font-size: var(--font-ui); font-weight: 800; }.admin-test-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }.admin-table-panel { overflow: hidden; }.admin-table-toolbar { min-height: 61px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 10px 15px; border-bottom: 1px solid var(--line); }.admin-table-toolbar > span { color: var(--muted); font-size: var(--font-caption); }.admin-question-table { min-width: 820px; }.admin-question-table th:first-child { width: 45%; }.admin-question-table td:first-child strong { max-width: 620px; line-height: 1.35; }.admin-question-table td:last-child { min-width: 120px; white-space: nowrap; }.assignment-admin-table { min-width: 900px; }.tiny-link { display: block; margin-top: 3px; color: var(--teal-dark); font-size: var(--font-caption); font-weight: 700; }
.question-filter-controls { min-width: 0; display: flex; align-items: center; gap: 8px; }.question-filter-controls .search-field { width: min(430px, 46vw); }.category-filter select { height: 36px; min-width: 155px; padding: 0 30px 0 10px; border: 1px solid #dce3e8; border-radius: 8px; color: #536678; background: #fbfcfd; font-size: var(--font-ui); }.question-category-list { display: grid; }.question-category-group + .question-category-group { border-top: 1px solid var(--line); }.question-category-group > summary { min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 10px 17px; cursor: pointer; list-style: none; background: #f8fafb; }.question-category-group > summary::-webkit-details-marker { display: none; }.question-category-group > summary:hover { background: #f1f7f5; }.question-category-group > summary > span { display: flex; flex-direction: column; }.question-category-group > summary strong { color: #263d50; font-size: 12px; }.question-category-group > summary small { margin-top: 3px; color: #8795a2; font-size: var(--font-caption); }.question-category-group > summary i { color: #7b8b99; font-size: 13px; font-style: normal; transition: transform .15s ease; }.question-category-group[open] > summary i { transform: rotate(180deg); }.question-category-group .responsive-table-wrap { border-top: 1px solid #e8edef; }.question-filter-empty { border-top: 1px solid var(--line); }
.admin-form-body { display: grid; gap: 15px; }.admin-form-body .stacked-field textarea { min-height: 76px; }.form-grid.three-columns { grid-template-columns: repeat(3, 1fr); }.form-grid select, .stacked-field select { width: 100%; height: 42px; padding: 0 10px; border: 1px solid #dce3e8; border-radius: 9px; color: var(--ink); background: #fbfcfd; font-size: var(--font-ui); }.admin-switch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }.dialog-search { width: 100%; margin-bottom: 12px; }.question-checkbox-list { max-height: 500px; display: grid; gap: 6px; overflow-y: auto; }.question-checkbox-list label { min-height: 54px; display: grid; grid-template-columns: 19px 1fr; align-items: center; gap: 9px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }.question-checkbox-list label:has(input:checked) { border-color: #8cc8bb; background: #eff9f6; }.question-checkbox-list input { accent-color: var(--teal); }.question-checkbox-list span { display: flex; flex-direction: column; }.question-checkbox-list strong { font-size: var(--font-ui); line-height: 1.35; }.question-checkbox-list small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }.user-check-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; margin: 18px 0 0; padding: 0; border: 0; }.user-check-grid legend { grid-column: 1 / -1; margin-bottom: 2px; color: #364a5d; font-size: var(--font-ui); font-weight: 800; }.user-check-grid label { min-height: 55px; display: grid; grid-template-columns: 18px 34px 1fr; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }.user-check-grid label:has(input:checked) { border-color: #8cc8bb; background: #eff9f6; }.user-check-grid input { accent-color: var(--teal); }.user-check-grid label > span:last-child { display: flex; flex-direction: column; }.user-check-grid strong { font-size: var(--font-ui); }.user-check-grid small { color: var(--muted); font-size: var(--font-caption); }
.leave-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }.leave-review-card { min-width: 0; padding: 16px; }.leave-review-card > header { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 9px; }.leave-review-card header > span:nth-child(2) { display: flex; flex-direction: column; }.leave-review-card header strong { font-size: var(--font-ui); }.leave-review-card header small { color: var(--muted); font-size: var(--font-caption); }.leave-review-dates { display: flex; align-items: flex-end; justify-content: space-between; margin: 16px 0 7px; padding: 12px; border-radius: 9px; background: #f7f9fa; }.leave-review-dates strong { font-size: 13px; }.leave-review-dates span { color: #607284; font-size: var(--font-caption); }.leave-review-card > p { min-height: 27px; margin: 0 0 8px; color: var(--muted); font-size: var(--font-caption); line-height: 1.45; }.leave-review-card > footer { min-height: 43px; display: flex; align-items: flex-end; justify-content: flex-end; gap: 7px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }.leave-review-card > footer > span { margin-right: auto; color: var(--muted); font-size: var(--font-caption); }.balance-table { min-width: 980px; }.balance-table td:first-child { min-width: 180px; }

@media (max-width: 1180px) {
  .admin-card-grid { grid-template-columns: repeat(2, 1fr); }.leave-balance-card { grid-template-columns: 1fr; }.leave-balance-main { padding: 0 0 18px; border: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 900px) {
  .notification-popover { right: 94px; }.assignment-grid, .leave-review-grid { grid-template-columns: 1fr; }.leave-balance-breakdown { grid-template-columns: repeat(3, 1fr); }.leave-request-row { grid-template-columns: 47px 1fr auto; }.leave-request-row .rota-link-state, .leave-request-row > button, .leave-request-row > span:last-child { grid-column: 2; }.security-checklist { grid-template-columns: 1fr; }.security-checklist > span { min-height: 70px; }.admin-card-grid { grid-template-columns: 1fr; }.secure-test-body { grid-template-columns: 170px 1fr; }.question-navigator nav { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .test-summary-strip { grid-template-columns: 1fr; }.assignment-grid { padding: 10px; }.assignment-card dl { grid-template-columns: repeat(2, 1fr); }.leave-balance-breakdown { grid-template-columns: repeat(2, 1fr); }.leave-help-grid { grid-template-columns: 1fr; }.admin-section-head { align-items: flex-start; flex-direction: column; }.form-grid.three-columns, .admin-switch-grid, .user-check-grid { grid-template-columns: 1fr; }.question-bank-toolbar, .question-filter-controls { align-items: stretch; flex-direction: column; }.question-filter-controls { width: 100%; }.question-filter-controls .search-field, .category-filter select { width: 100%; }.result-hero { flex-direction: column; padding: 30px 20px; text-align: center; }.result-detail-grid { grid-template-columns: 1fr; }.secure-test-header { padding: 0 13px; }.secure-test-header > div:first-child strong { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.secure-test-stats > span { display: none; }.secure-test-body { display: block; }.question-navigator { display: none; }.question-stage { height: calc(100vh - 76px); padding: 42px 16px 14px; }.question-controls { grid-template-columns: auto 1fr auto; }.question-controls .dark { grid-column: 3; }.notification-page-item { grid-template-columns: 37px 1fr 8px; }.notification-page-item > em { display: none; }
}
@media (max-width: 620px) {
  .sidebar { overflow: hidden; }.main-nav { display: flex; overflow-x: auto; scrollbar-width: none; }.main-nav::-webkit-scrollbar { display: none; }.main-nav a { flex: 0 0 66px; }.notification-popover { top: 65px; right: 14px; }.topbar-actions .notification-trigger { display: grid; }.leave-request-row { grid-template-columns: 42px 1fr auto; padding-inline: 12px; }.leave-intro .hero-actions { width: 100%; }.security-gate { min-height: calc(100vh - 120px); margin: 0; padding: 25px 17px; }.secure-attempt-page { padding: 14px; }.result-ring { width: 155px; height: 155px; }.result-ring::before { width: 123px; height: 123px; }
}

/* Compact rota ranges and copy tools */
.rota-view-switch { flex: 0 0 auto; height: 34px; display: inline-flex; align-items: center; gap: 2px; padding: 3px; border: 1px solid #dfe5e9; border-radius: 9px; background: #f5f7f8; }
.rota-view-switch button { height: 26px; padding: 0 9px; border: 0; border-radius: 6px; color: #718092; background: transparent; cursor: pointer; font-size: var(--font-caption); font-weight: 800; }
.rota-view-switch button.active { color: white; background: var(--navy); box-shadow: 0 3px 8px rgba(16,42,67,.16); }
.view-day .rota-grid, .view-week .rota-grid { width: max-content; min-width: max-content; }
.view-day .rota-grid { grid-template-columns: var(--staff-column) var(--day-column); }
.view-week .rota-grid { grid-template-columns: var(--staff-column) repeat(var(--day-count), var(--day-column)); }
.view-day .rota-grid .date-head, .view-week .rota-grid .date-head { width: var(--day-column); }
.staff-cell-copy { min-width: 0; display: flex; flex-direction: column; }
.entry-copy-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--line); }
.entry-copy-actions small { margin-left: auto; color: var(--muted); font-size: var(--font-caption); }
.context-menu > button:disabled { cursor: not-allowed; opacity: .42; }
.rota-legend-shell > summary { display: none; }

/* Window-management anti-cheat states */
.security-checklist { grid-template-columns: repeat(4, 1fr); }
.security-checklist .screen-check.clear { border-color: #b8ded5; background: #f2faf7; }
.security-checklist .screen-check.blocked { border-color: #efb0ad; background: #fff3f2; }
.security-checklist .screen-check.blocked i { color: #a33835; background: #fbdcda; }
.security-checklist .screen-check.limited { border-color: #ead7a7; background: #fffaf0; }
.security-checklist .screen-check.limited i { color: #8a6418; background: #f7e9be; }
.secure-enter-button:disabled { cursor: not-allowed; filter: grayscale(.2); opacity: .5; box-shadow: none; }
.display-blocker > div > span { color: #7b2826; background: #ffaaa7; }
.screen-attestation { width: 100%; max-width: 560px; display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 10px; margin: -12px 0 20px; padding: 11px 13px; border: 1px solid #ead7a7; border-radius: 10px; background: #fffaf0; cursor: pointer; text-align: left; }.screen-attestation input { accent-color: var(--teal); }.screen-attestation span { display: flex; flex-direction: column; }.screen-attestation strong { font-size: var(--font-caption); }.screen-attestation small { margin-top: 3px; color: #816f46; font-size: var(--font-caption); line-height: 1.4; }

/* Assignment history and account initials */
.inline-link-button { padding: 0; border: 0; background: transparent; cursor: pointer; text-align: left; }
.assignment-results-dialog { width: min(760px, calc(100vw - 28px)); }
.assignment-results-shell { max-height: min(880px, calc(100vh - 30px)); display: flex; flex-direction: column; }
.attempt-history-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 13px; }
.attempt-history-summary > span { min-height: 76px; display: flex; align-items: center; flex-direction: column; justify-content: center; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.attempt-history-summary strong { font-size: 17px; }.attempt-history-summary small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }
.attempt-history-list { display: grid; gap: 8px; }
.attempt-history-item { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.attempt-history-item > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.attempt-history-item > header > span:first-child { display: flex; flex-direction: column; }.attempt-history-item header strong { font-size: var(--font-ui); }.attempt-history-item header small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }
.attempt-history-item dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin: 11px 0 0; }
.attempt-history-item dl div { padding: 8px; border-radius: 8px; background: #f6f8f9; }.attempt-history-item dt { color: var(--muted); font-size: var(--font-micro); text-transform: uppercase; }.attempt-history-item dd { margin: 3px 0 0; font-size: var(--font-caption); font-weight: 700; text-transform: capitalize; }
.attempt-result-link { width: max-content; margin-top: 9px; }
.people-initials-table { min-width: 720px; }.identity-cell { display: flex; align-items: center; gap: 9px; }.identity-cell > span:last-child { display: flex; flex-direction: column; }.initials-value { letter-spacing: .08em; }

@media (max-width: 900px) {
  .security-checklist { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  .security-checklist { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .rota-page { --staff-column: 104px; --day-column: 44px; }
  .rota-view-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 7px; }
  .rota-view-switch { grid-column: 1 / -1; width: 100%; }
  .rota-view-switch button { flex: 1; }
  .compact-search { width: 100%; }
  .view-day .rota-grid { grid-template-columns: var(--staff-column) var(--day-column); }
  .view-week .rota-grid { grid-template-columns: var(--staff-column) repeat(var(--day-count), var(--day-column)); }
  .view-month .rota-grid { grid-template-columns: var(--staff-column) repeat(var(--day-count), var(--day-column)); }
  .view-day .rota-grid, .view-week .rota-grid { width: max-content; min-width: max-content; }
  .rota-scroll { max-height: min(61svh, 650px); }
  .rota-grid .staff-head, .rota-grid .date-head { height: 47px; }
  .rota-grid .staff-cell, .rota-grid .shift-cell { min-height: 50px; }
  .rota-fixed-grid .staff-head { height: 47px; }
  .rota-day-head-track .date-head { height: 47px; }
  .rota-layout-sticky .rota-fixed-grid .note-label, .rota-layout-sticky .rota-day-grid .note-cell { height: 41px; min-height: 41px; }
  .rota-layout-sticky .rota-fixed-grid .staff-cell, .rota-layout-sticky .rota-day-grid .shift-cell { height: 50px; min-height: 50px; }
  .staff-head { padding-inline: 9px; }.staff-head span { font-size: var(--font-caption); }
  .staff-cell { gap: 4px; padding-inline: 8px; }.staff-cell strong { font-size: var(--font-ui); }.staff-cell small { margin-top: 2px; font-size: var(--font-caption); }
  .rota-cell-button { inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); }
  .cell-shift { min-height: 30px; border-radius: 6px; font-size: var(--font-caption); }
  .note-label, .note-cell { min-height: 38px; }.note-label { padding-inline: 8px; font-size: var(--font-caption); }.note-cell { padding: 3px; }.note-cell button { min-height: 35px; padding: 3px 2px; }.note-cell .day-holiday-title, .note-cell .day-note-text { font-size: var(--font-micro); }
  .bank-holiday-badge { top: 2px; right: 2px; min-width: 14px; padding: 0 2px; }
  .rota-fullscreen-button { width: 34px; padding: 0; }
  .rota-fullscreen-button [data-fullscreen-label] { display: none; }
  .rota-page:fullscreen, .rota-page.rota-fullscreen-fallback { gap: 0; padding: 0; }
  .rota-page:fullscreen > .interactive-rota-card, .rota-page.rota-fullscreen-fallback > .interactive-rota-card { border: 0; border-radius: 0; }
  .rota-legend-shell > summary { min-height: 39px; display: flex; align-items: center; justify-content: space-between; padding: 0 13px; border-top: 1px solid var(--line); color: #5f7183; cursor: pointer; list-style: none; font-size: var(--font-caption); font-weight: 800; }
  .rota-legend-shell > summary::-webkit-details-marker { display: none; }.rota-legend-shell[open] > summary span { transform: rotate(180deg); }
  .interactive-legend { min-height: 0; gap: 7px 11px; padding: 9px 13px; font-size: var(--font-caption); }
  .entry-copy-actions { align-items: stretch; flex-direction: column; }.entry-copy-actions small { margin: 2px 0 0; text-align: center; }
  .assignment-results-dialog { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 18px 18px 0 0; }
  .assignment-results-shell { max-height: calc(100vh - 16px); }.attempt-history-item dl { grid-template-columns: 1fr; }.attempt-history-summary > span { min-height: 64px; }
}

/* Managed rota shift key */
.shift-type-dialog { width: min(980px, calc(100vw - 28px)); height: min(820px, calc(100vh - 30px)); height: min(820px, calc(100dvh - 30px)); overflow: hidden; }
.shift-type-dialog-shell { width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.shift-type-dialog-body { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(290px, .82fr) minmax(430px, 1.18fr); overflow: hidden; }
.shift-type-list-panel { min-width: 0; min-height: 0; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #fbfcfd; }
.shift-type-list-head { min-height: 67px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.shift-type-list-head > div { display: flex; flex-direction: column; gap: 3px; }
.shift-type-list-head strong { font-size: var(--font-ui); }
.shift-type-list-head small { color: var(--muted); font-size: var(--font-caption); }
.shift-type-list { min-height: 0; display: grid; align-content: start; gap: 5px; overflow-y: auto; padding: 9px; }
.shift-type-list-item { width: 100%; min-height: 58px; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 6px 9px 6px 6px; border: 1px solid transparent; border-radius: 11px; color: var(--ink); background: transparent; text-align: left; }
button.shift-type-list-item { cursor: pointer; }
button.shift-type-list-item:hover { border-color: #dce5e8; background: white; }
button.shift-type-list-item.selected { border-color: #9dd2c7; background: white; box-shadow: 0 3px 12px rgba(16, 42, 67, .06); }
.shift-type-list-swatch { width: 52px; height: 44px; display: grid; place-items: center; overflow: hidden; border-radius: 9px; color: var(--type-fg); background: var(--type-bg); box-shadow: inset 0 0 0 1px rgba(20, 38, 59, .08); }
.shift-type-list-swatch strong { max-width: 100%; overflow: hidden; padding: 0 4px; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }
.shift-type-list-copy { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.shift-type-list-copy strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }
.shift-type-list-copy small { overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.shift-type-list-arrow { color: #a0abb5; font-size: 18px; }
.protected-shift-type { margin-top: 4px; border: 1px dashed #cbd4dc; background: #f5f8fa; }
.clear-swatch { --type-bg: #fff; --type-fg: #647587; border: 1px dashed #aeb9c3; box-shadow: none; }
.protected-badge { padding: 4px 6px; border-radius: 999px; color: #677788; background: #e5ebef; font-size: var(--font-micro); font-weight: 800; letter-spacing: .07em; }
.shift-type-editor-panel { min-width: 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px 24px; }
.shift-type-editor-panel > form { min-height: 100%; display: flex; flex-direction: column; }
.shift-type-editor-heading h3 { margin: 5px 0 0; font: 800 17px Tahoma, Arial, sans-serif; letter-spacing: -.025em; }
.shift-type-fields { margin-top: 19px; }
.shift-type-fields select { height: 42px; }
.shift-type-fields .colour-field { gap: 7px; }
.colour-control { height: 42px; display: flex; align-items: center; gap: 9px; padding: 5px 10px 5px 6px; border: 1px solid #dce3e8; border-radius: 9px; background: #fbfcfd; }
.form-grid .colour-control input[type="color"] { flex: 0 0 46px; width: 46px; height: 30px; padding: 0; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.colour-control output { color: #687888; font-size: var(--font-caption); font-weight: 700; letter-spacing: .04em; }
.shift-type-preview-shell { display: grid; gap: 8px; margin-top: 18px; }
.shift-type-preview-shell > span { color: #364a5d; font-size: var(--font-ui); font-weight: 700; }
.shift-type-preview { min-height: 76px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 13px 16px; border-radius: 12px; color: var(--preview-fg); background: var(--preview-bg); box-shadow: inset 0 0 0 1px rgba(20, 38, 59, .08); }
.shift-type-preview strong { max-width: 100%; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.shift-type-preview small { max-width: 100%; margin-top: 4px; overflow: hidden; opacity: .74; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.shift-type-editor-actions { min-height: 64px; display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 8px; margin-top: auto; padding-top: 22px; }
.context-shifts { max-height: 184px; overflow-y: auto; }

@media (max-width: 800px) {
  .shift-type-dialog-body { min-height: 0; grid-template-columns: 1fr; overflow-y: auto; }
  .shift-type-list-panel { max-height: 310px; border-right: 0; border-bottom: 1px solid var(--line); }
  .shift-type-editor-panel { overflow: visible; }
}

@media (max-width: 620px) {
  .rota-hero-actions [data-manage-shift-types] { display: none; }
  .shift-type-dialog { width: 100vw; height: calc(100vh - 16px); height: calc(100dvh - 16px); }
  .shift-type-dialog-shell { height: 100%; max-height: none; }
  .shift-type-dialog-body { min-height: 0; }
  .shift-type-list-panel { max-height: 250px; }
  .shift-type-list-head { min-height: 60px; padding-inline: 13px; }
  .shift-type-editor-panel { padding: 18px 17px; }
  .shift-type-fields { grid-template-columns: 1fr; }
}

/* Nested sidebar navigation */
.main-nav { min-height: 0; flex: 1 1 auto; align-content: start; overflow-y: auto; scrollbar-width: none; }
.main-nav::-webkit-scrollbar { display: none; }
.main-nav-group { min-width: 0; }
.nav-menu-row { position: relative; display: flex; align-items: center; }
.nav-menu-row > a { min-width: 0; flex: 1 1 auto; padding-right: 42px; }
.nav-menu-row > button { position: absolute; top: 50%; right: 8px; z-index: 2; width: 30px; height: 30px; display: grid; place-items: center; padding: 0; transform: translateY(-50%); border: 1px solid rgba(159,191,207,.22); border-radius: 9px; color: #a8c0cd; background: linear-gradient(180deg,rgba(255,255,255,.095),rgba(255,255,255,.045)); box-shadow: inset 0 1px rgba(255,255,255,.07), 0 4px 10px rgba(4,20,32,.14); cursor: pointer; transition: color .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.nav-menu-row > button:hover { color: white; border-color: rgba(125,220,204,.42); background: rgba(255,255,255,.13); box-shadow: inset 0 1px rgba(255,255,255,.1), 0 5px 13px rgba(4,20,32,.2); }
.nav-menu-row > button:focus-visible { color: white; outline: 2px solid #49cbb4; outline-offset: 2px; }
.nav-menu-group.submenu-open .nav-menu-row > button, .nav-menu-row > button[aria-expanded="true"] { color: #75e2cf; border-color: rgba(82,214,191,.38); background: rgba(35,178,154,.16); transform: translateY(-50%); }
.nav-menu-chevron { width: 8px; height: 8px; display: block; transform: translateY(-2px) rotate(45deg); border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transition: transform .2s cubic-bezier(.2,.7,.3,1); }
.nav-menu-row > button[aria-expanded="true"] .nav-menu-chevron { transform: translateY(2px) rotate(-135deg); }
.nav-menu-submenu { display: grid; gap: 4px; margin: 3px 0 2px 28px; padding: 8px 0 5px 10px; border-left: 1px solid rgba(119,217,200,.23); }
.nav-menu-submenu > span { padding: 0 8px 4px; color: #66899b; font-size: var(--font-caption); font-weight: 800; letter-spacing: .16em; }
.nav-menu-submenu > span:not(:first-child) { margin-top: 7px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.07); }
.main-nav .nav-menu-submenu > a, .nav-menu-submenu > a { min-height: 36px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 0 8px; border-radius: 8px; color: #9fb5c3; font-size: var(--font-ui); font-weight: 700; }
.nav-menu-submenu > a:hover { color: white; background: rgba(255,255,255,.055); }
.main-nav .nav-menu-submenu > a.active, .nav-menu-submenu > a.active { color: white; background: rgba(35,178,154,.12); box-shadow: inset 2px 0 #2ac0a7; }
.nav-menu-submenu > a i { width: 20px; color: #6fcbbb; font-size: 13px; font-style: normal; text-align: center; }
.nav-menu-submenu > a > .nav-icon { width: 20px; color: #6fcbbb; font-size: 13px; text-align: center; }
.main-nav[data-site-nav-list="main"] > a > i { width: 22px; flex: 0 0 auto; color: #6fcbbb; font-size: 19px; font-style: normal; text-align: center; }
.main-nav[data-site-nav-list="main"] > a > b { margin-left: auto; padding: 3px 5px; border-radius: 5px; color: #70d8c5; background: rgba(35,178,154,.14); font-size: var(--font-micro); letter-spacing: .08em; }
.nav-menu-submenu > a b { padding: 3px 5px; border-radius: 5px; color: #70d8c5; background: rgba(35,178,154,.14); font-size: var(--font-micro); letter-spacing: .08em; }

/* Persisted menu item sizing */
.main-nav {
  --site-nav-main-row: 48px;
  --site-nav-main-font: 14px;
  --site-nav-main-icon: 19px;
  --site-nav-main-icon-box: 22px;
  --site-nav-main-gap: 13px;
  --site-nav-main-pad: 13px;
  --site-nav-main-toggle: 30px;
  --site-nav-main-handle-top: 24px;
  --site-nav-main-radius: 11px;
  --site-nav-sub-row: 36px;
  --site-nav-sub-font: var(--font-ui);
  --site-nav-sub-icon: 13px;
  --site-nav-sub-icon-box: 20px;
  --site-nav-sub-gap: 7px;
  --site-nav-sub-pad: 8px;
  --site-nav-sub-radius: 8px;
  --site-nav-sub-heading: 12px;
  --site-nav-sub-heading-row: 20px;
  --site-nav-badge: 12px;
}
[data-site-nav-size="80"] { --site-nav-main-row:38px; --site-nav-main-font:12px; --site-nav-main-icon:15px; --site-nav-main-icon-box:18px; --site-nav-main-gap:10px; --site-nav-main-pad:10px; --site-nav-main-toggle:24px; --site-nav-main-handle-top:19px; --site-nav-main-radius:9px; --site-nav-sub-row:29px; --site-nav-sub-font:12px; --site-nav-sub-icon:10px; --site-nav-sub-icon-box:16px; --site-nav-sub-gap:6px; --site-nav-sub-pad:6px; --site-nav-sub-radius:6px; --site-nav-sub-heading:12px; --site-nav-sub-heading-row:16px; --site-nav-badge:12px; }
[data-site-nav-size="90"] { --site-nav-main-row:43px; --site-nav-main-font:13px; --site-nav-main-icon:17px; --site-nav-main-icon-box:20px; --site-nav-main-gap:12px; --site-nav-main-pad:12px; --site-nav-main-toggle:27px; --site-nav-main-handle-top:21.5px; --site-nav-main-radius:10px; --site-nav-sub-row:32px; --site-nav-sub-font:13px; --site-nav-sub-icon:12px; --site-nav-sub-icon-box:18px; --site-nav-sub-gap:6px; --site-nav-sub-pad:7px; --site-nav-sub-radius:7px; --site-nav-sub-heading:12px; --site-nav-sub-heading-row:18px; --site-nav-badge:12px; }
[data-site-nav-size="100"] { --site-nav-main-row:48px; --site-nav-main-font:14px; --site-nav-main-icon:19px; --site-nav-main-icon-box:22px; --site-nav-main-gap:13px; --site-nav-main-pad:13px; --site-nav-main-toggle:30px; --site-nav-main-handle-top:24px; --site-nav-main-radius:11px; --site-nav-sub-row:36px; --site-nav-sub-font:14px; --site-nav-sub-icon:13px; --site-nav-sub-icon-box:20px; --site-nav-sub-gap:7px; --site-nav-sub-pad:8px; --site-nav-sub-radius:8px; --site-nav-sub-heading:12px; --site-nav-sub-heading-row:20px; --site-nav-badge:12px; }
[data-site-nav-size="110"] { --site-nav-main-row:53px; --site-nav-main-font:15px; --site-nav-main-icon:21px; --site-nav-main-icon-box:24px; --site-nav-main-gap:14px; --site-nav-main-pad:14px; --site-nav-main-toggle:33px; --site-nav-main-handle-top:26.5px; --site-nav-main-radius:12px; --site-nav-sub-row:40px; --site-nav-sub-font:15px; --site-nav-sub-icon:14px; --site-nav-sub-icon-box:22px; --site-nav-sub-gap:8px; --site-nav-sub-pad:9px; --site-nav-sub-radius:9px; --site-nav-sub-heading:13px; --site-nav-sub-heading-row:22px; --site-nav-badge:12px; }
[data-site-nav-size="120"] { --site-nav-main-row:58px; --site-nav-main-font:17px; --site-nav-main-icon:23px; --site-nav-main-icon-box:26px; --site-nav-main-gap:16px; --site-nav-main-pad:16px; --site-nav-main-toggle:36px; --site-nav-main-handle-top:29px; --site-nav-main-radius:13px; --site-nav-sub-row:43px; --site-nav-sub-font:16px; --site-nav-sub-icon:16px; --site-nav-sub-icon-box:24px; --site-nav-sub-gap:8px; --site-nav-sub-pad:10px; --site-nav-sub-radius:10px; --site-nav-sub-heading:14px; --site-nav-sub-heading-row:24px; --site-nav-badge:13px; }
[data-site-nav-size="130"] { --site-nav-main-row:62px; --site-nav-main-font:18px; --site-nav-main-icon:25px; --site-nav-main-icon-box:29px; --site-nav-main-gap:17px; --site-nav-main-pad:17px; --site-nav-main-toggle:39px; --site-nav-main-handle-top:31px; --site-nav-main-radius:14px; --site-nav-sub-row:47px; --site-nav-sub-font:17px; --site-nav-sub-icon:17px; --site-nav-sub-icon-box:26px; --site-nav-sub-gap:9px; --site-nav-sub-pad:10px; --site-nav-sub-radius:10px; --site-nav-sub-heading:15px; --site-nav-sub-heading-row:26px; --site-nav-badge:14px; }
[data-site-nav-size="140"] { --site-nav-main-row:67px; --site-nav-main-font:20px; --site-nav-main-icon:27px; --site-nav-main-icon-box:31px; --site-nav-main-gap:18px; --site-nav-main-pad:18px; --site-nav-main-toggle:42px; --site-nav-main-handle-top:33.5px; --site-nav-main-radius:15px; --site-nav-sub-row:50px; --site-nav-sub-font:18px; --site-nav-sub-icon:18px; --site-nav-sub-icon-box:28px; --site-nav-sub-gap:10px; --site-nav-sub-pad:11px; --site-nav-sub-radius:11px; --site-nav-sub-heading:16px; --site-nav-sub-heading-row:28px; --site-nav-badge:15px; }
.main-nav[data-site-nav-list="main"] > a[data-site-nav-id] { min-height: var(--site-nav-main-row); gap: var(--site-nav-main-gap); padding-inline: var(--site-nav-main-pad); border-radius: var(--site-nav-main-radius); font-size: var(--site-nav-main-font); }
.main-nav[data-site-nav-list="main"] > a[data-site-nav-id] > .nav-icon,
.main-nav[data-site-nav-list="main"] > a[data-site-nav-id] > i { width: var(--site-nav-main-icon-box); font-size: var(--site-nav-main-icon); }
.main-nav-group[data-site-nav-id] > .nav-menu-row > a { min-height: var(--site-nav-main-row); gap: var(--site-nav-main-gap); padding-left: var(--site-nav-main-pad); padding-right: calc(var(--site-nav-main-pad) + var(--site-nav-main-toggle)); border-radius: var(--site-nav-main-radius); font-size: var(--site-nav-main-font); }
.main-nav-group[data-site-nav-id] > .nav-menu-row > a > .nav-icon { width: var(--site-nav-main-icon-box); font-size: var(--site-nav-main-icon); }
.main-nav-group[data-site-nav-id] > .nav-menu-row > button { width: var(--site-nav-main-toggle); height: var(--site-nav-main-toggle); }
.nav-menu-submenu > a[data-site-nav-id] { min-height: var(--site-nav-sub-row); grid-template-columns: var(--site-nav-sub-icon-box) minmax(0,1fr) auto; gap: var(--site-nav-sub-gap); padding-inline: var(--site-nav-sub-pad); border-radius: var(--site-nav-sub-radius); font-size: var(--site-nav-sub-font); }
.nav-menu-submenu > a[data-site-nav-id] > i,
.nav-menu-submenu > a[data-site-nav-id] > .nav-icon { width: var(--site-nav-sub-icon-box); font-size: var(--site-nav-sub-icon); }
.nav-menu-submenu > a[data-site-nav-id] > b,
.main-nav[data-site-nav-list="main"] > a[data-site-nav-id] > b { font-size: var(--site-nav-badge); }
.nav-menu-submenu > span[data-site-nav-id] { min-height: var(--site-nav-sub-heading-row); display: flex; align-items: center; padding-inline: var(--site-nav-sub-pad); font-size: var(--site-nav-sub-heading); }
body > .nav-menu-submenu { position: fixed; z-index: 120; width: 224px; max-height: calc(100vh - 20px); margin: 0; overflow-y: auto; padding: 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; color: #dce7ee; background: #102a43; box-shadow: 0 18px 45px rgba(7,23,36,.28); scrollbar-width: thin; scrollbar-color: rgba(159,181,195,.32) transparent; }
body > .nav-menu-submenu::before { content: ""; position: absolute; top: var(--nav-pointer-top,20px); left: -6px; width: 11px; height: 11px; transform: rotate(45deg); border: 1px solid rgba(255,255,255,.1); border-top: 0; border-right: 0; background: #102a43; }
body > .nav-menu-submenu > span:first-child { padding-top: 2px; }

/* Administrator-only sticky rota experiment */
.rota-lab-page { --lab-name-width: 190px; --lab-day-width: 68px; --lab-head-height: 56px; --lab-note-height: 42px; --lab-row-height: 56px; --lab-total-row: 34px; --lab-sticky-top: 8px; --lab-toolbar-height: 76px; }
.admin-breadcrumbs { display: flex; align-items: center; gap: 8px; margin: -5px 0 18px; color: #8a98a5; font-size: var(--font-caption); }
.admin-breadcrumbs a { color: var(--teal-dark); font-weight: 800; }
.admin-breadcrumbs strong { color: #5d6f80; }
.admin-breadcrumbs em { color: #8a98a5; font-style: normal; }
.rota-lab-intro { margin-bottom: 17px; }
.rota-lab-hero-actions { flex-wrap: wrap; justify-content: flex-end; }
.rota-lab-live-layout { min-height: 39px; display: inline-flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: 0 12px; border: 1px solid #cae4de; border-radius: 10px; color: #176f62; background: #edf8f5; white-space: nowrap; }
.rota-lab-live-layout small { font-size: var(--font-micro); font-weight: 900; letter-spacing: .11em; }
.rota-lab-live-layout strong { margin-top: 3px; font-size: var(--font-caption); }
.rota-lab-swap { min-height: 39px; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.rota-lab-swap > span:first-child { font-size: 15px; line-height: 1; }
.rota-lab-swap:disabled { cursor: wait; opacity: .62; }
.rota-lab-readonly { min-height: 39px; display: inline-flex; align-items: center; gap: 8px; padding: 0 13px; border: 1px solid #d9e1e6; border-radius: 10px; color: #596b7c; background: rgba(255,255,255,.78); font-size: var(--font-caption); font-weight: 800; white-space: nowrap; }
.rota-lab-readonly i { width: 7px; height: 7px; border-radius: 50%; background: #8b98a5; box-shadow: 0 0 0 4px #edf1f3; }
.rota-lab-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 14px; }
.rota-lab-principles article { min-width: 0; min-height: 70px; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #e2e8ec; border-radius: 12px; background: rgba(255,255,255,.78); }
.rota-lab-principles article > span { width: 31px; height: 31px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; color: #178574; background: #e6f5f1; font-size: var(--font-caption); font-weight: 800; }
.rota-lab-principles article > div { min-width: 0; display: flex; flex-direction: column; }
.rota-lab-principles strong { font-size: var(--font-ui); }
.rota-lab-principles small { margin-top: 4px; color: var(--muted); font-size: var(--font-caption); line-height: 1.4; }
.rota-lab-frame { position: relative; isolation: isolate; min-width: 0; overflow: visible; border: 1px solid #dfe6ea; border-radius: 17px; background: white; box-shadow: 0 14px 38px rgba(18,42,65,.075); }
.rota-lab-toolbar { position: sticky; top: var(--lab-sticky-top); z-index: 48; height: var(--lab-toolbar-height); display: grid; grid-template-columns: minmax(215px,1fr) auto minmax(140px,180px) minmax(175px,235px) 38px; grid-template-areas: "title month search pan refresh"; align-items: center; gap: 9px; padding: 10px 14px; border-bottom: 1px solid #dfe6ea; border-radius: 16px 16px 0 0; background: rgba(255,255,255,.96); box-shadow: 0 7px 17px rgba(18,42,65,.055); backdrop-filter: blur(12px); }
.rota-lab-title { grid-area: title; min-width: 0; display: flex; align-items: center; gap: 10px; }
.rota-lab-mark { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: white; background: linear-gradient(145deg,#20a48e,#117566); box-shadow: 0 6px 13px rgba(22,139,122,.2); font-size: var(--font-caption); font-weight: 900; letter-spacing: .08em; }
.rota-lab-title > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.rota-lab-title strong { overflow: hidden; font-size: var(--font-body-small); text-overflow: ellipsis; white-space: nowrap; }
.rota-lab-title small { min-width: 0; display: flex; align-items: center; gap: 6px; margin-top: 4px; overflow: hidden; color: #82909d; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.rota-lab-title small i { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: #a2acb5; }
.rota-lab-month-controls { grid-area: month; height: 36px; display: inline-grid; grid-template-columns: 34px auto 34px; align-items: stretch; overflow: hidden; border: 1px solid #dfe5e9; border-radius: 9px; background: #f8fafb; }
.rota-lab-month-controls button, .rota-lab-pan button, .rota-lab-refresh { border: 0; color: #526577; background: transparent; cursor: pointer; font-weight: 800; }
.rota-lab-month-controls button { min-width: 34px; padding: 0 9px; font-size: var(--font-ui); }
.rota-lab-month-controls button:first-child, .rota-lab-month-controls button:last-child { font-size: 17px; }
.rota-lab-month-controls button:hover, .rota-lab-pan button:hover, .rota-lab-refresh:hover { color: var(--teal-dark); background: #eaf6f3; }
.rota-lab-month-controls button:disabled, .rota-lab-pan button:disabled, .rota-lab-refresh:disabled { cursor: not-allowed; opacity: .38; }
.rota-lab-search { grid-area: search; height: 36px; min-width: 0; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid #dfe5e9; border-radius: 9px; background: #fafbfc; }
.rota-lab-search > span { color: #788897; font-size: 13px; }
.rota-lab-search input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: var(--font-caption); }
.rota-lab-pan { grid-area: pan; height: 36px; min-width: 0; display: grid; grid-template-columns: 34px minmax(55px,1fr) 34px; align-items: center; overflow: hidden; border: 1px solid #dfe5e9; border-radius: 9px; background: #fafbfc; }
.rota-lab-pan button { align-self: stretch; font-size: 13px; }
.rota-lab-pan input { min-width: 0; width: 100%; height: 4px; accent-color: var(--teal); cursor: ew-resize; }
.rota-lab-pan input:disabled { cursor: default; opacity: .35; }
.rota-lab-refresh { grid-area: refresh; width: 38px; height: 36px; border: 1px solid #dfe5e9; border-radius: 9px; background: #fafbfc; font-size: 16px; }
.rota-lab-loading { min-height: 360px; display: flex; align-items: center; flex-direction: column; justify-content: center; padding: 34px; text-align: center; }
.rota-lab-loading strong { margin-top: 13px; font-size: var(--font-body-small); }
.rota-lab-loading small { max-width: 360px; margin-top: 5px; color: var(--muted); font-size: var(--font-caption); line-height: 1.5; }
.rota-lab-loading .button { margin-top: 14px; }
.rota-lab-error-mark { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 13px; color: #a54340; background: #fbe7e6; font-size: 17px; font-weight: 900; }
.rota-lab-schedule { min-width: 0; }
.rota-lab-grid-frame { min-width: 0; display: grid; grid-template-columns: var(--lab-name-width) minmax(0,1fr); align-items: stretch; }
.rota-lab-name-grid { position: relative; z-index: 5; display: grid; grid-template-rows: var(--lab-head-height) var(--lab-note-height) repeat(var(--lab-staff-count),var(--lab-row-height)); border-right: 1px solid #dfe6ea; background: white; }
.rota-lab-day-clip { min-width: 0; overflow: clip; outline: none; cursor: grab; touch-action: pan-y; user-select: none; }
.rota-lab-day-clip:focus-visible { box-shadow: inset 0 0 0 2px rgba(22,139,122,.42); }
.rota-lab-day-clip.dragging { cursor: grabbing; }
.rota-lab-day-track { width: calc(var(--lab-day-count) * var(--lab-day-width)); display: grid; grid-template-columns: repeat(var(--lab-day-count),var(--lab-day-width)); grid-template-rows: var(--lab-head-height) var(--lab-note-height) repeat(var(--lab-staff-count),var(--lab-row-height)); transition: transform .16s ease-out; will-change: transform; }
.rota-lab-day-clip.dragging .rota-lab-day-track { transition: none; }
.rota-lab-name-head, .rota-lab-day-head { position: sticky; top: calc(var(--lab-sticky-top) + var(--lab-toolbar-height)); align-self: start; height: var(--lab-head-height); z-index: 38; border-bottom: 1px solid #dfe6ea; background: #fbfcfd; }
.rota-lab-name-head { display: flex; align-items: center; padding: 0 16px; color: #8492a1; font-size: var(--font-caption); font-weight: 800; letter-spacing: .1em; }
.rota-lab-day-head { position: sticky; display: flex; align-items: center; flex-direction: column; justify-content: center; border-right: 1px solid #edf1f3; }
.rota-lab-day-head strong { font-size: 13px; line-height: 1; }
.rota-lab-day-head small { margin-top: 5px; color: #8b98a5; font-size: var(--font-caption); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rota-lab-day-head.weekend { background: #f5f7f8; }
.rota-lab-day-head.today { background: #e8f6f2; }
.rota-lab-day-head.today::after { content: ""; position: absolute; bottom: 0; width: 24px; height: 3px; border-radius: 4px 4px 0 0; background: var(--teal); }
.rota-lab-day-head.bank-holiday { color: #765714; background: #fff2bb; box-shadow: inset 0 -3px #c89422; }
.rota-lab-day-head > i { position: absolute; top: 5px; right: 4px; min-width: 17px; height: 13px; display: grid; place-items: center; padding: 0 2px; border-radius: 4px; color: white; background: #9b741f; font-size: var(--font-micro); font-style: normal; font-weight: 900; }
.rota-lab-info-label, .rota-lab-note-cell { height: var(--lab-note-height); border-bottom: 1px solid #e7ebef; background: #fffdf7; }
.rota-lab-info-label { display: flex; align-items: center; padding: 0 16px; color: #95753a; font-size: var(--font-caption); font-weight: 800; letter-spacing: .08em; }
.rota-lab-note-cell { display: grid; place-items: center; overflow: hidden; padding: 4px; border-right: 1px solid #edf1f3; text-align: center; }
.rota-lab-note-cell > span { max-height: calc(var(--lab-note-height) - 8px); overflow: hidden; color: #8b6725; font-size: var(--font-micro); line-height: 1.15; overflow-wrap: anywhere; }
.rota-lab-note-cell.weekend { background: #faf9f5; }
.rota-lab-note-cell.bank-holiday { background: #fff7dc; }
.rota-lab-person { min-width: 0; height: var(--lab-row-height); display: flex; align-items: center; gap: 9px; padding: 0 12px; border-bottom: 1px solid #e7ebef; background: white; }
.rota-lab-person > .person-avatar { width: 31px; height: 31px; flex: 0 0 auto; border-radius: 9px; font-size: var(--font-caption); }
.rota-lab-person > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.rota-lab-person strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }
.rota-lab-person small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.rota-lab-no-people { height: var(--lab-row-height); display: flex; align-items: center; flex-direction: column; justify-content: center; padding: 7px; border-bottom: 1px solid #e7ebef; text-align: center; }
.rota-lab-no-people strong { font-size: var(--font-caption); }
.rota-lab-no-people small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); }
.rota-lab-shift-cell { position: relative; height: var(--lab-row-height); border-right: 1px solid #edf1f3; border-bottom: 1px solid #e7ebef; background: white; }
.rota-lab-shift-cell.weekend { background: #f6f8f9; }
.rota-lab-shift-cell.today { background: #edf9f6; }
.rota-lab-shift-cell.bank-holiday { background: #fffaf0; box-shadow: inset 0 2px rgba(177,132,31,.18); }
.rota-lab-shift-cell > span { position: absolute; inset: 5px; display: grid; place-items: center; overflow: hidden; border-radius: 9px; color: var(--lab-shift-fg); background: var(--lab-shift-bg); box-shadow: inset 0 0 0 1px rgba(20,38,59,.06); font-size: var(--font-caption); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.rota-lab-note-dot { position: absolute; top: 7px; right: 7px; z-index: 2; width: 5px; height: 5px; border: 1px solid white; border-radius: 50%; background: #d28d20; }
.rota-lab-confirmed { position: absolute; right: 7px; bottom: 7px; z-index: 2; width: 15px; height: 15px; display: grid; place-items: center; border: 1px solid white; border-radius: 50%; color: white; background: var(--teal); font-size: var(--font-caption); }
.rota-lab-total-slot { position: relative; height: calc(var(--lab-total-row) * 2); }
.rota-lab-total-dock { width: 100%; height: calc(var(--lab-total-row) * 2); display: grid; grid-template-columns: var(--lab-name-width) minmax(0,1fr); overflow: hidden; border-top: 1px solid #e2e7eb; border-bottom: 1px solid #e2e7eb; background: white; }
.rota-lab-total-names { position: relative; z-index: 2; display: grid; grid-template-rows: repeat(2,var(--lab-total-row)); border-right: 1px solid rgba(20,38,59,.1); }
.rota-lab-total-names strong { display: flex; align-items: center; padding: 0 14px; font-size: var(--font-caption); }
.rota-lab-total-names strong:first-child { color: #755c10; background: #fff5bd; }
.rota-lab-total-names strong:last-child { color: #8a3432; background: #ffd7d5; }
.rota-lab-total-clip { min-width: 0; overflow: clip; }
.rota-lab-total-track { width: calc(var(--lab-day-count) * var(--lab-day-width)); display: grid; grid-template-columns: repeat(var(--lab-day-count),var(--lab-day-width)); grid-template-rows: repeat(2,var(--lab-total-row)); transition: transform .16s ease-out; will-change: transform; }
.rota-lab-day-clip.dragging ~ * .rota-lab-total-track { transition: none; }
.rota-lab-total-track > span { display: grid; place-items: center; border-right: 1px solid rgba(20,38,59,.07); font-size: var(--font-caption); font-weight: 800; }
.rota-lab-total-track > span.day { color: #755c10; background: #fff5bd; }
.rota-lab-total-track > span.night { color: #8a3432; background: #ffd7d5; }
.rota-lab-legend { min-height: 62px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; padding: 12px 15px; border-radius: 0 0 16px 16px; background: white; }
.rota-lab-legend > span { display: inline-flex; align-items: center; gap: 6px; color: #617283; font-size: var(--font-caption); white-space: nowrap; }
.rota-lab-legend > span > i { width: 11px; height: 11px; display: grid; place-items: center; border-radius: 4px; font-size: var(--font-micro); font-style: normal; }
.rota-lab-legend > span > i.confirmed { color: white; background: var(--teal); }
.rota-lab-footnote { margin: 12px 3px 0; color: #7a8997; font-size: var(--font-caption); line-height: 1.5; text-align: center; }
.rota-lab-footnote strong { color: #526575; }
.rota-lab-preview-classic .rota-lab-frame { overflow: hidden; }
.rota-lab-preview-classic .rota-lab-toolbar { position: relative; top: auto; }
.rota-lab-preview-classic .rota-lab-schedule { max-height: min(68vh,780px); overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #c7d0da transparent; }
.rota-lab-preview-classic .rota-lab-name-head,
.rota-lab-preview-classic .rota-lab-day-head { top: 0; }

@media (max-width: 1050px) {
  .rota-lab-page { --lab-toolbar-height: 116px; }
  .rota-lab-toolbar { grid-template-columns: minmax(190px,1fr) auto 38px; grid-template-areas: "title month refresh" "search pan pan"; }
}

@media (max-width: 900px) {
  .main-nav[data-site-nav-list="main"] > a[data-site-nav-id] { min-height: 48px; justify-content: center; gap: 0; padding: 0; border-radius: 11px; font-size: var(--font-ui); }
  .main-nav[data-site-nav-list="main"] > a[data-site-nav-id] > .nav-icon,
  .main-nav[data-site-nav-list="main"] > a[data-site-nav-id] > i { width: auto; font-size: 16px; }
  .main-nav-group[data-site-nav-id] > .nav-menu-row > a { min-height: 48px; gap: 0; padding: 0; border-radius: 11px; font-size: var(--font-ui); }
  .main-nav-group[data-site-nav-id] > .nav-menu-row > a > .nav-icon { width: auto; font-size: 16px; }
  .nav-menu-row > a { width: 52px; flex: 0 0 52px; justify-content: center; padding: 0; }
  .nav-menu-row > button { top: 5px; right: -1px; width: 22px; height: 22px; transform: none; border-radius: 7px; }
  .nav-menu-group.submenu-open .nav-menu-row > button, .nav-menu-row > button[aria-expanded="true"] { transform: none; }
  .nav-menu-chevron { width: 6px; height: 6px; border-width: 0 1.25px 1.25px 0; }
  body > .nav-menu-submenu > a { min-height: 40px; }
  body > .nav-menu-submenu > a > span { display: block !important; }
  .rota-lab-page { --lab-name-width: 160px; }
}

@media (max-width: 720px) {
  .rota-lab-page { --lab-name-width: 125px; --lab-day-width: 54px; --lab-row-height: 52px; }
  .rota-lab-intro { align-items: flex-start; flex-direction: column; }
  .rota-lab-intro .hero-actions { width: 100%; justify-content: space-between; }
  .rota-lab-principles { grid-template-columns: 1fr; }
  .rota-lab-principles article { min-height: 58px; }
  .rota-lab-name-head, .rota-lab-info-label { padding-inline: 10px; }
  .rota-lab-person { gap: 6px; padding-inline: 8px; }
  .rota-lab-person > .person-avatar { width: 27px; height: 27px; border-radius: 8px; font-size: var(--font-micro); }
  .rota-lab-person strong { font-size: var(--font-ui); }
  .rota-lab-total-names strong { padding-inline: 9px; font-size: var(--font-micro); }
}

@media (max-width: 620px) {
  .main-nav { overflow-y: hidden; }
  .main-nav-group { flex: 0 0 66px; }
  .nav-menu-row > a { width: 66px; min-height: 48px; flex: 0 0 66px; flex-direction: column; gap: 3px; border-radius: 9px; font-size: var(--font-ui); }
  .nav-menu-row > button { top: 2px; right: 1px; width: 20px; height: 20px; }
  body > .nav-menu-submenu { width: min(240px,calc(100vw - 20px)); max-height: calc(100vh - 92px); max-height: calc(100dvh - 92px); }
  body > .nav-menu-submenu::before { top: auto; right: 27px; bottom: -6px; left: auto; transform: rotate(-45deg); }
  .rota-lab-page { --lab-name-width: 112px; --lab-day-width: 52px; --lab-head-height: 52px; --lab-note-height: 38px; --lab-total-row: 32px; }
  .admin-breadcrumbs { margin-bottom: 14px; }
  .rota-lab-intro .hero-actions { align-items: stretch; flex-direction: column; }
  .rota-lab-live-layout { align-items: center; }
  .rota-lab-swap { justify-content: center; }
  .rota-lab-readonly { width: 100%; justify-content: center; }
  .rota-lab-frame { border-radius: 13px; }
  .rota-lab-toolbar { padding-inline: 9px; border-radius: 12px 12px 0 0; }
  .rota-lab-mark { width: 34px; height: 34px; }
  .rota-lab-title strong { font-size: var(--font-ui); }
  .rota-lab-title small { font-size: var(--font-micro); }
  .rota-lab-month-controls button { padding-inline: 6px; }
  .rota-lab-search { padding-inline: 8px; }
  .rota-lab-day-head strong { font-size: var(--font-body-small); }
  .rota-lab-day-head small { font-size: var(--font-micro); }
  .rota-lab-shift-cell > span { inset: 4px; border-radius: 8px; font-size: var(--font-caption); }
  .rota-lab-confirmed { right: 5px; bottom: 5px; }
  .rota-lab-note-dot { top: 5px; right: 5px; }
  .rota-lab-legend { gap: 8px 11px; padding: 11px; }
}

@media (max-width: 480px) {
  .rota-lab-page { --lab-toolbar-height: 166px; --lab-name-width: 104px; --lab-day-width: 50px; }
  .rota-lab-toolbar { grid-template-columns: minmax(0,1fr) 38px; grid-template-areas: "title title" "month refresh" "search search" "pan pan"; gap: 6px; padding-block: 8px; }
  .rota-lab-month-controls { width: max-content; }
  .rota-lab-title > span:last-child { max-width: calc(100vw - 98px); }
  .rota-lab-principles article:nth-child(2), .rota-lab-principles article:nth-child(3) { display: none; }
  .rota-lab-name-head { font-size: var(--font-micro); }
  .rota-lab-person > .person-avatar { display: none; }
  .rota-lab-person { padding-inline: 7px; }
  .rota-lab-total-names strong { font-size: var(--font-micro); }
}

/* Leave balance context, compact live-rota previews and conditional approval. */
.leave-request-row > div { min-width: 0; }
.leave-rota-preview { min-width: 0; margin-top: 8px; padding: 7px; border: 1px solid #dce7e4; border-radius: 10px; background: #f7faf9; }
.leave-rota-preview-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0 2px 6px; }
.leave-rota-preview-head strong { color: #153b34; font-size: var(--font-caption); text-transform: uppercase; letter-spacing: .08em; }
.leave-rota-preview-head span { overflow: hidden; color: #778a85; font-size: var(--font-micro); text-overflow: ellipsis; white-space: nowrap; }
.leave-rota-preview-track { display: flex; gap: 5px; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 0 0 5px; outline: none; overscroll-behavior-inline: contain; scrollbar-color: #a8c5be transparent; scrollbar-width: thin; }
.leave-rota-preview-track:focus-visible { border-radius: 7px; box-shadow: 0 0 0 2px rgba(22,139,122,.18); }
.leave-rota-preview-track::-webkit-scrollbar { height: 4px; }.leave-rota-preview-track::-webkit-scrollbar-thumb { border-radius: 999px; background: #a8c5be; }.leave-rota-preview-track::-webkit-scrollbar-track { background: transparent; }
.leave-rota-preview-day { position: relative; flex: 0 0 76px; min-width: 0; display: grid; grid-template-rows: 18px 34px 17px; gap: 3px; padding: 5px; border: 1px solid #dbe4e7; border-radius: 8px; background: white; box-shadow: 0 1px 2px rgba(26,50,67,.035); }
.leave-rota-preview-day.starts-block { margin-left: 5px; }.leave-rota-preview-day.starts-block::before { position: absolute; top: 5px; bottom: 5px; left: -6px; width: 1px; content: ''; background: #9fcfc4; }
.leave-rota-preview-day.context-only { border-style: dashed; background: #fafbfb; }
.leave-rota-preview-date { min-width: 0; display: flex; align-items: baseline; gap: 3px; color: #637580; }
.leave-rota-preview-date b { font-size: var(--font-micro); letter-spacing: .04em; }.leave-rota-preview-date strong { color: #183046; font-size: var(--font-ui); }.leave-rota-preview-date small { overflow: hidden; font-size: var(--font-micro); text-overflow: ellipsis; }.leave-rota-preview-date i { margin-left: auto; color: #6c9088; font-size: var(--font-micro); font-style: normal; font-weight: 800; }
.leave-rota-preview-shift { position: relative; min-width: 0; display: flex; align-items: center; flex-direction: column; justify-content: center; overflow: hidden; padding: 3px 4px; border-radius: 6px; color: var(--leave-preview-fg); background: var(--leave-preview-bg); }
.leave-rota-preview-shift b { max-width: 100%; overflow: hidden; font-size: var(--font-caption); line-height: 1; text-overflow: ellipsis; white-space: nowrap; }.leave-rota-preview-shift small { max-width: 100%; overflow: hidden; margin-top: 2px; font-size: var(--font-micro); line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.leave-rota-preview-note { position: absolute; top: 3px; right: 3px; width: 5px; height: 5px; border: 1px solid rgba(255,255,255,.9); border-radius: 50%; background: #b56d18; box-shadow: 0 1px 2px rgba(60,35,5,.25); }
.leave-rota-preview-coverage { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }.leave-rota-preview-coverage b { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 3px; border-radius: 4px; color: #486169; background: #edf2f3; font-size: var(--font-micro); }.leave-rota-preview-coverage b:last-child { color: #84413f; background: #fae9e8; }.leave-rota-preview-coverage i { color: #9d811e; font-style: normal; }
.leave-rota-preview-flag { position: absolute; z-index: 1; top: -4px; right: -3px; max-width: 48px; overflow: hidden; padding: 2px 4px; border: 1px solid white; border-radius: 999px; color: #6e7b82; background: #e9edef; box-shadow: 0 1px 3px rgba(31,47,57,.12); font-size: var(--font-micro); font-weight: 900; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }.leave-rota-preview-flag.bank-holiday { color: white; background: #a8781f; }
.leave-rota-preview-more { display: block; margin: 2px 2px 0; color: #768985; font-size: var(--font-micro); }
.leave-rota-preview.admin-preview { margin: -1px 0 10px; }.leave-rota-preview.admin-preview .leave-rota-preview-day { flex-basis: 72px; }
.leave-request-balance { width: max-content; display: inline-flex; align-items: baseline; gap: 3px; margin-top: 7px; padding: 5px 8px; border: 1px solid #d8e4e1; border-radius: 999px; color: #61766f; background: #f4f9f7; font-size: var(--font-caption); font-weight: 700; }
.leave-request-balance > b { color: #0e7665; font-size: var(--font-ui); }
.leave-status.conditional { color: #76518f; background: #f1e8f8; }
.leave-request-row.conditional { background: linear-gradient(90deg,rgba(126,82,157,.045),transparent 42%); }
.conditional-leave-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.conditional-leave-actions .button { min-height: 31px; }
.leave-review-card.conditional { border-color: #dfd1e9; box-shadow: inset 0 3px #9b73b7; }
.leave-request-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.leave-request-meta .leave-request-balance { flex: 0 0 auto; margin: 0; }
.leave-review-card > footer .conditional-button { color: #694b80; border-color: #d9c7e5; background: #f8f3fb; }
.leave-review-card > footer > span > strong { display: block; margin-bottom: 3px; color: #73528a; font-size: var(--font-caption); text-transform: uppercase; }
[data-leave-condition-help] { align-self: flex-start !important; color: #76518f !important; }
@media (max-width: 720px) {
  .leave-rota-preview-day { flex-basis: 70px; }
  .leave-rota-preview-head { align-items: flex-start; flex-direction: column; gap: 2px; }
  .leave-request-meta { align-items: flex-start; flex-direction: column; }
  .leave-review-card > footer { flex-wrap: wrap; }
  .leave-review-card > footer .button { flex: 1 1 auto; }
}

/* Effective-dated rota positions and per-shift presentation */
.cell-shift { font-size: var(--shift-font-size, var(--font-ui)); }
.cell-note-dot { top: 2px; right: 2px; width: 10px; height: 10px; border: 2px solid white; box-shadow: 0 1px 4px rgba(74,45,8,.3); }
.rota-lab-note-dot { width: 8px; height: 8px; border-width: 2px; box-shadow: 0 1px 4px rgba(74,45,8,.25); }
.rota-lab-shift-cell > span { font-size: var(--lab-shift-font-size, var(--font-caption)); }.rota-lab-person.vacant-position { background: #fffdf1; }.rota-lab-person.vacant-position > .person-avatar { color: #745500; background: #fff0a8; box-shadow: inset 0 0 0 1px #ebd066; }
.entry-note-field { grid-column: 1 / -1; }
.pixel-input { height: 42px; display: grid; grid-template-columns: minmax(0,1fr) 34px; align-items: center; overflow: hidden; border: 1px solid #dce3e8; border-radius: 9px; background: #fbfcfd; }
.pixel-input:focus-within { border-color: #3aa893; background: white; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }
.form-grid .pixel-input input { height: 40px; padding-right: 2px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.pixel-input b { height: 100%; display: grid; place-items: center; color: #788996; border-left: 1px solid #e3e8eb; background: #f1f4f5; font-size: var(--font-caption); }
.staff-cell.vacant-position { background: #fffdf1; }.staff-cell.vacant-position .person-avatar,.sortable-staff-item.vacant-position .person-avatar { color: #745500; background: #fff0a8; box-shadow: inset 0 0 0 1px #ebd066; }
.sortable-staff-item.vacant-position { border-color: #eee2a8; background: #fffdf4; }
.note-cell.position-change-date-column,
.rota-total-cell.position-change-date-column,
.rota-lab-note-cell.position-change-date-column,
.rota-lab-total-track > span.position-change-date-column { position: relative; }
.position-change-rail { position: absolute; z-index: 4; top: -1px; bottom: -1px; left: -2px; width: 3px; pointer-events: none; background: repeating-linear-gradient(to bottom,#0f927f 0 6px,rgba(15,146,127,.22) 6px 9px); box-shadow: 1px 0 0 rgba(255,255,255,.78); }
.position-change-day-badge { position: absolute; z-index: 5; top: 5px; left: 5px; width: 16px; height: 16px; display: grid; place-items: center; border: 1px solid #b9e2d9; border-radius: 5px; color: #087765; background: #e3f7f2; box-shadow: 0 2px 5px rgba(13,109,93,.12); font-size: var(--font-ui); font-style: normal; font-weight: 900; line-height: 1; }
.date-head.position-change-date-column.bank-holiday.has-note::before { left: 27px; }
.position-change-cell .cell-shift { box-shadow: inset 0 0 0 2px rgba(15,146,127,.38),inset 0 0 0 3px rgba(255,255,255,.36); }
.position-change-marker { position: absolute; z-index: 6; top: 2px; left: 3px; min-width: 21px; height: 12px; display: grid; place-items: center; padding: 0 4px; pointer-events: none; border: 1px solid white; border-radius: 4px; color: white; background: #396a8e; box-shadow: 0 2px 5px rgba(13,38,59,.22); font-size: var(--font-micro); font-weight: 900; letter-spacing: .08em; line-height: 1; }
.position-change-marker.in { background: #078573; }.position-change-marker.out { background: #b86f19; }
.staff-cell.has-position-change { box-shadow: inset -3px 0 #87cfc1; }
.staff-position-change-copy { max-width: 100%; overflow: hidden; color: #117b6c !important; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.hover-card-position-change { margin-top: 9px; padding: 9px 10px 10px; border: 1px solid #bde2da; border-left: 4px solid #0c8b77; border-radius: 8px; background: #ecfaf6; box-shadow: 0 4px 11px rgba(18,111,95,.08); }
.hover-card-position-change.out { border-color: #efd5aa; border-left-color: #b86f19; background: #fff7e8; }
.hover-card-position-change > span { display: block; color: #087563; font-size: var(--font-caption); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hover-card-position-change.out > span { color: #925611; }
.hover-card-position-change > p { margin: 4px 0 0; color: #274b45; font-size: var(--font-ui); font-weight: 700; line-height: 1.4; }
.rota-lab-position-change-rail { position: absolute; z-index: 4; top: -1px; bottom: -1px; left: -2px; width: 3px; pointer-events: none; background: repeating-linear-gradient(to bottom,#0f927f 0 5px,rgba(15,146,127,.22) 5px 8px); box-shadow: 1px 0 0 rgba(255,255,255,.75); text-decoration: none; }
.rota-lab-position-change-day { position: absolute; z-index: 5; top: 5px; left: 4px; width: 15px; height: 15px; display: grid; place-items: center; border: 1px solid #b9e2d9; border-radius: 5px; color: #087765; background: #e3f7f2; font-size: var(--font-caption); line-height: 1; }
.rota-lab-shift-cell.position-change-cell > span { box-shadow: inset 0 0 0 2px rgba(15,146,127,.38),inset 0 0 0 3px rgba(255,255,255,.34); }
.rota-lab-position-change-marker { position: absolute; z-index: 6; top: 3px; left: 3px; min-width: 19px; height: 11px; display: grid; place-items: center; padding: 0 3px; border: 1px solid white; border-radius: 4px; color: white; background: #396a8e; box-shadow: 0 2px 4px rgba(13,38,59,.2); font-size: var(--font-micro); font-style: normal; font-weight: 900; letter-spacing: .07em; line-height: 1; }
.rota-lab-position-change-marker.in { background: #078573; }.rota-lab-position-change-marker.out { background: #b86f19; }
.rota-lab-person.has-position-change { box-shadow: inset -3px 0 #87cfc1; }
.staff-row-actions .position-action { width: auto; padding: 0 8px; font-size: var(--font-caption); font-weight: 800; }
.staff-row-actions .fill-position-action { color: #0d7968; border-color: #b7ddd4; background: #eef9f6; }.staff-row-actions .fill-position-action:hover { color: #075d51; background: #dff4ef; }
.staff-row-actions .vacate-position-action { color: #8b6220; border-color: #ead8ad; background: #fff9e8; }.staff-row-actions .vacate-position-action:hover { color: #6d490f; background: #fff2c9; }
.position-dialog { width: min(700px, calc(100vw - 28px)); }.position-dialog-body { display: grid; gap: 17px; background: #fbfcfd; }.position-dialog-body .stacked-field small,.position-dialog-body .form-grid small { align-self: auto; line-height: 1.4; }
.position-dialog-body .form-grid select { width: 100%; height: 42px; padding: 0 32px 0 11px; border: 1px solid #dce3e8; border-radius: 9px; outline: 0; color: var(--ink); background: white; font: inherit; font-size: var(--font-ui); }.position-dialog-body .form-grid select:focus { border-color: #3aa893; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }
.position-live-switch { margin-top: 1px; background: white; }.position-change-preview { min-height: 78px; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 12px; padding: 13px; border: 1px solid #cfe4df; border-radius: 12px; background: #edf8f5; }.position-change-preview > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; color: white; background: var(--teal); font-size: 12px; font-weight: 900; }.position-change-preview p { margin: 0; color: #657785; font-size: var(--font-caption); line-height: 1.5; }.position-change-preview p strong { display: block; margin-bottom: 3px; color: #203a4d; font-size: var(--font-ui); }.position-change-preview.danger { border-color: #eadbaa; background: #fff9e5; }.position-change-preview.danger > span { color: #684e00; background: #ffe570; }

/* Custom date colouring keeps shift cards readable while carrying one tint
   through every view of the selected day. It intentionally follows the Bank
   Holiday rules so a BH badge can coexist with an administrator's colour. */
.date-head.custom-day-colour,
.rota-lab-day-head.custom-day-colour { color: var(--day-custom-ink); background: var(--day-custom-header); box-shadow: inset 0 -4px var(--day-custom-colour); }
.date-head.custom-day-colour > span,
.rota-lab-day-head.custom-day-colour > small { color: var(--day-custom-ink); opacity: .72; }
.note-cell.custom-day-colour,
.shift-cell.custom-day-colour,
.rota-lab-note-cell.custom-day-colour,
.rota-lab-shift-cell.custom-day-colour { background: var(--day-custom-soft); box-shadow: inset 0 3px var(--day-custom-line); }
.rota-total-cell.custom-day-colour,
.rota-lab-total-track > span.custom-day-colour { box-shadow: inset 0 3px var(--day-custom-colour); background-image: linear-gradient(var(--day-custom-soft),var(--day-custom-soft)); }
.day-colour-setting { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 11px 14px; padding: 13px; border: 1px solid #dfe6e9; border-radius: 11px; background: #f9fbfb; }
.day-colour-setting > div { min-width: 0; display: grid; grid-template-columns: 39px minmax(0,1fr); align-items: center; gap: 11px; }
.day-colour-setting > div > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.day-colour-setting strong { color: #30495a; font-size: var(--font-ui); }
.day-colour-setting small { margin-top: 4px; color: #7e8d99; font-size: var(--font-caption); line-height: 1.4; }
.day-colour-swatch { width: 39px; height: 39px; border: 3px solid white; border-radius: 11px; background: var(--day-colour-preview,#f2f5f6); box-shadow: 0 0 0 1px #d6dfe3, inset 0 -5px rgba(16,42,67,.1); }
.day-colour-swatch.empty { background-image: linear-gradient(135deg,transparent 46%,#c5cfd4 47% 53%,transparent 54%); }
.day-colour-picker { min-width: 132px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 8px; padding: 6px 9px 6px 6px; border: 1px solid #d8e1e5; border-radius: 9px; color: #536979; background: white; cursor: pointer; }
.day-colour-picker > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.day-colour-picker input[type="color"] { width: 31px; height: 31px; padding: 2px; border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.day-colour-picker b { font-size: var(--font-caption); letter-spacing: .04em; }
.day-colour-setting > button { grid-column: 2; justify-self: end; font-size: var(--font-caption); }
@media (max-width: 520px) {
  .day-colour-setting { grid-template-columns: 1fr; }
  .day-colour-picker { width: 100%; }
  .day-colour-setting > button { grid-column: 1; justify-self: start; }
}
@media (max-width: 720px) {
  .cell-shift { font-size: var(--shift-font-size, var(--font-caption)); }
  .position-dialog { width: 100vw; max-width: none; }.position-dialog-body .form-grid.two-columns { grid-template-columns: 1fr; }
  .staff-row-actions .position-action { padding-inline: 6px; }
}

/* Official Notice Board */
.notice-board-intro, .it-fault-intro { align-items: center; }
.notice-stat-grid, .fault-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin-bottom: 17px; }
.notice-stat-grid article, .fault-stat-grid article { min-height: 84px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.notice-stat-grid article > span, .fault-stat-grid article > span { width: 39px; height: 39px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; color: #176f61; background: #e8f7f3; font-size: 13px; font-weight: 800; }
.notice-stat-grid article > div, .fault-stat-grid article > div { display: flex; flex-direction: column; }
.notice-stat-grid strong, .fault-stat-grid strong { font-size: 19px; letter-spacing: -.04em; }
.notice-stat-grid small, .fault-stat-grid small { margin-top: 2px; color: var(--muted); font-size: var(--font-caption); }
.notice-stat-grid .unread-stat > span { color: #a26416; background: #fff2d6; }
.notice-board-shell, .fault-log-shell { overflow: hidden; }
.notice-board-toolbar, .fault-log-toolbar { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 18px; border-bottom: 1px solid var(--line); }
.notice-board-toolbar > div:first-child, .fault-log-toolbar > div:first-child { flex: 0 0 auto; }
.notice-board-toolbar h3, .fault-log-toolbar h3 { margin: 5px 0 0; font: 800 15px Tahoma,Arial,sans-serif; }
.notice-filter-bar, .fault-filter-bar { min-width: 0; display: flex; align-items: center; gap: 7px; }
.notice-filter-bar .search-field, .fault-filter-bar .search-field { width: min(300px,27vw); }
.notice-card-list { display: grid; gap: 10px; padding: 13px; background: #f6f8f9; }
.notice-card { min-width: 0; display: grid; grid-template-columns: 5px minmax(0,1fr); overflow: hidden; border: 1px solid #e0e6e9; border-radius: 13px; background: white; box-shadow: 0 4px 15px rgba(20,38,59,.04); }
.notice-card[hidden], .fault-row[hidden] { display: none; }
.notice-card.unread { border-color: #91cbbf; box-shadow: 0 5px 18px rgba(22,139,122,.09); }
.notice-card.pinned { border-color: #d9c894; background: linear-gradient(135deg,#fffdf7 0,#fff 40%); }
.notice-priority-rail { background: #8eb9ad; }
.priority-important .notice-priority-rail { background: #e2a13c; }
.priority-urgent .notice-priority-rail { background: #e65d58; }
.notice-card-main { min-width: 0; padding: 15px 17px 14px; }
.notice-card-main > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.notice-labels, .notice-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.notice-labels > span { min-height: 21px; display: inline-flex; align-items: center; padding: 0 7px; border-radius: 999px; font-size: var(--font-micro); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.notice-category { color: #466174; background: #edf2f4; }
.notice-priority { color: #287565; background: #e9f7f3; }
.priority-important .notice-priority { color: #875c18; background: #fff0ce; }
.priority-urgent .notice-priority { color: #9d3834; background: #fee1df; }
.notice-pin { color: #7e601b; background: #f8ebc3; }
.notice-new { color: white; background: var(--teal); }
.notice-actions .text-button { font-size: var(--font-caption); }
.notice-message-frame { position: relative; margin-top: 28px; overflow: visible; border: 1px solid #dbe4e7; border-radius: 11px; background: white; box-shadow: 0 2px 8px rgba(22,43,57,.025); }
.notice-card.unread .notice-message-frame { border-color: #add7cd; box-shadow: 0 4px 13px rgba(22,139,122,.06); }
.notice-card.pinned .notice-message-frame { border-color: #dfcf98; }
.notice-message-letterhead { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: -21px 10px 0; padding: 0; border: 0; background: transparent; }
.notice-message-content { min-height: 72px; padding: 11px 13px 16px; }
.notice-message-content > h3 { margin: 0 0 7px; font: 800 15px/1.3 Tahoma,Arial,sans-serif; letter-spacing: -.02em; }
.notice-copy { margin: 0; color: #4e6172; font-size: var(--font-ui); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.notice-author { min-width: 0; display: flex; align-items: center; gap: 8px; }
.notice-message-letterhead .notice-author { min-height: 41px; padding: 4px 10px 4px 4px; border: 1px solid #dbe4e7; border-radius: 10px; background: white; box-shadow: 0 3px 9px rgba(22,43,57,.05); }
.notice-card.unread .notice-message-letterhead .notice-author { border-color: #add7cd; }
.notice-card.pinned .notice-message-letterhead .notice-author { border-color: #dfcf98; }
.notice-author .person-avatar { width: 31px; height: 31px; border-radius: 9px; font-size: var(--font-caption); }
.notice-author > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.notice-author strong { font-size: var(--font-caption); }
.notice-author small, .notice-expiry { margin-top: 2px; color: var(--muted); font-size: var(--font-caption); }
.notice-message-letterhead .notice-expiry { margin-left: auto; padding: 5px 7px; border-radius: 7px; background: white; }
.notice-expiry strong { color: #5b6d7d; }
.notice-empty, .fault-empty { min-height: 230px; background: white; }
.notice-form-body, .fault-report-body { display: grid; gap: 15px; }
.notice-editor-dialog { width: min(860px,calc(100vw - 28px)); }
.notice-form-body .stacked-field textarea { min-height: 180px; }
.notice-audience-picker { overflow: hidden; border: 1px solid #dce5e7; border-radius: 12px; background: #fbfcfc; }
.notice-audience-picker > header { min-height: 73px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 14px; border-bottom: 1px solid #e3e9eb; background: white; }
.notice-audience-picker > header h3 { margin: 4px 0 3px; font: 800 12px Tahoma,Arial,sans-serif; }
.notice-audience-picker > header p { max-width: 580px; margin: 0; color: #758592; font-size: var(--font-caption); line-height: 1.45; }
.notice-audience-picker > header > strong { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; color: #176f61; background: #e5f5f1; font-size: var(--font-caption); white-space: nowrap; }
.notice-audience-modes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 10px; }
.notice-audience-modes label { min-height: 59px; position: relative; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid #dce4e7; border-radius: 10px; background: white; cursor: pointer; }
.notice-audience-modes label:has(input:checked) { border-color: #79beaf; background: #eff9f6; box-shadow: inset 0 0 0 1px #a8d8cd; }
.notice-audience-modes label:focus-within { outline: 2px solid #173e58; outline-offset: 2px; }
.notice-audience-modes input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.notice-audience-mode-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #607684; background: #eef2f4; font-size: 12px; font-weight: 800; }
.notice-audience-modes label:has(input:checked) .notice-audience-mode-icon { color: white; background: var(--teal); }
.notice-audience-modes label > span:last-child { min-width: 0; display: flex; flex-direction: column; }.notice-audience-modes strong { font-size: var(--font-ui); }.notice-audience-modes small { margin-top: 3px; color: #7c8b96; font-size: var(--font-caption); }
.notice-audience-panel { padding: 10px; border-top: 1px solid #e3e9eb; background: #f5f8f8; }
.notice-audience-panel[hidden] { display: none; }
.notice-audience-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }.notice-audience-toolbar .search-field { width: min(310px,55%); background: white; }.notice-audience-toolbar > div { display: flex; gap: 10px; }
.notice-audience-list { max-height: 244px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; overflow-y: auto; padding: 1px; }
.notice-audience-list > label { min-width: 0; min-height: 55px; position: relative; display: grid; grid-template-columns: 0 33px minmax(0,1fr) 22px; align-items: center; gap: 8px; padding: 7px 8px; overflow: hidden; border: 1px solid #dce4e7; border-radius: 9px; background: white; cursor: pointer; }
.notice-audience-list > label[hidden] { display: none; }.notice-audience-list > label:has(input:checked) { border-color: #8bc9bb; background: #eff9f6; }.notice-audience-list > label:focus-within { outline: 2px solid #173e58; outline-offset: -1px; }
.notice-audience-list input { width: 1px; height: 1px; opacity: 0; }.notice-audience-list .person-avatar { width: 33px; height: 33px; border-radius: 9px; font-size: var(--font-caption); }.notice-audience-list label > span:nth-child(3) { min-width: 0; display: flex; flex-direction: column; }.notice-audience-list strong,.notice-audience-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.notice-audience-list strong { font-size: var(--font-caption); }.notice-audience-list small { margin-top: 3px; color: #7e8d98; font-size: var(--font-micro); }
.notice-audience-list label > i { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid #d4dee2; border-radius: 7px; color: transparent; background: #f8fafb; font-size: var(--font-caption); font-style: normal; font-weight: 800; }.notice-audience-list label:has(input:checked) > i { color: white; border-color: var(--teal); background: var(--teal); }
.notice-audience-empty { margin: 0; padding: 20px; color: #7d8c97; font-size: var(--font-caption); text-align: center; }.notice-audience-empty[hidden] { display: none; }.notice-editor-dialog .dialog-foot > span:first-child { color: #667b87; font-size: var(--font-caption); font-weight: 700; }
.notice-pin-choice { min-height: 61px; display: grid; grid-template-columns: 0 32px 1fr; align-items: center; gap: 10px; padding: 10px 12px; overflow: hidden; border: 1px solid #e2e6e9; border-radius: 10px; background: #fafbfc; cursor: pointer; }
.notice-pin-choice:has(input:checked) { border-color: #d2b964; background: #fff9e6; }
.notice-pin-choice input { width: 1px; height: 1px; opacity: 0; }
.notice-pin-choice > span:nth-child(2) { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: #8c6a1a; background: #f6e8bb; }
.notice-pin-choice > span:last-child { display: flex; flex-direction: column; }
.notice-pin-choice strong { font-size: var(--font-ui); }
.notice-pin-choice small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }

/* IT fault reporting and immutable activity log */
.fault-stat-grid article.active > span { color: white; background: #d65450; }
.fault-list { display: grid; background: #f8fafb; }
.fault-row { width: 100%; min-height: 86px; display: grid; grid-template-columns: 5px minmax(270px,1fr) minmax(100px,.35fr) minmax(100px,.35fr) 80px 18px; align-items: center; gap: 13px; padding: 0 16px 0 0; border: 0; border-bottom: 1px solid #e4e9ec; color: var(--ink); background: white; cursor: pointer; text-align: left; font-family: Tahoma,Arial,sans-serif; }
.fault-row:last-of-type { border-bottom: 0; }
.fault-row:hover { position: relative; z-index: 1; background: #f4faf8; box-shadow: inset 3px 0 var(--teal); }
.fault-row-state { align-self: stretch; display: grid; place-items: center; background: #8c9aa7; }
.fault-row-state i { width: 0; height: 0; }
.fault-row.status-open .fault-row-state { background: #d65450; }
.fault-row.status-investigating .fault-row-state { background: #e69a32; }
.fault-row.status-waiting .fault-row-state { background: #6688a9; }
.fault-row.status-resolved .fault-row-state, .fault-row.status-closed .fault-row-state { background: #35a77e; }
.fault-row-copy { min-width: 0; display: flex; flex-direction: column; padding-block: 12px; }
.fault-row-copy > span { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.fault-row-copy b { color: #607486; font-size: var(--font-caption); letter-spacing: .06em; }
.fault-row-copy > strong { margin-top: 7px; overflow: hidden; font-size: var(--font-body-small); text-overflow: ellipsis; white-space: nowrap; }
.fault-row-copy > small { margin-top: 5px; overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.fault-priority, .fault-status, .fault-category { min-height: 21px; display: inline-flex; align-items: center; padding: 0 7px; border-radius: 999px; font-size: var(--font-micro); font-style: normal; font-weight: 800; text-transform: uppercase; }
.fault-priority { color: #526779; background: #edf1f4; }
.fault-priority.priority-high { color: #8a5b16; background: #ffefce; }
.fault-priority.priority-critical { color: #a03b37; background: #fee0de; }
.fault-priority.priority-low { color: #5d7388; background: #eef4f8; }
.fault-status { color: #5a6875; background: #edf1f3; }
.fault-status.status-open { color: #a13a36; background: #fee2e0; }
.fault-status.status-investigating { color: #8a5c19; background: #fff0d2; }
.fault-status.status-waiting { color: #446987; background: #e9f1f8; }
.fault-status.status-resolved, .fault-status.status-closed { color: #27765d; background: #e6f6f0; }
.fault-category { color: #4c6678; background: #edf2f4; }
.fault-row-person { min-width: 0; display: flex; flex-direction: column; }
.fault-row-person small { color: var(--muted); font-size: var(--font-micro); }
.fault-row-person strong { margin-top: 4px; overflow: hidden; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.fault-row > time { color: var(--muted); font-size: var(--font-caption); text-align: right; }
.fault-row-arrow { color: #8a98a5; font-size: 18px; }
.fault-report-body .stacked-field textarea { min-height: 160px; }
.fault-detail-dialog { width: min(980px,calc(100vw - 28px)); }
.fault-detail-shell { max-height: min(900px,calc(100vh - 30px)); display: flex; flex-direction: column; }
.fault-detail-body { display: grid; gap: 13px; padding: 15px; background: #f4f7f8; }
.fault-detail-loading { min-height: 350px; display: flex; align-items: center; flex-direction: column; justify-content: center; gap: 12px; color: var(--muted); }
.fault-detail-loading > span { width: 28px; height: 28px; border: 3px solid #dbe3e6; border-top-color: var(--teal); border-radius: 50%; animation: spinner .8s linear infinite; }
.fault-detail-loading strong { font-size: var(--font-ui); }
.fault-detail-overview, .fault-management-panel, .fault-history-section, .fault-comment-panel { padding: 17px; border: 1px solid #dfe6e9; border-radius: 13px; background: white; }
.fault-detail-labels { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.fault-description { margin: 14px 0; color: #405568; font-size: var(--font-ui); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.fault-detail-meta { display: grid; grid-template-columns: repeat(4,1fr); margin: 0; overflow: hidden; border: 1px solid #e5e9ec; border-radius: 10px; }
.fault-detail-meta > div { min-width: 0; padding: 10px; border-right: 1px solid #e5e9ec; background: #f8fafb; }
.fault-detail-meta > div:last-child { border: 0; }
.fault-detail-meta dt { color: var(--muted); font-size: var(--font-micro); text-transform: uppercase; }
.fault-detail-meta dd { margin: 4px 0 0; overflow: hidden; font-size: var(--font-caption); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.fault-management-panel > header, .fault-history-section > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin-bottom: 14px; }
.fault-management-panel h3, .fault-history-section h3, .fault-comment-panel h3 { margin: 5px 0 0; font: 800 14px Tahoma,Arial,sans-serif; }
.fault-management-panel header > small, .fault-history-section header > small { color: var(--muted); font-size: var(--font-caption); }
.fault-management-form { display: grid; gap: 12px; }
.fault-management-form .stacked-field textarea { min-height: 84px; }
.fault-management-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fault-management-actions small { color: var(--muted); font-size: var(--font-caption); }
.fault-timeline { position: relative; display: grid; gap: 8px; }
.fault-timeline::before { content: ""; position: absolute; top: 13px; bottom: 13px; left: 14px; width: 1px; background: #dfe5e8; }
.fault-event { position: relative; display: grid; grid-template-columns: 29px 1fr; gap: 10px; }
.fault-event-marker { position: relative; z-index: 1; width: 29px; height: 29px; display: grid; place-items: center; border: 4px solid white; border-radius: 50%; color: #617587; background: #e8edef; font-size: var(--font-ui); font-weight: 800; }
.fault-event.event-comment .fault-event-marker { color: #176f61; background: #dff2ed; }
.fault-event.event-resolution .fault-event-marker { color: white; background: #35a77e; }
.fault-event > div { min-width: 0; padding: 8px 10px; border: 1px solid #e4e8eb; border-radius: 9px; background: #fafbfc; }
.fault-event.event-comment > div { background: #f5faf8; }
.fault-event header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.fault-event header strong { font-size: var(--font-caption); }
.fault-event header time { color: var(--muted); font-size: var(--font-caption); }
.fault-event p { margin: 5px 0 0; color: #526575; font-size: var(--font-caption); line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.fault-event-change { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.fault-event-change del, .fault-event-change ins { padding: 4px 6px; border-radius: 6px; font-size: var(--font-caption); font-weight: 700; text-decoration: none; }
.fault-event-change del { color: #8b5552; background: #f9e8e6; }
.fault-event-change ins { color: #28735c; background: #e5f4ef; }
.fault-event-change i { color: #91a0ac; font-size: var(--font-caption); font-style: normal; }
.fault-comment-panel > div { margin-bottom: 10px; }
.fault-comment-panel form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.fault-comment-panel textarea { min-height: 72px; padding: 10px; border: 1px solid #dce3e7; border-radius: 9px; outline: 0; color: var(--ink); background: #fbfcfd; resize: vertical; font: var(--font-ui)/1.5 Tahoma,Arial,sans-serif; }
.fault-comment-panel textarea:focus { border-color: #3aa893; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }
.fault-comment-panel button { min-width: 100px; }
.fault-detail-error { min-height: 300px; }

@media (max-width: 1050px) {
  .notice-stat-grid, .fault-stat-grid { grid-template-columns: repeat(2,1fr); }
  .notice-board-toolbar, .fault-log-toolbar { align-items: stretch; flex-direction: column; }
  .notice-filter-bar, .fault-filter-bar { width: 100%; }
  .notice-filter-bar .search-field, .fault-filter-bar .search-field { flex: 1; width: auto; }
  .fault-row { grid-template-columns: 5px minmax(250px,1fr) minmax(100px,.38fr) 75px 18px; }
  .fault-row-person:nth-of-type(4) { display: none; }
}

@media (max-width: 720px) {
  .notice-board-intro, .it-fault-intro { align-items: stretch; }
  .notice-board-intro .button, .it-fault-intro .button { width: 100%; justify-content: center; }
  .notice-filter-bar, .fault-filter-bar { display: grid; grid-template-columns: 1fr 1fr; }
  .notice-filter-bar .search-field, .fault-filter-bar .search-field { grid-column: 1 / -1; width: 100%; }
  .notice-filter-bar .category-filter select, .fault-filter-bar .category-filter select { width: 100%; min-width: 0; }
  .notice-card-main { padding-inline: 13px; }
  .notice-card-main > header { align-items: flex-start; flex-direction: column; }
  .notice-message-letterhead { align-items: center; }
  .notice-expiry { align-self: flex-end; }
  .fault-row { min-height: 96px; grid-template-columns: 4px minmax(0,1fr) 62px 16px; gap: 9px; padding-right: 9px; }
  .fault-row-person { display: none; }
  .fault-row > time { font-size: var(--font-micro); }
  .fault-detail-dialog { width: 100vw; max-width: none; }
  .fault-detail-shell { max-height: calc(100vh - 16px); }
  .fault-detail-meta { grid-template-columns: repeat(2,1fr); }
  .fault-detail-meta > div:nth-child(2) { border-right: 0; }
  .fault-detail-meta > div:nth-child(-n+2) { border-bottom: 1px solid #e5e9ec; }
  .fault-management-panel > header, .fault-history-section > header { align-items: flex-start; flex-direction: column; }
  .fault-management-actions { align-items: stretch; flex-direction: column; }
  .fault-comment-panel form { grid-template-columns: 1fr; }
  .fault-comment-panel button { width: 100%; }
}

@media (max-width: 480px) {
  .notice-stat-grid, .fault-stat-grid { gap: 7px; }
  .notice-stat-grid article, .fault-stat-grid article { min-height: 72px; gap: 8px; padding: 10px; }
  .notice-stat-grid article > span, .fault-stat-grid article > span { width: 32px; height: 32px; }
  .notice-stat-grid strong, .fault-stat-grid strong { font-size: 16px; }
  .notice-board-toolbar, .fault-log-toolbar { padding-inline: 12px; }
  .notice-card-list { padding: 8px; }
  .fault-detail-body { padding: 8px; }
  .fault-detail-overview, .fault-management-panel, .fault-history-section, .fault-comment-panel { padding: 12px; }
  .fault-detail-meta { display: block; }
  .fault-detail-meta > div { border: 0; border-bottom: 1px solid #e5e9ec !important; }
  .fault-detail-meta > div:last-child { border-bottom: 0 !important; }
}

/* Private one-to-one messaging */
.message-shortcut { text-decoration: none; }
.messages-page { height: calc(100vh - 94px); height: calc(100dvh - 94px); display: flex; min-height: 620px; flex-direction: column; }
.messages-intro { flex: 0 0 auto; align-items: center; }
.messages-intro p { max-width: 690px; }
.message-workspace { min-height: 0; flex: 1 1 auto; display: grid; grid-template-columns: 330px minmax(0,1fr); overflow: hidden; border: 1px solid #dfe6e9; box-shadow: 0 13px 38px rgba(20,38,59,.08); }
.conversation-rail { min-width: 0; min-height: 0; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #fbfcfd; }
.conversation-rail-head { min-height: 68px; flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px 10px 17px; }
.conversation-rail-head > span { min-width: 0; display: flex; flex-direction: column; }
.conversation-rail-head strong { margin-top: 4px; font-size: 14px; }
.conversation-rail-head > b, .conversation-row > b { min-width: 21px; height: 21px; display: grid; place-items: center; padding: 0 6px; border-radius: 999px; color: white; background: var(--teal); font-size: var(--font-caption); }
.message-search, .message-recipient-search { min-height: 38px; display: flex; align-items: center; gap: 7px; margin: 0 12px 11px; padding: 0 10px; border: 1px solid #dde4e8; border-radius: 9px; color: #8795a2; background: white; }
.message-search:focus-within, .message-recipient-search:focus-within { border-color: #55ad9d; box-shadow: 0 0 0 3px rgba(22,139,122,.07); }
.message-search input, .message-recipient-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: var(--font-caption); }
.conversation-list { min-height: 0; flex: 1; overflow-y: auto; border-top: 1px solid #edf0f2; scrollbar-width: thin; scrollbar-color: #cbd5db transparent; }
.conversation-row { width: 100%; min-height: 77px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 10px 12px; border: 0; border-bottom: 1px solid #edf0f2; color: var(--ink); background: white; cursor: pointer; text-align: left; font-family: Tahoma,Arial,sans-serif; }
.conversation-row:hover { background: #f5faf8; }
.conversation-row.active { position: relative; background: #edf8f5; box-shadow: inset 3px 0 var(--teal); }
.conversation-row.unread:not(.active) { background: #f5fbf9; }
.conversation-row .person-avatar { width: 38px; height: 38px; border-radius: 11px; font-size: var(--font-caption); }
.conversation-row-copy { min-width: 0; display: flex; flex-direction: column; }
.conversation-row-copy > span { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.conversation-row-copy strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }
.conversation-row.unread .conversation-row-copy strong { font-weight: 800; }
.conversation-row-copy time { flex: 0 0 auto; color: #99a3ad; font-size: var(--font-micro); }
.conversation-row-copy small { margin-top: 6px; overflow: hidden; color: #778696; font-size: var(--font-caption); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.conversation-row-copy small em { color: #3d596a; font-style: normal; font-weight: 800; }
.conversation-row > b { min-width: 18px; height: 18px; padding-inline: 5px; font-size: var(--font-micro); }
.message-list-empty { min-height: 245px; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 22px; color: #758595; text-align: center; }
.message-list-empty > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #147565; background: #e1f4ef; font-size: 17px; }
.message-list-empty strong { margin-top: 11px; color: var(--ink); font-size: var(--font-ui); }
.message-list-empty small { max-width: 180px; margin-top: 4px; font-size: var(--font-caption); line-height: 1.45; }
.message-list-empty .text-button { margin-top: 8px; font-size: var(--font-caption); }
.message-list-empty.compact { min-height: 170px; }

.message-thread { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: #f3f6f7; }
.message-thread-head { min-height: 68px; flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-bottom: 1px solid #dfe5e8; background: rgba(255,255,255,.96); }
.message-thread-head .person-avatar { width: 39px; height: 39px; border-radius: 12px; }
.message-thread-person { min-width: 0; display: flex; flex-direction: column; }
.message-thread-person strong { overflow: hidden; font-size: var(--font-body-small); text-overflow: ellipsis; white-space: nowrap; }
.message-thread-person small { display: flex; align-items: center; gap: 6px; margin-top: 4px; color: #84919e; font-size: var(--font-caption); }
.message-thread-person small i { width: 4px; height: 4px; border-radius: 50%; background: #27ad91; }
.message-thread-clear { min-height: 31px; display: inline-flex; align-items: center; gap: 5px; margin-left: auto; padding: 0 9px; border: 1px solid #dce4e7; border-radius: 9px; color: #6e7f8b; background: #f8fafb; cursor: pointer; font: 700 var(--font-caption) Tahoma,Arial,sans-serif; }.message-thread-clear:hover,.message-thread-clear:focus-visible { color: #984b48; border-color: #efcfcd; outline: 0; background: #fdf0ef; }.message-thread-clear > span { font-size: 12px; line-height: 1; }
.message-mobile-back { display: none; width: 32px; height: 32px; place-items: center; border: 1px solid #dfe5e8; border-radius: 9px; color: #51677a; background: white; cursor: pointer; font-size: 23px; line-height: 1; }
.message-thread-body { min-height: 0; flex: 1; overflow-y: auto; padding: 19px clamp(16px,3.5vw,48px); background-color: #f3f6f7; background-image: radial-gradient(circle at 1px 1px,rgba(31,74,88,.055) 1px,transparent 0); background-size: 20px 20px; scrollbar-width: thin; scrollbar-color: #bdc9cf transparent; scroll-behavior: smooth; }
.message-thread-state { min-height: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 35px; color: #748493; text-align: center; }
.message-thread-state > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 17px; color: white; background: linear-gradient(145deg,#20a48d,#117264); box-shadow: 0 12px 25px rgba(22,139,122,.18); font-size: 21px; }
.message-thread-state strong { margin-top: 14px; color: var(--ink); font-size: 13px; }
.message-thread-state small { max-width: 280px; margin-top: 5px; font-size: var(--font-caption); line-height: 1.5; }
.message-thread-state .button { margin-top: 14px; }
.message-thread-state.compact { min-height: 260px; }
.message-spinner { border: 3px solid rgba(255,255,255,.38); border-top-color: white; border-radius: 50% !important; animation: spinner .8s linear infinite; }
.message-date-separator { display: flex; align-items: center; justify-content: center; margin: 8px 0 14px; }
.message-date-separator > span { padding: 5px 9px; border: 1px solid #dce3e6; border-radius: 999px; color: #728391; background: rgba(255,255,255,.9); box-shadow: 0 2px 8px rgba(24,46,63,.04); font-size: var(--font-micro); font-weight: 800; }
.message-bubble-row { display: flex; justify-content: flex-start; margin: 5px 0; }
.message-bubble-row.mine { justify-content: flex-end; }
.message-bubble { max-width: min(72%,650px); padding: 9px 11px 6px; border: 1px solid #dde4e7; border-radius: 5px 14px 14px 14px; color: #344b5d; background: white; box-shadow: 0 3px 11px rgba(24,46,63,.055); }
.message-bubble-row.mine .message-bubble { border-color: #86c9bb; border-radius: 14px 5px 14px 14px; color: #173f38; background: #dff3ee; }
.message-bubble-row.deleted .message-bubble { color: #7c8a94; border-style: dashed; background: rgba(246,248,249,.9); box-shadow: none; }.message-bubble-row.deleted .message-bubble p { font-style: italic; }
.message-bubble p { margin: 0; font-size: var(--font-ui); line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.message-bubble-meta { min-height: 12px; display: flex; align-items: center; justify-content: flex-end; gap: 5px; margin-top: 3px; color: #8997a2; font-size: var(--font-micro); }
.message-bubble-row.mine .message-bubble-meta { color: #598277; }
.message-bubble-meta i { font-style: normal; }
.message-bubble-meta i.seen { color: #087b68; font-weight: 800; }
.message-delete-button { margin-left: 2px; padding: 1px 4px; border: 0; border-radius: 4px; color: #779087; background: transparent; cursor: pointer; font: 700 var(--font-micro) Tahoma,Arial,sans-serif; opacity: .25; transition: color .15s ease,background .15s ease,opacity .15s ease; }.message-bubble:hover .message-delete-button,.message-delete-button:focus-visible { color: #994a47; outline: 0; background: rgba(255,255,255,.7); opacity: 1; }
.message-composer { min-height: 82px; flex: 0 0 auto; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto auto; align-items: center; gap: 2px 10px; padding: 10px 13px; border-top: 1px solid #dce3e6; background: white; }
.message-composer label { grid-column: 1; min-width: 0; }
.message-composer textarea { width: 100%; min-height: 42px; max-height: 128px; display: block; padding: 11px 13px; overflow-y: auto; border: 1px solid #d9e1e5; border-radius: 12px; outline: 0; color: var(--ink); background: #f8fafb; resize: none; font: var(--font-ui)/1.45 Tahoma,Arial,sans-serif; }
.message-composer textarea:focus { border-color: #51ad9c; background: white; box-shadow: 0 0 0 3px rgba(22,139,122,.07); }
.message-composer-hint { grid-column: 1; padding-left: 4px; color: #9aa4ad; font-size: var(--font-micro); }
.message-composer .button { grid-column: 2; grid-row: 1 / 3; min-width: 78px; align-self: stretch; }
.message-composer .button span { margin-left: 4px; }
.message-recipient-inactive { min-height: 70px; flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 12px 17px; border-top: 1px solid #e0e5e8; color: #667785; background: white; }
.message-recipient-inactive > span { width: 26px; height: 26px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; color: white; background: #8795a2; font-size: var(--font-ui); font-weight: 800; }
.message-recipient-inactive p { margin: 0; font-size: var(--font-caption); line-height: 1.45; }

.message-compose-dialog { width: min(680px,calc(100vw - 28px)); }
.message-compose-body { display: grid; gap: 14px; }
.message-recipient-search { width: 100%; margin: 0; }
.message-recipient-list { max-height: 285px; display: grid; gap: 6px; margin: 0; padding: 0 3px 0 0; overflow-y: auto; border: 0; scrollbar-width: thin; scrollbar-color: #cbd5db transparent; }
.message-recipient-list > label { min-height: 59px; display: grid; grid-template-columns: 0 25px 36px minmax(0,1fr); align-items: center; gap: 9px; padding: 8px 11px; overflow: hidden; border: 1px solid #dfe5e8; border-radius: 10px; background: white; cursor: pointer; }
.message-recipient-list > label:hover { background: #f7faf9; }
.message-recipient-list > label:has(input:checked) { border-color: #85c6b9; background: #eef9f6; box-shadow: inset 3px 0 var(--teal); }
.message-recipient-list input { width: 1px; height: 1px; opacity: 0; }
.message-radio-check { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid #cad5da; border-radius: 8px; color: transparent; background: #f6f8f9; font-size: var(--font-caption); font-weight: 800; }
.message-recipient-list input:focus-visible + .message-radio-check { outline: 2px solid var(--navy); outline-offset: 2px; }
.message-recipient-list input:checked + .message-radio-check { color: white; border-color: var(--teal); background: var(--teal); }
.message-recipient-list .person-avatar { width: 36px; height: 36px; border-radius: 10px; font-size: var(--font-caption); }
.message-recipient-list > label > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.message-recipient-list strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }
.message-recipient-list small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.message-compose-body > .stacked-field textarea { min-height: 105px; }
.message-compose-body .form-information { margin-top: 0; }
.message-compose-dialog .dialog-foot > span:first-child { max-width: 190px; overflow: hidden; color: #758493; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1000px) {
  .message-workspace { grid-template-columns: 285px minmax(0,1fr); }
  .message-bubble { max-width: 80%; }
}

@media (max-width: 720px) {
  .messages-page { height: calc(100vh - 94px); height: calc(100dvh - 94px); min-height: 580px; }
  .message-workspace { position: relative; display: block; }
  .conversation-rail, .message-thread { position: absolute; inset: 0; border: 0; }
  .message-thread { z-index: 2; transform: translateX(102%); visibility: hidden; transition: transform .22s ease,visibility 0s linear .22s; }
  .messages-page.thread-open .message-thread { transform: translateX(0); visibility: visible; transition: transform .22s ease; }
  .message-mobile-back { display: grid; }
  .message-bubble { max-width: 86%; }
}

@media (max-width: 620px) {
  .messages-page { height: calc(100vh - 146px); height: calc(100dvh - 146px); min-height: 540px; padding: 13px 10px 10px; }
  .messages-intro { min-height: 50px; align-items: center; flex-direction: row; gap: 12px; margin-bottom: 11px; }
  .messages-intro .status-pill, .messages-intro p { display: none; }
  .messages-intro h2 { margin: 0; font-size: 21px; }
  .messages-intro .button { margin-left: auto; }
  .message-workspace { border-radius: 13px; }
  .conversation-rail-head, .message-thread-head { min-height: 62px; }
  .conversation-row { min-height: 72px; }
  .message-thread-body { padding: 14px 10px; }
  .message-bubble { max-width: 90%; }
  .message-bubble p { font-size: var(--font-ui); }
  .message-composer { min-height: 72px; padding: 8px; }
  .message-composer-hint { display: none; }
  .message-composer .button { grid-row: 1; min-width: 64px; }
  .message-compose-dialog { width: 100vw; max-width: none; }
}

@media (max-width: 420px) {
  .message-composer .button { width: 44px; min-width: 44px; padding: 0; font-size: 0; }
  .message-composer .button span { margin: 0; font-size: 17px; }
  .message-thread-clear { width: 32px; padding: 0; justify-content: center; font-size: 0; }.message-thread-clear > span { font-size: 13px; }
  .message-recipient-list > label { grid-template-columns: 0 24px 32px minmax(0,1fr); gap: 7px; padding-inline: 8px; }
  .message-recipient-list .person-avatar { width: 32px; height: 32px; }
}
@media (hover: none) { .message-delete-button { opacity: .75; } }

/* Administrator interactive on-page site editor */
.site-editor-toggle { min-height: 43px; display: flex; align-items: center; gap: 8px; padding: 4px 10px 4px 6px; border: 1px solid #d9e3e5; border-radius: 12px; color: #365668; background: white; cursor: pointer; font-family: Tahoma,Arial,sans-serif; transition: .18s ease; }
.site-editor-toggle:hover { border-color: #8bc8bc; background: #f5fbf9; }
.site-editor-toggle.active { color: white; border-color: #148473; background: linear-gradient(145deg,#1b9b86,#117264); box-shadow: 0 7px 20px rgba(22,139,122,.23); }
.site-editor-toggle > span:first-child { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; color: #137565; background: #e3f5f0; font-size: 14px; }
.site-editor-toggle.active > span:first-child { color: white; background: rgba(255,255,255,.15); }
.site-editor-toggle > span:last-child { display: flex; flex-direction: column; text-align: left; }
.site-editor-toggle strong { font-size: var(--font-caption); line-height: 1.2; white-space: nowrap; }
.site-editor-toggle small { margin-top: 2px; color: #8797a2; font-size: var(--font-micro); }
.site-editor-toggle.active small { color: #bcece2; }

.site-edit-mode [data-site-edit-key] { position: relative; outline: 1.5px dashed #20a78f; outline-offset: 4px; border-radius: 2px; cursor: text; transition: outline-color .15s ease,background-color .15s ease,box-shadow .15s ease; }
.site-edit-mode [data-site-edit-key]:hover { outline-color: #e29c2d; background-color: rgba(255,244,205,.42); box-shadow: 0 0 0 5px rgba(255,244,205,.14); }
.site-edit-mode [data-site-edit-key].site-content-overridden { outline-color: #8870bd; }
.site-edit-mode [data-site-edit-key].site-inline-editing { z-index: 150; min-width: 34px; outline: 2px solid #168b7a; outline-offset: 5px; color: var(--ink); background: white; box-shadow: 0 0 0 7px rgba(22,139,122,.12),0 12px 35px rgba(11,35,52,.16); cursor: text; }
.site-edit-mode [data-site-edit-key].site-edit-saving { opacity: .62; pointer-events: none; }
.site-edit-mode .large-tool-card:has([data-site-edit-key]:hover) { transform: none; }
.site-editor-modal-open.site-edit-mode .page-content [data-site-edit-key],.site-editor-modal-open.site-edit-mode .page-content [data-site-size-key]:not([data-site-edit-key]),.site-editor-modal-open.site-edit-mode .sidebar [data-site-edit-key],.site-editor-modal-open.site-edit-mode .sidebar [data-site-size-key]:not([data-site-edit-key]) { outline-color: transparent !important; box-shadow: none !important; }
.site-editor-dialog-host { overflow: visible; }
.site-editor-dialog-host .dialog-head > div:first-child { min-width: 0; flex: 1 1 auto; }
.site-editor-dialog-toggle { flex: 0 0 auto; height: 33px; display: inline-flex; align-items: center; gap: 6px; margin-left: auto; padding: 0 10px 0 6px; border: 1px solid #cfe0dd; border-radius: 9px; color: #245d55; background: #f2faf8; cursor: pointer; font: 700 var(--font-caption) Tahoma,Arial,sans-serif; white-space: nowrap; }
.site-editor-dialog-toggle > span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 6px; color: #137565; background: #dff3ee; font-size: var(--font-body-small); }
.site-editor-dialog-toggle:hover { border-color: #84c6b9; background: #eaf7f4; }
.site-editor-dialog-toggle.active { color: white; border-color: #148473; background: #168b7a; box-shadow: 0 5px 15px rgba(22,139,122,.2); }
.site-editor-dialog-toggle.active > span { color: white; background: rgba(255,255,255,.16); }
.site-editor-dialog-host > .site-editor-dock,.site-editor-dialog-host > .site-inline-toolbar,.site-editor-dialog-host > .site-generated-size-toolbar { z-index: 1000; }

.site-editor-dock { position: fixed; right: 22px; bottom: 20px; z-index: 190; min-height: 62px; display: grid; grid-template-columns: 38px minmax(175px,1fr) auto auto auto; align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid rgba(255,255,255,.15); border-radius: 15px; color: white; background: rgba(11,38,58,.96); box-shadow: 0 18px 55px rgba(4,23,38,.32); backdrop-filter: blur(12px); }
.site-editor-dock[hidden], .site-inline-toolbar[hidden] { display: none; }
.site-editor-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: #072a24; background: #43d1b6; box-shadow: 0 5px 15px rgba(67,209,182,.25); font-size: 15px; }
.site-editor-dock-copy { min-width: 0; display: flex; flex-direction: column; }
.site-editor-dock-copy strong { font-size: var(--font-ui); }
.site-editor-dock-copy small { max-width: 245px; margin-top: 4px; overflow: hidden; color: #9fb8c5; font-size: var(--font-micro); text-overflow: ellipsis; white-space: nowrap; }
.site-editor-dock-copy small[data-tone="active"], .site-editor-dock-copy small[data-tone="success"] { color: #76ddca; }
.site-editor-dock-copy small[data-tone="saving"] { color: #f5cc78; }
.site-editor-dock-copy small[data-tone="error"] { color: #ff9a96; }
.site-editor-move-controls { display: inline-flex; gap: 4px; }
.site-editor-move-controls button, .site-editor-dock-button, .site-editor-done { height: 35px; border: 1px solid rgba(181,212,221,.2); border-radius: 9px; color: #cfdee5; background: rgba(255,255,255,.06); cursor: pointer; font: 700 var(--font-caption) Tahoma,Arial,sans-serif; }
.site-editor-move-controls button { width: 34px; font-size: 13px; }
.site-editor-move-controls button:disabled { opacity: .28; cursor: default; }
.site-editor-dock-button { padding: 0 10px; }
.site-editor-done { min-width: 60px; color: #07392f; border-color: #42ceb3; background: #42ceb3; }
.site-editor-move-controls button:not(:disabled):hover, .site-editor-dock-button:hover { color: white; background: rgba(255,255,255,.13); }

.site-inline-toolbar { position: fixed; z-index: 210; min-height: 40px; display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid #dce4e7; border-radius: 11px; background: white; box-shadow: 0 13px 38px rgba(5,27,42,.24); }
.site-inline-toolbar > span { padding: 0 8px; color: #758593; font-size: var(--font-micro); font-weight: 800; letter-spacing: .09em; }
.site-inline-toolbar button { height: 30px; padding: 0 9px; border: 0; border-radius: 7px; color: #5f7180; background: #f1f4f5; cursor: pointer; font: 700 var(--font-caption) Tahoma,Arial,sans-serif; }
.site-inline-toolbar button:hover { color: var(--ink); background: #e8edef; }
.site-inline-toolbar button.primary { color: white; background: var(--teal); }
.site-inline-toolbar > .site-inline-size-controls { display: inline-flex; align-items: center; gap: 3px; margin: 0 3px 0 1px; padding: 0 7px; border-right: 1px solid #e2e8eb; border-left: 1px solid #e2e8eb; }
.site-inline-toolbar > .site-inline-size-controls[hidden] { display: none; }
.site-inline-toolbar .site-inline-size-controls button { min-width: 29px; height: 30px; padding: 0 7px; color: #426274; background: #edf4f4; }
.site-inline-toolbar .site-inline-size-controls button:hover:not(:disabled) { color: #0f6e61; background: #dff3ee; }
.site-inline-toolbar .site-inline-size-controls button:disabled { opacity: .42; cursor: default; }
.site-inline-toolbar .site-inline-size-controls .site-inline-size-value { min-width: 43px; color: #117363; background: #e3f5f0; font-size: var(--font-caption); }

.site-nav-handle { display: none; }
.site-edit-mode [data-site-nav-id] { position: relative; }
.site-edit-mode .site-nav-handle { position: absolute; top: 50%; right: 4px; z-index: 9; width: 25px; height: 25px; display: grid; place-items: center; transform: translateY(-50%); border: 1px solid rgba(75,218,193,.42); border-radius: 7px; color: #71dfcc; background: #153d54; box-shadow: 0 4px 12px rgba(4,22,34,.22); cursor: grab; font-size: var(--font-body-small); line-height: 1; user-select: none; }
.site-edit-mode .site-nav-handle:active { cursor: grabbing; }
.site-edit-mode .main-nav > a { padding-right: 42px; }
.site-edit-mode .main-nav > .main-nav-group > .site-nav-handle { top: var(--site-nav-main-handle-top,24px); right: calc(var(--site-nav-main-toggle,30px) + 11px); }
.site-edit-mode .nav-menu-submenu > a { padding-right: 37px; }
.site-edit-mode .nav-menu-submenu > span { min-height: 31px; display: flex; align-items: center; padding-right: 35px; }
.site-edit-mode [data-site-nav-id].site-nav-selected { box-shadow: inset 0 0 0 2px #f0b443 !important; }
.site-edit-mode [data-site-nav-id].site-nav-dragging { opacity: .35; }
.site-edit-mode [data-site-nav-id].site-nav-drop-target { box-shadow: inset 0 3px #f0b443 !important; }
.site-edit-mode [data-site-nav-list].site-nav-list-drop { outline: 1px dashed rgba(105,226,205,.72); outline-offset: 3px; border-radius: 10px; background-color: rgba(55,202,177,.055); }

@media (max-width: 1050px) {
  .site-editor-toggle > span:last-child { display: none; }
  .site-editor-toggle { width: 43px; padding: 5px; }
}

@media (max-width: 720px) {
  .site-editor-dock { right: 10px; left: 10px; bottom: 10px; grid-template-columns: 34px minmax(100px,1fr) auto auto auto; gap: 6px; }
  .site-editor-mark { width: 34px; height: 34px; }
  .site-editor-dock-copy small { max-width: 180px; }
  .site-editor-dock-button { width: 38px; padding: 0; overflow: hidden; color: transparent; font-size: 0; }
  .site-editor-dock-button::after { content: "↺"; color: #cfdee5; font-size: 14px; }
}

@media (max-width: 620px) {
  .topbar-actions .site-editor-toggle { width: 38px; height: 38px; min-height: 38px; display: flex; padding: 3px; }
  .site-editor-toggle > span:first-child { width: 30px; height: 30px; }
  .site-editor-dialog-toggle { width: 33px; padding: 5px; }
  .site-editor-dialog-toggle strong { display: none; }
  .site-editor-dock { bottom: 76px; grid-template-columns: 32px minmax(80px,1fr) auto auto; min-height: 55px; padding: 7px; }
  .site-editor-mark { width: 32px; height: 32px; }
  .site-editor-dock-copy small { max-width: 120px; }
  .site-editor-dock-button { display: none; }
  .site-editor-move-controls button { width: 31px; height: 32px; }
  .site-editor-done { min-width: 48px; height: 32px; }
  .site-inline-toolbar { right: 7px; left: 7px !important; width: auto; justify-content: flex-end; }
  .site-inline-toolbar > span { margin-right: auto; }
}

@media (max-width: 390px) {
  .site-editor-dock-copy small { display: none; }
  .site-editor-dock { grid-template-columns: 32px minmax(60px,1fr) auto auto; }
}

/* Unified disclosure and dropdown arrows */
.ui-chevron {
  width: 8px;
  height: 8px;
  display: block;
  flex: 0 0 auto;
  border: solid currentColor;
  border-width: 0 1.75px 1.75px 0;
  transform: translateY(-2px) rotate(45deg);
  transform-origin: 50% 50%;
  transition: transform .2s cubic-bezier(.2,.7,.3,1), color .18s ease;
}

.profile-chip {
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.profile-chip:hover {
  border-color: #cbd8dc;
  background: #fbfdfd;
  box-shadow: 0 6px 18px rgba(16,42,67,.06);
}
.profile-chip:focus-visible {
  outline: 2px solid #43b7a3;
  outline-offset: 2px;
}
.profile-chevron,
.disclosure-chevron {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #708292;
  border: 1px solid #dfe6e9;
  background: linear-gradient(180deg,#fff,#f3f6f7);
  box-shadow: inset 0 1px rgba(255,255,255,.9), 0 3px 8px rgba(16,42,67,.05);
}
.profile-chevron {
  width: 27px;
  height: 27px;
  margin-left: 1px;
  border-radius: 8px;
}
.profile-chip:hover .profile-chevron {
  color: #397263;
  border-color: #bfdad4;
  background: #f1faf7;
}
.profile-chip[aria-expanded="true"] .profile-chevron {
  color: white;
  border-color: #168b7a;
  background: linear-gradient(145deg,#1b9b86,#117264);
  box-shadow: 0 5px 12px rgba(22,139,122,.22);
}
.profile-chip[aria-expanded="true"] .profile-chevron .ui-chevron {
  transform: translateY(2px) rotate(-135deg);
}

.nav-menu-chevron.ui-chevron {
  width: 8px;
  height: 8px;
  border-width: 0 1.75px 1.75px 0;
}
.nav-menu-row > button[aria-expanded="true"] .nav-menu-chevron.ui-chevron {
  transform: translateY(2px) rotate(-135deg);
}

.disclosure-chevron {
  width: 29px;
  height: 29px;
  border-radius: 9px;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.question-category-group > summary > .disclosure-chevron,
.rota-legend-shell > summary > .disclosure-chevron {
  display: grid;
  place-items: center;
}
.question-category-group > summary::marker,
.rota-legend-shell > summary::marker {
  content: "";
}
.question-category-group > summary:hover .disclosure-chevron,
.rota-legend-shell > summary:hover .disclosure-chevron {
  color: #267c6d;
  border-color: #bfdbd5;
  background: #eff9f6;
}
.question-category-group[open] > summary .disclosure-chevron,
.rota-legend-shell[open] > summary .disclosure-chevron {
  color: #157565;
  border-color: #b9d9d2;
  background: #edf8f5;
  transform: none;
}
.question-category-group[open] > summary .ui-chevron,
.rota-legend-shell[open] > summary .ui-chevron {
  transform: translateY(2px) rotate(-135deg);
}

select:not([multiple]):not([size]) {
  --select-chevron: #708292;
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px !important;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--select-chevron) 50%),
    linear-gradient(135deg, var(--select-chevron) 50%, transparent 50%);
  background-position:
    calc(100% - 16px) calc(50% - 1px),
    calc(100% - 11px) calc(50% - 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}
select:not([multiple]):not([size]):hover {
  --select-chevron: #397263;
  border-color: #c6d6d8;
  background-color: white;
}
select:not([multiple]):not([size]):focus {
  --select-chevron: #168b7a;
}
select:not([multiple]):not([size]):disabled {
  --select-chevron: #a8b2ba;
  cursor: not-allowed;
}

@media (max-width: 900px) {
  .nav-menu-chevron.ui-chevron { width: 6px; height: 6px; border-width: 0 1.4px 1.4px 0; }
}

@media (max-width: 620px) {
  .profile-chevron { display: none; }
  .rota-legend-shell > summary .disclosure-chevron { width: 25px; height: 25px; border-radius: 7px; }
}

@media (forced-colors: active) {
  select:not([multiple]):not([size]) {
    appearance: auto;
    -webkit-appearance: auto;
    padding-right: 10px !important;
    background-image: none;
  }
}

/* Resources landing page */
.resources-intro { margin-bottom: 20px; }
.navigation-module-card { isolation: isolate; }
.navigation-module-card .large-tool-icon { font-style: normal; }
.navigation-module-empty { border-style: dashed; box-shadow: none; }
.resource-entry-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.resource-entry-card { min-width: 0; min-height: 230px; position: relative; display: grid; grid-template-columns: 58px minmax(0,1fr); grid-template-rows: 1fr auto; align-items: start; gap: 20px; padding: 25px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow); transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.resource-entry-card::after { content: ""; position: absolute; right: -48px; bottom: -62px; width: 180px; height: 180px; border-radius: 50%; background: var(--resource-wash); pointer-events: none; }
.resource-entry-card:hover { transform: translateY(-2px); border-color: var(--resource-border); box-shadow: 0 17px 42px rgba(22,42,66,.11); }
.resource-entry-card:focus-visible { outline: 3px solid rgba(22,139,122,.28); outline-offset: 3px; }
.resource-entry-card.tests { --resource-accent:#7b5eb3; --resource-wash:rgba(123,94,179,.08); --resource-border:#d8cce9; }
.resource-entry-card.leave { --resource-accent:#168b7a; --resource-wash:rgba(22,139,122,.08); --resource-border:#bcded7; }
.resource-entry-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 16px; color: white; background: var(--resource-accent); box-shadow: 0 9px 22px color-mix(in srgb,var(--resource-accent) 25%,transparent); font-size: 23px; font-weight: 800; }
.resource-entry-copy { min-width: 0; display: flex; flex-direction: column; padding-top: 3px; }
.resource-entry-copy small { color: var(--resource-accent); font-size: var(--font-caption); font-weight: 800; letter-spacing: .14em; }
.resource-entry-copy strong { margin-top: 12px; color: var(--ink); font: 800 21px/1.15 Tahoma,Arial,sans-serif; }
.resource-entry-copy > span { max-width: 430px; margin-top: 8px; color: var(--muted); font-size: var(--font-ui); line-height: 1.55; }
.resource-entry-action { grid-column: 1 / -1; z-index: 1; width: max-content; display: inline-flex; align-items: center; gap: 8px; color: var(--resource-accent); font-size: var(--font-ui); font-weight: 800; }
.resource-entry-action i { font-size: 15px; font-style: normal; transition: transform .18s ease; }
.resource-entry-card:hover .resource-entry-action i { transform: translateX(3px); }

/* Interactive menu creation and removal */
.site-editor-dock { grid-template-columns: 38px minmax(175px,1fr) auto auto auto auto; }
.site-editor-menu-controls { display: inline-flex; gap: 4px; }
.site-editor-menu-button { height: 35px; padding: 0 10px; border: 1px solid rgba(181,212,221,.2); border-radius: 9px; color: #cfdee5; background: rgba(255,255,255,.06); cursor: pointer; font: 700 var(--font-caption) Tahoma,Arial,sans-serif; }
.site-editor-menu-button:not(:disabled):hover { color: white; background: rgba(255,255,255,.13); }
.site-editor-menu-button.delete:not(:disabled) { color: #ffc1be; border-color: rgba(255,132,126,.28); }
.site-editor-menu-button.delete:not(:disabled):hover { color: white; border-color: #d85853; background: #b8423e; }
.site-editor-menu-button:disabled { cursor: not-allowed; opacity: .32; }
.site-menu-dialog { width: min(590px,calc(100vw - 28px)); }
.site-menu-dialog-shell { max-height: min(760px,calc(100vh - 30px)); display: flex; flex-direction: column; }
.site-menu-dialog-body { display: grid; gap: 15px; }
.site-menu-field-row { display: grid; grid-template-columns: minmax(0,1fr) 115px; gap: 12px; }
.site-menu-dialog .stacked-field input,
.site-menu-dialog .stacked-field select { width: 100%; height: 42px; padding: 0 11px; border: 1px solid #dce3e8; border-radius: 9px; outline: 0; color: var(--ink); background-color: #fbfcfd; font-size: var(--font-ui); }
.site-menu-dialog .stacked-field input:focus,
.site-menu-dialog .stacked-field select:focus { border-color: #3aa893; background-color: white; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }

@media (max-width: 720px) {
  .resource-entry-grid { grid-template-columns: 1fr; }
  .resource-entry-card { min-height: 190px; }
  .site-editor-dock { grid-template-columns: 34px minmax(100px,1fr) auto auto auto auto; }
  .site-editor-menu-button { width: 34px; padding: 0; overflow: hidden; color: transparent; font-size: 0; }
  .site-editor-menu-button.add::after { content: "+"; color: #cfdee5; font-size: 16px; }
  .site-editor-menu-button.delete::after { content: "×"; color: #ffc1be; font-size: 16px; }
}

@media (max-width: 620px) {
  .resource-entry-card { grid-template-columns: 48px minmax(0,1fr); gap: 15px; padding: 19px; }
  .resource-entry-icon { width: 48px; height: 48px; border-radius: 13px; font-size: 19px; }
  .resource-entry-copy strong { margin-top: 8px; font-size: 18px; }
  .site-editor-dock { grid-template-columns: 32px minmax(70px,1fr) auto auto auto; }
  .site-menu-dialog { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 18px 18px 0 0; }
  .site-menu-field-row { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
  .site-editor-dock-copy { display: none; }
  .site-editor-dock { grid-template-columns: 32px auto auto auto; }
}

/* Administrator Account Creator */
.account-creator-page { max-width: 1580px; }
.account-creator-intro { margin-bottom: 20px; }
.account-creator-format { min-width: 185px; display: flex; flex-direction: column; padding: 12px 15px; border: 1px solid #cfe2dd; border-radius: 12px; background: #f2faf8; }
.account-creator-format small { color: #6a8e86; font-size: var(--font-caption); font-weight: 800; letter-spacing: .13em; }
.account-creator-format strong { margin-top: 5px; color: #126e60; font-size: var(--font-ui); }
.account-creator-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: var(--shadow); }
.account-creator-stats article { min-height: 82px; display: flex; align-items: center; gap: 12px; padding: 16px 19px; border-right: 1px solid var(--line); }
.account-creator-stats article:last-child { border-right: 0; }
.account-creator-stats article > span:last-child { display: flex; flex-direction: column; }
.account-creator-stats strong { font: 800 18px Tahoma,Arial,sans-serif; }
.account-creator-stats small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }
.account-stat-icon { flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; font: 800 var(--font-body-small) Tahoma,Arial,sans-serif; }
.account-stat-icon.all { color: #3d6c98; background: #e4eef8; }.account-stat-icon.active { color: #137565; background: #ddf3ed; }.account-stat-icon.inactive { color: #9d4744; background: #fae6e5; }.account-stat-icon.admin { color: #805e19; background: #fff1c9; }
.account-creator-workspace { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,.72fr); gap: 16px; align-items: start; }
.account-creator-form-panel { overflow: hidden; }
.account-creator-panel-head { min-height: 103px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 21px 23px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg,#fff,#f6faf9); }
.account-creator-panel-head h3 { margin: 5px 0 4px; font: 800 20px Tahoma,Arial,sans-serif; }.account-creator-panel-head p { max-width: 650px; margin: 0; color: var(--muted); font-size: var(--font-ui); line-height: 1.5; }
.account-mode-chip { min-width: 68px; min-height: 28px; display: grid; place-items: center; padding: 0 9px; border-radius: 999px; color: #147363; background: #e0f4ef; font-size: var(--font-caption); font-weight: 800; letter-spacing: .1em; }
.account-creator-form { padding: 22px 23px 19px; }
.account-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.account-form-grid .stacked-field select { width: 100%; height: 42px; padding: 0 10px; border: 1px solid #dce3e8; border-radius: 9px; outline: 0; color: var(--ink); background: #fbfcfd; font-size: var(--font-ui); }
.account-form-grid .stacked-field select:focus { border-color: #3aa893; background: white; box-shadow: 0 0 0 3px rgba(22,139,122,.08); }
.account-creator-form input[readonly] { color: #718091; background: #eef2f4; cursor: not-allowed; }
.account-active-card { min-height: 67px; display: grid; grid-template-columns: 31px 1fr; align-items: center; gap: 11px; align-self: end; padding: 10px 12px; border: 1px solid #dfe6e9; border-radius: 10px; background: #fafcfc; cursor: pointer; }
.account-active-card > input { position: absolute; opacity: 0; pointer-events: none; }
.account-active-card > span:last-child { display: flex; flex-direction: column; }.account-active-card strong { font-size: var(--font-ui); }.account-active-card small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); line-height: 1.4; }
.account-active-card input:checked + .switch-control { background: var(--teal); }.account-active-card input:checked + .switch-control::after { transform: translateX(13px); }.account-active-card:has(input:checked) { border-color: #b8dfd6; background: #f1faf7; }
.account-password-section { margin-top: 20px; padding: 17px; border: 1px solid #dfe6e9; border-radius: 12px; background: #f8fafb; }
.account-password-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }.account-password-section h4 { margin: 4px 0 0; font-size: 12px; }
.password-strength-label { min-width: 62px; padding: 5px 8px; border-radius: 999px; color: #697989; background: #e9edef; font-size: var(--font-caption); font-weight: 800; text-align: center; }
.account-password-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.password-input-shell { position: relative; display: block; }.password-input-shell input { padding-right: 52px; }
.password-input-shell button { position: absolute; inset: 5px 5px 5px auto; min-width: 42px; border: 0; border-radius: 7px; color: #547080; background: #e9eff1; cursor: pointer; font-size: var(--font-caption); font-weight: 800; }
.password-input-shell button:hover { color: #126e60; background: #dff1ec; }
.password-strength-track { height: 5px; margin-top: 12px; overflow: hidden; border-radius: 999px; background: #e3e8eb; }.password-strength-track span { width: 0; height: 100%; display: block; border-radius: inherit; background: #9ba6b0; transition: width .2s ease,background .2s ease; }
.password-strength-track span[data-level="weak"] { background: #d9504c; }.password-strength-track span[data-level="fair"] { background: #d88a2b; }.password-strength-track span[data-level="good"] { background: #cfaa30; }.password-strength-track span[data-level="strong"],.password-strength-track span[data-level="excellent"] { background: #1a9a82; }
.account-password-tools { display: flex; align-items: center; gap: 7px; margin-top: 10px; }.account-password-tools > span { margin-right: auto; color: #7d8995; font-size: var(--font-caption); }.account-password-tools button { min-height: 28px; padding: 0 9px; border: 1px solid #d7e0e4; border-radius: 8px; color: #4f6577; background: white; cursor: pointer; font-size: var(--font-caption); font-weight: 800; }.account-password-tools button:hover:not(:disabled) { color: #126e60; border-color: #a9d5ca; background: #f0faf7; }.account-password-tools button:disabled { cursor: not-allowed; opacity: .45; }
.account-creator-note { display: grid; grid-template-columns: 22px 1fr; gap: 10px; margin-top: 16px; padding: 11px 12px; border-radius: 10px; color: #587082; background: #eaf2f5; }.account-creator-note span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: white; background: #63899a; font-size: var(--font-ui); font-weight: 800; }.account-creator-note p { margin: 2px 0 0; font-size: var(--font-caption); line-height: 1.5; }
.account-form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 17px; padding-top: 16px; border-top: 1px solid var(--line); }
.account-creator-side { display: grid; gap: 16px; }.account-security-panel,.account-history-panel { overflow: hidden; }
.account-security-panel > header,.account-history-panel > header { min-height: 70px; display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-bottom: 1px solid var(--line); }.account-security-panel h3,.account-history-panel h3 { margin: 4px 0 0; font-size: 12px; }.account-history-panel > header { justify-content: space-between; }.account-history-panel > header > span { color: var(--muted); font-size: var(--font-caption); }
.account-security-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: white; background: var(--navy); font-size: 16px; }
.account-security-panel ul { display: grid; gap: 0; margin: 0; padding: 3px 15px 9px; list-style: none; }.account-security-panel li { display: grid; grid-template-columns: 22px 1fr; gap: 9px; padding: 12px 0; border-bottom: 1px solid #edf0f2; }.account-security-panel li:last-child { border-bottom: 0; }.account-security-panel li > span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 7px; color: #147363; background: #e3f5f0; font-size: var(--font-caption); font-weight: 800; }.account-security-panel p { display: flex; flex-direction: column; margin: 0; }.account-security-panel strong { font-size: var(--font-caption); }.account-security-panel small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); line-height: 1.45; }
.account-history-list { max-height: 355px; overflow-y: auto; padding: 4px 15px 10px; scrollbar-color: #ccd5da transparent; }.account-history-list article { display: grid; grid-template-columns: 12px 1fr; gap: 9px; padding: 11px 0; border-bottom: 1px solid #edf0f2; }.account-history-list article:last-child { border-bottom: 0; }.account-history-list article > i { width: 9px; height: 9px; margin-top: 3px; border: 2px solid white; border-radius: 50%; background: #718292; box-shadow: 0 0 0 1px #c9d3d8; }.account-history-list article > i.created { background: #1a9a82; }.account-history-list article > div { min-width: 0; display: flex; flex-direction: column; }.account-history-list strong { overflow: hidden; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }.account-history-list small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); line-height: 1.4; }.account-history-list time { margin-top: 4px; color: #9aa5ae; font-size: var(--font-micro); }.account-history-list em { width: max-content; margin-top: 6px; padding: 3px 5px; border-radius: 999px; color: #6b4b92; background: #f3ecfa; font-size: var(--font-micro); font-style: normal; font-weight: 800; }
.account-history-empty { min-height: 165px; display: flex; align-items: center; flex-direction: column; justify-content: center; color: var(--muted); text-align: center; }.account-history-empty > span { width: 34px; height: 34px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 10px; background: #eef2f4; }.account-history-empty strong { font-size: var(--font-caption); }.account-history-empty small { margin-top: 3px; font-size: var(--font-caption); }
.account-directory-panel { margin-top: 16px; overflow: hidden; }.account-directory-head { min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--line); }.account-directory-head h3 { margin: 4px 0 3px; font: 800 18px Tahoma,Arial,sans-serif; }.account-directory-head p { margin: 0; color: var(--muted); font-size: var(--font-caption); }
.account-directory-toolbar { min-height: 62px; display: flex; align-items: center; gap: 9px; padding: 10px 14px; border-bottom: 1px solid var(--line); background: #fafcfc; }.account-directory-toolbar .search-field { width: min(420px,48vw); margin-right: auto; }
.account-filter { display: flex; align-items: center; gap: 7px; color: #768594; font-size: var(--font-caption); font-weight: 800; }.account-filter select { height: 36px; min-width: 130px; padding: 0 30px 0 10px; border: 1px solid #dce3e8; border-radius: 8px; color: #536678; background: white; font-size: var(--font-caption); }
.account-directory-table { min-width: 900px; }.account-directory-table td:first-child { min-width: 230px; }.account-directory-table td:last-child { text-align: right; }.account-directory-table time { color: #68798a; font-size: var(--font-caption); }
.account-table-person { display: flex; align-items: center; gap: 10px; }.account-table-person > .person-avatar { flex: 0 0 auto; width: 34px; height: 34px; }.account-table-person > span:last-child { min-width: 0; display: flex; flex-direction: column; }.account-table-person strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.account-status-pill,.current-account-chip { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 999px; font-size: var(--font-caption); font-weight: 800; }.account-status-pill.active { color: #126d5f; background: #def4ed; }.account-status-pill.inactive { color: #a13c3a; background: #fde5e4; }.current-account-chip { color: #536779; background: #edf1f3; }.account-never { color: #9aa4ad; font-size: var(--font-caption); }.account-directory-empty { border-top: 1px solid var(--line); }

@media (max-width: 1120px) {
  .account-creator-workspace { grid-template-columns: 1fr; }.account-creator-side { grid-template-columns: 1fr 1fr; }.account-history-list { max-height: 330px; }
}
@media (max-width: 760px) {
  .account-creator-stats { grid-template-columns: repeat(2,1fr); }.account-creator-stats article:nth-child(2) { border-right: 0; }.account-creator-stats article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .account-form-grid,.account-password-grid,.account-creator-side { grid-template-columns: 1fr; }.account-directory-head { align-items: flex-start; flex-direction: column; }.account-directory-toolbar { align-items: stretch; flex-direction: column; }.account-directory-toolbar .search-field { width: 100%; }.account-filter { justify-content: space-between; }.account-filter select { flex: 1; }.account-password-tools { align-items: stretch; flex-wrap: wrap; }.account-password-tools > span { width: 100%; margin: 0 0 2px; }.account-creator-format { width: 100%; }
}
@media (max-width: 460px) {
  .account-creator-stats article { min-height: 72px; padding: 12px; }.account-stat-icon { width: 31px; height: 31px; }.account-creator-panel-head { padding: 18px 16px; }.account-creator-form { padding: 17px 15px; }.account-form-actions .button { flex: 1; }.account-directory-head { padding-inline: 15px; }
}

/* Brew Fund */
.brew-fund-page { max-width: 1680px; }
.brew-fund-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 18px; }
.brew-fund-intro h2 { margin: 9px 0 4px; font: 800 28px/1.2 Tahoma,Arial,sans-serif; letter-spacing: -.04em; }
.brew-fund-intro p { max-width: 720px; margin: 0; color: var(--muted); }
.page-intro .module-live-status { margin: 8px 0 0; }
.brew-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.brew-steward-banner { min-height: 82px; display: grid; grid-template-columns: 43px minmax(0,1fr) auto; align-items: center; gap: 15px; margin-bottom: 15px; padding: 14px 18px; border: 1px solid #cbe4de; border-radius: 15px; background: linear-gradient(105deg,#f5fcfa,#fff); box-shadow: var(--shadow); }
.brew-steward-banner.unassigned { border-color: #ead7a9; background: linear-gradient(105deg,#fffaf0,#fff); }
.brew-steward-mark { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 13px; color: white; background: linear-gradient(145deg,#18a38c,#117468); box-shadow: 0 9px 20px rgba(22,139,122,.2); font: 800 18px Tahoma,Arial,sans-serif; }
.brew-steward-banner.unassigned .brew-steward-mark { background: #b98628; box-shadow: 0 9px 20px rgba(185,134,40,.2); }
.brew-steward-banner > div { min-width: 0; display: flex; flex-direction: column; }
.brew-steward-banner small { color: #16816f; font-size: var(--font-caption); font-weight: 800; letter-spacing: .13em; }
.brew-steward-banner strong { margin-top: 5px; font-size: 13px; }
.brew-steward-banner p { margin: 3px 0 0; color: #697b89; font-size: var(--font-caption); }
.brew-access-chip { min-height: 28px; display: grid; place-items: center; padding: 0 10px; border-radius: 999px; font-size: var(--font-caption); font-weight: 800; letter-spacing: .08em; }
.brew-access-chip.write { color: #126e60; background: #ddf4ee; }.brew-access-chip.read { color: #657584; background: #edf1f3; }
.brew-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin-bottom: 16px; }
.brew-stat-grid article { min-width: 0; min-height: 101px; display: grid; grid-template-columns: 40px minmax(0,1fr); align-items: center; gap: 12px; padding: 16px; }
.brew-stat-grid article.primary { color: white; border-color: #123d5b; background: linear-gradient(140deg,#102a43,#164866); }
.brew-stat-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; color: #187462; background: #ddf3ed; font: 800 14px Tahoma,Arial,sans-serif; }
.brew-stat-grid .primary .brew-stat-icon { color: #bff2e6; background: rgba(255,255,255,.12); }
.brew-stat-icon.income { color: #166c85; background: #def0f6; }.brew-stat-icon.spend { color: #a34a47; background: #fce7e5; }.brew-stat-icon.variance { color: #8a651d; background: #fff0c9; }
.brew-stat-grid article > div { min-width: 0; display: flex; flex-direction: column; }
.brew-stat-grid small { color: #81909d; font-size: var(--font-caption); font-weight: 750; }.brew-stat-grid .primary small { color: #9ec1ce; }
.brew-stat-grid strong { margin-top: 6px; font: 800 20px Tahoma,Arial,sans-serif; }.brew-stat-grid strong.negative { color: #c94b47; }
.brew-stat-grid em { margin-top: 5px; overflow: hidden; color: #8c98a3; font-size: var(--font-caption); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.brew-stat-grid .primary em { color: #91afba; }
.brew-month-record { min-height: 76px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 13px; margin-bottom: 16px; padding: 12px 15px; border-color: #cfe2de; background: #fbfefd; }
.brew-month-record-mark { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #b9ddd5; border-radius: 12px; color: #137563; background: #e5f6f1; box-shadow: inset 0 -4px #4eb6a1; font: 800 var(--font-body-small) Tahoma,Arial,sans-serif; }
.brew-month-record-copy { min-width: 0; display: flex; flex-direction: column; }.brew-month-record-copy small { color: #16816f; font-size: var(--font-caption); font-weight: 800; letter-spacing: .12em; }.brew-month-record-copy strong { margin-top: 4px; font-size: 14px; }.brew-month-record-copy p { margin: 3px 0 0; color: #788995; font-size: var(--font-caption); }
.brew-month-record-nav { display: flex; align-items: center; gap: 6px; }.brew-month-record-nav > a { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #d8e2e5; border-radius: 9px; color: #4e6879; background: white; font-size: 12px; font-weight: 800; }.brew-month-record-nav > a:hover { color: white; border-color: var(--teal); background: var(--teal); }.brew-month-record-nav > a.current { width: auto; padding: 0 10px; color: #116f60; border-color: #c4dfd8; background: #edf9f6; font-size: var(--font-caption); }.brew-month-record-nav > a.current:hover { color: white; background: var(--teal); }
.brew-month-record-nav label { min-width: 152px; height: 34px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px; padding: 0 8px 0 10px; border: 1px solid #d8e2e5; border-radius: 9px; color: #7c8994; background: white; }.brew-month-record-nav label span { font-size: var(--font-caption); white-space: nowrap; }.brew-month-record-nav input { min-width: 0; height: 28px; padding: 0; border: 0; outline: 0; color: #314a5b; background: transparent; font: 750 var(--font-caption) Tahoma,Arial,sans-serif; cursor: pointer; }
.brew-layout { display: grid; grid-template-columns: minmax(0,1fr) 312px; gap: 15px; align-items: start; }
.brew-main-column,.brew-side-column { min-width: 0; display: grid; gap: 15px; }
.brew-tracker-panel,.brew-ledger-panel,.brew-check-panel,.brew-scenario-guide,.brew-audit-panel { overflow: hidden; }
.brew-panel-head { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 19px; border-bottom: 1px solid var(--line); }
.brew-panel-head h3 { margin: 5px 0 3px; font: 800 16px Tahoma,Arial,sans-serif; }.brew-panel-head p { margin: 0; color: var(--muted); font-size: var(--font-caption); }
.brew-period-nav { display: grid; grid-template-columns: 31px auto 31px; align-items: center; overflow: hidden; border: 1px solid #dce4e8; border-radius: 10px; background: #fbfcfd; }
.brew-period-nav a { width: 31px; height: 31px; display: grid; place-items: center; color: #547080; font-size: 12px; font-weight: 800; }.brew-period-nav a:hover { color: white; background: var(--teal); }
.brew-period-nav span { padding: 0 10px; color: #506577; font-size: var(--font-caption); font-weight: 750; white-space: nowrap; }
.brew-tracker-scroll { overflow-x: auto; scrollbar-color: #bdc9d0 transparent; }
.brew-tracker-grid { min-width: calc(180px + (var(--brew-periods) * 103px)); display: grid; grid-template-columns: 180px repeat(var(--brew-periods),103px); }
.brew-tracker-person-head,.brew-tracker-month { min-height: 53px; display: flex; align-items: center; justify-content: center; border-right: 1px solid #edf0f2; border-bottom: 1px solid var(--line); background: #f8fafb; }
.brew-tracker-person-head { position: sticky; left: 0; z-index: 4; justify-content: flex-start; padding: 0 15px; color: #83909d; font-size: var(--font-caption); font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.brew-tracker-month { flex-direction: column; }.brew-tracker-month.current { color: #126f60; background: #eaf8f4; box-shadow: inset 0 -3px var(--teal); }
.brew-tracker-month strong { font-size: var(--font-ui); }.brew-tracker-month small { margin-top: 3px; color: #8a96a2; font-size: var(--font-micro); }
.brew-tracker-person { min-height: 65px; position: sticky; left: 0; z-index: 3; display: grid; grid-template-columns: 31px minmax(0,1fr) 21px; align-items: center; gap: 9px; padding: 8px 9px 8px 12px; border-right: 1px solid #e7ebee; border-bottom: 1px solid #edf0f2; background: white; }
.brew-tracker-person > .person-avatar { width: 31px; height: 31px; font-size: var(--font-caption); }.brew-tracker-person > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }.brew-tracker-person strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }.brew-tracker-person small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); }.brew-tracker-person button { width: 21px; height: 25px; border: 0; border-radius: 7px; color: #7e8c98; background: transparent; cursor: pointer; font-size: var(--font-caption); }.brew-tracker-person button:hover { color: #126e60; background: #e8f6f2; }
.brew-contribution-cell { min-height: 65px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 7px; border: 0; border-right: 1px solid #edf0f2; border-bottom: 1px solid #edf0f2; color: #657483; background: white; font: inherit; text-align: center; }
button.brew-contribution-cell { cursor: pointer; transition: background .15s ease,box-shadow .15s ease; }button.brew-contribution-cell:hover { z-index: 1; box-shadow: inset 0 0 0 2px rgba(22,139,122,.35); }
.brew-contribution-cell span { font-size: var(--font-caption); font-weight: 800; }.brew-contribution-cell small { font-size: var(--font-micro); opacity: .76; }
.brew-contribution-cell.paid { color: #116d5e; background: #e8f8f3; }.brew-contribution-cell.partial { color: #86631c; background: #fff5d5; }.brew-contribution-cell.due { color: #53697b; background: #f4f7f8; }.brew-contribution-cell.overdue { color: #a43e3b; background: #fde8e7; }.brew-contribution-cell.exempt { color: #6b7682; background: #eceff1; }.brew-contribution-cell.not_applicable { color: #b0b8bf; background: #fafbfb; }
.brew-tracker-legend { min-height: 47px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 10px 15px; border-top: 1px solid var(--line); background: #fbfcfd; }
.brew-tracker-legend > span { display: inline-flex; align-items: center; gap: 5px; color: #657585; font-size: var(--font-caption); }.brew-tracker-legend > span::before { content: ""; width: 7px; height: 7px; border-radius: 3px; background: #dde4e7; }.brew-tracker-legend .paid::before { background: #67cbb4; }.brew-tracker-legend .partial::before { background: #e6bd50; }.brew-tracker-legend .due::before { background: #b7c2ca; }.brew-tracker-legend .overdue::before { background: #e47570; }.brew-tracker-legend .exempt::before { background: #8f9aa4; }
.brew-tracker-legend small { margin-left: auto; color: #89949e; font-size: var(--font-micro); }
.brew-panel-head.ledger { align-items: flex-end; }.brew-ledger-filters { display: flex; gap: 7px; }.brew-ledger-filters .search-field { width: 220px; }.brew-ledger-filters select { min-width: 118px; height: 36px; padding: 0 28px 0 9px; border: 1px solid #dce3e8; border-radius: 9px; color: #526779; background-color: white; font-size: var(--font-caption); }
.brew-ledger-list { display: grid; }.brew-ledger-column-head,.brew-ledger-entry { display: grid; grid-template-columns: 36px 68px minmax(130px,1.15fr) minmax(105px,.9fr) minmax(190px,1.25fr) minmax(120px,1fr) auto; column-gap: 11px; }.brew-ledger-column-head { align-items: center; min-height: 33px; padding: 0 17px; border-bottom: 1px solid #e2e7ea; color: #84919b; background: #f8fafb; font-size: var(--font-micro); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.brew-ledger-entry { min-height: 112px; align-items: center; padding: 13px 17px; border-bottom: 1px solid #e6ebed; background: white; }.brew-ledger-entry:last-child { border-bottom: 0; }.brew-ledger-entry.void { opacity: .58; background: #f6f7f8; }
.brew-entry-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: #6a7886; background: #edf1f3; font-size: 12px; font-weight: 800; }.brew-entry-mark.contribution { color: #147260; background: #e1f4ee; }.brew-entry-mark.purchase { color: #a14946; background: #fbe8e7; }
.brew-entry-when,.brew-entry-details,.brew-entry-source,.brew-entry-record { min-width: 0; }.brew-entry-when time,.brew-entry-details { display: flex; flex-direction: column; }.brew-entry-when strong { color: #415669; font-size: var(--font-caption); }.brew-entry-when small { margin-top: 4px; color: #8a96a1; font-size: var(--font-caption); }.brew-entry-details > small,.brew-entry-source dt,.brew-entry-record dt { color: #89959e; font-size: var(--font-micro); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.brew-entry-details > strong { margin-top: 5px; overflow-wrap: anywhere; color: #213b4d; font-size: var(--font-ui); line-height: 1.35; }.brew-entry-details > span { margin-top: 5px; color: #6e7f8c; font-size: var(--font-micro); }.brew-entry-source,.brew-entry-record { display: grid; gap: 8px; margin: 0; }.brew-entry-source > div,.brew-entry-record > div { min-width: 0; }.brew-entry-source dd,.brew-entry-record dd { margin: 4px 0 0; overflow-wrap: anywhere; color: #425a6b; font-size: var(--font-caption); line-height: 1.35; }.brew-entry-money { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }.brew-entry-money > span { min-width: 0; min-height: 45px; display: flex; flex-direction: column; justify-content: center; padding: 6px 7px; border-radius: 7px; background: #f1f4f5; }.brew-entry-money small { color: #7d8b97; font-size: var(--font-micro); }.brew-entry-money strong { margin-top: 4px; color: #63727e; font-size: var(--font-caption); }.brew-entry-money .cash { background: #e5f5f1; }.brew-entry-money .cash strong,.brew-entry-money .credit strong { color: #126e5f; }.brew-entry-money .credit { background: #edf7f4; }.brew-entry-money .expense { background: #fcebea; }.brew-entry-money .expense strong,.brew-entry-money .negative strong { color: #a64743; }.brew-entry-money .expense.refund strong { color: #126e5f; }.brew-entry-allocation { width: max-content; max-width: 100%; padding: 4px 6px; border-radius: 999px; color: #84611d; background: #fff2ca; font-size: var(--font-micro); font-weight: 800; }.brew-entry-actions { display: flex; flex-direction: column; gap: 4px; }.brew-entry-actions button { min-height: 26px; padding: 0 7px; border: 0; border-radius: 7px; color: #547080; background: #eef3f4; cursor: pointer; font-size: var(--font-caption); font-weight: 800; }.brew-entry-actions button:hover { color: #126e60; background: #ddf3ed; }.brew-entry-actions .danger-text:hover { color: #a53f3b; background: #fbe5e4; }.brew-void-chip { padding: 5px 7px; border-radius: 999px; color: #8a5960; background: #eee5e7; font-size: var(--font-micro); font-weight: 800; }.brew-filter-empty { border-top: 1px solid var(--line); }
.brew-check-panel > header,.brew-scenario-guide > header { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 15px; border-bottom: 1px solid var(--line); }.brew-check-panel header > span,.brew-scenario-guide header { display: flex; flex-direction: column; }.brew-check-panel header small,.brew-scenario-guide header small { color: var(--teal); font-size: var(--font-micro); font-weight: 800; letter-spacing: .11em; }.brew-check-panel h3,.brew-scenario-guide h3 { margin: 5px 0 0; font-size: 12px; }.brew-check-panel header button { min-height: 28px; padding: 0 8px; border: 1px solid #cce1dc; border-radius: 8px; color: #126e60; background: #f1faf7; cursor: pointer; font-size: var(--font-caption); font-weight: 800; }
.brew-check-list { padding: 3px 14px 10px; }.brew-check-list article { min-height: 67px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; border-bottom: 1px solid #edf0f2; }.brew-check-list article:last-child { border-bottom: 0; }.brew-check-list article.void { opacity: .58; }.brew-check-open { min-width: 0; min-height: 60px; display: grid; grid-template-columns: 12px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 5px 3px; border: 0; border-radius: 9px; color: inherit; background: transparent; cursor: pointer; text-align: left; transition: background .15s ease,box-shadow .15s ease; }.brew-check-open:hover,.brew-check-open:focus-visible { outline: 0; background: #f2f8f6; box-shadow: inset 0 0 0 1px #d8ebe6; }.brew-check-dot { width: 9px; height: 9px; border: 2px solid white; border-radius: 50%; background: #1a9b83; box-shadow: 0 0 0 1px #94cbbf; }.brew-check-dot.variance { background: #d7872c; box-shadow: 0 0 0 1px #e6bc8b; }.brew-check-copy { min-width: 0; display: flex; flex-direction: column; }.brew-check-list strong { font-size: var(--font-ui); }.brew-check-list small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); }.brew-check-list em { width: max-content; margin-top: 5px; padding: 3px 5px; border-radius: 999px; color: #78601f; background: #fff1c8; font-size: var(--font-micro); font-style: normal; font-weight: 750; }.brew-check-list em.negative { color: #9b413e; background: #fbe5e4; }.brew-check-verified { width: max-content; margin-top: 5px; padding: 3px 6px; border-radius: 999px; color: #126e5f; background: #e2f4ef; font-size: var(--font-micro); font-weight: 800; }.brew-check-view-label { display: inline-flex; align-items: center; gap: 4px; color: #197965; font-size: var(--font-micro); font-weight: 800; white-space: nowrap; }.brew-check-open:hover .brew-check-view-label span { transform: translateX(2px); }.brew-check-view-label span { display: inline-block; transition: transform .15s ease; }.brew-check-list article > button[data-brew-void-check] { width: 22px; height: 22px; border: 0; border-radius: 7px; color: #9a5552; background: #fae8e7; cursor: pointer; }.brew-check-list article > b { color: #9b6b70; font-size: var(--font-micro); }
.brew-side-empty { min-height: 155px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--muted); text-align: center; }.brew-side-empty > span { width: 35px; height: 35px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 10px; background: #eef2f4; }.brew-side-empty strong { font-size: var(--font-ui); }.brew-side-empty small { max-width: 200px; margin-top: 4px; font-size: var(--font-caption); line-height: 1.4; }
.brew-scenario-guide > header { align-items: flex-start; flex-direction: column; }.brew-scenario-guide ul { margin: 0; padding: 3px 15px 10px; list-style: none; }.brew-scenario-guide li { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid #edf0f2; }.brew-scenario-guide li:last-child { border-bottom: 0; }.brew-scenario-guide li > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #126e60; background: #e5f5f1; font-size: var(--font-ui); font-weight: 800; }.brew-scenario-guide li > span.receipt { color: #546b8c; background: #e9edf5; }.brew-scenario-guide li > span.purchase { color: #9d4643; background: #fbe6e5; }.brew-scenario-guide li > span.mixed { color: #845e1b; background: #fff0c7; }.brew-scenario-guide p { display: flex; flex-direction: column; margin: 0; }.brew-scenario-guide strong { font-size: var(--font-caption); }.brew-scenario-guide small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); line-height: 1.45; }
.brew-audit-panel > summary { min-height: 64px; display: flex; align-items: center; justify-content: space-between; padding: 13px 15px; cursor: pointer; list-style: none; }.brew-audit-panel > summary::-webkit-details-marker { display: none; }.brew-audit-panel > summary > span:first-child { display: flex; flex-direction: column; }.brew-audit-panel summary small { color: #7860a0; font-size: var(--font-micro); font-weight: 800; letter-spacing: .11em; }.brew-audit-panel summary strong { margin-top: 5px; font-size: var(--font-ui); }.brew-audit-panel[open] > summary .ui-chevron { transform: rotate(225deg); }.brew-audit-panel > div { max-height: 310px; overflow-y: auto; padding: 0 14px 10px; border-top: 1px solid var(--line); }.brew-audit-panel article { display: grid; grid-template-columns: 10px 1fr; gap: 8px; padding: 10px 0; border-bottom: 1px solid #edf0f2; }.brew-audit-panel article i { width: 8px; height: 8px; margin-top: 3px; border: 2px solid white; border-radius: 50%; background: #8170a4; box-shadow: 0 0 0 1px #cfc7df; }.brew-audit-panel article span { display: flex; flex-direction: column; }.brew-audit-panel article strong { font-size: var(--font-caption); }.brew-audit-panel article small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); }

.brew-entry-dialog { width: min(1060px,calc(100vw - 28px)); }.brew-entry-dialog > form,.brew-count-dialog > form,.brew-member-dialog > form { max-height: min(900px,calc(100vh - 28px)); display: flex; flex-direction: column; }.brew-entry-body,.brew-count-body,.brew-member-body { overflow-y: auto; }
.brew-scenario-picker { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; margin: 0 0 17px; padding: 0; border: 0; }.brew-scenario-picker legend { margin-bottom: 8px; color: #4c6072; font-size: var(--font-caption); font-weight: 800; }.brew-scenario-picker button { min-height: 83px; display: flex; flex-direction: column; align-items: flex-start; padding: 10px; border: 1px solid #dce3e7; border-radius: 10px; color: #4d6173; background: #fbfcfd; cursor: pointer; text-align: left; }.brew-scenario-picker button:hover { border-color: #acd6cc; background: #f4fbf9; }.brew-scenario-picker button.active { color: #126d5f; border-color: #72b9a9; background: #e9f8f4; box-shadow: inset 0 -3px var(--teal); }.brew-scenario-picker button > span { width: 24px; height: 24px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 7px; color: white; background: #68808f; font-size: var(--font-ui); font-weight: 800; }.brew-scenario-picker button.active > span { background: var(--teal); }.brew-scenario-picker strong { font-size: var(--font-caption); }.brew-scenario-picker small { margin-top: 3px; color: #83909b; font-size: var(--font-micro); line-height: 1.3; }
.brew-entry-core { margin-bottom: 15px !important; }.brew-entry-body input,.brew-entry-body select,.brew-count-body input,.brew-member-body input,.brew-member-body select,.brew-contribution-body input,.brew-contribution-body select { width: 100%; }
.brew-amount-block,.brew-amount-grid { margin-bottom: 14px; padding: 14px; border: 1px solid #dce5e7; border-radius: 12px; background: #f7fafb; }.brew-amount-block { display: grid; grid-template-columns: minmax(180px,300px); }.brew-amount-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }.brew-amount-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }.brew-amount-block input,.brew-amount-grid input { height: 47px; font: 800 18px Tahoma,Arial,sans-serif; }
.brew-effect-preview { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; margin-bottom: 13px; padding: 12px 14px; border-radius: 11px; color: white; background: #17394f; }.brew-effect-preview > span { color: #8eb5c0; font-size: var(--font-micro); font-weight: 800; letter-spacing: .12em; }.brew-effect-preview > div { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }.brew-effect-preview b { padding: 6px 8px; border-radius: 7px; color: #d9ecee; background: rgba(255,255,255,.08); font-size: var(--font-caption); }
.brew-allocation-choice { min-height: 66px; display: grid; grid-template-columns: 0 31px minmax(0,1fr) 150px; align-items: center; gap: 10px; margin-bottom: 16px; padding: 10px 12px; border: 1px solid #d8e6e2; border-radius: 11px; background: #f2faf8; cursor: pointer; }.brew-allocation-choice > input[type="checkbox"] { width: 1px; height: 1px; opacity: 0; }.brew-allocation-choice > span:nth-of-type(2) { display: flex; flex-direction: column; }.brew-allocation-choice strong { font-size: var(--font-caption); }.brew-allocation-choice small { margin-top: 3px; color: #698079; font-size: var(--font-micro); }.brew-allocation-choice input:checked + .switch-control { background: var(--teal); }.brew-allocation-choice input:checked + .switch-control::after { transform: translateX(13px); }.brew-allocation-choice input[type="month"] { height: 36px; padding: 0 8px; border: 1px solid #cdded9; border-radius: 8px; background: white; font-size: var(--font-caption); }
.brew-dialog-help { align-self: center; max-width: 440px; color: #6d7e8b; font-size: var(--font-caption); line-height: 1.4; }
.brew-count-dialog { width: min(720px,calc(100vw - 28px)); }.brew-count-time { max-width: 290px; margin-bottom: 15px; }
.brew-use-last-count { width: 100%; min-height: 70px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 11px; margin-bottom: 15px; padding: 10px 12px; border: 1px solid #cce2dc; border-radius: 11px; color: #314f5e; background: #f4fbf9; cursor: pointer; text-align: left; transition: border-color .15s ease,background .15s ease,box-shadow .15s ease; }.brew-use-last-count:hover { border-color: #7fbfaf; background: #edf9f6; box-shadow: 0 7px 18px rgba(25,113,96,.08); }.brew-use-last-count.loaded { border-color: #52ac98; background: #e6f7f2; box-shadow: inset 0 0 0 1px #72bfad; }.brew-use-last-count-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: white; background: #168b78; font-size: 14px; font-weight: 800; }.brew-use-last-count > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }.brew-use-last-count small { color: #16816f; font-size: var(--font-micro); font-weight: 800; letter-spacing: .1em; }.brew-use-last-count strong { margin-top: 4px; font-size: var(--font-ui); }.brew-use-last-count em { margin-top: 3px; color: #71848d; font-size: var(--font-micro); font-style: normal; line-height: 1.35; }.brew-use-last-count > b { min-width: 66px; color: #147461; font-size: var(--font-caption); text-align: right; }
.brew-denomination-grid,.brew-denomination-detail-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 7px; }.brew-denomination-grid label,.brew-denomination-detail-grid article { --money-bg: #edf2f4; --money-fg: #506879; --money-border: #d5dfe4; overflow: hidden; border: 1px solid var(--money-border); border-radius: 10px; background: #fff; }.brew-denomination-grid label { display: flex; flex-direction: column; }.brew-denomination-grid span,.brew-denomination-detail-grid article > span { height: 27px; display: grid; place-items: center; color: var(--money-fg); background: var(--money-bg); font-size: var(--font-caption); font-weight: 800; }.brew-denomination-grid input { height: 41px; border: 0; outline: 0; color: #22394a; background: #fff; font-size: var(--font-body-small); font-weight: 800; text-align: center; }.brew-denomination-grid input:focus { box-shadow: inset 0 0 0 2px var(--money-fg); }.money-50 { --money-bg: #f5d5d9 !important; --money-fg: #8f2f3a !important; --money-border: #e9b6bd !important; }.money-20 { --money-bg: #e7d9ef !important; --money-fg: #674077 !important; --money-border: #d6bfe2 !important; }.money-10 { --money-bg: #f4dfc6 !important; --money-fg: #8a5526 !important; --money-border: #e8c79f !important; }.money-5 { --money-bg: #cfe9e9 !important; --money-fg: #24696b !important; --money-border: #acd6d6 !important; }.money-2,.money-1 { --money-bg: #f3e4a9 !important; --money-fg: #785c12 !important; --money-border: #dfca72 !important; }.money-0-50,.money-0-20,.money-0-10,.money-0-05 { --money-bg: #e1e6e9 !important; --money-fg: #53616c !important; --money-border: #c6cfd5 !important; }.money-0-02,.money-0-01 { --money-bg: #edcfbd !important; --money-fg: #844b2d !important; --money-border: #dcae91 !important; }.brew-count-result { display: grid; grid-template-columns: repeat(3,1fr); margin: 15px 0; overflow: hidden; border: 1px solid #dce4e8; border-radius: 11px; }.brew-count-result > div { display: flex; flex-direction: column; padding: 12px 14px; border-right: 1px solid #e1e7ea; }.brew-count-result > div:last-child { border: 0; }.brew-count-result small { color: #7d8b97; font-size: var(--font-micro); }.brew-count-result strong { margin-top: 5px; font-size: 13px; }.brew-count-result strong.negative { color: #a43f3c; }
.brew-check-detail-dialog { width: min(780px,calc(100vw - 28px)); }.brew-check-detail-dialog > form { max-height: min(900px,calc(100vh - 28px)); display: flex; flex-direction: column; }.brew-check-detail-body { overflow-y: auto; }.brew-check-detail-summary { margin-top: 0; }.brew-denomination-detail-grid article { min-height: 78px; display: grid; grid-template-rows: 27px 1fr auto; text-align: center; box-shadow: inset 0 -3px var(--money-bg); }.brew-denomination-detail-grid article > strong { align-self: end; margin-top: 8px; font-size: 12px; }.brew-denomination-detail-grid article > small { margin: 3px 0 9px; color: #75838e; font-size: var(--font-micro); }.brew-denomination-detail-grid article.empty { opacity: .68; filter: saturate(.65); }.brew-check-detail-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 15px 0 0; }.brew-check-detail-meta > div { min-height: 54px; padding: 10px 12px; border: 1px solid #e0e6e9; border-radius: 10px; background: #f8fafb; }.brew-check-detail-meta > div.wide { grid-column: 1 / -1; }.brew-check-detail-meta dt { color: #7b8994; font-size: var(--font-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.brew-check-detail-meta dd { margin: 5px 0 0; color: #30495a; font-size: var(--font-caption); line-height: 1.45; }.brew-check-detail-meta dd.active,.brew-check-detail-meta dd.verified,.brew-check-detail-meta dd.void { width: max-content; padding: 4px 7px; border-radius: 999px; color: #14715f; background: #ddf3ed; font-size: var(--font-caption); font-weight: 800; }.brew-check-detail-meta dd.active { color: #84611d; background: #fff2ca; }.brew-check-detail-meta dd.void { color: #964744; background: #f8e3e2; }
.brew-member-dialog { width: min(760px,calc(100vw - 28px)); }.brew-member-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }.brew-member-picker > button { min-height: 58px; display: grid; grid-template-columns: 32px 1fr; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #dce3e7; border-radius: 10px; color: var(--ink); background: #fbfcfd; cursor: pointer; text-align: left; }.brew-member-picker > button:hover { border-color: #a7d3c9; background: #f2faf8; }.brew-member-picker .person-avatar { width: 32px; height: 32px; font-size: var(--font-caption); }.brew-member-picker button > span:last-child { min-width: 0; display: flex; flex-direction: column; }.brew-member-picker strong { font-size: var(--font-caption); }.brew-member-picker small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); }.brew-member-picker > button.new { grid-template-columns: 32px 1fr; border-style: dashed; color: #126e60; }.brew-member-picker > button.new > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: white; background: var(--teal); font-size: 15px; }.brew-member-active { min-height: 57px; display: grid !important; grid-template-columns: 0 31px 1fr; align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid #dce4e7; border-radius: 9px; background: #fafcfc; cursor: pointer; }.brew-member-active > input { width: 1px; height: 1px; opacity: 0; }.brew-member-active > span:last-child { display: flex; flex-direction: column; }.brew-member-active strong { font-size: var(--font-caption); }.brew-member-active small { margin-top: 3px; color: var(--muted); font-size: var(--font-micro); }.brew-member-active input:checked + .switch-control { background: var(--teal); }.brew-member-active input:checked + .switch-control::after { transform: translateX(13px); }.brew-member-fields > .stacked-field { margin-top: 14px; }
.brew-contribution-dialog,.brew-void-dialog,.brew-manager-dialog { width: min(610px,calc(100vw - 28px)); }.brew-contribution-body,.brew-member-body { display: grid; gap: 14px; }.brew-contribution-body .form-information { margin: 0; }.brew-contribution-body .form-information.warning { color: #795c20; background: #fff4d4; }.brew-void-dialog .dialog-head.danger { border-top: 4px solid #c84c48; }.brew-void-dialog textarea { min-height: 105px; }

@media (max-width: 1220px) {
  .brew-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .brew-layout { grid-template-columns: 1fr; }.brew-side-column { grid-template-columns: repeat(2,minmax(0,1fr)); }.brew-audit-panel { grid-column: 1 / -1; }
  .brew-scenario-picker { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1120px) {
  .brew-ledger-column-head { display: none; }.brew-ledger-entry { grid-template-columns: 36px 76px minmax(0,1fr); align-items: start; row-gap: 11px; }.brew-entry-when { align-self: center; }.brew-entry-details { align-self: center; }.brew-entry-source,.brew-entry-money,.brew-entry-record { grid-column: 2 / -1; }.brew-entry-source,.brew-entry-record { grid-template-columns: repeat(2,minmax(0,1fr)); }.brew-entry-actions,.brew-void-chip { grid-column: 2 / -1; justify-self: start; flex-direction: row; }
}
@media (max-width: 820px) {
  .brew-fund-intro,.brew-panel-head,.brew-panel-head.ledger { align-items: stretch; flex-direction: column; }.brew-hero-actions { justify-content: flex-start; }.brew-month-record { grid-template-columns: 42px minmax(0,1fr); }.brew-month-record-nav { grid-column: 1 / -1; }.brew-period-nav { width: max-content; }.brew-ledger-filters { width: 100%; }.brew-ledger-filters .search-field { flex: 1; width: auto; }.brew-side-column { grid-template-columns: 1fr; }.brew-audit-panel { grid-column: auto; }
  .brew-ledger-column-head { display: none; }.brew-ledger-entry { grid-template-columns: 36px 76px minmax(0,1fr); align-items: start; row-gap: 11px; }.brew-entry-when { align-self: center; }.brew-entry-details { align-self: center; }.brew-entry-source,.brew-entry-money,.brew-entry-record { grid-column: 2 / -1; }.brew-entry-source,.brew-entry-record { grid-template-columns: repeat(2,minmax(0,1fr)); }.brew-entry-actions,.brew-void-chip { grid-column: 2 / -1; justify-self: start; flex-direction: row; }
  .brew-entry-dialog,.brew-count-dialog,.brew-check-detail-dialog,.brew-member-dialog,.brew-contribution-dialog,.brew-void-dialog,.brew-manager-dialog { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 18px 18px 0 0; }.brew-entry-dialog > form,.brew-count-dialog > form,.brew-check-detail-dialog > form,.brew-member-dialog > form { max-height: calc(100vh - 15px); }
  .brew-scenario-picker { grid-template-columns: repeat(3,minmax(0,1fr)); }.brew-entry-core,.brew-entry-body .form-grid.three-columns { grid-template-columns: 1fr 1fr; }.brew-allocation-choice { grid-template-columns: 0 31px minmax(0,1fr); }.brew-allocation-choice input[type="month"] { grid-column: 2 / -1; }.brew-denomination-grid,.brew-denomination-detail-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .brew-fund-page { padding-bottom: 90px; }.brew-steward-banner { grid-template-columns: 38px minmax(0,1fr); }.brew-steward-mark { width: 38px; height: 38px; }.brew-access-chip { grid-column: 1 / -1; width: max-content; }.brew-stat-grid { grid-template-columns: 1fr 1fr; gap: 7px; }.brew-stat-grid article { min-height: 91px; grid-template-columns: 31px minmax(0,1fr); gap: 9px; padding: 12px; }.brew-stat-icon { width: 31px; height: 31px; }.brew-stat-grid strong { font-size: 15px; }.brew-month-record-nav { flex-wrap: wrap; }.brew-month-record-nav label { flex: 1; min-width: 160px; }.brew-month-record-nav > a.current { flex: 1; }.brew-panel-head { padding: 15px; }.brew-ledger-filters { flex-direction: column; }.brew-ledger-filters select { width: 100%; }.brew-ledger-entry { grid-template-columns: 31px minmax(0,1fr); padding: 13px; }.brew-entry-mark { width: 31px; height: 31px; }.brew-entry-when,.brew-entry-details,.brew-entry-source,.brew-entry-money,.brew-entry-record,.brew-entry-actions,.brew-void-chip { grid-column: 2; }.brew-entry-when { order: -1; }.brew-entry-source,.brew-entry-record { grid-template-columns: 1fr; }.brew-entry-money { grid-template-columns: repeat(3,minmax(0,1fr)); }.brew-entry-actions,.brew-void-chip { justify-self: start; }
  .brew-scenario-picker { grid-template-columns: repeat(2,minmax(0,1fr)); }.brew-entry-core,.brew-entry-body .form-grid.three-columns,.brew-amount-grid,.brew-amount-grid.three,.brew-member-picker { grid-template-columns: 1fr; }.brew-use-last-count { grid-template-columns: 34px minmax(0,1fr); }.brew-use-last-count > b { grid-column: 2; text-align: left; }.brew-count-result { grid-template-columns: 1fr; }.brew-count-result > div { border-right: 0; border-bottom: 1px solid #e1e7ea; }.brew-count-result > div:last-child { border-bottom: 0; }.brew-denomination-grid,.brew-denomination-detail-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.brew-check-detail-meta { grid-template-columns: 1fr; }.brew-check-detail-meta > div.wide { grid-column: auto; }.brew-dialog-help { display: none; }
}
@media (max-width: 420px) {
  .brew-stat-grid { grid-template-columns: 1fr; }.brew-stat-grid article { min-height: 76px; }.brew-hero-actions .button { flex: 1; padding-inline: 9px; }.brew-denomination-grid,.brew-denomination-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Rota range selection and clipboard */
.rota-selection-actions { display: inline-flex; align-items: center; gap: 4px; padding-right: 8px; border-right: 1px solid #c8e4dd; }
.rota-selection-actions small { min-width: 72px; color: #547b74; font-size: var(--font-caption); font-weight: 700; text-align: center; }
.rota-selection-button { min-width: 62px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: #176f62 !important; border-color: #bcded6 !important; background: rgba(255,255,255,.75) !important; }
.rota-selection-button > span { font-size: 12px; line-height: 1; }
.rota-selection-button:not(:disabled):hover { border-color: #75b8a9 !important; background: white !important; transform: translateY(-1px); }
.rota-selection-button.selected { color: white !important; border-color: #0e8875 !important; background: #118c78 !important; box-shadow: 0 5px 13px rgba(17,140,120,.18); }
.rota-selection-button:disabled { cursor: not-allowed; opacity: .42; box-shadow: none; }
.rota-cell-button.is-selected { z-index: 4; border-color: #159d87; background: rgba(203,243,234,.36); box-shadow: inset 0 0 0 1px rgba(21,157,135,.38),0 0 0 1px rgba(255,255,255,.72); }
.rota-cell-button.is-selected.selection-top { border-top-width: 2px; }
.rota-cell-button.is-selected.selection-right { border-right-width: 2px; }
.rota-cell-button.is-selected.selection-bottom { border-bottom-width: 2px; }
.rota-cell-button.is-selected.selection-left { border-left-width: 2px; }
.rota-cell-button.is-copy-source { outline: 2px dashed #087c6a; outline-offset: -3px; animation: rota-copy-outline .85s steps(2,end) infinite; }
@keyframes rota-copy-outline { 50% { outline-color: #67c8b7; } }

/* Notes need to read as content, rather than as another faint metadata line. */
.hover-card-note { margin-top: 9px; padding: 9px 10px 10px; border: 1px solid #efd49e; border-left: 4px solid #d58a24; border-radius: 8px; background: #fff7e7; box-shadow: 0 4px 11px rgba(116,77,23,.08); }
.hover-card-note > span { display: block; color: #9a641c; font-size: var(--font-caption); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hover-card-note > p { margin: 4px 0 0; padding: 0; border: 0; color: #293e4f; font-size: var(--font-ui); font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }

@media (max-width: 720px) {
  .rota-selection-actions { width: 100%; justify-content: center; padding-right: 0; padding-bottom: 7px; border-right: 0; border-bottom: 1px solid #c8e4dd; }
  .rota-selection-actions small { flex: 1; max-width: 105px; }
}

/* Shared month navigation */
.module-month-nav { min-height: 64px; display: flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 10px 13px; }
.module-month-nav .month-step { width: 35px; height: 35px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #d9e2e6; border-radius: 9px; color: #4d6878; background: #fff; }
.module-month-nav .month-step:hover { color: white; border-color: var(--teal); background: var(--teal); }
.module-month-nav .month-step.disabled { opacity: .38; pointer-events: none; }
.module-month-nav label { min-width: 215px; height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 10px; border: 1px solid #dce4e8; border-radius: 9px; color: #788995; background: #f9fbfb; }
.module-month-nav label span { font-size: var(--font-caption); white-space: nowrap; }
.module-month-nav input { min-width: 118px; height: 30px; padding: 0; border: 0; outline: 0; color: #263f51; background: transparent; font: 750 var(--font-ui) Tahoma,Arial,sans-serif; cursor: pointer; }
.module-month-nav > strong { margin-left: auto; padding-right: 5px; font-size: 12px; }
.module-month-nav .button { height: 35px; min-height: 35px; }

/* Quiet Notice Board acknowledgement and readership detail */
.notice-acknowledgement { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 6px 10px; border-top: 1px solid #e8edef; border-radius: 0 0 10px 10px; background: #fbfcfc; }
.notice-read-confirmation { width: max-content; min-height: 31px; display: inline-grid; grid-template-columns: 0 22px auto; align-items: center; gap: 6px; padding: 3px 8px 3px 3px; overflow: hidden; border: 1px solid #dfe6e9; border-radius: 8px; color: #667886; background: #fbfcfd; cursor: pointer; transition: border-color .15s ease,background-color .15s ease,color .15s ease; }
.notice-read-confirmation:hover { border-color: #b7ccc7; color: #294858; background: #f5faf8; }
.notice-read-confirmation:has(input:checked) { border-color: #c4ded8; color: #1d6d60; background: #f3faf8; }
.notice-read-confirmation > input { width: 1px; height: 1px; opacity: 0; }
.notice-read-box { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid #cbd7dc; border-radius: 6px; color: transparent; background: white; font-size: var(--font-caption); font-weight: 800; }
.notice-read-confirmation input:focus-visible + .notice-read-box { outline: 2px solid #173e58; outline-offset: 2px; }
.notice-read-confirmation input:checked + .notice-read-box { color: white; border-color: var(--teal); background: var(--teal); box-shadow: inset 0 -2px rgba(0,0,0,.09); }
.notice-read-confirmation strong { font-size: var(--font-caption); font-weight: 750; white-space: nowrap; }
.notice-read-confirmation:has(input:disabled) { cursor: wait; opacity: .62; }
.notice-reader-summary { min-height: 31px; display: inline-grid; grid-template-columns: 25px auto 17px; align-items: center; gap: 7px; padding: 3px 6px 3px 4px; border: 0; border-radius: 8px; color: #617583; background: transparent; cursor: pointer; font-family: Tahoma,Arial,sans-serif; text-align: left; transition: color .15s ease,background-color .15s ease; }
.notice-reader-summary[hidden] { display: none; }
.notice-reader-summary:hover,.notice-reader-summary:focus-visible { color: #174e45; background: #eef7f5; outline: 0; }
.notice-reader-summary:disabled { cursor: wait; opacity: .58; }
.notice-reader-symbol { width: 25px; height: 25px; position: relative; display: block; }
.notice-reader-symbol i { position: absolute; top: 5px; width: 13px; height: 13px; border: 2px solid white; border-radius: 50%; background: #81b7aa; box-shadow: 0 1px 3px rgba(25,62,58,.12); }
.notice-reader-symbol i:first-child { left: 2px; }.notice-reader-symbol i:last-child { right: 1px; top: 8px; background: #2b917e; }
.notice-reader-summary > span:nth-child(2) { display: flex; flex-direction: column; }
.notice-reader-summary strong { font-size: var(--font-caption); }.notice-reader-summary small { margin-top: 2px; color: #8a98a2; font-size: var(--font-micro); }
.notice-reader-summary > .ui-chevron { justify-self: center; }
.notice-readers-dialog { width: min(760px,calc(100vw - 28px)); }
.notice-readers-shell { max-height: min(780px,calc(100vh - 28px)); display: flex; flex-direction: column; }
.notice-readers-body { display: grid; gap: 11px; overflow-y: auto; background: #f5f7f8; }
.notice-readers-loading { min-height: 260px; display: flex; align-items: center; justify-content: center; gap: 9px; }
.notice-readers-loading > span { width: 18px; height: 18px; border: 2px solid #cfdbd9; border-top-color: var(--teal); border-radius: 50%; animation: spin .8s linear infinite; }
.notice-readers-loading strong { font-size: var(--font-ui); }
.notice-readership-overview { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px 14px; padding: 13px 15px; border: 1px solid #dbe6e3; border-radius: 11px; background: white; }
.notice-readership-overview > div { display: flex; flex-direction: column; }.notice-readership-overview strong { font-size: 13px; }.notice-readership-overview small { margin-top: 3px; color: #788996; font-size: var(--font-caption); }
.notice-readership-overview > b { color: #197461; font-size: 15px; }
.notice-readership-progress { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 999px; background: #e6eeec; }
.notice-readership-progress > i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#1c9a83,#63b8a6); transition: width .25s ease; }
.notice-readers-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.notice-reader-group { min-width: 0; overflow: hidden; border: 1px solid #dfe6e9; border-radius: 11px; background: white; }
.notice-reader-group > header { min-height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 9px 11px; border-bottom: 1px solid #e6ebed; background: #fbfcfd; }
.notice-reader-group > header strong { font-size: var(--font-ui); }.notice-reader-group > header span { min-width: 21px; height: 21px; display: grid; place-items: center; padding: 0 5px; border-radius: 999px; color: #176f61; background: #e3f4ef; font-size: var(--font-caption); font-weight: 800; }
.notice-reader-list { max-height: 320px; overflow-y: auto; }
.notice-reader-row { min-height: 56px; display: grid; grid-template-columns: 34px minmax(0,1fr) 24px; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid #edf0f2; }
.notice-reader-row:last-child { border-bottom: 0; }.notice-reader-row .person-avatar { width: 34px; height: 34px; border-radius: 9px; font-size: var(--font-caption); }
.notice-reader-row > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }.notice-reader-row strong { overflow: hidden; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }.notice-reader-row strong em { margin-left: 5px; padding: 3px 5px; border-radius: 999px; color: #176f61; background: #e4f4f0; font-size: var(--font-micro); font-style: normal; text-transform: uppercase; }
.notice-reader-row small { margin-top: 4px; overflow: hidden; color: #82909b; font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.notice-reader-row > i { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 7px; font-size: var(--font-caption); font-style: normal; font-weight: 800; }.notice-reader-row > i.acknowledged { color: white; background: var(--teal); }.notice-reader-row > i.awaiting { color: #8b98a2; background: #edf1f3; }
.notice-reader-empty { margin: 0; padding: 22px 12px; color: #81909b; font-size: var(--font-caption); line-height: 1.45; text-align: center; }
.notice-readers-error { min-height: 250px; }
.notice-expired { color: #6f7881; background: #e8ecee; }.notice-card.expired { background: #fbfbfb; }
.dashboard-notices { margin: 18px 0; overflow: hidden; }
.dashboard-notices > .panel-head { min-height: 76px; padding: 13px 17px; border-bottom: 1px solid var(--line); }
.dashboard-notice-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }
.dashboard-notice { min-width: 0; min-height: 88px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 12px 14px; color: var(--ink); background: white; }
.dashboard-notice:hover { position: relative; z-index: 1; background: #f5fbf9; box-shadow: inset 0 0 0 1px #9fd4c8; }
.dashboard-notice-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: #196f61; background: #e4f5f1; font-size: var(--font-body-small); font-weight: 800; }
.dashboard-notice.priority-important .dashboard-notice-icon { color: #8a611d; background: #fff0cf; }.dashboard-notice.priority-urgent .dashboard-notice-icon { color: #9b3936; background: #fce3e2; }
.dashboard-notice-copy { min-width: 0; display: flex; flex-direction: column; }.dashboard-notice-copy > span { display: flex; align-items: center; gap: 5px; }
.dashboard-notice-copy em,.dashboard-notice-copy b { color: #657986; font-size: var(--font-micro); font-style: normal; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-notice-copy b { padding: 3px 5px; border-radius: 999px; color: white; background: var(--teal); }
.dashboard-notice-copy > strong { margin-top: 5px; overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }.dashboard-notice-copy > small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.dashboard-notice-meta { display: flex; align-items: center; gap: 8px; color: #82909b; }.dashboard-notice-meta time { font-size: var(--font-caption); white-space: nowrap; }

/* Full incoming-call register */
.call-log-intro { align-items: center; }
.call-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin-bottom: 16px; }
.call-stat-grid article { min-height: 84px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.call-stat-grid article > span { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; color: #166f61; background: #e5f6f2; font-size: 13px; font-weight: 800; }
.call-stat-grid article.action > span { color: #96631d; background: #fff0d0; }.call-stat-grid article.overdue > span { color: #a33d39; background: #fde4e2; }.call-stat-grid article.complete > span { color: #3f6b8d; background: #e5eff8; }
.call-stat-grid article > div { display: flex; flex-direction: column; }.call-stat-grid strong { font-size: 19px; letter-spacing: -.04em; }.call-stat-grid small { margin-top: 2px; color: var(--muted); font-size: var(--font-caption); }
.call-log-shell { overflow: hidden; }
.call-log-toolbar { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 18px; border-bottom: 1px solid var(--line); }
.call-log-toolbar h3 { margin: 5px 0 0; font: 800 15px Tahoma,Arial,sans-serif; }
.call-filter-bar { min-width: 0; display: flex; align-items: center; gap: 7px; }.call-filter-bar .search-field { width: min(310px,25vw); }
.call-list-head { min-height: 34px; display: grid; grid-template-columns: minmax(280px,2fr) minmax(135px,.8fr) minmax(145px,.9fr) 85px 24px; align-items: center; gap: 13px; padding: 0 15px; color: #84929d; background: #f7f9fa; border-bottom: 1px solid var(--line); font-size: var(--font-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.call-list { background: #f7f9fa; }
.call-row { position: relative; width: 100%; min-height: 91px; display: grid; grid-template-columns: minmax(280px,2fr) minmax(135px,.8fr) minmax(145px,.9fr) 85px 24px; align-items: center; gap: 13px; padding: 12px 15px; border: 0; border-bottom: 1px solid #e5eaed; color: var(--ink); background: white; font: inherit; text-align: left; cursor: pointer; }
.call-row:last-of-type { border-bottom: 0; }.call-row:hover { position: relative; z-index: 1; background: #f5fbf9; box-shadow: inset 3px 0 var(--teal),inset 0 0 0 1px #aed7cf; }.call-row.overdue { box-shadow: inset 3px 0 #df615c; }
.call-row[hidden] { display: none; }
.call-row-main,.call-row-caller,.call-row-owner,.call-row time { min-width: 0; display: flex; flex-direction: column; }
.call-row-main > span { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }.call-row-main b { color: #577181; font-size: var(--font-caption); letter-spacing: .06em; }
.call-row-main > strong { margin-top: 6px; overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }.call-row-main > small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.call-priority,.call-status,.call-overdue,.call-detail-labels > span { padding: 4px 6px; border-radius: 999px; color: #396a60; background: #e4f3ef; font-size: var(--font-micro); font-style: normal; font-weight: 800; text-transform: uppercase; }
.call-priority.priority-important { color: #8b5f1c; background: #fff0d0; }.call-priority.priority-urgent,.call-overdue { color: #9e3d39; background: #fde1df; }
.call-status.status-waiting { color: #6b5a8a; background: #eee8f7; }.call-status.status-completed { color: #4a6580; background: #e8eef4; }.call-status.status-follow_up { color: #95611b; background: #fff0cf; }
.call-row-caller strong,.call-row-owner strong,.call-row time strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }.call-row-caller small,.call-row-owner small,.call-row time small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: var(--font-caption); text-overflow: ellipsis; white-space: nowrap; }
.call-row-arrow { display: grid; place-items: center; }.call-empty { min-height: 250px; background: white; }
.call-create-dialog { width: min(920px,calc(100vw - 28px)); }.call-create-body { display: grid; gap: 15px; }.call-create-body .stacked-field textarea { min-height: 135px; }
.call-contact-grid,.call-correction-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }.call-organisation-field { grid-column: span 2; }
.call-action-choice { min-height: 62px; display: grid; grid-template-columns: 0 33px minmax(0,1fr); align-items: center; gap: 10px; padding: 10px 12px; overflow: hidden; border: 1px solid #dfe6e9; border-radius: 11px; color: #3e5667; background: #f8fafb; cursor: pointer; }.call-action-choice:has(input:checked) { border-color: #e0bb6c; background: #fff8e6; }.call-action-choice input { width: 1px; height: 1px; opacity: 0; }.call-action-box { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid #ced9dd; border-radius: 9px; color: transparent; background: white; font-size: var(--font-body-small); font-weight: 800; }.call-action-choice input:checked + .call-action-box { color: white; border-color: #d99b31; background: #e1a33b; }.call-action-choice > span:last-child { display: flex; flex-direction: column; }.call-action-choice strong { font-size: var(--font-ui); }.call-action-choice small { margin-top: 3px; color: #7e8d98; font-size: var(--font-caption); }
.call-follow-up-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 13px; border: 1px solid #ead7a9; border-radius: 11px; background: #fffaf0; }.call-follow-up-fields[hidden] { display: none; }.call-follow-up-fields label,.call-management-row > label:not(.call-action-choice) { display: flex; flex-direction: column; gap: 6px; color: #3a5061; font-size: var(--font-ui); font-weight: 700; }.call-follow-up-fields select,.call-follow-up-fields input,.call-management-row select,.call-management-row input { width: 100%; height: 42px; padding: 0 10px; border: 1px solid #d8e1e5; border-radius: 9px; color: var(--ink); background: white; font: var(--font-ui) Tahoma,Arial,sans-serif; }.call-form-hint { align-self: center; color: #87949e; font-size: var(--font-caption); }
.call-detail-dialog { width: min(960px,calc(100vw - 28px)); }.call-detail-shell { max-height: min(900px,calc(100vh - 28px)); display: flex; flex-direction: column; }.call-detail-body { display: grid; grid-auto-rows: max-content; align-content: start; gap: 14px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; background: #f5f7f8; }.call-detail-body > section { min-height: max-content; }
.call-detail-loading { min-height: 320px; display: flex; align-items: center; justify-content: center; gap: 10px; }.call-detail-loading > span { width: 18px; height: 18px; border: 2px solid #cddbd8; border-top-color: var(--teal); border-radius: 50%; animation: spin .8s linear infinite; }.call-detail-loading strong { font-size: var(--font-ui); }
.call-detail-overview,.call-management-panel,.call-history-section,.call-note-panel { overflow: hidden; border: 1px solid #dfe5e8; border-radius: 13px; background: white; }
.call-detail-overview { padding: 17px; border-top: 4px solid #77ac9f; }.call-detail-overview.priority-important { border-top-color: #dfa340; }.call-detail-overview.priority-urgent { border-top-color: #df615d; }
.call-detail-overview > header,.call-management-panel > header,.call-history-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.call-detail-overview > header > time { color: var(--muted); font-size: var(--font-caption); }.call-detail-labels { display: flex; flex-wrap: wrap; gap: 5px; }.call-detail-overview > h3 { margin: 14px 0 0; font: 800 18px Tahoma,Arial,sans-serif; }.call-detail-message { margin: 8px 0 0; color: #4c6070; font-size: var(--font-ui); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.call-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 16px 0 0; }.call-detail-grid > div { min-width: 0; padding: 10px 11px; border: 1px solid #e3e8eb; border-radius: 9px; background: #fafbfc; }.call-detail-grid dt { color: #7e8d98; font-size: var(--font-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.call-detail-grid dd { margin: 5px 0 0; overflow: hidden; font-size: var(--font-caption); font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.call-workflow-summary { min-height: 58px; display: grid; grid-template-columns: 32px minmax(0,1fr); align-items: center; gap: 10px; margin-top: 13px; padding: 9px 11px; border-radius: 10px; color: #476072; background: #edf2f5; }.call-workflow-summary.required { color: #7f581d; background: #fff2d7; }.call-workflow-summary > span:first-child { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: white; background: #6d8798; font-size: 12px; font-weight: 800; }.call-workflow-summary.required > span:first-child { background: #dca03d; }.call-workflow-summary > span:last-child { display: flex; flex-direction: column; }.call-workflow-summary strong { font-size: var(--font-ui); }.call-workflow-summary small { margin-top: 3px; font-size: var(--font-caption); opacity: .82; }
.call-management-panel > header,.call-history-section > header { min-height: 70px; padding: 13px 15px; border-bottom: 1px solid var(--line); }.call-management-panel h3,.call-history-section h3,.call-note-panel h3 { margin: 4px 0 0; font: 800 14px Tahoma,Arial,sans-serif; }.call-management-panel > header > small,.call-history-section > header > small { color: var(--muted); font-size: var(--font-caption); }.call-management-form { display: grid; gap: 13px; padding: 15px; }.call-management-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.call-action-choice.compact { min-height: 58px; padding-block: 7px; }.call-management-form textarea { min-height: 90px; }.call-management-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.call-management-actions small { color: var(--muted); font-size: var(--font-caption); }
.call-correction-fields { overflow: hidden; border: 1px solid #e0e6e9; border-radius: 10px; background: #fafbfc; }.call-correction-fields > summary { min-height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; cursor: pointer; list-style: none; }.call-correction-fields > summary::-webkit-details-marker { display: none; }.call-correction-fields > summary > span { display: flex; flex-direction: column; }.call-correction-fields > summary strong { font-size: var(--font-caption); }.call-correction-fields > summary small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }.call-correction-fields[open] > summary { border-bottom: 1px solid #e0e6e9; background: #f4f8f7; }.call-correction-fields[open] > summary .ui-chevron { transform: rotate(225deg); }.call-correction-fields > div { display: grid; gap: 12px; padding: 13px; }.call-correction-fields > div > label { display: flex; flex-direction: column; gap: 6px; color: #3a5061; font-size: var(--font-ui); font-weight: 700; }.call-correction-fields > div > label select { width: 100%; height: 42px; padding: 0 10px; border: 1px solid #d8e1e5; border-radius: 9px; color: var(--ink); background: white; font: var(--font-ui) Tahoma,Arial,sans-serif; }.call-correction-fields textarea { padding: 10px; border: 1px solid #dce4e8; border-radius: 9px; outline: 0; background: white; font: var(--font-ui)/1.5 Tahoma,Arial,sans-serif; resize: vertical; }
.call-timeline { padding: 3px 15px 11px; }.call-event { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 10px; padding: 11px 0; border-bottom: 1px solid #e9edef; }.call-event:last-child { border-bottom: 0; }.call-event-marker { width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid #c7ddd8; border-radius: 8px; color: #14705f; background: #e7f5f1; font-size: var(--font-ui); font-weight: 800; }.call-event > div { min-width: 0; }.call-event header { display: flex; justify-content: space-between; gap: 10px; }.call-event header strong { font-size: var(--font-caption); }.call-event header time { color: var(--muted); font-size: var(--font-caption); }.call-event p { margin: 4px 0 0; color: #526676; font-size: var(--font-caption); line-height: 1.5; white-space: pre-wrap; }.call-event-change { display: flex; align-items: center; gap: 7px; margin-top: 7px; }.call-event-change del,.call-event-change ins { padding: 4px 6px; border-radius: 6px; font-size: var(--font-caption); text-decoration: none; }.call-event-change del { color: #8c4b48; background: #f9e7e6; }.call-event-change ins { color: #176f61; background: #e4f4f0; }.call-event-change i { color: #92a0aa; font-size: var(--font-caption); font-style: normal; }
.call-note-panel { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 14px; padding: 15px; }.call-note-panel > div { align-self: center; }.call-note-panel form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }.call-note-panel textarea { min-height: 70px; padding: 10px; border: 1px solid #dce4e8; border-radius: 9px; outline: 0; resize: vertical; font: var(--font-ui)/1.5 Tahoma,Arial,sans-serif; }.call-note-panel textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(22,139,122,.08); }.call-note-panel .button { align-self: end; }

/* Data-driven Call Log categories, priorities and definition management */
.call-definition-pill { padding: 4px 6px; border: 1px solid color-mix(in srgb,var(--call-definition-colour,#718096) 34%,white); border-radius: 999px; color: color-mix(in srgb,var(--call-definition-colour,#718096) 72%,#142b3d); background: color-mix(in srgb,var(--call-definition-colour,#718096) 14%,white); font-size: var(--font-micro); font-style: normal; font-weight: 800; text-transform: uppercase; }
.call-row-main .call-category { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.call-detail-labels .call-definition-pill { padding: 4px 7px; border-radius: 999px; font-size: var(--font-micro); font-weight: 800; text-transform: uppercase; }
.call-detail-overview { border-top-color: var(--call-priority-colour,#77ac9f); }
.call-detail-overview-actions { display: flex; align-items: center; gap: 8px; }.call-detail-overview-actions time { color: var(--muted); font-size: var(--font-caption); white-space: nowrap; }.call-edit-entry { min-height: 30px; height: 30px; padding: 0 10px; font-size: var(--font-caption); }
.call-admin-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }.call-admin-summary article { min-height: 72px; display: flex; flex-direction: column; justify-content: center; padding: 13px 16px; }.call-admin-summary strong { font-size: 18px; }.call-admin-summary small { margin-top: 3px; color: var(--muted); font-size: var(--font-caption); }
.call-definition-admin-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }.call-definition-manager { min-width: 0; overflow: hidden; }.call-definition-manager > header { min-height: 91px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border-bottom: 1px solid var(--line); }.call-definition-manager > header h3 { margin: 4px 0 2px; font: 800 14px Tahoma,Arial,sans-serif; }.call-definition-manager > header p { margin: 0; color: var(--muted); font-size: var(--font-caption); line-height: 1.45; }
.call-definition-list { display: flex; flex-direction: column; }.call-definition-admin-row { min-height: 58px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto auto; align-items: center; gap: 9px; padding: 8px 12px; border-bottom: 1px solid #e8edef; }.call-definition-admin-row:last-child { border-bottom: 0; }.call-definition-admin-row.archived { background: #f7f9fa; opacity: .68; }.call-definition-swatch { width: 34px; height: 34px; display: block; border: 1px solid color-mix(in srgb,var(--call-definition-colour,#718096) 35%,white); border-radius: 9px; background: var(--call-definition-colour,#718096); box-shadow: inset 0 -4px rgba(0,0,0,.08); }.call-definition-admin-row > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }.call-definition-admin-row strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }.call-definition-admin-row small { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: var(--font-micro); text-overflow: ellipsis; white-space: nowrap; }.call-definition-admin-row > em { padding: 4px 6px; border-radius: 999px; color: #687985; background: #e9eef1; font-size: var(--font-micro); font-style: normal; font-weight: 800; text-transform: uppercase; }.call-definition-admin-row > em.active { color: #146f60; background: #e0f3ee; }
.call-definition-footnote { min-height: 48px; display: flex; align-items: center; gap: 9px; margin: 12px 0 0; padding: 10px 13px; border: 1px solid #dce6e6; border-radius: 11px; color: #58707e; background: #f5f9f8; font-size: var(--font-caption); line-height: 1.45; }.call-definition-footnote span { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 7px; color: white; background: var(--teal); font-size: var(--font-ui); font-weight: 800; }
.call-definition-form-body { display: grid; gap: 14px; }.call-colour-input { height: 43px; display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: center; overflow: hidden; border: 1px solid #d8e1e5; border-radius: 9px; background: white; }.call-colour-input input { width: 48px !important; height: 43px !important; padding: 4px !important; border: 0 !important; border-right: 1px solid #d8e1e5 !important; border-radius: 0 !important; cursor: pointer; }.call-colour-input output { padding-left: 10px; color: #536a79; font: 750 var(--font-caption) Tahoma,Arial,sans-serif; }.call-definition-active { min-height: 61px; }.call-definition-preview { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px; border: 1px dashed #ccdadd; border-radius: 10px; background: #f8fafb; }.call-definition-preview .call-definition-pill { padding: 6px 9px; border-radius: 999px; font-size: var(--font-caption); font-weight: 800; text-transform: uppercase; }.call-definition-preview small { color: var(--muted); font-size: var(--font-caption); text-align: right; }.call-definition-dialog input[readonly] { color: #71808b; background: #f0f3f5; cursor: not-allowed; }

/* Focused Call Log actions and visible definition colours */
.call-colour-select { border-color: color-mix(in srgb,var(--call-select-colour,#718096) 52%,#d8e1e5) !important; border-left: 5px solid var(--call-select-colour,#718096) !important; color: color-mix(in srgb,var(--call-select-colour,#718096) 62%,#10283a) !important; background-color: var(--call-select-tint,#f3f6f8) !important; box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--call-select-colour,#718096) 8%,transparent); font-weight: 800 !important; }
.call-colour-select:hover { border-color: var(--call-select-colour,#718096) !important; }
.call-colour-select:focus { border-color: var(--call-select-colour,#718096) !important; box-shadow: 0 0 0 3px color-mix(in srgb,var(--call-select-colour,#718096) 18%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--call-select-colour,#718096) 10%,transparent) !important; }
.call-detail-actions-panel { overflow: hidden; border: 1px solid #dbe5e7; border-radius: 13px; background: white; }
.call-detail-actions-panel > header { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 15px; border-bottom: 1px solid var(--line); }
.call-detail-actions-panel > header h3 { margin: 4px 0 0; font: 800 14px Tahoma,Arial,sans-serif; }
.call-detail-actions-panel > header > small { color: var(--muted); font-size: var(--font-caption); text-align: right; }
.call-detail-action-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; padding: 13px; }
.call-detail-action { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 39px minmax(0,1fr) 23px; align-items: center; gap: 11px; padding: 10px 11px; border: 1px solid #dfe7e9; border-radius: 11px; color: #173148; background: #f9fbfb; text-align: left; cursor: pointer; transition: border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.call-detail-action:hover,.call-detail-action:focus-visible { border-color: #84c8bb; background: #f1faf8; box-shadow: 0 7px 17px rgba(19,67,63,.08); outline: 0; transform: translateY(-1px); }
.call-detail-action-icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 10px; color: #147664; background: #e3f4ef; font-size: 14px; font-weight: 800; }
.call-detail-action > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.call-detail-action strong { overflow: hidden; font-size: var(--font-ui); text-overflow: ellipsis; white-space: nowrap; }
.call-detail-action small { margin-top: 4px; overflow: hidden; color: #71828f; font-size: var(--font-caption); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.call-detail-action-arrow { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #d7e2e4; border-radius: 8px; background: white; }
.call-detail-action.tone-workflow .call-detail-action-icon { color: #976418; background: #fff0d2; }
.call-detail-action.tone-note .call-detail-action-icon { color: #3e6f9c; background: #e7f1fb; }
.call-detail-action.tone-history .call-detail-action-icon { color: #68568b; background: #eee9f8; }
.call-action-dialog { width: min(900px,calc(100vw - 28px)); }
.call-action-dialog.call-workflow-dialog { width: min(820px,calc(100vw - 28px)); }
.call-action-dialog.call-note-dialog { width: min(700px,calc(100vw - 28px)); }
.call-action-body { display: grid; gap: 14px; background: #f7f9fa; }
.call-action-body textarea { min-height: 110px; }
.call-action-body .call-note-textarea { min-height: 150px; }
.call-history-dialog { width: min(830px,calc(100vw - 28px)); }
.call-history-shell { max-height: min(820px,calc(100vh - 28px)); display: flex; flex-direction: column; }
.call-history-body { min-height: 240px; padding: 14px; overflow-y: auto; overscroll-behavior: contain; background: #f5f7f8; }
.call-history-body .call-history-section { min-height: max-content; }
.call-history-body .call-history-section > header { min-height: 62px; }

/* Generated/PHP module text resizing in interactive Edit Site mode */
.site-generated-size-toolbar[hidden] { display: none; }
.site-edit-mode [data-site-size-key]:not([data-site-edit-key]) { border-radius: 2px; outline: 1px dotted rgba(50,126,113,.35); outline-offset: 2px; cursor: n-resize; transition: outline-color .15s ease,background-color .15s ease,box-shadow .15s ease; }
.site-edit-mode [data-site-size-key]:not([data-site-edit-key]):hover { position: relative; z-index: 8; outline: 1.5px dashed #df9b31; outline-offset: 4px; background-color: rgba(255,245,210,.45); box-shadow: 0 0 0 5px rgba(255,240,180,.13); }
.site-edit-mode [data-site-size-key].site-generated-size-active { position: relative; z-index: 145; outline: 2px solid #168b7a !important; outline-offset: 5px !important; background: white; box-shadow: 0 0 0 7px rgba(22,139,122,.11),0 10px 28px rgba(8,34,48,.15); }
.site-generated-size-toolbar { position: fixed; z-index: 212; min-height: 40px; display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid #dce4e7; border-radius: 11px; background: white; box-shadow: 0 13px 38px rgba(5,27,42,.24); }
.site-generated-size-toolbar > span { padding: 0 8px; color: #667e8c; font-size: var(--font-micro); font-weight: 800; letter-spacing: .08em; }
.site-generated-size-toolbar button { min-width: 31px; height: 30px; padding: 0 8px; border: 0; border-radius: 7px; color: #426274; background: #edf4f4; cursor: pointer; font: 750 var(--font-caption) Tahoma,Arial,sans-serif; }.site-generated-size-toolbar button:hover:not(:disabled) { color: #0f6e61; background: #dff3ee; }.site-generated-size-toolbar button:disabled { opacity: .42; cursor: default; }.site-generated-size-toolbar .site-generated-size-value { min-width: 46px; color: #117363; background: #e3f5f0; }.site-generated-size-toolbar button.primary { margin-left: 3px; color: white; background: var(--teal); }

@media (max-width: 1050px) {
  .call-log-toolbar { align-items: stretch; flex-direction: column; }.call-filter-bar { width: 100%; }.call-filter-bar .search-field { flex: 1; width: auto; }
  .call-list-head,.call-row { grid-template-columns: minmax(260px,1.6fr) minmax(125px,.75fr) minmax(135px,.8fr) 80px 20px; }
  .call-definition-admin-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .module-month-nav { flex-wrap: wrap; }.module-month-nav label { flex: 1; min-width: 210px; }.module-month-nav > strong { width: 100%; margin: 2px 0 0; padding: 0; text-align: center; }
  .dashboard-notice-list { grid-template-columns: 1fr; }
  .call-log-intro { align-items: stretch; }.call-log-intro .button { width: 100%; justify-content: center; }.call-stat-grid { grid-template-columns: repeat(2,1fr); gap: 7px; }.call-stat-grid article { min-height: 74px; padding: 10px; }.call-stat-grid article > span { width: 33px; height: 33px; }.call-stat-grid strong { font-size: 16px; }
  .call-filter-bar { display: grid; grid-template-columns: 1fr 1fr 1fr; }.call-filter-bar .search-field { grid-column: 1 / -1; width: 100%; }.call-filter-bar select { width: 100%; min-width: 0; }
  .call-list-head { display: none; }.call-row { min-height: 118px; grid-template-columns: minmax(0,1fr) auto; gap: 10px; padding: 13px; }.call-row-main { grid-column: 1 / -1; }.call-row-caller,.call-row-owner { padding-top: 7px; border-top: 1px solid #edf0f2; }.call-row time { align-items: flex-end; }.call-row-arrow { position: absolute; right: 12px; top: 16px; }
  .call-create-dialog,.call-detail-dialog,.call-action-dialog,.call-history-dialog { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 18px 18px 0 0; }.call-detail-shell,.call-history-shell { max-height: calc(100vh - 15px); max-height: calc(100dvh - 15px); }.call-contact-grid,.call-correction-grid { grid-template-columns: 1fr 1fr; }.call-follow-up-fields,.call-management-row { grid-template-columns: 1fr; }.call-detail-grid { grid-template-columns: repeat(2,1fr); }.call-note-panel { grid-template-columns: 1fr; }.call-note-panel form { grid-template-columns: 1fr; }.call-note-panel .button { justify-self: end; }
  .call-admin-summary { grid-template-columns: 1fr; }.call-definition-manager > header { align-items: flex-start; flex-direction: column; }.call-detail-overview > header,.call-detail-actions-panel > header { align-items: flex-start; }.call-detail-overview-actions { align-items: flex-end; flex-direction: column; }.call-detail-action-grid { grid-template-columns: 1fr; }.call-detail-actions-panel > header > small { text-align: left; }
  .notice-audience-list { grid-template-columns: 1fr; }.notice-readers-grid { grid-template-columns: 1fr; }.notice-readers-dialog { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 18px 18px 0 0; }.notice-readers-shell { max-height: calc(100vh - 15px); max-height: calc(100dvh - 15px); }
  .site-generated-size-toolbar { right: 7px; left: 7px !important; width: auto; justify-content: flex-end; }.site-generated-size-toolbar > span { margin-right: auto; }
}
@media (max-width: 480px) {
  .module-month-nav label span { display: none; }.module-month-nav label { min-width: 145px; }.module-month-nav input { width: 100%; }
  .notice-message-letterhead { align-items: center; flex-flow: row wrap; gap: 6px; }.notice-message-letterhead .notice-expiry { align-self: center; margin-left: 0; }.notice-acknowledgement { align-items: flex-start; flex-direction: column; }.notice-reader-summary { margin-left: 1px; }.notice-audience-picker > header { align-items: flex-start; flex-direction: column; gap: 8px; }.notice-audience-modes { grid-template-columns: 1fr; }.notice-audience-toolbar { align-items: stretch; flex-direction: column; }.notice-audience-toolbar .search-field { width: 100%; }.notice-audience-toolbar > div { justify-content: flex-end; }
  .dashboard-notice { grid-template-columns: 33px minmax(0,1fr); }.dashboard-notice-icon { width: 33px; height: 33px; }.dashboard-notice-meta { grid-column: 2; justify-content: space-between; }
  .call-stat-grid { grid-template-columns: 1fr; }.call-stat-grid article { min-height: 66px; }.call-filter-bar { grid-template-columns: 1fr; }.call-filter-bar .search-field { grid-column: auto; }.call-contact-grid,.call-correction-grid { grid-template-columns: 1fr; }.call-organisation-field { grid-column: auto; }.call-detail-grid { grid-template-columns: 1fr; }
}

/* Explicit individual power overrides. */
.power-chip-list > span.denied { border-color: #efcfcd; color: #9b4541; background: #fcecea; }
.power-option.denied { border-color: #efcfcd; background: #fff7f6; box-shadow: inset 3px 0 #d55b56; }
.power-option.denied .power-check { border-color: #d7b5b2; background: white; }
.power-option.denied em { color: #9c4743; background: #f9e4e2; }
.power-protected-chip { display: inline-flex; min-height: 25px; align-items: center; padding: 0 8px; border-radius: 999px; color: #7a687f; background: #f0ebf2; font-size: var(--font-caption); font-weight: 800; }
