:root{--blue:#0879cf;--blue-dark:#145ca8;--ink:#18334f;--muted:#607b93;--line:#d7e6f2;--bg:#f3f8fc;--white:#fff;--green:#23875a;--red:#bc3a3a;--shadow:0 10px 30px rgba(24,51,79,.07)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:850;color:var(--blue)}h1{margin:5px 0;color:var(--blue-dark);font-size:clamp(30px,4vw,48px)}h2{margin:0;color:var(--blue-dark);font-size:24px}p{color:var(--muted);line-height:1.5}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.brand-mark{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#0879cf,#08a0e8);color:white;font-size:22px;font-weight:900;margin-bottom:18px}.login-card form{display:grid;gap:14px;margin-top:22px}.login-card label{font-weight:750;display:grid;gap:7px}.login-card input{width:100%;padding:13px 14px;border:1.5px solid #cbdce9;border-radius:12px}.primary,.secondary,.danger,.button-link{border:0;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--blue);color:white}.secondary,.button-link{background:#eef5fa;color:var(--blue-dark);border:1px solid #d6e5ef}.danger{background:#fff0f0;color:var(--red);border:1px solid #f0c8c8}.display-link{display:inline-block;margin-top:22px;color:var(--blue-dark);font-weight:750;text-decoration:none}.form-error{min-height:20px;color:var(--red);font-weight:700}.admin-shell{width:min(1500px,100%);margin:auto;padding:24px}.admin-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.admin-header p{margin:4px 0}.header-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-tabs{display:flex;gap:8px;overflow:auto;padding:7px;background:white;border:1px solid var(--line);border-radius:16px;position:sticky;top:8px;z-index:10;box-shadow:var(--shadow)}.admin-tab{white-space:nowrap;border:0;border-radius:10px;padding:10px 14px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.admin-tab.active{background:var(--blue);color:white}.admin-section{display:none;margin-top:18px}.admin-section.active{display:grid;gap:18px}.surface{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}.section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.section-title p{margin:5px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.narrow{max-width:720px}.form-grid.compact-form{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label:not(.check){display:grid;gap:6px;font-weight:750;color:#31536e}.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea{width:100%;border:1.5px solid #cbdce9;border-radius:11px;padding:11px 12px;background:white;color:var(--ink)}.form-grid textarea{resize:vertical}.span-2{grid-column:1/-1}fieldset{border:1.5px solid #d7e6f2;border-radius:12px;padding:14px}legend{font-weight:800;color:#31536e;padding:0 6px}.check{display:flex;gap:8px;align-items:center;font-weight:750;color:#31536e;min-height:44px}.check input{width:18px;height:18px}.weekday-row,.participant-select-grid{display:flex;gap:10px;flex-wrap:wrap}.weekday-row label,.participant-select-grid label{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;padding:8px 10px;background:#f5f9fc;border:1px solid #dce9f2;border-radius:9px;font-weight:750!important}.all-house{margin-bottom:8px}.hint{font-weight:500;color:var(--muted)}.form-actions{display:flex;gap:10px;align-items:center}.admin-list{display:grid;gap:10px}.admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:center;border:1px solid #dfeaf2;border-radius:14px;padding:14px 16px;background:#fbfdff}.admin-row-title{font-size:17px;font-weight:850;color:var(--ink)}.admin-row-meta{margin-top:4px;color:var(--muted);font-size:14px;line-height:1.4}.admin-row-actions{display:flex;gap:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-card{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.stat-label{font-size:12px;font-weight:850;letter-spacing:.08em;color:var(--muted)}.stat-value{font-size:32px;font-weight:900;color:var(--blue-dark);margin-top:5px}.info-surface{border-left:5px solid var(--blue)}.toast{position:fixed;right:20px;bottom:20px;z-index:100;max-width:min(440px,calc(100vw - 40px));background:#173c5c;color:white;border-radius:12px;padding:13px 16px;box-shadow:0 10px 30px rgba(0,0,0,.2);font-weight:750;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:#8e2d2d}@media(max-width:850px){.admin-shell{padding:14px}.admin-header{align-items:flex-start;flex-direction:column}.form-grid,.form-grid.compact-form{grid-template-columns:1fr}.span-2{grid-column:auto}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-row{grid-template-columns:1fr}.admin-row-actions{justify-content:flex-start}}@media(max-width:470px){.stats-grid{grid-template-columns:1fr}}

/* v7.5 admin additions */
.admin-scope-logo{width:118px;height:auto;margin-bottom:18px;display:block}.admin-brand-wrap{display:flex;align-items:center;gap:18px;min-width:0}.admin-header-logo{width:105px;height:auto;flex:0 0 auto}.admin-tabs{grid-template-columns:repeat(8,minmax(120px,1fr))}.dashboard-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px}.audit-list{display:grid;gap:8px}.audit-entry{border:1px solid #dfeaf2;border-radius:12px;padding:11px 13px;background:#fbfdff;color:var(--ink);line-height:1.35}.audit-meta{font-size:12px;color:var(--muted);margin-top:3px;text-transform:capitalize}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.template-field select{font-weight:750;background:#f4f9fd}.recurrence-help{background:#f4f9fd;border:1px solid #dce9f2;border-radius:10px;padding:10px 12px;color:var(--muted);font-size:14px;font-weight:650}.muted-fieldset{opacity:.55}.date-holiday-note{display:none;margin-top:5px;color:#725900;font-size:12px;font-weight:800}.date-holiday-note.active{display:block}.calendar-title{align-items:flex-start}.calendar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-controls strong{min-width:150px;text-align:center;color:var(--blue-dark);font-size:17px}.calendar-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px;font-weight:700;margin:8px 0 14px}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px}.activity-dot{background:#2b83c6}.appointment-dot{background:#7b61b7}.holiday-dot{background:#d5a500}.holiday-sync-label{margin-left:auto;color:#6f7f8e}.calendar-weekheads,.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekheads span{text-align:center;color:var(--muted);font-size:12px;font-weight:850;padding:5px}.calendar-cell{min-height:126px;border:1px solid #dfeaf2;border-radius:11px;background:#fff;padding:8px;overflow:hidden}.calendar-cell.outside{border-color:transparent;background:transparent}.calendar-cell.today{outline:2px solid #5aa9df;outline-offset:-1px}.calendar-cell.public-holiday{background:#fff9e9;border-color:#e4c65d}.calendar-date{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;color:var(--blue-dark)}.calendar-holiday-name{font-size:10px;line-height:1.15;color:#725900;background:#fff0b9;padding:3px 5px;border-radius:6px;text-align:right;font-weight:850;max-width:110px}.calendar-events{display:grid;gap:4px;margin-top:8px}.calendar-event{font-size:11px;line-height:1.25;padding:4px 5px;border-radius:6px;background:#eef7fd;border-left:3px solid #2b83c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.appointment{background:#f4f0fb;border-left-color:#7b61b7}.calendar-more{font-size:10px;color:var(--muted);font-weight:750}.form-error{color:#b73737;font-weight:750;margin-top:8px}
@media(max-width:1050px){.admin-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.admin-calendar-grid,.calendar-weekheads{min-width:820px}.admin-section[data-section-panel="calendar"] .surface{overflow-x:auto}.holiday-sync-label{width:100%;margin-left:0}}
@media(max-width:650px){.admin-brand-wrap{align-items:flex-start}.admin-header-logo{width:82px}.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-controls strong{min-width:125px}}

/* v7.6 security / access / unified schedule */
.permission-hidden{display:none!important}.role-pill{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;background:#eaf5fc;border:1px solid #c6e1f4;color:var(--blue-dark);font-weight:850;font-size:13px}.link-button{border:0;background:transparent;color:var(--blue-dark);font-weight:800;cursor:pointer;text-align:left;padding:3px 0}.list-filter-row{display:flex;justify-content:flex-end;gap:10px;margin-bottom:13px}.list-filter-row label{display:flex;gap:8px;align-items:center;color:var(--muted);font-weight:750}.list-filter-row select,.list-filter-row input{border:1.5px solid #cbdce9;border-radius:10px;padding:9px 11px;background:#fff;color:var(--ink)}.type-badge{display:inline-flex;align-items:center;width:fit-content;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;background:#eef6fc;color:#226a9f;border:1px solid #d1e5f3}.type-badge.appointment{background:#f3effb;color:#6748a0;border-color:#ded3f1}.type-badge.away{background:#fff0d8;color:#8a5700;border-color:#efd19e}.calendar-event.away{background:#fff2df;border-left-color:#d88a15}.away-dot{background:#d88a15}.archived-row{opacity:.55;background:#f5f6f7}.token-result{margin-top:16px;padding:15px;border-radius:12px;background:#fff8dc;border:1px solid #e6cc74;color:#5f4b00}.token-result code{display:block;word-break:break-all;background:#fff;padding:8px;border-radius:8px;margin-top:8px;border:1px solid #ead991}.inline-role{border:1px solid #cbdce9;border-radius:9px;padding:8px 9px;background:#fff;color:var(--ink);font-weight:750}.admin-row-actions{flex-wrap:wrap}.admin-row-actions button{white-space:nowrap}.form-grid .hidden{display:none!important}.calendar-event.appointment{background:#f4f0fb;border-left-color:#7b61b7}.calendar-event.away{background:#fff2df;border-left-color:#d88a15}.calendar-cell:has(.calendar-event.away){box-shadow:inset 0 0 0 1px #f0d9b2}.schedule-away-note{background:#fff5e6;border:1px solid #f0d2a3;border-radius:10px;padding:10px 12px;color:#78500a;font-weight:700}.admin-tabs{scrollbar-width:thin}
@media(max-width:850px){.header-actions{width:100%}.header-actions>*{flex:1 1 auto}.admin-row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.admin-row-actions>*{width:100%}.list-filter-row{justify-content:stretch}.list-filter-row label,.list-filter-row select,.list-filter-row input{width:100%}.role-pill{flex:0 0 auto}.inline-role{grid-column:1/-1}}

/* v8.0 smart planner */
.attention-surface{border-left:5px solid #e0a200}.attention-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attention-item{border:1px solid #dfeaf2;border-radius:13px;padding:13px 14px;background:#fbfdff}.attention-item.warn{background:#fff8e7;border-color:#eed489}.attention-item.danger{background:#fff1f1;border-color:#edc0c0}.attention-item .attention-title{font-weight:850;color:var(--ink)}.attention-item .attention-meta{margin-top:4px;color:var(--muted);font-size:13px}.week-planner-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}.week-planner-toolbar label{font-weight:800;color:#31536e;display:flex;gap:8px;align-items:center}.week-planner-toolbar select,.calendar-controls select{border:1.5px solid #cbdce9;border-radius:10px;padding:9px 11px;background:#fff;color:var(--ink)}.visual-week-grid{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:10px;overflow-x:auto}.visual-day{border:1.5px solid #dbe8f1;border-radius:14px;background:#fbfdff;min-height:330px;padding:10px}.visual-day.today{outline:2px solid #58a9df}.visual-day.public-holiday{background:#fff9e7;border-color:#e2c45b}.visual-day.drag-over{outline:3px dashed #0b82da;outline-offset:-4px}.visual-day-head{padding:5px 4px 10px;border-bottom:1px solid #e6eef4;margin-bottom:9px}.visual-day-head strong{display:block;color:var(--blue-dark);font-size:16px}.visual-day-head span{font-size:12px;color:var(--muted)}.visual-holiday{margin-top:5px;font-size:10px;font-weight:850;color:#7a5b00;background:#fff0b9;border-radius:7px;padding:4px 6px}.visual-item{border:1px solid #dce8f1;border-left:4px solid #2b83c6;background:white;border-radius:10px;padding:8px;margin-bottom:7px;cursor:default}.visual-item[draggable=true]{cursor:grab}.visual-item.appointment{border-left-color:#7b61b7}.visual-item.away{border-left-color:#d88a15;background:#fff7eb}.visual-item.cancelled{opacity:.55;text-decoration:none;border-left-color:#9aa8b2}.visual-item.tentative{border-style:dashed}.visual-item-title{font-size:13px;font-weight:850;color:var(--ink)}.visual-item-meta{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.3}.visual-item-actions{display:flex;gap:4px;margin-top:6px}.visual-item-actions button{border:0;border-radius:7px;padding:4px 6px;font-size:10px;font-weight:800;background:#eef5fa;color:var(--blue-dark);cursor:pointer}.status-chip{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#eaf6ef;color:#26724b;border:1px solid #b8ddc8}.status-chip.tentative{background:#fff8e4;color:#7c5d00;border-color:#e6d08a}.status-chip.cancelled{background:#f3f4f5;color:#64717c;border-color:#d5dce1}.transport-chip{display:inline-flex;align-items:center;margin-left:5px;font-size:10px;font-weight:800;color:#526e84}.calendar-agenda{display:grid!important;grid-template-columns:1fr!important;min-width:0!important}.calendar-agenda .calendar-cell{min-height:auto}.calendar-week-mode{grid-template-columns:repeat(7,minmax(150px,1fr))}.coverage-matrix{overflow-x:auto}.coverage-table{width:100%;border-collapse:collapse;min-width:850px}.coverage-table th,.coverage-table td{border:1px solid #dfeaf2;padding:10px;text-align:center}.coverage-table th{background:#f4f9fd;color:#31536e}.coverage-ok{background:#eff9f3;color:#26724b;font-weight:850}.coverage-low{background:#fff1f1;color:#9d3434;font-weight:850}.allocation-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eef7fd;color:#225e8d;font-size:11px;font-weight:800;margin-right:4px}.cancellation-field{display:none}.schedule-cancelled .cancellation-field{display:grid}.admin-row.status-cancelled{opacity:.6}.admin-row.status-tentative{border-style:dashed}.participant-focus-banner{padding:8px 11px;border-radius:10px;background:#eef7fd;color:#31536e;font-weight:750}.roster-conflict{color:#a33333;font-weight:800}
@media(max-width:1100px){.visual-week-grid{min-width:1120px}.admin-section[data-section-panel="weekplanner"] .surface{overflow-x:auto}.attention-list{grid-template-columns:1fr}}

/* v8 Modern UI refresh — presentation only, no framework or runtime cost */
:root{
  --blue:#0a78c8;
  --blue-dark:#174f8c;
  --ink:#18324a;
  --muted:#687d8e;
  --line:#e1e9f0;
  --bg:#f3f6f9;
  --white:#fff;
  --green:#26865b;
  --red:#b63b45;
  --purple:#6757a6;
  --shadow:0 10px 28px rgba(25,50,73,.065);
  --shadow-soft:0 3px 12px rgba(25,50,73,.045);
}
body{background:linear-gradient(180deg,#f7f9fb 0,#f1f5f8 100%)}
.eyebrow{letter-spacing:.14em;color:#2878b8}
h1{letter-spacing:-.035em;font-weight:880;color:var(--blue-dark)}
h2{letter-spacing:-.02em;color:#214f78}
p{color:var(--muted)}

.login-shell{background:radial-gradient(circle at 18% 12%,rgba(10,120,200,.08),transparent 32%),linear-gradient(180deg,#f7fafc,#eef4f8)}
.login-card{border:1px solid #dfe8ef;border-radius:28px;padding:38px;box-shadow:0 22px 60px rgba(24,50,74,.11);background:rgba(255,255,255,.98)}
.admin-scope-logo{width:126px;margin-bottom:22px}
.login-card input{border:1px solid #cedce7;border-radius:13px;background:#fbfdff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.login-card input:focus{outline:none;border-color:#6cb7e5;background:#fff;box-shadow:0 0 0 4px rgba(10,120,200,.09)}
.login-card .primary{min-height:48px;margin-top:2px}

.primary,.secondary,.danger,.button-link{border-radius:12px;min-height:42px;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}
.primary{background:linear-gradient(135deg,#0879cf,#0b91dc);box-shadow:0 5px 14px rgba(8,121,207,.16)}
.secondary,.button-link{background:#f4f8fb;color:#315e82;border:1px solid #d9e6ef}
.danger{background:#fff3f4;border:1px solid #efc9cd}
@media(hover:hover){.primary:hover,.secondary:hover,.danger:hover,.button-link:hover{transform:translateY(-1px)}.primary:hover{box-shadow:0 8px 18px rgba(8,121,207,.20)}.secondary:hover,.button-link:hover{background:#eef5f9}}

.admin-shell{width:min(1580px,100%);margin:auto;padding:22px;display:grid;grid-template-columns:238px minmax(0,1fr);grid-auto-flow:row;gap:18px 20px;align-items:start}
.admin-header{grid-column:1/-1;margin:0;padding:16px 18px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.admin-header::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#0a78c8,#69bee9)}
.admin-brand-wrap{gap:15px}.admin-header-logo{width:92px}.admin-header h1{font-size:clamp(26px,2.5vw,38px);margin:3px 0}.admin-header p{font-size:14px}
.header-actions{justify-content:flex-end;align-items:center}.role-pill{background:#edf7fd;border:0;color:#245f8b;box-shadow:inset 0 0 0 1px #d6eaf7}

.admin-tabs{grid-column:1;display:flex;flex-direction:column;gap:5px;padding:9px;position:sticky;top:18px;z-index:10;overflow:visible;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.admin-tab{width:100%;display:flex;align-items:center;justify-content:flex-start;min-height:43px;padding:10px 12px;border-radius:11px;text-align:left;color:#61788a;font-size:14px;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}
.admin-tab.active{background:#eaf5fc;color:#174f8c;box-shadow:inset 4px 0 0 #0a78c8;font-weight:900}
.admin-tab:nth-child(5),.admin-tab:nth-child(9){margin-top:8px;padding-top:13px;border-top:1px solid #e7eef3;border-radius:0 0 11px 11px}
@media(hover:hover){.admin-tab:not(.active):hover{background:#f4f8fb;color:#315e82}}

.admin-section{grid-column:2;margin-top:0;min-width:0}.admin-section.active{gap:16px}
.surface{border:1px solid var(--line);border-radius:20px;padding:21px;box-shadow:var(--shadow-soft);background:#fff}
.surface+.surface{margin-top:0}
.section-title{margin-bottom:16px}.section-title h2{font-size:22px}.section-title p{font-size:13px;max-width:760px}
.info-surface{border-left:0;background:linear-gradient(135deg,#eef8fd,#f7fbfd);box-shadow:inset 0 0 0 1px #d9ebf6}
.attention-surface{border-left:0;background:#fffdf8;box-shadow:inset 4px 0 0 #e0a200,var(--shadow-soft)}

.stats-grid{gap:11px}.stat-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;padding:17px 18px;box-shadow:var(--shadow-soft);background:linear-gradient(180deg,#fff,#fbfdff)}
.stat-card::after{content:"";position:absolute;right:-22px;top:-22px;width:74px;height:74px;border-radius:50%;background:rgba(10,120,200,.055)}
.stat-label{letter-spacing:.07em}.stat-value{letter-spacing:-.035em;font-size:34px}
.dashboard-grid{gap:14px}
.attention-item,.audit-entry,.admin-row{border:1px solid #e1e9f0;background:#fff;border-radius:14px;box-shadow:none}
.attention-item.warn{background:#fffaf0;border-color:#ead69a}.attention-item.danger{background:#fff4f5;border-color:#edc6ca}
.admin-row{padding:14px 15px}.admin-row-title{font-size:16px}.admin-row-meta{font-size:13px}

.form-grid{gap:13px}.form-grid label:not(.check){font-size:13px;letter-spacing:.005em;color:#385b75}.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea,.list-filter-row select,.list-filter-row input,.week-planner-toolbar select,.calendar-controls select,.inline-role{border:1px solid #cedce7;border-radius:11px;background:#fbfdff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.form-grid input:not([type=checkbox]):focus,.form-grid select:focus,.form-grid textarea:focus,.list-filter-row select:focus,.list-filter-row input:focus,.week-planner-toolbar select:focus,.calendar-controls select:focus,.inline-role:focus{outline:none;border-color:#6cb7e5;background:#fff;box-shadow:0 0 0 4px rgba(10,120,200,.08)}
fieldset{border:1px solid #dfe8ef;background:#fbfdff;border-radius:14px}.weekday-row label,.participant-select-grid label{background:#fff;border:1px solid #dfe8ef;border-radius:10px}.check input{accent-color:#0a78c8}
.template-field select{background:#eff8fd;border-color:#d6eaf6}.recurrence-help{border:0;background:#f2f7fa;border-radius:11px}

.visual-week-grid{gap:9px}.visual-day{border:1px solid #e0e9f0;border-radius:16px;background:#fff;box-shadow:var(--shadow-soft)}.visual-day.today{outline:0;border-color:#7fc3e9;box-shadow:0 0 0 3px rgba(10,120,200,.08),var(--shadow-soft)}.visual-day-head{border-bottom:1px solid #e9eff4}.visual-item{border:1px solid #e1e9f0;border-left-width:4px;border-radius:11px;background:#fff;box-shadow:0 2px 7px rgba(25,50,73,.035)}
.calendar-cell{border:1px solid #e1e9f0;border-radius:13px;box-shadow:0 2px 7px rgba(25,50,73,.03)}.calendar-cell.today{outline:0;border-color:#74bbe6;box-shadow:0 0 0 3px rgba(10,120,200,.08)}
.coverage-table{border-collapse:separate;border-spacing:0}.coverage-table th,.coverage-table td{border:0;border-bottom:1px solid #e7edf2}.coverage-table th{background:#f5f9fb}.coverage-table tr:last-child td{border-bottom:0}

.toast{right:24px;bottom:24px;border-radius:14px;background:#183b57;box-shadow:0 16px 34px rgba(17,44,65,.22)}

@media(max-width:1050px){
  .admin-shell{display:block;padding:16px}.admin-header{margin-bottom:13px}.admin-tabs{position:sticky;top:8px;display:flex;flex-direction:row;overflow-x:auto;gap:5px;padding:6px;border-radius:16px;margin-bottom:14px;scrollbar-width:thin}.admin-tab{width:auto;white-space:nowrap;justify-content:center;min-height:40px}.admin-tab.active{box-shadow:inset 0 -3px 0 #0a78c8}.admin-tab:nth-child(5),.admin-tab:nth-child(9){margin-top:0;padding-top:10px;border-top:0;border-radius:11px}.admin-section{margin-top:0}.admin-section.active{display:grid}.admin-header-logo{width:82px}
}
@media(max-width:650px){
  .admin-shell{padding:10px}.admin-header{border-radius:16px;padding:14px}.admin-brand-wrap{gap:10px}.admin-header-logo{width:68px}.admin-header h1{font-size:27px}.header-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.header-actions .role-pill{grid-column:1/-1;width:max-content}.surface{border-radius:16px;padding:16px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-value{font-size:29px}.admin-tabs{top:4px}.admin-row-actions{gap:6px}.primary,.secondary,.danger,.button-link{min-height:44px}.login-card{padding:28px 22px;border-radius:22px}
}
@media(prefers-reduced-motion:reduce){.primary,.secondary,.danger,.button-link,.admin-tab,.login-card input,.form-grid input,.form-grid select,.form-grid textarea{transition:none}.toast{transition:none}}


/* v8.1 Responsive Admin — calmer phone/tablet experience */
.mobile-admin-nav{display:none}
html{overflow-x:hidden}
body{overflow-x:hidden}
.admin-shell,.admin-section,.surface,.form-grid>*{min-width:0}
img{max-width:100%;height:auto}

@media(max-width:1050px){
  .admin-shell{max-width:100%;overflow-x:hidden}
  .admin-header{align-items:flex-start}
  .header-actions{max-width:100%}
  .surface{overflow-wrap:anywhere}
  .section-title{flex-wrap:wrap}
}

@media(max-width:700px){
  body{background:#f3f6f9}
  .admin-shell{display:block;width:100%;padding:10px 10px 82px}
  .admin-header{position:static;margin:0 0 9px;border-radius:16px;padding:13px;box-shadow:0 5px 18px rgba(25,50,73,.055)}
  .admin-brand-wrap{align-items:center;gap:10px}.admin-header-logo{width:62px}.admin-header .eyebrow{font-size:9px;letter-spacing:.1em}.admin-header h1{font-size:25px;margin:1px 0}.admin-header p{font-size:12px;line-height:1.3;margin-top:2px}
  .header-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}.header-actions .role-pill{grid-column:1/-1;width:max-content;font-size:11px;padding:6px 9px}.header-actions .button-link,.header-actions button{min-width:0;width:100%;padding:9px 8px;font-size:12px;white-space:normal;line-height:1.15}
  .admin-tabs{display:none!important}
  .mobile-admin-nav{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;position:sticky;top:0;z-index:30;margin:0 -2px 10px;padding:8px 10px;background:rgba(247,250,252,.97);border:1px solid #dfe8ef;border-radius:14px;box-shadow:0 5px 16px rgba(25,50,73,.07);backdrop-filter:blur(10px)}
  .mobile-admin-nav label{font-size:11px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#60798d}.mobile-admin-nav select{width:100%;min-height:42px;border:1px solid #cadbe7;border-radius:10px;background:#fff;color:#214f78;padding:8px 35px 8px 11px;font-size:16px;font-weight:800}
  .admin-section{margin:0;padding:0}.admin-section.active{gap:10px}
  .surface{padding:14px;border-radius:15px;box-shadow:0 3px 12px rgba(25,50,73,.045)}
  .section-title{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-bottom:12px}.section-title h2{font-size:20px}.section-title p{font-size:12px;line-height:1.4;margin-top:3px}.section-title>button,.section-title>.secondary{width:100%}
  .stats-grid{display:flex;overflow-x:auto;gap:8px;margin-right:-14px;padding-right:14px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none}.stats-grid::-webkit-scrollbar{display:none}.stat-card{flex:0 0 138px;scroll-snap-align:start;padding:13px 14px;border-radius:14px}.stat-label{font-size:10px}.stat-value{font-size:27px}
  .dashboard-grid{grid-template-columns:1fr;gap:10px}
  .form-grid,.form-grid.compact-form{grid-template-columns:1fr;gap:10px}.span-2{grid-column:auto}.form-grid label:not(.check){font-size:12px}.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea,.list-filter-row select,.list-filter-row input,.week-planner-toolbar select,.calendar-controls select,.inline-role{font-size:16px;min-height:44px;padding:10px 11px}.form-grid textarea{min-height:92px}.check{min-height:40px;font-size:13px}.check input{width:20px;height:20px;flex:0 0 auto}
  .weekday-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.weekday-row label{justify-content:center;padding:8px 5px;font-size:11px}.participant-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.participant-select-grid label{min-width:0;padding:8px;font-size:12px}
  fieldset{padding:11px;border-radius:12px}legend{font-size:12px}.recurrence-help{font-size:12px;padding:8px 10px}
  .form-actions{display:grid;grid-template-columns:1fr;gap:7px}.form-actions .primary,.form-actions .secondary,.form-actions .danger{width:100%}
  .primary,.secondary,.danger,.button-link{min-height:44px;font-size:14px;padding:10px 12px}
  .list-filter-row{display:grid;grid-template-columns:1fr;gap:7px;margin-bottom:10px}.list-filter-row label{display:grid;grid-template-columns:1fr;align-items:stretch;gap:5px;font-size:12px}
  .admin-row{grid-template-columns:1fr;gap:10px;padding:12px;border-radius:13px}.admin-row-title{font-size:15px}.admin-row-meta{font-size:12px;line-height:1.45}.admin-row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.admin-row-actions button,.admin-row-actions select{width:100%;min-width:0;font-size:12px;min-height:40px;padding:8px 6px}.admin-row-actions .danger:last-child:nth-child(odd),.admin-row-actions .secondary:last-child:nth-child(odd){grid-column:1/-1}
  .calendar-title{gap:9px}.calendar-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;width:100%}.calendar-controls strong{min-width:0;font-size:14px}.calendar-controls select,.calendar-controls .secondary:last-child{grid-column:1/-1}.calendar-legend{gap:8px;font-size:11px}.holiday-sync-label{width:100%}
  .admin-section[data-section-panel="calendar"] .surface{overflow:hidden}.calendar-scroll{overflow-x:auto}
  .admin-calendar-grid,.calendar-weekheads{min-width:720px}.calendar-cell{min-height:108px;padding:6px}.calendar-event{font-size:10px}
  .admin-section[data-section-panel="weekplanner"] .surface{overflow:hidden}.week-planner-toolbar{display:grid!important;grid-template-columns:1fr;gap:7px!important}.visual-week-grid{min-width:980px}.coverage-matrix{margin:0 -3px;padding:0 3px;overflow-x:auto;overscroll-behavior-x:contain}.coverage-table{min-width:720px;font-size:12px}
  .attention-list{grid-template-columns:1fr}.attention-item{padding:10px}.audit-entry{font-size:12px}
  .toast{left:10px;right:10px;bottom:10px;max-width:none;text-align:center;border-radius:12px}
  .login-shell{padding:14px}.login-card{padding:24px 18px;border-radius:20px}.admin-scope-logo{width:96px;margin-bottom:16px}.login-card h1{font-size:34px}.login-card p{font-size:14px}.login-card input{font-size:16px;min-height:48px}
}

@media(max-width:390px){
  .admin-shell{padding-left:7px;padding-right:7px}.admin-header{padding:11px}.admin-header-logo{width:54px}.admin-header h1{font-size:22px}.mobile-admin-nav{padding:7px 8px}.surface{padding:12px}.stats-grid{margin-right:-12px;padding-right:12px}.stat-card{flex-basis:126px}.weekday-row{grid-template-columns:repeat(3,minmax(0,1fr))}.participant-select-grid{grid-template-columns:1fr}.admin-row-actions{grid-template-columns:1fr}
}

.mobile-scroll-x{min-width:0}
@media(max-width:700px){.mobile-scroll-x{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:4px}.admin-section[data-section-panel="calendar"] .surface,.admin-section[data-section-panel="weekplanner"] .surface{overflow:visible}}

/* v8.2 identity/password workflow */
.password-rules{margin:-2px 0 10px;padding:9px 11px;border-radius:10px;background:#f2f7fa;color:#5d7588;font-size:12px;line-height:1.4}
.inline-username{min-width:130px;max-width:180px;min-height:40px;border:1px solid #cedce7;border-radius:10px;background:#fff;padding:8px 9px;font:inherit;color:#214f78}
.token-result code{display:block;margin:8px 0;padding:12px;border-radius:10px;background:#132f45;color:#fff;font-size:18px;font-weight:900;letter-spacing:.04em;overflow-wrap:anywhere}
@media(max-width:700px){.inline-username{max-width:none;width:100%;font-size:16px}.token-result code{font-size:16px}}

/* v8.3 account security */
.account-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.account-summary-card{background:var(--panel,#f7fbfe);border:1px solid var(--border,#d8e7f2);border-radius:14px;padding:14px;min-width:0}
.account-summary-value{font-weight:800;color:var(--navy,#174f90);font-size:1.05rem;overflow-wrap:anywhere;margin-top:5px}
.form-message{min-height:1.2em;color:#315b7c;font-weight:600}
@media(max-width:900px){.account-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.account-summary-grid{grid-template-columns:1fr}}

/* v8.3.1 — administrator-controlled account email */
.account-managed-note{padding:16px 18px;border:1px solid var(--border,#d8e4ef);border-radius:16px;background:var(--soft,#f7fafc);color:var(--text,#17324d)}
.account-managed-note p{margin:.35rem 0 0;color:var(--muted,#60758a)}
.inline-email{min-width:220px;max-width:300px}
@media(max-width:760px){.inline-email{min-width:0;max-width:none;width:100%}}


/* v8.3.2 — clean account administration */
.user-account-list{display:grid;gap:14px;margin-top:14px}
.user-account-card{border:1px solid #dfe9f1;border-radius:18px;background:#fff;padding:18px;box-shadow:0 4px 16px rgba(25,67,102,.035)}
.user-account-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:13px;border-bottom:1px solid #edf2f6}
.user-account-identity{min-width:0}.user-account-name{font-size:20px;font-weight:900;color:#173f64;line-height:1.15}.user-account-subline{margin-top:5px;color:#637b8f;font-size:13px;overflow-wrap:anywhere}
.user-account-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.account-badge{display:inline-flex;align-items:center;min-height:27px;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.035em;text-transform:uppercase;border:1px solid #d6e4ee;background:#f5f9fc;color:#49677e}.account-badge.role{background:#eef6fc;color:#225f8e;border-color:#d2e7f6}.account-badge.active{background:#edf8f1;color:#26704a;border-color:#c9e5d3}.account-badge.disabled{background:#f3f4f5;color:#69747d;border-color:#dde2e6}.account-badge.warning{background:#fff7df;color:#825e00;border-color:#ead28a}.account-badge.self{background:#f3effb;color:#624899;border-color:#ddd1f0}
.user-account-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0}.user-account-facts>div{background:#f8fbfd;border:1px solid #e5edf3;border-radius:12px;padding:10px 12px;min-width:0}.user-account-facts span{display:block;color:#6b8091;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.user-account-facts strong{display:block;margin-top:4px;color:#264d6d;font-size:13px;overflow-wrap:anywhere}
.user-account-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.user-control{display:block;color:#385b75;font-size:12px;font-weight:850}.user-control>span{display:block;margin-bottom:6px}.user-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.user-control-row input,.user-control-row select{width:100%;min-width:0;min-height:42px;border:1px solid #cedce7;border-radius:10px;background:#fbfdff;padding:9px 10px;font:inherit;color:#173f64}.user-control-row button{min-height:42px;padding:8px 13px}
.user-account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #edf2f6}.danger-outline{border:1px solid #e5b8b8;background:#fff;color:#ae3e3e;border-radius:10px;font-weight:800;padding:9px 13px;cursor:pointer}.danger-outline:hover{background:#fff3f3}.danger-outline:disabled,.user-account-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1000px){.user-account-controls{grid-template-columns:1fr}.user-account-head{align-items:flex-start}.user-account-badges{justify-content:flex-start}}
@media(max-width:650px){.user-account-card{padding:14px;border-radius:15px}.user-account-head{display:grid;gap:9px}.user-account-name{font-size:18px}.user-account-facts{grid-template-columns:1fr}.user-control-row{grid-template-columns:1fr}.user-control-row button{width:100%}.user-account-actions{display:grid;grid-template-columns:1fr 1fr}.user-account-actions button{width:100%;min-height:44px}.user-account-actions .danger{grid-column:1/-1}}

/* v8.5 Operations, Attention & Reporting */
.global-search-wrap{position:relative;min-width:min(340px,36vw);flex:1 1 280px}
.global-search-wrap>input{width:100%;min-height:42px;border:1px solid #cfdee9;border-radius:12px;background:#fff;padding:10px 13px;color:#214f78;font-weight:700;outline:none}
.global-search-wrap>input:focus{border-color:#69aeda;box-shadow:0 0 0 3px rgba(49,143,203,.12)}
.global-search-results{position:absolute;z-index:80;top:calc(100% + 7px);left:0;right:0;max-height:420px;overflow:auto;background:#fff;border:1px solid #d7e5ef;border-radius:14px;box-shadow:0 16px 38px rgba(20,59,89,.16);padding:6px}
.global-search-result{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 9px;text-align:left;border:0;border-radius:10px;background:transparent;padding:10px 11px;cursor:pointer;color:#234e6f}
.global-search-result:hover,.global-search-result:focus{background:#eef7fd;outline:none}
.global-search-result>span{grid-row:1/3;align-self:start;margin-top:1px;padding:3px 6px;border-radius:7px;background:#edf4f9;font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#5b768a}
.global-search-result>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-result>small{color:#6b8091;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-empty{padding:14px;color:#6c8191;text-align:center;font-size:13px}
.attention-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.attention-actions button{min-height:35px;padding:7px 9px;font-size:11px}
.attention-item.info{background:#eef8fd;border-color:#cce6f5}.notice-severity{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:950;letter-spacing:.06em}.notice-severity.normal{background:#eef6fb;color:#3e6e8f}.notice-severity.important{background:#fff6df;color:#806000}.notice-severity.urgent{background:#fff0f0;color:#a23030}
.notice-row.severity-important{border-left:4px solid #d8a72b}.notice-row.severity-urgent{border-left:4px solid #c94b4b;background:#fffafa}
.handover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.handover-card{border:1px solid #dfe9f1;border-radius:14px;background:#fbfdff;padding:14px}.handover-card h3{margin:0 0 8px;color:#1d527a;font-size:16px}.handover-line{padding:7px 0;border-top:1px solid #edf2f5;color:#31566f;line-height:1.4}.handover-line:first-of-type{border-top:0}.handover-note{color:#6b8091;font-size:12px}
.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-filter-grid label{display:grid;gap:6px;font-weight:750;color:#31536e}.report-filter-grid input,.report-filter-grid select{width:100%;min-height:42px;border:1.5px solid #cbdce9;border-radius:10px;padding:9px 10px;background:#fff;color:#17324d}.report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.report-summary{margin:16px 0}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th,.report-table td{padding:9px 10px;border:1px solid #dde8f0;text-align:left;vertical-align:top}.report-table th{position:sticky;top:0;background:#f2f8fc;color:#31566f;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.report-table tbody tr:nth-child(even){background:#fbfdff}.report-results{max-height:620px;overflow:auto}
.archived-row{border-left:4px solid #aebbc5}
@media(max-width:950px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.handover-grid{grid-template-columns:1fr}}
@media(max-width:700px){.global-search-wrap{min-width:0;grid-column:1/-1;order:-1}.global-search-results{position:fixed;left:10px;right:10px;top:118px;max-height:55vh}.report-filter-grid{grid-template-columns:1fr}.report-actions{display:grid;grid-template-columns:1fr 1fr}.report-actions button{width:100%}.attention-actions{display:grid;grid-template-columns:1fr}.attention-actions button{width:100%}}
@media print{.admin-header,.admin-tabs,.mobile-admin-nav,.header-actions,.form-actions,.report-actions,.section-title button,.toast{display:none!important}.admin-shell{width:100%;max-width:none;padding:0}.surface{box-shadow:none;border:0;padding:0}.report-results{max-height:none;overflow:visible}.report-table{font-size:10pt}}

/* v8.5 final — fortnight roster matrix */
.roster-fortnight-title{align-items:center}.roster-fortnight-actions{display:flex;gap:8px;flex-wrap:wrap}.roster-fortnight-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:12px;margin-bottom:13px}.roster-fortnight-range{text-align:center;padding:10px 14px;border:1px solid #dbe7f0;border-radius:13px;background:#f7fbfe}.roster-fortnight-range span{display:block;font-size:10px;font-weight:900;letter-spacing:.1em;color:#71879a}.roster-fortnight-range strong{display:block;margin-top:3px;color:#1c4f75;font-size:16px}.roster-shift-legend{display:flex;gap:9px 14px;flex-wrap:wrap;margin:4px 0 14px;padding:10px 12px;border:1px solid #e1ebf2;border-radius:12px;background:#fbfdff}.roster-shift-legend span{display:flex;align-items:center;gap:6px;color:#48697f;font-size:12px}.roster-shift-legend i{width:10px;height:10px;border-radius:3px;background:#d9edf9;border:1px solid #94c5e3}.roster-shift-legend .custom i{background:#fff2cd;border-color:#e0bc53}.roster-shift-legend .off i{background:#eef2f5;border-color:#cdd7df}.roster-matrix-wrap{width:100%;overflow:auto;border:1px solid #dce8f0;border-radius:15px;background:#fff;max-height:68vh}.roster-fortnight-table{border-collapse:separate;border-spacing:0;min-width:1770px;width:100%;font-size:12px}.roster-fortnight-table th,.roster-fortnight-table td{border-right:1px solid #e2ebf2;border-bottom:1px solid #e2ebf2;vertical-align:top;background:#fff}.roster-fortnight-table thead th{position:sticky;top:0;z-index:4;background:#f3f8fc;padding:9px 7px;text-align:center;color:#526f84;min-width:112px}.roster-fortnight-table thead th span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.roster-fortnight-table thead th strong{display:block;margin-top:3px;color:#204d70;font-size:12px}.roster-fortnight-table .today{background:#f0f8fe}.roster-staff-cell{position:sticky!important;left:0;z-index:5!important;min-width:180px!important;width:180px;text-align:left!important;padding:10px 11px!important;background:#f9fcfe!important;box-shadow:4px 0 8px rgba(23,63,100,.04)}thead .roster-staff-cell{z-index:7!important;background:#edf6fc!important}.roster-staff-name{font-size:13px;font-weight:900;color:#173f64;line-height:1.2}.roster-staff-role{margin-top:3px;color:#74899a;font-size:10px}.roster-copy-person{margin-top:7px;border:0;background:#eaf5fc;color:#1b6091;border-radius:7px;padding:5px 7px;font-size:9px;font-weight:850;cursor:pointer}.roster-matrix-cell{padding:6px;min-width:112px}.roster-cell-assignment{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;margin-bottom:4px}.roster-cell-select{width:100%;min-height:36px;border:1px solid #cfdee9;border-radius:8px;background:#f7fbfe;color:#244e6d;padding:5px 6px;font-size:10px;font-weight:800}.roster-cell-select.standard{background:#edf7fd;border-color:#b8daee}.roster-cell-select.custom{background:#fff8e5;border-color:#e6ca77}.roster-cell-select.empty{background:#f7f9fb;color:#687e8e}.roster-add-select{margin-top:3px;background:#fff;border-style:dashed;color:#557287}.roster-mini-edit{border:1px solid #ddc470;background:#fff8df;color:#765b00;border-radius:7px;padding:4px 6px;font-size:9px;font-weight:850;cursor:pointer}.roster-view-shift{border:1px solid #cfe2ef;border-radius:8px;padding:6px 7px;background:#f2f9fd;margin-bottom:4px}.roster-view-shift.custom{background:#fff8e7;border-color:#ead18c}.roster-view-shift strong,.roster-view-shift span{display:block}.roster-view-shift strong{color:#214f72;font-size:10px}.roster-view-shift span{margin-top:2px;color:#698092;font-size:9px}.roster-off-label{display:block;text-align:center;color:#95a4af;padding:9px 0;font-weight:750}.roster-save-hint{margin:10px 2px 0}.roster-empty{text-align:center;padding:34px;color:#5e7689}.roster-staff-list{display:grid;gap:8px;margin-top:15px}.roster-staff-admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #e0e9f0;border-radius:12px;background:#fbfdff}.roster-staff-admin-row.inactive{opacity:.58}.roster-staff-admin-row strong,.roster-staff-admin-row span{display:block}.roster-staff-admin-row strong{color:#214e70}.roster-staff-admin-row span{margin-top:3px;color:#718699;font-size:11px}.roster-dialog{border:0;padding:0;border-radius:20px;box-shadow:0 24px 80px rgba(14,46,72,.26);width:min(760px,calc(100vw - 28px));max-height:90vh}.roster-dialog::backdrop{background:rgba(9,35,55,.48);backdrop-filter:blur(2px)}.roster-dialog-card{padding:22px;background:#fff;overflow:auto;max-height:90vh}.roster-dialog-card .section-title{margin-bottom:15px}.roster-dialog-actions{margin-top:17px}.roster-dialog[open]:not(:modal){position:fixed;z-index:999;inset:5vh auto auto 50%;transform:translateX(-50%)}
@media(max-width:850px){.roster-fortnight-toolbar{grid-template-columns:1fr 1fr}.roster-fortnight-range{grid-column:1/-1;grid-row:1}.roster-fortnight-title{align-items:flex-start}.roster-fortnight-actions{width:100%}.roster-fortnight-actions button{flex:1}.roster-matrix-wrap{max-height:65vh}.roster-staff-cell{min-width:148px!important;width:148px}.roster-staff-admin-row{align-items:flex-start;flex-direction:column}.roster-staff-admin-row .admin-row-actions{width:100%}.roster-staff-admin-row .admin-row-actions button{flex:1}}


/* v8.5.1 — clearer shift handover cards */
.handover-summary{margin-top:4px}
.handover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.handover-card{border:1px solid #dce7ef;border-radius:16px;background:#fbfdff;padding:16px 18px;min-width:0;box-shadow:0 4px 14px rgba(27,70,101,.035)}
.handover-card.span-2{grid-column:1/-1}
.handover-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;margin-bottom:2px;border-bottom:1px solid #e6eef4}
.handover-card-head h3{margin:0;color:#163f60;font-size:18px;line-height:1.2}
.handover-card-head>span{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#eef6fb;color:#527189;font-size:11px;font-weight:850;white-space:nowrap}
.handover-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid #edf2f6;min-width:0}
.handover-card-head+.handover-entry{border-top:0}
.handover-entry-main{min-width:0}
.handover-entry-main strong{display:block;color:#214e70;font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.handover-entry-main span{display:block;margin-top:3px;color:#58758b;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.handover-entry-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:220px}
.handover-entry-badges span{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef7fd;color:#275f88;border:1px solid #d7e9f5;font-size:10px;font-weight:850;line-height:1.2;text-align:center}
.handover-note{margin:10px 0 0;padding-top:9px;border-top:1px dashed #dde7ed;color:#718595;font-size:12px}
.handover-empty{padding:14px 2px 6px;color:#718595;font-size:13px}
@media(max-width:950px){.handover-grid{grid-template-columns:1fr}.handover-card.span-2{grid-column:auto}}
@media(max-width:620px){.handover-entry{grid-template-columns:1fr}.handover-entry-badges{justify-content:flex-start;max-width:none}.handover-card{padding:14px}.handover-card-head h3{font-size:16px}}

/* v8.6.1 roster rules, role preview and staff roster */
.version-label{font:inherit}.preview-control{white-space:nowrap}
.shift-list-dot{display:inline-block;width:11px;height:11px;border-radius:4px;margin-right:8px;vertical-align:0;background:var(--shift-colour);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.roster-shift-legend span i{background:color-mix(in srgb,var(--shift-colour,#d9edf9) 22%,white);border-color:var(--shift-colour,#94c5e3)}
.roster-cell-assignment .roster-cell-select.standard{background:color-mix(in srgb,var(--shift-colour,#2f80ed) 12%,white);border-color:color-mix(in srgb,var(--shift-colour,#2f80ed) 42%,#cfdde7);box-shadow:inset 4px 0 0 var(--shift-colour,#2f80ed)}
.staff-roster-view-toggle{display:flex;justify-content:flex-end;gap:7px;margin:0 0 10px}.staff-roster-view-toggle .active{background:var(--blue);border-color:var(--blue);color:#fff}
.staff-roster-table{border-collapse:separate;border-spacing:0;min-width:980px;width:100%;font-size:12px}.staff-roster-table th,.staff-roster-table td{border-right:1px solid #e2ebf2;border-bottom:1px solid #e2ebf2;background:#fff;vertical-align:top}.staff-roster-table thead th{position:sticky;top:0;z-index:4;background:#f3f8fc;padding:9px 7px;text-align:center;color:#526f84;min-width:118px}.staff-roster-table thead th span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.staff-roster-table thead th strong{display:block;margin-top:3px;color:#204d70;font-size:12px}.staff-roster-shift-cell{position:sticky!important;left:0;z-index:5!important;min-width:190px!important;width:190px;text-align:left!important;padding:11px 12px!important;background:color-mix(in srgb,var(--shift-colour,#2f80ed) 9%,#f9fcfe)!important;box-shadow:inset 5px 0 0 var(--shift-colour,#2f80ed),4px 0 8px rgba(23,63,100,.04)}thead .staff-roster-shift-cell{z-index:7!important}.staff-roster-shift-name{font-weight:900;color:#173f64}.staff-roster-shift-time{margin-top:4px;color:#667f91;font-size:10px}.staff-roster-cell{padding:8px;min-width:118px;background:color-mix(in srgb,var(--shift-colour,#2f80ed) 4%,white)!important}.staff-roster-cell.today{background:color-mix(in srgb,var(--shift-colour,#2f80ed) 10%,#f0f8fe)!important}.staff-roster-cell.not-required{background:#fafcfd!important;color:#a0acb5;text-align:center}.staff-roster-cell.unfilled{background:#fff4f4!important;color:#a53b3b;font-weight:850;text-align:center}.staff-roster-name{display:block;padding:6px 7px;margin-bottom:5px;border-radius:8px;background:color-mix(in srgb,var(--shift-colour,#2f80ed) 14%,white);border:1px solid color-mix(in srgb,var(--shift-colour,#2f80ed) 35%,#dce7ee);border-left:4px solid var(--shift-colour,#2f80ed);font-weight:850;color:#244e6d}.staff-roster-name:last-child{margin-bottom:0}
.coverage-shift-dot{display:inline-block;width:9px;height:9px;border-radius:3px;background:var(--shift-colour);margin-right:6px}.coverage-na{background:#fafcfd;color:#a0acb5;font-weight:750}.coverage-neutral{background:#f7f8fa;color:#71818f;font-weight:800}
@media(max-width:850px){.staff-roster-view-toggle{justify-content:stretch}.staff-roster-view-toggle button{flex:1}.staff-roster-shift-cell{min-width:155px!important;width:155px}}

/* v8.6.2 — tabbed admin workflow + browser-native multi-tab navigation */
.admin-tab{display:inline-flex;align-items:center;text-decoration:none}
.admin-tab:visited{color:var(--muted)}
.admin-tab.active:visited{color:#fff}
.tabbed-section{display:grid;gap:14px;min-width:0}
.subtab-panel{display:grid;gap:18px;min-width:0}
.tabbed-section.subtabs-enabled>.subtab-panel:not(.active){display:none}
.section-subtabs{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:6px;background:#edf4fa;border:1px solid #d7e5ef;border-radius:14px;scrollbar-width:thin}
.section-subtab{flex:0 0 auto;border:1px solid transparent;border-radius:10px;padding:9px 14px;background:transparent;color:#587188;font-weight:850;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}
.section-subtab:hover{background:#fff;color:#214f72;border-color:#d9e6ef}
.section-subtab.active{background:#fff;color:var(--blue-dark);border-color:#c8ddeb;box-shadow:0 3px 10px rgba(24,67,99,.08)}
.section-subtab:focus-visible{outline:3px solid rgba(8,121,207,.18);outline-offset:2px}
.tabbed-section[data-subtabs-role="manager"]:not(.subtabs-enabled)>.section-subtabs{display:none!important}
.tabbed-section[data-subtabs-role="manager"]:not(.subtabs-enabled)>.subtab-panel{display:grid}
.admin-section[data-section-panel="weekplanner"] .tabbed-section>.section-subtabs,
.admin-section[data-section-panel="schedule"] .tabbed-section>.section-subtabs,
.admin-section[data-section-panel="roster"] .tabbed-section>.section-subtabs{position:sticky;top:18px;z-index:8;box-shadow:0 7px 18px rgba(24,67,99,.06)}
@media(max-width:850px){.section-subtabs{padding:5px}.section-subtab{padding:8px 11px;font-size:13px}.admin-section[data-section-panel="weekplanner"] .tabbed-section>.section-subtabs,.admin-section[data-section-panel="schedule"] .tabbed-section>.section-subtabs,.admin-section[data-section-panel="roster"] .tabbed-section>.section-subtabs{top:64px}}

/* v8.7 — roster productivity, availability and live support intelligence */
.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;border-radius:999px;background:#d94a4a;color:#fff;font-size:10px;font-weight:900;line-height:1}.admin-tab{display:flex;align-items:center;gap:8px}.nav-count.hidden{display:none!important}
.roster-density-toggle{display:flex;gap:6px;flex-wrap:wrap}.roster-density-toggle .active{box-shadow:inset 0 0 0 2px rgba(36,91,139,.15);background:#eaf4fb}
.roster-shift-palette{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid #dce8f0;border-radius:12px;background:#f9fcfe}.roster-shift-palette>strong{font-size:12px;color:#536f84}.roster-shift-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--shift-colour,#2f80ed) 38%,#dce8f0);border-radius:999px;padding:7px 10px;background:color-mix(in srgb,var(--shift-colour,#2f80ed) 10%,white);color:#244e6d;font-size:11px;font-weight:850;cursor:grab}.roster-shift-chip:active{cursor:grabbing}.roster-shift-chip i{width:9px;height:9px;border-radius:3px;background:var(--shift-colour,#2f80ed)}.roster-shift-chip span{font-weight:650;color:#6b8294}
.roster-bulk-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border:1px solid #dce8f0;border-radius:12px;background:#fff}.roster-bulk-toolbar strong{color:#214f72}.roster-bulk-toolbar span{font-size:11px;color:#6d8293;margin-right:auto}.roster-bulk-toolbar select{min-width:220px;min-height:38px;border:1px solid #cddde8;border-radius:9px;background:#fff;padding:6px 8px;color:#244e6d}
.roster-bulk-select{position:absolute;right:5px;top:5px;z-index:3;border:0;background:transparent;color:#7890a2;font-weight:900;cursor:pointer;padding:2px 4px}.roster-matrix-cell{position:relative}.roster-matrix-cell.bulk-selected{outline:3px solid rgba(47,128,237,.34);outline-offset:-3px;background:#f0f7ff}.roster-cell-assignment[draggable="true"]{cursor:grab}.roster-cell-assignment.dragging{opacity:.45}.roster-drop-active{box-shadow:inset 0 0 0 3px rgba(47,128,237,.45)!important;background:#eef7ff!important}.staff-unavailable{background:repeating-linear-gradient(135deg,#fff 0,#fff 8px,#fff3f3 8px,#fff3f3 16px)!important}.roster-unavailable-label{margin:0 18px 5px 0;padding:4px 6px;border-radius:6px;background:#ffe3e3;color:#9b3030;font-size:9px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-conflict{box-shadow:inset 0 0 0 2px rgba(230,126,34,.55)}.roster-conflict-label{display:inline-block;margin:0 18px 5px 0;padding:3px 6px;border-radius:999px;background:#fff0df;color:#9a550d;font-size:9px;font-weight:900}.compact-density .roster-fortnight-table thead th,.compact-density .staff-roster-table thead th{padding-top:5px;padding-bottom:5px}.compact-density .roster-matrix-cell,.compact-density .staff-roster-cell{padding:4px}.compact-density .roster-cell-select{min-height:30px;padding:3px 5px}.compact-density .staff-roster-name{padding:4px 5px;margin-bottom:3px}.compact-density .roster-staff-cell,.compact-density .staff-roster-shift-cell{padding-top:7px!important;padding-bottom:7px!important}
.coverage-period-label{margin:0 0 10px;color:#567084;font-weight:850}.coverage-assign{display:block;margin:5px auto 0;border:1px solid #e1a8a8;border-radius:7px;background:#fff;color:#9c3b3b;font-size:9px;font-weight:900;padding:4px 7px;cursor:pointer}.coverage-table thead th{position:sticky;top:0;z-index:3}.coverage-table th:first-child{position:sticky;left:0;z-index:4;background:#f7fbfe}.coverage-table thead th:first-child{z-index:5}
.roster-support-intel{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:11px 12px;border:1px solid #dce8f0;border-radius:11px;background:#f8fbfd}.roster-support-intel>strong{color:#244e6d}.roster-support-intel>span{color:#687f91;font-size:12px}.roster-support-intel .warn{color:#9a550d}.roster-support-chips{display:flex;gap:6px;flex-wrap:wrap}.roster-support-chips span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eaf5fc;border:1px solid #c9e0ef;color:#245a80;font-size:10px;font-weight:850}
@media(max-width:850px){.roster-bulk-toolbar select{min-width:0;flex:1 1 180px}.roster-shift-palette{align-items:stretch}.roster-shift-chip{flex:1 1 150px;justify-content:center}}

/* v8.8 — Key Worker printable planner + daily operations */
.kw-private-badge{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#f2edff;color:#6b4aa0;border:1px solid #ddd0f5;font-size:10px;font-weight:900;white-space:nowrap}.kw-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.kw-toolbar label{display:flex;align-items:center;gap:7px;font-weight:850;color:#31536e}.kw-toolbar select{min-height:40px;border:1px solid #cbdce9;border-radius:10px;background:#fff;padding:7px 10px}.kw-toolbar strong{color:#244e6d;margin:0 3px}.kw-presets{padding:9px 10px;border:1px solid #dfe8ef;background:#f9fcfe;border-radius:12px}.kw-preset-title{font-size:11px;font-weight:900;color:#567084}.kw-preset-chip{border:1px solid #d6e5ef;border-radius:999px;background:#fff;color:#315f80;padding:7px 10px;font-size:10px;font-weight:850;cursor:pointer}.kw-preset-chip:hover{background:#eef7fd}.kw-help{margin:8px 0 10px;font-size:12px}.kw-status{min-height:18px;color:#6f8292;font-size:11px;font-weight:750}.kw-board-scroll{overflow:auto;border:1px solid #d9e5ee;border-radius:14px;background:#fff}.kw-board{display:grid;grid-template-columns:116px repeat(7,minmax(150px,1fr));min-width:1160px}.kw-corner,.kw-day-head,.kw-part-head,.kw-cell{border-right:1px solid #dfe8ef;border-bottom:1px solid #dfe8ef}.kw-corner,.kw-day-head{position:sticky;top:0;z-index:4;background:#f5f9fc;padding:10px}.kw-corner{left:0;z-index:6;display:flex;flex-direction:column}.kw-corner strong{color:#214f72}.kw-corner span,.kw-day-head span{font-size:9px;color:#73899a;margin-top:3px}.kw-day-head{text-align:center}.kw-day-head strong{display:block;color:#214f72}.kw-part-head{position:sticky;left:0;z-index:3;background:#f7fafc;min-height:145px;display:grid;place-items:center;padding:8px}.kw-part-head strong{writing-mode:vertical-rl;transform:rotate(180deg);color:#31536e;font-size:12px;letter-spacing:.03em}.kw-cell{position:relative;min-height:145px;padding:9px;background:#fff}.kw-cell.drag-over{background:#eef7ff;box-shadow:inset 0 0 0 3px rgba(47,128,237,.25)}.kw-cell-add{position:absolute;right:5px;top:5px;width:25px;height:25px;border:1px solid #d6e4ee;border-radius:8px;background:#fff;color:#4c728d;font-weight:900;cursor:pointer;opacity:.5}.kw-cell:hover .kw-cell-add{opacity:1}.kw-card-stack{display:grid;gap:6px;padding-top:22px}.kw-cell-empty{font-size:10px;color:#a1aeb8;padding:6px}.kw-card{border:1px solid #d7e3eb;border-left:4px solid #587e98;border-radius:10px;padding:7px 8px;background:#f8fbfd;box-shadow:0 2px 7px rgba(31,71,99,.04);font-size:10px;line-height:1.25}.kw-card-routine{background:color-mix(in srgb,var(--kw-card,#e8f4ff) 72%,white);border-left-color:color-mix(in srgb,var(--kw-card,#8cbfe3) 65%,#3a6684);cursor:grab}.kw-card-routine:active{cursor:grabbing}.kw-card-routine.dragging{opacity:.45}.kw-card-live{background:#f5f0ff;border-left-color:#8157c8}.kw-card-top{display:flex;gap:5px;align-items:flex-start}.kw-card-top strong{flex:1;color:#223f57;font-size:10px}.kw-symbol{width:14px;text-align:center}.kw-lock{font-size:9px;opacity:.65}.kw-card-time,.kw-card-details,.kw-live-label{display:block;margin-top:4px}.kw-card-time{color:#42627a;font-weight:850}.kw-card-details{color:#5f7485}.kw-live-label{color:#6b4aa0;text-transform:uppercase;font-size:8px;font-weight:900;letter-spacing:.04em}.kw-print-note{margin-top:10px;color:#7a8791;font-size:10px}.kw-empty-state{grid-column:1/-1;padding:28px;text-align:center;color:#6f8292}.kw-dialog{width:min(760px,calc(100vw - 28px));border:0;border-radius:18px;padding:22px;box-shadow:0 20px 70px rgba(16,45,65,.25)}.kw-dialog::backdrop{background:rgba(18,43,61,.42)}
.ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.ops-kpis article{border:1px solid #dfe8ef;border-radius:14px;background:#f8fbfd;padding:13px}.ops-kpis span{display:block;color:#708596;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.ops-kpis strong{display:block;margin-top:5px;color:#1f4b6c;font-size:28px}.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ops-grid section{border:1px solid #dfe8ef;border-radius:14px;background:#fff;padding:14px}.ops-grid h3{margin:0 0 8px;color:#214f72;font-size:15px}.ops-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ops-grid li{display:grid;gap:2px;padding:8px 9px;border-radius:9px;background:#f8fbfd}.ops-grid li strong{font-size:11px;color:#2a4f69}.ops-grid li span{font-size:10px;color:#708596}.ops-grid .ops-empty{color:#8b9aa5;font-size:10px}.v88-legacy-ops{margin-top:14px;border-top:1px solid #e5edf3;padding-top:12px}.v88-legacy-ops summary{cursor:pointer;color:#607b8e;font-size:11px;font-weight:850}
@media(max-width:900px){.ops-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-grid{grid-template-columns:1fr}.kw-board{grid-template-columns:92px repeat(7,minmax(140px,1fr));}.kw-part-head{min-height:130px}.kw-cell{min-height:130px}}
@media(max-width:600px){.ops-kpis{grid-template-columns:1fr 1fr}.kw-toolbar>*{flex:1 1 auto}.kw-toolbar label{flex-basis:100%}.kw-toolbar select{width:100%}.kw-private-badge{white-space:normal}}
.kw-flow-controls{display:flex;gap:2px;opacity:.25}.kw-card-routine:hover .kw-flow-controls{opacity:1}.kw-flow-controls button{border:0;border-radius:5px;background:rgba(255,255,255,.7);color:#45677e;font-size:9px;font-weight:900;line-height:1;padding:3px 4px;cursor:pointer}.kw-flow-controls button:hover{background:#fff}

/* v8.9 — Key Worker read-only oversight, Admin-only Pilot Lab and isolated demos */
.kw-access-message{margin:10px 0;padding:9px 12px;border:1px solid #d9e6f3;border-radius:9px;color:#32556e;background:#f5f9fd;font-size:12px;font-weight:700}
.kw-card-readonly{cursor:default;border-left-color:#778da9!important}
.kw-templates,.kw-copy-day{padding:8px 10px;border:1px solid #dfe8ef;border-radius:10px;background:#f8fbfe}
.kw-hint,.v89-hint{color:#718293;font-size:11px}
.v89-kw-oversight{margin:15px 0}
.v89-oversight-head{display:flex;justify-content:space-between;align-items:center;gap:15px}
.v89-oversight-head h3{font-size:16px;color:#254a70;margin:4px 0}
.v89-oversight-head p{font-size:11px;color:#6d8494;margin:2px 0 12px}
.v89-oversight-table-wrap{overflow-x:auto;border:1px solid #e0e9f1;border-radius:10px}
.v89-oversight-table{width:100%;border-collapse:collapse;font-size:12px}
.v89-oversight-table th,.v89-oversight-table td{border-bottom:1px solid #e5edf3;text-align:left;padding:10px}
.v89-oversight-table th{white-space:nowrap;background:#f5f9fe;color:#3b5b78}
.v89-cycle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:12px}
.v89-cycle{background:#f7faff;border:1px solid #dae7f4;padding:14px;border-radius:12px;display:grid;gap:7px}
.v89-cycle strong{font-size:13px;color:#294d74}.v89-cycle>span{font-size:11px;color:#72869c}
.v89-cycle>div{display:flex;gap:6px;flex-wrap:wrap}.v89-cycle-date{border-radius:20px;padding:5px 7px;background:white;border:1px solid #ccdbec;color:#42618a;font-size:10px;font-weight:800}
.v89-pilot-badge{display:inline-flex;padding:8px 10px;border-radius:20px;color:#894e03;background:#fff2da;border:1px solid #ebd3a6;font-weight:900;font-size:11px;white-space:nowrap}
.v89-warning{border:1px solid #e8cf89;border-left:5px solid #b98a1c;background:#fffaf0;color:#725013;padding:14px 16px;border-radius:10px;font-size:12px;line-height:1.5;margin-bottom:16px}
.v89-pilot-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.15fr);gap:20px;align-items:start;padding:18px 0}
.v89-pilot-form,.v89-pilot-list-wrap{padding:16px;border-radius:12px;border:1px solid #dfe8f0;background:#fcfdff;display:grid;gap:13px}
.v89-pilot-form h3,.v89-pilot-list-wrap h3{margin:0;color:#214f72;font-size:17px}
.v89-pilot-form label,.v89-demo-form label{font-size:12px;display:grid;gap:5px;color:#3e5769;font-weight:750}
.v89-pilot-form input:not([type=hidden]),.v89-pilot-form textarea,.v89-pilot-form select,.v89-demo-form input,.v89-demo-form textarea,.v89-demo-form select{box-sizing:border-box;width:100%;border:1px solid #c8d9e7;background:white;border-radius:8px;min-height:38px;padding:8px 10px;font:inherit;font-size:12px;color:#254761}
.v89-form-line{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v89-form-actions{display:flex;gap:10px;flex-wrap:wrap}
.v89-pilot-list{display:grid;gap:12px;max-height:720px;overflow:auto}
.v89-item{border:1px solid #dbe6ef;border-radius:12px;padding:13px 14px;background:white;display:grid;gap:7px;margin-bottom:10px}
.v89-item strong{color:#224869;font-size:13px}.v89-item small{color:#688198;font-size:11px}.v89-item p{color:#5d7183;font-size:12px;line-height:1.4;overflow-wrap:anywhere;margin:4px 0}
.v89-item-actions{display:flex;gap:8px}.v89-empty{color:#73899b;font-size:12px}
.v89-live-preview-note{padding:6px 10px;border:1px solid #cead61;background:#fff6df;color:#704d16;border-radius:10px;font-size:11px;font-weight:900}
body.v89-demo-mode #admin-view,body.v89-demo-mode #login-view,body.v89-demo-mode #force-password-view{display:none!important}
.v89-demo-shell{max-width:1440px;margin:20px auto;padding:18px;box-sizing:border-box;min-height:90vh;background:#f3f8fd;font-family:inherit}
.v89-demo-shell.hidden{display:none!important}
.v89-demo-top{border:2px solid #6a90c3;display:flex;align-items:start;justify-content:space-between;gap:24px;padding:18px 24px;background:#e9f3ff;border-radius:15px;margin-bottom:20px}
.v89-demo-top h1{color:#234e7e;font-size:27px;margin:5px 0}.v89-demo-top p{font-size:12px;color:#57748f;max-width:800px;line-height:1.5;margin:0}
.v89-demo-watermark{color:#795008;font-size:12px;letter-spacing:1.5px;font-weight:950;background:#fff5dc;padding:5px 9px;border:1px solid #ebc675;border-radius:7px}
.v89-demo-main{display:grid;grid-template-columns:215px minmax(0,1fr);gap:20px}
.v89-demo-nav{align-self:start;display:grid;gap:6px;background:white;border:1px solid #d8e6f3;border-radius:14px;padding:10px}
.v89-demo-nav button{padding:12px 14px;border-radius:9px;text-align:left;color:#435e77;background:transparent;border:0;font-weight:750;cursor:pointer}
.v89-demo-nav button.active{color:#294d82;background:#e7f0ff;box-shadow:inset 3px 0 #4374ca}
.v89-demo-content{padding:24px;border-radius:14px;border:1px solid #d8e6f3;background:white;min-height:510px}
.v89-demo-content h2{color:#214c77;margin:0 0 10px}.v89-demo-caption{font-size:12px;color:#667e94;margin:0 0 18px;line-height:1.5}
.v89-demo-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.v89-demo-cards article{display:grid;gap:9px;border:1px solid #dbe6f3;border-radius:12px;padding:16px;background:#f8fbff}
.v89-demo-cards span{font-size:12px;color:#617993}.v89-demo-cards strong{font-size:30px;color:#27548b}
.v89-demo-form{padding:14px;display:grid;gap:10px;border:1px solid #bfd7e9;background:#f5faff;border-radius:10px;margin:14px 0 22px;max-width:700px}
@media(max-width:870px){.v89-pilot-grid{grid-template-columns:1fr}.v89-demo-main{grid-template-columns:1fr}.v89-demo-nav{display:flex;overflow-x:auto;white-space:nowrap}.v89-demo-nav button{flex-shrink:0}.v89-demo-cards{grid-template-columns:1fr 1fr}.v89-demo-top{flex-direction:column}}
@media(max-width:550px){.v89-form-line{grid-template-columns:1fr}.v89-demo-cards{grid-template-columns:1fr}}

.v89-connection{display:inline-flex;align-items:center;max-width:310px;padding:8px 10px;border:1px solid #d39b32;border-radius:9px;background:#fff4d9;color:#754b04;font-size:12px;font-weight:700}.v89-connection.hidden{display:none!important}
/* v8.9 manager roster templates and atomic bulk appointment rescheduling */
.v89-roster-template-tools{display:flex;gap:9px;flex-wrap:wrap;align-items:center;padding:13px 15px;background:#f5faff;border:1px solid #cfdfef;border-radius:12px;margin:10px 0 15px}
.v89-roster-template-tools>strong{color:#274d70;font-size:13px;margin-right:4px}.v89-roster-template-tools select{min-height:39px;max-width:360px;min-width:190px;border:1px solid #cbdce9;border-radius:8px;padding:7px 10px;background:white;color:#2a506d}
.v89-roster-template-tools .v89-hint{flex-basis:100%;margin:0;color:#59768c;font-weight:600}
.v89-bulk-appointments{margin:0 0 18px;padding:17px 18px;border:1px solid #cfe0ef;border-radius:13px;background:#f8fbff}
.v89-bulk-appointments h3{font-size:18px;color:#254d70;margin:0}.v89-bulk-appointments .section-title{margin-bottom:10px}
.v89-bulk-appointments .section-title p{font-size:12px}.v89-bulk-range{display:flex;align-items:end;gap:11px;flex-wrap:wrap;margin:9px 0}
.v89-bulk-range label{display:grid;gap:5px;color:#315b7c;font-size:11px;font-weight:850}
.v89-bulk-range input{border:1px solid #cbdce9;background:white;border-radius:8px;padding:8px 10px;min-height:38px;color:#244e6d}
.v89-bulk-select-list{max-height:250px;overflow:auto;display:grid;gap:6px;margin:13px 0}
.v89-bulk-appointment{display:flex;align-items:center;gap:11px;border:1px solid #dbe8f2;background:white;border-radius:9px;padding:10px 12px;cursor:pointer}
.v89-bulk-appointment input{width:16px;height:16px;accent-color:#3478b8}.v89-bulk-appointment span{display:grid;gap:3px}.v89-bulk-appointment strong{font-size:12px;color:#244c70}.v89-bulk-appointment small{color:#698199;font-size:10px}
@media(max-width:850px){.v89-roster-template-tools select{max-width:100%;flex:1 1 200px}.v89-bulk-range label{flex:1 1 130px}}
