:root{color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#183a33;background:#f5f7f4}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;padding:20px max(5%,calc((100vw - 1120px)/2));background:white;border-bottom:1px solid #e0e7e3}.brand{font-weight:850;letter-spacing:.08em}.brand small{display:block;font-size:10px;color:#688078;letter-spacing:.15em}nav{display:flex;gap:18px}a{color:inherit;text-decoration:none}nav a:hover{text-decoration:underline}.hero{background:#173f36;color:white;padding:95px max(7%,calc((100vw - 1020px)/2));min-height:430px}.hero h1{font-size:clamp(36px,6vw,70px);margin:12px 0}.hero p{line-height:1.7;max-width:630px}.kicker{color:#d8ba78;font-weight:bold;font-size:12px;letter-spacing:.18em}.btn,button{display:inline-block;background:#d7bd80;color:#15372f;border:0;border-radius:9px;padding:13px 19px;font-weight:700;cursor:pointer}.btn{margin-top:20px}.secondary{background:#e8efeb;color:#173f36}button:disabled{opacity:.45;cursor:not-allowed}.tiles{max-width:1120px;margin:35px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:0 18px}.tiles article,.panel{background:#fff;border:1px solid #e3eae6;border-radius:16px;padding:25px}.tiles p,.panel p{color:#60766e;line-height:1.55}.container{max-width:1000px;margin:40px auto;padding:0 18px;display:grid;gap:18px}.panel{box-shadow:0 4px 25px #092c1f08}.panel h1{margin-top:0}label{display:block;margin:15px 0;font-size:14px;font-weight:650}input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #cbd7d0;border-radius:8px;font:inherit}.actions{display:flex;gap:10px}.hint{font-size:12px}#message{white-space:pre-wrap;font-weight:600;color:#1b6750}.tablewrap{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:13px;margin:15px 0}th,td{text-align:left;padding:9px;border-bottom:1px solid #dfebe2;white-space:nowrap}th{background:#f0f6f2}footer{text-align:center;padding:30px;color:#768c82;font-size:12px}@media(max-width:650px){header{padding:15px;align-items:flex-start}.tiles{grid-template-columns:1fr}.hero{padding:60px 25px}.panel{padding:17px}}

select{border:1px solid #cad8d1;border-radius:8px;padding:10px;background:#fff;color:#143b32;max-width:200px} #residentsTable td{vertical-align:top} #residentsTable small{color:#667b74} #residentsTable strong{color:#a86611} #reviewSearch{max-width:220px} .tablewrap{overflow-x:auto}

/* V9 mobile polish */
.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.mini{border:1px solid #dce6df;border-radius:12px;padding:16px;background:#f5f8f5}
textarea{width:100%;box-sizing:border-box;border:1px solid #ccd9cf;border-radius:9px;padding:12px;font:inherit}
@media(max-width:640px){header{position:relative;display:flex;flex-wrap:wrap;gap:12px;padding:16px max(16px,env(safe-area-inset-right))}header .brand{font-size:15px;letter-spacing:.06em}header nav{display:flex;gap:16px}header nav a{white-space:nowrap}.container{width:auto;max-width:100%;padding:20px 12px}.panel{padding:20px 16px;overflow-wrap:anywhere}h1{font-size:clamp(25px,7vw,34px)}.actions{flex-wrap:wrap}.tablewrap{overflow-x:auto}}

/* V10 revision: privacy checkbox and clearer administrator dashboard */
[hidden]{display:none!important}
.privacy-consent{display:flex;align-items:flex-start;gap:13px;max-width:790px;padding:17px 18px;border:1px solid #d7e4da;border-radius:12px;background:#f7faf8;font-size:14px;font-weight:600;line-height:1.6;cursor:pointer}
.privacy-consent input[type="checkbox"]{display:block!important;appearance:auto;width:20px!important;min-width:20px;height:20px;margin:2px 0 0!important;padding:0;border-radius:4px;accent-color:#205b48;flex:0 0 20px}
.privacy-consent span{display:block;min-width:0;flex:1}
.admin-overview{background:linear-gradient(135deg,#f7faf8 0%,#eff6f1 100%);border-color:#ccddd1}
.admin-overview-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px}
.admin-overview h2{margin:.25rem 0 .4rem}.admin-overview p{margin:0}
.eyebrow{font-size:11px!important;font-weight:800;letter-spacing:.14em;color:#3a7960!important}
.admin-status-chip{display:inline-flex;border:1px solid #b7d3c5;border-radius:999px;padding:7px 12px;color:#215d48;font-size:12px;font-weight:700;background:#fff;white-space:nowrap}
.admin-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.admin-shortcuts a{display:flex;min-height:108px;flex-direction:column;align-items:flex-start;gap:5px;background:#fff;border:1px solid #d9e5dc;border-radius:12px;padding:15px;text-decoration:none;transition:box-shadow .15s,border-color .15s}
.admin-shortcuts a:hover,.admin-shortcuts a:focus-visible{border-color:#8eaf9d;box-shadow:0 4px 15px #16433016;text-decoration:none;outline-offset:2px}
.shortcut-icon{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;background:#e9f3ec;color:#1c674c;border-radius:8px;font-size:18px}
.admin-shortcuts strong{font-size:14px}.admin-shortcuts small{font-size:12px;color:#667c73}
.admin-work-panel{scroll-margin-top:20px;border-left:4px solid #c8d9ce}
.admin-work-panel h2{font-size:clamp(20px,2.5vw,26px);line-height:1.25;margin-top:0}
.admin-work-panel .actions{flex-wrap:wrap;align-items:end}
.admin-work-panel .actions label{display:flex;flex-direction:column;gap:5px;min-width:135px}
.admin-work-panel select{max-width:100%;width:auto;min-height:39px}
.admin-work-panel .actions input{max-width:260px}
.admin-work-panel .tablewrap{border:1px solid #e5ede7;border-radius:10px;margin:13px 0;background:#fff}
.admin-work-panel .tablewrap table{margin:0;min-width:540px}
.admin-work-panel th{font-weight:800;background:#eaf2ec;color:#183d30}
.admin-work-panel tr:nth-child(even) td{background:#fbfdfb}
.admin-work-panel td,.admin-work-panel th{padding:12px 11px}
.admin-work-panel p{max-width:840px}
#membershipPanel>label,#adminPanel>label{max-width:600px}
#membershipPanel>label select,#adminPanel input[type=file]{width:100%;max-width:100%}
@media(max-width:740px){.admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-overview-heading{flex-wrap:wrap}.admin-shortcuts a{min-height:100px}.admin-work-panel .actions{align-items:stretch}.admin-work-panel .actions label{width:100%}.admin-work-panel .actions input{max-width:100%}}
@media(max-width:400px){.admin-shortcuts{gap:8px}.admin-shortcuts a{padding:11px}.admin-status-chip{font-size:11px}}

#activationPanel,#activationAdminPanel{scroll-margin-top:22px}
#activationPanel>label,#activationAdminPanel>label{display:block;max-width:660px}
#activationCode{font-family:ui-monospace,monospace;letter-spacing:.05em}
#activationInviteOutput{padding:12px;overflow-wrap:anywhere;background:#f0f6f2;border-radius:9px;margin-top:12px}

#scopedAdminPanel,#announcementsEditor{scroll-margin-top:20px}
.admin-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#staffTable .revokeStaff{white-space:nowrap;padding:9px 12px}
@media(max-width:640px){.admin-dates{grid-template-columns:1fr}#staffTable{min-width:650px}}

.photo-profile-controls{display:grid;grid-template-columns:130px 1fr;align-items:start;gap:22px}
.avatar-large{width:122px;height:122px;border-radius:50%;object-fit:cover;border:3px solid #e6eee9}
.directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:12px;margin-top:18px}
.directory-card{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid #dce7df;border-radius:14px;background:#fbfdfb;overflow-wrap:anywhere}
.avatar-placeholder,.avatar-small{width:58px;height:58px;min-width:58px;border-radius:50%;object-fit:cover;background:#e9f1eb;display:grid;place-items:center;font-size:25px}
.directory-phone{font-weight:600;margin-top:6px}.directory-card small,.directory-card .muted{color:#60796d}
@media(max-width:620px){.photo-profile-controls{grid-template-columns:1fr}.directory-grid{grid-template-columns:1fr}.avatar-large{margin-inline:auto}}

.event-list{display:grid;gap:12px;margin-top:14px}.event-card,.notification-card{background:#f7faf8;border:1px solid #dde9e0;border-radius:13px;padding:17px;overflow-wrap:anywhere}.event-card h3{margin:0 0 7px}.event-card p,.notification-card p{margin:8px 0}.event-details{font-weight:600;color:#34544a}.notification-card small{color:#69796f}.notification-count{font-size:13px;font-weight:500;color:#335648}

/* V10 Tahap 6 — page navigation keeps the portal concise */
body.workspace-ready .workspace-panel:not(.workspace-selected){display:none!important}
.member-overview{margin-bottom:18px}
.member-overview .admin-shortcuts a,.admin-overview .admin-shortcuts a{scroll-margin-top:18px}
.admin-shortcuts a.active-shortcut{background:#eaf4ed;border-color:#539779;box-shadow:inset 0 0 0 1px #539779}
.workspace-panel.workspace-selected{scroll-margin-top:22px}
.member-work-panel{padding:27px}
.member-work-panel>h3:first-child{margin-top:0}
@media(max-width:740px){.member-overview .admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}

.notification-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 4px;margin-left:3px;border-radius:11px;color:#fff;background:#ad5038;font-size:11px}.notification-count[hidden]{display:none!important}

#autoUnitNotice{padding:10px 12px;border-left:3px solid #6b9d85;background:#f1f7f2}#memberUnit:disabled{background:#eef4ef;opacity:1;cursor:not-allowed}#accessOverviewPanel .tablewrap{max-height:480px;overflow:auto}#accessOverviewPanel th{position:sticky;top:0;background:#edf4ee}#accessSearch{max-width:340px}

.access-actions{display:flex;gap:7px;flex-wrap:wrap}.access-actions button{padding:8px 11px;font-size:12px;white-space:nowrap}

.membership-review-confirm{display:flex!important;align-items:flex-start;gap:12px;margin:15px 0}.membership-review-confirm input{width:20px;min-width:20px;margin-top:3px}.membership-review-confirm span{flex:1}

.role-edit-panel{margin-top:10px;padding:12px;border:1px solid #9bbca6;border-radius:10px;min-width:220px;background:#f3f8f4}
.role-edit-panel label{display:block;font-size:12px}.role-edit-panel select,.role-edit-panel textarea{display:block;width:100%;margin:8px 0}
.role-edit-panel button{margin:4px}

.role-edit-panel{min-width:190px;max-width:280px}.role-edit-panel small{display:block;margin-bottom:5px}.role-edit-panel select{min-width:170px;max-width:100%}.access-actions{align-items:start}#accessOverviewTable td{vertical-align:top} 

#residentManagementHub{scroll-margin-top:24px}
.resident-hub-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}
.resident-hub-nav a{display:flex;gap:8px;align-items:center;text-decoration:none;color:#173c36;font-weight:650;background:#fff;border:1px solid #d5e4db;border-radius:12px;padding:12px;min-height:60px}
.resident-hub-nav b{display:grid;place-items:center;background:#e6f1e8;border-radius:50%;width:26px;height:26px;min-width:26px}
.resident-hub-nav a.active-step{background:#dfeee6;border-color:#559779}
@media(max-width:760px){.resident-hub-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.resident-hub-nav a{font-size:13px;padding:9px}}

.resident-quick-profile{padding:18px;border:1px solid #d1e2d7;border-radius:14px;background:#f7fbf8;margin:18px 0}.resident-quick-profile h3{margin:0 0 12px}.resident-quick-profile label{display:block;max-width:650px}.resident-quick-detail{display:grid;gap:5px;margin:12px 0;padding:12px;background:#fff;border-radius:10px;overflow-wrap:anywhere}.resident-quick-buttons{display:flex;gap:8px;flex-wrap:wrap}.resident-quick-buttons button{margin:0}@media(max-width:650px){.resident-quick-buttons button{flex:1 1 43%}}

.aspiration-evidence-modal{position:fixed;z-index:9999;inset:0;background:#041b15e8;overflow-y:auto;padding:25px;display:flex;align-items:center;flex-direction:column;gap:14px}
.aspiration-evidence-modal img{max-width:min(94vw,900px);max-height:75vh;object-fit:contain;border-radius:12px}
.aspiration-evidence-modal button{align-self:flex-end;position:sticky;top:0}

.aspiration-action-form{display:grid;gap:8px;min-width:210px;margin-top:10px}.aspiration-action-form select{max-width:310px}
.aspiration-summary-cards{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0}
.aspiration-total-card{border:1px solid #dae9df;background:#edf5ef;border-radius:16px;padding:18px 28px;display:flex;gap:8px;flex-direction:column;min-width:220px;color:#234b3b}
.aspiration-total-card strong{font-size:34px}.aspiration-summary-bars{display:grid;gap:16px;margin:14px 0 24px}
.aspiration-summary-rowhead{display:flex;justify-content:space-between;gap:20px;margin-bottom:7px}
.aspiration-summary-track{height:16px;background:#e7ede9;border-radius:999px;overflow:hidden}
.aspiration-summary-fill{height:100%;background:#517e67;border-radius:999px}

.aspiration-excel-export{border:1px solid #d3e4d8;background:#f2f7f2;padding:18px;border-radius:15px;margin:18px 0}.aspiration-excel-export h3{margin-top:0}

.asp-monitor-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.asp-monitor-summary{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
.asp-monitor-kpi{padding:16px 20px;border:1px solid #d6e5da;border-radius:14px;background:#eff5ef;display:flex;flex-direction:column;gap:4px;min-width:170px}
.asp-monitor-kpi strong{font-size:29px;color:#154435}
@media(max-width:690px){.asp-monitor-controls{grid-template-columns:1fr}.asp-monitor-kpi{min-width:130px}}

/* Tahap 18 — Pusat Aspirasi */
.aspiration-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px;padding-bottom:12px;border-bottom:1px solid #d9e7dd}
.aspiration-tabs .aspiration-tab{border:1px solid #d7e6dc;border-radius:11px;background:#eef4ef;color:#214c3b;padding:12px 15px;font-weight:650;cursor:pointer}
.aspiration-tabs .aspiration-tab.active{background:#245b45;color:#fff;border-color:#245b45}
.aspiration-hub-content>.panel{margin:0;box-shadow:none;border:0;padding:8px 0 14px;background:transparent}
@media(max-width:650px){.aspiration-tabs .aspiration-tab{flex:1 1 42%;font-size:13px}.aspiration-hub-content>.panel{padding:0}}

.aspirationGoFollowup{white-space:nowrap;font-size:.88em}
#aspirationFollowupPanel select:focus{outline:3px solid #d5b574;outline-offset:2px}

.event-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:16px 0}
.event-photo-grid figure{margin:0;padding:10px;border:1px solid #ddd;border-radius:12px}
.event-photo-grid img{width:100%;height:165px;object-fit:cover;border-radius:8px}
.event-photo-grid figcaption{font-size:13px;margin-top:7px}

.event-hub-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.event-hub-tab{background:#edf4ee;border:1px solid #c9ddcf;border-radius:10px;color:#234b36;padding:11px 15px;cursor:pointer}
.event-hub-tab.active{background:#244c39;color:white;border-color:#244c39}
body.workspace-ready #informationAgendaPanel.workspace-panel:not(.workspace-selected),
body.workspace-ready #eventAdminPanel.workspace-panel:not(.workspace-selected),
body.workspace-ready #eventAttendancePanel.workspace-panel:not(.workspace-selected){display:none}

/* Tahap 26B: visible section nested in Manajemen Kegiatan */
#eventManagementHub .event-hub-content{display:none!important;margin-top:14px}
#eventManagementHub .event-hub-content.event-hub-visible:not([hidden]){display:block!important}
#eventManagementHub .event-hub-content.event-hub-visible[hidden]{display:none!important}
#eventManagementHub .event-hub-tabs{position:sticky;top:0;z-index:2;background:var(--surface,#fff);padding:8px 0}

#eventManagementHub{scroll-margin-top:16px}
#eventManagementHub .event-hub-content.event-hub-visible{display:block!important}
#eventManagementHub .event-hub-content:not(.event-hub-visible){display:none!important}

#eventCreateMessage{font-weight:600;color:#174734;margin:12px 0;min-height:1.5em}
#eventManagementHub:not([hidden]){display:block}

/* Tahap 26I — ringkasan akun horizontal */
#accountPanel{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 18px;border-radius:12px;background:#f2f7f3;border-color:#d7e5db;box-shadow:none}
#accountPanel[hidden]{display:none!important}
#accountPanel h2{font-size:13px;white-space:nowrap;margin:0;color:#294e3d}
#accountPanel #me{font-size:13px;font-weight:700;margin:0;color:#173f36}
#accountPanel #accessMessage{font-size:12px;margin:0;color:#3e7258}
#accountPanel #signout{margin-left:auto;padding:7px 13px;font-size:12px}
#memberOverview{scroll-margin-top:16px}
@media(max-width:600px){#accountPanel{gap:7px 12px;padding:10px 12px}#accountPanel #signout{margin-left:0}}

/* Tahap 28G: pemisahan label kontak dan status foto dalam direktori */
.directory-card .directory-contact{margin-top:5px;display:block;color:#60796d;font-size:.9rem;line-height:1.45}
.directory-card .directory-photo-state{display:block;margin-top:8px;color:#567a6a;line-height:1.45;font-size:.82rem}
.directory-card .directory-photo-state:not(:empty){overflow-wrap:anywhere}
.directory-card>div:last-child{min-width:0}

/* Tahap 44 — tiga tombol bantuan jelas, nyaman di layar kecil */
.login-assistance{margin:24px 0 12px;max-width:100%;}
.login-assistance-heading{font-size:1rem;line-height:1.35;margin:0 0 12px;color:#174537;}
.login-assistance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.login-assistance-btn{box-sizing:border-box;display:flex;align-items:center;gap:11px;min-width:0;min-height:76px;padding:13px;border:1px solid #c8ddd1;border-radius:12px;background:#f0f7f2;color:#153c31!important;text-decoration:none!important;box-shadow:0 1px 3px rgba(21,60,49,.05);transition:background-color .15s ease,border-color .15s ease;}
.login-assistance-btn:hover,.login-assistance-btn:focus-visible{background:#e2f0e7;border-color:#7dad90;outline-offset:2px;}
.login-assistance-btn > span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:4px;overflow-wrap:anywhere;}
.login-assistance-btn strong{font-size:14px;line-height:1.3;}
.login-assistance-btn small{font-size:12px;line-height:1.35;color:#527161;}
.login-assistance-icon{display:flex;flex:none;justify-content:center;align-items:center;font-size:20px;width:34px;height:34px;background:white;border-radius:9px;}
.login-assistance-arrow{font-size:23px;color:#537764;}
@media(max-width:900px){.login-assistance-grid{grid-template-columns:1fr;gap:9px}.login-assistance-btn{min-height:66px;padding:12px 14px}.login-assistance-btn strong{font-size:16px}.login-assistance-btn small{font-size:13px}}
@media(prefers-reduced-motion:reduce){.login-assistance-btn{transition:none}}


/* Tahap 44B – tata letak bantuan login, dipasang sebagai CSS kritis untuk mengatasi cache file CSS lama. */
#authPanel .login-assistance{display:block!important;width:100%;max-width:100%;margin:24px 0 12px!important;padding-top:16px;border-top:1px solid #dce8df;clear:both}
#authPanel .login-assistance-heading{display:block!important;font-size:18px!important;font-weight:800!important;line-height:1.4!important;margin:0 0 14px!important;color:#174537}
#authPanel .login-assistance-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;align-items:stretch}
#authPanel a.login-assistance-btn{box-sizing:border-box!important;display:flex!important;align-items:center!important;gap:12px!important;min-width:0!important;min-height:86px!important;padding:14px!important;border:1px solid #c9ddd0!important;border-radius:14px!important;background:#f2f8f3!important;color:#183f32!important;text-decoration:none!important;white-space:normal!important;line-height:1.4!important}
#authPanel .login-assistance-btn > span:nth-child(2){display:flex!important;flex:1 1 0!important;min-width:0!important;flex-direction:column!important;gap:5px!important;overflow-wrap:anywhere!important}
#authPanel .login-assistance-btn strong{display:block!important;font-size:15px!important;line-height:1.35!important}
#authPanel .login-assistance-btn small{display:block!important;font-size:12px!important;line-height:1.5!important;color:#527161!important}
#authPanel .login-assistance-icon{display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 36px!important;width:36px!important;height:36px!important;font-size:19px!important;border-radius:9px!important;background:#fff!important}
#authPanel .login-assistance-arrow{flex:0 0 auto!important;font-size:22px!important;margin-left:auto!important;color:#537764!important}
#authPanel .login-assistance-btn:hover,#authPanel .login-assistance-btn:focus-visible{background:#e6f2e9!important;border-color:#86b29a!important}
@media(max-width:960px){#authPanel .login-assistance-grid{grid-template-columns:1fr!important}#authPanel a.login-assistance-btn{min-height:66px!important;padding:14px 16px!important}#authPanel .login-assistance-btn strong{font-size:16px!important}}
