/* Readability and table layout adjustments. Keep these overrides apart from theme base. */
:root{--bg:#dce1ec;--table-head:#f8f7ff;--muted:#626c84;--line:#d2d8e7}
:root[data-theme="dark"]{--bg:#151827;--table-head:#30354b;--muted:#b2bad1;--line:#41465d}
body{font-size:15.5px;line-height:1.52}
.subtitle,.filters,.sectionHeader,.sectionHeader b,.btn,.nav button{font-size:15.5px}
.sections{min-width:0}.section{border-color:var(--line);min-width:0;max-width:100%;overflow:hidden}.sectionHeader{border-radius:16px 16px 0 0}.section .tableScroll{border-radius:0 0 16px 16px;width:100%;max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.section .tableScroll::-webkit-scrollbar{display:none}
.rowSelect{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 24px 8px 9px;min-width:125px}
.section .tableScroll{overscroll-behavior-inline:contain}
.section table{min-width:1510px}
.section th{background:var(--table-head);font-size:12.5px;color:var(--muted);letter-spacing:.07em}
.section td{font-size:15px;padding:14px 16px}
.section td .textBtn{font-size:15.5px}
.section .statusSelect{font-size:13px;max-width:200px}
.section td a{white-space:nowrap;text-decoration:none;color:var(--ink)}
.section td a:hover{text-decoration:underline;color:var(--accent)}
.section .contactCol{min-width:165px}
.section .emailCol{min-width:235px}
.section .phoneCol{min-width:175px}
.section .realtorCol{min-width:165px}
.section .realtorSelect{width:100%;min-width:170px;max-width:230px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--surface);color:var(--ink);font-weight:650;cursor:pointer}
.section .realtorSelect:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.section .notesCol{min-width:235px}
.stat label,.stat small,.sideFoot{font-size:13px}
.stat strong{font-size:32px}
/* Ghostie branding, visible section sliders, and app guide. */
.ghostieBrand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px 2px 12px}
.ghostieBrand .sideWordmark{width:186px;height:67px;display:block;margin-inline:auto}
.ghostieBrand .sideCat{width:186px;height:186px;object-fit:contain;display:block;margin-inline:auto;filter:drop-shadow(0 8px 13px #0005)}
.appHeader{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:19px 22px 20px;margin-bottom:26px;box-shadow:var(--shadow)}
.headerMasthead{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:13px;border-bottom:1px solid var(--line)}
.headerLogo{height:58px;display:flex;align-items:center;justify-content:center;gap:5px}
.headerLogo .headerCatHead{width:55px;height:55px;object-fit:contain;display:block}
.headerLogo .logoDark,.headerLogo .logoLight{width:155px;height:50px;display:block}
.headerLogo .logoLight{display:none}:root[data-theme="dark"] .headerLogo .logoDark{display:none}:root[data-theme="dark"] .headerLogo .logoLight{display:block}
.headerTeamName{font-size:11px;letter-spacing:.025em;color:var(--muted);font-weight:600}.headerTeamName span{color:var(--accent)}
.headerFootCredit{border-top:1px solid var(--line);margin-top:14px;padding-top:8px;text-align:right}
.headerLower{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:14px}
.headerIdentity{min-width:0}.appHeader h1{font-size:29px;margin:0 0 2px}.appHeader .subtitle{font-size:14px}
.appHeader .toolbar{gap:9px;flex-wrap:wrap;justify-content:flex-end}.appHeader .toolbar .btn[data-action="logout"]{border-color:var(--line)}
.signLogo{display:flex;align-items:center;gap:8px}.signLogo .signHead{width:58px;height:58px;object-fit:contain}.signLogo img{width:180px;height:auto;display:block}
.faqGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.faqCard{margin:0}.faqCard h2{margin-bottom:10px}.faqCard p{margin:0 0 12px;color:var(--muted);font-size:15px}.faqCard p:last-child{margin-bottom:0}
@media(max-width:1050px){.ghostieBrand{padding:3px 0 12px}.ghostieBrand .sideWordmark{display:none}.ghostieBrand .sideCat{width:48px;height:48px}.faqGrid{grid-template-columns:1fr}}
@media(max-width:650px){.ghostieBrand .sideCat{width:38px;height:38px}.appHeader{padding:16px}.headerLower{display:block}.appHeader .toolbar{justify-content:flex-start;margin-top:14px}.headerLogo{height:46px}.headerLogo .headerCatHead{width:43px;height:43px}.headerLogo .logoDark,.headerLogo .logoLight{width:132px;height:42px}}

/* Header uses the same dark surface as the sidebar in both themes. */
.appHeader{background:var(--side);color:var(--side-ink);border-color:#ffffff24;box-shadow:0 10px 25px #15182e2a}
.appHeader .headerLogo .logoDark{display:none}
.appHeader .headerLogo .logoLight,:root[data-theme="dark"] .appHeader .headerLogo .logoLight{display:block}
.appHeader .headerCatHead{filter:drop-shadow(0 3px 5px #05071155)}
.appHeader .headerMasthead,.appHeader .headerFootCredit{border-color:#ffffff2c}
.appHeader h1{color:#fff}
.appHeader .subtitle{color:#d0d6ec}
.appHeader .headerTeamName{color:#d3d8ed}
.appHeader .headerTeamName span{color:#c6b7ff}
.appHeader .toolbar .btn{background:#ffffff16;color:#fff;border-color:#ffffff38;box-shadow:none}
.appHeader .toolbar .btn:hover{background:#ffffff28;border-color:#ffffff60}
.appHeader .toolbar .btn.primary{background:#826ad3;border-color:#9c88e1;color:#fff}
.appHeader .toolbar .btn.primary:hover{background:#977fe5}
.appHeader .toolbar .btn[data-action="logout"]{border-color:#ffffff38}
.appHeader .toolbar .btn:focus-visible{outline:2px solid #d8cfff;outline-offset:3px}

/* Public Ghostie landing, registration, and member profile. */
.landing{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr);min-height:100vh}
.landingHero{background:linear-gradient(145deg,var(--side),#40436d);color:#f9f8ff;padding:clamp(25px,4vw,62px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.landingLogo img{width:220px;height:auto;display:block}
.landingMascot{flex:1;display:grid;place-items:center;min-height:0}
.landingStory{position:relative;margin:30px 0 10px;min-height:490px}
.landingStory .eyebrow{color:#c8bcff;font-size:11px}
.landingStory h1{color:#fff;font-size:clamp(42px,5vw,78px);line-height:1.06;margin:16px 0;letter-spacing:-.045em}
.landingStory p{color:#d9ddf1;font-size:18px;line-height:1.6;max-width:480px}
.landingCat{display:block;width:min(310px,42vw);max-height:340px;object-fit:contain;margin:15px auto -28px;filter:drop-shadow(0 14px 22px #090b194d)}
.landingHero small{color:#c6cbe4;font-size:12px;letter-spacing:.06em}
.landingPane{display:grid;place-items:center;background:var(--bg);padding:30px}
.landingCard{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:clamp(24px,3vw,44px);width:min(100%,460px)}
.landingMark{display:flex;align-items:center;gap:6px}.landingMark img:first-child{width:52px;height:52px;object-fit:contain}.landingMark img:last-child{width:145px;height:49px}
:root[data-theme="dark"] .landingMark img:last-child{filter:brightness(0) invert(1)}
.landingTag{display:inline-block;margin-top:27px;background:var(--soft);color:var(--accent);padding:5px 10px;border-radius:99px;font-weight:700;font-size:12px}
.landingCard h2{font-size:29px;line-height:1.17;margin:13px 0 9px;letter-spacing:-.035em}
.landingCard p{color:var(--muted);font-size:15px}.landingCard .error{color:#bc3d47}
.landingSubmit{width:100%;margin-top:22px;padding:14px}.landingHint{font-size:12.5px!important;line-height:1.6;margin-top:20px}
.landingTheme{margin-top:18px}.landingCard .field{margin-top:15px}.landingCard .field label{display:block;margin-bottom:6px}.landingCard .field input{width:100%}
.landingBuild{text-align:right;color:var(--muted);font-size:11px;margin-top:18px}
.quickActions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:-8px 0 20px}.quickActions .btn{padding:11px 15px}
.profileGrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.7fr);gap:16px}.profileCard,.profileAccount{margin:0}
.profileIntro{display:flex;align-items:center;gap:16px;margin-bottom:24px}.profileIntro h2{margin:0 0 3px}
.profileAvatar{display:grid;place-items:center;width:60px;height:60px;flex:none;border-radius:18px;background:var(--soft);color:var(--accent);font-size:27px;font-weight:800}
.profileDetail{padding:15px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.profileDetail span{color:var(--muted);font-size:12px}.profileDetail b{overflow-wrap:anywhere}
.profileAccount .footnote{line-height:1.6;margin-top:20px}
@media(max-width:900px){.landing{grid-template-columns:1fr}.landingHero{min-height:500px}.landingStory{min-height:0}.landingCat{width:210px;margin-top:0}.landingPane{padding:24px}.profileGrid{grid-template-columns:1fr}}
@media(max-width:650px){.landingHero{min-height:400px;padding:25px}.landingLogo img{width:170px}.landingStory h1{font-size:42px}.landingStory p{font-size:15px}.landingCat{width:160px;max-height:170px}.landingHero small{font-size:10px}.landingPane{padding:18px}.quickActions{justify-content:stretch;gap:8px}.quickActions .btn{flex:1;font-size:13px}}
