:root{--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--bg:#f4f7fb;--card:#fff;--brand:#111827;--accent:#2563eb;--warn:#f59e0b;--danger:#dc2626;--ok:#16a34a;--shadow:0 14px 34px rgba(15,23,42,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:#1d4ed8;text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:#111827;color:#fff;padding:22px 18px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;margin-bottom:28px}.sidebar-brand:hover{text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:12px;background:#fff;color:#111827;display:inline-flex;align-items:center;justify-content:center;font-weight:900;letter-spacing:-.04em}.sidebar-brand strong{display:block;font-size:17px}.sidebar-brand small{display:block;color:#cbd5e1;margin-top:2px}.nav-section{color:#94a3b8;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin:20px 10px 8px}.sidebar-nav a{display:flex;align-items:center;min-height:38px;color:#e5e7eb;text-decoration:none;border-radius:10px;padding:9px 12px;margin:3px 0;font-weight:700}.sidebar-nav a:hover{background:#1f2937;color:#fff;text-decoration:none}.main-shell{min-width:0}.topbar{height:86px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px 34px;position:sticky;top:0;z-index:5}.topbar h1{font-size:24px;line-height:1.1;margin:3px 0 0}.eyebrow{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:900}.topbar-actions{display:flex;align-items:center;gap:10px}.user-chip{background:#f1f5f9;border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:#334155;font-weight:800}.container{max-width:1180px;margin:0 auto;padding:28px 34px 60px}.page-intro{color:#475569;margin-top:-12px;margin-bottom:18px}.card,.verify-card{background:var(--card);border-radius:16px;padding:20px;box-shadow:var(--shadow);border:1px solid rgba(226,232,240,.75);margin-bottom:20px}.narrow{max-width:460px;margin:28px auto}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px}.ops-stats{grid-template-columns:repeat(4,minmax(150px,1fr))}.stats .card,.dashboard-stats .card{margin:0}.stats strong,.dashboard-stats strong{display:block;font-size:34px;line-height:1;font-weight:900;letter-spacing:-.04em}.stats span,.dashboard-stats span{display:block;color:#475569;margin-top:8px}.card.warning{border-left:5px solid var(--warn)}.card.danger{border-left:5px solid var(--danger)}.card.task-card.done{border-left:5px solid var(--ok)}.card.task-card.todo{border-left:5px solid var(--warn)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 22px}.button,.primary,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:#111827;color:#fff;padding:10px 14px;text-decoration:none;cursor:pointer;font-weight:800;line-height:1.1}.button:hover,button:hover{text-decoration:none;filter:brightness(1.08)}.button.secondary{background:#64748b}.small-button{padding:8px 11px;font-size:12px}.inline{display:inline}.message{background:#dbeafe;border:1px solid #bfdbfe;color:#1e3a8a;padding:12px;border-radius:10px;margin-bottom:14px;font-weight:700}.page-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}th,td{text-align:left;padding:12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}th{background:#f8fafc;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.compact-table th,.compact-table td{padding:9px 10px}.table-scroll{overflow-x:auto}.small{font-size:12px;color:#64748b}.empty{color:#64748b;font-style:italic}.pill,.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900}.pill.ok,.badge.pub{background:#dcfce7;color:#166534}.pill.bad,.badge.mandatory{background:#fee2e2;color:#991b1b}.pill.warn,.badge.draft{background:#fef3c7;color:#92400e}.pill.neutral,.badge{background:#e5e7eb;color:#374151}.badge.sleep{background:#111827;color:#fff}.badge.optional{background:#e0f2fe;color:#075985}.row-danger{background:#fef2f2}.row-warning{background:#fffbeb}.row-ok{background:#f0fdf4}input,select,textarea{width:100%;max-width:680px;padding:10px 11px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:3px solid #dbeafe;border-color:#60a5fa}input[type=file]{border:0;padding-left:0;background:transparent}input[type=checkbox],input[type=radio]{width:auto;max-width:none}label{font-weight:800;display:block;margin-bottom:5px}.helptext{font-size:12px;color:#64748b;margin-top:4px}.errorlist{color:#991b1b;margin:6px 0 0;padding-left:18px}.field-row{margin-bottom:15px}.form-grid{display:grid;grid-template-columns:250px 1fr;gap:26px;align-items:start}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:680px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row label{margin:0}.checkbox-list label{font-weight:500}.checkbox-list input{margin-right:8px}.photo-panel{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:14px}.employee-photo-preview,.employee-photo-placeholder{width:180px;height:220px;object-fit:cover;border-radius:12px;border:1px solid #cbd5e1;background:#f1f5f9;margin-bottom:12px}.employee-photo-placeholder{display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:900}.employee-photo-placeholder.large{width:150px;height:180px;margin:0}.employee-thumb{width:42px;height:52px;object-fit:cover;border-radius:8px;border:1px solid #cbd5e1}.photo-dot{color:#94a3b8}.employee-detail-header{display:flex;gap:22px;align-items:flex-start}.employee-photo-large{width:150px;height:180px;object-fit:cover;border-radius:14px;border:1px solid #cbd5e1}.verify-card{text-align:center;max-width:560px;margin:40px auto}.status-ok{background:#dcfce7;color:#166534;padding:16px;border-radius:12px;font-weight:900}.status-bad{background:#fee2e2;color:#991b1b;padding:16px;border-radius:12px;font-weight:900}.compliance-section{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:18px;margin:18px 0}.compliance-section h2{margin-top:0}.mqs-subsection{border-left:4px solid #111827;background:#fff;border-radius:12px;padding:14px;margin:14px 0}.inline-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-filter select{max-width:190px}pre{background:#111827;color:#f9fafb;border-radius:12px;padding:14px;overflow:auto}.roster-toolbar,.page-subnav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.roster-layout{display:grid;grid-template-columns:230px 1fr;gap:18px}.staff-palette{position:sticky;top:108px;align-self:start}.staff-chip{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:9px;margin-bottom:8px;cursor:grab}.day-card{background:#fff;border-radius:14px;padding:15px;box-shadow:var(--shadow);margin-bottom:14px}.placement-block{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.placement-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.shift-list{display:grid;gap:8px;margin-top:8px}.shift-card{background:#fff;border:1px solid var(--line);border-left:7px solid #111827;border-radius:12px;padding:10px;display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.shift-card.drag-target{outline:2px dashed #2563eb}.shift-card .meta{color:#64748b;font-size:13px}.mini-actions{display:flex;gap:8px;flex-wrap:wrap}.mini-actions .button,.mini-actions button{font-size:12px;padding:7px 9px}.hours-cards{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}.hours-cards .card{text-align:center}.hours-cards strong{display:block;font-size:26px}.record-block{border-left:4px solid #111827;background:#f8fafc;border-radius:10px;padding:12px;margin:10px 0}.field-row ul{list-style:none;margin:0;padding:0}.field-row li{margin:5px 0}.field-row li label{font-weight:500;display:flex;align-items:center;gap:8px}.client-alert{background:#fff7ed;border-left:5px solid #f97316;padding:12px;border-radius:10px}.task-requirements{display:flex;gap:6px;flex-wrap:wrap}.task-schedule-preview{background:#eef2ff;border-left:5px solid #4f46e5;padding:12px;border-radius:10px}.task-photo{max-width:220px;border-radius:10px;border:1px solid #cbd5e1}.signout-panel{border-left:5px solid #2563eb}.signout-warning{border-left:5px solid var(--danger)}.hidden-field{display:none}
@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.topbar{position:relative;height:auto;padding:18px}.container{padding:20px}.ops-stats,.dashboard-stats,.stats,.grid-2,.hours-cards{grid-template-columns:1fr 1fr}.roster-layout{display:block}.staff-palette{position:static}.form-grid{display:block}}
@media(max-width:700px){.sidebar-nav{grid-template-columns:1fr}.topbar{display:block}.topbar-actions{margin-top:12px}.container{padding:16px}.ops-stats,.dashboard-stats,.stats,.grid-2,.hours-cards,.two-col{display:block}.dashboard-stats .card,.stats .card,.hours-cards .card{margin-bottom:12px}.employee-detail-header{display:block}.employee-photo-large,.employee-photo-placeholder.large{margin-bottom:16px}.shift-card,.placement-head,.page-header{display:block}.actions .button,.actions button{width:100%}}
/* v19 polish */
.brand-logo-wrap{width:104px;min-height:58px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;padding:7px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.brand-logo{display:block;width:92px;height:auto;object-fit:contain}.sidebar-brand{align-items:center}.sidebar-brand strong{font-size:18px}.sidebar-brand small{font-size:12px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 20px}.dashboard-clean{grid-template-columns:repeat(3,minmax(160px,1fr));margin-bottom:18px}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.quick-card{display:block;background:#fff;border:1px solid rgba(226,232,240,.85);box-shadow:var(--shadow);border-radius:16px;padding:16px;text-decoration:none;color:var(--ink)}.quick-card:hover{text-decoration:none;transform:translateY(-1px)}.quick-card strong{display:block;font-size:16px;margin-bottom:5px}.quick-card span{color:var(--muted);font-size:13px}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.card-head h2{margin:0}.form-section{border:1px solid var(--line);background:#fbfdff;border-radius:14px;padding:16px;margin:0 0 18px}.form-section h3{margin:0 0 12px}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;max-width:860px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 22px}.profile-grid p{margin:4px 0}.supervision-note{white-space:pre-wrap}.brand-mark{display:none}
@media(max-width:1100px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-clean{grid-template-columns:repeat(2,minmax(0,1fr))}.three-col{grid-template-columns:1fr 1fr}.brand-logo-wrap{width:88px;min-height:48px}.brand-logo{width:78px}}
@media(max-width:700px){.quick-grid,.dashboard-clean,.three-col,.profile-grid{display:block}.quick-card{margin-bottom:12px}.card-head{display:block}.brand-logo-wrap{width:96px;margin-bottom:8px}.sidebar-brand{display:block}}
/* v20 incident report dynamic form */
.incident-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.incident-guide{border-radius:16px;padding:16px;color:#fff;box-shadow:var(--shadow)}.incident-guide h2{margin:0 0 8px;font-size:18px}.incident-guide p{margin:0;line-height:1.35}.incident-guide.critical{background:#991b1b}.incident-guide.major{background:#b45309}.incident-guide.concern{background:#3f7f2b}.incident-warning{padding:12px;border-radius:12px;margin:0 0 14px;font-weight:800}.incident-warning.cat1{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.incident-warning.cat2{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.incident-warning.significant{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.incident-warning.internal{background:#e0f2fe;color:#075985;border:1px solid #bae6fd}.incident-form-card .form-section{background:#fff}.incident-type-list ul{columns:2;max-width:900px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;max-width:900px}.dynamic-section[hidden],.conditional-field[hidden],#category-warning[hidden]{display:none!important}.incident-form-card textarea{max-width:900px}.incident-form-card input,.incident-form-card select{max-width:420px}.incident-form-card input[type=file]{max-width:680px}
@media(max-width:900px){.incident-guide-grid,.checkbox-grid{grid-template-columns:1fr}.incident-type-list ul{columns:1}}
.detail-list { display: grid; grid-template-columns: 210px 1fr; gap: 10px 18px; margin: 0; }
.detail-list dt { font-weight: 700; color: #475569; }
.detail-list dd { margin: 0; color: #0f172a; }
.report-block { border-top: 1px solid #e5e7eb; padding: 14px 0; }
.report-block:first-of-type { border-top: 0; }
.report-block h3 { margin: 0 0 6px; font-size: 15px; }
.report-block p { margin: 0; white-space: normal; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 760px) { .detail-list { grid-template-columns: 1fr; } .detail-list dt { margin-top: 8px; } }

/* v24 TCI-aligned reporting */
.tci-form-card textarea{max-width:980px}.tci-form-card input,.tci-form-card select{max-width:520px}.tci-form-card .form-section{background:#fff}.report-view h2{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.report-view h2:first-child{border-top:0;padding-top:0}.report-view h3{font-size:15px;margin:14px 0 4px}.subtle-card{background:#f8fafc;box-shadow:none}.wide-card{max-width:1100px}.conditional-field[hidden]{display:none!important}
/* v27 audit, notifications, review workflow, diary, MAR, risk plans and training */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.scroll-card{overflow-x:auto}.compact-form .form-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.notification-dot{background:#dc2626;color:#fff;border-radius:999px;padding:1px 6px;font-size:11px;margin-left:5px}.record-block.row-warning{border-left-color:var(--warn)}.record-block.row-danger{border-left-color:var(--danger)}
@media(max-width:1100px){.grid-3{grid-template-columns:1fr}.compact-form .form-grid{grid-template-columns:1fr}}

/* v28 unified end-of-shift documentation */
.unified-doc-card .form-section{background:#fff}.case-note-panel{border:1px solid var(--line);border-left:5px solid #111827;background:#f8fafc;border-radius:14px;padding:16px;margin:16px 0 20px}.case-note-panel h4{margin:0 0 12px;font-size:18px}.mini-stats{grid-template-columns:repeat(3,minmax(130px,1fr));margin:10px 0}.card.success{border-left:5px solid var(--ok)}.documentation-panel{border-left:5px solid #4f46e5}

/* v34 mobile staff dashboard + production hardening */
.staff-home-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-bottom:18px}.staff-hero{border-left:6px solid #39AD3E}.staff-hero h2{margin-top:0}.mobile-action-list{display:grid;gap:10px}.mobile-action-list a{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#f8fafc;color:var(--ink);text-decoration:none}.mobile-action-list a strong{font-size:28px;min-width:42px;color:#111827}.mobile-action-list a span{font-weight:800;color:#334155}.vertical-actions{display:grid}.vertical-actions .button{width:100%;justify-content:center}.security-note{background:#ecfdf5;border-left:5px solid #39AD3E;border-radius:12px;padding:12px;margin:12px 0}.current-shift-row{border-left:4px solid #39AD3E}.compact-form input[type=checkbox]{width:auto}.compact-form .field-row label{margin-bottom:7px}
@media(max-width:900px){.staff-home-grid{grid-template-columns:1fr}.staff-actions .button,.staff-actions button{width:100%;margin-bottom:8px}.mobile-action-list a{min-height:72px}.mobile-action-list a strong{font-size:34px}.topbar h1{font-size:21px}.sidebar-nav a{min-height:44px}.card{border-radius:14px}.container{padding-bottom:90px}}

/* v35 mobile hidden menu / off-canvas navigation */
.mobile-menu-button{display:none;align-items:center;gap:8px;border-radius:12px;background:#111827;color:#fff;padding:10px 13px;font-weight:900;border:0;box-shadow:0 8px 20px rgba(15,23,42,.16)}
.mobile-backdrop{display:none}.topbar-title{min-width:0}
@media(max-width:900px){
  .app-shell{display:block;min-height:100vh}.main-shell{min-width:0}
  .topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 14px;min-height:70px;height:auto;background:rgba(255,255,255,.96)}
  .topbar-title{flex:1}.topbar-title .eyebrow{font-size:10px}.topbar h1{font-size:19px;margin-top:2px}.topbar-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-top:0}.topbar-actions .user-chip{display:none}.topbar-actions .small-button{padding:8px 10px}.mobile-menu-button{display:inline-flex;flex:0 0 auto}.container{padding:16px 14px 92px}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:60;width:min(82vw,330px);height:100dvh;max-height:100dvh;padding:22px 18px 90px;overflow-y:auto;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 50px rgba(2,6,23,.28);border-right:1px solid rgba(255,255,255,.08)}
  .sidebar.is-open{transform:translateX(0)}.sidebar-nav{display:block}.sidebar-nav a{min-height:46px;font-size:15px;padding:11px 12px}.sidebar-brand{display:flex;margin-bottom:24px}.brand-logo-wrap{width:112px;min-height:64px;margin-bottom:0}.brand-logo{width:100px}.nav-section{margin-top:22px}
  .mobile-backdrop{display:block;position:fixed;inset:0;background:rgba(2,6,23,.55);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:55}.mobile-backdrop.is-open{opacity:1;pointer-events:auto}body.menu-open{overflow:hidden}
  .dashboard-stats,.ops-stats,.stats,.grid-2,.grid-3,.quick-grid,.dashboard-clean,.staff-home-grid,.hours-cards,.two-col,.three-col,.profile-grid{display:grid;grid-template-columns:1fr;gap:12px}.card{margin-bottom:14px}.page-header{display:block}.actions .button,.actions button{width:100%;justify-content:center}.table-scroll{border-radius:12px}.mobile-action-list a{min-height:64px}.staff-home-grid{margin-bottom:12px}
}
@media(min-width:901px){.sidebar{transform:none!important}.mobile-backdrop{display:none!important}}

/* v37 collapsible sidebar + polished placement profile */
.sidebar-nav-accordion{display:block}.sidebar-nav-accordion .nav-section{display:none}.nav-group{border:1px solid rgba(148,163,184,.16);border-radius:14px;margin:10px 0;background:rgba(15,23,42,.35);overflow:hidden}.nav-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px;color:#cbd5e1;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.11em}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary::after{content:'▸';font-size:13px;color:#94a3b8;transition:transform .18s ease}.nav-group[open] summary::after{transform:rotate(90deg)}.nav-group-links{display:grid;gap:4px;padding:0 8px 10px}.nav-group-links a{min-height:36px;border-radius:10px;padding:9px 10px 9px 12px}.nav-group-links a.active{background:rgba(57,173,62,.18);color:#fff;box-shadow:inset 3px 0 0 #39AD3E}.nav-badge{margin-left:auto;background:#39AD3E;color:#062a08;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:900}.placement-hero-card{background:linear-gradient(135deg,#fff 0%,#f8fafc 60%,#eef6ef 100%);border:1px solid rgba(226,232,240,.9);box-shadow:var(--shadow);border-radius:22px;padding:24px;margin:0 0 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.placement-hero-card h1{font-size:34px;margin:4px 0 8px;letter-spacing:-.03em}.placement-hero-card p{margin:0;color:#475569}.placement-meta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.placement-meta-row span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:#334155}.placement-meta-row strong{margin-right:6px;color:#0f172a}.placement-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:330px}.placement-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.mini-stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px}.mini-stat-card strong{display:block;font-size:28px;line-height:1;color:#0f172a}.mini-stat-card span{display:block;margin-top:6px;color:#64748b;font-weight:700}.placement-top-grid{align-items:stretch}.placement-section-card{border-radius:18px}.client-card-list{display:grid;gap:12px}.client-mini-card{display:flex;align-items:center;gap:14px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:14px}.client-avatar{width:46px;height:46px;border-radius:14px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;text-transform:uppercase}.client-mini-main{min-width:0;flex:1}.client-name{font-size:16px;font-weight:900;color:#0f172a}.inline-mini-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px}.inline-mini-actions a{font-size:12px;font-weight:800;color:#15803d}.staff-chip-cloud{display:flex;flex-wrap:wrap;gap:8px}.staff-chip{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:999px;padding:7px 10px;font-weight:800}.placement-note-box{margin-top:16px;background:#f8fafc;border-left:4px solid #39AD3E;border-radius:12px;padding:12px;color:#334155}.timeline-list{display:grid;gap:12px}.timeline-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.timeline-dot{width:12px;height:12px;border-radius:999px;background:#39AD3E;margin-top:4px;box-shadow:0 0 0 5px rgba(57,173,62,.12)}.timeline-item p{margin:6px 0 0;color:#334155}.report-list-cards{display:grid;gap:10px}.report-mini-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-left:4px solid #39AD3E;border-radius:14px;background:#fbfdff;padding:12px}.report-mini-card.incident{border-left-color:#f59e0b}.report-mini-card .mini-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.report-mini-card .mini-actions a{font-size:12px;font-weight:900;background:#eef2f7;color:#334155;border-radius:999px;padding:7px 10px}.empty-state-box{border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;border-radius:14px;padding:16px;font-style:italic}
@media(max-width:1100px){.placement-hero-card{display:block}.placement-hero-actions{justify-content:flex-start;min-width:0;margin-top:16px}.placement-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.nav-group{margin:8px 0}.nav-group summary{padding:13px 12px}.nav-group-links a{min-height:44px}.placement-hero-card{padding:18px;border-radius:18px}.placement-hero-card h1{font-size:28px}.placement-hero-actions .button,.placement-hero-actions button{width:100%;justify-content:center}.placement-stats-grid{grid-template-columns:1fr 1fr}.client-mini-card{align-items:flex-start}.report-mini-card{display:block}.report-mini-card .mini-actions{justify-content:flex-start;margin-top:10px}.placement-meta-row span{width:100%;border-radius:14px}}
@media(max-width:560px){.placement-stats-grid{grid-template-columns:1fr}.client-mini-card{display:block}.client-avatar{margin-bottom:10px}}

/* v38 whole-app polish + reliable submenu buttons */
:root{--accent:#39AD3E;--accent-soft:#eef9ef;--nav:#0f172a;--surface:#f8fafc;--shadow-strong:0 20px 45px rgba(15,23,42,.10)}
body{background:radial-gradient(circle at top right,rgba(57,173,62,.06),transparent 28%),linear-gradient(180deg,#f6f9fc 0%,#eef3f8 100%);font-size:15px}.container{max-width:1260px}.topbar{box-shadow:0 10px 30px rgba(15,23,42,.05)}
.card,.verify-card,.day-card{border-radius:20px;border:1px solid rgba(226,232,240,.95);box-shadow:var(--shadow-strong)}.card h2,.card h3{letter-spacing:-.02em}.page-header{background:linear-gradient(135deg,#fff 0%,#f8fafc 72%,#eef9ef 100%);border:1px solid rgba(226,232,240,.95);border-radius:22px;box-shadow:var(--shadow-strong);padding:22px 24px;margin-bottom:18px}.page-header h1,.page-header h2{margin:0;font-size:30px;letter-spacing:-.035em}.page-header .small,.page-header .page-intro{margin-top:8px}.page-intro{font-size:15px;line-height:1.5;color:#475569}.actions{align-items:center}.button,.primary,button{border-radius:12px;box-shadow:0 8px 18px rgba(15,23,42,.08)}.button.secondary{background:#64748b}.button.ghost{background:#fff;color:#0f172a;border:1px solid var(--line)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.card-head h2,.card-head h3{margin:0}.dashboard-stats .card,.stats .card,.mini-stat-card{position:relative;overflow:hidden}.dashboard-stats .card::after,.stats .card::after,.mini-stat-card::after{content:'';position:absolute;right:-28px;top:-28px;width:86px;height:86px;border-radius:999px;background:rgba(57,173,62,.08)}
table{box-shadow:var(--shadow);border:1px solid var(--line)}th{background:#f1f5f9;color:#475569}td{background:#fff}.table-scroll{box-shadow:var(--shadow);border-radius:18px}.table-scroll table{box-shadow:none;border:0}.compact-table tr:hover td,table tr:hover td{background:#fbfdff}.pill,.badge{letter-spacing:.01em}.record-block{border:1px solid var(--line);border-left:5px solid #111827;border-radius:16px;background:#fbfdff;padding:15px}.record-block:hover{box-shadow:0 12px 24px rgba(15,23,42,.06)}
.sidebar{background:linear-gradient(180deg,#0f172a 0%,#111827 55%,#0b1220 100%)}.sidebar-nav-accordion{display:block}.nav-group{border:1px solid rgba(148,163,184,.15);border-radius:16px;margin:10px 0;background:rgba(15,23,42,.35);overflow:hidden}.nav-group-toggle{width:100%;min-height:44px;border-radius:0;background:transparent;color:#cbd5e1;box-shadow:none;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;text-align:left}.nav-group-toggle:hover{background:rgba(255,255,255,.05);filter:none}.nav-group-toggle::after{content:'▸';font-size:14px;color:#94a3b8;transition:transform .18s ease}.nav-group.is-open .nav-group-toggle::after{transform:rotate(90deg)}.nav-group-links{display:none;gap:4px;padding:0 8px 10px}.nav-group.is-open .nav-group-links{display:grid}.nav-group-links a{min-height:38px;border-radius:12px;padding:10px 12px;color:#e5e7eb}.nav-group-links a.active{background:rgba(57,173,62,.18);color:#fff;box-shadow:inset 3px 0 0 #39AD3E}.nav-group-links a:hover{background:#1f2937}.nav-badge{margin-left:auto;background:#39AD3E;color:#062a08;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:900}
.nav-group summary{display:none!important}.nav-group[open] .nav-group-links{display:grid}.nav-group[open] .nav-group-toggle::after{transform:rotate(90deg)}
.module-hero{background:linear-gradient(135deg,#fff 0%,#f8fafc 62%,#eef9ef 100%);border:1px solid rgba(226,232,240,.95);box-shadow:var(--shadow-strong);border-radius:24px;padding:24px;margin-bottom:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.module-hero h1{font-size:34px;letter-spacing:-.04em;margin:0 0 8px}.module-hero p{color:#475569;margin:0;line-height:1.5}.module-hero-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;min-width:280px}.meta-chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.meta-chip-row span,.meta-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:#334155;font-weight:700}.profile-hero{background:linear-gradient(135deg,#fff 0%,#f8fafc 62%,#eef9ef 100%);border:1px solid rgba(226,232,240,.95);box-shadow:var(--shadow-strong);border-radius:24px;padding:24px;margin-bottom:18px}.profile-hero-main{display:flex;align-items:flex-start;gap:20px}.profile-avatar,.client-avatar-xl{width:88px;height:88px;border-radius:24px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;text-transform:uppercase;box-shadow:0 10px 22px rgba(15,23,42,.18);flex:0 0 auto}.profile-avatar.photo{background:#fff;padding:0;overflow:hidden}.profile-avatar.photo img{width:100%;height:100%;object-fit:cover}.profile-hero h1{font-size:34px;margin:0 0 6px;letter-spacing:-.04em}.profile-hero .subtitle{font-size:16px;color:#475569;margin:0}.profile-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.info-tile{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.info-tile label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:0 0 6px}.info-tile strong,.info-tile span{font-weight:900;color:#0f172a}.info-tile p{margin:0;color:#334155}.entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.entity-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:16px;display:grid;gap:10px}.entity-card:hover{box-shadow:0 18px 36px rgba(15,23,42,.12);transform:translateY(-1px)}.entity-card-top{display:flex;align-items:center;gap:12px}.entity-card-title{font-size:17px;font-weight:900;color:#0f172a}.entity-card-meta{color:#64748b;font-size:13px;line-height:1.4}.entity-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.entity-card-actions a,.entity-card-actions button{font-size:12px;padding:8px 10px}.action-tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.action-tile{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;color:#0f172a;text-decoration:none;box-shadow:var(--shadow)}.action-tile:hover{text-decoration:none;box-shadow:0 18px 36px rgba(15,23,42,.12);transform:translateY(-1px)}.action-tile-icon{width:42px;height:42px;border-radius:14px;background:#ecfdf5;color:#15803d;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900}.action-tile strong{display:block}.action-tile span{display:block;color:#64748b;font-size:12px;margin-top:2px}.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.list-stack{display:grid;gap:12px}.soft-panel{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:16px}.empty-state-box,.empty{border-radius:14px}.field-row input,.field-row select,.field-row textarea{max-width:100%}.form-card{max-width:980px}.compact-form{border-left:5px solid #39AD3E}.inline-filter{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.inline-filter label{margin-bottom:0}.report-view{line-height:1.65}.report-view h2,.report-view h3{border-bottom:1px solid var(--line);padding-bottom:8px}.staff-chip-cloud .staff-chip,.staff-chip{transition:all .12s ease}.staff-chip:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.08)}
.placement-hero-card{border-radius:24px}.placement-section-card{border-radius:20px}.client-mini-card,.report-mini-card,.timeline-item{border-radius:18px}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quick-card{border-radius:18px}.dashboard-clean{grid-template-columns:repeat(5,minmax(0,1fr))}.hero-actions{margin-bottom:18px}
@media(min-width:901px) and (max-width:1100px){.app-shell{display:grid;grid-template-columns:280px 1fr}.sidebar{position:sticky;height:100vh}.sidebar-nav{display:block}.topbar{position:sticky}}
@media(max-width:1180px){.entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-clean{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.module-hero,.profile-hero,.page-header{display:block;padding:18px;border-radius:20px}.module-hero h1,.profile-hero h1,.page-header h1,.page-header h2{font-size:27px}.module-hero-actions{justify-content:flex-start;min-width:0;margin-top:14px}.module-hero-actions .button,.module-hero-actions button{width:100%;justify-content:center}.profile-hero-main{align-items:center}.profile-info-grid,.entity-grid,.action-tile-grid,.section-grid,.dashboard-clean,.quick-grid{grid-template-columns:1fr}.nav-group-toggle{min-height:48px}.nav-group-links a{min-height:46px}.topbar{box-shadow:0 10px 24px rgba(15,23,42,.08)}}
@media(max-width:560px){.profile-hero-main{display:block}.profile-avatar,.client-avatar-xl{margin-bottom:14px}.meta-chip-row span,.meta-chip{width:100%;border-radius:14px}.entity-card-top{align-items:flex-start}.action-tile{align-items:flex-start}}
button.secondary{background:#64748b}.badge.warning{background:#fef3c7;color:#92400e}.pill.danger{background:#fee2e2;color:#991b1b}

/* v40 terminology, standalone dashboard and YP warning/profile polish */
.nav-standalone{display:flex!important;align-items:center;min-height:44px;border-radius:14px;padding:12px;color:#f8fafc!important;background:rgba(57,173,62,.12);border:1px solid rgba(57,173,62,.28);font-weight:900;margin:10px 0 16px;text-decoration:none!important}.nav-standalone:hover{background:rgba(57,173,62,.20);text-decoration:none!important}.nav-standalone.active{background:rgba(57,173,62,.28);box-shadow:inset 4px 0 0 #39AD3E;color:#fff!important}.client-warning-banner{border-radius:20px;padding:16px 18px;margin:0 0 18px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;box-shadow:var(--shadow)}.client-warning-banner.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}.info-tile-alert{border-color:#fecaca;background:#fff7f7}.entity-warning-card{border-color:#f59e0b;box-shadow:0 18px 34px rgba(245,158,11,.12)}.yp-profile-info-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.client-alert.small{padding:10px;border-radius:12px;margin:4px 0}.medication-task-card{border-left-color:#39AD3E}@media(max-width:1180px){.yp-profile-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.yp-profile-info-grid{grid-template-columns:1fr}.nav-standalone{min-height:48px}}

/* Choice Futures portal login and dashboard polish */
.portal-login-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:32px;align-items:stretch;max-width:1120px;margin:5vh auto}.portal-login-brand{border-radius:28px;padding:56px;background:linear-gradient(145deg,#071a33,#0d4f91 68%,#54b82a);color:#fff;box-shadow:0 28px 80px rgba(13,45,80,.22)}.portal-login-brand h1{font-size:clamp(2.5rem,5vw,4.8rem);line-height:.98;margin:18px 0}.portal-login-brand p{font-size:1.15rem;max-width:680px;color:rgba(255,255,255,.86)}.portal-kicker{font-size:.73rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:#65c936}.portal-login-brand .portal-kicker{color:#b9f397}.portal-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:34px}.portal-feature-grid span{padding:14px 16px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.08)}.portal-login-card{padding:38px;align-self:center}.portal-credentials{display:grid;gap:6px;background:#f2f7fb;border:1px solid #dce7f1;border-radius:14px;padding:16px;margin:20px 0}.portal-credentials code{font-size:.94rem}.wide-button{width:100%}.showcase-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;background:linear-gradient(135deg,#071a33,#0e4e8d);color:white;border-radius:24px;padding:34px 38px;margin-bottom:24px;box-shadow:0 20px 55px rgba(13,45,80,.16)}.showcase-hero h1{font-size:clamp(1.8rem,3vw,3.2rem);line-height:1.05;margin:10px 0;max-width:780px}.showcase-hero p{color:rgba(255,255,255,.8);max-width:760px}.showcase-proof{display:grid;grid-template-columns:auto auto;gap:4px 10px;align-items:baseline;min-width:180px;padding:20px;border-radius:18px;background:rgba(255,255,255,.1)}.showcase-proof strong{font-size:2rem;color:#7bd742}.showcase-proof span{font-size:.82rem;color:rgba(255,255,255,.75)}@media(max-width:820px){.portal-login-shell,.showcase-hero{grid-template-columns:1fr}.portal-login-shell{margin:10px}.portal-login-brand{padding:34px}.portal-feature-grid{grid-template-columns:1fr}.showcase-proof{grid-template-columns:repeat(3,auto);justify-content:start}.showcase-proof span{display:none}}


/* v47 Choice Futures sidebar refresh */
:root{--cf-green:#39AD3E;--cf-navy:#0a1425;--cf-navy-2:#111c31}
.app-shell{grid-template-columns:296px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,#08111f 0%,#101a2e 55%,#0b1425 100%);padding:18px 16px 20px;border-right:1px solid rgba(255,255,255,.07);box-shadow:10px 0 35px rgba(2,6,23,.12);scrollbar-width:thin;scrollbar-color:#334155 transparent}
.sidebar-brand{display:grid;gap:8px;margin:0 0 16px;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.brand-logo-wrap{width:100%;min-height:72px;border-radius:15px;padding:10px 14px;background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.brand-logo{width:100%;max-width:178px;max-height:66px;object-fit:contain}
.brand-copy{display:block;text-align:center}.sidebar-brand small{color:#b7c3d4;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.sidebar-search{display:flex!important;align-items:center;gap:10px;min-height:44px!important;margin:0 0 12px!important;padding:10px 12px!important;border:1px solid rgba(148,163,184,.2);border-radius:14px!important;background:rgba(255,255,255,.07);color:#dbe5f2!important;font-weight:750!important}
.sidebar-search:hover{background:rgba(255,255,255,.12)!important;border-color:rgba(57,173,62,.42)}
.sidebar-search-icon{width:27px;height:27px;border-radius:9px;background:rgba(57,173,62,.18);color:#86e889;display:inline-flex;align-items:center;justify-content:center;font-size:19px;line-height:1}
.sidebar-nav-accordion{display:grid;gap:8px}.nav-standalone{position:relative;gap:10px;min-height:48px;margin:0!important;padding:10px 12px!important;border:1px solid rgba(57,173,62,.26);background:linear-gradient(135deg,rgba(57,173,62,.19),rgba(57,173,62,.08));box-shadow:none}
.nav-standalone::before,.nav-group-toggle::before{content:attr(data-code);width:30px;height:30px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);color:#a7f3aa;font-size:9px;font-weight:950;letter-spacing:.06em}
.nav-standalone.active{background:linear-gradient(135deg,rgba(57,173,62,.32),rgba(57,173,62,.14));box-shadow:inset 3px 0 0 var(--cf-green),0 8px 20px rgba(0,0,0,.1)}
.nav-group{margin:0;border:1px solid rgba(148,163,184,.12);border-radius:16px;background:rgba(3,10,22,.23);box-shadow:none;overflow:hidden;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.nav-group.is-open{border-color:rgba(57,173,62,.34);background:rgba(3,10,22,.43);box-shadow:0 9px 24px rgba(0,0,0,.11)}
.nav-group-toggle{min-height:50px;padding:9px 11px;justify-content:flex-start;gap:10px;color:#d8e1ee;font-size:11px;letter-spacing:.09em}
.nav-group-toggle span{flex:1;text-align:left}.nav-group-toggle::after{content:'⌄';width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.045);font-size:15px;transform:rotate(-90deg)}
.nav-group.is-open .nav-group-toggle::after{transform:rotate(0deg);background:rgba(57,173,62,.13);color:#9bf09e}
.nav-group-toggle:hover{background:rgba(255,255,255,.045)}
.nav-group-links{display:grid!important;gap:2px;max-height:0;opacity:0;overflow:hidden;padding:0 8px;transition:max-height .25s ease,opacity .18s ease,padding .2s ease}
.nav-group.is-open .nav-group-links{max-height:520px;opacity:1;padding:0 8px 9px}
.nav-group-links a{position:relative;min-height:39px;margin:0;padding:9px 10px 9px 31px;border-radius:11px;color:#bcc8d8;font-size:13px;font-weight:700}
.nav-group-links a::before{content:'';position:absolute;left:13px;top:50%;width:5px;height:5px;border-radius:50%;background:#526078;transform:translateY(-50%);transition:.16s ease}
.nav-group-links a:hover{background:rgba(255,255,255,.065);color:#fff}.nav-group-links a:hover::before{background:#8ee391}
.nav-group-links a.active{background:linear-gradient(90deg,rgba(57,173,62,.2),rgba(57,173,62,.07));box-shadow:none;color:#fff}
.nav-group-links a.active::before{width:7px;height:7px;background:var(--cf-green);box-shadow:0 0 0 4px rgba(57,173,62,.13)}
.nav-badge{background:#7bdd80;color:#09210a;box-shadow:0 0 0 3px rgba(57,173,62,.11)}
.sidebar-footer{display:flex;align-items:center;gap:10px;margin-top:15px;padding:12px;border-top:1px solid rgba(148,163,184,.13);color:#e5edf7}
.sidebar-user-avatar{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#39AD3E,#208b25);font-weight:950;color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.2)}
.sidebar-footer strong{display:block;font-size:12px}.sidebar-footer small{display:block;color:#8290a5;font-size:10px;margin-top:2px}
@media(max-width:1100px) and (min-width:901px){.app-shell{grid-template-columns:296px minmax(0,1fr)}}
@media(max-width:900px){.sidebar{width:min(86vw,340px);padding:16px 14px 88px}.brand-logo-wrap{min-height:68px}.nav-group-toggle{min-height:52px}.nav-group-links a{min-height:45px;padding-top:12px;padding-bottom:12px}.sidebar-footer{margin-bottom:10px}}


/* v49 roster shift labels */
.badge.shift-type{font-size:11px;padding:4px 8px;margin-left:5px;border:1px solid transparent}
.badge.shift-day{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.badge.shift-support{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.badge.shift-sleepover{background:#111827;color:#fff;border-color:#111827}
.badge.shift-case_coordination{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}
.badge.shift-training{background:#ffedd5;color:#9a3412;border-color:#fed7aa}
.badge.shift-not_funded{background:#fee2e2;color:#991b1b;border-color:#fecaca;font-weight:900}

.button.danger,button.danger{background:#b91c1c;color:#fff}

/* v57 unified interface system ------------------------------------------------ */
:root{
  --cf-green:#39ad3e;
  --cf-green-dark:#278c2d;
  --cf-green-soft:#edf8ee;
  --cf-navy:#0b1628;
  --cf-navy-2:#13223a;
  --ink:#142033;
  --muted:#66758a;
  --line:#dfe7ef;
  --line-strong:#cbd6e2;
  --bg:#f2f6fa;
  --surface:#ffffff;
  --surface-soft:#f7fafc;
  --danger:#c93636;
  --danger-soft:#fff0f0;
  --warn:#d48818;
  --warn-soft:#fff7e8;
  --info:#356fc2;
  --info-soft:#edf4ff;
  --ok:#238a46;
  --ok-soft:#ebf8ef;
  --radius-sm:10px;
  --radius:16px;
  --radius-lg:22px;
  --shadow-sm:0 5px 16px rgba(15,31,51,.06);
  --shadow:0 14px 36px rgba(15,31,51,.08);
  --shadow-lg:0 24px 60px rgba(15,31,51,.12);
}
html{scroll-behavior:smooth}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 92% 0,rgba(57,173,62,.08),transparent 27rem),
    linear-gradient(180deg,#f7fafc 0,#eef4f8 100%);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
::selection{background:rgba(57,173,62,.22)}
:focus-visible{outline:3px solid #166534;outline-offset:2px}
.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;background:#fff;color:var(--cf-navy);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);font-weight:850}.skip-link:focus{top:14px}
a{color:#1e66c5;text-underline-offset:3px}
a:hover{color:#174f99;text-decoration:none}
h1,h2,h3,h4{color:var(--ink);line-height:1.18;letter-spacing:-.025em}
h1{font-size:clamp(1.75rem,2.2vw,2.3rem)}h2{font-size:1.28rem}h3{font-size:1.05rem}h4{font-size:.95rem}
p{margin-top:0}.muted,.small,.page-intro{color:var(--muted)}

.app-shell{grid-template-columns:296px minmax(0,1fr)}
.main-shell{min-width:0;min-height:100vh}
.sidebar{z-index:50}
.topbar{
  min-height:82px;
  height:auto;
  padding:15px clamp(20px,3vw,42px);
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(203,214,226,.78);
  box-shadow:0 8px 28px rgba(15,31,51,.055);
}
.topbar-title .eyebrow{color:#556377;font-size:10px;letter-spacing:.17em}
.topbar-title h1{font-size:clamp(1.25rem,1.8vw,1.72rem);margin:2px 0 0}
.topbar-actions{gap:9px}
.topbar-notification,.topbar-user{
  min-height:43px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:14px;
  padding:7px 11px;
  color:#435268;
  font-weight:800;
  box-shadow:var(--shadow-sm);
  text-decoration:none;
}
.topbar-notification:hover{border-color:#b8c8d8;background:#f9fbfd;color:var(--ink)}
.topbar-notification svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.topbar-count{min-width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--danger);color:#fff;font-size:10px;padding:0 6px}
.topbar-avatar{width:29px;height:29px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cf-green),var(--cf-green-dark));color:#fff;font-size:12px;font-weight:950}
.topbar-user-copy{display:grid;line-height:1.05}.topbar-user-copy strong{font-size:12px}.topbar-user-copy small{font-size:9px;color:#8290a3;margin-top:4px;text-transform:uppercase;letter-spacing:.07em}
.container{max-width:1480px;width:100%;padding:30px clamp(20px,3vw,42px) 72px}
.page-content{width:100%;animation:page-in .18s ease-out}
@keyframes page-in{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:none}}

.page-header,.module-hero,.profile-hero,.placement-hero-card,.hero-card{
  border:1px solid rgba(207,220,232,.94);
  background:linear-gradient(135deg,#fff 0%,#f8fbfd 67%,#edf8ee 100%);
  box-shadow:var(--shadow);
}
.page-header{
  padding:20px 22px;
  border-radius:var(--radius-lg);
  align-items:flex-start;
  margin:0 0 20px;
}
.page-header h1,.page-header h2{font-size:clamp(1.55rem,2vw,2rem);margin:0}
.page-header p:last-child{margin-bottom:0}
.page-intro{max-width:920px;font-size:.96rem;margin:-7px 0 20px;line-height:1.55}
.section-kicker,.portal-kicker{
  display:block;
  color:var(--cf-green-dark);
  font-size:10px;
  font-weight:950;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:5px;
}

.card,.verify-card,.day-card,.form-section,.soft-panel,.compliance-section,.case-note-panel{
  border:1px solid rgba(211,222,233,.95);
  background:rgba(255,255,255,.97);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.card{padding:22px;margin-bottom:18px}
.card h1:first-child,.card h2:first-child,.card h3:first-child{margin-top:0}
.card > :last-child{margin-bottom:0}
.card-head,.section-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin:0 0 15px;
  padding:0 0 13px;
  border-bottom:1px solid var(--line);
}
.card-head h2,.card-head h3,.section-heading-row h2,.section-heading-row h3{margin:0}
.section-heading-row p{margin:5px 0 0;color:var(--muted);font-size:13px}
.card.warning{border-left:5px solid var(--warn)}.card.danger{border-left:5px solid var(--danger)}.card.success{border-left:5px solid var(--ok)}
.subtle-card,.soft-panel{background:var(--surface-soft);box-shadow:none}
.grid-2,.grid-3,.quick-grid,.dashboard-stats,.stats,.hours-cards,.entity-grid,.action-tile-grid,.section-grid{gap:16px}
.stats .card,.dashboard-stats .card,.mini-stat-card{
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:19px;
}
.stats strong,.dashboard-stats strong,.mini-stat-card strong{font-size:clamp(1.8rem,3vw,2.35rem)}
.stats span,.dashboard-stats span,.mini-stat-card span{font-weight:750;color:#4f5e71}
.quick-card,.action-tile,.entity-card,.info-tile{
  border:1px solid var(--line);
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.quick-card:hover,.action-tile:hover,.entity-card:hover{transform:translateY(-2px);border-color:#b9c9d9;box-shadow:var(--shadow)}

.actions,.hero-actions,.mini-actions,.module-hero-actions,.placement-hero-actions{gap:9px}
.button,.btn,.primary,button{
  min-height:40px;
  border-radius:11px;
  padding:9px 14px;
  background:linear-gradient(135deg,var(--cf-navy-2),var(--cf-navy));
  color:#fff;
  border:1px solid rgba(11,22,40,.9);
  box-shadow:0 7px 15px rgba(11,22,40,.12);
  font-weight:850;
  letter-spacing:-.005em;
  transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;
}
.button:hover,.btn:hover,button:hover{color:#fff;filter:none;transform:translateY(-1px);box-shadow:0 10px 20px rgba(11,22,40,.16)}
.button.secondary,button.secondary,.btn.secondary{background:#687b93;border-color:#687b93}
.button.ghost,button.ghost,.btn.ghost{background:#fff;color:#34445a;border:1px solid var(--line-strong);box-shadow:var(--shadow-sm)}
.button.ghost:hover,button.ghost:hover,.btn.ghost:hover{color:var(--ink);background:#f8fafc;border-color:#b7c5d5}
.button.danger,button.danger{background:#b92d35;border-color:#b92d35}
.small-button{min-height:34px;padding:7px 11px;font-size:12px}
.actions{margin:14px 0 18px}
.inline button,.inline .button{vertical-align:middle}

.message{border-radius:14px;padding:13px 15px;border:1px solid #bfd7f5;background:var(--info-soft);color:#24558d;box-shadow:var(--shadow-sm)}
.message.success{background:var(--ok-soft);border-color:#bfe5c9;color:#176936}.message.warning{background:var(--warn-soft);border-color:#f1d49f;color:#8a5c12}.message.error{background:var(--danger-soft);border-color:#efbaba;color:#9f2f36}

.form-ui{max-width:100%}
.form-ui > p,.field-row{margin:0 0 17px}
label{font-size:13px;color:#33445a;margin-bottom:7px}
input,select,textarea{
  width:100%;
  max-width:100%;
  min-height:42px;
  border:1px solid var(--line-strong);
  border-radius:11px;
  padding:10px 12px;
  color:var(--ink);
  background:#fff;
  box-shadow:inset 0 1px 2px rgba(15,31,51,.035);
  transition:border-color .14s ease,box-shadow .14s ease;
}
textarea{min-height:115px;resize:vertical;line-height:1.5}
input:hover,select:hover,textarea:hover{border-color:#aebdce}
input:focus,select:focus,textarea:focus{outline:2px solid #166534;outline-offset:1px;border-color:var(--cf-green);box-shadow:0 0 0 4px rgba(57,173,62,.13)}
input[type=checkbox],input[type=radio]{min-height:auto;accent-color:var(--cf-green)}
input[type=file]{min-height:auto;padding:9px;border:1px dashed var(--line-strong);background:#f8fafc}
.helptext{display:block;color:#718095;font-size:12px;line-height:1.45;margin-top:5px}
.errorlist{background:var(--danger-soft);border:1px solid #f0c4c7;border-radius:10px;padding:9px 12px 9px 28px;color:#a13138;font-size:12px}
.form-section{padding:18px;background:#fbfdff;box-shadow:none}
.form-section h2,.form-section h3{padding-bottom:10px;border-bottom:1px solid var(--line)}
.checkbox-row{min-height:40px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#f9fbfd}
.checkbox-list{display:grid;gap:7px}.checkbox-list label,.field-row li label{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f9fbfd}
.inline-filter,.inline-form{padding:4px 0}.inline-filter input,.inline-filter select,.inline-form input,.inline-form select{width:auto;min-width:170px}

.table-scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm);scrollbar-width:thin}
.auto-table-scroll{margin:4px 0 18px}
.card > .table-scroll:last-child{margin-bottom:0}
table{width:100%;border:0;border-collapse:separate;border-spacing:0;box-shadow:none;border-radius:0;background:#fff}
th,td{padding:12px 13px;border-bottom:1px solid #e7edf3;vertical-align:middle}
th{position:relative;background:#f4f7fa;color:#526176;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr{transition:background .12s ease}tbody tr:hover td{background:#f9fbfd}
td a{font-weight:750}
.compact-table th,.compact-table td{padding:10px 11px}
.row-danger td{background:#fff5f5}.row-warning td{background:#fffbf1}.row-ok td{background:#f3fbf5}

.pill,.badge,.status-chip,.shift-type-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  min-height:24px;
  padding:4px 9px;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.015em;
}
.empty,.muted{color:var(--muted)}
.empty-state-box,.polished-empty-state{
  border:1px dashed #c8d5e1;
  background:#f7fafc;
  color:var(--muted);
  border-radius:15px;
  padding:17px;
}
.polished-empty-state{display:flex;align-items:center;gap:13px;font-style:normal}
.polished-empty-state > span{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#edf3f7;color:#526479;font-size:12px;font-weight:950;flex:0 0 38px}
.polished-empty-state strong{display:block;color:#35465c}.polished-empty-state p{margin:3px 0 0;font-size:12px}
.clean-list{list-style:none;padding:0;margin:0}.clean-list li{padding:9px 0;border-bottom:1px solid var(--line)}.clean-list li:last-child{border-bottom:0}
.record-block{background:#fbfdff;border-color:var(--line);box-shadow:none}
.detail-list{gap:11px 22px}.detail-list dt{color:#607086}.detail-list dd{color:var(--ink)}

/* Staff dashboard */
.staff-dashboard{display:grid;gap:18px}
.staff-dashboard-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:4px 2px 0}
.staff-dashboard-intro h2{font-size:clamp(1.65rem,2.6vw,2.35rem);margin:0 0 7px}.staff-dashboard-intro p{margin:0;color:var(--muted)}
.today-chip{width:104px;min-height:76px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:10px 12px;line-height:1}
.today-chip span{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:900}.today-chip strong{grid-row:1/3;grid-column:2;font-size:32px;text-align:right}.today-chip small{font-size:10px;color:var(--muted);font-weight:800;white-space:nowrap}
.staff-dashboard-top{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(380px,.72fr);gap:18px}
.active-shift-card,.staff-action-panel{border-radius:24px;box-shadow:var(--shadow-lg);overflow:hidden}
.active-shift-card{position:relative;padding:24px;color:#fff;background:linear-gradient(135deg,#0b1729 0%,#183354 68%,#246247 125%);border:1px solid rgba(255,255,255,.08)}
.active-shift-card::after{content:'';position:absolute;width:250px;height:250px;border-radius:50%;right:-100px;top:-110px;background:rgba(57,173,62,.19);filter:blur(1px)}
.active-shift-card.no-shift{background:linear-gradient(135deg,#314158,#52657d)}
.active-shift-card h3,.active-shift-card p{color:#fff}.active-shift-card__header,.active-shift-card__main,.shift-progress-strip,.active-shift-actions,.no-shift-state{position:relative;z-index:1}
.active-shift-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.active-shift-card .section-kicker{color:#8ee793}.status-chip{margin-top:3px}.status-live{background:rgba(57,173,62,.18);border:1px solid rgba(151,239,155,.28);color:#b5f4b8}.status-neutral{background:rgba(255,255,255,.11);color:#e8eef6}.shift-type-badge{background:#fff;color:#17253a;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.active-shift-card__main{display:flex;align-items:center;gap:17px;margin:25px 0 21px}.shift-location-mark{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cf-green),#267f35);font-size:26px;font-weight:950;box-shadow:0 12px 28px rgba(0,0,0,.25);flex:0 0 64px}.active-shift-card__main h3{font-size:clamp(1.55rem,2.4vw,2.25rem);margin:0 0 5px}.active-shift-card__main p{margin:6px 0 0;color:#c8d4e2;font-size:12px}.shift-time-display{font-size:1.05rem;font-weight:900}.shift-time-display span{font-size:.75rem;color:#9fb0c4;font-weight:700;margin:0 5px}
.shift-progress-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.12);border-radius:15px;overflow:hidden}.shift-progress-strip div{padding:12px 13px;background:rgba(6,18,34,.22)}.shift-progress-strip span{display:block;color:#aebed0;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:850}.shift-progress-strip strong{display:block;margin-top:4px;color:#fff;font-size:13px}
.active-shift-actions{margin:18px 0 0}.active-shift-actions .button,.active-shift-actions button{background:#fff;color:#142236;border-color:#fff}.active-shift-actions .button.secondary{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.22)}
.no-shift-state{text-align:center;padding:35px 10px 10px}.no-shift-icon{width:66px;height:66px;border-radius:22px;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;background:rgba(255,255,255,.12);font-size:25px}.no-shift-state h3{font-size:1.55rem;margin:0 0 6px}.no-shift-state p{color:#d8e2ed}.no-shift-state .actions{justify-content:center}
.staff-action-panel{padding:22px;background:#fff;border:1px solid var(--line)}.staff-action-panel .section-heading-row{padding-bottom:12px}.staff-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.staff-metric-card{position:relative;min-height:137px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8fafc;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;transition:.15s ease}.staff-metric-card:hover{transform:translateY(-2px);border-color:#b8c8d7;box-shadow:var(--shadow-sm)}.staff-metric-card.needs-attention{background:var(--warn-soft);border-color:#efd39c}.staff-metric-card .metric-icon{width:29px;height:29px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#e9f5ea;color:var(--cf-green-dark);font-size:10px;font-weight:950}.staff-metric-card.needs-attention .metric-icon{background:#ffe8bc;color:#9a6212}.staff-metric-card strong{position:absolute;right:14px;top:11px;font-size:26px;letter-spacing:-.05em}.staff-metric-card > span:not(.metric-icon){font-size:12px;font-weight:850;margin-top:auto}.staff-metric-card small{display:block;color:var(--muted);font-size:10px;margin-top:4px}
.staff-dashboard-middle,.staff-dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-section-card{margin:0;padding:21px}.dashboard-list{display:grid}.dashboard-list-row{min-height:61px;display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.dashboard-list-row:last-child{border-bottom:0}.dashboard-list-row[href]:hover{background:#f8fafc;margin:0 -7px;padding-left:11px;padding-right:11px;border-radius:12px}.dashboard-list-main{display:grid;min-width:0;flex:1}.dashboard-list-main strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-list-main small{color:var(--muted);font-size:11px;margin-top:3px}.list-status-dot{width:12px;height:12px;border:3px solid #a8b7c6;border-radius:50%;flex:0 0 12px}.list-status-dot.required{border-color:var(--warn);box-shadow:0 0 0 5px rgba(212,136,24,.11)}.date-box{width:42px;height:42px;border-radius:12px;background:#edf3f7;display:grid;align-content:center;text-align:center;line-height:1;flex:0 0 42px}.date-box strong{font-size:16px}.date-box small{font-size:9px;color:var(--muted);text-transform:uppercase;margin-top:3px}.row-arrow{color:#8a9aab;font-size:23px;line-height:1}.weekday-label{font-size:10px;font-weight:900;color:#69798e;text-transform:uppercase;background:#f1f5f8;border-radius:999px;padding:5px 8px}
.young-people-section{margin:0}.young-person-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.young-person-card{position:relative;min-height:92px;display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:16px;background:#f9fbfd;color:var(--ink);text-decoration:none;transition:.15s ease}.young-person-card:hover{background:#fff;transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:#b9c8d7}.young-person-card.has-warning{border-left:4px solid var(--warn);padding-left:10px}.young-person-card.risk-high{border-left-color:var(--danger);background:#fff8f8}.young-person-avatar{width:45px;height:45px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#16283f,#26466c);color:#fff;font-size:18px;font-weight:950;flex:0 0 45px;box-shadow:0 7px 14px rgba(20,40,63,.14)}.young-person-card__main{min-width:0;display:grid;flex:1}.young-person-card__main strong{font-size:14px}.young-person-card__main > small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;margin-top:3px}.young-person-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.young-person-tags em{font-style:normal;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.035em;background:#edf2f6;color:#5d6d81;border-radius:999px;padding:3px 6px}.young-person-card.has-warning .young-person-tags em:first-child{background:#fff0cf;color:#916013}.young-person-card.risk-high .young-person-tags em:first-child{background:#ffe2e2;color:#a53238}
.medication-prompt-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.medication-prompt-card{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:15px;background:#f9fbfd}.medication-icon{width:39px;height:39px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#e9f5ea;color:var(--cf-green-dark);font-size:11px;font-weight:950;flex:0 0 39px}.medication-prompt-card div{display:grid}.medication-prompt-card strong{font-size:12px}.medication-prompt-card span:not(.medication-icon){font-size:11px;color:#405169}.medication-prompt-card small{font-size:9px;color:var(--muted)}
.staff-quick-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.staff-quick-link-grid a{min-height:72px;display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:15px;background:#f9fbfd;color:var(--ink);text-decoration:none}.staff-quick-link-grid a:hover{background:#fff;border-color:#b8c7d6;box-shadow:var(--shadow-sm)}.staff-quick-link-grid a > span{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#eaf4eb;color:var(--cf-green-dark);font-size:10px;font-weight:950;flex:0 0 38px}.staff-quick-link-grid a div{display:grid;min-width:0;flex:1}.staff-quick-link-grid strong{font-size:12px}.staff-quick-link-grid small{font-size:9px;color:var(--muted)}.staff-quick-link-grid em{font-style:normal;font-size:20px;color:#8b9aac}

/* Shared specialised modules */
.roster-toolbar,.page-subnav{border-radius:16px}.day-card{padding:18px}.placement-block{border-color:var(--line)}.shift-card{border-radius:14px;box-shadow:var(--shadow-sm)}.staff-palette{top:101px}.staff-chip{box-shadow:none}
.client-warning-banner,.client-alert,.incident-warning{box-shadow:var(--shadow-sm)}
.profile-hero,.placement-hero-card,.module-hero{padding:23px}.profile-avatar,.client-avatar-xl{box-shadow:0 10px 22px rgba(15,31,51,.18)}
.login-help{color:var(--muted)}
.portal-login-card{border-radius:24px}.portal-login-brand{border-radius:26px}

@media(max-width:1220px){
  .young-person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .staff-dashboard-top{grid-template-columns:1fr}
  .staff-metric-grid{grid-template-columns:repeat(4,1fr)}
  .staff-metric-card{min-height:120px}
}
@media(max-width:1100px) and (min-width:901px){
  .container{padding-left:26px;padding-right:26px}
}
@media(max-width:900px){
  .topbar{padding:11px 14px;min-height:68px}.topbar-action-label,.topbar-user-copy{display:none}.topbar-notification,.topbar-user{padding:7px;min-height:39px}.topbar-user{border:0;background:transparent;box-shadow:none}.topbar-actions{gap:5px}.container{padding:18px 14px 88px}
  .page-header,.module-hero,.profile-hero,.placement-hero-card{padding:17px;border-radius:18px}.page-header .actions{margin-top:13px}
  .card{padding:17px;border-radius:18px}.card-head,.section-heading-row{gap:10px}
  .staff-dashboard-intro{align-items:flex-start}.today-chip{width:91px;min-height:70px;flex:0 0 91px}.today-chip strong{font-size:27px}
  .active-shift-card,.staff-action-panel{border-radius:20px;padding:18px}.staff-metric-grid{grid-template-columns:1fr 1fr}.staff-dashboard-middle,.staff-dashboard-bottom{grid-template-columns:1fr}.medication-prompt-list,.staff-quick-link-grid{grid-template-columns:1fr 1fr}
  .form-grid,.compact-form .form-grid{grid-template-columns:1fr}.two-col,.three-col{grid-template-columns:1fr}
  .actions .button,.actions button{width:auto}
}
@media(max-width:640px){
  body{font-size:14px}.topbar-title h1{font-size:17px}.topbar-actions form{display:none}
  .staff-dashboard-intro h2{font-size:1.55rem}.staff-dashboard-intro p{font-size:12px}.today-chip{display:none}
  .active-shift-card__main{align-items:flex-start}.shift-location-mark{width:52px;height:52px;border-radius:16px;flex-basis:52px}.active-shift-card__main h3{font-size:1.5rem}.shift-progress-strip{grid-template-columns:1fr}.shift-progress-strip div{display:flex;justify-content:space-between;align-items:center}.shift-progress-strip strong{margin:0}
  .active-shift-actions,.no-shift-state .actions{display:grid}.active-shift-actions .button,.active-shift-actions button,.no-shift-state .button{width:100%}
  .staff-metric-grid{grid-template-columns:1fr 1fr}.staff-metric-card{min-height:112px}.staff-metric-card strong{font-size:23px}.young-person-grid{grid-template-columns:1fr}.medication-prompt-list,.staff-quick-link-grid{grid-template-columns:1fr}
  .section-heading-row{display:block}.section-heading-row .button{margin-top:10px}.dashboard-list-row{padding-top:11px;padding-bottom:11px}
  .page-header{display:block}.page-header .actions{display:grid}.page-header .actions .button,.page-header .actions button{width:100%}
  .actions:not(.mini-actions):not(.inline-mini-actions){display:grid}.actions:not(.mini-actions):not(.inline-mini-actions) .button,.actions:not(.mini-actions):not(.inline-mini-actions) button{width:100%}
  .inline-filter,.inline-form{display:grid}.inline-filter input,.inline-filter select,.inline-form input,.inline-form select{width:100%;min-width:0}
  .detail-list{grid-template-columns:1fr}.stats,.dashboard-stats,.hours-cards{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.assigned-name{font-weight:850;color:var(--ink)}.small-actions{display:flex;gap:7px;flex-wrap:wrap}.placement-hero-main{min-width:0;flex:1}.employee-form{max-width:1120px}.completed-fields,.enrolled-fields,.mqs-fields,.standard-fields{display:block}
@media(max-width:800px){.grid.two{grid-template-columns:1fr}}

/* Focused public/authentication layouts */
.auth-page .app-shell,.public-verify-page .app-shell{display:block;min-height:100vh}
.auth-page .sidebar,.public-verify-page .sidebar,.auth-page .mobile-backdrop,.public-verify-page .mobile-backdrop{display:none!important}
.auth-page .topbar{display:none}
.auth-page .container{max-width:1240px;padding:32px 24px;min-height:100vh;display:flex;align-items:center;justify-content:center}
.auth-page .page-content{width:100%}
.public-verify-page .main-shell{min-height:100vh}.public-verify-page .topbar{position:relative}.public-verify-page .container{max-width:760px}
@media(max-width:700px){.auth-page .container{padding:14px}.portal-login-shell{margin:0}.portal-login-brand{display:none}.portal-login-card{padding:24px}}

/* v58 admin command centre + placement meal plans -------------------------- */
.status-pill{
  display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:5px 9px;
  border-radius:999px;border:1px solid var(--line);background:#f2f5f8;color:#59697d;
  font-size:10px;font-weight:950;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap
}
.status-pill.success{background:var(--ok-soft);border-color:#bfe3c9;color:#1f7040}
.status-pill.warning{background:var(--warn-soft);border-color:#efd29b;color:#8b5b10}
.status-pill.danger{background:var(--danger-soft);border-color:#efc0c3;color:#a23138}
.status-pill.neutral{background:#eff3f7;border-color:#d9e1e9;color:#5c6c80}
.inline-status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px;color:var(--muted);font-size:12px}
.week-navigation{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--line);background:rgba(255,255,255,.88);border-radius:15px;box-shadow:var(--shadow-sm)}
.week-navigation>div{display:grid;text-align:center;min-width:160px}.week-navigation small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.week-navigation strong{font-size:12px;margin-top:3px}.week-navigation.compact{box-shadow:none;border:0;padding:0;background:transparent}
.card-actions-split{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:15px}
.note-block{padding:13px;border:1px solid var(--line);background:#f8fafc;border-radius:13px;margin-bottom:10px}.note-block strong{display:block;margin-bottom:5px}.note-block p{margin:0;color:#536378;font-size:13px}
.polished-empty-state.compact{padding:12px}.polished-empty-state.compact>span{width:32px;height:32px;flex-basis:32px;border-radius:10px}.polished-empty-state.compact p{font-size:11px}

/* Meal plan list */
.meal-plan-hero{align-items:center}.meal-plan-placement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.meal-plan-placement-card{position:relative;display:flex;flex-direction:column;min-height:285px;padding:19px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.meal-plan-placement-card::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:#b8c5d3}.meal-plan-placement-card.is-published::before{background:var(--cf-green)}.meal-plan-placement-card.is-draft::before{background:var(--warn)}
.meal-plan-placement-card__top{display:flex;align-items:flex-start;gap:12px}.meal-plan-placement-card__top h2{font-size:18px;margin:0 0 4px}.meal-plan-placement-card__top p{font-size:11px;color:var(--muted);margin:0}.meal-plan-placement-card__top .status-pill{margin-left:auto}
.meal-plan-house-icon{width:45px;height:45px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#14283f,#2a557a);color:#fff;font-size:10px;font-weight:950;flex:0 0 45px}
.meal-plan-card-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0 8px}.meal-plan-card-summary div{padding:11px 8px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;text-align:center}.meal-plan-card-summary strong{display:block;font-size:18px}.meal-plan-card-summary span{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.meal-plan-empty-copy{margin:24px 0 auto;padding:16px;border:1px dashed #c9d5df;background:#f8fafc;border-radius:14px}.meal-plan-empty-copy strong{display:block;font-size:13px}.meal-plan-empty-copy p{font-size:11px;color:var(--muted);margin:5px 0 0}.meal-plan-placement-card>.button{margin-top:auto}

/* Meal plan display */
.dietary-alert-panel{border-left:5px solid var(--danger)}.dietary-alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dietary-alert-grid>div{padding:12px;border:1px solid #efc5c8;background:#fff7f7;border-radius:13px}.dietary-alert-grid strong{display:block;color:#9e3037}.dietary-alert-grid p{margin:4px 0 0;font-size:12px;color:#704348}
.meal-plan-display-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:10px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.meal-plan-day-display{border:1px solid var(--line);border-radius:16px;background:#fbfdff;overflow:hidden;min-width:180px}.meal-plan-day-display.is-today{border-color:#8dcc91;box-shadow:0 0 0 3px rgba(57,173,62,.10)}.meal-plan-day-display header{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:#edf3f7;border-bottom:1px solid var(--line)}.meal-plan-day-display.is-today header{background:#eaf7eb}.meal-plan-day-display header span{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}.meal-plan-day-display header strong{font-size:11px;color:var(--muted)}
.meal-plan-day-meals{display:grid}.meal-display-row{padding:11px 12px;border-bottom:1px solid var(--line)}.meal-display-row:last-child{border-bottom:0}.meal-display-row>span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:950;color:var(--cf-green-dark)}.meal-display-row p{font-size:12px;margin:4px 0 0;line-height:1.42}.meal-display-row.is-empty{background:#f8fafc}.meal-display-row.is-empty>span,.meal-display-row.is-empty p{color:#8c99a8}

/* Meal plan editor */
.copy-plan-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 17px;margin-bottom:18px;border:1px solid #c4ddc7;background:#f0f9f1;border-radius:16px}.copy-plan-banner div{display:grid}.copy-plan-banner strong{font-size:13px}.copy-plan-banner span{font-size:11px;color:var(--muted);margin-top:3px}
.meal-plan-participant-field>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.meal-plan-participant-field>div>div label{display:flex;align-items:center;gap:8px;margin:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;font-weight:800}.meal-plan-participant-field input{width:auto}
.meal-plan-editor-grid{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:11px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.meal-plan-day-editor{min-width:190px;border:1px solid var(--line);border-radius:16px;background:#fbfdff;overflow:hidden}.meal-plan-day-editor header{padding:12px;background:linear-gradient(135deg,#13243a,#234665);color:#fff}.meal-plan-day-editor header div{display:flex;justify-content:space-between;align-items:center}.meal-plan-day-editor header span,.meal-plan-day-editor header strong{color:#fff}.meal-plan-day-editor header span{font-size:12px;font-weight:950}.meal-plan-day-editor header strong{font-size:10px;color:#cbd9e6}.meal-plan-edit-field{padding:9px 10px;border-bottom:1px solid var(--line)}.meal-plan-edit-field:last-child{border-bottom:0}.meal-plan-edit-field label{display:block;margin-bottom:5px;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:950;color:#596b80}.meal-plan-input{min-height:72px!important;padding:9px!important;font-size:12px!important;border-radius:9px!important}.meal-plan-grid-editor-card{overflow:hidden}
.sticky-form-actions{position:sticky;bottom:14px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:13px 16px;border:1px solid #cbd7e2;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-radius:16px;box-shadow:0 18px 45px rgba(15,31,51,.18)}.sticky-form-actions>div:first-child{display:grid}.sticky-form-actions>div:first-child strong{font-size:13px}.sticky-form-actions>div:first-child span{font-size:10px;color:var(--muted)}.sticky-form-actions .actions{display:flex;margin:0}

/* Placement/detail dashboard meal cards */
.placement-meal-plan-summary{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(0,1.6fr) auto;align-items:center;gap:15px}.placement-meal-status{display:grid;gap:5px}.placement-meal-status .status-pill{justify-self:start}.placement-meal-status small{font-size:10px;color:var(--muted)}.placement-today-meals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.placement-today-meals>div{padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.placement-today-meals span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:950;color:var(--cf-green-dark)}.placement-today-meals p{font-size:11px;margin:4px 0 0}
.staff-meal-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.staff-meal-plan-card{border:1px solid var(--line);border-radius:17px;background:#f9fbfd;padding:14px}.staff-meal-plan-card.is-current-placement{border-color:#92ce97;background:#f3fbf4;box-shadow:0 0 0 3px rgba(57,173,62,.08)}.staff-meal-plan-card header{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.staff-meal-plan-card h3{margin:0;font-size:16px}.staff-meal-plan-card header a{font-size:11px;font-weight:850}.staff-dietary-alert{margin:10px 0;padding:8px 10px;border:1px solid #efc4c7;background:#fff2f2;border-radius:10px;color:#9d333a;font-size:10px}.today-meal-list{display:grid}.today-meal-list>div{display:grid;grid-template-columns:105px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.today-meal-list>div:last-child{border-bottom:0}.today-meal-list span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:950;color:var(--cf-green-dark)}.today-meal-list p{margin:0;font-size:12px}.today-meal-list .meal-plan-no-meals{display:flex;flex-direction:column;gap:2px}.meal-plan-no-meals strong{font-size:12px}.meal-plan-no-meals span{font-size:10px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:600}.meal-plan-empty-dashboard{display:grid;grid-template-columns:auto 1fr auto}

/* Admin command centre */
.admin-dashboard{display:grid;gap:18px}.admin-dashboard-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,.5fr);gap:24px;align-items:center;padding:28px;border:1px solid rgba(18,39,62,.88);border-radius:25px;background:linear-gradient(135deg,#0b1728 0%,#17324f 67%,#236243 125%);color:#fff;box-shadow:var(--shadow-lg);overflow:hidden}.admin-dashboard-hero::after{content:'';position:absolute;right:-100px;top:-140px;width:330px;height:330px;border-radius:50%;background:rgba(57,173,62,.20)}.admin-dashboard-hero__copy,.admin-dashboard-hero__service{position:relative;z-index:1}.admin-dashboard-hero .section-kicker{color:#9ae49d}.admin-dashboard-hero h1{font-size:clamp(2rem,3vw,3rem);color:#fff;margin:0 0 8px}.admin-dashboard-hero p{color:#c6d3e1;margin:0;max-width:760px}.admin-hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.admin-dashboard-hero .button{background:#fff;color:#14243a;border-color:#fff}.admin-dashboard-hero .button.secondary{background:var(--cf-green);color:#fff;border-color:var(--cf-green)}.admin-dashboard-hero .button.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.22);box-shadow:none}.admin-dashboard-hero__service{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.admin-dashboard-hero__service div{padding:16px 10px;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(5,19,34,.22);text-align:center}.admin-dashboard-hero__service strong{display:block;color:#fff;font-size:28px}.admin-dashboard-hero__service span{display:block;color:#c0cede;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;margin-top:3px}
.admin-pulse-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}.admin-pulse-card{min-height:145px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:space-between;transition:.15s ease}.admin-pulse-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#b9c8d7}.pulse-icon{align-self:flex-start;min-width:34px;height:27px;padding:0 8px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#edf2f6;color:#5c6d81;font-size:8px;font-weight:950}.admin-pulse-card strong{display:block;font-size:26px;letter-spacing:-.045em}.admin-pulse-card div>span{display:block;font-size:11px;font-weight:850;line-height:1.25}.admin-pulse-card small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.admin-pulse-card.tone-live{background:linear-gradient(145deg,#102238,#1b3c5d);color:#fff;border-color:#183653}.admin-pulse-card.tone-live .pulse-icon{background:rgba(57,173,62,.2);color:#a7edaa}.admin-pulse-card.tone-live strong,.admin-pulse-card.tone-live span{color:#fff}.admin-pulse-card.tone-live small{color:#b9c7d6}.admin-pulse-card.tone-danger{border-left:4px solid var(--danger)}.admin-pulse-card.tone-warning{border-left:4px solid var(--warn)}.admin-pulse-card.tone-ok{border-left:4px solid var(--ok)}
.admin-command-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:18px}.admin-command-grid--balanced{grid-template-columns:1fr 1fr}.admin-command-grid>.card{margin:0}.admin-roster-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.admin-roster-summary div{padding:11px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}.admin-roster-summary strong{display:block;font-size:18px}.admin-roster-summary span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:900;margin-top:2px}.admin-shift-status{width:12px;height:12px;border-radius:50%;background:#a8b5c3;box-shadow:0 0 0 5px rgba(168,181,195,.12);flex:0 0 12px}.admin-shift-status.status-live{background:var(--ok);box-shadow:0 0 0 5px rgba(35,138,70,.12)}.admin-shift-status.status-complete{background:#718196}.admin-shift-status.status-pending{background:var(--warn);box-shadow:0 0 0 5px rgba(212,136,24,.12)}
.admin-priority-list{display:grid}.admin-priority-row{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:11px;padding:12px 5px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.admin-priority-row:last-child{border-bottom:0}.admin-priority-row>span{font-size:9px;text-transform:uppercase;letter-spacing:.055em;font-weight:950;color:#728197}.admin-priority-row div{display:grid}.admin-priority-row strong{font-size:19px}.admin-priority-row small{color:var(--muted);font-size:10px}.admin-priority-row em{font-style:normal;font-size:21px;color:#8d9bab}.admin-priority-row.has-action strong{color:#a86412}.admin-priority-row:hover{background:#f8fafc;margin:0 -8px;padding-left:13px;padding-right:13px;border-radius:11px}
.meal-plan-progress-block{padding:15px;border:1px solid var(--line);border-radius:15px;background:#f8fafc}.meal-plan-progress-copy{display:flex;justify-content:space-between;align-items:baseline}.meal-plan-progress-copy strong{font-size:24px}.meal-plan-progress-copy span{font-size:10px;color:var(--muted);font-weight:850}.progress-track{height:9px;border-radius:999px;background:#dfe7ee;overflow:hidden;margin-top:10px}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cf-green-dark),var(--cf-green))}.meal-plan-missing-list{display:grid;margin-top:14px}.meal-plan-missing-list>strong{font-size:11px;margin-bottom:5px}.meal-plan-missing-list a{display:flex;justify-content:space-between;gap:10px;padding:9px 3px;border-bottom:1px solid var(--line);font-size:11px;text-decoration:none}.meal-plan-missing-list a:last-child{border-bottom:0}.meal-plan-missing-list a span{font-weight:800;color:var(--ink)}.meal-plan-missing-list a em{font-style:normal;color:#376da7}
.admin-placement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.admin-placement-card{display:grid;gap:13px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f9fbfd;color:var(--ink);text-decoration:none;transition:.15s ease}.admin-placement-card:hover{background:#fff;border-color:#b8c8d7;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.admin-placement-card__head{display:flex;align-items:center;gap:10px}.admin-placement-card__head>span{width:39px;height:39px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#162b45,#2c5478);color:#fff;font-weight:950;flex:0 0 39px}.admin-placement-card__head div{display:grid;min-width:0}.admin-placement-card__head strong{font-size:13px}.admin-placement-card__head small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-placement-card__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.admin-placement-card__stats div{padding:7px;border-radius:9px;background:#fff;border:1px solid var(--line);text-align:center}.admin-placement-card__stats strong{display:block;font-size:15px}.admin-placement-card__stats span{display:block;font-size:8px;text-transform:uppercase;color:var(--muted);font-weight:900}
.care-exception-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.care-exception-grid>div{padding:13px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.care-exception-grid h3{font-size:12px;margin:0 0 8px}.care-exception-grid a{display:grid;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none}.care-exception-grid a:last-child{border-bottom:0}.care-exception-grid a strong{font-size:11px}.care-exception-grid a span{font-size:9px;color:var(--muted)}.care-exception-grid p{font-size:11px;color:var(--muted);margin:0}
.activity-feed{display:grid}.activity-feed-row{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}.activity-feed-row:last-child{border-bottom:0}.activity-mark{width:11px;height:11px;border-radius:50%;background:#8493a4;margin-top:4px;box-shadow:0 0 0 5px rgba(132,147,164,.10);flex:0 0 11px}.activity-mark.action-create,.activity-mark.action-approve{background:var(--ok)}.activity-mark.action-delete,.activity-mark.action-reject{background:var(--danger)}.activity-mark.action-update{background:var(--info)}.activity-feed-row div{display:grid}.activity-feed-row strong{font-size:11px}.activity-feed-row p{font-size:10px;color:#4f6075;margin:1px 0}.activity-feed-row small{font-size:8px;color:var(--muted)}
.admin-shortcut-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.admin-shortcut-grid a{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f9fbfd;color:var(--ink);text-decoration:none}.admin-shortcut-grid a:hover{background:#fff;border-color:#b8c7d6;box-shadow:var(--shadow-sm)}.admin-shortcut-grid a>span{width:37px;height:37px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#e9f5ea;color:var(--cf-green-dark);font-size:9px;font-weight:950;flex:0 0 37px}.admin-shortcut-grid a div{display:grid}.admin-shortcut-grid strong{font-size:11px}.admin-shortcut-grid small{font-size:8px;color:var(--muted)}

@media(max-width:1320px){
  .admin-pulse-grid{grid-template-columns:repeat(3,1fr)}.admin-placement-grid{grid-template-columns:repeat(2,1fr)}.admin-shortcut-grid{grid-template-columns:repeat(3,1fr)}
  .meal-plan-placement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1050px){
  .admin-dashboard-hero{grid-template-columns:1fr}.admin-command-grid,.admin-command-grid--balanced{grid-template-columns:1fr}.admin-dashboard-hero__service{max-width:520px}
  .meal-plan-participant-field>div{grid-template-columns:repeat(2,1fr)}.placement-meal-plan-summary{grid-template-columns:1fr}.placement-today-meals{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .admin-dashboard-hero{padding:21px;border-radius:20px}.admin-dashboard-hero__service{grid-template-columns:repeat(3,1fr)}.admin-dashboard-hero__service strong{font-size:22px}.admin-hero-actions{display:grid}.admin-hero-actions .button{width:100%}
  .admin-pulse-grid{grid-template-columns:1fr 1fr}.admin-roster-summary{grid-template-columns:1fr 1fr}.admin-placement-grid,.admin-shortcut-grid,.meal-plan-placement-grid{grid-template-columns:1fr}.care-exception-grid{grid-template-columns:1fr}
  .week-navigation{width:100%;justify-content:space-between}.week-navigation>div{min-width:0}.meal-plan-hero{display:grid}.meal-plan-hero .week-navigation{margin-top:15px}
  .meal-plan-participant-field>div{grid-template-columns:1fr}.staff-meal-plan-grid{grid-template-columns:1fr}.placement-today-meals{grid-template-columns:1fr 1fr}.dietary-alert-grid{grid-template-columns:1fr}
  .sticky-form-actions{position:static;display:grid}.sticky-form-actions .actions{display:grid}.sticky-form-actions .button,.sticky-form-actions button{width:100%}
  .meal-plan-empty-dashboard{display:flex;align-items:flex-start;flex-wrap:wrap}.meal-plan-empty-dashboard .button{width:100%}
}
@media(max-width:480px){
  .admin-pulse-grid{grid-template-columns:1fr}.admin-dashboard-hero__service{grid-template-columns:1fr}.admin-priority-row{grid-template-columns:68px 1fr auto}.placement-today-meals{grid-template-columns:1fr}.today-meal-list>div{grid-template-columns:90px 1fr}
  .week-navigation{display:grid;grid-template-columns:1fr 1fr}.week-navigation>div{grid-column:1/-1;grid-row:1}.week-navigation a{width:100%}
}

/* v59 dinner-only placement planning -------------------------------------- */
.dinner-plan-day-editor .dinner-plan-edit-field{padding:12px}
.dinner-plan-day-editor .dinner-plan-input{min-height:118px!important;resize:vertical}
.dinner-plan-display-grid .meal-plan-day-display{min-width:170px}
.dinner-plan-display-grid .meal-display-row{min-height:118px}
.placement-today-dinner{grid-template-columns:minmax(0,1fr)}
.placement-today-dinner>div{min-height:74px;display:flex;flex-direction:column;justify-content:center}
.dinner-only-dashboard-list>div{grid-template-columns:82px minmax(0,1fr)}
@media(max-width:760px){
  .dinner-plan-editor-grid,.dinner-plan-display-grid{grid-template-columns:repeat(7,minmax(165px,1fr))}
  .dinner-plan-day-editor{min-width:165px}
  .placement-today-dinner{grid-template-columns:1fr}
}

/* v60 authentication portal and verified audit trail ------------------------ */
.auth-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 8% 8%,rgba(57,173,62,.15),transparent 26rem),
    radial-gradient(circle at 94% 100%,rgba(48,111,194,.12),transparent 30rem),
    #edf3f7;
}
.auth-page .container{max-width:none;padding:0;display:block;min-height:100vh}
.auth-page .page-content{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:clamp(18px,4vw,54px)}
.auth-page .message{position:fixed;z-index:10;top:18px;left:50%;transform:translateX(-50%);width:min(720px,calc(100vw - 28px));box-shadow:var(--shadow)}
.auth-layout{
  width:min(1240px,100%);
  min-height:min(790px,calc(100vh - 80px));
  display:grid;
  grid-template-columns:minmax(0,1.14fr) minmax(390px,.86fr);
  overflow:hidden;
  border:1px solid rgba(203,214,226,.85);
  border-radius:30px;
  background:#fff;
  box-shadow:0 35px 95px rgba(18,40,68,.18);
}
.auth-brand-panel{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:clamp(34px,5vw,68px);
  color:#fff;
  background:
    linear-gradient(145deg,rgba(7,18,34,.96),rgba(14,48,83,.95) 58%,rgba(28,105,53,.9)),
    radial-gradient(circle at 20% 20%,rgba(255,255,255,.14),transparent 25rem);
  overflow:hidden;
}
.auth-brand-panel::before,.auth-brand-panel::after{content:"";position:absolute;z-index:-1;border-radius:999px;border:1px solid rgba(255,255,255,.09)}
.auth-brand-panel::before{width:520px;height:520px;right:-245px;top:-190px;box-shadow:0 0 0 74px rgba(255,255,255,.025),0 0 0 148px rgba(255,255,255,.018)}
.auth-brand-panel::after{width:360px;height:360px;left:-210px;bottom:-220px;box-shadow:0 0 0 62px rgba(57,173,62,.055)}
.auth-brand-top{display:flex;align-items:center;justify-content:space-between;gap:18px}
.auth-logo-frame{width:190px;min-height:74px;display:flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:18px;background:#fff;box-shadow:0 15px 35px rgba(0,0,0,.24)}
.auth-logo-frame img{display:block;max-width:100%;max-height:56px;object-fit:contain}
.auth-secure-chip,.auth-step-chip,.audit-readonly-chip{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:8px 11px;border-radius:999px;font-size:.72rem;font-weight:850;letter-spacing:.035em}
.auth-secure-chip{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#dce9f7}
.auth-secure-chip span{color:#72df77;font-size:.78rem}
.auth-brand-copy{margin:auto 0;padding:48px 0 36px;max-width:680px}
.auth-kicker{display:block;color:#5fcf66;font-size:.72rem;line-height:1.2;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.auth-brand-copy h1{max-width:650px;margin:17px 0 20px;color:#fff;font-size:clamp(2.55rem,4.7vw,5rem);line-height:.98;letter-spacing:-.055em}
.auth-brand-copy p{max-width:650px;margin:0;color:rgba(237,244,251,.78);font-size:clamp(1rem,1.45vw,1.19rem);line-height:1.7}
.auth-benefit-list{display:grid;gap:11px;margin-top:auto}
.auth-benefit{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.11);border-radius:16px;background:rgba(255,255,255,.055);backdrop-filter:blur(6px)}
.auth-benefit-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:rgba(57,173,62,.17);color:#97ee9b;font-size:.7rem;font-weight:950;letter-spacing:.08em}
.auth-benefit strong,.auth-benefit small{display:block}.auth-benefit strong{color:#fff;font-size:.9rem}.auth-benefit small{margin-top:2px;color:#afc0d3;font-size:.78rem;line-height:1.4}
.auth-brand-footer{display:flex;justify-content:space-between;gap:15px;margin-top:25px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);color:#8fa4ba;font-size:.7rem;font-weight:750}
.auth-form-panel{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(34px,5vw,72px);background:linear-gradient(180deg,#fff,#fbfdff)}
.auth-mobile-logo{display:none}.auth-step-chip{margin-bottom:24px;background:var(--cf-green-soft);color:var(--cf-green-dark);border:1px solid #cde8cf}
.auth-card-heading{margin-bottom:30px}.auth-card-heading h2{margin:10px 0 10px;font-size:clamp(2rem,3.5vw,3rem);letter-spacing:-.045em}.auth-card-heading p{max-width:470px;margin:0;color:var(--muted);font-size:.98rem}
.auth-form{display:grid;gap:20px}.auth-field{display:grid;gap:8px}.auth-field label,.auth-label-row label{color:#27364a;font-size:.84rem;font-weight:850}.auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.auth-label-row a{font-size:.8rem;font-weight:800}
.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;z-index:1;left:14px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#edf3f8;color:#506379;font-size:.65rem;font-weight:950;letter-spacing:.04em;pointer-events:none}.auth-lock-icon{letter-spacing:.1em}
.auth-form-panel input:not([type=checkbox]):not([type=radio]),.auth-form-panel select,.auth-form-panel textarea{width:100%;min-height:54px;padding:13px 15px;border:1px solid #cdd9e4;border-radius:14px;background:#fff;color:var(--ink);font:inherit;box-shadow:0 1px 0 rgba(10,22,40,.02);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.auth-input-wrap input:not([type=checkbox]):not([type=radio]){padding-left:58px;padding-right:72px}
.auth-form-panel input:focus,.auth-form-panel select:focus,.auth-form-panel textarea:focus{outline:none;border-color:#55b95a;box-shadow:0 0 0 4px rgba(57,173,62,.13)}
.auth-form-panel input::placeholder{color:#9aa8b7}.password-toggle{position:absolute;right:10px;min-height:36px;padding:7px 9px;border:0;border-radius:9px;background:#eef3f7;color:#42546a;font-size:.72rem;font-weight:850;cursor:pointer}.password-toggle:hover{background:#e2eaf1;color:#18273b}
.auth-field.has-error input{border-color:#da6565;background:#fffafa}.field-error{display:block;color:#b42c2c;font-size:.78rem;font-weight:750}.field-help{display:block;color:var(--muted);font-size:.76rem;line-height:1.45}.field-help ul{margin:6px 0 0;padding-left:18px}
.auth-error-summary{display:grid;gap:3px;margin:-8px 0 22px;padding:14px 16px;border:1px solid #f1bcbc;border-radius:14px;background:#fff2f2;color:#992828;font-size:.82rem}.auth-error-summary strong{font-size:.88rem}
.auth-submit{min-height:55px;width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:4px;padding:13px 18px;border-radius:14px;font-size:.92rem;box-shadow:0 13px 26px rgba(39,140,45,.2)}
.auth-support-row{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;margin-top:26px;padding:15px;border:1px solid #dce6ee;border-radius:15px;background:#f6f9fb}.auth-support-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#e7f5e8;color:#2c8f31;font-weight:950}.auth-support-row strong,.auth-support-row small{display:block}.auth-support-row strong{font-size:.8rem}.auth-support-row small{margin-top:3px;color:var(--muted);font-size:.74rem;line-height:1.45}
.auth-legal{margin:20px 0 0;color:#8593a3;font-size:.7rem;line-height:1.55;text-align:center}.auth-back-link{display:inline-flex;margin-top:22px;font-size:.82rem;font-weight:850}.auth-layout-secondary .auth-brand-copy h1{font-size:clamp(2.4rem,4.2vw,4.4rem)}

.audit-page-header,.audit-detail-header{align-items:flex-end}.audit-readonly-chip{border:1px solid #d7e2eb;background:#f5f8fb;color:#52657a}.audit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.audit-summary-card{display:grid;gap:2px;padding:20px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow-sm)}.audit-summary-card span{color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.audit-summary-card strong{font-size:2rem;line-height:1.1;color:var(--ink)}.audit-summary-card small{color:#8190a0;font-size:.73rem}.audit-summary-card.attention{border-color:#efc6c6;background:linear-gradient(145deg,#fff,#fff5f5)}.audit-summary-card.attention strong{color:#b83434}
.audit-filter-card{margin-bottom:20px}.audit-filter-grid{display:grid;grid-template-columns:minmax(240px,1.8fr) repeat(4,minmax(130px,1fr));gap:13px;align-items:end}.audit-filter-grid label{display:grid;gap:6px;color:#4d6075;font-size:.74rem;font-weight:850}.audit-filter-grid input,.audit-filter-grid select{min-height:43px}.audit-filter-grid label:nth-last-of-type(2),.audit-filter-grid label:nth-last-of-type(1){grid-column:span 1}.audit-filter-button{min-height:43px}.audit-table-card{padding-bottom:12px}.audit-table{min-width:1040px}.audit-table th{white-space:nowrap}.audit-table td{vertical-align:middle}.audit-table td strong,.audit-cell-sub{display:block}.audit-table td strong{font-size:.82rem}.audit-cell-sub{max-width:300px;margin-top:3px;color:#79889a;font-size:.7rem;line-height:1.35}.audit-time span{display:block;color:var(--muted);font-size:.72rem}.audit-table code{display:inline-block;padding:4px 6px;border-radius:7px;background:#eef3f7;color:#3c5066;font-size:.68rem}.audit-badge-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.audit-action,.audit-outcome{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border-radius:999px;font-size:.66rem;font-weight:900;white-space:nowrap}.audit-action{background:#e9eff5;color:#3f5268}.action-create,.action-approve{background:#e7f6e9;color:#247d2a}.action-update{background:#eaf2ff;color:#2d62a9}.action-delete,.action-reject{background:#ffebeb;color:#a42f2f}.action-login,.action-logout,.action-security{background:#efeafd;color:#6541a6}.action-download{background:#fff2df;color:#9a6017}.audit-outcome{border:1px solid transparent}.outcome-success{background:#ebf8ef;color:#247844;border-color:#cdebd6}.outcome-info{background:#edf4ff;color:#3567a9;border-color:#d6e4fa}.outcome-denied,.outcome-failure{background:#fff0f0;color:#a83636;border-color:#efcece}.pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:14px;padding-top:15px;border-top:1px solid var(--line)}.pagination>*:last-child{justify-self:end}.pagination>span:nth-child(2){color:var(--muted);font-size:.78rem}
.audit-detail-header{display:flex;justify-content:space-between;gap:22px}.audit-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:18px}.audit-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.detail-list>div{padding:14px 0;border-bottom:1px solid var(--line)}.detail-list .full{grid-column:1/-1}.detail-list dt{color:#7b8999;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.detail-list dd{margin:5px 0 0;color:#243348;font-size:.86rem;font-weight:700}.detail-list dd small{display:block;margin-top:4px;color:var(--muted);font-weight:500}.audit-request-list{display:grid}.audit-request-list code{white-space:normal;word-break:break-all}.audit-user-agent{word-break:break-word;font-size:.76rem!important;font-weight:500!important}.audit-change-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}.audit-change-list span{padding:5px 8px;border-radius:8px;background:#eef3f7;color:#3f5369;font-size:.72rem;font-weight:800}.audit-related-card{margin-top:18px}.audit-related-list{display:grid;gap:8px}.audit-related-list a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none}.audit-related-list a:hover{border-color:#b8d7bb;background:#f8fcf8}.audit-related-list strong,.audit-related-list small{display:block}.audit-related-list small{color:var(--muted);font-size:.72rem}.audit-related-list time{color:var(--muted);font-size:.72rem}.back-link{display:inline-flex;margin-bottom:14px;font-size:.78rem;font-weight:850}

@media(max-width:1050px){.auth-layout{grid-template-columns:1fr 430px}.auth-brand-panel{padding:38px}.auth-brand-copy h1{font-size:3.4rem}.auth-benefit-list{gap:8px}.audit-summary-grid{grid-template-columns:repeat(2,1fr)}.audit-filter-grid{grid-template-columns:repeat(3,1fr)}.audit-search-field{grid-column:span 2}.audit-detail-grid{grid-template-columns:1fr}}
@media(max-width:820px){.auth-page .page-content{padding:0}.auth-layout{display:block;min-height:100vh;border:0;border-radius:0;box-shadow:none}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh;padding:34px 24px}.auth-mobile-logo{display:flex;width:180px;min-height:70px;align-items:center;justify-content:center;margin:0 auto 44px;padding:10px 14px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow-sm)}.auth-mobile-logo img{max-width:100%;max-height:50px}.auth-card-heading h2{font-size:2.35rem}.audit-filter-grid{grid-template-columns:repeat(2,1fr)}.audit-search-field{grid-column:1/-1}.audit-detail-header{align-items:flex-start;flex-direction:column}.audit-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.auth-form-panel{padding:28px 18px}.auth-mobile-logo{margin-bottom:36px}.auth-card-heading{margin-bottom:25px}.auth-card-heading h2{font-size:2.05rem}.auth-support-row{grid-template-columns:34px 1fr}.audit-summary-grid{grid-template-columns:1fr 1fr;gap:9px}.audit-summary-card{padding:15px}.audit-summary-card strong{font-size:1.55rem}.audit-filter-grid{grid-template-columns:1fr}.audit-search-field{grid-column:auto}.audit-filter-button{width:100%}.audit-detail-list{grid-template-columns:1fr}.audit-related-list a{grid-template-columns:auto 1fr}.audit-related-list time{display:none}.pagination{grid-template-columns:1fr 1fr}.pagination>span:nth-child(2){grid-column:1/-1;grid-row:1;text-align:center}.pagination>*:last-child{justify-self:end}}

/* v61 view-only administrator access --------------------------------------- */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.readonly-banner{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:14px 16px;border:1px solid #cbd8ee;border-radius:16px;background:linear-gradient(135deg,#f4f7ff,#edf2fb);box-shadow:var(--shadow-sm);color:#304766}
.readonly-banner-icon{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:36px;padding:0 10px;border-radius:10px;background:#425f91;color:#fff;font-size:.68rem;font-weight:950;letter-spacing:.1em}
.readonly-banner div{display:grid;gap:2px}.readonly-banner strong{font-size:.88rem}.readonly-banner span:last-child{color:#61738d;font-size:.77rem;line-height:1.45}
.pill.readonly{background:#e9eef9;color:#435f91;border:1px solid #cdd8ec}
.access-level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.access-level-card{display:grid;grid-template-columns:48px 1fr;gap:13px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow-sm)}
.access-level-card.view-only{border-color:#cdd8ec;background:linear-gradient(145deg,#fff,#f6f8fd)}
.access-level-card.admin{border-color:#cfe6d2;background:linear-gradient(145deg,#fff,#f5fbf5)}
.access-level-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:#eef3f7;color:#40536a;font-size:.8rem;font-weight:950}
.access-level-card.view-only .access-level-icon{background:#e6ebf7;color:#425f91}.access-level-card.admin .access-level-icon{background:#e3f4e5;color:#287d2d}
.access-level-card strong,.access-level-card p{display:block}.access-level-card strong{font-size:.9rem}.access-level-card p{margin:5px 0 0;color:var(--muted);font-size:.76rem;line-height:1.5}
.access-table{min-width:920px}.access-level-form{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.access-level-form select{min-width:188px;min-height:39px}
body.view-only-mode form[method="post"]:not(.readonly-allowed){display:none!important}
body.view-only-mode .readonly-write-action{display:none!important}
.readonly-denied-card{max-width:760px;margin:50px auto;padding:clamp(26px,5vw,48px);text-align:left}
.readonly-denied-card h1{margin:8px 0 12px;font-size:clamp(1.8rem,4vw,2.8rem)}.readonly-denied-card p{max-width:620px;color:var(--muted);font-size:1rem;line-height:1.65}
@media(max-width:980px){.access-level-grid{grid-template-columns:1fr}}
@media(max-width:640px){.readonly-banner{align-items:flex-start}.readonly-banner-icon{min-width:48px}.access-level-card{grid-template-columns:42px 1fr;padding:15px}.access-level-icon{width:38px;height:38px}}

.readonly-inline-note{display:flex;align-items:center;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid #d5deee;border-radius:12px;background:#f6f8fc;color:#5d6f88;font-size:.78rem;line-height:1.45}

/* v62 sleeper-shift placement checks and weekly occupancy ------------------ */
.sleepover-workflow-alert{display:flex;align-items:flex-start;gap:14px;margin:14px 0 20px;padding:16px;border:1px solid #c8d7eb;border-radius:16px;background:linear-gradient(135deg,#f7faff,#eef4fb);color:#314861}
.sleepover-workflow-alert__icon{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:38px;border-radius:10px;background:#26384d;color:#fff;font-size:.68rem;font-weight:950;letter-spacing:.08em}
.sleepover-workflow-alert strong{display:block;font-size:.9rem}.sleepover-workflow-alert p{margin:4px 0 0;color:#5c7087;font-size:.78rem;line-height:1.5}
.sleepover-client-check{margin:0 0 18px;padding:15px;border:1px solid #cbd9e8;border-left:5px solid #314b68;border-radius:14px;background:#f7faff}
.sleepover-client-check__heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.sleepover-client-check__heading span{font-size:.78rem;font-weight:950;text-transform:uppercase;letter-spacing:.07em;color:#334d69}.sleepover-client-check__heading small{color:#73869a;font-size:.7rem;font-weight:800}
.sleepover-client-check select{max-width:430px;background:#fff}
.sleepover-occupancy-card{overflow:hidden}.sleepover-occupancy-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.sleepover-occupancy-metrics>div{display:grid;gap:3px;padding:17px;border:1px solid var(--line);border-radius:15px;background:#f8fafc}.sleepover-occupancy-metrics>div.primary{border-color:#bdd7c1;background:linear-gradient(145deg,#f9fff9,#edf8ee)}
.sleepover-occupancy-metrics strong{font-size:1.8rem;line-height:1;color:#223247}.sleepover-occupancy-metrics span{font-size:.78rem;font-weight:900;color:#3f5268}.sleepover-occupancy-metrics small{font-size:.69rem;color:#8190a0}
.sleepover-placement-summary{display:grid;gap:8px}.sleepover-placement-summary>div{display:grid;grid-template-columns:42px minmax(0,1fr) 90px 70px;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}
.sleepover-placement-summary__mark{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:#e8eef5;color:#324b67;font-weight:950}.sleepover-placement-summary__name strong,.sleepover-placement-summary__name small,.sleepover-placement-summary>div>span strong,.sleepover-placement-summary>div>span small{display:block}.sleepover-placement-summary__name small,.sleepover-placement-summary>div>span small{margin-top:2px;color:var(--muted);font-size:.69rem}.sleepover-placement-summary>div>span:not(.sleepover-placement-summary__mark):not(.sleepover-placement-summary__name){text-align:right}.warning-state{border-color:#efd59d;background:#fffaf0}
@media(max-width:900px){.sleepover-occupancy-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.sleepover-workflow-alert{align-items:flex-start}.sleepover-client-check__heading{align-items:flex-start;flex-direction:column}.sleepover-occupancy-metrics{grid-template-columns:1fr 1fr;gap:8px}.sleepover-occupancy-metrics>div{padding:13px}.sleepover-placement-summary>div{grid-template-columns:38px minmax(0,1fr) 66px}.sleepover-placement-summary>div>span:last-child{grid-column:3}.sleepover-placement-summary__mark{width:34px;height:34px}}

/* v63 roster builder, availability, staff SMS and compliance edit improvements */
.roster-layout-v63{grid-template-columns:minmax(350px,410px) minmax(0,1fr);align-items:start}
.staff-palette-v63{top:101px;padding:16px;max-height:calc(100vh - 122px);display:flex;flex-direction:column;overflow:hidden;margin-bottom:0}
.staff-palette-heading,.roster-day-heading,.staff-palette-tools,.selected-shift-panel,.staff-sms-tools{display:flex;gap:10px;align-items:center;justify-content:space-between}
.staff-palette-heading h2,.roster-day-heading h3{margin:2px 0 0}
.staff-palette-tools{display:grid;grid-template-columns:1fr;align-items:stretch;border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:10px;margin:10px 0}
.staff-palette-tools input[type=search]{max-width:none}
.roster-staff-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.roster-staff-search-row .button{min-height:40px}
.staff-roster-card[hidden],#roster-staff-no-results[hidden]{display:none!important}
.roster-shift-card.is-own-shift{background:#f5fbf6;box-shadow:0 0 0 2px rgba(57,173,62,.12),var(--shadow-sm)}
.compact-check{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;color:#334155;font-weight:800}
.selected-shift-panel{display:grid;grid-template-columns:1fr;align-items:start;background:linear-gradient(135deg,#111827,#263a56);color:#fff;border-radius:14px;padding:12px;margin-bottom:10px}
.selected-shift-panel strong{font-size:13px}.selected-shift-panel span{font-size:11px;color:#dbe4ee;line-height:1.4}.selected-shift-panel .mini-actions{margin-top:3px}
.staff-availability-key{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;font-size:10px;color:#64748b;margin:0 0 9px}.staff-availability-key span{display:flex;align-items:center;gap:5px}.availability-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#dbe5ef}.availability-dot.available{background:#3aaa52}.availability-dot.partial{background:#f4aa2d}.availability-dot.unavailable{background:#d54a4a}.availability-dot.rostered{background:#315fbe;box-shadow:0 0 0 2px #dbe7ff}
.staff-palette-scroll{overflow-y:auto;overscroll-behavior:contain;padding-right:4px;min-height:190px;scrollbar-width:thin}
.staff-roster-card{display:grid;grid-template-columns:auto 38px minmax(0,1fr) auto;align-items:start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:8px;cursor:pointer;transition:.14s ease;position:relative}
.staff-roster-card:hover{border-color:#9fb0c4;box-shadow:0 8px 20px rgba(15,23,42,.08);transform:translateY(-1px)}
.staff-roster-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.staff-roster-card.is-exact-unavailable{background:#fff8f8;border-color:#f1c6c6}.staff-roster-card.is-exact-unavailable .staff-roster-main{opacity:.78}
.staff-roster-card.outside-placement-team{border-style:dashed}
.staff-select-checkbox{margin-top:12px}.staff-roster-avatar,.staff-picker-avatar,.staff-sms-avatar{width:38px;height:38px;border-radius:12px;background:#eaf6eb;color:#1f7c35;display:flex;align-items:center;justify-content:center;font-weight:950;flex:0 0 38px}
.staff-roster-main{min-width:0}.staff-roster-main strong{display:block;color:#142238;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-roster-main small{display:block;color:#6b7b8d;font-size:10px;margin-top:2px;line-height:1.3}.staff-exact-pill{font-size:9px;white-space:nowrap;padding:4px 6px}
.staff-availability-strip{display:grid;grid-template-columns:repeat(14,minmax(14px,1fr));gap:2px;margin-top:7px}.availability-day{height:29px;border-radius:5px;background:#e6f5e9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-style:normal;border:1px solid transparent;position:relative}.availability-day b{font-size:7px;line-height:1;color:#277a38}.availability-day em{font-size:8px;line-height:1.2;color:#43604a;font-style:normal}.availability-day.partial{background:#fff1d5}.availability-day.partial b,.availability-day.partial em{color:#8d5b00}.availability-day.unavailable{background:#fee4e4}.availability-day.unavailable b,.availability-day.unavailable em{color:#9c2929}.availability-day.rostered{border-color:#315fbe;box-shadow:inset 0 -3px 0 #315fbe}
.roster-days{min-width:0}.roster-day-card{scroll-margin-top:102px}.roster-day-heading{border-bottom:1px solid var(--line);padding-bottom:11px}.placement-head>div{display:grid;gap:3px}.roster-shift-card{align-items:center}.roster-shift-card.is-selected-shift{outline:3px solid rgba(37,99,235,.24);border-color:#6a91df}.roster-shift-main{min-width:0;flex:1}.roster-shift-time{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.roster-shift-note{margin-top:5px;color:#475569}.badge.follow-on{background:#dbeafe;color:#1e4b8f}.follow-on-shift{background:linear-gradient(90deg,#eff6ff,#fff);border-style:dashed}.follow-on-shift .roster-shift-time strong{color:#1e4b8f}.roster-shift-actions{justify-content:flex-end}

.shift-builder-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(370px,.95fr);gap:18px;align-items:start}.shift-builder-layout>.card{margin:0}.shift-builder-details{min-width:0}.shift-staff-picker{position:sticky;top:101px;max-height:calc(100vh - 122px);overflow:hidden;display:flex;flex-direction:column}.shift-preset-panel{margin:5px 0 16px}.shift-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.shift-preset{display:grid;gap:3px;text-align:left;justify-items:start;background:#f8fafc;color:#142238;border:1px solid var(--line);box-shadow:none;padding:11px}.shift-preset strong{font-size:12px}.shift-preset span{font-size:10px;color:#64748b}.shift-preset:hover,.shift-preset.is-active{background:#eef6ff;border-color:#7ca0df;color:#163f7a}.shift-preset.not-funded{background:#fff4f4}.shift-preset.not-funded:hover,.shift-preset.not-funded.is-active{border-color:#d97878;color:#8c2929}
.staff-picker-controls{display:grid;gap:8px;background:#f8fafc;border:1px solid var(--line);padding:10px;border-radius:14px;margin:8px 0}.shift-staff-options{overflow-y:auto;overscroll-behavior:contain;min-height:220px;padding-right:4px}.shift-staff-option{display:grid;grid-template-columns:auto 40px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:8px;background:#fff;cursor:pointer}.shift-staff-option:hover{border-color:#91a4b8}.shift-staff-option:has(input:checked){border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.shift-staff-option.is-unavailable{background:#fff8f8}.shift-staff-option.is-unavailable .staff-picker-copy{opacity:.7}.shift-staff-option.is-unknown{background:#f8fafc}.staff-picker-copy{min-width:0}.staff-picker-copy strong{display:block;font-size:13px}.staff-picker-copy small{display:block;font-size:10px;color:#64748b;line-height:1.35;margin-top:3px}.unassigned-option{background:#f8fafc}.availability-loading{position:absolute;inset:auto 16px 16px;background:#111827;color:#fff;border-radius:10px;padding:10px;text-align:center;font-weight:800;font-size:11px}

.staff-sms-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;align-items:start}.staff-sms-layout>.card{margin:0 0 18px}.staff-sms-tools{display:grid;grid-template-columns:1fr auto;align-items:end;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px}.staff-sms-tools .search-field{grid-column:1/-1}.staff-sms-tools input{max-width:none}.staff-sms-recipient-list{max-height:420px;overflow-y:auto;border:1px solid var(--line);border-radius:16px;padding:8px;background:#f8fafc}.staff-sms-recipient{display:grid;grid-template-columns:auto 40px minmax(0,1fr) auto;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:9px;margin-bottom:7px;cursor:pointer}.staff-sms-recipient:has(input:checked){border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1)}.staff-sms-recipient.is-not-ready{background:#fffaf0}.staff-sms-recipient-main{min-width:0}.staff-sms-recipient-main strong,.staff-sms-recipient-main small{display:block}.staff-sms-recipient-main small{font-size:10px;color:#64748b;margin-top:2px}.staff-sms-message-field{margin-top:15px}.field-meta-row{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#64748b;margin-top:5px}.clean-list{padding-left:18px;color:#475569;line-height:1.55}.sms-message-cell{max-width:360px;white-space:normal}.view-only-notice{background:#fff7ed;border-left:4px solid #f59e0b;border-radius:10px;padding:12px;color:#7c4a03;font-weight:700}.current-file-panel{display:flex;flex-wrap:wrap;align-items:center;gap:9px;background:#eef9ef;border:1px solid #bde1c1;border-radius:12px;padding:10px;margin-top:8px;color:#205d2c}.current-file-panel strong{font-size:12px}.current-file-panel a{font-weight:900}.current-file-panel span{font-size:11px;color:#4a6a50}

@media(max-width:1250px){.roster-layout-v63{grid-template-columns:340px minmax(0,1fr)}.staff-exact-pill{display:none}.shift-builder-layout{grid-template-columns:1fr 380px}.shift-preset-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.roster-layout-v63,.shift-builder-layout,.staff-sms-layout{display:block}.staff-palette-v63,.shift-staff-picker{position:relative;top:auto;max-height:none;margin-bottom:18px}.staff-palette-scroll,.shift-staff-options{max-height:500px}.roster-days{min-width:0}.staff-sms-guidance{margin-top:18px!important}}
@media(max-width:700px){.staff-availability-strip{grid-template-columns:repeat(7,1fr)}.staff-roster-card,.shift-staff-option,.staff-sms-recipient{grid-template-columns:auto 36px minmax(0,1fr)}.staff-exact-pill,.shift-staff-option>.pill,.staff-sms-recipient>.pill{grid-column:2/-1;justify-self:start}.shift-preset-grid{grid-template-columns:1fr 1fr}.roster-shift-card{display:block}.roster-shift-actions{margin-top:10px;justify-content:flex-start}.staff-sms-tools{grid-template-columns:1fr}.staff-sms-tools .mini-actions{margin-top:8px}}

/* v64 self-service availability and clearer compliance review workflow */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.availability-filter-card{padding:14px 16px}.availability-filter-card .inline-filter{align-items:end}.compact-field{margin:0;min-width:260px}.compact-field label{font-size:.72rem;color:var(--muted)}
.availability-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.availability-summary-card{display:grid;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#fff,#f7fafc);box-shadow:var(--shadow-sm)}.availability-summary-card strong{font-size:1.65rem;line-height:1;color:var(--ink)}.availability-summary-card span{color:var(--muted);font-size:.76rem;font-weight:750}
.availability-entry-grid{align-items:start}.availability-entry-grid>.card{height:100%}.availability-weekdays ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.availability-weekdays li{margin:0}.availability-weekdays li label{min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.availability-history-toggle{display:flex;justify-content:center;margin:2px 0 18px}.availability-history-grid{align-items:start}.muted-card{background:#f8fafc}.stack-list{display:grid;gap:8px}.stack-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.stack-list-row strong,.stack-list-row span,.stack-list-row small{display:block}.stack-list-row small{margin-top:3px;color:var(--muted);font-size:.72rem}.availability-edit-card{max-width:850px}.record-owner-banner{display:flex;justify-content:space-between;gap:12px;margin:-2px 0 18px;padding:12px 14px;border:1px solid #cfe2d1;border-radius:12px;background:#f1faf2}.record-owner-banner span{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.compliance-review-explainer,.compliance-review-workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.compliance-review-explainer>div,.compliance-review-workflow>div{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}.compliance-review-explainer strong{grid-column:1/-1;color:var(--ink)}.compliance-review-explainer span{grid-column:1/-1;color:var(--muted);font-size:.76rem;line-height:1.5}.compliance-review-workflow>div>span{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:11px;background:#e9f6eb;color:#227a32;font-weight:950}.compliance-review-workflow strong{font-size:.84rem}.compliance-review-workflow small{color:var(--muted);line-height:1.45}
.compliance-review-layout{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:start}.compliance-review-layout>.card{margin:0}.compliance-evidence-card .detail-list{display:grid;grid-template-columns:1fr}.compliance-evidence-card .detail-list>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px}.evidence-action-panel{display:grid;gap:8px;margin-top:18px;padding:15px;border:1px solid #cce3cf;border-radius:14px;background:#f2faf3}.evidence-action-panel .button{width:max-content}.evidence-action-panel small{color:#58705d;line-height:1.45}.review-notes-panel,.review-rule-note{padding:14px;border-radius:13px;background:#f7f9fc;border:1px solid var(--line)}.review-notes-panel p,.review-rule-note p{margin:6px 0 0;color:#526276;line-height:1.5}.review-rule-note{margin-bottom:17px}.review-rule-note p b{color:var(--ink)}.review-action-options ul{display:grid;gap:8px;padding:0;margin:8px 0;list-style:none}.review-action-options li{margin:0}.review-action-options li label{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;font-weight:800}.review-action-options li label:has(input:checked){border-color:#69a776;background:#f0f9f1;box-shadow:0 0 0 2px rgba(57,173,62,.09)}.compliance-review-search{margin:4px 0 14px}.compliance-review-search input{max-width:520px}.review-feedback{margin:14px 0;padding:14px 16px;border:1px solid #eab7b7;border-left:5px solid #c84848;border-radius:13px;background:#fff4f4;color:#7f2828}.review-feedback strong,.review-feedback span{display:block}.review-feedback p{margin:7px 0;line-height:1.5}.review-feedback span{font-size:.76rem;color:#935151}.review-feedback-row td{padding-top:0;background:#fff}.review-feedback-row .review-feedback{margin:0}.staff-compliance-explainer{margin-top:-2px}
@media(max-width:1000px){.compliance-review-layout{grid-template-columns:1fr}.compliance-review-layout>.card{margin-bottom:18px}.availability-entry-grid{grid-template-columns:1fr}}
@media(max-width:760px){.availability-summary-grid,.compliance-review-explainer,.compliance-review-workflow,.availability-history-grid{grid-template-columns:1fr}.availability-weekdays ul{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-filter-card .inline-filter{display:grid;grid-template-columns:1fr}.compact-field{min-width:0}.compliance-evidence-card .detail-list>div{grid-template-columns:1fr;gap:4px}.stack-list-row{align-items:flex-start}.availability-summary-card{padding:14px}}

/* v64 compliance review history */
.compliance-review-history{margin-top:18px}.review-history-list{display:grid;gap:10px}.review-history-item{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#f9fbfd}.review-history-item>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.review-history-item p{margin:0;color:#526276;line-height:1.5}.review-history-item .small{color:var(--muted)}
.compact-pagination{margin-top:12px}

/* v65 unified application theme ------------------------------------------------
   A single visual language for every portal screen: shell, headers, surfaces,
   forms, tables, states and responsive behaviour. Module-specific layouts stay
   intact while inheriting the same spacing, typography and interaction rules. */
:root{
  --brand-950:#071426;
  --brand-900:#0b1b31;
  --brand-850:#10233d;
  --brand-800:#17304d;
  --brand-700:#244866;
  --accent-700:#237c31;
  --accent-600:#2f963b;
  --accent-500:#3cad49;
  --accent-100:#e8f6ea;
  --accent-50:#f3fbf4;
  --text-950:#0d1726;
  --text-800:#243247;
  --text-700:#415167;
  --text-600:#4f5e71;
  --text-500:#58687b;
  --border:#dbe4ed;
  --border-strong:#c8d4df;
  --canvas:#eef4f8;
  --canvas-soft:#f6f9fb;
  --surface:#fff;
  --surface-muted:#f7fafc;
  --surface-raised:rgba(255,255,255,.96);
  --success:#218447;
  --success-soft:#eaf7ee;
  --warning:#b86d0d;
  --warning-soft:#fff5df;
  --danger:#b83a43;
  --danger-soft:#fff0f1;
  --info:#2b67ad;
  --info-soft:#edf5ff;
  --focus:#166534;
  --radius-xs:8px;
  --radius-sm:11px;
  --radius-md:15px;
  --radius-lg:20px;
  --radius-xl:26px;
  --shadow-xs:0 2px 7px rgba(10,29,49,.04);
  --shadow-sm:0 8px 22px rgba(10,29,49,.065);
  --shadow-md:0 15px 38px rgba(10,29,49,.085);
  --shadow-lg:0 28px 70px rgba(10,29,49,.13);
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-7:32px;
  --space-8:40px;
  --content-max:1540px;
  --control-height:44px;
  --transition:160ms ease;
  --cf-green:var(--accent-500);
  --cf-green-dark:var(--accent-700);
  --cf-green-soft:var(--accent-50);
  --cf-navy:var(--brand-900);
  --cf-navy-2:var(--brand-800);
  --ink:var(--text-950);
  --muted:var(--text-600);
  --line:var(--border);
  --line-strong:var(--border-strong);
  --bg:var(--canvas);
  --surface-soft:var(--surface-muted);
  --ok:var(--success);
  --ok-soft:var(--success-soft);
  --warn:var(--warning);
  --warn-soft:var(--warning-soft);
  --radius:var(--radius-md);
  --shadow:var(--shadow-md);
}

*,*::before,*::after{box-sizing:border-box}
html{background:var(--canvas);scroll-padding-top:100px}
body{
  min-width:320px;
  margin:0;
  color:var(--text-950);
  background:
    radial-gradient(circle at 94% -8%,rgba(60,173,73,.10),transparent 31rem),
    radial-gradient(circle at 35% 110%,rgba(43,103,173,.055),transparent 38rem),
    linear-gradient(180deg,#f7fafc 0%,var(--canvas) 100%);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:14px;
  line-height:1.55;
  letter-spacing:-.005em;
}
img{max-width:100%}
button,input,select,textarea{font:inherit}
hr{border:0;border-top:1px solid var(--border);margin:var(--space-6) 0}
pre,code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
pre{max-width:100%;overflow:auto}
::selection{background:rgba(60,173,73,.22);color:var(--brand-950)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

h1,h2,h3,h4,h5,h6{
  margin:0 0 .55em;
  color:var(--text-950);
  font-weight:850;
  line-height:1.17;
  letter-spacing:-.028em;
}
h1{font-size:clamp(1.72rem,2.15vw,2.35rem)}
h2{font-size:clamp(1.18rem,1.5vw,1.45rem)}
h3{font-size:1.03rem}
h4{font-size:.94rem}
p{margin:0 0 1em}
a{color:#215fa7;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--transition)}
a:hover{color:#17497f}
.small,.muted,.page-intro{color:var(--text-600)}
.small{font-size:.79rem;line-height:1.5}
.empty{color:var(--text-500);font-style:normal}
.sr-only,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.spaced-top{margin-top:var(--space-4)!important}

/* Application shell */
.app-shell{grid-template-columns:292px minmax(0,1fr);min-height:100vh}
.sidebar{
  width:auto;
  min-height:100vh;
  padding:18px 14px 20px;
  background:
    radial-gradient(circle at 20% 0,rgba(60,173,73,.14),transparent 18rem),
    linear-gradient(180deg,var(--brand-900),var(--brand-950));
  border-right:1px solid rgba(255,255,255,.07);
  box-shadow:12px 0 36px rgba(7,20,38,.11);
}
.sidebar-brand{min-height:82px;padding:10px 12px 14px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px}
.brand-logo-wrap{min-height:52px;border-radius:13px;background:#fff;padding:8px 10px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.brand-copy small{color:#9fb0c4;font-size:9px;letter-spacing:.15em;text-transform:uppercase;font-weight:900}
.sidebar-search{min-height:44px;margin:0 1px 12px;padding:9px 10px;border-radius:13px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);color:#dbe6f2;font-weight:750}
.sidebar-search:hover{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(60,173,73,.34)}
.sidebar-search-icon{width:27px;height:27px;border-radius:9px;background:rgba(60,173,73,.17);color:#9ceaa4}
.sidebar-nav-accordion{gap:7px}
.nav-standalone,.nav-group{border-radius:14px}
.nav-standalone{min-height:46px;border-color:rgba(60,173,73,.22);background:linear-gradient(135deg,rgba(60,173,73,.16),rgba(60,173,73,.055))}
.nav-standalone::before,.nav-group-toggle::before{border-radius:9px;background:rgba(255,255,255,.065);color:#a9edb0}
.nav-standalone.active{background:linear-gradient(135deg,rgba(60,173,73,.30),rgba(60,173,73,.12));box-shadow:inset 3px 0 0 var(--accent-500)}
.nav-group{border-color:rgba(255,255,255,.075);background:rgba(0,0,0,.10)}
.nav-group.is-open{border-color:rgba(60,173,73,.28);background:rgba(0,0,0,.19)}
.nav-group-toggle{min-height:48px;color:#d8e3ef}
.nav-group-links a{min-height:38px;color:#b9c7d7;border-radius:10px}
.nav-group-links a:hover{background:rgba(255,255,255,.065);color:#fff}
.nav-group-links a.active{background:linear-gradient(90deg,rgba(60,173,73,.19),rgba(60,173,73,.055));color:#fff}
.sidebar-footer{border-top-color:rgba(255,255,255,.08);margin-top:14px;padding:13px 10px 2px}
.sidebar-user-avatar{background:linear-gradient(135deg,var(--accent-500),var(--accent-700));border-radius:10px}

.main-shell{min-width:0;min-height:100vh}
.topbar{
  position:sticky;
  top:0;
  z-index:38;
  min-height:76px;
  padding:13px clamp(18px,2.8vw,40px);
  background:rgba(255,255,255,.91);
  border-bottom:1px solid rgba(200,212,223,.82);
  box-shadow:0 7px 24px rgba(10,29,49,.055);
  backdrop-filter:blur(16px) saturate(135%);
}
.topbar-title .eyebrow{color:var(--accent-700);font-size:9px;font-weight:950;letter-spacing:.16em}
.topbar-title h1{font-size:clamp(1.18rem,1.6vw,1.58rem);letter-spacing:-.025em}
.topbar-notification,.topbar-user{min-height:42px;border-radius:13px;border-color:var(--border);box-shadow:var(--shadow-xs);background:rgba(255,255,255,.94)}
.topbar-avatar{border-radius:9px;background:linear-gradient(135deg,var(--accent-500),var(--accent-700))}
.topbar-count{background:var(--danger)}
.container,.app-main{width:100%;max-width:var(--content-max);margin:0 auto;padding:28px clamp(18px,2.8vw,40px) 70px}
.page-content{width:100%}
.message-stack{display:grid;gap:10px;margin-bottom:18px}

/* Shared page introductions */
.page-header,.module-hero,.profile-hero,.placement-hero-card,.hero-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--space-6);
  padding:clamp(20px,2.3vw,30px);
  margin:0 0 20px;
  border:1px solid rgba(200,212,223,.95);
  border-radius:var(--radius-xl);
  background:
    radial-gradient(circle at 94% 10%,rgba(60,173,73,.13),transparent 18rem),
    linear-gradient(135deg,#fff 0%,#fbfdfe 60%,#f0f8f1 100%);
  box-shadow:var(--shadow-md);
}
.page-header::before,.module-hero::before,.profile-hero::before,.placement-hero-card::before,.hero-card::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(180deg,var(--accent-500),var(--accent-700));
}
.page-header>div:first-child,.module-hero>div:first-child,.profile-hero-main,.placement-hero-main{min-width:0;max-width:960px}
.page-header h1,.module-hero h1,.profile-hero h1,.placement-hero-card h1,.hero-card h1{margin:0 0 8px;font-size:clamp(1.65rem,2.15vw,2.28rem)}
.page-header p,.module-hero p,.profile-hero p,.placement-hero-card p,.hero-card p{max-width:900px;color:var(--text-600);margin-bottom:0}
.page-header .actions,.module-hero-actions{flex:0 0 auto;justify-content:flex-end;margin:0}
.section-kicker,.portal-kicker,.eyebrow{
  display:block;
  margin:0 0 6px;
  color:var(--accent-700);
  font-size:.66rem;
  font-weight:950;
  letter-spacing:.145em;
  line-height:1.3;
  text-transform:uppercase;
}
.meta-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.meta-chip-row>span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:29px;
  padding:5px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  color:var(--text-700);
  font-size:.73rem;
  font-weight:700;
  box-shadow:var(--shadow-xs);
}

/* Surfaces and sections */
.card,.verify-card,.day-card,.form-section,.soft-panel,.compliance-section,.case-note-panel,.record-block{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--surface-raised);
  box-shadow:var(--shadow-sm);
}
.card{padding:clamp(18px,2vw,24px);margin:0 0 18px}
.card>h1:first-child,.card>h2:first-child,.card>h3:first-child{margin-top:0}
.card>:last-child{margin-bottom:0}
.card-head,.section-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin:0 0 17px;
  padding:0 0 14px;
  border-bottom:1px solid var(--border);
}
.card-head h2,.card-head h3,.section-heading-row h2,.section-heading-row h3{margin:0 0 4px}
.card-head p,.section-heading-row p{margin:0;color:var(--text-600);font-size:.79rem;line-height:1.5}
.subtle-card,.soft-panel{padding:15px;background:var(--surface-muted);box-shadow:none}
.form-shell-card{max-width:1240px}
.context-card{align-self:start;background:linear-gradient(145deg,#fff,var(--accent-50))}
.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.summary-tile{
  min-height:118px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:17px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(145deg,#fff,var(--surface-muted));
  box-shadow:var(--shadow-sm);
}
.summary-tile strong{display:block;font-size:1rem;color:var(--text-950);overflow-wrap:anywhere}
.summary-tile small{display:block;margin-top:4px;color:var(--text-600)}
.summary-label{display:block;margin-bottom:7px;color:var(--text-500);font-size:.64rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.note-card{min-height:190px}
.note-card>p:last-child{color:var(--text-700);line-height:1.7}
.tone-warning{border-left:4px solid var(--warning)}
.tone-success{border-left:4px solid var(--success)}
.tone-danger{border-left:4px solid var(--danger)}
.id-card-issue-grid{grid-template-columns:minmax(0,1.55fr) minmax(270px,.45fr)}
.status-summary-panel{display:flex;align-items:center;gap:13px;margin-bottom:16px}
.status-summary-panel p{margin:3px 0 0;color:var(--text-600);font-size:.78rem}
.status-summary-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;border-radius:12px;background:var(--brand-900);color:#fff;font-size:.68rem;font-weight:950;letter-spacing:.06em}
.check-list{display:grid;gap:10px;margin:15px 0 0;padding:0;list-style:none}
.check-list li{position:relative;padding-left:25px;color:var(--text-700);line-height:1.5}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--accent-100);color:var(--accent-700);font-size:.7rem;font-weight:950}
.code-card pre{margin:0;padding:17px;border:1px solid #253953;border-radius:14px;background:var(--brand-950);color:#d8e7f4;line-height:1.7;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}

/* Buttons and action rows */
.actions,.mini-actions,.module-hero-actions,.small-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
button:not(.nav-group-toggle):not(.mobile-menu-button):not(.mobile-menu-close),.button,input[type="submit"]{
  min-height:var(--control-height);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:9px 15px;
  border:1px solid var(--brand-900);
  border-radius:11px;
  background:linear-gradient(180deg,var(--brand-800),var(--brand-900));
  color:#fff;
  font-weight:850;
  font-size:.82rem;
  line-height:1.2;
  text-decoration:none;
  box-shadow:0 6px 15px rgba(7,20,38,.13);
  cursor:pointer;
  transition:transform var(--transition),box-shadow var(--transition),background var(--transition),border-color var(--transition),color var(--transition);
}
button:not(.nav-group-toggle):not(.mobile-menu-button):not(.mobile-menu-close):hover,.button:hover,input[type="submit"]:hover{transform:translateY(-1px);background:linear-gradient(180deg,#1b3858,var(--brand-900));color:#fff;box-shadow:0 10px 22px rgba(7,20,38,.17)}
button.primary,.primary,.button.primary{background:linear-gradient(180deg,var(--accent-600),var(--accent-700));border-color:var(--accent-700);box-shadow:0 7px 17px rgba(35,124,49,.19)}
button.primary:hover,.primary:hover,.button.primary:hover{background:linear-gradient(180deg,var(--accent-500),var(--accent-700))}
.button.secondary,button.secondary{border-color:var(--border-strong);background:#edf2f6;color:var(--text-800);box-shadow:none}
.button.secondary:hover,button.secondary:hover{border-color:#aebdca;background:#e5edf3;color:var(--text-950)}
.button.ghost,button.ghost{border-color:var(--border);background:rgba(255,255,255,.66);color:var(--text-700);box-shadow:none}
.button.ghost:hover,button.ghost:hover{border-color:var(--border-strong);background:#fff;color:var(--text-950)}
.button.danger,button.danger{border-color:#a72f38;background:linear-gradient(180deg,#c84a53,#a92f38);color:#fff}
.button.danger:hover,button.danger:hover{background:linear-gradient(180deg,#d35059,#9f2932)}
.small-button{min-height:34px!important;padding:7px 10px!important;border-radius:9px!important;font-size:.72rem!important}
button[disabled],.button[aria-disabled="true"],input[disabled],select[disabled],textarea[disabled]{cursor:not-allowed;opacity:.58;transform:none!important;box-shadow:none!important}
.form-actions{margin-top:20px;padding-top:17px;border-top:1px solid var(--border)}
.inline{display:inline-flex!important;margin:0!important}
.inline button{margin:0}

/* Forms */
.form-ui{width:100%}
.form-ui>p{display:grid;gap:6px;margin:0 0 16px}
.form-ui>p>label{margin:0}
.form-section,.compliance-section,.mqs-subsection{
  padding:clamp(16px,1.8vw,22px);
  margin:0 0 16px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(145deg,#fff,#fbfdfe);
  box-shadow:none;
}
.mqs-subsection{background:var(--surface-muted);border-radius:var(--radius-md)}
.field-row{display:grid;gap:6px;margin:0 0 15px}
.field-row:last-child{margin-bottom:0}
.field-row.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.field-row.three-col{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.field-row>div{min-width:0}
label,.form-ui label{display:block;margin:0 0 6px;color:var(--text-800);font-size:.76rem;font-weight:850;line-height:1.35}
label.is-required::after{content:" *";color:var(--danger)}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{
  width:100%;
  min-height:var(--control-height);
  padding:10px 12px;
  border:1px solid var(--border-strong);
  border-radius:11px;
  background:#fff;
  color:var(--text-950);
  box-shadow:inset 0 1px 2px rgba(10,29,49,.025);
  transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);
}
textarea{min-height:116px;resize:vertical;line-height:1.5}
select{padding-right:34px}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{outline:0;border-color:var(--accent-600);box-shadow:0 0 0 4px var(--focus)}
input[type="file"]{padding:7px;background:var(--surface-muted)}
input[type="file"]::file-selector-button{min-height:32px;margin-right:10px;padding:6px 10px;border:0;border-radius:8px;background:var(--brand-900);color:#fff;font-weight:800;cursor:pointer}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;margin:0;accent-color:var(--accent-600)}
.checkbox-row{display:flex!important;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted)}
.checkbox-row label{margin:0;cursor:pointer}
.helptext,.field-help{margin-top:3px;color:var(--text-600);font-size:.71rem;line-height:1.5}
ul.errorlist,.errorlist{margin:5px 0 0;padding:8px 10px;border:1px solid #efb7bb;border-radius:9px;background:var(--danger-soft);color:#962f37;font-size:.73rem;list-style:none}
.has-error input,.has-error select,.has-error textarea,[aria-invalid="true"]{border-color:#d46a71!important;background:#fffafa!important}
.form-grid{display:grid;grid-template-columns:minmax(230px,.32fr) minmax(0,1fr);gap:22px;align-items:start}
.compact-form{max-width:none}
.photo-panel{position:sticky;top:100px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-muted)}
.employee-photo-preview,.employee-photo-placeholder{width:100%;aspect-ratio:4/4.5;object-fit:cover;border-radius:15px;border:1px solid var(--border);background:#e8eef3;margin-bottom:13px}
.employee-photo-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-500);font-weight:950;letter-spacing:.12em}
.current-file-panel{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;padding:12px 13px;border:1px solid #bcdcc2;border-radius:12px;background:var(--accent-50);color:#225c2d}
.current-file-panel strong{grid-column:1/-1}.current-file-panel a{font-weight:850}.current-file-panel span{font-size:.72rem;color:#55715b}

/* Tables and report matrices */
.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:14px;scrollbar-width:thin}
.card.table-scroll{padding:0;overflow:auto}
.card.table-scroll>h2,.card.table-scroll>h3{padding:20px 20px 0}
.data-table{width:100%;min-width:680px;border-collapse:separate;border-spacing:0;background:#fff;font-size:.78rem}
.data-table th,.data-table td{padding:12px 13px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.data-table th{position:relative;background:#eef3f7;color:var(--text-700);font-size:.66rem;font-weight:950;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap}
.data-table thead th:first-child{border-top-left-radius:11px}.data-table thead th:last-child{border-top-right-radius:11px}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table tbody tr{transition:background var(--transition)}
.data-table tbody tr:hover{background:#f7fafc}
.data-table td strong{color:var(--text-950)}
.data-table .small{font-size:.7rem}
.compact-table th,.compact-table td{padding:10px 11px}
.row-warning td,.row-warning{background:#fffaf0!important}
.row-danger td,.row-danger{background:#fff4f4!important}
.row-ok td,.row-ok{background:#f5fbf6!important}
.data-table .mini-actions{justify-content:flex-end;white-space:nowrap}
.avatar-52{width:52px!important;height:52px!important;flex:0 0 52px!important;border-radius:14px!important}
.avatar-52 img{width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* Status language */
.pill,.badge,.status-pill,.status-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:27px;
  padding:5px 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#eef2f6;
  color:var(--text-700);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.025em;
  line-height:1.15;
  white-space:nowrap;
}
.pill.ok,.badge.ok,.status-pill.success,.status-chip.ok,.badge.pub{border-color:#b8ddc1;background:var(--success-soft);color:#1e6f3d}
.pill.warning,.badge.warning,.status-pill.warning,.status-chip.warning{border-color:#efd29c;background:var(--warning-soft);color:#88530b}
.pill.danger,.badge.danger,.status-pill.danger,.status-chip.danger{border-color:#edbec2;background:var(--danger-soft);color:#9b3038}
.pill.info,.badge.info,.status-pill.info,.status-chip.info{border-color:#bfd4ef;background:var(--info-soft);color:#265a98}
.pill.neutral,.badge.neutral,.status-pill.neutral,.status-chip.neutral{background:#eff3f6;color:var(--text-600)}
.pill.readonly,.status-chip.readonly{border-color:#d8c9a6;background:#fff8e8;color:#76591d}
.badge.shift-sleepover{background:var(--brand-900);border-color:var(--brand-900);color:#fff}
.badge.shift-not_funded{background:var(--danger-soft);border-color:#edbec2;color:#9b3038}

/* Messages, warnings and empty states */
.message,.readonly-banner,.readonly-inline-note,.client-alert,.client-warning-banner,.review-feedback{
  border:1px solid var(--border);
  border-left:4px solid var(--info);
  border-radius:13px;
  background:var(--info-soft);
  color:#234f82;
  padding:13px 15px;
  box-shadow:var(--shadow-xs);
}
.message.success{border-left-color:var(--success);background:var(--success-soft);color:#1e683a}
.message.warning{border-left-color:var(--warning);background:var(--warning-soft);color:#80500e}
.message.error,.message.danger,.client-alert,.client-warning-banner.danger{border-left-color:var(--danger);background:var(--danger-soft);color:#8d3037}
.readonly-banner,.readonly-inline-note{border-left-color:var(--warning);background:#fff9ec;color:#72521a}
.readonly-banner{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.readonly-banner-icon{flex:0 0 auto;padding:5px 8px;border-radius:8px;background:#79591c;color:#fff;font-size:.6rem;font-weight:950;letter-spacing:.08em}
.readonly-banner strong,.readonly-banner span{display:block}.readonly-banner span{margin-top:2px;font-size:.76rem}
.polished-empty-state,.empty-state-box{
  min-height:110px;
  display:flex;
  align-items:center;
  gap:13px;
  padding:18px;
  border:1px dashed var(--border-strong);
  border-radius:15px;
  background:var(--surface-muted);
  color:var(--text-600);
}
.polished-empty-state>span,.empty-state-box>span{width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex:0 0 38px;border-radius:11px;background:#e8eef3;color:var(--text-700);font-weight:950}

/* Lists, disclosures and reusable content */
.list-stack,.stack-list,.dashboard-list,.report-list-cards{display:grid;gap:10px}
.record-block,.stack-list-row,.dashboard-list-row{padding:13px 14px;border-radius:13px;background:#fff;box-shadow:none}
.record-block p:last-child,.stack-list-row p:last-child,.dashboard-list-row p:last-child{margin-bottom:0}
.disclosure{border:1px solid var(--border);border-radius:11px;background:var(--surface-muted);overflow:hidden}
.disclosure summary{padding:10px 12px;cursor:pointer;color:var(--text-800);font-size:.75rem;font-weight:850;list-style:none}
.disclosure summary::-webkit-details-marker{display:none}
.disclosure summary::after{content:"+";float:right;color:var(--accent-700);font-size:1rem;line-height:1}
.disclosure[open] summary{border-bottom:1px solid var(--border);background:#eef4f7}
.disclosure[open] summary::after{content:"−"}
.disclosure>*:not(summary){margin:0;padding:12px}
.message-preview{white-space:pre-wrap;max-width:36rem;max-height:320px;overflow:auto;background:var(--brand-950);color:#dce8f3;border-radius:10px;font-size:.7rem;line-height:1.55}
.detail-list{display:grid;gap:0}
.detail-list>div{display:grid;grid-template-columns:minmax(130px,.35fr) minmax(0,1fr);gap:16px;padding:11px 0;border-bottom:1px solid var(--border)}
.detail-list>div:last-child{border-bottom:0}
.detail-list dt{color:var(--text-600);font-size:.72rem;font-weight:850}.detail-list dd{margin:0;color:var(--text-950)}

/* Entity cards, navigation tiles and profile areas */
.entity-grid,.action-tile-grid,.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.entity-card,.action-tile{
  position:relative;
  min-width:0;
  padding:17px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);
}
.entity-card:hover,.action-tile:hover{transform:translateY(-2px);border-color:#bfd0dd;box-shadow:var(--shadow-md)}
.entity-card-top{display:flex;align-items:center;gap:12px;min-width:0}
.entity-card-title{font-weight:900;color:var(--text-950)}
.entity-card-meta{margin-top:2px;color:var(--text-600);font-size:.72rem}
.entity-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:12px}
.action-tile-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 42px;border-radius:12px;background:linear-gradient(145deg,var(--brand-800),var(--brand-900));color:#fff;font-size:.72rem;font-weight:950}
/* Stroke icons (partials/icon.html) inherit their size and colour from the tile */
.action-tile-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.action-tile:hover .action-tile-icon{background:linear-gradient(145deg,var(--brand-700,#1d4ed8),var(--brand-900))}
.profile-hero,.placement-hero-card{align-items:center}
.profile-avatar,.client-avatar,.client-avatar-xl{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(145deg,#dfe8ef,#cdd9e3);color:var(--brand-800);font-weight:950}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-info-grid,.yp-profile-info-grid{gap:10px}
.info-tile{border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.76);padding:12px}

/* Dashboard unification */
.admin-dashboard,.staff-dashboard{display:grid;gap:18px}
.dashboard-section-card,.admin-pulse-card,.staff-metric-card,.mini-stat-card{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.dashboard-section-card{padding:20px}
.admin-pulse-card,.staff-metric-card,.mini-stat-card{position:relative;overflow:hidden;padding:16px}
.admin-pulse-card::before,.staff-metric-card::before,.mini-stat-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-500)}
.admin-priority-row,.dashboard-list-row{border:1px solid var(--border);background:var(--surface-muted);border-radius:13px}
.admin-priority-row:hover,.dashboard-list-row:hover{background:#f2f7fa;border-color:var(--border-strong)}
.metric-icon,.pulse-icon{background:linear-gradient(145deg,var(--brand-800),var(--brand-900));color:#fff}
.staff-dashboard .card,.admin-dashboard .card{margin-bottom:0}
.progress-track{background:#e4ebf0;border-radius:999px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--accent-600),var(--accent-500));border-radius:inherit}

/* Roster and task workspaces */
.roster-command-hero,.roster-form-hero{background:radial-gradient(circle at 90% 0,rgba(60,173,73,.14),transparent 19rem),linear-gradient(135deg,#fff,#f1f7fb)}
.roster-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:13px 15px;background:rgba(255,255,255,.92)}
.staff-palette-v63,.shift-staff-picker{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-md)}
.staff-palette-scroll,.shift-staff-options{scrollbar-width:thin;scrollbar-color:#b6c4d1 transparent}
.staff-roster-card,.shift-staff-option{border-color:var(--border);border-radius:13px;background:#fff;box-shadow:var(--shadow-xs)}
.staff-roster-card:hover,.shift-staff-option:hover{border-color:#9fb2c2;box-shadow:var(--shadow-sm)}
.roster-day-card,.day-card{border-color:var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}
.roster-day-heading{background:linear-gradient(135deg,#f2f6f9,#eaf1f5);border-bottom:1px solid var(--border)}
.placement-block{border-top:1px solid var(--border)}
.roster-shift-card,.shift-card{border:1px solid var(--border);border-left-width:5px;border-radius:13px;background:#fff;box-shadow:var(--shadow-xs)}
.roster-shift-card:hover,.shift-card:hover{box-shadow:var(--shadow-sm)}
.follow-on-shift{background:#f5f8fb;border-style:dashed}
.shift-preset{border-color:var(--border);border-radius:12px;background:var(--surface-muted)}
.shift-preset:hover{border-color:var(--accent-600);background:var(--accent-50)}
.availability-dot{box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.task-row,.report-mini-card{border-color:var(--border);border-radius:13px}

/* Compliance, audit and review screens */
.compliance-section{background:linear-gradient(145deg,#fff,var(--surface-muted))}
.compliance-review-explainer>div,.compliance-review-workflow>div,.review-history-item{border-color:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}
.review-feedback{border-left-color:var(--danger);background:var(--danger-soft);color:#873039}
.evidence-action-panel{border-color:#b9dbc0;background:var(--accent-50)}
.audit-summary-card,.audit-filter-card,.audit-detail-header{border-color:var(--border)}
.audit-outcome,.audit-action{border-radius:999px}
.audit-change-list{display:grid;gap:7px}

/* Meals, resources, documentation and specialist forms */
.meal-plan-placement-card,.meal-plan-day-display,.meal-plan-day-editor,.staff-meal-plan-card{border-color:var(--border);box-shadow:var(--shadow-sm)}
.meal-plan-placement-card{border-radius:var(--radius-lg)}
.meal-plan-day-display,.meal-plan-day-editor{border-radius:var(--radius-md)}
.meal-plan-day-editor header{background:linear-gradient(135deg,var(--brand-850),var(--brand-700))}
.sticky-form-actions{border-color:var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}
.tci-form-card,.incident-guide,.report-block,.case-note-panel{border-color:var(--border)}
.incident-guide{border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.incident-error-summary{border:1px solid #f0b4ba;background:#fdecee;color:#7a1f27;border-radius:var(--radius-md);padding:14px 16px;margin:0 0 18px}
.incident-error-summary strong{display:block;margin-bottom:6px;color:#7a1f27}
.incident-error-summary ul{margin:0;padding-left:18px}
.incident-error-summary a{color:#7a1f27;font-weight:700}
.incident-draft-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #cfe6d5;background:#eef8f1;color:#14532d;border-radius:var(--radius-md);padding:10px 14px;margin:0 0 16px}
.incident-draft-banner span{font-weight:600}
.messages-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:800px){.messages-layout{grid-template-columns:1fr}}
.messages-conversation-list{display:flex;flex-direction:column;gap:4px}
.messages-conversation{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);color:var(--ink);text-decoration:none;border:1px solid transparent}
.messages-conversation:hover{background:var(--surface-muted)}
.messages-conversation.is-active{border-color:var(--border);background:var(--surface-muted)}
.messages-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:800;flex:0 0 auto}
.messages-conversation-main{display:flex;flex-direction:column;min-width:0;flex:1}
.messages-conversation-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.messages-unread-dot{background:#dc2626;color:#fff;border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;padding:0 6px}
.messages-thread{display:flex;flex-direction:column;gap:10px;max-height:440px;overflow-y:auto;padding:6px 2px;margin-bottom:12px}
.messages-bubble{max-width:80%;padding:8px 12px;border-radius:14px;border:1px solid var(--border)}
.messages-bubble p{margin:0}
.messages-bubble small{color:var(--muted);display:block;margin-top:4px;font-size:11px}
.messages-bubble.is-mine{align-self:flex-end;background:var(--accent-soft)}
.messages-bubble.is-theirs{align-self:flex-start;background:var(--surface-muted)}
.messages-attachment{display:inline-block;margin-top:2px;font-weight:700;word-break:break-word}
.my-document-row.needs-signature{border-left:3px solid #b45309}
.sharps-reference-photo{display:block;max-width:280px;max-height:230px;border-radius:var(--radius-md);border:1px solid var(--border);margin-top:6px}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable::after{content:'↕';margin-left:6px;opacity:.45;font-size:11px}
th.sortable.sort-asc::after{content:'↑';opacity:1}
th.sortable.sort-desc::after{content:'↓';opacity:1}
.dashboard-message-list{display:flex;flex-direction:column;gap:6px}
.dashboard-message{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink);text-decoration:none}
.dashboard-message:hover{background:var(--surface-muted)}
.dashboard-message.is-unread{border-left:3px solid var(--accent)}
.dashboard-message-main{display:flex;flex-direction:column;min-width:0}
.dashboard-message-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-message-time{color:var(--muted);font-size:11px;white-space:nowrap;flex:0 0 auto}
.report-view{max-width:1120px;margin-inline:auto}

/* Pagination */
.pagination,.compact-pagination{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:18px 0 0}
.pagination a,.pagination span,.compact-pagination a,.compact-pagination span{min-width:35px;min-height:35px;display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text-700);font-weight:800;text-decoration:none}
.pagination a:hover,.compact-pagination a:hover{border-color:var(--accent-600);color:var(--accent-700);background:var(--accent-50)}

/* Authentication and public verification */
.auth-page{background:linear-gradient(145deg,var(--brand-950),var(--brand-800))}
.auth-page .container{padding:24px}
.auth-layout{border:1px solid rgba(255,255,255,.14);border-radius:28px;overflow:hidden;box-shadow:0 35px 90px rgba(0,0,0,.30);background:#fff}
.auth-form-panel{background:#fff}
.auth-card-heading h1{font-size:clamp(1.65rem,2.4vw,2.25rem)}
.auth-field input{min-height:48px;border-radius:12px}
.auth-submit{min-height:48px;width:100%}
.auth-benefit{border-color:rgba(255,255,255,.12)}
.verify-card{max-width:720px;margin:30px auto;padding:28px;border-radius:var(--radius-xl)}
.public-verify-page .topbar{position:relative}

/* View-only mode remains visually clear without changing data visibility. */
.view-only-mode .readonly-write-action{display:none!important}
.view-only-mode .form-ui:not(.readonly-allowed){position:relative}
.readonly-denied-card{max-width:760px;margin:40px auto;text-align:center}

/* Responsive system */
@media(max-width:1250px){
  .entity-grid,.action-tile-grid,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .id-card-issue-grid{grid-template-columns:minmax(0,1fr) 300px}
}
@media(max-width:1000px){
  .app-shell{display:block}
  .sidebar{position:fixed;width:min(88vw,340px);z-index:60;transform:translateX(-105%);transition:transform .2s ease}
  .sidebar.is-open{transform:none}
  .topbar{padding-inline:16px}
  .container,.app-main{padding:22px 16px 60px}
  .section-grid,.grid-2,.id-card-issue-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .photo-panel{position:relative;top:auto;max-width:360px}
}
@media(max-width:760px){
  body{font-size:13.5px}
  .topbar{min-height:68px;gap:9px}
  .topbar-title .eyebrow,.topbar-action-label,.topbar-user-copy{display:none}
  .topbar-title h1{font-size:1.05rem}
  .topbar-notification,.topbar-user{min-height:38px;padding:5px 8px}
  .page-header,.module-hero,.profile-hero,.placement-hero-card,.hero-card{display:block;padding:19px;border-radius:20px}
  .page-header .actions,.module-hero-actions{margin-top:15px;justify-content:flex-start}
  .page-header .actions .button,.module-hero-actions .button{flex:1 1 auto}
  .card{padding:16px;border-radius:17px}
  .card-head,.section-heading-row{display:block}
  .card-head>.pill,.card-head>.status-pill,.section-heading-row>.pill{margin-top:10px}
  .field-row.two-col,.field-row.three-col,.summary-grid,.grid-3,.entity-grid,.action-tile-grid,.quick-grid{grid-template-columns:1fr}
  .form-section,.compliance-section,.mqs-subsection{padding:14px;border-radius:15px}
  .actions,.mini-actions{width:100%}
  .actions>.button,.actions>button{flex:1 1 auto}
  .data-table{min-width:620px}
  .summary-tile{min-height:96px}
  .detail-list>div{grid-template-columns:1fr;gap:3px}
  .message-preview{max-width:70vw}
  .auth-page .container{padding:10px}
  .auth-layout{border-radius:20px}
}
@media(max-width:480px){
  .container,.app-main{padding-inline:11px}
  .page-header,.module-hero,.profile-hero,.placement-hero-card,.hero-card{padding:17px 15px}
  .card{padding:14px}
  .meta-chip-row{gap:6px}
  .meta-chip-row>span{font-size:.68rem}
  .button,button:not(.nav-group-toggle):not(.mobile-menu-button):not(.mobile-menu-close){min-height:42px}
}

/* Print: keep reports readable and remove application chrome. */
@media print{
  body{background:#fff!important;color:#000;font-size:10pt}
  .sidebar,.topbar,.mobile-backdrop,.readonly-banner,.message-stack,.no-print,.actions,.module-hero-actions,.pagination{display:none!important}
  .app-shell,.main-shell{display:block!important;min-height:0}
  .container,.app-main{max-width:none!important;padding:0!important}
  .page-content{animation:none}
  .page-header,.module-hero,.profile-hero,.placement-hero-card,.hero-card,.card,.form-section,.soft-panel{box-shadow:none!important;background:#fff!important;border-color:#bbb!important;break-inside:avoid}
  .page-header::before,.module-hero::before,.profile-hero::before,.placement-hero-card::before,.hero-card::before{display:none}
  .table-scroll{overflow:visible!important}
  .data-table{min-width:0;font-size:8.5pt}
  .data-table th,.data-table td{padding:6px;border-color:#bbb}
  a{color:#000;text-decoration:underline}
}

/* v66 mobile navigation, Safari rendering and production hotfix */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.mobile-sidebar-toolbar,.mobile-menu-close{display:none}

@media(max-width:1000px){
  .app-shell{display:block;isolation:isolate}
  .main-shell{position:relative;z-index:1;min-width:0}
  .topbar{
    z-index:900;
    padding-top:max(10px,env(safe-area-inset-top));
    padding-right:max(14px,env(safe-area-inset-right));
    padding-left:max(14px,env(safe-area-inset-left));
    background:#fff!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  .mobile-menu-button{display:inline-flex!important;touch-action:manipulation}

  #mobile-sidebar{
    position:fixed!important;
    inset:0 auto 0 0;
    z-index:1201!important;
    width:min(88vw,360px);
    min-height:0;
    height:100vh;
    height:100svh;
    height:100dvh;
    max-height:100dvh;
    padding:
      max(12px,env(safe-area-inset-top))
      max(14px,env(safe-area-inset-right))
      max(28px,env(safe-area-inset-bottom))
      max(14px,env(safe-area-inset-left));
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(-105%)!important;
    transition:transform .22s ease,visibility 0s linear .22s;
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:20px 0 48px rgba(2,8,20,.34);
    isolation:isolate;
    touch-action:pan-y;
  }
  #mobile-sidebar.is-open{
    visibility:visible;
    pointer-events:auto;
    transform:none!important;
    transition-delay:0s;
  }

  .mobile-sidebar-toolbar{
    position:sticky;
    top:0;
    z-index:4;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:52px;
    margin:0 0 12px;
    padding:8px 0 10px;
    color:#dce6f2;
    background:rgba(7,18,34,.98);
    border-bottom:1px solid rgba(255,255,255,.09);
    box-shadow:0 8px 18px rgba(0,0,0,.12);
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
  }
  #mobile-menu-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    width:44px;
    min-width:44px;
    height:44px;
    min-height:44px;
    margin:0;
    padding:0;
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    background:rgba(255,255,255,.08);
    color:#fff;
    box-shadow:none;
    font:800 28px/1 system-ui,sans-serif;
    transform:none;
    cursor:pointer;
    touch-action:manipulation;
  }
  #mobile-menu-close:hover,
  #mobile-menu-close:active,
  #mobile-menu-close:focus-visible{
    border-color:rgba(156,234,164,.55);
    background:rgba(60,173,73,.18);
    color:#fff;
    transform:none;
    box-shadow:none;
  }

  #mobile-backdrop{
    display:block!important;
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:min(88vw,360px)!important;
    z-index:1200!important;
    background:rgba(3,10,23,.62)!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    touch-action:manipulation;
    transition:opacity .18s ease,visibility 0s linear .18s;
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  #mobile-backdrop.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition-delay:0s;
  }

  html.menu-open,body.menu-open{overflow:hidden;overscroll-behavior:none}
  body.menu-open .main-shell,
  body.menu-open .app-main,
  body.menu-open .page-content,
  body.menu-open #mobile-sidebar{
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  #mobile-sidebar a,#mobile-sidebar button,.nav-group-toggle{touch-action:manipulation}
  #mobile-sidebar .sidebar-brand{margin-top:0}
  .container,.app-main{
    padding-right:max(11px,env(safe-area-inset-right));
    padding-left:max(11px,env(safe-area-inset-left));
    padding-bottom:max(72px,env(safe-area-inset-bottom));
  }
  input,select,textarea{font-size:16px}
  .sticky-form-actions{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}
}

@media(min-width:1001px){
  #mobile-sidebar{
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  #mobile-backdrop{display:none!important}
}

@media(prefers-reduced-motion:reduce){
  #mobile-sidebar,#mobile-backdrop{transition:none!important}
}


/* v67 responsive matrices and management reports -----------------------------
   Wide spreadsheet-style screens are replaced with responsive employee and
   record cards. These components deliberately keep min-width at zero so the
   application never requires page-level horizontal scrolling. */
.report-hero{overflow:hidden}
.report-hero>div{min-width:0}
.report-summary-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  margin:0 0 18px;
}
.report-summary-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.report-summary-grid-hours{grid-template-columns:repeat(5,minmax(0,1fr))}
.report-summary-card{
  position:relative;
  min-width:0;
  min-height:126px;
  overflow:hidden;
  padding:17px 17px 16px 20px;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(145deg,#fff,var(--surface-muted));
  box-shadow:var(--shadow-sm);
}
.report-summary-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--brand-700)}
.report-summary-card.is-success::before{background:var(--success)}
.report-summary-card.is-warning::before{background:var(--warning)}
.report-summary-card.is-danger::before{background:var(--danger)}
.report-summary-card.is-info::before{background:var(--info)}
.report-summary-card span,.report-summary-card small{display:block;color:var(--text-600)}
.report-summary-card span{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.055em}
.report-summary-card strong{display:block;margin:6px 0 5px;color:var(--text-950);font-size:clamp(1.75rem,2.5vw,2.25rem);line-height:1;font-weight:950;letter-spacing:-.045em}
.report-summary-card small{font-size:.7rem;line-height:1.45}

.report-filter-panel{padding:18px 20px}
.report-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.7fr) minmax(190px,.8fr) auto;
  gap:13px;
  align-items:end;
}
.report-filter-grid-wide{grid-template-columns:minmax(260px,1.5fr) minmax(150px,.55fr) minmax(170px,.65fr) auto}
.report-filter-grid-task{grid-template-columns:repeat(2,minmax(150px,.65fr)) minmax(210px,1fr) minmax(220px,1fr) auto}
.report-filter-grid label{min-width:0;margin:0}
.report-filter-grid input,.report-filter-grid select{max-width:none}
.report-filter-grid .button{min-width:120px}
.report-filter-search{min-width:0}

.matrix-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.matrix-person-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--border);
  border-left:5px solid var(--brand-700);
  border-radius:var(--radius-lg);
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.matrix-person-card.has-action{border-left-color:var(--warning)}
.matrix-person-card.is-current{border-left-color:var(--success)}
.matrix-person-header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  min-width:0;
  padding:16px 17px;
  background:linear-gradient(135deg,#fff,#f5f9fb);
  border-bottom:1px solid var(--border);
}
.matrix-avatar{
  width:48px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 48px;
  border-radius:14px;
  background:linear-gradient(145deg,var(--brand-800),var(--brand-950));
  color:#fff;
  font-size:.85rem;
  font-weight:950;
  letter-spacing:.035em;
  box-shadow:0 8px 18px rgba(7,20,38,.16);
}
.matrix-person-copy{min-width:0}
.matrix-person-copy h2,.matrix-person-name{display:block;margin:0;color:var(--text-950);font-size:1rem;font-weight:950;line-height:1.25;overflow-wrap:anywhere}
.matrix-person-copy h2 a{color:inherit}
.matrix-person-copy p,.matrix-person-copy>span{display:block;margin:3px 0 0;color:var(--text-600);font-size:.72rem;line-height:1.4;overflow-wrap:anywhere}
.matrix-person-score{min-width:66px;text-align:right}
.matrix-person-score strong{display:block;color:var(--text-950);font-size:1.18rem;line-height:1;font-weight:950}
.matrix-person-score span{display:block;margin-top:4px;color:var(--text-600);font-size:.64rem;text-transform:uppercase;letter-spacing:.055em;font-weight:850}
.matrix-progress-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 17px;border-bottom:1px solid var(--border);background:var(--surface-muted)}
.matrix-progress-row meter{width:min(210px,100%);height:9px;border:0;border-radius:999px;background:#dfe7ed}
.matrix-progress-row meter::-webkit-meter-bar{height:9px;border:0;border-radius:999px;background:#dfe7ed}
.matrix-progress-row meter::-webkit-meter-optimum-value{border-radius:999px;background:linear-gradient(90deg,var(--accent-600),var(--accent-500))}
.matrix-progress-row meter::-moz-meter-bar{border-radius:999px;background:linear-gradient(90deg,var(--accent-600),var(--accent-500))}
.matrix-progress-row>span:not(.status-pill){color:var(--text-600);font-size:.68rem;font-weight:800}
.matrix-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}
.matrix-status-grid-training{grid-template-columns:repeat(4,minmax(0,1fr))}
.matrix-status-tile{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:12px;
  border:1px solid var(--border);
  border-top:3px solid var(--text-500);
  border-radius:13px;
  background:#fff;
}
.matrix-status-tile.is-success{border-top-color:var(--success);background:linear-gradient(180deg,#fff,var(--success-soft))}
.matrix-status-tile.is-warning{border-top-color:var(--warning);background:linear-gradient(180deg,#fff,var(--warning-soft))}
.matrix-status-tile.is-danger{border-top-color:var(--danger);background:linear-gradient(180deg,#fff,var(--danger-soft))}
.matrix-status-tile.is-info{border-top-color:var(--info);background:linear-gradient(180deg,#fff,var(--info-soft))}
.matrix-status-tile.is-neutral{border-top-color:var(--text-500);background:linear-gradient(180deg,#fff,var(--surface-muted))}
.matrix-status-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.matrix-status-heading h3{min-width:0;margin:0;font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}
.matrix-status-heading .status-pill{flex:0 0 auto}
.matrix-status-detail{display:grid;gap:5px;margin-top:auto;color:var(--text-600);font-size:.68rem;line-height:1.45;overflow-wrap:anywhere}
.matrix-status-detail a{width:max-content;max-width:100%;font-weight:850}
.training-matrix-list{display:grid;gap:14px}
.training-matrix-card.disclosure{background:#fff}
.training-matrix-card>summary{cursor:pointer;list-style:none;border-bottom:0}
.training-matrix-card>.matrix-person-header{grid-template-columns:auto minmax(0,1fr) auto auto}
.training-matrix-card>summary::-webkit-details-marker{display:none}
.training-matrix-card>summary::after{display:none!important}
.training-matrix-card[open]>summary{border-bottom:1px solid var(--border)}
.matrix-disclosure-label{justify-self:end;color:var(--accent-700);font-size:.68rem;font-weight:900;white-space:nowrap}
.matrix-disclosure-label::after{content:" +"}
.training-matrix-card[open] .matrix-disclosure-label::after{content:" −"}
.matrix-card-body{min-width:0}

.report-section-card{min-width:0;scroll-margin-top:95px}
.report-section-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding:9px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.9);box-shadow:var(--shadow-xs)}
.report-section-nav a{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:9px;color:var(--text-700);font-size:.72rem;font-weight:900;text-decoration:none}
.report-section-nav a:hover{background:var(--accent-50);color:var(--accent-700)}
.report-section-nav a span{min-width:22px;padding:2px 6px;border-radius:999px;background:#e8eef3;text-align:center;font-size:.62rem}
.report-record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-record-list-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-record-card{
  min-width:0;
  overflow:hidden;
  padding:15px;
  border:1px solid var(--border);
  border-left:4px solid var(--brand-700);
  border-radius:15px;
  background:linear-gradient(145deg,#fff,var(--surface-muted));
  box-shadow:var(--shadow-xs);
}
.report-record-card.is-success{border-left-color:var(--success)}
.report-record-card.is-warning{border-left-color:var(--warning)}
.report-record-card.is-danger{border-left-color:var(--danger)}
.report-record-card.is-info{border-left-color:var(--info)}
.report-record-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.report-record-header>div{min-width:0}
.report-record-kicker{display:block;margin-bottom:4px;color:var(--text-600);font-size:.63rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.report-record-header h3{margin:0;font-size:.96rem;overflow-wrap:anywhere}
.report-record-header h3 a{color:inherit}
.report-record-header p{margin:4px 0 0;color:var(--text-600);font-size:.72rem;line-height:1.4;overflow-wrap:anywhere}
.report-record-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}
.report-record-meta-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.report-record-meta-grid>div{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.report-record-meta-grid span,.report-record-meta-grid strong{display:block;overflow-wrap:anywhere}
.report-record-meta-grid span{color:var(--text-600);font-size:.61rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em}
.report-record-meta-grid strong{margin-top:3px;color:var(--text-800);font-size:.7rem;line-height:1.4}
.report-record-note{display:grid;gap:3px;margin-top:11px;padding:11px 12px;border:1px solid #ecd3a3;border-radius:11px;background:var(--warning-soft);font-size:.72rem;overflow-wrap:anywhere}
.report-record-note p{margin:0 0 7px}.report-record-note p:last-child{margin-bottom:0}
.report-record-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--border)}
.report-record-map-link{display:inline-block;margin-top:5px;font-size:.66rem;font-weight:800;color:var(--focus);text-decoration:underline}
.report-record-map-empty{display:inline-block;margin-top:5px;font-size:.66rem;font-weight:700;color:var(--text-500)}
.incomplete-override-form,.support-update-form{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.support-update-form label{font-size:.72rem;font-weight:800;color:var(--text-800)}
.support-update-form textarea{width:100%}
.support-update-form button{justify-self:start}
.incomplete-override-form label{font-size:.74rem;font-weight:800;color:var(--text-800)}
.incomplete-override-form textarea{width:100%}
.incomplete-override-form button{justify-self:start}

.report-period-panel{padding:17px 19px}
.report-period-navigation{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.report-period-navigation>div{text-align:center}
.report-period-navigation strong{display:block;font-size:1rem}
.report-period-filter{display:grid;grid-template-columns:minmax(230px,1fr) minmax(190px,.7fr) auto;gap:13px;align-items:end;padding-top:14px}
.report-period-filter label{margin:0}
.report-period-filter .checkbox-row{min-height:var(--control-height);align-items:center}
.report-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.hours-breakdown-list{display:grid;gap:10px}
.hours-breakdown-card{min-width:0;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted)}
.hours-breakdown-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.hours-breakdown-card h3{min-width:0;margin:0;font-size:.86rem;overflow-wrap:anywhere}
.hours-breakdown-card header>span{flex:0 0 auto;color:var(--accent-700);font-size:.7rem}
.hours-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.hours-metric-grid>div{min-width:0;padding:8px;border:1px solid var(--border);border-radius:9px;background:#fff;text-align:center}
.hours-metric-grid span,.hours-metric-grid strong{display:block}
.hours-metric-grid span{color:var(--text-600);font-size:.57rem;text-transform:uppercase;letter-spacing:.035em;font-weight:850}
.hours-metric-grid strong{margin-top:2px;font-size:.82rem}
.daily-hours-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:7px}
.daily-hours-card{min-width:0;padding:11px 6px;border:1px solid var(--border);border-radius:11px;background:linear-gradient(145deg,#fff,var(--surface-muted));text-align:center}
.daily-hours-card span,.daily-hours-card small{display:block;color:var(--text-600)}
.daily-hours-card span{font-size:.62rem;font-weight:900;text-transform:uppercase}
.daily-hours-card strong{display:block;margin:4px 0;font-size:1rem}
.daily-hours-card small{font-size:.6rem}

.review-queue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.review-item-list{display:grid;gap:10px}
.review-item-card{min-width:0;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted)}
.review-item-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.review-item-card h3{margin:0;font-size:.9rem;overflow-wrap:anywhere}
.review-item-card p{margin:9px 0;color:var(--text-700);font-size:.72rem;line-height:1.5;overflow-wrap:anywhere}
.review-item-card footer{display:flex;justify-content:flex-end;padding-top:9px;border-top:1px solid var(--border)}
.review-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.report-review-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px;align-items:start}
.report-review-layout>.card{margin:0}
.report-review-form{position:sticky;top:100px}
.report-preview-section{padding:14px 0;border-top:1px solid var(--border)}
.report-preview-section:first-of-type{border-top:0}
.report-preview-section h3{margin:0 0 7px;font-size:.8rem}
.report-preview-section p{margin:0;color:var(--text-700);line-height:1.65;overflow-wrap:anywhere}
.report-preview-section.is-warning{margin-top:10px;padding:13px;border:1px solid #ecd3a3;border-radius:12px;background:var(--warning-soft)}

.audit-event-list{display:grid;gap:11px}
.audit-event-card{min-width:0;padding:14px 15px;border:1px solid var(--border);border-left:4px solid var(--info);border-radius:14px;background:linear-gradient(145deg,#fff,var(--surface-muted))}
.audit-event-card.is-success{border-left-color:var(--success)}
.audit-event-card.is-danger{border-left-color:var(--danger)}
.audit-event-header{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;min-width:0}
.audit-event-header>div:first-child{min-width:0}
.audit-event-header h3{margin:0;font-size:.9rem;overflow-wrap:anywhere}
.audit-event-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.audit-event-grid>div{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.audit-event-grid span,.audit-event-grid strong,.audit-event-grid small{display:block;overflow-wrap:anywhere}
.audit-event-grid span{color:var(--text-600);font-size:.59rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em}
.audit-event-grid strong{margin-top:3px;font-size:.7rem}
.audit-event-grid small{margin-top:2px;color:var(--text-600);font-size:.64rem;line-height:1.4}
.audit-event-message{margin:10px 0 0;padding:9px 10px;border-radius:9px;background:#eef3f6;color:var(--text-700);font-size:.7rem;overflow-wrap:anywhere}

@media(max-width:1280px){
  .report-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .report-summary-grid-hours{grid-template-columns:repeat(3,minmax(0,1fr))}
  .matrix-card-grid{grid-template-columns:1fr}
  .matrix-status-grid-training{grid-template-columns:repeat(3,minmax(0,1fr))}
  .review-queue-grid{grid-template-columns:1fr}
  .daily-hours-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
}
@media(max-width:1050px){
  .report-filter-grid,.report-filter-grid-wide,.report-filter-grid-task{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-filter-search{grid-column:1/-1}
  .report-filter-grid .button{width:100%}
  .report-record-meta-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-two-column{grid-template-columns:1fr}
  .report-review-layout{grid-template-columns:1fr}
  .report-review-form{position:relative;top:auto}
  .audit-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .report-summary-grid,.report-summary-grid-compact,.report-summary-grid-hours{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .report-summary-card{min-height:108px;padding:14px 13px 13px 17px}
  .report-summary-card strong{font-size:1.7rem}
  .report-filter-grid,.report-filter-grid-wide,.report-filter-grid-task{grid-template-columns:1fr}
  .report-filter-search{grid-column:auto}
  .matrix-person-header,.training-matrix-card>.matrix-person-header{grid-template-columns:auto minmax(0,1fr);padding:14px}
  .matrix-person-score{grid-column:2;text-align:left;display:flex;align-items:baseline;gap:5px}
  .matrix-person-score strong,.matrix-person-score span{display:inline}
  .matrix-disclosure-label{grid-column:1/-1;justify-self:start;margin-left:61px}
  .matrix-status-grid,.matrix-status-grid-training{grid-template-columns:1fr;padding:11px}
  .matrix-progress-row{padding:10px 12px}
  .matrix-progress-row meter{width:100%}
  .report-record-list,.report-record-list-compact{grid-template-columns:1fr}
  .report-record-meta-grid,.report-record-meta-grid-four{grid-template-columns:1fr 1fr}
  .report-period-navigation{grid-template-columns:1fr;text-align:center}
  .report-period-navigation .button{width:100%}
  .report-period-filter{grid-template-columns:1fr}
  .hours-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .daily-hours-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .audit-event-header{display:block}
  .audit-badge-row{margin-top:8px}
  .audit-event-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .report-summary-grid,.report-summary-grid-compact,.report-summary-grid-hours{grid-template-columns:1fr 1fr}
  .report-summary-card{min-height:101px}
  .report-summary-card small{display:none}
  .matrix-avatar{width:42px;height:42px;flex-basis:42px;border-radius:12px}
  .matrix-disclosure-label{margin-left:55px}
  .matrix-status-heading{display:grid}
  .matrix-status-heading .status-pill{justify-self:start}
  .report-record-header{display:grid}
  .report-record-header .status-pill{justify-self:start}
  .report-record-meta-grid,.report-record-meta-grid-four{grid-template-columns:1fr}
  .report-section-nav a{flex:1 1 auto;justify-content:center}
  .hours-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .daily-hours-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .audit-event-grid{grid-template-columns:1fr}
}

@media print{
  .report-summary-grid,.report-summary-grid-compact,.report-summary-grid-hours{grid-template-columns:repeat(3,1fr);gap:6pt}
  .report-summary-card{min-height:0;padding:8pt;box-shadow:none!important}
  .matrix-card-grid,.training-matrix-list,.report-record-list,.report-record-list-compact,.review-item-list,.audit-event-list{display:block}
  .matrix-person-card,.report-record-card,.review-item-card,.audit-event-card,.hours-breakdown-card{margin-bottom:7pt;box-shadow:none!important;break-inside:avoid}
  .training-matrix-card{display:block}
  .training-matrix-card>summary{border-bottom:1px solid #bbb}
  .training-matrix-card>.matrix-card-body{display:block!important}
  .matrix-disclosure-label{display:none}
  .matrix-status-grid,.matrix-status-grid-training{grid-template-columns:repeat(4,1fr);gap:4pt;padding:6pt}
  .matrix-status-tile{padding:6pt}
  .report-record-meta-grid,.report-record-meta-grid-four,.audit-event-grid{grid-template-columns:repeat(4,1fr)}
  .report-two-column{grid-template-columns:1fr 1fr;gap:8pt}
  .daily-hours-grid{grid-template-columns:repeat(7,1fr)}
}

/* v68 employee self-service, personnel documents and manager feedback */
.break-anywhere{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.break-anywhere a{overflow-wrap:anywhere;word-break:break-word}

.employee-profile-hero{
  display:grid;
  grid-template-columns:minmax(250px,.82fr) minmax(520px,1.65fr) minmax(250px,.82fr);
  align-items:start;
  gap:22px;
}
.employee-profile-hero::before{width:5px}
.employee-profile-summary{display:flex;align-items:flex-start;gap:18px;min-width:0}
.employee-profile-avatar{width:90px;height:112px;flex:0 0 90px;border-radius:22px}
.employee-profile-identity{min-width:0;padding-top:2px}
.employee-profile-identity h1{font-size:clamp(2rem,3vw,3rem);line-height:1.02;overflow-wrap:anywhere}
.employee-profile-identity .subtitle{line-height:1.55;overflow-wrap:anywhere}
.employee-profile-chips{display:grid;grid-template-columns:1fr;align-items:start}
.employee-profile-chips>span{width:max-content;max-width:100%;white-space:normal}
.employee-profile-info{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
  margin:0;
  min-width:0;
}
.employee-profile-info .info-tile{min-width:0;min-height:87px;padding:13px 14px;background:rgba(255,255,255,.88)}
.employee-profile-info .info-tile label{display:block;margin-bottom:7px}
.employee-profile-info .info-tile p,.employee-profile-info .info-tile a{max-width:100%;line-height:1.55;overflow-wrap:anywhere;word-break:break-word}
.employee-profile-actions{min-width:0;padding:2px 0 0}
.employee-profile-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:9px 0 14px}
.employee-profile-action-grid .button,.employee-profile-action-grid button,.employee-profile-action-grid form{width:100%;min-width:0}
.employee-profile-action-grid .button,.employee-profile-action-grid button{min-height:42px;white-space:normal;text-align:center}
.access-level-panel{display:grid;gap:7px;padding-top:14px;border-top:1px solid var(--border)}
.access-level-panel label{font-size:.68rem;color:var(--text-600);text-transform:uppercase;letter-spacing:.07em}
.access-level-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.access-level-controls select,.access-level-controls button{min-height:42px}

.employee-documents-card{margin-top:0}
.employee-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.employee-document-card{
  min-width:0;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:13px;
  padding:15px;
  border:1px solid var(--border);
  border-left:4px solid var(--brand-700);
  border-radius:15px;
  background:linear-gradient(145deg,#fff,var(--surface-muted));
  box-shadow:var(--shadow-xs);
}
.employee-document-card.is-expiring{border-left-color:var(--warning)}
.employee-document-card.is-expired{border-left-color:var(--danger)}
.employee-document-icon,.my-document-icon{
  width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--accent-50);color:var(--accent-700);font-size:.66rem;font-weight:950;letter-spacing:.04em;
}
.employee-document-main{min-width:0}
.employee-document-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.employee-document-heading>div:first-child{min-width:0}
.employee-document-heading h3{margin:0;font-size:.96rem;overflow-wrap:anywhere}
.employee-document-heading .task-requirements{justify-content:flex-end}
.employee-document-meta{display:flex;flex-wrap:wrap;gap:5px 11px;margin-top:10px;color:var(--text-600);font-size:.68rem;line-height:1.45}
.employee-document-meta span{overflow-wrap:anywhere}
.employee-document-main>p{margin:10px 0 0;color:var(--text-700);font-size:.75rem;line-height:1.55;overflow-wrap:anywhere}
.employee-document-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--border)}
.employee-document-actions form{margin:0}

.employee-detail-sections{align-items:start}
.employee-detail-sections>.card{margin:0}

.employees-page-hero .module-hero-actions{max-width:520px}
.employee-action-tiles{margin:0 0 18px}
.employee-directory-card{padding:clamp(18px,2vw,24px)}
.employee-directory-heading{margin-bottom:14px}
.employee-filter-panel{margin-bottom:18px}
.employee-filter-grid{grid-template-columns:minmax(250px,1.5fr) minmax(160px,.65fr) minmax(180px,.7fr) auto}
.employee-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.employee-directory-card-item{
  min-width:0;display:flex;flex-direction:column;gap:13px;padding:16px;
  border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,#fff,var(--surface-muted));box-shadow:var(--shadow-xs)
}
.employee-directory-card-top{display:flex;align-items:center;gap:13px;min-width:0}
.employee-directory-name{min-width:0}
.employee-directory-name h3{margin:0 0 3px;font-size:1.02rem;overflow-wrap:anywhere}
.employee-directory-name p{margin:0;color:var(--text-600);font-size:.75rem;overflow-wrap:anywhere}
.avatar-64{width:64px!important;height:64px!important;flex:0 0 64px!important;border-radius:17px!important}
.avatar-64 img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.employee-directory-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.employee-directory-contact>span{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:#fff}
.employee-directory-contact strong,.employee-directory-contact em{display:block;min-width:0}
.employee-directory-contact strong{margin-bottom:3px;color:var(--text-600);font-size:.59rem;text-transform:uppercase;letter-spacing:.055em}
.employee-directory-contact em{color:var(--text-700);font-size:.7rem;font-style:normal;line-height:1.45}
.employee-directory-badges{display:flex;gap:6px;flex-wrap:wrap}
.employee-directory-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}

.my-profile-hero{align-items:center}
.my-profile-layout,.employment-document-form-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}
.my-profile-layout>.card,.employment-document-form-layout>.card{margin:0}
.my-profile-layout .form-card,.employee-document-form-card{max-width:none}
.my-profile-photo-row{padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted);margin-bottom:15px}
.my-profile-photo-row .field-row{margin:0}
.compact-section{padding:15px;margin-bottom:15px}
.compact-section .section-heading-row{margin-bottom:13px;padding-bottom:10px}
.my-profile-layout .two-col,.my-profile-layout .three-col,.employment-document-form-layout .two-col,.employment-document-form-layout .three-col{max-width:none}
.checkbox-card{
  min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:9px;row-gap:3px;
  align-items:start;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)
}
.checkbox-card input{grid-row:1/3;margin-top:3px}
.checkbox-card label{margin:0;font-size:.78rem}
.checkbox-card span{color:var(--text-600);font-size:.68rem;line-height:1.45}
.checkbox-card .errorlist{grid-column:1/-1}
.document-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:15px}
.document-current-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;margin-bottom:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted)}
.document-current-file div{min-width:0}
.document-current-file strong,.document-current-file span{display:block;overflow-wrap:anywhere}
.document-current-file span{margin-top:3px;color:var(--text-600);font-size:.72rem}
.guidance-card{position:sticky;top:96px;background:linear-gradient(145deg,#fff,var(--accent-50))}
.clean-list{margin:12px 0 18px;padding-left:20px;color:var(--text-700);line-height:1.65}
.privacy-note{margin-top:16px;padding:13px;border:1px solid #d5e4d7;border-radius:12px;background:var(--success-soft)}
.privacy-note strong,.privacy-note p{display:block;margin:0}
.privacy-note p{margin-top:4px;color:var(--text-700);font-size:.72rem;line-height:1.5}
.my-employment-documents{position:sticky;top:96px}
.my-document-row{display:grid;grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted)}
.my-document-row.is-expired{border-left:4px solid var(--danger)}
.my-document-icon{width:43px;height:43px;border-radius:12px}
.my-document-main{min-width:0;display:grid}
.my-document-main strong,.my-document-main span,.my-document-main small{overflow-wrap:anywhere}
.my-document-main span{color:var(--text-700);font-size:.71rem}
.my-document-main small{margin-top:3px;color:var(--text-600);font-size:.65rem;line-height:1.45}

.manager-feedback-section{margin:0}
.manager-feedback-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.manager-feedback-card{
  min-width:0;display:flex;align-items:flex-start;gap:12px;padding:13px;
  border:1px solid var(--border);border-left:4px solid var(--info);border-radius:14px;background:var(--surface-muted);color:var(--text-900);text-decoration:none
}
.manager-feedback-card:hover{background:#fff;border-color:#b9c9d8;box-shadow:var(--shadow-sm);text-decoration:none}
.manager-feedback-card.status-ok{border-left-color:var(--success)}
.manager-feedback-card.status-danger{border-left-color:var(--danger)}
.manager-feedback-card.status-neutral{border-left-color:var(--text-500)}
.manager-feedback-mark{width:39px;height:39px;flex:0 0 39px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--info-soft);color:var(--info);font-weight:950}
.manager-feedback-card.status-ok .manager-feedback-mark{background:var(--success-soft);color:var(--success)}
.manager-feedback-card.status-danger .manager-feedback-mark{background:var(--danger-soft);color:var(--danger)}
.manager-feedback-main{min-width:0;display:grid;gap:7px;flex:1}
.manager-feedback-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.manager-feedback-heading>span{min-width:0}
.manager-feedback-heading small,.manager-feedback-heading strong{display:block;overflow-wrap:anywhere}
.manager-feedback-heading small{color:var(--text-600);font-size:.61rem;text-transform:uppercase;letter-spacing:.055em;font-weight:900}
.manager-feedback-heading strong{margin-top:2px;font-size:.78rem}
.manager-feedback-comment{padding:9px 10px;border-radius:10px;background:#fff;color:var(--text-700);font-size:.72rem;line-height:1.5;overflow-wrap:anywhere}
.manager-feedback-comment.is-empty{color:var(--text-500);font-style:italic}
.manager-feedback-main>small{color:var(--text-600);font-size:.62rem;line-height:1.45}

@media(max-width:1450px){
  .employee-profile-hero{grid-template-columns:minmax(250px,.8fr) minmax(500px,1.55fr)}
  .employee-profile-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);gap:18px;align-items:end;padding-top:14px;border-top:1px solid var(--border)}
  .employee-profile-actions>.section-kicker{grid-column:1/-1;margin-bottom:-8px}
  .employee-profile-action-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
  .access-level-panel{padding:0;border-top:0}
  .employee-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1080px){
  .employee-profile-hero{grid-template-columns:1fr}
  .employee-profile-actions{grid-column:auto;grid-template-columns:1fr;padding-top:14px}
  .employee-profile-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .employee-profile-info{grid-template-columns:repeat(2,minmax(0,1fr))}
  .employee-document-grid,.manager-feedback-list{grid-template-columns:1fr}
  .employee-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .employee-filter-grid .report-filter-actions{grid-column:1/-1}
  .my-profile-layout,.employment-document-form-layout{grid-template-columns:1fr}
  .my-employment-documents,.guidance-card{position:relative;top:auto}
}
@media(max-width:720px){
  .employee-profile-summary{display:grid;grid-template-columns:76px minmax(0,1fr);gap:13px}
  .employee-profile-avatar{width:76px;height:92px;flex-basis:76px;border-radius:18px}
  .employee-profile-identity h1{font-size:2rem}
  .employee-profile-chips{grid-column:1/-1}
  .employee-profile-info,.employee-profile-action-grid,.employee-directory-grid,.employee-directory-contact,.employee-filter-grid,.document-checkbox-grid{grid-template-columns:1fr}
  .employee-filter-grid .report-filter-actions{grid-column:auto}
  .access-level-controls{grid-template-columns:1fr}
  .employee-document-card{grid-template-columns:42px minmax(0,1fr);padding:13px}
  .employee-document-icon{width:42px;height:42px}
  .employee-document-heading{display:grid}
  .employee-document-heading .task-requirements{justify-content:flex-start}
  .employee-document-actions{justify-content:stretch}
  .employee-document-actions .button,.employee-document-actions button,.employee-document-actions form{width:100%}
  .document-current-file{display:grid}
  .my-document-row{grid-template-columns:40px minmax(0,1fr)}
  .my-document-row>a{grid-column:1/-1;width:100%}
  .manager-feedback-heading{display:grid}
  .manager-feedback-heading .status-chip{justify-self:start}
}
@media(max-width:480px){
  .employee-profile-summary{grid-template-columns:1fr}
  .employee-profile-avatar{margin:0}
  .employee-profile-identity h1{font-size:1.8rem}
  .employee-profile-info{grid-template-columns:1fr}
  .employee-profile-action-grid{grid-template-columns:1fr}
  .employee-directory-card-top{align-items:flex-start}
  .manager-feedback-card{display:grid;grid-template-columns:39px minmax(0,1fr)}
  .manager-feedback-card>.row-arrow{display:none}
}

@media print{
  .employee-profile-hero{display:grid;grid-template-columns:1fr 2fr;gap:10pt}
  .employee-profile-actions,.employee-document-actions{display:none!important}
  .employee-document-grid{grid-template-columns:1fr 1fr}
  .employee-document-card,.employee-directory-card-item,.manager-feedback-card{box-shadow:none!important;break-inside:avoid}
}

/* v69 compact management views, permission groups and shift progress -------- */
.compact-hero{padding:20px 22px;align-items:center}.compact-hero h1{font-size:clamp(1.55rem,2vw,2.05rem);margin-bottom:5px}.compact-hero p{font-size:.83rem;line-height:1.5}.compact-card{padding:17px 18px}.compact-heading-row{margin-bottom:13px}.compact-heading-row h2{font-size:1.05rem}.compact-heading-row p{margin:4px 0 0;font-size:.75rem}.compact-actions{margin:12px 0 0}.compact-module-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;margin:0 0 14px}.compact-module-links a{min-width:0;padding:11px 13px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.9);box-shadow:var(--shadow-xs);color:var(--text-800);text-decoration:none}.compact-module-links strong,.compact-module-links span{display:block}.compact-module-links strong{font-size:.77rem}.compact-module-links span{margin-top:2px;color:var(--text-600);font-size:.66rem;line-height:1.35}.compact-module-links a:hover{border-color:var(--accent-500);box-shadow:var(--shadow-sm);text-decoration:none}

.compact-filter-bar{display:grid;grid-template-columns:minmax(260px,1.8fr) minmax(145px,.7fr) auto;gap:10px;align-items:end;padding:13px 14px;margin-bottom:14px}.compact-filter-bar label{display:grid;gap:5px;margin:0;color:var(--text-600);font-size:.66rem;text-transform:uppercase;letter-spacing:.055em}.compact-filter-bar input,.compact-filter-bar select{width:100%;max-width:none;min-height:40px;padding:8px 10px;border-radius:10px;font-size:.78rem;text-transform:none;letter-spacing:normal}.compact-filter-actions{display:flex;gap:7px;align-items:center}.compact-filter-actions .button{min-height:40px;padding:8px 12px}.compact-filter-search{min-width:0}

/* Compact employee directory */
.compact-directory-card{padding:14px 15px}.compact-directory-card .compact-filter-bar{grid-template-columns:minmax(260px,1.7fr) minmax(135px,.6fr) minmax(165px,.72fr) minmax(155px,.68fr) auto;padding:0 0 13px;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none;background:transparent}.compact-employee-list{display:grid}.compact-employee-row{display:grid;grid-template-columns:minmax(270px,1.35fr) minmax(260px,1fr) minmax(230px,.85fr) auto;gap:13px;align-items:center;min-width:0;padding:10px 3px;border-bottom:1px solid var(--border)}.compact-employee-row:last-child{border-bottom:0}.compact-employee-row:hover{background:linear-gradient(90deg,rgba(60,173,73,.045),transparent);border-radius:11px}.compact-employee-person{display:flex;align-items:center;gap:11px;min-width:0;color:var(--text-900);text-decoration:none}.compact-employee-person:hover{text-decoration:none}.compact-employee-photo{width:44px;height:52px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted);font-size:.7rem;font-weight:950;color:var(--accent-700)}.compact-employee-photo img{width:100%;height:100%;object-fit:cover}.compact-employee-photo.initials{background:linear-gradient(145deg,var(--accent-100),#fff)}.compact-employee-identity{min-width:0}.compact-employee-identity strong,.compact-employee-identity small{display:block;overflow-wrap:anywhere}.compact-employee-identity strong{font-size:.84rem;color:var(--text-900)}.compact-employee-identity small{margin-top:3px;color:var(--text-600);font-size:.67rem;line-height:1.35}.compact-employee-contact{display:grid;grid-template-columns:1.15fr .85fr;gap:8px;min-width:0}.compact-employee-contact>span{min-width:0}.compact-employee-contact small,.compact-employee-contact strong{display:block}.compact-employee-contact small{color:var(--text-500);font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.compact-employee-contact strong{margin-top:2px;color:var(--text-700);font-size:.69rem;font-weight:750;overflow-wrap:anywhere}.compact-employee-status{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.compact-employee-status .pill{font-size:.6rem;padding:4px 7px}.compact-employee-actions{display:flex;gap:6px;justify-content:flex-end}.compact-employee-actions .button{white-space:nowrap}

/* Compact SMS directory */
.staff-sms-layout-compact{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:start}.staff-sms-layout-compact>.card{margin:0}.staff-sms-compose{min-width:0}.staff-sms-tools-compact{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:10px}.staff-sms-tools-compact label{flex:1;margin:0}.staff-sms-tools-compact input{max-width:none;min-height:39px}.staff-sms-dense-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-height:430px;overflow:auto;padding:3px 5px 3px 2px;scrollbar-width:thin}.staff-sms-dense-row{display:grid;grid-template-columns:auto 30px minmax(0,1fr) auto;gap:7px;align-items:center;min-width:0;margin:0;padding:7px 8px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease}.staff-sms-dense-row:hover{border-color:#a9cbb0;background:#f7fbf7}.staff-sms-dense-row:has(input:checked){border-color:var(--accent-500);background:var(--accent-50)}.staff-sms-dense-row.is-not-ready{background:var(--surface-muted);opacity:.78}.staff-sms-dense-row input{margin:0}.staff-sms-mini-avatar{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--brand-100);color:var(--brand-800);font-size:.58rem;font-weight:950}.staff-sms-dense-main{min-width:0}.staff-sms-dense-main strong,.staff-sms-dense-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-sms-dense-main strong{font-size:.69rem}.staff-sms-dense-main small{margin-top:1px;color:var(--text-600);font-size:.6rem}.staff-sms-ready-dot{width:8px;height:8px;border-radius:999px;background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft)}.staff-sms-ready-dot.is-ready{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.compact-message-field{margin:12px 0 0}.compact-message-field textarea{max-width:none;min-height:105px;resize:vertical}.field-meta-row{display:flex;justify-content:space-between;gap:10px;margin-top:4px;color:var(--text-500);font-size:.64rem}.staff-sms-guidance{position:sticky;top:94px}.staff-sms-guidance h2{font-size:1rem}.staff-sms-guidance .clean-list{font-size:.7rem;line-height:1.5}.dense-table th,.dense-table td{padding:7px 8px;font-size:.68rem}.sms-message-cell{max-width:460px;white-space:normal;overflow-wrap:anywhere}
.hours-compare-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.hours-compare-card{border:1px solid var(--border);border-radius:14px;padding:14px;background:#fff}
.hours-compare-card h3{margin:0 0 10px;font-size:.9rem}
.hours-compare-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hours-compare-figures small{display:block;font-size:.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--text-600)}
.hours-compare-figures strong{display:block;font-size:1.05rem;margin-top:2px}
.hours-compare-figures .pill{margin-top:3px}
.onboarding-card .card-head{align-items:flex-start}
.onboarding-progress{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:var(--warning-soft);color:#92400e;font-weight:900;font-size:.85rem;white-space:nowrap}
.onboarding-progress.is-complete{background:#dcfce7;color:#166534}
.onboarding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:6px}
.onboarding-section h3{margin:0 0 8px;font-size:.85rem}
.onboarding-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.onboarding-item{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.onboarding-item.is-done{background:#f0fdf4;border-color:#bbf7d0}
.onboarding-check{flex:0 0 auto;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#fff;border:1px solid var(--border);color:var(--text-500);font-weight:900}
.onboarding-item.is-done .onboarding-check{background:#16a34a;border-color:#16a34a;color:#fff}
.onboarding-item-main{min-width:0;display:grid}
.onboarding-item-main strong{font-size:.75rem}
.onboarding-item-main small{color:var(--text-600);font-size:.65rem;margin-top:1px}
/* Rostering gate status on the onboarding card (employee profile + My Details) */
.onboarding-gate-banner{margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:.78rem;line-height:1.4}
.onboarding-gate-banner.is-blocked{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.onboarding-gate-banner.is-ready{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.onboarding-gate-banner.is-off{background:#fffbeb;border-color:#fde68a;color:#92400e}
.onboarding-section>.button{margin-top:10px}
.shift-staff-option.is-onboarding,.staff-roster-card.is-onboarding{opacity:.72}
.staff-roster-card.is-onboarding small .pill{margin-right:4px}
.yp-filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.yp-filter-bar label{display:grid;gap:4px;font-size:.7rem;font-weight:800;color:var(--text-600)}
.yp-filter-bar label span{text-transform:uppercase;letter-spacing:.04em}
.yp-filter-search{flex:1;min-width:200px}
.yp-filter-bar input,.yp-filter-bar select{max-width:none}
.yp-filter-actions{display:flex;gap:8px}
.yp-group{margin-top:22px}
.yp-group__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.yp-group__head h2{margin:2px 0 0;font-size:1.05rem}
.yp-inactive-group{margin-top:26px}
.yp-inactive-group>summary{cursor:pointer;list-style:none}
.yp-inactive-group>summary::-webkit-details-marker{display:none}
.yp-inactive-group>summary::after{content:"Show ▾";margin-left:auto;font-size:.72rem;font-weight:700;color:var(--muted)}
.yp-inactive-group[open]>summary::after{content:"Hide ▴"}
.yp-inactive-group[open]>summary{margin-bottom:14px}
.yp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.yp-card{display:flex;flex-direction:column;gap:10px;padding:15px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.yp-card.has-warning{border-left:4px solid var(--danger)}
.yp-card.is-inactive{opacity:.72}
.yp-card__main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-decoration:none;color:inherit}
.yp-card__main:hover{text-decoration:none}
.yp-card__main:hover .yp-card__name{color:#15803d}
.yp-card__avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#16283f,#26466c);color:#fff;font-size:18px;font-weight:900}
.yp-card__identity{min-width:0;display:grid}
.yp-card__name{font-size:1rem;font-weight:900;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yp-card__meta{color:var(--text-600);font-size:.72rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yp-card__warning{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 10px;color:#9a3412;font-size:.72rem;overflow-wrap:anywhere}
.yp-card__warning svg{width:14px;height:14px;vertical-align:-2px;margin-right:2px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.yp-card__flags{display:flex;flex-wrap:wrap;gap:5px}
.yp-flag{background:#fee2e2;color:#991b1b;border-radius:999px;padding:3px 8px;font-size:.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.yp-card__actions{display:flex;gap:8px;margin-top:auto;padding-top:4px}
@media(max-width:700px){.yp-grid{grid-template-columns:1fr}.yp-filter-bar{flex-direction:column;align-items:stretch}}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.settings-group h2{margin:0 0 3px;font-size:1rem}
.settings-group__intro{color:var(--muted);font-size:.72rem;margin:0 0 14px}
.settings-check{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center}
.settings-check input{width:auto;grid-row:1;grid-column:1}
.settings-check label{grid-row:1;grid-column:2;margin:0}
.settings-check .helptext,.settings-check .errorlist{grid-column:1/-1;margin-left:0}
.settings-save-bar{position:sticky;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding:12px 16px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-strong)}
.settings-current summary{cursor:pointer;font-weight:900}
.settings-current[open] summary{margin-bottom:12px}
.settings-danger{border-color:#f0c4c4;background:#fffafa}
.settings-danger .card-head p{color:#8a3a3a}
.ips-yp-fieldset{border:0;padding:0;margin:14px 0 0;min-width:0}
.ips-yp-fieldset legend{padding:0;margin:0 0 6px;font-weight:800;font-size:.9rem}
.ips-yp-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ips-yp-option{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;cursor:pointer;background:#fff}
.ips-yp-option:hover{border-color:#9fb2c2}
.ips-yp-option[hidden]{display:none}
.ips-yp-option span{display:flex;flex-direction:column;min-width:0}
.ips-yp-option small{color:var(--muted);font-size:11px}
.vehicle-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 20px;align-items:start}
.vehicle-form-grid .field-row-wide{grid-column:1/-1}
.vehicle-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:14px 0}
.vehicle-facts>div{display:flex;flex-direction:column;gap:2px}
.vehicle-facts strong{font-size:1rem}
.vehicle-retired>summary{cursor:pointer;font-weight:800}
.vehicle-retired[open]>summary{margin-bottom:12px}
.report-period{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;justify-content:space-between}
.report-period__tabs{display:flex;gap:6px;flex-wrap:wrap}
.report-period__nav{display:flex;align-items:center;gap:14px}
.report-period__filter,.report-period__custom{margin:0}
.reconcile-key{padding:11px 16px;margin-bottom:12px}
.reconcile-key .pill{margin:0 1px}
.task-detail-list{margin:5px 0 0;padding:0;list-style:none;font-size:12px}
.task-detail-list li{margin:3px 0;line-height:1.4}
.admin-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:0 0 18px}
.chart-card{padding:14px}
.chart-card .section-heading-row{margin-bottom:6px}
.chart-card h2{font-size:1rem}
.dashboard-chart{width:100%;max-width:330px;height:auto;display:block;margin:2px auto 0;overflow:visible}
.chart-axis{stroke:var(--line);stroke-width:1}
.chart-label{font-size:9px;fill:var(--muted)}
.chart-value{font-size:9px;font-weight:800;fill:var(--ink)}
.chart-legend{display:flex;gap:14px;font-size:11px;font-weight:700;margin:0 0 2px}
.chart-legend__rostered{color:#64748b}
.chart-legend__actual{color:#2f9e44}
.chart-bar-navy{fill:#334155}
.chart-bar-slate{fill:#94a3b8}
.chart-bar-green{fill:#2f9e44}
.chart-bar-blue{fill:#1d4ed8}
.chart-bar-amber{fill:#e8a33d}
.chart-bar-red{fill:#dc3545}
.score-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px 20px;margin:0 0 18px}
.score-card__head{margin-bottom:12px}
.score-card__head h3{margin:2px 0 0;font-size:1.05rem}
.score-card__figures{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.score-figure{border:1px solid var(--line);border-radius:14px;padding:14px;background:#f8fafc;text-align:center}
.score-figure__label{display:block;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--text-600)}
.score-figure__value{display:block;font-size:2.4rem;line-height:1;font-weight:950;letter-spacing:-.04em;color:#0f172a;margin-top:6px}
.score-figure__sub{display:block;margin-top:6px;font-size:.72rem;color:var(--text-600);font-weight:700}
.score-card__placements{margin-top:14px}
.score-placement-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.score-placement{background:#eef2f7;border-radius:999px;padding:6px 11px;font-size:.72rem;color:#334155}
.score-placement strong{margin-right:5px}
.score-card__note{margin:12px 0 0;font-size:.68rem;color:var(--text-500);line-height:1.5}
@media(max-width:560px){.score-card__figures{grid-template-columns:1fr}}
.messaging-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0 0 14px}
.messaging-channels legend{font-weight:800;margin-bottom:8px;padding:0}
.messaging-channel{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;cursor:pointer;background:#fff}
.messaging-channel:has(input:checked){border-color:var(--accent-500);background:var(--accent-50)}
.messaging-channel input{width:auto;margin-top:2px}
.messaging-channel span{display:grid}
.messaging-channel small{color:var(--muted);font-size:11px;margin-top:2px}
@media(max-width:700px){.messaging-channels{grid-template-columns:1fr}}

/* Full-width compact compliance and training matrices */
.matrix-page-hero{margin-bottom:12px}.matrix-summary-strip,.shift-centre-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 12px}.matrix-summary-strip>div,.shift-centre-summary>div{min-width:0;padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--success);border-radius:12px;background:#fff;box-shadow:var(--shadow-xs)}.matrix-summary-strip>div.is-warning,.shift-centre-summary>div.is-warning{border-left-color:var(--warning)}.matrix-summary-strip>div.is-info{border-left-color:var(--info)}.matrix-summary-strip>div.is-danger,.shift-centre-summary>div.is-danger{border-left-color:var(--danger)}.matrix-summary-strip span,.shift-centre-summary span{display:block;color:var(--text-500);font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.055em}.matrix-summary-strip strong,.shift-centre-summary strong{display:block;margin-top:3px;font-size:1.28rem;line-height:1}.matrix-filter-bar{grid-template-columns:minmax(300px,1.6fr) minmax(190px,.7fr) auto}.matrix-compact-list{display:grid;gap:7px}.matrix-compact-row{min-width:0;margin:0;padding:0;border:1px solid var(--border);border-left:4px solid var(--success);border-radius:13px;background:#fff;box-shadow:var(--shadow-xs);overflow:hidden}.matrix-compact-row.has-action{border-left-color:var(--warning)}.matrix-compact-person{display:grid;grid-template-columns:40px minmax(180px,1.2fr) auto minmax(110px,.48fr) auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,#fff,var(--surface-muted))}.matrix-compact-person .matrix-avatar{width:38px;height:38px;flex-basis:38px;border-radius:10px;font-size:.65rem}.matrix-person-copy{min-width:0}.matrix-person-copy strong,.matrix-person-copy a,.matrix-person-copy small{display:block}.matrix-person-name{color:var(--text-900);font-size:.76rem;font-weight:900;overflow-wrap:anywhere}.matrix-person-copy small{margin-top:1px;color:var(--text-500);font-size:.59rem}.matrix-compact-score{display:flex;align-items:baseline;gap:3px;white-space:nowrap}.matrix-compact-score strong{font-size:.88rem}.matrix-compact-score small{color:var(--text-500);font-size:.56rem}.matrix-compact-progress{display:grid;grid-template-columns:minmax(70px,1fr) auto;gap:6px;align-items:center}.matrix-compact-progress small{color:var(--text-600);font-size:.58rem;font-weight:850}.matrix-compact-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:1px;padding:0;background:var(--border)}.matrix-compact-cell{min-width:0;min-height:74px;padding:10px 12px;border:0;border-radius:0;background:#fff}.matrix-compact-cell.is-success{background:#f7fcf8}.matrix-compact-cell.is-warning{background:#fffbf2}.matrix-compact-cell.is-danger{background:#fff7f7}.matrix-compact-cell.is-info{background:#f5f9ff}.matrix-compact-cell.is-neutral{background:#f8fafc}.matrix-compact-cell-main{display:flex;align-items:flex-start;justify-content:space-between;gap:5px;min-width:0}.matrix-compact-cell h3{min-width:0;margin:0;color:var(--text-800);font-size:.74rem;font-weight:800;line-height:1.3;overflow-wrap:break-word;word-break:normal;hyphens:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.matrix-compact-cell .status-pill{flex:0 0 auto;padding:3px 7px;font-size:.6rem}.matrix-compact-cell-meta{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:8px;color:var(--text-500);font-size:.68rem}.matrix-compact-cell-meta span{min-width:0;overflow-wrap:anywhere}.matrix-compact-cell-meta a{font-weight:850;white-space:nowrap}
progress{width:100%;height:7px;border:0;border-radius:999px;overflow:hidden;background:#e6edf2}progress::-webkit-progress-bar{background:#e6edf2;border-radius:999px}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--accent-500),var(--accent-700));border-radius:999px}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--accent-500),var(--accent-700));border-radius:999px}

/* Current Shift Centre */
.shift-centre-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.shift-progress-list{display:grid;gap:8px}.shift-progress-card{border:1px solid var(--border);border-left:4px solid var(--info);border-radius:13px;background:#fff;box-shadow:var(--shadow-xs);overflow:hidden}.shift-progress-card.is-ready{border-left-color:var(--success)}.shift-progress-card.is-not-started{border-left-color:var(--warning)}.shift-progress-header{display:grid;grid-template-columns:40px minmax(200px,1fr) auto auto;gap:10px;align-items:center;padding:9px 11px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,#fff,var(--surface-muted))}.shift-progress-avatar{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--brand-100);color:var(--brand-800);font-size:.63rem;font-weight:950}.shift-progress-identity{min-width:0}.shift-progress-identity strong,.shift-progress-identity small{display:block}.shift-progress-identity strong{font-size:.78rem}.shift-progress-identity small{margin-top:2px;color:var(--text-600);font-size:.61rem;overflow-wrap:anywhere}.shift-progress-metrics{display:grid;grid-template-columns:minmax(180px,1.15fr) minmax(160px,.9fr) repeat(3,minmax(135px,.72fr));gap:1px;background:var(--border)}.shift-progress-metric,.shift-progress-check{min-width:0;padding:9px 10px;background:#fff}.shift-progress-metric>span{display:flex;justify-content:space-between;gap:7px;margin-bottom:7px}.shift-progress-metric strong,.shift-progress-metric em{font-size:.62rem}.shift-progress-metric em{font-style:normal;color:var(--text-600);font-weight:850}.shift-progress-check{display:grid;grid-template-columns:27px minmax(0,1fr);gap:8px;align-items:center}.shift-progress-check>span{width:27px;height:27px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--warning-soft);color:#8a5c12;font-size:.7rem;font-weight:950}.shift-progress-check.is-complete>span{background:var(--success-soft);color:var(--success)}.shift-progress-check.is-ready-next>span{background:var(--info-soft);color:var(--info)}.shift-progress-check strong,.shift-progress-check small{display:block}.shift-progress-check strong{font-size:.62rem}.shift-progress-check small{margin-top:2px;color:var(--text-500);font-size:.55rem;line-height:1.25}.shift-centre-secondary{grid-template-columns:1fr 1fr}.compact-list{display:grid}.compact-record-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;min-width:0;padding:9px 2px;border-bottom:1px solid var(--border)}.compact-record-row:last-child{border-bottom:0}.compact-record-main{min-width:0}.compact-record-main strong,.compact-record-main span{display:block;overflow-wrap:anywhere}.compact-record-main strong{font-size:.73rem}.compact-record-main span{margin-top:2px;color:var(--text-600);font-size:.62rem;line-height:1.4}.compact-record-meta{display:flex;gap:5px;align-items:center;color:var(--text-600);font-size:.62rem}.compact-record-actions{display:flex;gap:5px;justify-content:flex-end}

/* Handover on staff and shift dashboards */
.incoming-handover-panel{position:relative;z-index:1;margin-top:12px;padding:11px 12px;border:1px solid rgba(255,255,255,.15);border-radius:13px;background:rgba(255,255,255,.075)}.incoming-handover-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.incoming-handover-heading .section-kicker{margin:0;color:#9ae7a0}.incoming-handover-heading small{color:#b7c5d5;font-size:.61rem}.incoming-handover-panel p{margin:7px 0 0;color:#f3f7fb;font-size:.72rem;line-height:1.5;overflow-wrap:anywhere}.incoming-handover-panel p.small{color:#b8c6d5}.staff-shift-progress-strip{grid-template-columns:repeat(4,1fr)}.staff-shift-progress-strip progress{height:5px;margin-top:7px}.incoming-handover-card{border-left:4px solid var(--info)}.handover-copy{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--info-soft);color:var(--text-800);font-size:.78rem;line-height:1.65;overflow-wrap:anywhere}

/* Custom access groups */
.permission-group-form{padding:20px}.permission-group-identity{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(320px,1.35fr) auto;gap:14px;align-items:start;margin-bottom:18px}.permission-group-identity .field-row{margin:0}.permission-group-identity input,.permission-group-identity textarea{max-width:none}.permission-group-identity textarea{min-height:82px}.check-row{display:flex;align-items:flex-start;gap:9px;margin-top:27px;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted)}.check-row input{margin-top:2px}.check-row strong,.check-row small{display:block}.check-row small{margin-top:2px;color:var(--text-600);font-size:.63rem;line-height:1.35}.permission-table{border:1px solid var(--border);border-radius:13px;overflow:hidden}.permission-table-head,.permission-table-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,.9fr);gap:14px;align-items:center}.permission-table-head{padding:8px 12px;background:var(--brand-950);color:#fff;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.permission-table-row{padding:9px 12px;border-top:1px solid var(--border)}.permission-table-row:first-of-type{border-top:0}.permission-table-row strong,.permission-table-row small{display:block}.permission-table-row strong{font-size:.72rem}.permission-table-row small{margin-top:2px;color:var(--text-600);font-size:.61rem;line-height:1.35}.permission-choice-row ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0;padding:0;list-style:none}.permission-choice-row label{display:flex;align-items:center;gap:6px;margin:0;padding:7px 8px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:.64rem;font-weight:800}.permission-choice-row input{margin:0}.compact-page-header{padding:20px 22px}

/* Employee-profile alignment and long contact values */
.employee-profile-info .info-tile{overflow:hidden}.employee-profile-info .info-tile p{min-width:0;margin:0}.employee-profile-info .info-tile a{display:inline;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.access-level-controls{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto}

/* Cleaner authentication fields: no grey boxes inside the inputs */
.auth-input-icon{left:15px;width:auto;height:auto;padding:0;border-radius:0;background:transparent;color:#607287;font-size:.62rem}.auth-lock-icon{letter-spacing:.08em}.auth-input-wrap input:not([type=checkbox]):not([type=radio]){padding-left:47px;background:#fff}.password-toggle{right:11px;min-height:34px;padding:6px 9px;border:1px solid #d4dee7;background:#fff;color:#42546a}.password-toggle:hover{background:#f7fafc;border-color:#b9c8d5}.auth-field.has-error .auth-input-icon{color:var(--danger)}

@media(max-width:1240px){
  .compact-employee-row{grid-template-columns:minmax(240px,1.15fr) minmax(220px,.9fr) minmax(185px,.75fr) auto}
  .staff-sms-dense-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shift-progress-metrics{grid-template-columns:repeat(3,minmax(150px,1fr))}.shift-progress-metric-wide{grid-column:span 2}
}
@media(max-width:980px){
  .compact-directory-card .compact-filter-bar,.compact-filter-bar,.matrix-filter-bar{grid-template-columns:1fr 1fr}.compact-filter-search{grid-column:1/-1}.compact-filter-actions{justify-content:flex-end}
  .compact-employee-row{grid-template-columns:minmax(240px,1fr) minmax(220px,1fr) auto}.compact-employee-status{grid-column:1/3;padding-left:55px}.compact-employee-actions{grid-column:3;grid-row:1/3}
  .staff-sms-layout-compact{grid-template-columns:1fr}.staff-sms-guidance{position:relative;top:auto}.matrix-compact-person{grid-template-columns:40px minmax(170px,1fr) auto auto}.matrix-compact-progress{grid-column:2/4}.matrix-compact-person>.status-pill{grid-column:4;grid-row:2}
  .shift-progress-metrics{grid-template-columns:repeat(2,minmax(150px,1fr))}.shift-progress-metric-wide{grid-column:auto}.shift-progress-header{grid-template-columns:40px minmax(180px,1fr) auto}.shift-progress-header .button{grid-column:2/4;justify-self:start}
  .permission-group-identity{grid-template-columns:1fr 1fr}.check-row{grid-column:1/-1;margin-top:0}.permission-table-head,.permission-table-row{grid-template-columns:minmax(220px,1fr) minmax(300px,1fr)}
  .access-level-controls{grid-template-columns:1fr 1fr}.access-level-controls button{grid-column:1/-1}
}
@media(max-width:720px){
  .compact-hero{padding:18px}.compact-hero .module-hero-actions{width:100%}.compact-hero .module-hero-actions .button{flex:1 1 auto}
  .matrix-summary-strip,.shift-centre-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-summary-strip>div:last-child{grid-column:1/-1}
  .compact-filter-bar,.compact-directory-card .compact-filter-bar,.matrix-filter-bar{grid-template-columns:1fr}.compact-filter-search{grid-column:auto}.compact-filter-actions{justify-content:stretch}.compact-filter-actions .button{flex:1}
  .compact-employee-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 0}.compact-employee-person{grid-column:1}.compact-employee-contact{grid-column:1/-1;padding-left:55px}.compact-employee-status{grid-column:1/-1;padding-left:55px}.compact-employee-actions{grid-column:2;grid-row:1;align-self:start}
  .staff-sms-dense-grid{grid-template-columns:1fr;max-height:480px}.staff-sms-tools-compact{align-items:stretch;flex-direction:column}.staff-sms-tools-compact .mini-actions{justify-content:flex-start}
  .matrix-compact-person{grid-template-columns:38px minmax(0,1fr) auto;gap:8px}.matrix-compact-score{grid-column:3}.matrix-compact-progress{grid-column:2/4}.matrix-compact-person>.status-pill{grid-column:2/4;grid-row:auto;justify-self:start}.matrix-compact-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shift-progress-header{grid-template-columns:38px minmax(0,1fr)}.shift-progress-header>.status-pill{grid-column:2;justify-self:start}.shift-progress-header .button{grid-column:2;justify-self:start}.shift-progress-metrics{grid-template-columns:1fr 1fr}.shift-progress-metric-wide{grid-column:1/-1}.shift-centre-secondary{grid-template-columns:1fr}
  .staff-shift-progress-strip{grid-template-columns:1fr 1fr}.incoming-handover-heading{align-items:flex-start;flex-direction:column}
  .permission-group-identity{grid-template-columns:1fr}.check-row{grid-column:auto}.permission-table-head{display:none}.permission-table-row{grid-template-columns:1fr;padding:12px}.permission-choice-row ul{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:470px){
  .compact-employee-contact{grid-template-columns:1fr}.compact-employee-actions{display:grid}.compact-employee-actions .button{padding:7px 8px}
  .matrix-compact-status-grid{grid-template-columns:1fr}.shift-progress-metrics{grid-template-columns:1fr}.shift-progress-metric-wide{grid-column:auto}.staff-shift-progress-strip{grid-template-columns:1fr}.permission-choice-row ul{grid-template-columns:1fr}
}
@media print{
  .matrix-summary-strip,.shift-centre-summary{grid-template-columns:repeat(4,1fr)}.matrix-compact-list,.shift-progress-list{display:block}.matrix-compact-row,.shift-progress-card{margin-bottom:7pt;break-inside:avoid;box-shadow:none}.matrix-compact-status-grid{grid-template-columns:repeat(4,1fr)}.compact-employee-actions,.shift-progress-header .button{display:none!important}
}
.access-level-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.access-level-card.custom{border-top-color:var(--info)}.access-level-form-custom{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) auto;gap:6px;align-items:center}.access-level-form-custom select{min-width:0;max-width:none;min-height:36px;padding:6px 8px;font-size:.67rem}@media(max-width:1150px){.access-level-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}.access-level-form-custom{grid-template-columns:1fr}.access-level-form-custom button{justify-self:start}}@media(max-width:620px){.access-level-grid-four{grid-template-columns:1fr}}

/* v69 completion: staff shift progress and clean sign-in controls */
.staff-shift-progress-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:2px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.12);overflow:hidden}.staff-shift-progress-item{min-width:0;padding:10px 12px;background:rgba(6,18,34,.24)}.staff-shift-progress-item>span,.staff-shift-progress-item>strong,.staff-shift-progress-item>small{display:block}.staff-shift-progress-item>span{color:#aebed0;font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.065em}.staff-shift-progress-item>strong{margin-top:4px;color:#fff;font-size:.72rem;line-height:1.25;overflow-wrap:anywhere}.staff-shift-progress-item>small{margin-top:3px;color:#b7c5d5;font-size:.58rem;line-height:1.35}.staff-shift-progress-item progress{width:100%;height:5px;margin-top:7px;accent-color:#64d66e}.staff-shift-progress-item.is-complete{background:rgba(24,111,57,.24)}.staff-shift-progress-item.is-ready{background:rgba(37,99,235,.2)}.staff-shift-progress-item.is-pending{background:rgba(140,91,16,.18)}

.auth-input-wrap{border:1px solid #cdd9e4;border-radius:14px;background:#fff;box-shadow:0 1px 0 rgba(10,22,40,.02);transition:border-color .16s ease,box-shadow .16s ease}.auth-input-wrap:focus-within{border-color:#55b95a;box-shadow:0 0 0 4px rgba(57,173,62,.13)}.auth-input-wrap input:not([type=checkbox]):not([type=radio]){border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important}.auth-field.has-error .auth-input-wrap{border-color:#da6565;background:#fffafa}.auth-field.has-error .auth-input-wrap input{background:transparent!important}.password-toggle{border:0;border-left:1px solid #e0e7ee;border-radius:0;background:transparent;color:#42546a}.password-toggle:hover{background:#f7fafc;border-color:#d4dee7}

@media(max-width:720px){.staff-shift-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:470px){.staff-shift-progress-grid{grid-template-columns:1fr}}
.auth-input-wrap input:-webkit-autofill,
.auth-input-wrap input:-webkit-autofill:hover,
.auth-input-wrap input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ink);
  -webkit-box-shadow:0 0 0 1000px #fff inset!important;
  box-shadow:0 0 0 1000px #fff inset!important;
  caret-color:var(--ink);
}

/* v70 placement calendars, revisions and approval safeguards --------------- */
.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:13px 15px}
.calendar-view-tabs,.calendar-period-controls,.calendar-date-jump{display:flex;align-items:center;gap:7px}
.calendar-period-controls{justify-content:center}.calendar-period-controls strong{min-width:150px;text-align:center;font-size:.78rem}
.calendar-date-jump label{margin:0;color:var(--text-600);font-size:.65rem;font-weight:850}.calendar-date-jump input{width:auto;min-height:38px}
.calendar-month-card{padding:0;overflow:auto}.calendar-month-table{table-layout:fixed;min-width:880px;margin:0}
.calendar-month-table th{padding:8px;text-align:center}.calendar-month-table td{height:132px;padding:7px;vertical-align:top}
.calendar-day.is-outside{background:var(--surface-muted);color:var(--text-500)}.calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--accent-500)}
.calendar-day-number{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center;border-radius:8px;font-size:.67rem;font-weight:950}
.calendar-day.is-today .calendar-day-number{background:var(--accent-600);color:#fff}
.calendar-day-items{display:grid;gap:4px;margin-top:5px}.calendar-item{display:block;padding:5px 6px;border-left:3px solid var(--info);border-radius:6px;background:var(--info-soft);color:var(--text-800);text-decoration:none;overflow:hidden}
.calendar-item:hover{text-decoration:none;filter:brightness(.98)}.calendar-item strong,.calendar-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-item strong{font-size:.58rem}.calendar-item small{margin-top:1px;color:var(--text-600);font-size:.51rem}
.calendar-item-task{border-left-color:var(--warning);background:var(--warning-soft)}.calendar-item-shift{border-left-color:var(--success);background:var(--success-soft)}.calendar-item-young-person-appointment{border-left-color:#7c3aed;background:#f4efff}.calendar-item-operational{border-left-color:#475569;background:#f1f5f9}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(165px,1fr));gap:8px;overflow:auto}.calendar-week-day{min-width:165px;padding:12px}.calendar-week-day>header{display:flex;justify-content:space-between;gap:7px;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:.68rem}.calendar-week-day.is-today{border-top:3px solid var(--accent-500)}
.calendar-agenda-list{display:grid}.calendar-agenda-item{display:grid;grid-template-columns:minmax(110px,.35fr) minmax(200px,1fr) auto;gap:12px;align-items:center;padding:10px 3px;border-bottom:1px solid var(--border);color:var(--text-800);text-decoration:none}.calendar-agenda-item:hover{background:var(--surface-muted);text-decoration:none}.calendar-agenda-item time{font-size:.64rem;font-weight:850}.calendar-agenda-item strong,.calendar-agenda-item small{display:block}.calendar-agenda-item strong{font-size:.72rem}.calendar-agenda-item small{margin-top:2px;color:var(--text-600);font-size:.6rem}
.calendar-mobile-agenda{display:none}.calendar-subscription-form{display:flex;align-items:end;gap:8px}.calendar-subscription-form label{display:grid;gap:5px;margin:0;font-size:.65rem;font-weight:850}.calendar-subscription-form input{min-width:250px}
.calendar-new-subscription code{display:block;margin-top:8px;padding:9px;border-radius:8px;background:#fff;word-break:break-all;user-select:all}.calendar-subscription-list{display:grid;margin-top:14px}.calendar-subscription-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;border-top:1px solid var(--border)}.calendar-subscription-row strong,.calendar-subscription-row small{display:block}.calendar-subscription-row small{margin-top:3px;color:var(--text-600);font-size:.62rem}
.documentation-revision-list{display:grid;gap:8px}.documentation-revision-row{padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted)}
.overtime-confirmation{margin-top:8px;padding:9px;border:1px solid #e5b957;border-radius:10px;background:var(--warning-soft)}.overtime-confirmation label{display:flex;align-items:flex-start;gap:7px;margin:0;font-size:.68rem}.overtime-confirmation input{margin-top:2px}

@media(max-width:980px){
  .calendar-toolbar{grid-template-columns:1fr}.calendar-view-tabs,.calendar-period-controls,.calendar-date-jump{justify-content:center}
  .calendar-week-grid{grid-template-columns:repeat(7,minmax(190px,1fr))}
}
@media(max-width:720px){
  .calendar-view-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.calendar-view-tabs .button{text-align:center}
  .calendar-period-controls{justify-content:space-between}.calendar-period-controls strong{min-width:0}
  .calendar-date-jump{display:grid;grid-template-columns:1fr auto}.calendar-date-jump label{grid-column:1/-1}.calendar-date-jump input{width:100%}
  .calendar-month-card{display:none}.calendar-mobile-agenda{display:block}
  .calendar-week-grid{display:grid;grid-template-columns:1fr;overflow:visible}.calendar-week-day{min-width:0}
  .calendar-agenda-item{grid-template-columns:90px minmax(0,1fr)}.calendar-agenda-item>.pill{grid-column:2;justify-self:start}
  .calendar-subscription-form{display:grid}.calendar-subscription-form input{min-width:0;width:100%}.calendar-subscription-row{align-items:flex-start;flex-direction:column}
}
@media(max-width:470px){
  .calendar-agenda-item{grid-template-columns:1fr;gap:4px}.calendar-agenda-item>.pill{grid-column:auto}
}

/* v71 people reminders and placement-day schedule ------------------------- */
.birthday-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.birthday-group{min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--surface-muted);overflow:hidden}
.birthday-group-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);background:#fff}
.birthday-group-heading h3{margin:0;font-size:.76rem}.birthday-group-heading>span{display:flex;min-width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--brand-100);color:var(--brand-800);font-size:.62rem;font-weight:950}
.birthday-list{display:grid;padding:0 10px;background:#fff}.birthday-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--border);color:var(--text-800);text-decoration:none}
.birthday-row:last-child{border-bottom:0}.birthday-row:hover{background:var(--surface-muted);text-decoration:none}.birthday-row.is-today{background:var(--success-soft)}
.birthday-row .date-box{width:40px}.birthday-person{min-width:0}.birthday-person strong,.birthday-person small{display:block}.birthday-person strong{font-size:.73rem;overflow-wrap:anywhere}.birthday-person small{margin-top:2px;color:var(--text-600);font-size:.61rem}

.placement-today-schedule{margin-top:10px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)}
.placement-today-schedule__head{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-bottom:7px;border-bottom:1px solid var(--border)}
.placement-today-schedule__head strong{font-size:.67rem}.placement-today-schedule__head a{font-size:.61rem;font-weight:850}
.placement-today-schedule__list{display:grid}.placement-today-schedule__list>a{display:grid;grid-template-columns:8px minmax(0,1fr);gap:7px;align-items:start;padding:7px 1px;border-bottom:1px solid var(--border);color:var(--text-800);text-decoration:none}
.placement-today-schedule__list>a:last-child{border-bottom:0}.placement-today-schedule__list>a:hover{text-decoration:none;background:#fff}.placement-today-schedule__list strong,.placement-today-schedule__list small{display:block;overflow-wrap:anywhere}
.placement-today-schedule__list strong{font-size:.64rem}.placement-today-schedule__list small{margin-top:2px;color:var(--text-600);font-size:.56rem}.placement-today-schedule>p{margin:8px 0 0;color:var(--text-500);font-size:.61rem;line-height:1.4}
.placement-today-schedule__list>a.placement-calendar-more{display:block;padding:8px 1px 1px;color:var(--accent-700);font-size:.61rem;font-weight:850}
.calendar-dot{width:8px;height:8px;margin-top:3px;border-radius:999px;background:var(--info);box-shadow:0 0 0 3px var(--info-soft)}
.calendar-dot-shift{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.calendar-dot-task{background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft)}
.calendar-dot-young-person-appointment,.calendar-dot-placement-appointment{background:#7c3aed;box-shadow:0 0 0 3px #f1eaff}.calendar-dot-operational{background:#475569;box-shadow:0 0 0 3px #e2e8f0}
.placement-event-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.placement-event-item{display:grid;grid-template-columns:8px 54px minmax(0,1fr);gap:8px;align-items:start;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:#fff;color:var(--text-800);text-decoration:none}
.placement-event-item:hover{border-color:var(--accent-400);background:var(--surface-muted);text-decoration:none}.placement-event-item time{font-size:.63rem;font-weight:900}.placement-event-item strong,.placement-event-item small{display:block;overflow-wrap:anywhere}.placement-event-item strong{font-size:.69rem}.placement-event-item small{margin-top:2px;color:var(--text-600);font-size:.58rem}

@media(max-width:800px){
  .birthday-board-grid,.placement-event-strip{grid-template-columns:1fr}
}
@media(max-width:470px){
  .birthday-row{grid-template-columns:40px minmax(0,1fr)}.birthday-row>.status-pill{grid-column:2;justify-self:start}
  .placement-event-item{grid-template-columns:8px 48px minmax(0,1fr)}
}
.shift-group-divider{display:flex;align-items:center;gap:.75rem;margin:.55rem 0 .2rem;color:var(--muted,#667085);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.shift-group-divider::before,.shift-group-divider::after{content:"";height:1px;background:#d7dee8;flex:1}
.sleepover-shift-row{background:#f7f5ff}
.placement-young-people-group{margin:1.35rem 0 2rem}
.placement-group-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:0 .15rem .75rem;border-bottom:2px solid #d9e2ec;margin-bottom:1rem}
.placement-group-heading h2{margin:.1rem 0;color:#17324d}
.placement-group-heading p{margin:0;color:#667085}
.young-people-list-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.young-people-list-grid .young-person-card{min-width:0;min-height:0;padding:13px 14px;gap:10px;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:1fr;align-items:stretch;background:#fff}
.young-people-list-grid .young-person-card:hover{border-color:#b9c8d7;box-shadow:var(--shadow-sm)}
.young-people-list-grid .young-person-card .entity-card-actions{margin-top:2px}
.young-people-list-grid .young-person-card .entity-card-actions .button{font-size:12px;padding:7px 11px}
.young-person-card__header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px}
.young-person-card__identity{min-width:0}
.young-person-card__header>.pill{align-self:start;white-space:nowrap}
.young-people-list-grid .client-avatar{width:58px;height:58px;flex:0 0 58px;border-radius:17px;font-size:23px}
.young-people-list-grid .entity-card-title{font-size:19px;line-height:1.25}
.young-people-list-grid .entity-card-meta{font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.young-person-card__details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.young-person-card__details>div{min-width:0;padding:12px 13px;border:1px solid #dbe5ec;border-radius:13px;background:#f7fafc}
.young-person-card__details span{display:block;margin-bottom:4px;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.young-person-card__details strong{display:block;color:#1e293b;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.young-people-list-grid .client-alert{display:grid;gap:3px;margin:0;padding:11px 13px;border-radius:13px}
.young-people-list-grid .entity-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:auto;padding-top:0}
.young-people-list-grid .entity-card-actions .button{min-width:112px;text-align:center;justify-content:center}
.young-person-card{border-top:4px solid #2c7a67}
.confidentiality-banner{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.9rem 1rem;border:1px solid #d79d2a;border-left:5px solid #a86500;background:#fff8e8;color:#5c3b00}
.confidentiality-banner span{color:#715b34}
.official-record-form .form-section{padding:1rem 0;border-bottom:1px solid #dde4ec}
.official-record-sheet>h2{margin-top:1.5rem;padding-bottom:.4rem;border-bottom:2px solid #193c5a}
.record-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}
.record-grid>div{padding:.85rem;background:#f7f9fc;border:1px solid #dce3eb;border-radius:.45rem}
.record-grid label,.record-grid strong,.record-grid span{display:block}
.record-grid label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#667085;font-weight:800;margin-bottom:.25rem}
.table-subline{display:block;color:#667085;margin-top:.2rem}
@media(max-width:900px){.young-people-list-grid{grid-template-columns:1fr}}
@media(max-width:800px){.record-grid{grid-template-columns:1fr 1fr}.confidentiality-banner{flex-direction:column}.placement-group-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.young-people-list-grid{gap:12px}.young-people-list-grid .young-person-card{min-height:0;padding:17px}.young-people-list-grid .client-avatar{width:50px;height:50px;flex-basis:50px}.young-person-card__header{grid-template-columns:auto minmax(0,1fr)}.young-person-card__header>.pill{grid-column:2}.young-person-card__details{grid-template-columns:1fr}.young-people-list-grid .entity-card-actions{display:grid;grid-template-columns:1fr}.young-people-list-grid .entity-card-actions .button{width:100%}}

/* v77 authenticated workspace -------------------------------------------------
   The signed-in product uses one compact shell and component language.
   This entire layer is scoped to .portal-app so the established login and
   public verification experiences remain unchanged. */
.portal-app{
  --portal-navy-950:#08131f;
  --portal-navy-900:#0e1d2d;
  --portal-navy-800:#172b40;
  --portal-navy-700:#27445f;
  --portal-green-700:#207638;
  --portal-green-600:#2b8b43;
  --portal-green-500:#38a653;
  --portal-green-100:#ddf2e3;
  --portal-green-50:#f1f9f3;
  --portal-ink:#132235;
  --portal-text:#26313f;
  --portal-muted:#4f5e71;
  --portal-line:#d8e1e8;
  --portal-line-strong:#c4d0da;
  --portal-canvas:#f2f5f7;
  --portal-surface:#fff;
  --portal-surface-soft:#f7f9fa;
  --portal-danger:#b93a45;
  --portal-danger-soft:#fff1f2;
  --portal-warning:#a9660b;
  --portal-warning-soft:#fff6e6;
  --portal-info:#326aa5;
  --portal-info-soft:#edf5fc;
  --portal-success:#247b3e;
  --portal-success-soft:#edf8f0;
  --portal-radius-sm:8px;
  --portal-radius:12px;
  --portal-radius-lg:16px;
  --portal-shadow:0 1px 2px rgba(10,27,43,.04),0 8px 24px rgba(10,27,43,.055);
  --portal-shadow-raised:0 2px 4px rgba(10,27,43,.045),0 16px 38px rgba(10,27,43,.085);
  min-width:320px;
  color:var(--portal-ink);
  background:var(--portal-canvas);
  font-size:14px;
  line-height:1.5;
}
.portal-app h1,.portal-app h2,.portal-app h3,.portal-app h4{color:var(--portal-ink);letter-spacing:-.025em}
.portal-app h1{font-size:clamp(1.55rem,2vw,2.05rem)}
.portal-app h2{font-size:1.15rem}.portal-app h3{font-size:.98rem}
.portal-app a{color:#285f99}
.portal-app .small,.portal-app .muted,.portal-app .page-intro{color:var(--portal-muted)}
.portal-app .text-danger{color:var(--portal-danger)}
.portal-app .text-success{color:var(--portal-success)}
.portal-app [hidden]{display:none!important}

/* Shell */
.portal-app .app-shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:var(--portal-canvas)}
.portal-app .sidebar{
  width:auto;
  min-height:100vh;
  height:100vh;
  padding:14px 12px 18px;
  background:var(--portal-navy-950);
  border-right:1px solid rgba(255,255,255,.07);
  box-shadow:none;
  scrollbar-width:thin;
  scrollbar-color:#385069 transparent;
}
.portal-app .sidebar-brand{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:60px;
  margin:0 0 10px;
  padding:8px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.09);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.portal-app .brand-logo-wrap{
  width:78px;
  min-width:78px;
  min-height:40px;
  height:40px;
  padding:6px 8px;
  border-radius:9px;
  background:#fff;
  box-shadow:none;
}
.portal-app .brand-logo{width:100%;max-width:64px;max-height:29px}
.portal-app .brand-copy{min-width:0;display:grid;text-align:left;line-height:1.15}
.portal-app .brand-copy strong{color:#fff;font-size:.84rem;letter-spacing:.01em}
.portal-app .brand-copy small{margin-top:3px;color:#8fa1b4;font-size:.55rem;letter-spacing:.1em}
.portal-app .sidebar-search{
  min-height:40px!important;
  margin:0 0 10px!important;
  padding:7px 9px!important;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px!important;
  background:rgba(255,255,255,.045);
  color:#c9d5e0!important;
  font-size:.73rem;
  box-shadow:none;
}
.portal-app .sidebar-search:hover{border-color:rgba(87,190,107,.42);background:rgba(255,255,255,.075)!important}
.portal-app .sidebar-search-icon{width:25px;height:25px;border-radius:7px;background:rgba(56,166,83,.15);color:#8ad69a;font-size:17px}
.portal-app .sidebar-nav-accordion{display:grid;gap:3px}
.portal-app .nav-standalone,.portal-app .nav-group{
  margin:0;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  box-shadow:none;
}
.portal-app .nav-standalone{
  min-height:42px;
  padding:7px 9px!important;
  color:#d6e0e9;
  font-size:.76rem;
}
.portal-app .nav-standalone::before,.portal-app .nav-group-toggle::before{
  width:27px;
  height:27px;
  flex-basis:27px;
  border:0;
  border-radius:8px;
  background:rgba(255,255,255,.065);
  color:#8fd79e;
  font-size:.52rem;
}
.portal-app .nav-standalone:hover{background:rgba(255,255,255,.055)}
.portal-app .nav-standalone.active{
  border-color:rgba(73,180,95,.28);
  background:rgba(56,166,83,.16);
  box-shadow:inset 3px 0 0 var(--portal-green-500);
}
.portal-app .nav-group.is-open{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.035);box-shadow:none}
.portal-app .nav-group-toggle{
  min-height:44px;
  padding:8px 9px;
  gap:9px;
  color:#c7d3de;
  font-size:.72rem;
  letter-spacing:.06em;
}
.portal-app .nav-group-toggle::after{width:21px;height:21px;border-radius:6px;background:transparent;font-size:13px}
.portal-app .nav-group-toggle:hover{background:rgba(255,255,255,.045)}
.portal-app .nav-group.is-open .nav-group-toggle{color:#fff}
.portal-app .nav-group-links{display:grid!important;gap:1px;padding:0 6px;visibility:hidden}
.portal-app .nav-group.is-open .nav-group-links{padding:0 6px 6px;visibility:visible}
.portal-app .nav-group-links a{
  min-height:39px;
  margin:0;
  padding:9px 9px 9px 30px;
  border-radius:7px;
  color:#aebdcc;
  font-size:.82rem;
  font-weight:650;
}
.portal-app .nav-group-links a::before{left:12px;width:4px;height:4px;background:#596c80}
.portal-app .nav-group-links a:hover{background:rgba(255,255,255,.05);color:#fff}
.portal-app .nav-group-links a.active{background:rgba(56,166,83,.14);color:#fff}
.portal-app .nav-group-links a.active::before{width:6px;height:6px;background:#56bd6c;box-shadow:0 0 0 3px rgba(56,166,83,.11)}
.portal-app .sidebar-footer{margin-top:10px;padding:11px 8px 0;border-top-color:rgba(255,255,255,.08)}
.portal-app .sidebar-user-avatar{width:31px;height:31px;border-radius:9px;background:var(--portal-green-600);box-shadow:none}
.portal-app .sidebar-footer strong{font-size:.7rem}.portal-app .sidebar-footer small{color:#7f91a3;font-size:.57rem}

.portal-app .main-shell{min-width:0;min-height:100vh}
.portal-app .topbar{
  min-height:64px;
  height:64px;
  padding:9px clamp(18px,2.2vw,32px);
  border-bottom:1px solid var(--portal-line);
  background:rgba(255,255,255,.97);
  box-shadow:0 1px 0 rgba(8,25,40,.025);
  backdrop-filter:none;
}
.portal-app .topbar-title{min-width:0}
.portal-app .topbar-title .eyebrow{margin:0 0 2px;color:var(--portal-green-700);font-size:.52rem;letter-spacing:.12em}
.portal-app .topbar-title h1{margin:0;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-app .topbar-actions{gap:6px}
.portal-app .topbar-search,.portal-app .topbar-notification,.portal-app .topbar-user{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border:1px solid var(--portal-line);
  border-radius:9px;
  background:#fff;
  color:var(--portal-text);
  box-shadow:none;
  font-size:.68rem;
  font-weight:800;
  text-decoration:none;
}
.portal-app .topbar-search:hover,.portal-app .topbar-notification:hover{border-color:var(--portal-line-strong);background:var(--portal-surface-soft);color:var(--portal-ink)}
.portal-app .topbar-search>span:first-child{font-size:1rem;line-height:1}
.portal-app .topbar-notification svg{width:16px;height:16px}
.portal-app .topbar-avatar{width:26px;height:26px;border-radius:7px;background:var(--portal-green-600);font-size:.64rem}
.portal-app .topbar-user-copy strong{font-size:.68rem}.portal-app .topbar-user-copy small{font-size:.5rem}
.portal-app .topbar-count{min-width:18px;height:18px;padding:0 5px;font-size:.55rem}
.portal-app .topbar .small-button{min-height:38px;padding:7px 10px}
.portal-app .topbar-textsize{display:inline-flex;align-items:center;gap:1px;padding:3px;border:1px solid var(--portal-line);border-radius:9px;background:#fff}
.portal-app .topbar-textsize__btn{min-width:30px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:transparent;color:var(--portal-text);font-size:.74rem;font-weight:800;cursor:pointer;line-height:1}
.portal-app .topbar-textsize__btn-up{font-size:.9rem}
.portal-app .topbar-textsize__btn:hover{background:var(--portal-surface-soft);color:var(--portal-ink)}
.portal-app .topbar-textsize__btn:disabled{opacity:.35;cursor:default}
.portal-app .topbar-textsize__val{min-width:40px;text-align:center;font-size:.6rem;font-weight:800;color:var(--portal-muted);font-variant-numeric:tabular-nums}
@media(max-width:640px){.portal-app .topbar-textsize__val{display:none}.portal-app .topbar-textsize{padding:2px;gap:0}}
.portal-app .container,.portal-app .app-main{
  width:100%;
  max-width:1680px;
  margin:0 auto;
  padding:22px clamp(18px,2.2vw,32px) 60px;
  zoom:var(--rm-zoom,1);
}
.portal-app .page-content{width:100%;animation:none}
.portal-app .message-stack{gap:8px;margin-bottom:14px}

/* Global authenticated components */
.portal-app .page-header,.portal-app .module-hero,.portal-app .profile-hero,.portal-app .placement-hero-card,.portal-app .hero-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:18px 20px;
  margin:0 0 14px;
  overflow:hidden;
  border:1px solid var(--portal-line);
  border-radius:var(--portal-radius-lg);
  background:#fff;
  box-shadow:var(--portal-shadow);
}
.portal-app .page-header::before,.portal-app .module-hero::before,.portal-app .profile-hero::before,.portal-app .placement-hero-card::before,.portal-app .hero-card::before{
  left:0;
  top:0;
  bottom:auto;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,var(--portal-green-600),#5ebc72 42%,transparent 86%);
}
.portal-app .page-header h1,.portal-app .module-hero h1,.portal-app .profile-hero h1,.portal-app .placement-hero-card h1,.portal-app .hero-card h1{
  margin:0 0 5px;
  font-size:clamp(1.35rem,1.65vw,1.75rem);
}
.portal-app .page-header p,.portal-app .module-hero p,.portal-app .profile-hero p,.portal-app .placement-hero-card p,.portal-app .hero-card p{
  max-width:900px;
  color:var(--portal-muted);
  font-size:.78rem;
  line-height:1.55;
}
.portal-app .section-kicker,.portal-app .portal-kicker,.portal-app .eyebrow{
  margin:0 0 4px;
  color:var(--portal-green-700);
  font-size:.57rem;
  font-weight:900;
  letter-spacing:.11em;
}
.portal-app .module-hero-actions,.portal-app .page-header .actions{gap:7px}
.portal-app .meta-chip-row{gap:6px;margin-top:10px}
.portal-app .meta-chip-row>span{
  min-height:25px;
  padding:4px 8px;
  border-color:var(--portal-line);
  background:var(--portal-surface-soft);
  color:var(--portal-text);
  font-size:.64rem;
  box-shadow:none;
}
.portal-app .card,.portal-app .verify-card,.portal-app .day-card,.portal-app .form-section,.portal-app .soft-panel,.portal-app .compliance-section,.portal-app .case-note-panel,.portal-app .record-block{
  border-color:var(--portal-line);
  border-radius:var(--portal-radius);
  background:#fff;
  box-shadow:var(--portal-shadow);
}
.portal-app .card{padding:17px 18px;margin-bottom:14px}
.portal-app .soft-panel,.portal-app .subtle-card{background:var(--portal-surface-soft);box-shadow:none}
.portal-app .card-head,.portal-app .section-heading-row{
  gap:12px;
  margin-bottom:13px;
  padding-bottom:11px;
  border-bottom-color:var(--portal-line);
}
.portal-app .card-head h2,.portal-app .card-head h3{font-size:1rem}
.portal-app .section-grid,.portal-app .grid-2,.portal-app .grid-3,.portal-app .summary-grid,.portal-app .entity-grid,.portal-app .action-tile-grid,.portal-app .quick-grid{gap:12px}
.portal-app .entity-card,.portal-app .action-tile,.portal-app .quick-card,.portal-app .summary-tile,.portal-app .mini-stat-card,.portal-app .admin-pulse-card,.portal-app .staff-metric-card{
  border-color:var(--portal-line);
  border-radius:var(--portal-radius);
  box-shadow:var(--portal-shadow);
}
.portal-app .entity-card,.portal-app .action-tile{padding:15px}
.portal-app .entity-card:hover,.portal-app .action-tile:hover,.portal-app .quick-card:hover{transform:none;border-color:var(--portal-line-strong);box-shadow:var(--portal-shadow-raised)}
.portal-app .entity-card-actions{gap:6px;padding-top:9px}
.portal-app .info-tile{border-color:var(--portal-line);border-radius:10px;background:var(--portal-surface-soft)}
.portal-app .readonly-banner,.portal-app .message{padding:10px 12px;border-radius:10px;box-shadow:none}

.portal-app button:not(.nav-group-toggle):not(.mobile-menu-button):not(.mobile-menu-close),.portal-app .button,.portal-app input[type="submit"]{
  min-height:38px;
  padding:7px 12px;
  border-color:var(--portal-navy-900);
  border-radius:9px;
  background:var(--portal-navy-900);
  color:#fff;
  font-size:.71rem;
  font-weight:850;
  line-height:1.2;
  box-shadow:none;
  transform:none;
}
.portal-app button:not(.nav-group-toggle):not(.mobile-menu-button):not(.mobile-menu-close):hover,.portal-app .button:hover,.portal-app input[type="submit"]:hover{
  transform:none;
  border-color:var(--portal-navy-700);
  background:var(--portal-navy-800);
  box-shadow:none;
}
.portal-app button.primary,.portal-app .button.primary,.portal-app .btn.primary,.portal-app input.primary{border-color:var(--portal-green-700);background:var(--portal-green-700)}
.portal-app button.primary:hover,.portal-app .button.primary:hover,.portal-app .btn.primary:hover,.portal-app input.primary:hover{border-color:#195f2d;background:#195f2d}
.portal-app .button.secondary,.portal-app button.secondary{border-color:var(--portal-line-strong);background:#edf2f5;color:var(--portal-ink)}
.portal-app .button.secondary:hover,.portal-app button.secondary:hover{border-color:#adbdc9;background:#e4ebef;color:var(--portal-ink)}
.portal-app .button.ghost,.portal-app button.ghost{border-color:var(--portal-line);background:#fff;color:var(--portal-text)}
.portal-app .button.ghost:hover,.portal-app button.ghost:hover{border-color:var(--portal-line-strong);background:var(--portal-surface-soft);color:var(--portal-ink)}
.portal-app .button.danger,.portal-app button.danger{border-color:#a9323c;background:var(--portal-danger);color:#fff}
.portal-app .button.danger:hover,.portal-app button.danger:hover{border-color:#912b34;background:#a8323c}
.portal-app button:disabled,.portal-app .button.disabled{opacity:.52;cursor:not-allowed}
.portal-app .actions,.portal-app .mini-actions,.portal-app .module-hero-actions,.portal-app .small-actions{gap:7px}

.portal-app label,.portal-app .form-ui label{margin-bottom:5px;color:var(--portal-text);font-size:.7rem}
.portal-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.portal-app select,.portal-app textarea{
  min-height:40px;
  padding:8px 10px;
  border-color:var(--portal-line-strong);
  border-radius:9px;
  color:var(--portal-ink);
  box-shadow:none;
}
.portal-app textarea{min-height:100px}
.portal-app input:not([type="checkbox"]):not([type="radio"]):focus,.portal-app select:focus,.portal-app textarea:focus{
  border-color:var(--portal-green-600);
  box-shadow:0 0 0 3px rgba(43,139,67,.14);
}
.portal-app .form-section,.portal-app .compliance-section,.portal-app .mqs-subsection{padding:15px}
.portal-app .field-row{gap:5px;margin-bottom:13px}
.portal-app .helptext,.portal-app .field-help{color:var(--portal-muted);font-size:.65rem}
.portal-app .checkbox-row{border-color:var(--portal-line);border-radius:9px;background:var(--portal-surface-soft)}

.portal-app .table-scroll{border:1px solid var(--portal-line);border-radius:var(--portal-radius);background:#fff;box-shadow:var(--portal-shadow)}
.portal-app .card.table-scroll{padding:0}
.portal-app .data-table{font-size:.72rem;box-shadow:none}
.portal-app .data-table th,.portal-app .data-table td{padding:9px 10px;border-bottom-color:var(--portal-line)}
.portal-app .data-table th{background:#edf2f5;color:#526276;font-size:.59rem;letter-spacing:.06em}
.portal-app .data-table tbody tr:hover td{background:#fafcfd}
.portal-app :where(.pill,.badge,.status-pill,.status-chip){
  min-height:24px;
  padding:4px 8px;
  border-color:var(--portal-line);
  background:#edf2f5;
  color:var(--portal-text);
  font-size:.58rem;
}
.portal-app .pill.ok,.portal-app .badge.ok,.portal-app .status-pill.success,.portal-app .status-chip.ok,.portal-app .badge.pub{border-color:#b9dcc1;background:var(--portal-success-soft);color:var(--portal-success)}
.portal-app .pill.warning,.portal-app .badge.warning,.portal-app .status-pill.warning,.portal-app .status-chip.warning{border-color:#e9d19d;background:var(--portal-warning-soft);color:#875209}
.portal-app .pill.danger,.portal-app .badge.danger,.portal-app .status-pill.danger,.portal-app .status-chip.danger{border-color:#e8bcc0;background:var(--portal-danger-soft);color:#97313a}
.portal-app .pill.info,.portal-app .badge.info,.portal-app .status-pill.info,.portal-app .status-chip.info{border-color:#bfd3e7;background:var(--portal-info-soft);color:#2a5f92}
.portal-app .pill.warn,.portal-app .badge.draft,
.portal-app .status-pill.pending,.portal-app .status-pill.pending_approval,
.portal-app .status-chip.pending,.portal-app .status-chip.incomplete{
  border-color:#e9d19d;background:var(--portal-warning-soft);color:#875209
}
.portal-app .pill.bad,.portal-app .badge.mandatory,
.portal-app .status-pill.failed,.portal-app .status-pill.rejected,
.portal-app .status-pill.negative,.portal-app .status-pill.needs_correction,
.portal-app .status-chip.failed,.portal-app .status-chip.rejected{
  border-color:#e8bcc0;background:var(--portal-danger-soft);color:#97313a
}
.portal-app .status-pill.active,.portal-app .status-pill.live,
.portal-app .status-pill.accepted,.portal-app .status-pill.applied,
.portal-app .status-pill.approved,.portal-app .status-pill.complete,
.portal-app .status-chip.active,.portal-app .status-chip.complete{
  border-color:#b9dcc1;background:var(--portal-success-soft);color:var(--portal-success)
}
.portal-app .status-pill.declined,.portal-app .status-pill.withdrawn,
.portal-app .status-pill.expired,.portal-app .status-pill.skipped,
.portal-app .status-chip.declined,.portal-app .status-chip.withdrawn{
  border-color:var(--portal-line);background:#edf2f5;color:var(--portal-muted)
}
.portal-app .badge.optional{border-color:#bed6ea;background:var(--portal-info-soft);color:#285f91}
.portal-app .badge.sleep,.portal-app .badge.shift-sleepover{border-color:var(--portal-navy-900);background:var(--portal-navy-900);color:#fff}
.portal-app .badge.shift-day{border-color:#b9dcc1;background:var(--portal-success-soft);color:var(--portal-success)}
.portal-app .badge.shift-support{border-color:#bfd3e7;background:var(--portal-info-soft);color:#2a5f92}
.portal-app .badge.shift-case_coordination{border-color:#d7c8ec;background:#f5f0fb;color:#624293}
.portal-app .badge.shift-training{border-color:#eed0ad;background:#fff4e8;color:#995619}
.portal-app .badge.shift-not_funded{border-color:#e8bcc0;background:var(--portal-danger-soft);color:#97313a}

/* Open shift workspace */
.portal-app .open-shifts-hero{align-items:center}
.portal-app .open-shift-period-nav{
  display:grid;
  grid-template-columns:auto minmax(190px,1fr) auto;
  align-items:center;
  gap:10px;
  max-width:620px;
  margin:0 auto 14px;
  padding:8px;
  border:1px solid var(--portal-line);
  border-radius:12px;
  background:#fff;
  box-shadow:var(--portal-shadow);
}
.portal-app .open-shift-period-nav>div{display:grid;text-align:center;line-height:1.3}
.portal-app .open-shift-period-nav>div span{color:var(--portal-muted);font-size:.55rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.portal-app .open-shift-period-nav>div strong{margin-top:2px;font-size:.78rem}
.portal-app .open-shift-board,.portal-app .open-shift-responses{
  padding:17px 18px;
  margin:0 0 14px;
  border:1px solid var(--portal-line);
  border-radius:var(--portal-radius-lg);
  background:#fff;
  box-shadow:var(--portal-shadow);
}
.portal-app .open-shift-board-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:13px;
}
.portal-app .open-shift-board-heading h2{margin:0}
.portal-app .open-shift-board-heading p{max-width:760px;margin:3px 0 0;color:var(--portal-muted);font-size:.7rem}
.portal-app .open-shift-result-count{
  padding:5px 9px;
  border:1px solid var(--portal-line);
  border-radius:999px;
  background:var(--portal-surface-soft);
  color:var(--portal-muted);
  font-size:.62rem;
  font-weight:800;
  white-space:nowrap;
}
.portal-app .open-shift-filter-bar{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  gap:12px;
  align-items:end;
  margin-bottom:13px;
  padding:10px;
  border:1px solid var(--portal-line);
  border-radius:11px;
  background:var(--portal-surface-soft);
}
.portal-app .open-shift-search{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;margin:0}
.portal-app .open-shift-search>span{font-size:.61rem;text-transform:uppercase;letter-spacing:.06em}
.portal-app .open-shift-search input{min-height:36px;max-width:none;background:#fff;font-size:.7rem}
.portal-app .open-shift-filter-buttons{display:flex;gap:5px;flex-wrap:wrap}
.portal-app .open-shift-filter-buttons button{
  min-height:34px;
  padding:6px 10px;
  border-color:var(--portal-line);
  background:#fff;
  color:var(--portal-text);
  font-size:.63rem;
}
.portal-app .open-shift-filter-buttons button:hover{border-color:var(--portal-line-strong);background:#fff;color:var(--portal-ink)}
.portal-app .open-shift-filter-buttons button.is-active{border-color:var(--portal-green-700);background:var(--portal-green-700);color:#fff}
.portal-app .open-shift-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));gap:10px}
.portal-app .open-shift-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--portal-line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 2px rgba(10,27,43,.035);
}
.portal-app .open-shift-card.has-conflict{border-color:#e1b8bc}
.portal-app .open-shift-card-header{
  display:grid;
  grid-template-columns:50px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:12px;
  border-bottom:1px solid var(--portal-line);
  background:linear-gradient(90deg,#fff,var(--portal-surface-soft));
}
.portal-app .open-shift-date{
  width:50px;
  height:55px;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto 1fr;
  align-items:center;
  padding:6px;
  border:1px solid var(--portal-line);
  border-radius:9px;
  background:#fff;
  text-align:center;
  line-height:1;
}
.portal-app .open-shift-date span{grid-column:1/-1;color:var(--portal-green-700);font-size:.51rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.portal-app .open-shift-date strong{font-size:1.25rem}
.portal-app .open-shift-date small{color:var(--portal-muted);font-size:.55rem;font-weight:800;text-transform:uppercase}
.portal-app .open-shift-identity{min-width:0}
.portal-app .open-shift-identity .section-kicker{font-size:.49rem}
.portal-app .open-shift-identity h3{margin:0;overflow-wrap:anywhere}
.portal-app .open-shift-identity p{margin:2px 0 0;color:var(--portal-muted);font-size:.67rem}
.portal-app .open-shift-statuses{display:flex;max-width:120px;align-items:flex-end;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.portal-app .open-shift-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--portal-line);border-bottom:1px solid var(--portal-line)}
.portal-app .open-shift-detail-grid>div{min-width:0;padding:10px 12px;background:#fff}
.portal-app .open-shift-detail-grid span,.portal-app .open-shift-detail-grid strong{display:block}
.portal-app .open-shift-detail-grid span{color:var(--portal-muted);font-size:.52rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.portal-app .open-shift-detail-grid strong{margin-top:3px;font-size:.67rem;overflow-wrap:anywhere}
.portal-app .open-shift-alert{
  display:grid;
  gap:2px;
  margin:10px 12px 0;
  padding:8px 9px;
  border:1px solid var(--portal-line);
  border-left:3px solid var(--portal-info);
  border-radius:8px;
  background:var(--portal-info-soft);
}
.portal-app .open-shift-alert strong{font-size:.65rem}.portal-app .open-shift-alert span{color:var(--portal-text);font-size:.6rem;line-height:1.45}
.portal-app .open-shift-alert.success{border-color:#c6dfcc;border-left-color:var(--portal-success);background:var(--portal-success-soft)}
.portal-app .open-shift-alert.danger{border-color:#e7c3c6;border-left-color:var(--portal-danger);background:var(--portal-danger-soft)}
.portal-app .open-shift-alert.neutral{background:var(--portal-surface-soft)}
.portal-app .open-shift-hours{
  display:grid;
  grid-template-columns:auto auto;
  gap:2px 8px;
  align-items:baseline;
  margin:8px 12px 0;
  padding:7px 9px;
  border-radius:8px;
  background:var(--portal-surface-soft);
}
.portal-app .open-shift-hours span{color:var(--portal-muted);font-size:.57rem;font-weight:800}.portal-app .open-shift-hours strong{font-size:.68rem}.portal-app .open-shift-hours small{grid-column:1/-1;color:var(--portal-warning);font-size:.56rem}
.portal-app .open-shift-card-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-top:auto;
  padding:11px 12px;
}
.portal-app .open-shift-card-actions .open-shift-close-form{margin-left:auto}
.portal-app .open-shift-card-actions .button,.portal-app .open-shift-card-actions button{min-height:34px;padding:6px 9px;font-size:.63rem}
.portal-app .open-shift-filter-empty,.portal-app .open-shift-empty-state{
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:17px;
  border:1px dashed var(--portal-line-strong);
  border-radius:12px;
  background:var(--portal-surface-soft);
  text-align:left;
}
.portal-app .open-shift-filter-empty>strong,.portal-app .open-shift-filter-empty>span{display:block}
.portal-app .open-shift-filter-empty>span{color:var(--portal-muted);font-size:.68rem}
.portal-app .open-shift-empty-state>span{
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 38px;
  border-radius:10px;
  background:var(--portal-navy-900);
  color:#fff;
  font-size:.57rem;
  font-weight:900;
}
.portal-app .open-shift-empty-state h2,.portal-app .open-shift-empty-state p{margin:0}
.portal-app .open-shift-empty-state p{margin-top:3px;color:var(--portal-muted);font-size:.7rem}
.portal-app .open-shift-empty-state>.button{margin-left:auto}
.portal-app .open-shift-empty-state.compact{justify-content:flex-start}

.portal-app .open-shift-response-search{min-width:min(300px,100%);margin:0}
.portal-app .open-shift-response-search input{min-height:36px;max-width:none;font-size:.7rem}
.portal-app .offer-response-list{display:grid;gap:8px}
.portal-app .offer-response-card{
  overflow:hidden;
  border:1px solid var(--portal-line);
  border-radius:11px;
  background:#fff;
}
.portal-app .offer-response-card.needs-action{border-color:#e5ca95}
.portal-app .offer-response-summary{
  display:grid;
  grid-template-columns:125px minmax(150px,.75fr) minmax(190px,1fr) auto;
  align-items:center;
  gap:14px;
  min-width:0;
  padding:11px 12px;
  background:linear-gradient(90deg,#fff,var(--portal-surface-soft));
}
.portal-app .offer-response-date,.portal-app .offer-response-shift,.portal-app .offer-response-person{min-width:0;display:grid}
.portal-app .offer-response-date strong,.portal-app .offer-response-shift strong,.portal-app .offer-response-person strong{font-size:.72rem;overflow-wrap:anywhere}
.portal-app .offer-response-date span,.portal-app .offer-response-shift small,.portal-app .offer-response-person small{margin-top:2px;color:var(--portal-muted);font-size:.59rem}
.portal-app .offer-response-summary .section-kicker{font-size:.48rem}
.portal-app .offer-response-note{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:8px 12px;border-top:1px solid var(--portal-line);background:#fff}
.portal-app .offer-response-note>span{color:var(--portal-muted);font-size:.53rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.portal-app .offer-response-note p{margin:0;color:var(--portal-text);font-size:.66rem}
.portal-app .offer-response-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  border-top:1px solid var(--portal-line);
  background:var(--portal-success-soft);
}
.portal-app .offer-response-actions>span{color:var(--portal-success);font-size:.64rem;font-weight:800}
.portal-app .offer-response-actions>div{display:flex;gap:6px;flex-wrap:wrap}
.portal-app .offer-response-actions button{min-height:34px;padding:6px 10px}
.portal-app .open-shift-exception-panel,.portal-app .open-shift-owner-required{
  padding:11px 12px;
  border-top:1px solid #ead2a1;
  background:var(--portal-warning-soft);
}
.portal-app .open-shift-exception-copy{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:8px;
}
.portal-app .open-shift-exception-copy>div{min-width:0}
.portal-app .open-shift-exception-copy strong{display:block;font-size:.72rem}
.portal-app .open-shift-exception-copy p{margin:2px 0 0;color:#705420;font-size:.62rem}
.portal-app .open-shift-issue-list{
  display:grid;
  gap:3px;
  margin:0 0 9px;
  padding:0;
  list-style:none;
}
.portal-app .open-shift-issue-list li{
  position:relative;
  padding-left:14px;
  color:#73531b;
  font-size:.61rem;
  line-height:1.4;
}
.portal-app .open-shift-issue-list li::before{content:"!";position:absolute;left:0;color:var(--portal-warning);font-weight:950}
.portal-app .open-shift-decision-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch}
.portal-app .inline.open-shift-approval-form{
  display:grid;
  grid-template-columns:minmax(190px,.8fr) minmax(260px,1.25fr) auto;
  align-items:end;
  gap:8px;
  min-width:0;
}
.portal-app .open-shift-confirm{
  min-height:64px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:7px;
  margin:0;
  padding:9px;
  border:1px solid #e5ca91;
  border-radius:8px;
  background:#fff;
}
.portal-app .open-shift-confirm input{margin-top:1px}
.portal-app .open-shift-confirm strong,.portal-app .open-shift-confirm small{display:block}
.portal-app .open-shift-confirm strong{font-size:.62rem}.portal-app .open-shift-confirm small{margin-top:2px;color:var(--portal-muted);font-size:.54rem}
.portal-app .open-shift-reason{min-width:0;margin:0}
.portal-app .open-shift-reason>span{display:block;margin-bottom:4px;color:#6d511c;font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.portal-app .open-shift-reason textarea{min-height:64px;max-height:100px;padding:7px 9px;background:#fff;font-size:.65rem}
.portal-app .open-shift-approval-form button,.portal-app .open-shift-reject-form button{min-height:64px}
.portal-app .inline.open-shift-reject-form{display:block}
.portal-app .open-shift-owner-required{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr) auto;align-items:center;gap:12px}
.portal-app .open-shift-owner-required.view-only{grid-template-columns:1fr}
.portal-app .open-shift-owner-required>div{display:grid;gap:5px}.portal-app .open-shift-owner-required>div strong{font-size:.68rem}
.portal-app .open-shift-owner-required .open-shift-issue-list{margin:0}

/* Existing specialist workspaces inherit the replacement surfaces. */
.portal-app .roster-toolbar,.portal-app .calendar-toolbar,.portal-app .compact-filter-bar,.portal-app .matrix-filter-bar{
  border-color:var(--portal-line);
  border-radius:var(--portal-radius);
  background:#fff;
  box-shadow:var(--portal-shadow);
}
.portal-app .roster-day-card,.portal-app .day-card,.portal-app .staff-roster-card,.portal-app .shift-staff-option,.portal-app .roster-shift-card,.portal-app .shift-card{
  border-color:var(--portal-line);
  border-radius:var(--portal-radius);
  box-shadow:0 1px 2px rgba(10,27,43,.035);
}
/* Roster assignment palette: calmer, less-crammed staff cards. Bigger name +
   day letters for readability; the per-card "select a shift" hint only appears
   once an actual availability result is loaded, cutting repeated noise. */
.portal-app .staff-roster-card{padding:12px 12px;gap:9px;margin-bottom:8px;align-items:center}
.portal-app .staff-roster-main strong{font-size:13.5px}
.portal-app .staff-roster-main small{font-size:10.5px;margin-top:2px}
.portal-app .staff-availability-strip{margin-top:8px;gap:3px}
.portal-app .availability-day{height:30px}
.portal-app .availability-day b{font-size:8px}
.portal-app .availability-day em{font-size:8px}
.portal-app .staff-exact-status{display:none;margin-top:4px}
.portal-app .staff-roster-card.is-exact-checked .staff-exact-status{display:block}
.portal-app .admin-dashboard-hero,.portal-app .staff-dashboard-hero{
  border-radius:var(--portal-radius-lg);
  box-shadow:var(--portal-shadow);
}
.portal-app .permission-table,.portal-app .audit-filter-card,.portal-app .audit-detail-header,.portal-app .meal-plan-placement-card,.portal-app .young-person-card{
  border-color:var(--portal-line);
  border-radius:var(--portal-radius);
  box-shadow:var(--portal-shadow);
}

@media(max-width:1200px){
  .portal-app .app-shell{grid-template-columns:248px minmax(0,1fr)}
  .portal-app .offer-response-summary{grid-template-columns:110px minmax(140px,.7fr) minmax(170px,1fr) auto}
  .portal-app .inline.open-shift-approval-form{grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr)}  
  .portal-app .open-shift-approval-form button{grid-column:1/-1;min-height:38px}
}
@media(max-width:1000px){
  .portal-app .app-shell{display:block}
  .portal-app .sidebar{width:min(88vw,340px);height:100dvh}
  .portal-app .topbar{height:62px;min-height:62px;padding-inline:14px}
  .portal-app .container,.portal-app .app-main{padding:18px 14px 70px}
  .portal-app .brand-logo-wrap{width:78px;min-width:78px}
  .portal-app .open-shift-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-app .open-shift-decision-grid{grid-template-columns:1fr}
  .portal-app .inline.open-shift-reject-form{display:flex;justify-content:flex-end}
  .portal-app .open-shift-reject-form button{min-height:38px}
}
@media(max-width:760px){
  .portal-app{font-size:13.5px}
  .portal-app .topbar-search,.portal-app .topbar-notification,.portal-app .topbar-user{min-height:36px;padding:5px 7px}
  .portal-app .topbar-title .eyebrow,.portal-app .topbar-action-label,.portal-app .topbar-user-copy{display:none}
  .portal-app .page-header,.portal-app .module-hero,.portal-app .profile-hero,.portal-app .placement-hero-card,.portal-app .hero-card{display:block;padding:16px;border-radius:13px}
  .portal-app .module-hero-actions,.portal-app .page-header .actions{margin-top:12px}
  .portal-app .card{padding:14px}
  .portal-app .open-shift-board,.portal-app .open-shift-responses{padding:14px}
  .portal-app .open-shift-filter-bar{grid-template-columns:1fr}
  .portal-app .open-shift-filter-buttons{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  .portal-app .open-shift-filter-buttons button{white-space:nowrap}
  .portal-app .open-shift-grid{grid-template-columns:1fr}
  .portal-app .open-shift-board-heading{align-items:flex-start}
  .portal-app .offer-response-summary{grid-template-columns:90px minmax(0,1fr) auto;gap:9px}
  .portal-app .offer-response-person{grid-column:2/4;padding-top:8px;border-top:1px solid var(--portal-line)}
  .portal-app .inline.open-shift-approval-form{grid-template-columns:1fr}
  .portal-app .open-shift-approval-form button{grid-column:auto;min-height:38px}
  .portal-app .open-shift-owner-required{grid-template-columns:1fr}
  .portal-app .open-shift-owner-required form{justify-self:start}
}
@media(max-width:520px){
  .portal-app .container,.portal-app .app-main{padding-inline:10px}
  .portal-app .topbar{padding-inline:10px}
  .portal-app .topbar-title h1{font-size:.94rem}
  .portal-app .topbar-user{display:none}
  .portal-app .open-shift-period-nav{grid-template-columns:1fr 1fr}
  .portal-app .open-shift-period-nav>div{grid-column:1/-1;grid-row:1}
  .portal-app .open-shift-period-nav>a{width:100%}
  .portal-app .open-shift-search{grid-template-columns:1fr;gap:4px}
  .portal-app .open-shift-card-header{grid-template-columns:46px minmax(0,1fr)}
  .portal-app .open-shift-date{width:46px}
  .portal-app .open-shift-statuses{grid-column:2;max-width:none;justify-content:flex-start}
  .portal-app .open-shift-detail-grid{grid-template-columns:1fr}
  .portal-app .open-shift-card-actions{display:grid;grid-template-columns:1fr 1fr}
  .portal-app .open-shift-card-actions .button,.portal-app .open-shift-card-actions form,.portal-app .open-shift-card-actions button{width:100%;margin:0}
  .portal-app .open-shift-card-actions .open-shift-close-form{grid-column:1/-1}
  .portal-app .open-shift-board-heading{display:grid}
  .portal-app .open-shift-result-count{justify-self:start}
  .portal-app .open-shift-response-search{width:100%;min-width:0}
  .portal-app .offer-response-summary{grid-template-columns:1fr auto}
  .portal-app .offer-response-date,.portal-app .offer-response-shift,.portal-app .offer-response-person{grid-column:1}
  .portal-app .offer-response-summary>.status-pill{grid-column:2;grid-row:1;align-self:start}
  .portal-app .offer-response-shift,.portal-app .offer-response-person{padding-top:7px;border-top:1px solid var(--portal-line)}
  .portal-app .offer-response-note{grid-template-columns:1fr;gap:3px}
  .portal-app .offer-response-actions{align-items:flex-start;flex-direction:column}
  .portal-app .offer-response-actions>div{width:100%}
  .portal-app .offer-response-actions form,.portal-app .offer-response-actions button{flex:1;width:100%}
  .portal-app .open-shift-empty-state{align-items:flex-start;flex-wrap:wrap}
  .portal-app .open-shift-empty-state>.button{width:100%;margin:0}
}

@media print{
  .portal-app .open-shift-filter-bar,.portal-app .open-shift-period-nav,.portal-app .open-shift-card-actions,.portal-app .offer-response-actions,.portal-app .open-shift-decision-grid{display:none!important}
  .portal-app .open-shift-board,.portal-app .open-shift-responses,.portal-app .open-shift-card,.portal-app .offer-response-card{box-shadow:none}
  .portal-app .open-shift-grid{grid-template-columns:1fr 1fr}
}

/* Employee profile: render muted grey text in black for readability.
   Scoped to the employee detail page (body.employee-detail-page) so other
   pages keep their normal muted hierarchy. Links keep their blue colour. */
body.employee-detail-page .info-tile label,
body.employee-detail-page .info-tile p,
body.employee-detail-page .section-kicker,
body.employee-detail-page .subtitle,
body.employee-detail-page .small,
body.employee-detail-page .helptext{color:#0f172a}

/* Young-person profile: same black-text readability treatment as the employee
   profile. Scoped so other pages keep their normal muted hierarchy. */
body.young-person-detail-page .info-tile label,
body.young-person-detail-page .info-tile p,
body.young-person-detail-page .section-kicker,
body.young-person-detail-page .subtitle,
body.young-person-detail-page .small,
body.young-person-detail-page .helptext{color:#0f172a}

/* Calendar week view: day columns are ~165px wide, so the 3-column agenda grid
   (which reserves a 200px title column) overflowed and clipped event text.
   Stack each item vertically within the narrow week column and let text wrap. */
.calendar-week-day .calendar-agenda-item{grid-template-columns:1fr;gap:2px;align-items:start}
.calendar-week-day .calendar-agenda-item>.pill{justify-self:start}
.calendar-week-day .calendar-agenda-item span{min-width:0}
.calendar-week-day .calendar-agenda-item strong,
.calendar-week-day .calendar-agenda-item small{white-space:normal;overflow-wrap:anywhere}

/* Training & compliance matrix readability: the per-item status text was small
   and grey. Larger, darker text makes the matrices legible at a glance. */
.matrix-person-copy p,.matrix-person-copy>span{font-size:.82rem;color:var(--text-800)}
.matrix-person-name{font-size:1.05rem;color:var(--text-950)}
.matrix-status-detail{font-size:.82rem;color:var(--text-900);line-height:1.5}
.matrix-status-detail strong{color:var(--text-950)}
.matrix-compact-cell-meta{font-size:.72rem;color:var(--text-800)}

/* Employee & young-person profile: make the email/phone link values in info
   tiles black (still underlined so they read as links) for readability. */
body.employee-detail-page .info-tile a,
body.young-person-detail-page .info-tile a{color:#0f172a;text-decoration:underline}

/* Young-person memories gallery */
.memory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.memory-card .memory-body{margin-top:10px}
.memory-photo{width:100%;height:190px;object-fit:cover;border-radius:12px;border:1px solid #e2e8f0;display:block}
.memory-gallery{display:flex;flex-wrap:wrap;gap:6px}
.memory-gallery .memory-photo{width:104px;height:104px}
.memory-share-fieldset{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin:0}
.memory-share-fieldset legend{font-weight:800;font-size:.8rem;padding:0 6px}
.memory-share-fieldset ul{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 14px}
.memory-share-fieldset label{font-weight:600}

/* Long URLs / unbroken strings wrap inside cards instead of overflowing the column */
.record-block{overflow-wrap:anywhere}
.record-block p,.record-block a,.entity-card-meta{overflow-wrap:anywhere;word-break:break-word}

/* Recent-memories preview thumbnails on the YP profile */
.memory-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.memory-preview{display:block;text-decoration:none;color:#0f172a}
.memory-preview-photo{width:100%;height:88px;object-fit:cover;border-radius:12px;border:1px solid #e2e8f0;display:block}
.memory-preview-note{display:flex;align-items:center;justify-content:center;height:88px;border-radius:12px;border:1px solid #e2e8f0;background:#f1f5f9;font-size:26px}
.memory-preview-note svg{width:28px;height:28px;fill:none;stroke:#64748b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.memory-preview-cap{display:block;font-size:11px;color:#475569;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.metrics-canvas{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:start;margin-bottom:18px}
.metrics-canvas .mw{position:relative;min-width:0}
.mw-sm{grid-column:span 1}
.mw-md{grid-column:span 3}
.mw-lg{grid-column:span 6}
.mw-remove{display:none;position:absolute;top:-9px;right:-9px;z-index:3;width:24px;height:24px;border-radius:999px;background:#dc2626;color:#fff;border:0;font-size:15px;line-height:1;cursor:pointer;align-items:center;justify-content:center;padding:0}
.metrics-canvas.is-editing .mw{cursor:grab;outline:2px dashed rgba(148,163,184,.7);outline-offset:2px;border-radius:14px}
.metrics-canvas.is-editing .mw-remove{display:inline-flex}
.metrics-canvas.is-editing .mw a{pointer-events:none}
.metrics-canvas.is-editing .mw .mw-remove{pointer-events:auto}
.mw.dragging{opacity:.45}
.metrics-editbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#eef2ff;border:1px solid #c7d2fe;border-radius:12px;padding:10px 14px;margin-bottom:14px}
.metrics-add-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.metrics-add-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;color:#0f172a;cursor:pointer;text-align:left;font-weight:800}
.metrics-add-btn small{color:#64748b;font-weight:600}
.metrics-add-btn:hover{border-color:#94a3b8;box-shadow:0 8px 18px rgba(15,23,42,.08)}
@media(max-width:1100px){.metrics-canvas{grid-template-columns:repeat(4,1fr)}.mw-md{grid-column:span 2}.mw-lg{grid-column:span 4}}
@media(max-width:760px){.metrics-canvas{grid-template-columns:repeat(2,1fr)}.mw-md,.mw-lg{grid-column:span 2}}

/* Policy reading (v86): a policy's text laid out as a document, with the e-signature at the end. */
.policy-doc{max-width:860px;margin:0 auto;font-size:15px;line-height:1.65;color:var(--text-800,#1f2937)}
.policy-doc__head{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:22px}
.policy-doc__kicker{display:inline-block;font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--cf-green-dark,#1f7c35);margin-bottom:8px}
.policy-doc__summary{font-size:1.05rem;color:var(--text-700,#334155);margin:0 0 14px}
.policy-doc__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 22px;margin:0;padding:14px 16px;background:var(--surface-muted,#f8fafc);border:1px solid var(--line);border-radius:12px}
.policy-doc__meta div{min-width:0}
.policy-doc__meta dt{font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--text-600,#475569);margin:0 0 2px}
.policy-doc__meta dd{margin:0;font-weight:600;font-size:.9rem}
.policy-doc__attachment{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.policy-doc__embed{width:100%;height:78vh;border:1px solid var(--line);border-radius:12px;background:#fff;margin:0 0 18px}
.policy-doc__toc{margin:0 0 26px;padding:14px 18px;border-left:4px solid var(--cf-green,#39AD3E);background:var(--surface-muted,#f8fafc);border-radius:0 12px 12px 0}
.policy-doc__toc strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-600,#475569);margin-bottom:6px}
.policy-doc__toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px}
.policy-doc__toc li{margin:3px 0;break-inside:avoid;font-weight:600}
.policy-doc__section{margin:0 0 28px;scroll-margin-top:100px}
.policy-doc__section h2{display:flex;align-items:baseline;gap:12px;font-size:1.3rem;margin:0 0 12px;padding-top:8px;border-top:1px solid var(--line)}
.policy-doc__num{flex:0 0 auto;min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--cf-green-soft,#eaf6eb);color:var(--cf-green-dark,#1f7c35);font-size:.95rem;font-weight:900}
.policy-doc h3{font-size:1.02rem;margin:18px 0 6px;color:var(--text-950,#0f172a)}
.policy-doc p{margin:0 0 12px}
.policy-doc ul{margin:0 0 12px;padding-left:22px}
.policy-doc li{margin:4px 0}
.policy-sign{position:sticky;bottom:0;z-index:4;margin-top:22px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg,0 12px 30px rgba(15,23,42,.12));display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.policy-sign p{margin:0}
.policy-list-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.policy-list-row:first-of-type{border-top:0;padding-top:4px}
.policy-list-row__main{min-width:0}
.policy-list-row__main strong{display:block;font-size:1rem}
.policy-list-row__main small{color:var(--text-600,#475569)}
.policy-list-row__actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;flex-wrap:wrap}
@media(max-width:760px){.policy-doc__toc ol{columns:1}.policy-list-row{flex-direction:column;align-items:flex-start}.policy-doc__section h2{font-size:1.15rem}.policy-doc__embed{height:70vh}.policy-sign{position:static}}

/* Who's online (top bar, v86) */
.topbar-presence{position:relative}
.topbar-presence__btn{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:7px 11px;border:1px solid var(--border,#dbe3ea);border-radius:13px;background:rgba(255,255,255,.94);color:var(--ink,#0f172a);font:inherit;font-weight:800;font-size:12px;cursor:pointer;box-shadow:var(--shadow-xs,none)}
.topbar-presence__btn:hover{border-color:#b8c8d8;background:#f9fbfd;filter:none}
.topbar-presence__dot{width:9px;height:9px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.22)}
.topbar-presence__count{font-size:12px;font-weight:900}
.topbar-presence__panel{position:absolute;right:0;top:calc(100% + 8px);width:310px;max-height:420px;overflow:auto;background:#fff;border:1px solid var(--border,#dbe3ea);border-radius:14px;box-shadow:var(--shadow-lg,0 12px 30px rgba(15,23,42,.14));z-index:40;padding:0 0 6px;text-align:left}
.topbar-presence__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:12px 14px 9px;border-bottom:1px solid var(--line)}
.topbar-presence__head strong{font-size:13px}
.topbar-presence__head small{color:#64748b;font-size:11px;white-space:nowrap}
.topbar-presence__list{list-style:none;margin:0;padding:6px 0}
.topbar-presence__list li{display:flex;align-items:center;gap:10px;padding:8px 14px}
.topbar-presence__avatar{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:#eaf6eb;color:#1f7c35;font-weight:900;font-size:12px;flex:0 0 30px}
.topbar-presence__copy{display:grid;line-height:1.2;min-width:0}
.topbar-presence__copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-presence__copy small{color:#64748b;font-size:11px}
.topbar-presence__empty{color:#64748b;font-size:12px}
@media(max-width:760px){.topbar-presence__panel{position:fixed;left:12px;right:12px;top:78px;width:auto}}
.topbar-presence__device{color:#475569}
.topbar-presence__foot{border-top:1px solid var(--line);padding:10px 14px 10px}
.topbar-presence__name{display:grid;gap:6px}
.topbar-presence__name label{margin:0;font-size:11px;font-weight:700;color:#64748b}
.topbar-presence__name input{max-width:none;padding:8px 10px;font-size:12px}
.topbar-presence__name .button{justify-self:start}

/* Memory photos hidden on staff phones (clients.memories_access) */
.memory-locked{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--surface-muted,#f8fafc);border:1px dashed var(--line);border-radius:12px;color:#475569;font-size:13px;font-weight:600}
.memory-locked svg{width:20px;height:20px;flex:0 0 20px}
.memory-preview-note.is-locked{color:#94a3b8}

/* Page-level metric tiles on placement and young-person pages (v87) */
.context-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:0 0 18px}
.context-metrics .admin-pulse-card{min-height:118px;padding:12px 14px}
.context-metrics .admin-pulse-card strong{font-size:24px}

/* Young-person progress report (v88). Chart colours validated with the data-viz palette checks on a white surface. */
.progress-report{--pr-s1:#2a78d6;--pr-s2:#eb6834;--pr-sev1:#184f95;--pr-sev2:#2a78d6;--pr-sev3:#5598e7;--pr-sev4:#86b6ef;--pr-eng1:#0b5d34;--pr-eng2:#1f7f2b;--pr-eng3:#3aa63f;--pr-eng4:#7cc77f;--pr-grid:#e2e8f0;--pr-axis:#cbd5e1}
.progress-report .context-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.progress-view-switch{display:flex;align-items:center;gap:6px}
.progress-view-switch>span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-right:4px}
.progress-view-switch .button{padding:8px 12px;font-size:13px}
.progress-filter{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 18px}
.progress-highlights{margin:0 0 18px}
.progress-highlight-list{margin:0;padding-left:20px;line-height:1.65;color:#1e293b}
.progress-highlight-list li+li{margin-top:6px}
.progress-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 18px}
.progress-chart-card{display:flex;flex-direction:column;gap:8px}
.progress-chart-card .section-heading-row p{margin:2px 0 0;color:#64748b;font-size:13px}
.progress-chart{width:100%;height:auto;display:block;overflow:visible;font-family:inherit}
.pr-grid{stroke:var(--pr-grid);stroke-width:1}
.pr-axis{stroke:var(--pr-axis);stroke-width:1}
.pr-tick,.pr-label{font-size:11px;fill:#64748b}
.pr-value{font-size:11px;font-weight:800;fill:#0f172a}
.pr-hit{fill:transparent}
.pr-col:hover path,.pr-col:hover rect:not(.pr-hit){opacity:.8}
.pr-fill-s1{fill:var(--pr-s1)}.pr-fill-s2{fill:var(--pr-s2)}
.pr-fill-sev1{fill:var(--pr-sev1)}.pr-fill-sev2{fill:var(--pr-sev2)}.pr-fill-sev3{fill:var(--pr-sev3)}.pr-fill-sev4{fill:var(--pr-sev4)}
.pr-fill-eng1{fill:var(--pr-eng1)}.pr-fill-eng2{fill:var(--pr-eng2)}.pr-fill-eng3{fill:var(--pr-eng3)}.pr-fill-eng4{fill:var(--pr-eng4)}
.pr-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.pr-swatch.pr-fill-s1{background:var(--pr-s1)}.pr-swatch.pr-fill-s2{background:var(--pr-s2)}
.pr-swatch.pr-fill-sev1{background:var(--pr-sev1)}.pr-swatch.pr-fill-sev2{background:var(--pr-sev2)}.pr-swatch.pr-fill-sev3{background:var(--pr-sev3)}.pr-swatch.pr-fill-sev4{background:var(--pr-sev4)}
.pr-swatch.pr-fill-eng1{background:var(--pr-eng1)}.pr-swatch.pr-fill-eng2{background:var(--pr-eng2)}.pr-swatch.pr-fill-eng3{background:var(--pr-eng3)}.pr-swatch.pr-fill-eng4{background:var(--pr-eng4)}
.progress-legend{flex-wrap:wrap;gap:8px 16px;font-size:12px;font-weight:600;color:#334155}
.progress-type-list{display:grid;gap:8px}
.progress-type-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px;color:#1e293b}
.progress-type-bar{width:100%;height:auto;display:block}
.progress-type-value{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;color:#0f172a}
.progress-table td,.progress-table th[scope=row]{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:900px){.progress-charts{grid-template-columns:1fr}.progress-type-row{grid-template-columns:1fr;gap:4px}}
@media print{.progress-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-chart-card,.progress-table-card,.progress-highlights{break-inside:avoid}.progress-filter{display:none}}
.auth-submit.is-busy{opacity:.7;cursor:progress}

/* School timetables on the placement page (v90) */
.school-timetable{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}
.school-timetable+.school-timetable{margin-top:12px}
.school-timetable-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.school-timetable-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.school-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.school-day{border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:4px;background:#fff}
.school-day-name{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#64748b}
.school-day strong{font-size:14px;color:#0f172a;line-height:1.3}
.school-day.is-off{background:#f8fafc}.school-day.is-off strong{color:#64748b;font-weight:600}
.school-day.is-today{border-color:#15803d;box-shadow:inset 0 0 0 1px #15803d}
.school-holidays{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.school-timetable-note{margin:8px 0 0}
.school-days-table input[type=time]{min-width:120px}
.school-days-table td,.school-holidays-table td{vertical-align:middle}
.school-holidays-table input[type=date]{min-width:150px}

/* Supplied navy action icons on the young-person profile (v91) */
.action-tile-icon--image,.action-tile:hover .action-tile-icon--image{background:none;box-shadow:none;padding:0}
.action-tile-icon--image img{width:42px;height:42px;display:block;border-radius:12px}

/* Space between the action tiles and the cards that follow them (v92) */
.action-tile-grid{margin:0 0 18px}

/* CSO approval on risk / BSP plans */
.risk-approval-card{margin-bottom:18px}
.risk-approval-form{max-width:560px}

/* Read-and-acknowledge training */
.training-acknowledge-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.training-acknowledge-form label{display:flex;align-items:center;gap:6px;font-size:13px;margin:0}

/* Training matrix as a real grid: staff down the side, requirements across (v95) */
.matrix-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-xs)}
.matrix-grid{display:inline-block;min-width:100%;vertical-align:top}
.matrix-grid-head,.matrix-grid-row{display:grid;grid-template-columns:250px;grid-auto-columns:122px;grid-auto-flow:column}
.matrix-grid-cells{display:contents}
.matrix-grid-head{position:sticky;top:0;z-index:3;background:var(--surface-muted);border-bottom:2px solid var(--border)}
.matrix-grid-corner,.matrix-grid-colhead{padding:10px 10px;font-size:.62rem;font-weight:850;line-height:1.25;color:var(--text-700);border-right:1px solid var(--border);min-width:0}
.matrix-grid-corner{position:sticky;left:0;z-index:4;background:var(--surface-muted);font-size:.68rem;color:var(--text-900)}
.matrix-grid-corner small,.matrix-grid-colhead small{display:block;margin-top:3px;font-size:.56rem;font-weight:700;color:var(--text-500);letter-spacing:.02em}
.matrix-grid-colhead span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.matrix-grid-row{border-bottom:1px solid var(--border);border-left:0;border-radius:0;box-shadow:none;margin:0;overflow:visible}
.matrix-grid-row:last-child{border-bottom:0}
.matrix-grid-row.has-action .matrix-grid-person{box-shadow:inset 4px 0 0 var(--warning)}
.matrix-grid-row.is-current .matrix-grid-person{box-shadow:inset 4px 0 0 var(--success)}
.matrix-grid-person{position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:10px;padding:9px 10px 9px 14px;background:#fff;border-right:1px solid var(--border);min-width:0}
.matrix-grid-person .matrix-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:9px;font-size:.6rem}
.matrix-grid-score{display:grid;grid-template-columns:72px auto auto;gap:6px;align-items:center;margin-top:4px}
.matrix-grid-score progress{width:72px;height:6px}
.matrix-grid-score strong{font-size:.7rem}
.matrix-grid-score em{font-style:normal;font-size:.56rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.matrix-grid-score em.is-warning{color:var(--warning)}
.matrix-grid-score em.is-success{color:var(--success)}
.matrix-grid-cell{display:grid;align-content:center;gap:2px;min-height:62px;padding:8px 10px;border-right:1px solid var(--border);min-width:0}
.matrix-grid-cell small{font-size:.6rem;color:var(--text-500);white-space:nowrap}
.matrix-grid-cell a{font-size:.6rem;font-weight:850}
.matrix-grid-status{font-size:.7rem;font-weight:900;line-height:1.1}
.matrix-grid-cell.is-success{background:#f1faf3}.matrix-grid-cell.is-success .matrix-grid-status{color:#15803d}
.matrix-grid-cell.is-warning{background:#fff8e6}.matrix-grid-cell.is-warning .matrix-grid-status{color:#b45309}
.matrix-grid-cell.is-danger{background:#fff1f1}.matrix-grid-cell.is-danger .matrix-grid-status{color:#b91c1c}
.matrix-grid-cell.is-info{background:#eff5ff}.matrix-grid-cell.is-info .matrix-grid-status{color:#1d4ed8}
.matrix-grid-cell.is-neutral{background:#f8fafc}.matrix-grid-cell.is-neutral .matrix-grid-status{color:var(--text-500);font-weight:700}
.matrix-grid-hint{margin:8px 2px 0}
@media(max-width:900px){.matrix-grid-head,.matrix-grid-row{grid-template-columns:190px;grid-auto-columns:108px}.matrix-grid-person{padding-left:12px}.matrix-grid-score{grid-template-columns:56px auto}.matrix-grid-score em{display:none}}
@media print{.matrix-scroll{overflow:visible;border:0;box-shadow:none}.matrix-grid-head,.matrix-grid-row{grid-template-columns:150px;grid-auto-columns:minmax(54px,1fr)}.matrix-grid-head{position:static}.matrix-grid-person{position:static;box-shadow:none}.matrix-grid-cell a{display:none}.matrix-grid-cell{min-height:0;padding:4px 5px}}

/* Department audit pack cover notes */
.department-pack-contents{margin:0;padding-left:20px;line-height:1.6}
.department-pack-contents li+li{margin-top:6px}

/* IPS package staffing lines: keep the category select readable inside the table */
.ips-form-table td{vertical-align:middle}
.ips-form-table select{min-width:150px}
