/* 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:1930px}
.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}
.section .nameCol{min-width:190px}.section .amountCol{min-width:145px}.section .dateCol{min-width:165px}
.inlineField{width:100%;min-width:120px;border:1px solid transparent;background:transparent;color:var(--ink);border-radius:7px;padding:7px 8px;outline:none}
.inlineField:hover{border-color:var(--line);background:color-mix(in srgb,var(--surface) 80%,var(--bg))}.inlineField:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.inlineField::placeholder{color:var(--muted)}.inlineNotes{display:block;min-width:245px;min-height:38px;height:38px;resize:vertical;line-height:1.35}.nameCol .inlineField{font-weight:750;color:var(--accent)}.amountCol .inlineField{text-align:right;font-variant-numeric:tabular-nums}
.stat label,.stat small,.sideFoot{font-size:13px}
.stat strong{font-size:32px}
.stat .moneyStat{font-size:clamp(21px,2vw,29px);letter-spacing:-.035em}
/* 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);cursor:pointer;transition:transform .16s ease,filter .16s ease}.appHeader .headerCatHead:hover{transform:scale(1.06);filter:drop-shadow(0 3px 5px #05071155) brightness(1.08)}.appHeader .headerCatHead:active{transform:scale(.96)}
.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}}

/* Closed production dashboard. */
.volumeFilters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.volumeFilters .field{min-width:170px}.volumeFilters select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:10px 11px}
.volumeStats{grid-template-columns:repeat(4,minmax(0,1fr))}.panelTitle{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}
.bars{height:255px;display:grid;grid-template-columns:repeat(12,minmax(38px,1fr));gap:8px;align-items:end;overflow-x:auto;padding:0 2px 4px}.barItem{border:0;background:transparent;color:var(--muted);display:grid;grid-template-rows:35px 165px 25px;gap:5px;align-items:end;min-width:42px;padding:0;border-radius:8px}.barItem:hover,.barItem.selected{background:var(--soft);color:var(--accent)}.barValue{font-size:10px;font-weight:700;writing-mode:vertical-rl;transform:rotate(180deg);height:34px;justify-self:center;overflow:hidden}.barTrack{height:165px;width:22px;background:var(--bg);border-radius:7px 7px 3px 3px;display:flex;align-items:end;justify-self:center;overflow:hidden}.barTrack>span{display:block;width:100%;background:linear-gradient(180deg,#9d80ea,var(--accent));border-radius:7px 7px 0 0}.barItem>span:last-child{font-size:11px;font-weight:700;align-self:center}
.volumeTable{min-width:420px}.closedDetail{min-width:760px}.missingValue{color:#bd654a;font-weight:750}.auditPanel p{color:var(--muted);font-size:15px}.auditPanel b{color:var(--ink);font-size:18px}
@media(max-width:900px){.volumeStats{grid-template-columns:repeat(2,1fr)}.bars{grid-template-columns:repeat(12,48px)}}

/* Manual weekly email review and delivery controls. */
.emailControl .top{align-items:center}.emailStats{grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0}.recipientTable{min-width:620px}.deliveryState{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:750}.deliveryState.ready{background:#e6f5ec;color:#287647}.deliveryState.missing{background:#fff0dc;color:#a35f12}.deliveryState.quiet{background:var(--bg);color:var(--muted)}.emailResults p{font-size:15px}
@media(max-width:700px){.emailStats{grid-template-columns:1fr}.emailControl .top .toolbar{width:100%}.emailControl .top .toolbar .btn{flex:1}}
.sideCat{cursor:pointer;transition:transform .16s ease,filter .16s ease}.sideCat:hover{transform:scale(1.025);filter:brightness(1.08)}.sideCat:active{transform:scale(.985)}
