@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--bg:#080b12;--panel:#10151f;--panel2:#141b27;--line:rgba(255,255,255,.09);--text:#edf3ff;--muted:#8c98ad;--accent:#7c5cff;--accent2:#00e5b0;--danger:#ff5f73;--shadow:0 24px 70px rgba(0,0,0,.28);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f7fb;color:#182132;font-family:'DM Sans',sans-serif}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:260px;background:linear-gradient(180deg,#0a0e16,#0c1019);color:#fff;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:26px 18px;border-right:1px solid rgba(255,255,255,.06);z-index:30}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 10px 24px}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#3d8cff);font-size:25px;box-shadow:0 10px 30px rgba(124,92,255,.35)}.sidebar-brand strong{display:block;font:700 19px 'Space Grotesk'}.sidebar-brand span{display:block;color:#7d899d;font-size:9px;letter-spacing:1.6px;margin-top:3px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:13px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:16px;margin-bottom:25px}.avatar{width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#00d6aa,#4f8cff);display:grid;place-items:center;font-weight:800}.sidebar-user strong{display:block;font-size:13px}.sidebar-user small{color:#78859a;font-size:10px;text-transform:uppercase;letter-spacing:1px}.sidebar-label{font-size:9px;color:#68758b;letter-spacing:1.8px;padding:0 11px 8px}.nav-item{display:flex;align-items:center;gap:12px;color:#8792a7;padding:12px 12px;border-radius:13px;font-size:13px;font-weight:600;margin:3px 0;transition:.2s}.nav-item span{width:22px;text-align:center;font-size:17px}.nav-item:hover{background:rgba(255,255,255,.05);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(124,92,255,.23),rgba(124,92,255,.05));color:#fff;border:1px solid rgba(124,92,255,.2)}.sidebar-spacer{flex:1}.logout-link{color:#ff8595}.sidebar-info{border-top:1px solid var(--line);margin-top:12px;padding:18px 10px 0}.sidebar-info span{font-size:8px;letter-spacing:1.8px;color:#69768a}.sidebar-info strong{display:block;font:700 13px 'Space Grotesk';margin:5px 0}.sidebar-info small{font-size:10px;color:#707c90}.main-area{margin-left:260px;min-width:0;width:calc(100% - 260px)}.content{max-width:1500px;margin:auto;padding:40px 46px}.mobile-header{display:none}.page-heading{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:30px}.page-heading h1{font:700 clamp(30px,4vw,48px) 'Space Grotesk';margin:7px 0 8px;letter-spacing:-1.8px}.page-heading p{color:#758198;margin:0;max-width:720px;line-height:1.65}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:#7c5cff}.gradient-text{background:linear-gradient(90deg,#684cff,#00bfa0);-webkit-background-clip:text;color:transparent}.btn{border:1px solid transparent;border-radius:13px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:12px;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#7357ff,#4f8cff);color:white;box-shadow:0 10px 28px rgba(92,78,220,.22)}.btn-light{background:#fff;border-color:#e6eaf1;color:#364055}.btn-ghost{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);color:inherit}.btn-danger{background:#fff0f2;border-color:#ffd5dc;color:#d73852}.btn-sm{padding:7px 10px;font-size:11px}.btn-wide{width:100%;padding:14px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid #e9edf4;border-radius:18px;padding:21px;box-shadow:0 12px 35px rgba(29,39,63,.05);min-width:0}.stat-card span{display:block;font-size:9px;font-weight:800;letter-spacing:1.5px;color:#8a95a8}.stat-card strong{display:block;font:700 25px 'Space Grotesk';margin:9px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card small{color:#8c97a9}.accent-stat{background:linear-gradient(135deg,#111827,#1b2030);color:#fff;border-color:#242b3c}.accent-stat span,.accent-stat small{color:#9ca8bc}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:20px;margin-bottom:20px}.card{background:#fff;border:1px solid #e7ebf2;border-radius:22px;padding:24px;box-shadow:0 15px 50px rgba(24,35,56,.045);margin-bottom:20px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px}.card-head h2{font:700 19px 'Space Grotesk';margin:4px 0 5px}.card-head p{color:#8a95a8;font-size:12px;margin:0}.map{border-radius:17px;overflow:hidden;background:#e9edf4}.dashboard-map{height:420px}.full-map{height:620px}.picker-map{height:380px;margin-bottom:15px}.detail-map{height:420px;border-radius:17px;overflow:hidden}.ranking-list{display:flex;flex-direction:column}.ranking-row{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid #edf0f5}.ranking-row:last-child{border-bottom:0}.ranking-row.clickable{transition:.2s}.ranking-row.clickable:hover{background:#fafbfe;transform:translateX(2px)}.rank-badge{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#eef1f7;color:#667186;font-weight:800;font-size:12px;flex:none}.rank-1{background:#efeaff;color:#6549ec}.rank-2{background:#e9f8f5;color:#0a947d}.rank-3{background:#fff4e8;color:#b86c19}.ranking-name{flex:1;min-width:0}.ranking-name strong{display:block;font-size:13px}.ranking-name small{display:block;color:#929caf;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.score{font-family:'Space Grotesk';color:#5b43dc}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th{text-align:left;font-size:9px;letter-spacing:1.1px;text-transform:uppercase;color:#8c97a9;padding:13px 12px;border-bottom:1px solid #e8ecf2}td{padding:15px 12px;border-bottom:1px solid #eef1f5;font-size:12px}code{font-size:10px;background:#f4f6fa;padding:4px 6px;border-radius:6px}.badge,.code-badge{display:inline-flex;padding:5px 8px;border-radius:8px;font-size:9px;font-weight:800}.code-badge{background:#f0edff;color:#6249d9}.badge-benefit{background:#e9faf6;color:#0a927c}.badge-cost{background:#fff0f2;color:#cf3d56}.badge-admin{background:#eeeaff;color:#6047dc}.badge-user{background:#e8f8f5;color:#0a907b}.actions{display:flex;gap:7px;align-items:center}.actions form{margin:0}.empty-state{text-align:center;padding:45px 20px;color:#8b96a8}.empty-state div{font-size:34px;color:#7557ed;margin-bottom:10px}.empty-state strong{display:block;color:#273044;margin-bottom:6px}.empty-state p{margin:0;font-size:12px}.alert{display:flex;gap:10px;align-items:center;padding:13px 16px;border-radius:13px;margin-bottom:20px;font-size:12px;font-weight:600}.alert.success{background:#eafaf6;color:#087e6d;border:1px solid #c9f1e8}.alert.error{background:#fff0f2;color:#c5324b;border:1px solid #ffd6de}.alert-icon{font-weight:900}.form-layout{display:flex;flex-direction:column}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}.form-grid label,.coordinate-grid label,.form-layout label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:800;color:#59657a}input,select,textarea{width:100%;border:1px solid #dfe5ee;background:#fbfcfe;border-radius:12px;padding:12px 13px;outline:0;color:#263148;transition:.2s}input:focus,select:focus,textarea:focus{border-color:#927dff;box-shadow:0 0 0 4px rgba(124,92,255,.08)}textarea{resize:vertical}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.criteria-input-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.criterion-input{padding:16px;border:1px solid #e6eaf1;border-radius:15px;background:#fbfcfe}.criterion-input span{font-size:12px;color:#303b51}.criterion-input small{display:block;color:#929cad;font-size:10px;margin:5px 0 10px}.criterion-input input{background:#fff}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin:2px 0 25px}.narrow-card{max-width:850px}.info-strip{display:grid;grid-template-columns:repeat(3,1fr);background:#111827;color:#fff;border-radius:18px;padding:20px;margin-bottom:20px;gap:15px}.info-strip span{display:block;color:#8f9bb0;font-size:9px;text-transform:uppercase;letter-spacing:1.2px}.info-strip strong{display:block;margin-top:5px;font:700 17px 'Space Grotesk'}.winner-card{background:linear-gradient(120deg,#111827,#1b2030);color:#fff;border-radius:23px;padding:26px;display:flex;align-items:center;gap:17px;margin-bottom:20px}.winner-icon{width:54px;height:54px;border-radius:17px;background:rgba(124,92,255,.2);display:grid;place-items:center;font-size:23px}.winner-card span{font-size:9px;letter-spacing:1.5px;color:#9aa5b8}.winner-card h2{margin:5px 0;font:700 24px 'Space Grotesk'}.winner-card p{margin:0;color:#98a3b6;font-size:11px}.winner-score{margin-left:auto;text-align:right}.winner-score small{display:block;color:#8f9bae}.winner-score strong{display:block;font:700 28px 'Space Grotesk';color:#a695ff}.business-check-grid{display:flex;flex-wrap:wrap;gap:10px}.check-chip{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px!important;padding:10px 13px;border:1px solid #e3e8f0;border-radius:12px;background:#fff;cursor:pointer}.check-chip input{width:auto}.check-chip:has(input:checked){border-color:#907bff;background:#f2efff;color:#6048d8}.location-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.location-mini{border:1px solid #e8ecf2;border-radius:14px;padding:14px;display:flex;align-items:center;gap:10px;transition:.2s}.location-mini:hover{border-color:#cfc6ff;transform:translateY(-2px)}.location-mini>div{flex:1;min-width:0}.location-mini strong{display:block;font-size:12px}.location-mini small{display:block;color:#929caf;font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-dot{width:9px;height:9px;border-radius:50%;background:#7357ff;box-shadow:0 0 0 5px #eeeaff;flex:none}.text-link{color:#654be3;font-size:11px;font-weight:800}.footer{padding:0 46px 28px;display:flex;justify-content:space-between;color:#a0a9b8;font-size:10px}.search-panel{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px;background:linear-gradient(135deg,#111827,#171e2d);color:#fff;border-radius:24px;margin-bottom:20px}.search-panel h2{font:700 24px 'Space Grotesk';margin:6px 0}.search-panel p{color:#96a2b7;font-size:11px;margin:0}.business-select{display:flex;gap:10px;min-width:430px}.business-select select{background:#1c2434;border-color:#333e54;color:#fff}.user-stats{grid-template-columns:repeat(3,1fr)}.user-grid{grid-template-columns:minmax(0,1.25fr) minmax(350px,.75fr)}.detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) 330px;gap:20px}.detail-main{min-width:0}.detail-hero{display:flex;gap:15px;align-items:center;margin-bottom:20px}.location-symbol{width:58px;height:58px;border-radius:18px;background:#efeaff;color:#684ce2;display:grid;place-items:center;font-size:27px}.detail-hero h2{font:700 24px 'Space Grotesk';margin:5px 0}.detail-hero p{font-size:11px;color:#8c97a9;margin:0}.detail-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.detail-info div{background:#f7f9fc;padding:14px;border-radius:14px}.detail-info small,.criteria-detail-grid small{display:block;color:#8f99aa;font-size:8px;letter-spacing:1px;text-transform:uppercase}.detail-info strong{display:block;font-size:11px;margin-top:6px}.score-card{background:linear-gradient(145deg,#111827,#1b2030);color:#fff}.score-card p{color:#97a3b8;font-size:11px;line-height:1.6}.big-rank{font:700 62px 'Space Grotesk';margin:12px 0;color:#a897ff}.score-ring{margin-top:30px;border-top:1px solid #2b3447;padding-top:20px}.score-ring strong{display:block;font:700 32px 'Space Grotesk'}.score-ring small{color:#8995a9}.criteria-detail-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.criteria-detail-grid>div{background:#f7f9fc;border:1px solid #edf0f5;border-radius:15px;padding:15px}.criteria-detail-grid span{font-size:9px;color:#7258df;font-weight:900}.criteria-detail-grid small{margin:7px 0;min-height:26px}.criteria-detail-grid strong{display:block;font:700 19px 'Space Grotesk'}.criteria-detail-grid em{font-style:normal;font-size:8px;color:#8d98aa}.admin-criteria>div{background:#f9f9ff}.auth-page{min-height:100vh;background:#080b12;color:#fff;display:grid;place-items:center;overflow:hidden;position:relative}.auth-shell{width:min(470px,92vw);position:relative;z-index:2}.auth-logo{display:flex;align-items:center;gap:9px;font:700 19px 'Space Grotesk';margin-bottom:25px}.auth-logo span{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#7357ff,#4f8cff);font-size:24px}.auth-card{background:rgba(16,21,31,.88);border:1px solid rgba(255,255,255,.09);border-radius:26px;padding:32px;box-shadow:0 35px 100px rgba(0,0,0,.4);backdrop-filter:blur(20px)}.auth-card h1{font:700 32px 'Space Grotesk';letter-spacing:-1.2px;margin:8px 0}.auth-card>p{color:#8e9aae;font-size:12px;line-height:1.6;margin-bottom:24px}.auth-card form{display:flex;flex-direction:column;gap:15px}.auth-card label{font-size:10px;color:#aeb8c8;font-weight:800}.auth-card input{margin-top:7px;background:#0c111a;border-color:#273041;color:#fff}.auth-card input:focus{border-color:#7d64ff}.auth-bottom{text-align:center!important;margin:20px 0 0!important}.auth-bottom a{color:#a897ff;font-weight:700}.auth-page .alert{margin-bottom:15px}.auth-orb{position:absolute;width:450px;height:450px;border-radius:50%;filter:blur(80px);opacity:.18}.orb-a{background:#6e4dff;left:-150px;top:-120px}.orb-b{background:#00d9ad;right:-160px;bottom:-170px}
/* landing */.landing{background:#080b12;color:#eef3ff}.landing-nav{height:82px;display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:auto;padding:0 28px;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:10px;font:700 18px 'Space Grotesk'}.brand small{display:block;color:#778398;font:700 7px 'DM Sans';letter-spacing:1.7px;margin-top:2px}.brand-symbol{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#7256ff,#3c8dff);display:grid;place-items:center;font-size:24px}.nav-links{display:flex;gap:30px;color:#8f9bb0;font-size:11px;font-weight:600}.nav-links a:hover{color:#fff}.nav-actions{display:flex;gap:8px}.landing .btn-ghost{color:#dfe6f2}.hero{max-width:1320px;margin:auto;padding:65px 28px 95px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(124,92,255,.28);background:rgba(124,92,255,.08);color:#a998ff;padding:8px 11px;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:1.5px}.pill span{width:6px;height:6px;background:#00e5b0;border-radius:50%;box-shadow:0 0 12px #00e5b0}.hero-copy h1{font:700 clamp(48px,6vw,82px)/.98 'Space Grotesk';letter-spacing:-4px;margin:22px 0}.hero-copy h1 em{font-style:normal;background:linear-gradient(90deg,#8d76ff,#00d8b0);-webkit-background-clip:text;color:transparent}.hero-copy>p{color:#8d99ae;font-size:14px;line-height:1.75;max-width:650px}.hero-actions{display:flex;gap:10px;margin:28px 0}.btn-xl{padding:14px 18px}.hero-proof{display:flex;gap:35px;margin-top:35px}.hero-proof strong{display:block;font:700 22px 'Space Grotesk'}.hero-proof span{display:block;color:#69768b;font-size:9px;margin-top:3px}.hero-visual{position:relative}.visual-glow{position:absolute;inset:10% 5%;background:linear-gradient(135deg,#6248ff,#00d5aa);filter:blur(75px);opacity:.18}.map-preview{height:530px;border:1px solid rgba(255,255,255,.1);border-radius:27px;background:#101620;padding:11px;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.4);transform:rotate(1.2deg)}.map-top{display:flex;justify-content:space-between;padding:11px 13px;color:#657286;font-size:8px;letter-spacing:1.3px;font-weight:800}.live-dot{color:#00d4a6}.map-preview #landingMap{height:calc(100% - 40px);border-radius:19px;overflow:hidden;filter:saturate(.75) contrast(1.05)}.map-float{position:absolute;left:30px;bottom:28px;background:rgba(10,14,22,.88);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1);padding:13px 15px;border-radius:15px;display:flex;align-items:center;gap:10px;min-width:260px}.float-icon{width:32px;height:32px;border-radius:10px;background:#29204d;color:#9c88ff;display:grid;place-items:center}.map-float small{display:block;font-size:7px;color:#7f8ba0;letter-spacing:1px}.map-float strong{display:block;font-size:11px;margin-top:3px}.map-float>b{margin-left:auto;color:#8871ff}.section{max-width:1320px;margin:auto;padding:95px 28px}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:38px}.section-head h2{font:700 clamp(34px,4vw,55px) 'Space Grotesk';letter-spacing:-2.5px;margin:8px 0 0}.section-head>p{color:#778398;font-size:12px;line-height:1.7;max-width:420px}.feature-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}.feature-card{padding:30px;border:1px solid rgba(255,255,255,.08);background:#10151f;border-radius:22px;min-height:300px;position:relative;overflow:hidden}.feature-main{background:linear-gradient(145deg,#17132c,#10151f)}.feature-number{position:absolute;right:20px;top:20px;color:#434d60;font:700 11px 'Space Grotesk'}.feature-icon{font-size:28px;color:#8972ff;margin-bottom:70px}.feature-card h3{font:700 21px 'Space Grotesk';margin:0 0 9px}.feature-card p{color:#7e8a9f;font-size:11px;line-height:1.7;max-width:330px}.feature-line{position:absolute;left:30px;bottom:0;width:100px;height:3px;background:linear-gradient(90deg,#7b5cff,#00d8ad)}.dark-section{max-width:none;background:#0b0f17;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);padding-left:max(28px,calc((100% - 1264px)/2));padding-right:max(28px,calc((100% - 1264px)/2))}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.steps>div{border-top:1px solid #273041;padding:24px 10px 0}.steps span{color:#8873ff;font:700 10px 'Space Grotesk'}.steps h3{font:700 18px 'Space Grotesk';margin:25px 0 7px}.steps p{color:#788499;font-size:10px;line-height:1.7}.business-chips{display:flex;flex-wrap:wrap;gap:10px}.business-chip{border:1px solid #252e3e;background:#111722;border-radius:999px;padding:12px 15px;color:#c2cad8;font-size:11px}.business-chip span{color:#7d67ff;margin-right:7px}.landing-footer{border-top:1px solid rgba(255,255,255,.07);max-width:1320px;margin:auto;padding:45px 28px;display:flex;justify-content:space-between;color:#69768b;font-size:10px}.landing-footer .brand{color:#fff}.landing-footer>div:last-child{text-align:right}.landing-footer small{letter-spacing:1.5px}
@media(max-width:1050px){.sidebar{width:220px}.main-area{margin-left:220px;width:calc(100% - 220px)}.content{padding:30px}.stat-grid{grid-template-columns:1fr 1fr}.dashboard-grid,.user-grid,.detail-grid{grid-template-columns:1fr}.criteria-detail-grid{grid-template-columns:repeat(3,1fr)}.hero-grid{gap:30px}.hero-copy h1{font-size:58px}.nav-links{display:none}.feature-grid{grid-template-columns:1fr 1fr}.feature-main{grid-column:1/-1}.steps{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s;width:270px}.sidebar.open{transform:none}.main-area{margin-left:0;width:100%}.mobile-header{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#0a0e16;color:#fff;position:sticky;top:0;z-index:20}.mobile-menu{border:0;background:transparent;color:#fff;font-size:22px}.mobile-brand{font:700 16px 'Space Grotesk'}.mobile-logout{color:#ff8595}.content{padding:25px 17px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:36px}.stat-grid,.user-stats{grid-template-columns:1fr 1fr}.form-grid,.coordinate-grid,.criteria-input-grid,.info-strip{grid-template-columns:1fr}.location-cards{grid-template-columns:1fr}.dashboard-map{height:350px}.full-map{height:450px}.footer{padding:0 17px 22px;flex-direction:column;gap:5px}.search-panel{align-items:stretch;flex-direction:column}.business-select{min-width:0;flex-direction:column}.criteria-detail-grid{grid-template-columns:1fr 1fr}.winner-card{align-items:flex-start;flex-wrap:wrap}.winner-score{margin-left:0;text-align:left}.auth-card{padding:25px}.landing-nav{padding:0 18px}.landing-nav .nav-actions .btn-ghost{display:none}.hero{padding:45px 18px 70px}.hero-grid{grid-template-columns:1fr}.hero-copy h1{font-size:50px;letter-spacing:-2.5px}.hero-actions{flex-wrap:wrap}.hero-visual{margin-top:10px}.map-preview{height:430px}.section{padding:70px 18px}.section-head{flex-direction:column;align-items:flex-start}.feature-grid,.steps{grid-template-columns:1fr}.feature-main{grid-column:auto}.landing-footer{padding:35px 18px;flex-direction:column;gap:25px}.landing-footer>div:last-child{text-align:left}}
/* Salsabila auth modal */
.intro-section{padding-top:55px;padding-bottom:55px}.auth-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}.auth-modal.open{display:flex}.auth-backdrop{position:absolute;inset:0;background:rgba(3,5,10,.78);backdrop-filter:blur(12px)}.auth-modal-card{position:relative;width:min(460px,100%);max-height:calc(100vh - 40px);overflow:auto;background:linear-gradient(145deg,#121824,#0d121b);border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:28px;box-shadow:0 40px 120px rgba(0,0,0,.55);color:#eef3ff}.auth-close{position:absolute;right:18px;top:15px;width:34px;height:34px;border-radius:11px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.05);color:#aab5c7;font-size:22px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#080c13;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:4px;margin-bottom:25px}.auth-tab{border:0;background:transparent;color:#7e8aa0;padding:11px;border-radius:10px;font-weight:800;font-size:12px}.auth-tab.active{background:linear-gradient(135deg,#7357ff,#4f8cff);color:#fff;box-shadow:0 8px 24px rgba(92,78,220,.25)}.auth-modal-copy h2{font:700 30px 'Space Grotesk';letter-spacing:-1.2px;margin:7px 0}.auth-modal-copy p{font-size:11px;line-height:1.7;color:#8490a5;margin:0 0 20px}.auth-form-panel{display:none}.auth-form-panel.active{display:flex;flex-direction:column;gap:13px}.auth-form-panel label{display:flex;flex-direction:column;gap:7px;color:#9aa6ba;font-size:10px;font-weight:800;letter-spacing:.3px}.auth-form-panel input{background:#080d15;border-color:rgba(255,255,255,.09);color:#eef3ff}.auth-form-panel input::placeholder{color:#59657a}.auth-form-panel input:focus{border-color:#8771ff;box-shadow:0 0 0 4px rgba(124,92,255,.12)}.auth-modal .alert{margin:0 0 15px}.auth-bottom{font-size:9px;color:#66738a;text-align:center;margin:17px 0 0}.landing .btn{cursor:pointer}.landing .btn-ghost{background:rgba(255,255,255,.045)}
@media(max-width:760px){.auth-modal-card{padding:22px;border-radius:22px}.auth-modal-copy h2{font-size:25px}.nav-links{display:none}}

/* ===== Salsabila landing/auth stability + map pins ===== */
body.landing.auth-open{overflow:hidden;}
.auth-modal{isolation:isolate;overscroll-behavior:contain;}
.auth-modal-card{z-index:2;}
.auth-modal-card *{box-sizing:border-box;}
.auth-modal-card .btn{min-height:44px;}
.auth-form-panel input{appearance:none;-webkit-appearance:none;}
.auth-close,.auth-tab{cursor:pointer;}
.auth-close:focus-visible,.auth-tab:focus-visible,.auth-modal .btn:focus-visible{outline:2px solid #8b76ff;outline-offset:3px;}
.salsabila-pin-wrap{background:transparent!important;border:0!important;}
.salsabila-pin{position:relative;display:block;width:30px;height:30px;border-radius:50% 50% 50% 0;background:linear-gradient(145deg,#8067ff,#4d8cff);border:3px solid rgba(255,255,255,.95);box-shadow:0 5px 16px rgba(73,54,170,.45);transform:rotate(-45deg);}
.salsabila-pin i{position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(124,92,255,.2);}
.leaflet-marker-icon.salsabila-pin-wrap{filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));}
@media(max-width:760px){
  .auth-modal{padding:14px;}
  .auth-modal-card{width:min(460px,100%);max-height:calc(100dvh - 28px);}
  .auth-form-panel.active{gap:11px;}
  .auth-modal-card .btn{min-height:46px;}
}

/* ===== FINAL LANDING AUTH FIX ===== */
html.auth-open, body.landing.auth-open{overflow:hidden!important;}
body.landing.auth-open{padding-right:var(--scrollbar-width,0px);}
.auth-modal{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s ease,visibility .18s ease;}
.auth-modal.open{visibility:visible;opacity:1;pointer-events:auto;}
.auth-backdrop{cursor:pointer;}
.auth-modal-card{position:relative;z-index:2;transform:translateY(8px) scale(.985);transition:transform .18s ease;}
.auth-modal.open .auth-modal-card{transform:translateY(0) scale(1);}
.auth-modal-card input{width:100%;min-width:0;}
.auth-modal-card button{cursor:pointer;}
.salsabila-pin-wrap{background:transparent!important;border:0!important;}
.salsabila-pin{display:block;position:relative;width:30px;height:30px;border-radius:50% 50% 50% 0;background:linear-gradient(145deg,#8b73ff,#4d8cff);border:3px solid #fff;box-shadow:0 6px 18px rgba(65,45,170,.48);transform:rotate(-45deg);}
.salsabila-pin i{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:#fff;}

/* =========================================================
   SALSABILA 2026 · MODERN GEO-INTELLIGENCE DASHBOARD
   Overrides dashboard screens without changing business logic.
========================================================= */
:root{--s-bg:#070b12;--s-panel:#0e1521;--s-panel2:#111a28;--s-line:rgba(148,163,184,.13);--s-text:#f4f7ff;--s-muted:#8290a5;--s-blue:#4f8cff;--s-purple:#7c5cff;--s-green:#28e0ad;--s-radius:24px}
body:not(.landing){background:radial-gradient(circle at 75% -10%,rgba(91,76,220,.12),transparent 34%),radial-gradient(circle at 10% 20%,rgba(31,130,255,.07),transparent 30%),var(--s-bg);color:var(--s-text)}
body:not(.landing) .app-shell{min-height:100vh;background:transparent}
body:not(.landing) .sidebar{width:252px;background:rgba(9,14,23,.94);border-right:1px solid var(--s-line);box-shadow:18px 0 60px rgba(0,0,0,.16);backdrop-filter:blur(20px)}
body:not(.landing) .sidebar-brand{padding:28px 22px 20px;border-bottom:1px solid var(--s-line)}
body:not(.landing) .brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#7558ff,#318dff);box-shadow:0 12px 35px rgba(80,95,255,.28);font-size:18px;font-weight:900}
body:not(.landing) .sidebar-brand strong{font-size:17px;letter-spacing:-.4px}.sidebar-brand span{font-size:8px;letter-spacing:1.8px;color:#66758d}
body:not(.landing) .sidebar-user{margin:18px 14px;padding:13px;border:1px solid var(--s-line);background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.015));border-radius:17px}
body:not(.landing) .avatar{width:38px;height:38px;background:linear-gradient(135deg,#2b65e9,#754cff);border:1px solid rgba(255,255,255,.15);box-shadow:0 8px 25px rgba(61,91,230,.28)}
body:not(.landing) .sidebar-section{padding:4px 12px}.sidebar-label{font-size:8px!important;letter-spacing:1.7px!important;color:#58667c!important;margin:13px 9px 9px}
body:not(.landing) .nav-item{border-radius:13px;margin:3px 0;color:#8996aa;padding:12px 13px;font-size:11px;transition:.18s ease;position:relative}
body:not(.landing) .nav-item span{width:24px;color:#64738a}.nav-item:hover{background:rgba(255,255,255,.045);color:#eef3ff;transform:translateX(2px)}
body:not(.landing) .nav-item.active{background:linear-gradient(100deg,rgba(74,112,255,.95),rgba(93,72,220,.9));color:#fff;box-shadow:0 12px 28px rgba(59,85,215,.2)}
body:not(.landing) .nav-item.active span{color:#fff}.logout-link{color:#ff8797!important}.sidebar-info{margin:12px 14px;padding:14px;border:1px solid var(--s-line);border-radius:15px;background:rgba(255,255,255,.025)}.sidebar-info span{font-size:7px;letter-spacing:1.3px;color:#66758c}.sidebar-info strong{display:block;font-size:10px;margin-top:5px}.sidebar-info small{font-size:8px;color:#65738a}
body:not(.landing) .main-area{margin-left:252px;width:calc(100% - 252px)}body:not(.landing) .content{max-width:1500px;padding:38px 42px 18px}
.dashboard-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:22px}.dashboard-topbar h1{font:700 clamp(30px,3.3vw,48px) 'Space Grotesk';letter-spacing:-2px;margin:8px 0}.dashboard-topbar p{max-width:700px;color:var(--s-muted);font-size:12px;line-height:1.7;margin:0}.wave{font-size:.6em;color:#8d7cff}.modern-heading{align-items:flex-end}
.admin-hero-strip{display:flex;gap:10px;flex-wrap:wrap;padding:10px;margin-bottom:16px;border:1px solid var(--s-line);background:rgba(255,255,255,.018);border-radius:18px}.admin-hero-strip>div{flex:1;min-width:180px;padding:9px 13px;border-right:1px solid var(--s-line)}.admin-hero-strip>div:last-child{border-right:0}.admin-hero-strip span{display:block;font-size:7px;letter-spacing:1.4px;color:#68768d}.admin-hero-strip strong{display:block;font-size:10px;margin-top:5px}.live-status{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2be2ad;box-shadow:0 0 0 4px rgba(43,226,173,.1);margin-right:5px}
.modern-stats{gap:13px}.modern-stat{min-height:142px!important;position:relative;overflow:hidden;border:1px solid var(--s-line)!important;background:linear-gradient(145deg,rgba(17,26,40,.98),rgba(10,16,25,.98))!important;border-radius:21px!important;box-shadow:0 15px 45px rgba(0,0,0,.13)!important;padding:19px!important}.modern-stat:after{content:"";position:absolute;width:110px;height:110px;right:-50px;top:-50px;border-radius:50%;background:rgba(80,105,255,.11);filter:blur(2px)}.modern-stat .stat-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(102,89,255,.13);color:#9b8dff;margin-bottom:13px;font-size:15px}.modern-stat span{font-size:8px;letter-spacing:1.5px;color:#738198}.modern-stat strong{display:block;font:700 26px 'Space Grotesk';letter-spacing:-1px;margin:5px 0}.modern-stat small{font-size:9px;color:#66758b}.modern-stat.highlight{background:linear-gradient(145deg,rgba(26,26,57,.98),rgba(12,17,29,.98))!important}.modern-stat.highlight .stat-icon{color:#65d9ff;background:rgba(50,150,255,.12)}
.modern-card,.card.modern-card{border:1px solid var(--s-line)!important;background:linear-gradient(145deg,rgba(15,23,35,.96),rgba(9,15,24,.96))!important;border-radius:var(--s-radius)!important;box-shadow:0 20px 70px rgba(0,0,0,.15)!important}.modern-card .card-head{padding-bottom:17px}.modern-card .card-head h2{font-size:20px;letter-spacing:-.6px}.modern-card .card-head p{font-size:9px;color:#748197}
.admin-dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(360px,.8fr);gap:16px;margin-top:16px}.dashboard-map{height:465px;border-radius:18px;border:1px solid rgba(255,255,255,.06);overflow:hidden}.map-card .card-head{display:flex;align-items:center;justify-content:space-between}.map-live-badge{font-size:8px;letter-spacing:1px;color:#62d9b5;padding:8px 10px;border:1px solid rgba(58,220,174,.16);background:rgba(42,217,171,.05);border-radius:999px}.map-live-badge i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#2be0ac;margin-right:5px}
.modern-ranking{display:flex;flex-direction:column;gap:6px}.modern-ranking .ranking-row{border:1px solid transparent;border-radius:15px;padding:13px 12px;background:rgba(255,255,255,.018);transition:.18s ease}.modern-ranking .ranking-row:hover{border-color:var(--s-line);background:rgba(255,255,255,.035);transform:translateY(-1px)}.ranking-name small{color:#718097!important;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score{font:700 17px 'Space Grotesk';color:#bfcaff!important}.rank-badge{width:34px!important;height:34px!important;border-radius:11px!important;background:#182232!important;color:#aab7cb!important}.rank-1{background:rgba(255,192,79,.12)!important;color:#ffd26f!important}.rank-2{background:rgba(145,160,181,.12)!important;color:#c5d0df!important}.rank-3{background:rgba(189,132,70,.12)!important;color:#e4ad72!important}
.modern-criteria{gap:10px!important}.modern-criteria>div{border:1px solid var(--s-line)!important;background:rgba(255,255,255,.018)!important;border-radius:17px!important;padding:17px!important;min-height:120px}.modern-criteria>div span{font-size:9px;color:#8c7cff;font-weight:900}.modern-criteria>div small{display:block;margin:8px 0;font-size:9px;color:#8a97aa;line-height:1.4}.modern-criteria>div strong{font:700 19px 'Space Grotesk'}.modern-criteria>div em{font-size:7px;letter-spacing:1px;color:#68768d;font-style:normal;margin-left:7px}
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:15px}.quick-card{display:flex;align-items:center;gap:12px;padding:17px;border:1px solid var(--s-line);border-radius:18px;background:rgba(255,255,255,.018);color:#e9effa;text-decoration:none;transition:.18s}.quick-card:hover{background:rgba(99,91,255,.07);border-color:rgba(111,96,255,.25);transform:translateY(-2px)}.quick-card>span{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:rgba(104,87,255,.12);color:#a293ff}.quick-card strong{display:block;font-size:10px}.quick-card small{display:block;color:#718097;font-size:8px;margin-top:4px}.quick-card:last-child{justify-content:space-between}
.modern-search{border:1px solid var(--s-line)!important;background:linear-gradient(135deg,rgba(30,34,64,.72),rgba(12,18,29,.94))!important;box-shadow:0 20px 70px rgba(0,0,0,.15);border-radius:24px!important}.modern-search h2{font-size:23px}.business-select select{background:#080f1a!important;border-color:var(--s-line)!important;color:#edf2ff!important}.user-welcome{margin-bottom:19px}.user-welcome h1{font-size:clamp(30px,3.4vw,47px)}.user-grid{margin-top:16px}.modern-empty{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.modern-empty>div{font-size:36px;color:#8674ff;margin-bottom:8px}.modern-location-cards{grid-template-columns:repeat(3,1fr)!important}.modern-location-cards .location-mini{border:1px solid var(--s-line);background:rgba(255,255,255,.018);border-radius:16px;padding:14px}.modern-location-cards .location-mini:hover{background:rgba(99,91,255,.05)}
.business-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.business-admin-card{display:flex;align-items:flex-start;gap:13px;padding:17px;border:1px solid var(--s-line);background:rgba(255,255,255,.018);border-radius:18px}.business-admin-card.is-off{opacity:.6}.business-admin-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:13px;background:rgba(99,88,255,.12);color:#9b8dff}.business-admin-body{min-width:0;flex:1}.business-admin-body h3{margin:7px 0 5px;font:700 16px 'Space Grotesk'}.business-admin-body p{margin:0;color:#77859a;font-size:9px;line-height:1.55}.status-pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:6px;letter-spacing:1.2px}.status-pill.on{color:#50d7b1;background:rgba(48,214,171,.08)}.status-pill.off{color:#ff9ba8;background:rgba(255,100,120,.08)}.business-admin-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.business-admin-actions form{margin:0}.modern-info{border-color:var(--s-line)!important;background:rgba(255,255,255,.018)!important}
.salsabila-pin-wrap{background:transparent!important;border:0!important}.salsabila-pin{display:block;position:relative;width:30px;height:30px;border-radius:50% 50% 50% 0;background:linear-gradient(145deg,#836bff,#3d8cff);border:3px solid rgba(255,255,255,.98);box-shadow:0 7px 20px rgba(63,68,181,.45);transform:rotate(-45deg)}.salsabila-pin i{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:#fff}.salsabila-popup{min-width:185px;padding:2px}.salsabila-popup>strong{display:block;font:700 14px 'Space Grotesk';color:#182033}.salsabila-popup small{display:block;color:#69758a;font-size:9px;margin-top:4px;line-height:1.5}.salsabila-popup a{display:block;color:#4d67d8;font-size:9px;font-weight:700;text-decoration:none;margin-top:8px}.map-popup-rank{display:inline-block;background:#edf2ff;color:#5168d6;border-radius:6px;padding:3px 5px;font-size:8px;margin-bottom:5px}.map-popup-score{font-size:8px;color:#738098;margin-top:7px}.map-popup-score strong{color:#4c63d3;margin-left:5px}
.form-card-modern{max-width:900px}.modern-heading h1{font-size:clamp(31px,3.5vw,47px)}
@media(max-width:1050px){body:not(.landing) .sidebar{width:225px}body:not(.landing) .main-area{margin-left:225px;width:calc(100% - 225px)}body:not(.landing) .content{padding:28px}.admin-dashboard-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr 1fr}.modern-location-cards{grid-template-columns:1fr 1fr!important}.business-admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){body:not(.landing) .sidebar{width:285px}.mobile-header{height:64px!important;background:rgba(7,11,18,.92)!important;border-bottom:1px solid var(--s-line);backdrop-filter:blur(18px);padding:0 17px!important;position:sticky;top:0;z-index:50}.mobile-brand{display:flex;align-items:center;gap:8px!important;color:#f5f7ff!important}.mobile-brand-mark{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#765bff,#3d8cff);font-weight:900}.mobile-menu{color:#dce6ff!important}.mobile-logout{font-size:18px}.content{padding:22px 14px 10px!important}.dashboard-topbar{align-items:flex-start;flex-direction:column;margin-bottom:16px}.dashboard-topbar h1{font-size:31px;letter-spacing:-1.3px}.dashboard-topbar p{font-size:10px}.dashboard-topbar>.btn{width:100%;justify-content:center}.admin-hero-strip{display:grid;grid-template-columns:1fr 1fr}.admin-hero-strip>div{border-right:0;border-bottom:1px solid var(--s-line)}.admin-hero-strip>div:nth-child(odd){border-right:1px solid var(--s-line)}.modern-stats{grid-template-columns:1fr 1fr!important}.modern-stat{min-height:128px!important;padding:15px!important}.modern-stat strong{font-size:21px}.modern-stat.highlight{grid-column:1/-1}.modern-search{padding:18px!important}.modern-search h2{font-size:20px}.modern-location-cards{grid-template-columns:1fr!important}.business-admin-grid{grid-template-columns:1fr}.business-admin-card{flex-wrap:wrap}.business-admin-actions{width:100%;justify-content:flex-start}.quick-actions{grid-template-columns:1fr}.dashboard-map{height:360px}.map-card .card-head{align-items:flex-start;gap:10px}.map-live-badge{display:none}.criteria-detail-grid.modern-criteria{grid-template-columns:1fr 1fr!important}.modern-criteria>div{min-height:110px;padding:13px!important}.modern-criteria>div small{font-size:8px}.modern-criteria>div strong{font-size:17px}.table-wrap{overflow-x:auto}.footer{font-size:8px!important}}

/* =========================================================
   FIX: CONTENT CARDS / TABLES
   Kartu putih harus menggunakan teks gelap. Dashboard modern
   yang memang gelap tetap menggunakan teks terang.
========================================================= */
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info){
  color:#182132;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) h1,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) h2,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) h3,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) strong,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) td{
  color:#182132;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) td,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) th{
  background:transparent;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) td{
  color:#334155;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) td strong{
  color:#1e293b;
  font-weight:700;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) th{
  color:#64748b;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) .btn-light{
  color:#364055;
  background:#fff;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) .code-badge{
  color:#6249d9;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) .badge-benefit{
  color:#087e6d;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) .badge-cost{
  color:#c5324b;
}

/* Kriteria: tabel lebih tegas dan mudah dibaca */
body:not(.landing) .table-wrap table tbody tr:hover{
  background:#f8faff;
}

body:not(.landing) .table-wrap table tbody td:first-child{
  font-weight:700;
}

/* Jangan biarkan warna global dashboard membuat isi form putih */
body:not(.landing) .form-card-modern,
body:not(.landing) .narrow-card{
  color:#182132;
}

body:not(.landing) .form-card-modern label,
body:not(.landing) .narrow-card label{
  color:#59657a;
}

/* =========================================================
   FIX FINAL - HALAMAN KRITERIA
   Tabel putih = teks gelap
   Jangan hapus kode CSS sebelumnya.
========================================================= */

/* Card putih pada halaman admin */
body:not(.landing) section.card {
    background: #ffffff !important;
    color: #172033 !important;
}

/* Seluruh isi tabel */
body:not(.landing) section.card table {
    color: #172033 !important;
    background: #ffffff !important;
}

/* Header tabel */
body:not(.landing) section.card table thead,
body:not(.landing) section.card table thead tr,
body:not(.landing) section.card table thead th {
    background: #ffffff !important;
    color: #64748b !important;
}

/* Isi tabel */
body:not(.landing) section.card table tbody,
body:not(.landing) section.card table tbody tr,
body:not(.landing) section.card table tbody td {
    background: #ffffff !important;
    color: #334155 !important;
}

/* Nama kriteria */
body:not(.landing) section.card table tbody td strong {
    color: #172033 !important;
    font-weight: 700 !important;
}

/* Bobot */
body:not(.landing) section.card table tbody td:nth-child(4) {
    color: #334155 !important;
    font-weight: 600 !important;
}

/* Kolom Kriteria / C1 C2 C3 */
body:not(.landing) section.card table tbody td:first-child {
    color: #172033 !important;
}

/* Garis antar baris */
body:not(.landing) section.card table th,
body:not(.landing) section.card table td {
    border-bottom: 1px solid #e8edf4 !important;
}

/* Hover baris */
body:not(.landing) section.card table tbody tr:hover,
body:not(.landing) section.card table tbody tr:hover td {
    background: #f8faff !important;
    color: #172033 !important;
}

/* Badge C1 C2 C3 C4 C5 */
body:not(.landing) section.card .code-badge {
    background: #eeeaff !important;
    color: #6047dc !important;
    font-weight: 800 !important;
}

/* Badge BENEFIT */
body:not(.landing) section.card .badge-benefit {
    background: #e8faf5 !important;
    color: #087f6d !important;
    font-weight: 800 !important;
}

/* Badge COST */
body:not(.landing) section.card .badge-cost {
    background: #fff0f2 !important;
    color: #c5324b !important;
    font-weight: 800 !important;
}

/* Tombol Edit */
body:not(.landing) section.card .btn-light {
    background: #ffffff !important;
    color: #334155 !important;
    border: 1px solid #dce3ed !important;
}

/* Tombol Edit ketika hover */
body:not(.landing) section.card .btn-light:hover {
    background: #f3f6fb !important;
    color: #172033 !important;
}

/* Tombol Hapus */
body:not(.landing) section.card .btn-danger {
    background: #fff1f3 !important;
    color: #c5324b !important;
    border: 1px solid #ffd3db !important;
}

/* Tombol Hapus ketika hover */
body:not(.landing) section.card .btn-danger:hover {
    background: #ffe4e9 !important;
    color: #a82038 !important;
}

/* Aksi */
body:not(.landing) section.card .actions {
    color: #172033 !important;
}

/* =========================================================
   FIX HALAMAN FORM KRITERIA
========================================================= */

body:not(.landing) .narrow-card {
    background: #ffffff !important;
    color: #172033 !important;
}

body:not(.landing) .narrow-card label {
    color: #475569 !important;
}

body:not(.landing) .narrow-card input,
body:not(.landing) .narrow-card select {
    background: #ffffff !important;
    color: #172033 !important;
    border: 1px solid #dce3ed !important;
}

body:not(.landing) .narrow-card input::placeholder {
    color: #94a3b8 !important;
}

/* =========================================================
   FIX JUDUL / DESKRIPSI DI ATAS TABEL
========================================================= */

body:not(.landing) .page-heading h1 {
    color: #f4f7ff !important;
}

body:not(.landing) .page-heading p {
    color: #8290a5 !important;
}

/* =========================================================
   FIX INFO STRIP
   Tetap dark karena memang desainnya dark.
========================================================= */

body:not(.landing) .info-strip {
    background: linear-gradient(
        135deg,
        #111827,
        #172033
    ) !important;
    color: #ffffff !important;
}

body:not(.landing) .info-strip span {
    color: #8f9bb0 !important;
}

body:not(.landing) .info-strip strong {
    color: #ffffff !important;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 760px) {

    body:not(.landing) section.card {
        padding: 14px !important;
        border-radius: 18px !important;
    }

    body:not(.landing) section.card .table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    body:not(.landing) section.card table {
        min-width: 650px !important;
    }

    body:not(.landing) section.card table th {
        font-size: 8px !important;
        color: #64748b !important;
    }

    body:not(.landing) section.card table td {
        font-size: 11px !important;
        color: #334155 !important;
    }

    body:not(.landing) section.card table td strong {
        color: #172033 !important;
    }
}

/* =========================================================
   SALSABILA FINAL OVERRIDE - KRITERIA / ADMIN CONTENT
   Versi final: teks pada card putih selalu gelap.
========================================================= */
body:not(.landing) .content .card,
body:not(.landing) .content section.card {
    background:#fff !important;
    color:#172033 !important;
}

body:not(.landing) .content .card h1,
body:not(.landing) .content .card h2,
body:not(.landing) .content .card h3,
body:not(.landing) .content .card p,
body:not(.landing) .content .card label,
body:not(.landing) .content .card span,
body:not(.landing) .content .card strong,
body:not(.landing) .content .card small,
body:not(.landing) .content .card td,
body:not(.landing) .content .card th {
    color:#334155;
}

body:not(.landing) .content .card h1,
body:not(.landing) .content .card h2,
body:not(.landing) .content .card h3,
body:not(.landing) .content .card strong {
    color:#172033;
}

body:not(.landing) .content .card table {
    background:#fff !important;
    color:#334155 !important;
}

body:not(.landing) .content .card table thead,
body:not(.landing) .content .card table thead tr,
body:not(.landing) .content .card table thead th {
    background:#f8fafc !important;
    color:#64748b !important;
}

body:not(.landing) .content .card table tbody,
body:not(.landing) .content .card table tbody tr,
body:not(.landing) .content .card table tbody td {
    background:#fff !important;
    color:#334155 !important;
}

body:not(.landing) .content .card table tbody tr:hover,
body:not(.landing) .content .card table tbody tr:hover td {
    background:#f8faff !important;
    color:#172033 !important;
}

body:not(.landing) .content .card table th,
body:not(.landing) .content .card table td {
    border-bottom:1px solid #e8edf4 !important;
}

body:not(.landing) .content .card .code-badge {
    background:#eeeaff !important;
    color:#6047dc !important;
}

body:not(.landing) .content .card .badge-benefit {
    background:#e8faf5 !important;
    color:#087f6d !important;
}

body:not(.landing) .content .card .badge-cost {
    background:#fff0f2 !important;
    color:#c5324b !important;
}

body:not(.landing) .content .card .btn-light {
    background:#fff !important;
    color:#334155 !important;
    border:1px solid #dce3ed !important;
}

body:not(.landing) .content .card .btn-danger {
    background:#fff1f3 !important;
    color:#c5324b !important;
    border:1px solid #ffd3db !important;
}

body:not(.landing) .content .card input,
body:not(.landing) .content .card select,
body:not(.landing) .content .card textarea {
    background:#fff !important;
    color:#172033 !important;
    border-color:#dce3ed !important;
}

body:not(.landing) .content .card input::placeholder,
body:not(.landing) .content .card textarea::placeholder {
    color:#94a3b8 !important;
}

/* Judul halaman tetap terang karena berada di area dashboard gelap */
body:not(.landing) .content > .page-heading h1,
body:not(.landing) .content > .dashboard-topbar h1 {
    color:#f4f7ff !important;
}

body:not(.landing) .content > .page-heading p,
body:not(.landing) .content > .dashboard-topbar p {
    color:#8290a5 !important;
}

@media screen and (max-width:760px) {
    body:not(.landing) .content .card {
        max-width:100%;
    }

    body:not(.landing) .content .card .table-wrap {
        overflow-x:auto !important;
        -webkit-overflow-scrolling:touch;
    }
}


/* =========================================================
   FINAL PHP + CSS FIX : KRITERIA PAGE
   Scoped to the real HTML generated by kriteria.php.
========================================================= */
body:not(.landing) .criteria-page-card {
    background: #ffffff !important;
    color: #182132 !important;
    border: 1px solid #e5e9f0 !important;
    box-shadow: 0 18px 55px rgba(0,0,0,.10) !important;
}

body:not(.landing) .criteria-page-card .criteria-table-wrap {
    background: #ffffff !important;
    color: #334155 !important;
    border-radius: inherit;
}

body:not(.landing) .criteria-page-card .criteria-table {
    width: 100% !important;
    min-width: 680px !important;
    border-collapse: collapse !important;
    background: #ffffff !important;
    color: #334155 !important;
}

body:not(.landing) .criteria-page-card .criteria-table thead,
body:not(.landing) .criteria-page-card .criteria-table thead tr,
body:not(.landing) .criteria-page-card .criteria-table thead th {
    background: #f8fafc !important;
    color: #64748b !important;
}

body:not(.landing) .criteria-page-card .criteria-table tbody,
body:not(.landing) .criteria-page-card .criteria-table tbody tr,
body:not(.landing) .criteria-page-card .criteria-table tbody td {
    background: #ffffff !important;
    color: #334155 !important;
}

body:not(.landing) .criteria-page-card .criteria-table tbody tr:hover,
body:not(.landing) .criteria-page-card .criteria-table tbody tr:hover td {
    background: #f7f9fc !important;
    color: #182132 !important;
}

body:not(.landing) .criteria-page-card .criteria-table th,
body:not(.landing) .criteria-page-card .criteria-table td {
    border-bottom: 1px solid #e8edf3 !important;
}

body:not(.landing) .criteria-page-card .criteria-table td strong {
    color: #182132 !important;
    font-weight: 700 !important;
}

body:not(.landing) .criteria-page-card .criteria-table td:nth-child(4) {
    color: #334155 !important;
    font-weight: 600 !important;
}

body:not(.landing) .criteria-page-card .criteria-table .code-badge {
    background: #eeeaff !important;
    color: #6047dc !important;
}

body:not(.landing) .criteria-page-card .criteria-table .badge-benefit {
    background: #e8faf5 !important;
    color: #087f6d !important;
}

body:not(.landing) .criteria-page-card .criteria-table .badge-cost {
    background: #fff0f2 !important;
    color: #c5324b !important;
}

body:not(.landing) .criteria-page-card .criteria-table .actions,
body:not(.landing) .criteria-page-card .criteria-table .actions a,
body:not(.landing) .criteria-page-card .criteria-table .actions button {
    color: #334155 !important;
}

body:not(.landing) .criteria-page-card .criteria-table .actions .btn-light {
    background: #ffffff !important;
    color: #334155 !important;
    border: 1px solid #dce3ec !important;
}

body:not(.landing) .criteria-page-card .criteria-table .actions .btn-danger {
    background: #fff0f2 !important;
    color: #c5324b !important;
    border: 1px solid #ffd4dc !important;
}

/* White cards elsewhere on admin pages: dark text unless deliberately modern-dark. */
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) {
    color: #182132;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) label {
    color: #59657a;
}

body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) input,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) select,
body:not(.landing) .card:not(.modern-card):not(.modern-search):not(.modern-info) textarea {
    color: #263148 !important;
    background: #ffffff !important;
}

@media screen and (max-width: 760px) {
    body:not(.landing) .criteria-page-card .criteria-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}


/* =========================================================
   FINAL DARK UI OVERRIDE
   Kriteria + Peta
========================================================= */
.criteria-page-card,
.criteria-page-card .criteria-table-wrap,
.criteria-page-card .criteria-table,
.criteria-page-card .criteria-table tbody,
.criteria-page-card .criteria-table tbody tr,
.criteria-page-card .criteria-table tbody td {
    background: #0b1220 !important;
    color: #e8eef7 !important;
}

.criteria-page-card {
    border: 1px solid #22314a !important;
    box-shadow: 0 18px 55px rgba(0,0,0,.25) !important;
}

.criteria-page-card .criteria-table thead,
.criteria-page-card .criteria-table thead tr,
.criteria-page-card .criteria-table thead th {
    background: #111c2e !important;
    color: #91a4bd !important;
    border-color: #22314a !important;
}

.criteria-page-card .criteria-table th,
.criteria-page-card .criteria-table td {
    border-bottom: 1px solid #1d2b40 !important;
}

.criteria-page-card .criteria-table tbody tr:hover,
.criteria-page-card .criteria-table tbody tr:hover td {
    background: #142238 !important;
    color: #ffffff !important;
}

.criteria-page-card .criteria-table td strong {
    color: #f5f8fc !important;
}

.criteria-page-card .criteria-table td:nth-child(4) {
    color: #d9e4f2 !important;
    font-weight: 700 !important;
}

.criteria-page-card .code-badge {
    background: #28204e !important;
    color: #b7a9ff !important;
    border: 1px solid #463a7c !important;
}

.criteria-page-card .badge-benefit {
    background: #103a33 !important;
    color: #63e3c4 !important;
    border: 1px solid #1c6658 !important;
}

.criteria-page-card .badge-cost {
    background: #421e29 !important;
    color: #ff91a4 !important;
    border: 1px solid #713141 !important;
}

.criteria-page-card .actions .btn-light {
    background: #17243a !important;
    color: #d8e4f2 !important;
    border: 1px solid #31445e !important;
}

.criteria-page-card .actions .btn-light:hover {
    background: #20324d !important;
    color: #ffffff !important;
}

.criteria-page-card .actions .btn-danger {
    background: #351d28 !important;
    color: #ff91a4 !important;
    border: 1px solid #67303f !important;
}

.criteria-page-card .actions .btn-danger:hover {
    background: #4a2431 !important;
    color: #ffffff !important;
}

/* Dark map surface while tiles load */
.map,
.full-map,
.dashboard-map,
.picker-map,
.leaflet-container {
    background: #0b1220 !important;
}

/* Modern dark popup */
.salsabila-popup {
    min-width: 190px;
    background: #0d1727;
    color: #eaf1f8;
    border-radius: 12px;
    padding: 12px;
    border: 1px solid #263a55;
    box-shadow: 0 12px 30px rgba(0,0,0,.28);
}

.salsabila-popup strong {
    color: #ffffff !important;
    font-size: 14px;
}

.salsabila-popup small {
    color: #91a5bd !important;
}

.salsabila-popup a {
    display: inline-block;
    margin-top: 8px;
    color: #7fb2ff !important;
    font-weight: 700;
}

.map-popup-score {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #263a55;
    color: #91a5bd;
}

.map-popup-score strong {
    color: #75d9bf !important;
}

.map-popup-rank {
    display: inline-block;
    margin-bottom: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #29204f;
    color: #b9aaff;
    font-size: 10px;
    font-weight: 800;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
    background: #0d1727 !important;
}

.leaflet-popup-content-wrapper {
    color: #eaf1f8 !important;
    border: 1px solid #263a55;
}

.leaflet-popup-close-button {
    color: #91a5bd !important;
}


/* =========================================================
   Salsabila FINAL DARK EVERYTHING OVERRIDE
   Semua konten admin/user di dalam .content dibuat dark.
   Landing/auth tidak disentuh.
========================================================= */
body:not(.landing) .content .card,
body:not(.landing) .content section.card,
body:not(.landing) .content article.card,
body:not(.landing) .content .table-wrap,
body:not(.landing) .content .form-card,
body:not(.landing) .content .panel {
    background: linear-gradient(145deg,#111a2a,#0b1220) !important;
    color: #e8eef7 !important;
    border-color: #22314a !important;
    box-shadow: 0 18px 55px rgba(0,0,0,.25) !important;
}

body:not(.landing) .content .card h1,
body:not(.landing) .content .card h2,
body:not(.landing) .content .card h3,
body:not(.landing) .content .card h4,
body:not(.landing) .content .card p,
body:not(.landing) .content .card label,
body:not(.landing) .content .card span,
body:not(.landing) .content .card small,
body:not(.landing) .content .card strong,
body:not(.landing) .content .card td,
body:not(.landing) .content .card th,
body:not(.landing) .content .card li {
    color: #dbe6f5 !important;
}

body:not(.landing) .content .card h1,
body:not(.landing) .content .card h2,
body:not(.landing) .content .card h3,
body:not(.landing) .content .card h4,
body:not(.landing) .content .card strong {
    color: #f5f8fc !important;
}

body:not(.landing) .content .card p,
body:not(.landing) .content .card small,
body:not(.landing) .content .card .muted,
body:not(.landing) .content .card .hint {
    color: #8fa2bb !important;
}

/* Semua tabel */
body:not(.landing) .content .card table,
body:not(.landing) .content .card table thead,
body:not(.landing) .content .card table thead tr,
body:not(.landing) .content .card table thead th,
body:not(.landing) .content .card table tbody,
body:not(.landing) .content .card table tbody tr,
body:not(.landing) .content .card table tbody td {
    background: #0b1220 !important;
    color: #dbe6f5 !important;
}

body:not(.landing) .content .card table thead,
body:not(.landing) .content .card table thead tr,
body:not(.landing) .content .card table thead th {
    background: #111c2e !important;
    color: #8fa4bd !important;
}

body:not(.landing) .content .card table th,
body:not(.landing) .content .card table td {
    border-bottom: 1px solid #1e2c42 !important;
}

body:not(.landing) .content .card table tbody tr:hover,
body:not(.landing) .content .card table tbody tr:hover td {
    background: #142238 !important;
    color: #ffffff !important;
}

/* Input/select/form dark */
body:not(.landing) .content .card input,
body:not(.landing) .content .card select,
body:not(.landing) .content .card textarea {
    background: #080f1a !important;
    color: #edf3ff !important;
    border: 1px solid #2a3b55 !important;
}

body:not(.landing) .content .card input::placeholder,
body:not(.landing) .content .card textarea::placeholder {
    color: #687991 !important;
}

body:not(.landing) .content .card input:focus,
body:not(.landing) .content .card select:focus,
body:not(.landing) .content .card textarea:focus {
    border-color: #6f5cff !important;
    box-shadow: 0 0 0 3px rgba(111,92,255,.14) !important;
    outline: none !important;
}

/* Tombol netral di kartu */
body:not(.landing) .content .card .btn-light {
    background: #17243a !important;
    color: #dbe6f5 !important;
    border: 1px solid #31445e !important;
}

body:not(.landing) .content .card .btn-light:hover {
    background: #20324d !important;
    color: #fff !important;
}

body:not(.landing) .content .card .btn-danger {
    background: #351d28 !important;
    color: #ff91a4 !important;
    border-color: #67303f !important;
}

/* Kartu jenis usaha */
body:not(.landing) .business-admin-card {
    background: linear-gradient(145deg,#111a2a,#0b1220) !important;
    border-color: #22314a !important;
    color: #e8eef7 !important;
}
body:not(.landing) .business-admin-card h3,
body:not(.landing) .business-admin-card strong { color:#f5f8fc !important; }
body:not(.landing) .business-admin-card p { color:#8194ad !important; }

/* Peta: area dan container gelap saat tile belum selesai */
body:not(.landing) .map,
body:not(.landing) .full-map,
body:not(.landing) .dashboard-map,
body:not(.landing) .picker-map,
body:not(.landing) .leaflet-container {
    background: #050a12 !important;
}

/* Paksa pane tile tidak menampilkan warna putih dari fallback */
body:not(.landing) .leaflet-tile-pane {
    background: #050a12 !important;
}

/* Popup Leaflet */
body:not(.landing) .leaflet-popup-content-wrapper,
body:not(.landing) .leaflet-popup-tip {
    background: #0d1727 !important;
    color: #eaf1f8 !important;
    border-color: #263a55 !important;
}
body:not(.landing) .leaflet-popup-content { color:#eaf1f8 !important; }

/* Mobile table text tetap terang */
@media (max-width:760px) {
    body:not(.landing) .content .card table th { color:#8fa4bd !important; }
    body:not(.landing) .content .card table td { color:#dbe6f5 !important; }
    body:not(.landing) .content .card table td strong { color:#f5f8fc !important; }
}

/* Shared dark form fields — matches the Salsabila login reference. */
body.auth-page form input:not([type="hidden"]),
body.auth-page form select,
body.auth-page form textarea {
    background: #070b12 !important;
    color: #ffffff !important;
    border-color: #263142 !important;
}
body.auth-page form input:not([type="hidden"])::placeholder,
body.auth-page form textarea::placeholder {
    color: #ffffff !important;
    opacity: .92 !important;
}
body.auth-page form input:not([type="hidden"]):focus,
body.auth-page form select:focus,
body.auth-page form textarea:focus {
    background: #070b12 !important;
    color: #ffffff !important;
    border-color: #7357ff !important;
    box-shadow: 0 0 0 3px rgba(115,87,255,.16) !important;
    outline: none !important;
}
body.landing .auth-modal-card input,
body.landing .auth-modal-card select,
body.landing .auth-modal-card textarea {
    background: #070b12 !important;
    color: #ffffff !important;
    border-color: #263142 !important;
}
body.landing .auth-modal-card input::placeholder,
body.landing .auth-modal-card textarea::placeholder {
    color: #ffffff !important;
    opacity: .92 !important;
}
body.landing .auth-modal-card input:focus,
body.landing .auth-modal-card select:focus,
body.landing .auth-modal-card textarea:focus {
    background: #070b12 !important;
    color: #ffffff !important;
    border-color: #7357ff !important;
    box-shadow: 0 0 0 3px rgba(115,87,255,.16) !important;
    outline: none !important;
}

/* =========================================================
   SASSABILA FORM STANDARD - FINAL
   Dark fields match the login reference on every admin form.
========================================================= */
body:not(.landing) .content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body:not(.landing) .content form select,
body:not(.landing) .content form textarea {
    background: #070b12 !important;
    color: #ffffff !important;
    border: 1px solid #263142 !important;
    -webkit-text-fill-color: #ffffff !important;
    outline: none;
}

body:not(.landing) .content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"])::placeholder,
body:not(.landing) .content form textarea::placeholder {
    color: #ffffff !important;
    opacity: .92 !important;
}

body:not(.landing) .content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,
body:not(.landing) .content form select:focus,
body:not(.landing) .content form textarea:focus {
    background: #070b12 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: #7357ff !important;
    box-shadow: 0 0 0 3px rgba(115,87,255,.16) !important;
}

body:not(.landing) .content form select option {
    background: #070b12 !important;
    color: #ffffff !important;
}

/* Form labels and field groups */
body:not(.landing) .content form label {
    color: #dbe5f2 !important;
}
body:not(.landing) .content form .criterion-input,
body:not(.landing) .content form .check-chip {
    color: #dbe5f2 !important;
}

/* Kembali = primary button; Batal = red button. They are intentionally different. */
body:not(.landing) .content > .page-heading > .btn.btn-light {
    background: linear-gradient(135deg,#7357ff,#4f8cff) !important;
    color: #ffffff !important;
    border: 1px solid rgba(115,87,255,.55) !important;
    box-shadow: 0 10px 28px rgba(92,78,220,.22) !important;
}

body:not(.landing) .content form .form-actions .btn.btn-light {
    background: #351d28 !important;
    color: #ff91a4 !important;
    border: 1px solid #67303f !important;
}

body:not(.landing) .content form .form-actions .btn.btn-light:hover {
    background: #472330 !important;
    color: #ffb1bf !important;
}

body:not(.landing) .content form .form-actions {
    margin-top: 22px !important;
    padding-top: 0 !important;
    gap: 10px !important;
}

/* Criteria table readability */
body:not(.landing) .criteria-page-card .criteria-table td {
    color: #ffffff !important;
}
body:not(.landing) .criteria-page-card .criteria-table .code-badge,
body:not(.landing) .criteria-page-card .criteria-table .badge-benefit,
body:not(.landing) .criteria-page-card .criteria-table .badge-cost {
    background: #17243a !important;
    color: #ffffff !important;
    border: 1px solid #31445e !important;
}
body:not(.landing) .criteria-page-card .criteria-table td strong {
    color: #ffffff !important;
}
body:not(.landing) .criteria-page-card .criteria-table .btn-light {
    background: #17243a !important;
    color: #ffffff !important;
    border-color: #31445e !important;
}
body:not(.landing) .criteria-page-card .criteria-table .btn-danger {
    background: #351d28 !important;
    color: #ff91a4 !important;
    border-color: #67303f !important;
}

/* Mobile: never let forms or action groups overflow the viewport. */
@media (max-width: 760px) {
    body:not(.landing) .content form,
    body:not(.landing) .content form .card,
    body:not(.landing) .content .form-grid,
    body:not(.landing) .content .coordinate-grid,
    body:not(.landing) .content .criteria-input-grid {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    body:not(.landing) .content form input:not([type="hidden"]),
    body:not(.landing) .content form select,
    body:not(.landing) .content form textarea {
        width: 100% !important;
        max-width: 100% !important;
    }

    body:not(.landing) .content .page-heading > .btn {
        width: 100% !important;
    }

    body:not(.landing) .content form .form-actions {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        width: 100%;
    }

    body:not(.landing) .content form .form-actions .btn {
        width: 100% !important;
        min-width: 0 !important;
    }

    body:not(.landing) .content .business-admin-actions {
        display: grid !important;
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
        width: 100%;
    }

    body:not(.landing) .content .business-admin-actions form,
    body:not(.landing) .content .business-admin-actions .btn {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 480px) {
    body:not(.landing) .content form .form-actions {
        grid-template-columns: 1fr !important;
    }

    body:not(.landing) .content .business-admin-actions {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   FINAL CONSISTENCY PASS - DARK FORMS, DETAILS, TABLES, LOGOUT
   ========================================================= */

/* The admin form fields must match the near-black login reference,
   including fields nested inside ordinary cards. */
body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) select,
body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) textarea,
body:not(.landing) .content form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body:not(.landing) .content form select,
body:not(.landing) .content form textarea {
    background-color: #070b12 !important;
    background-image: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1px solid #263142 !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) input:not([type="hidden"])::placeholder,
body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) textarea::placeholder,
body:not(.landing) .content form input:not([type="hidden"])::placeholder,
body:not(.landing) .content form textarea::placeholder {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: .92 !important;
}

body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) input:focus,
body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) select:focus,
body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) textarea:focus,
body:not(.landing) .content form input:focus,
body:not(.landing) .content form select:focus,
body:not(.landing) .content form textarea:focus {
    background-color: #070b12 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: #7357ff !important;
    box-shadow: 0 0 0 3px rgba(115,87,255,.16) !important;
    outline: none !important;
}

body:not(.landing) .content .card:not(.modern-card):not(.modern-search):not(.modern-info) select option,
body:not(.landing) .content form select option,
body:not(.landing) .business-select select option {
    background: #070b12 !important;
    color: #ffffff !important;
}

/* Kembali is the primary action; Batal is explicitly red. */
body:not(.landing) .content .page-heading > .btn.btn-light {
    background: linear-gradient(135deg,#7357ff,#4f8cff) !important;
    color: #ffffff !important;
    border-color: rgba(115,87,255,.55) !important;
}
body:not(.landing) .content .form-actions .btn.btn-light {
    background: #351d28 !important;
    color: #ff91a4 !important;
    border-color: #67303f !important;
}
body:not(.landing) .content .form-actions .btn.btn-light:hover {
    background: #482331 !important;
    color: #ffffff !important;
}
body:not(.landing) .content .form-actions {
    margin-top: 22px !important;
    gap: 10px !important;
}

/* User role badges: dark badge + white text. */
body:not(.landing) .content .badge-admin,
body:not(.landing) .content .badge-user {
    background: #070b12 !important;
    color: #ffffff !important;
    border: 1px solid #344258 !important;
    box-shadow: none !important;
}

/* TOPSIS C3 values: only the C3 body column, not the header. */
body:not(.landing) .content table.matrix-table td:nth-child(4) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body:not(.landing) .content table.matrix-table td:nth-child(4) strong {
    color: #ffffff !important;
}

/* Make the sidebar logout a real button. */
body:not(.landing) .sidebar .logout-link {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 44px !important;
    margin: 8px 0 10px !important;
    padding: 10px 12px !important;
    border: 1px solid #5a2c3a !important;
    border-radius: 12px !important;
    background: #24131b !important;
    color: #ff91a4 !important;
    box-sizing: border-box !important;
}
body:not(.landing) .sidebar .logout-link:hover {
    background: #351d28 !important;
    border-color: #7a3d4d !important;
    color: #ffffff !important;
}

/* Detail page: remove the remaining white info/criteria surfaces. */
body:not(.landing) .content .detail-main,
body:not(.landing) .content .detail-grid > .card.detail-main {
    background: linear-gradient(145deg,#101a2a,#0b1220) !important;
    border-color: #263853 !important;
    color: #eaf1f8 !important;
}
body:not(.landing) .content .detail-main .detail-hero h2,
body:not(.landing) .content .detail-main .detail-hero p,
body:not(.landing) .content .detail-main .detail-info strong,
body:not(.landing) .content .detail-main .detail-info small {
    color: #ffffff !important;
}
body:not(.landing) .content .detail-main .detail-info > div,
body:not(.landing) .content .criteria-detail-grid > div {
    background: #070b12 !important;
    border: 1px solid #263142 !important;
    color: #ffffff !important;
}
body:not(.landing) .content .criteria-detail-grid span,
body:not(.landing) .content .criteria-detail-grid small,
body:not(.landing) .content .criteria-detail-grid strong,
body:not(.landing) .content .criteria-detail-grid em {
    color: #ffffff !important;
}
body:not(.landing) .content .detail-map {
    background: #050a12 !important;
    border: 1px solid #263853 !important;
}
body:not(.landing) .content .location-symbol {
    background: #172033 !important;
    color: #b7a9ff !important;
    border: 1px solid #344258 !important;
}

/* Detail score card stays dark and readable. */
body:not(.landing) .content .score-card {
    background: linear-gradient(145deg,#101a2a,#0b1220) !important;
    border-color: #263853 !important;
}

/* General responsive hardening for every admin page. */
body:not(.landing) {
    overflow-x: hidden;
}
body:not(.landing) .main-area,
body:not(.landing) .content,
body:not(.landing) .card,
body:not(.landing) section.card,
body:not(.landing) form {
    min-width: 0 !important;
}
body:not(.landing) .content img,
body:not(.landing) .content iframe,
body:not(.landing) .content canvas,
body:not(.landing) .content svg {
    max-width: 100%;
}

@media (max-width: 1050px) {
    body:not(.landing) .content {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
    body:not(.landing) .detail-grid,
    body:not(.landing) .user-grid,
    body:not(.landing) .dashboard-grid {
        grid-template-columns: minmax(0,1fr) !important;
    }
    body:not(.landing) .criteria-detail-grid {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }
    body:not(.landing) .detail-info {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
}

@media (max-width: 760px) {
    body:not(.landing) .content {
        padding-left: 14px !important;
        padding-right: 14px !important;
        overflow-x: hidden !important;
    }
    body:not(.landing) .content .detail-grid,
    body:not(.landing) .content .detail-info,
    body:not(.landing) .content .form-grid,
    body:not(.landing) .content .coordinate-grid,
    body:not(.landing) .content .criteria-input-grid,
    body:not(.landing) .content .business-admin-grid,
    body:not(.landing) .content .stat-grid,
    body:not(.landing) .content .info-strip {
        grid-template-columns: minmax(0,1fr) !important;
    }
    body:not(.landing) .content .criteria-detail-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    body:not(.landing) .content .detail-map,
    body:not(.landing) .content .picker-map,
    body:not(.landing) .content .dashboard-map,
    body:not(.landing) .content .full-map {
        width: 100% !important;
        height: 320px !important;
        max-width: 100% !important;
    }
    body:not(.landing) .content .table-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
    body:not(.landing) .content table {
        width: max-content !important;
        min-width: 680px !important;
        max-width: none !important;
    }
    body:not(.landing) .content .page-heading {
        align-items: stretch !important;
    }
    body:not(.landing) .content .page-heading > .btn {
        width: 100% !important;
    }
    body:not(.landing) .content .business-select {
        min-width: 0 !important;
        width: 100% !important;
        flex-direction: column !important;
    }
    body:not(.landing) .content .business-select .btn,
    body:not(.landing) .content .business-select select {
        width: 100% !important;
    }
    body:not(.landing) .content .form-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
        margin-top: 22px !important;
    }
    body:not(.landing) .content .form-actions .btn {
        width: 100% !important;
    }
    body:not(.landing) .sidebar .logout-link {
        margin-top: 8px !important;
    }
}

@media (max-width: 480px) {
    body:not(.landing) .content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    body:not(.landing) .content .card,
    body:not(.landing) .content section.card {
        padding: 14px !important;
        border-radius: 16px !important;
    }
    body:not(.landing) .content .criteria-detail-grid {
        grid-template-columns: 1fr !important;
    }
    body:not(.landing) .content .detail-map,
    body:not(.landing) .content .picker-map,
    body:not(.landing) .content .dashboard-map,
    body:not(.landing) .content .full-map {
        height: 290px !important;
    }
}
