:root{--purple:#2c0a71;--accent:#7b27a7;--accent2:#9440dd;--deep:#401268;--bg:#fcf5fd;--muted:#654f78;--line:#eadff2;--white:#fff;--danger:#9a1a1a;--success:#24663a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--purple);font-family:Arial,sans-serif;line-height:1.55}.topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:14px max(20px,calc((100vw - 1180px)/2))}.brand{font-weight:900;text-decoration:none;color:var(--purple);letter-spacing:.03em;white-space:nowrap}.brand span{color:var(--accent2)}.nav{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nav a{padding:9px 10px;border-radius:9px;color:var(--purple);font-weight:700;text-decoration:none;font-size:14px}.nav a:hover{background:var(--bg)}.nav-toggle{display:none;margin-left:auto;background:none;border:0;font-size:22px;color:var(--purple)}.shell{max-width:1180px;margin:0 auto;padding:34px 22px 70px}.shell-narrow{max-width:620px;padding-top:8vh}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 7px 24px rgba(44,10,113,.055)}.auth-card{padding:34px}.eyebrow{color:var(--accent2);font-size:12px;font-weight:900;letter-spacing:.08em;margin-bottom:9px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}h1{font-size:36px;line-height:1.1;margin:0 0 10px}h2{margin:28px 0 14px}h3{margin:8px 0}p{margin:7px 0 14px}.muted{color:var(--muted)}.small{font-size:13px}.button{display:inline-block;border:0;border-radius:12px;background:var(--accent);color:#fff;text-decoration:none;font-weight:800;padding:12px 18px;cursor:pointer;font-size:15px}.button:hover{background:var(--deep)}.button.secondary{background:#fff;color:var(--accent);border:1px solid #d9c7e6}.button.full{width:100%;margin-top:8px}.text-link{color:var(--accent);font-weight:800;text-decoration:none}.notice,.error,.success,.callout,.empty{padding:14px 16px;border-radius:13px;margin:16px 0}.notice,.callout,.empty{background:var(--bg)}.error{background:#fdeaea;color:var(--danger)}.success{background:#e9f7ed;color:var(--success)}label{display:block;font-weight:800;margin:16px 0 8px}input,textarea,select{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #d8c5e9;border-radius:11px;background:#fff;color:#26133a;font:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(148,64,221,.1)}input[type=file]{padding:10px}.code-input{font-size:30px;letter-spacing:8px;text-align:center}.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}.check input{width:auto;margin:4px 0 0}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.tile{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;text-decoration:none;color:var(--purple);display:flex;flex-direction:column;gap:7px;min-height:120px;box-shadow:0 5px 18px rgba(44,10,113,.04)}.tile:hover:not(.static){transform:translateY(-2px);box-shadow:0 9px 24px rgba(44,10,113,.08)}.tile strong{font-size:19px}.tile span{color:var(--muted);font-size:14px}.stack{display:grid;gap:13px}.announcement{border-left:5px solid var(--accent2)}.announcement.important{border-left-color:#b33b56}.pill{display:inline-block;background:var(--bg);color:var(--accent);padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:17px}.cat-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--purple);box-shadow:0 5px 18px rgba(44,10,113,.04)}.cat-image{aspect-ratio:1/1;background:#efe4f5;overflow:hidden}.cat-image img{width:100%;height:100%;object-fit:cover;display:block}.cat-body{padding:18px}.cat-body p{color:var(--muted);font-size:13px}.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.hero-cat{width:100%;max-height:440px;object-fit:cover;border-radius:14px}.details{display:grid;grid-template-columns:150px 1fr;gap:10px 14px}.details dt{font-weight:800;color:var(--muted)}.details dd{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-2{grid-column:1/-1}.form-wide{max-width:850px}.bank-box{border:1px solid var(--line);border-radius:15px;background:var(--bg);padding:18px;margin:18px 0}.disclosure{margin-bottom:16px}.disclosure summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;list-style:none}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary span{display:flex;flex-direction:column}.disclosure summary small{color:var(--muted);font-weight:400}.claim-list{margin-top:18px}.claim{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:15px 0}.claim-link{text-decoration:none;color:var(--purple)}.claim:first-child{border-top:0}.claim p{color:var(--muted);font-size:14px;margin:3px 0 7px}@media(max-width:760px){.topbar{padding:13px 16px}.nav-toggle{display:block}.nav{display:none;position:absolute;left:12px;right:12px;top:60px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 12px 35px rgba(44,10,113,.14);padding:10px}.nav.open{display:grid}.nav a{padding:11px 12px}.shell{padding:25px 14px 55px}.page-head{display:block}.page-head .button{margin-top:10px}h1{font-size:30px}.profile-grid,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.details{grid-template-columns:1fr}.details dt{margin-top:7px}.panel{padding:20px}.auth-card{padding:24px}.claim{align-items:flex-start}.disclosure summary{align-items:flex-start}}

/* Unified collapsible section component */
details.portal-section{padding:0;overflow:hidden;margin-bottom:16px}
details.portal-section>summary{position:relative;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;min-height:68px;padding:18px 64px 18px 20px!important;margin:0!important;cursor:pointer;list-style:none;font-weight:800;color:var(--purple);background:#fff;border:0!important;transition:background-color .16s ease,box-shadow .16s ease}
details.portal-section>summary::-webkit-details-marker{display:none}
details.portal-section>summary::marker{content:""}
details.portal-section>summary:hover{background:#fbf7fd}
details.portal-section>summary:focus-visible{outline:3px solid rgba(148,64,221,.22);outline-offset:-3px}
details.portal-section>summary::after{content:'⌄'!important;position:absolute!important;right:20px!important;top:50%!important;float:none!important;display:grid!important;place-items:center;width:30px;height:30px;margin:0!important;border:1px solid #dbc8e8;border-radius:999px;background:#fcf5fd;color:var(--accent);font-size:19px!important;font-weight:900;line-height:1!important;transform:translateY(-50%) rotate(-90deg)!important;transition:transform .18s ease,background-color .16s ease,border-color .16s ease!important}
details.portal-section[open]>summary::after{transform:translateY(-50%) rotate(0deg)!important}
details.portal-section[open]>summary{border-bottom:1px solid var(--line)!important}
details.portal-section>summary:hover::after{background:#f3e8f8;border-color:#c9aee0}
details.portal-section>.portal-section-body{padding:18px 20px 20px!important;margin:0!important;border-top:0!important}
details.portal-section .detail-section-chevron{display:none!important}
details.portal-section>summary small,details.portal-section>summary .cat-summary-sub{color:var(--muted);font-weight:400}
@media(max-width:760px){details.portal-section>summary{min-height:62px;padding:16px 58px 16px 17px!important}details.portal-section>summary::after{right:16px!important;width:28px;height:28px}details.portal-section>.portal-section-body{padding:16px 17px 18px!important}}


/* Accessible, consistent collapsible section headers */
details.panel.portal-section > summary,
details.panel.disclosure > summary,
details.panel.expense-section > summary,
details.panel.my-details-section > summary {
    background: #ffffff !important;
    border: 2px solid #9440dd !important;
    border-radius: 14px !important;
    color: #2c0a71 !important;
    box-shadow: 0 2px 8px rgba(44,10,113,.10) !important;
}
details.panel.portal-section[open] > summary,
details.panel.disclosure[open] > summary,
details.panel.expense-section[open] > summary,
details.panel.my-details-section[open] > summary {
    background: #eadcf7 !important;
    border-color: #7b27a7 !important;
    border-radius: 14px 14px 0 0 !important;
}
details.panel.portal-section:not([open]) > summary:hover,
details.panel.disclosure:not([open]) > summary:hover,
details.panel.expense-section:not([open]) > summary:hover,
details.panel.my-details-section:not([open]) > summary:hover {
    background: #f3eafb !important;
}


/* Collapsible sections: keep the accessible white header contrast, remove the purple outline */
details.panel.portal-section > summary,
details.panel.disclosure > summary,
details.panel.expense-section > summary,
details.panel.my-details-section > summary {
    border: 0 !important;
    box-shadow: 0 2px 8px rgba(44,10,113,.08) !important;
}


/* Collapsible sections: tighter rhythm and no sticky mobile tap/focus colour */
details.panel.portal-section,
details.panel.disclosure,
details.panel.expense-section,
details.panel.my-details-section {
    margin-bottom: 12px !important;
}

details.panel.portal-section:not([open]) > summary,
details.panel.disclosure:not([open]) > summary,
details.panel.expense-section:not([open]) > summary,
details.panel.my-details-section:not([open]) > summary {
    background: #ffffff !important;
}

details.panel.portal-section:not([open]) > summary:focus,
details.panel.portal-section:not([open]) > summary:active,
details.panel.disclosure:not([open]) > summary:focus,
details.panel.disclosure:not([open]) > summary:active,
details.panel.expense-section:not([open]) > summary:focus,
details.panel.expense-section:not([open]) > summary:active,
details.panel.my-details-section:not([open]) > summary:focus,
details.panel.my-details-section:not([open]) > summary:active {
    background: #ffffff !important;
}

@media (hover: none), (pointer: coarse) {
    details.panel.portal-section:not([open]) > summary:hover,
    details.panel.disclosure:not([open]) > summary:hover,
    details.panel.expense-section:not([open]) > summary:hover,
    details.panel.my-details-section:not([open]) > summary:hover {
        background: #ffffff !important;
    }
}


/* Portal layout consistency pass */
.expense-filter-panel,
.detail-change-filter-panel {
    margin-bottom: 18px !important;
}
details.panel.portal-section,
details.panel.disclosure,
details.panel.expense-section,
details.panel.my-details-section,
.detail-section {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
}
.page-back-row {
    display: flex;
    justify-content: flex-end;
    margin: -2px 0 14px;
}
.page-back-button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

/* Dashboard */
.dashboard-head { margin-bottom: 18px; }
.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 18px;
    align-items: start;
}
.dashboard-column { display: grid; gap: 18px; }
.dashboard-card { margin: 0; }
.dashboard-card-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:14px;
}
.dashboard-card-head h2 { margin: 0 0 4px; }
.dashboard-card-head p { margin: 0; }
.dashboard-task {
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    padding:14px 0;
    border-top:1px solid #eadff1;
}
.dashboard-task:first-child { border-top:0; padding-top:0; }
.dashboard-task:last-child { padding-bottom:0; }
.dashboard-task-copy strong { display:block; margin-bottom:4px; }
.dashboard-task-copy p { margin:0; }
.dashboard-task-action { white-space:nowrap; }
.dashboard-announcement {
    padding: 14px 0;
    border-top:1px solid #eadff1;
}
.dashboard-announcement:first-child { border-top:0; padding-top:0; }
.dashboard-announcement:last-child { padding-bottom:0; }
.dashboard-announcement h3 { margin:7px 0 5px; }
.dashboard-announcement p { margin:0; }
.dashboard-empty {
    padding: 18px;
    border-radius: 12px;
    background: #fcf8fe;
}
.dashboard-attention-count {
    min-width:30px;
    height:30px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#f0e2fa;
    color:#2c0a71;
    font-weight:700;
}
@media (max-width: 820px) {
    .dashboard-grid { grid-template-columns: 1fr; }
    .dashboard-task { align-items:flex-start; }
}
@media (max-width: 560px) {
    .dashboard-task { flex-direction:column; }
    .dashboard-task-action { width:100%; text-align:center; }
    .page-back-row { justify-content:flex-start; }
}


/* Page heading back button: inline with title block */
.page-back-source { display: none !important; }
.page-head > .page-back-button {
    margin-left: auto;
    align-self: flex-start;
    flex: 0 0 auto;
}
.dashboard-announcements {
    margin-bottom: 18px;
}
.dashboard-work-grid {
    margin-top: 0;
}
@media (max-width: 640px) {
    .page-head > .page-back-button {
        margin-left: 0;
        margin-top: 10px;
        align-self: flex-start;
    }
}

/* Announcements v2 */
.announcement-feed { display:grid; gap:14px; }
.announcement-feed-card { margin:0; }
.announcement-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.announcement-meta { color:#6e6174; font-size:.9rem; margin:.35rem 0 .8rem; }
.announcement-seen { color:#401268; text-decoration:none; font-weight:700; white-space:nowrap; }
.announcement-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:16px; }
.announcement-actions form { margin:0; }
.announcement-detail .announcement-body { margin:16px 0 20px; line-height:1.65; }
.audience-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:10px 0 18px; }
.audience-advanced { margin:18px 0; }
.audience-advanced summary { cursor:pointer; font-weight:700; }
@media (max-width:640px){ .audience-options{grid-template-columns:1fr;} }

.document-section { margin-bottom:12px !important; }

/* Navigation + page-head alignment refinements */
.page-head { align-items:flex-start; }
.page-head > .button:not(.page-back-button) { margin-top:0; align-self:flex-start; }
.document-summary-copy { display:flex; flex-direction:column; gap:4px; min-width:0; }
.document-summary-copy strong { display:block; }
.document-summary-copy small { display:block; font-weight:400; line-height:1.35; color:#5f5365; }

.nav-dropdown { position:relative; display:flex; align-items:center; }
.nav-dropdown-toggle { appearance:none; border:0; background:transparent; color:inherit; font:inherit; font-weight:inherit; padding:0; cursor:pointer; }
.nav-dropdown-menu { display:none; position:absolute; top:calc(100% + 10px); left:0; min-width:180px; padding:8px; background:#fff; border:1px solid rgba(64,18,104,.12); border-radius:12px; box-shadow:0 10px 30px rgba(44,10,113,.12); z-index:100; }
.nav-dropdown.open .nav-dropdown-menu { display:grid; gap:2px; }
.nav-dropdown-menu a { display:block; padding:9px 10px; border-radius:8px; white-space:nowrap; }
.nav-dropdown-menu a:hover { background:#fcf5fd; }

@media (max-width: 760px) {
  .nav-dropdown { display:block; width:100%; }
  .nav-dropdown-toggle { width:100%; text-align:left; padding:10px 0; }
  .nav-dropdown-menu { position:static; box-shadow:none; border:0; border-left:2px solid rgba(123,39,167,.18); border-radius:0; margin:0 0 4px 8px; padding:0 0 0 10px; background:transparent; }
}

/* V5 navigation and App Library */
.nav > a,
.nav-dropdown-toggle {
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: 700 !important;
}
.dashboard-card-actions { display:flex; align-items:center; gap:14px; }
.app-library-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.app-library-card { display:flex; gap:18px; align-items:flex-start; margin:0; }
.app-library-card h2 { margin-top:0; }
.app-library-icon { width:64px; height:64px; border-radius:14px; object-fit:contain; flex:0 0 64px; background:#fff; }
.app-library-icon-placeholder { display:flex; align-items:center; justify-content:center; background:#f4eafb; color:#401268; font-size:1.6rem; font-weight:800; }
.app-admin-title { display:flex; align-items:flex-start; gap:12px; }
.app-mini-icon { width:42px; height:42px; border-radius:9px; object-fit:contain; background:#fff; }
@media(max-width:640px){.dashboard-card-actions{align-items:flex-end;flex-direction:column;gap:8px}.app-library-card{flex-direction:column;}}

/* V6 streamlined category navigation */
.nav-submenu { border-top:1px solid #eee2f4; margin-top:4px; padding-top:4px; }
.nav-submenu-label { display:block; padding:8px 14px 4px; font-size:.76rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#70597d; }
.nav-submenu a { padding-left:24px !important; }
.nav-placeholder { display:flex; justify-content:space-between; gap:12px; padding:10px 14px; color:#8b7b91; cursor:default; white-space:nowrap; }
.nav-placeholder small { font-size:.7rem; opacity:.8; }
.tile-placeholder { opacity:.68; cursor:default; }


/* V7 mobile navigation alignment and dashboard quick links */
.dashboard-quick-links { margin-bottom:18px; }
.dashboard-quick-links-head h2 { margin:2px 0 10px; font-size:1.15rem; }
.dashboard-quick-links-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.dashboard-quick-link { display:flex; flex-direction:column; gap:3px; padding:13px 14px; border-radius:12px; background:#fff; box-shadow:0 2px 10px rgba(44,10,113,.07); text-decoration:none; color:inherit; }
.dashboard-quick-link strong { color:#2c0a71; }
.dashboard-quick-link span { color:#70597d; font-size:.86rem; }
@media (max-width:760px) {
  .nav { align-items:stretch; }
  .nav > a, .nav-dropdown-toggle { box-sizing:border-box; width:100%; min-height:44px; display:flex; align-items:center; padding:10px 0 !important; margin:0; text-align:left; }
  .nav-dropdown-toggle { justify-content:space-between; }
  .nav-dropdown-toggle > span { width:22px; text-align:center; flex:0 0 22px; }
  .nav-dropdown-menu { box-sizing:border-box; width:calc(100% - 8px); }
  .nav-dropdown-menu a, .nav-placeholder { white-space:normal; }
  .dashboard-quick-links-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:420px) { .dashboard-quick-links-grid { grid-template-columns:1fr; } }

/* V10 documents and policies library */
.document-list{display:grid;gap:10px}.document-list-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(44,10,113,.10)}.document-list-item:last-child{border-bottom:0}.document-list-item small{display:block;margin-top:4px;color:var(--muted,#6b6470)}
.policy-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.policy-library-card{display:flex;flex-direction:column;gap:12px}.policy-library-card h2{margin:0}.policy-card-top{display:flex;flex-wrap:wrap;gap:8px}.policy-review-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:auto}.policy-review-meta span{background:rgba(148,64,221,.06);border-radius:10px;padding:10px}.policy-review-meta strong{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}.status-pill.danger{background:#fde8e8;color:#8b1e1e}.status-pill.warning{background:#fff3cd;color:#715500}.form-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.checkbox-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.checkbox-row input{width:auto!important}.button.danger{background:#8b1e1e;border-color:#8b1e1e;color:#fff}
@media(max-width:760px){.policy-library-grid,.policy-review-meta,.form-grid.two{grid-template-columns:1fr}.document-list-item{align-items:flex-start;flex-direction:column}.document-list-item .button{width:100%;text-align:center}}

/* V14 personal document viewer */
.document-viewer-head{gap:18px}.document-viewer-shell{max-width:940px;margin:18px auto 0;padding:20px;background:#e9e3ed;border-radius:16px;box-shadow:0 4px 20px rgba(44,10,113,.08)}.document-viewer-frame{display:block;width:100%;height:min(1180px,calc(100vh - 230px));min-height:760px;margin:0 auto;border:0;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.12)}.document-viewer-mobile-actions{display:none;margin-top:14px}.document-viewer-mobile-actions .button{width:100%;text-align:center;box-sizing:border-box}
@media(max-width:760px){.document-viewer-head>.button{display:none}.document-viewer-shell{margin:12px -8px 0;padding:8px;border-radius:12px}.document-viewer-frame{height:calc(100vh - 220px);min-height:560px}.document-viewer-mobile-actions{display:block}}

/* V16 document viewer controls: retain the proven V14 viewer dimensions */
.document-viewer-toolbar {
    max-width: 940px;
    margin: 0 auto 12px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.document-viewer-toolbar .button { white-space: nowrap; }
@media (max-width: 760px) {
    .document-viewer-toolbar {
        max-width: none;
        margin: 0 0 10px;
    }
    .document-viewer-toolbar .button {
        width: 100%;
        text-align: center;
    }
}


/* V17 document viewer alignment: one shared 940px content column */
.document-viewer-head {
    max-width: 940px;
    margin-left: auto;
    margin-right: auto;
}
.document-viewer-head > div:first-child {
    min-width: 0;
}
@media (max-width: 760px) {
    .document-viewer-head {
        max-width: none;
    }
}

/* V23 induction workflow */
.induction-progress{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.induction-progress span{background:#fff;border-radius:999px;padding:8px 12px;font-size:13px;box-shadow:0 2px 10px rgba(44,10,113,.06)}.induction-progress span.active{font-weight:700;background:#f1e7fb;color:#2c0a71}.induction-card{max-width:900px;margin-left:auto;margin-right:auto}.induction-role+.induction-role{border-top:1px solid #eee6f1;margin-top:20px;padding-top:20px}.induction-copy{line-height:1.65}.induction-item{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px;border:1px solid #eee6f1;border-radius:12px;background:#fff}.induction-item-actions{display:flex;align-items:center;gap:10px}.tour-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.tour-card{padding:18px;border-radius:14px;background:#fff;border:1px solid #eee6f1}.tour-card h3{margin-top:0}.induction-pdf-frame{display:block;width:100%;height:min(1100px,75vh);min-height:650px;border:0;background:#fff}.induction-link-editor{padding:16px;margin:0 0 14px;border:1px solid #e8ddec;border-radius:14px;background:#fff}.inline-options{display:flex;gap:18px;flex-wrap:wrap}@media(max-width:760px){.induction-item{align-items:flex-start;flex-direction:column}.induction-item-actions{width:100%}.induction-pdf-frame{min-height:520px}}

/* V24 Tasks + Diary */
.task-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:-8px 0 18px}.task-filter-row .pill{text-decoration:none}.task-filter-row .pill.active{background:#2c0a71;color:#fff}.task-list{display:grid;gap:0}.task-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid #eee5f3}.task-row:last-child{border-bottom:0}.task-row strong{display:block;color:#2c0a71}.task-row p{margin:4px 0 0}.task-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:5px;font-size:12px;color:#70597d}.task-meta span{background:#f7effa;border-radius:999px;padding:3px 8px}.task-row.urgency-overdue{border-left:4px solid #a52a2a;padding-left:12px}.task-row.urgency-due{border-left:4px solid #c46b13;padding-left:12px}.diary-toolbar{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.diary-toolbar h2{min-width:190px;text-align:center;margin:0}.diary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.diary-weekdays>div{text-align:center;font-size:12px;font-weight:700;color:#70597d;padding:8px}.diary-month{border:1px solid #eadff2;border-radius:14px;overflow:hidden;background:#fff}.diary-day{min-height:128px;padding:8px;border-right:1px solid #eadff2;border-bottom:1px solid #eadff2;overflow:hidden}.diary-day:nth-child(7n){border-right:0}.diary-day.outside{background:#faf8fb;color:#a999b3}.diary-day.today{box-shadow:inset 0 0 0 2px #9440dd}.diary-day-number{font-weight:800;color:#2c0a71;margin-bottom:6px}.diary-event{display:block;text-decoration:none;font-size:11px;line-height:1.3;padding:5px 6px;margin:4px 0;border-radius:7px;background:#f3e9f8;color:#401268;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diary-event span{font-weight:800;margin-right:4px}.diary-more{font-size:11px;color:#70597d}.diary-agenda{margin-top:20px}@media(max-width:760px){.task-row{align-items:flex-start;flex-direction:column}.task-row .button{width:100%}.diary-weekdays{display:none}.diary-grid.diary-month{grid-template-columns:1fr}.diary-day{min-height:auto;border-right:0}.diary-day.outside{display:none}}

/* V25 Homechecks */
.list-stack{display:grid;gap:10px}.list-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--purple);background:#fff}.list-card:hover{background:var(--bg)}.check-row{display:flex;align-items:flex-start;gap:10px}.check-row input{width:auto;margin:5px 0 0}@media(max-width:760px){.list-card{align-items:flex-start;flex-direction:column}}

/* Homecheck collapsible heading spacing */
.homecheck-section-summary-copy {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 12px;
    row-gap: 3px;
    min-width: 0;
}
.homecheck-section-summary-copy strong,
.homecheck-section-summary-copy small {
    display: inline-block;
    margin: 0;
}
@media (max-width: 760px) {
    .homecheck-section-summary-copy {
        column-gap: 10px;
    }
}

/* Homechecks: force visible separation between section title and description */
.homecheck-queue-section > summary .homecheck-section-summary-copy > small {
    margin-left: 12px !important;
}
@media (max-width: 760px) {
    .homecheck-queue-section > summary .homecheck-section-summary-copy > small {
        margin-left: 10px !important;
    }
}

/* Mobile UX V2: alternative app shell. Desktop remains unchanged. */
.mobile-appbar,.mobile-bottom-nav,.mobile-more-sheet,.mobile-more-backdrop{display:none}

@media (max-width:760px){
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom));}
  body.mobile-menu-open{overflow:hidden}

  header.topbar{display:none!important}
  .nav-toggle{display:none!important}

  .mobile-appbar{
    display:flex;position:sticky;top:0;z-index:90;
    height:58px;padding:0 16px;
    align-items:center;justify-content:space-between;
    background:#fff;border-bottom:1px solid var(--line);
  }
  .mobile-appbar-brand{font-weight:900;font-size:13px;letter-spacing:.02em;text-decoration:none;color:var(--purple)}
  .mobile-appbar-brand span{color:var(--violet)}
  .mobile-appbar-action{
    width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
    text-decoration:none;font-size:22px;color:var(--purple);background:var(--bg);
  }

  main.shell,main.shell.shell-narrow{
    width:auto;max-width:none;margin:0;padding:20px 16px 28px;
  }
  main.shell>.page-head{margin-bottom:20px}
  .page-head{gap:14px;align-items:flex-start}
  .page-head h1{font-size:30px;line-height:1.05}
  .page-head p{margin-top:7px}
  .page-actions{width:100%;gap:8px}
  .page-actions .button,.page-actions form,.page-actions form .button{min-height:44px}

  .mobile-bottom-nav{
    display:grid;position:fixed;z-index:100;left:0;right:0;bottom:0;
    grid-auto-flow:column;grid-auto-columns:1fr;
    padding:7px 8px calc(7px + env(safe-area-inset-bottom));
    background:#fff;border-top:1px solid var(--line);
    box-shadow:0 -6px 22px rgba(44,10,113,.08);
  }
  .mobile-bottom-nav a,.mobile-bottom-nav button{
    border:0;background:transparent;text-decoration:none;color:#70597d;
    min-height:52px;padding:4px 5px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:2px;font:inherit;font-size:11px;font-weight:700;
  }
  .mobile-bottom-nav a.active{color:var(--purple)}
  .mobile-nav-icon{font-size:21px;line-height:1}

  .mobile-more-backdrop{
    display:block;position:fixed;inset:0;z-index:109;background:rgba(35,17,45,.34)
  }
  .mobile-more-backdrop[hidden]{display:none}
  .mobile-more-sheet{
    display:block;position:fixed;z-index:110;left:0;right:0;bottom:0;
    max-height:78vh;overflow:auto;background:#fff;
    border-radius:22px 22px 0 0;padding:8px 16px calc(90px + env(safe-area-inset-bottom));
    transform:translateY(105%);transition:transform .2s ease;
    box-shadow:0 -12px 40px rgba(44,10,113,.16)
  }
  .mobile-more-sheet.open{transform:translateY(0)}
  .mobile-more-head{display:flex;align-items:center;justify-content:space-between;padding:10px 2px 12px;font-size:20px;color:var(--purple)}
  .mobile-more-head button{border:0;background:var(--bg);width:38px;height:38px;border-radius:50%;font-size:25px;color:var(--purple)}
  .mobile-more-links{display:grid}
  .mobile-more-links a{padding:15px 4px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;color:var(--purple)}

  .grid,.dashboard-grid,.quick-links,.form-grid{grid-template-columns:1fr!important}
  .panel{border-radius:16px}
  input,select,textarea,.button{font-size:16px}
  .button{min-height:44px}
  .task-filter-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .task-filter-row .pill{flex:0 0 auto}
  .page-back-button{min-height:40px}
}

/* Mobile UX V3 refinements */
@media (max-width:760px){
  .mobile-appbar{display:grid;grid-template-columns:42px 1fr 42px;gap:8px}
  .mobile-appbar-brand{text-align:center;white-space:nowrap}
  .mobile-appbar-back{
    display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;
    background:var(--bg);color:var(--purple);font:inherit;font-size:28px;line-height:1
  }
  body:has(main.shell) .page-back-button{display:none!important}
  body:has(main.shell) .page-back-source{display:none!important}
  body:has(main.shell) .mobile-appbar-back{visibility:visible}
  .mobile-appbar-action{font-size:18px}
  .mobile-more-links{display:block}
  .mobile-nav-section{padding:4px 0 12px}
  .mobile-nav-section + .mobile-nav-section{border-top:1px solid var(--line);padding-top:14px}
  .mobile-nav-section h3{
    margin:0;padding:6px 4px 5px;color:var(--violet);font-size:11px;
    letter-spacing:.08em;text-transform:uppercase
  }
  .mobile-nav-section a,.mobile-nav-placeholder{
    display:flex;align-items:center;justify-content:space-between;
    padding:13px 4px;border-bottom:1px solid #f3edf5;text-decoration:none;font-weight:700;color:var(--purple)
  }
  .mobile-nav-placeholder{color:#8e7b98}
  .mobile-nav-placeholder small{font-weight:600}
}
@media (max-width:760px){
  body:has(main.shell) .mobile-appbar-back{visibility:visible}
}

@media (max-width:760px){.mobile-appbar-back.is-home{visibility:hidden!important}}
