*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;font-family:Inter,system-ui,sans-serif;background:#f4f7fb;color:#172033}body{min-height:100vh}a{text-decoration:none;color:inherit}button,input,select,textarea{font-family:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:274px;background:linear-gradient(180deg,#0d2438 0%,#0b3138 58%,#0a3935 100%);color:#fff;padding:24px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20;box-shadow:10px 0 30px rgba(18,42,58,.08)}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand-mark,.logo-big{display:grid;place-items:center;background:linear-gradient(135deg,#18b49f,#42d2aa);color:#fff;font-weight:800;box-shadow:0 12px 28px rgba(24,180,159,.26)}.brand-mark{width:44px;height:44px;border-radius:14px;position:relative;overflow:hidden}.brand-mark:after{content:'';position:absolute;width:48px;height:13px;background:rgba(255,255,255,.18);transform:rotate(-35deg)}.brand small,.user-mini small{display:block;color:#a9c2cb;margin-top:3px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{padding:12px 13px;border-radius:12px;color:#cfe0e5;font-weight:650;font-size:14px;display:flex;gap:11px;align-items:center;transition:.2s}.sidebar nav a span{width:23px;text-align:center;font-size:17px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.11);color:#fff;transform:translateX(3px)}.sidebar-foot{margin-top:auto;padding-top:17px;border-top:1px solid rgba(255,255,255,.13)}.mini-status{display:flex;gap:8px;align-items:center;color:#acd5cd;font-size:11px;margin-bottom:13px}.mini-status i{width:8px;height:8px;border-radius:50%;background:#46daa6;box-shadow:0 0 0 5px rgba(70,218,166,.12);animation:pulse 2s infinite}.user-mini b{font-size:13px}.logout{display:inline-block;margin-top:12px;color:#ffc5c5;font-size:12px}.main{margin-left:274px;width:calc(100% - 274px);padding:28px 30px 50px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.topbar small{color:#7b899d}.topbar h1{margin:4px 0 0;font-size:29px;letter-spacing:-.03em}.top-chip{background:#e4f7f3;color:#08766a;padding:10px 14px;border-radius:999px;font-weight:750;font-size:11px;border:1px solid #cfede7}.panel,.kpi,.hero-status,.hotspot-hero{background:#fff;border:1px solid #e5ebf1;border-radius:18px;box-shadow:0 9px 34px rgba(20,46,72,.055)}.panel{padding:20px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:17px}.panel-head h2{margin:2px 0 5px;font-size:18px;letter-spacing:-.015em}.panel-head p{margin:0;color:#7a8799;font-size:12.5px;line-height:1.5}.section-kicker{font-size:10px;font-weight:800;letter-spacing:.13em;color:#139889}.hero-status{padding:22px 24px;display:flex;justify-content:space-between;align-items:stretch;gap:20px;margin-bottom:18px;overflow:hidden;position:relative}.hero-status:after{content:'';position:absolute;width:280px;height:280px;border-radius:50%;right:-120px;top:-150px;background:currentColor;opacity:.04}.hero-status-main{display:flex;gap:18px;align-items:center}.pulse-ring{width:16px;height:16px;border-radius:50%;flex:0 0 auto}.hero-status.green .pulse-ring{background:#1ca06d}.hero-status.yellow .pulse-ring{background:#d4ad00}.hero-status.orange .pulse-ring{background:#ef8b2c}.hero-status.red .pulse-ring{background:#d94141;animation:pulseStrong 1.5s infinite}.hero-status h2{font-size:27px;margin:5px 0 5px}.hero-status h2 em{font-size:12px;font-style:normal;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.8);margin-left:8px}.hero-status p{margin:0;color:#5d6a7c;font-size:12.5px}.hero-status.green{background:linear-gradient(120deg,#edf9f4,#fff);color:#147951}.hero-status.yellow{background:linear-gradient(120deg,#fff9df,#fff);color:#9c7c00}.hero-status.orange{background:linear-gradient(120deg,#fff0df,#fff);color:#b55d12}.hero-status.red{background:linear-gradient(120deg,#ffe8e8,#fff);color:#b52d38}.hero-hotspot{min-width:270px;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.06);border-radius:14px;padding:14px 16px;display:grid;gap:5px;position:relative;z-index:2;transition:.2s}.hero-hotspot:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(30,50,70,.08)}.hero-hotspot small{font-size:9px;letter-spacing:.1em}.hero-hotspot b{font-size:14px}.hero-hotspot span{font-size:11px;color:#66758a}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.kpi{padding:17px;display:flex;gap:13px;align-items:center;transition:.2s}.kpi:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(20,46,72,.09)}.kpi-icon{width:44px;height:44px;border-radius:13px;background:#edf8f6;color:#0d8477;display:grid;place-items:center;font-size:13px;font-weight:800}.kpi span,.kpi small{display:block;color:#7a8799}.kpi span{font-size:11px}.kpi strong{display:block;font-size:27px;margin:4px 0}.kpi small{font-size:10px}.disease-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.disease-card{border:1px solid #edf0f4;border-radius:16px;padding:15px;background:linear-gradient(160deg,#fff,#fbfcfd);transition:.22s}.disease-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px rgba(31,54,78,.08)}.disease-top{display:flex;justify-content:space-between;align-items:center}.disease-emoji{font-size:25px}.disease-card h3{font-size:13px;margin:12px 0 5px}.disease-number{font-size:31px;font-weight:800;letter-spacing:-.04em;margin-bottom:9px}.mini-metric{display:flex;justify-content:space-between;padding:5px 0;border-top:1px dashed #e8edf2;font-size:10.5px;color:#7b8798}.mini-metric b{color:#25354a}.badge{display:inline-block;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}.badge-dia{background:#e5f7ef;color:#087a53}.badge-den{background:#ffe8e8;color:#ad2d2d}.badge-cam{background:#fff2dd;color:#9d5a00}.badge-rab{background:#ede9ff;color:#5b44b6}.badge-ispa{background:#e7f0ff;color:#2d62ad}.badge-default{background:#eef1f5}.risk-dot{font-size:9px;font-weight:800;padding:5px 8px;border-radius:999px;white-space:nowrap}.risk-dot.green,.risk-legend .green{background:#e8f7ef;color:#118458}.risk-dot.yellow,.risk-legend .yellow{background:#fff6cf;color:#947300}.risk-dot.orange,.risk-legend .orange{background:#ffecd8;color:#b25a0d}.risk-dot.red,.risk-legend .red{background:#ffe1e1;color:#b62828}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.chart-panel canvas{max-height:270px}.priority-list{display:grid}.priority-item{display:grid;grid-template-columns:35px 1fr 44px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4;transition:.2s}.priority-item:hover{padding-left:5px}.priority-item .rank{font-weight:800;color:#a0abba}.priority-item b{font-size:12px}.priority-item small{display:block;color:#7c899b;margin-top:3px;font-size:10px}.score{display:inline-grid;place-items:center;min-width:38px;height:34px;border-radius:10px;font-weight:850;font-size:12px}.score.green{background:#e8f7ef;color:#118458}.score.yellow{background:#fff6cf;color:#947300}.score.orange{background:#ffecd8;color:#b25a0d}.score.red{background:#ffe1e1;color:#b62828}.workflow-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.workflow-cards div{border:1px solid #e8edf2;border-radius:14px;padding:14px;position:relative;background:#fbfcfe}.workflow-cards i{width:26px;height:26px;border-radius:8px;background:#e5f6f2;color:#0f7c70;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:11px;margin-bottom:10px}.workflow-cards b{font-size:12px;display:block}.workflow-cards span{font-size:10.5px;color:#7a8798;display:block;margin-top:5px;line-height:1.45}.btn{background:linear-gradient(135deg,#168579,#0b6f68);color:#fff;border:0;padding:10px 14px;border-radius:11px;font-weight:750;cursor:pointer;display:inline-block;font-size:12px;transition:.2s}.btn:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(17,123,112,.16)}.btn.ghost{background:#edf7f5;color:#126a62;box-shadow:none}.btn.subtle{background:#f3f5f8;color:#627187;box-shadow:none}.btn.tiny{padding:7px 10px;font-size:10px}.full-btn{width:100%;text-align:center;margin-top:12px}.text-link{color:#0b7d72;font-weight:700;font-size:11px}.two-col{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.filter-card{background:#f8fafc;border:1px solid #e8edf2;border-radius:13px;padding:11px;display:flex;align-items:end;gap:9px;margin-bottom:14px}.filter-card label{display:grid;gap:5px;font-size:10px;color:#68768a;min-width:160px}.filter-card select{width:100%;border:1px solid #dce2ea;border-radius:9px;padding:9px 10px;background:#fff}.table-wrap{overflow:auto;border:1px solid #edf0f4;border-radius:12px}table{width:100%;border-collapse:collapse;font-size:12px;background:#fff}th,td{text-align:left;padding:10px;border-bottom:1px solid #edf0f4;white-space:nowrap}th{color:#66758a;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;background:#fafbfd;position:sticky;top:0}.wrap-cell{white-space:normal;min-width:180px;max-width:280px}.row-hover{background:#f8fbfc}.status-pill{font-size:9px;background:#f0f3f7;color:#596a80;padding:5px 7px;border-radius:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid label{font-size:10.5px;font-weight:700;display:grid;gap:6px;color:#526178}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #dce3eb;border-radius:10px;padding:10px 11px;background:#fff;color:#172033}.form-grid .full{grid-column:1/-1}.form-grid.compact{padding-top:13px}.upload-box{border:2px dashed #cad8e2;border-radius:15px;padding:24px;display:grid;justify-items:center;text-align:center;gap:12px;background:#fbfdfd}.upload-icon{width:54px;height:54px;border-radius:17px;background:#e5f7f3;color:#118475;display:grid;place-items:center;font-size:25px}.privacy-note,.method-note{font-size:10.5px;line-height:1.5;color:#6e7c8e;background:#f7f9fb;border-radius:10px;padding:11px;margin-top:12px}.code-block{display:block;background:#142238;color:#d8e4f3;padding:14px;border-radius:10px;overflow:auto;margin-bottom:14px;font-size:11px}.help-card{display:grid;gap:5px;padding:13px;border:1px solid #e8edf2;border-radius:11px;margin-top:12px;font-size:11px}.help-card span{color:#6f7d8f}.alert{padding:12px 14px;border-radius:11px;margin-bottom:14px;font-size:12px}.alert.error{background:#ffe9e9;color:#a72d2d}.alert.success{background:#e8f8f0;color:#0d744b}.score-formula{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.score-formula div{padding:14px;border-radius:14px;background:#f8fafc;border:1px solid #e9edf2;display:flex;gap:10px;align-items:center}.score-formula b{font-size:23px;color:#118477}.score-formula span{font-size:10.5px;color:#657489}.risk-legend{display:flex;gap:8px;margin-top:12px}.risk-legend span{padding:7px 9px;border-radius:9px;font-size:9.5px;font-weight:800}.map-panel{overflow:visible}.map-controls{display:flex;gap:7px}.map-toggle{border:1px solid #dce5eb;background:#fff;color:#657489;padding:8px 10px;border-radius:9px;font-weight:700;font-size:10px;cursor:pointer}.map-toggle.active{background:#0f8075;color:#fff;border-color:#0f8075}.map-explain{display:flex;gap:13px;align-items:center;font-size:10px;color:#657489;margin-bottom:10px}.map-explain small{margin-left:auto}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}.dot.green{background:#1f9d72}.dot.yellow{background:#d6a700}.dot.orange{background:#e87921}.dot.red{background:#d83c4d}.map{height:520px;border-radius:14px;overflow:hidden}.map-large{height:600px}.popup-link{display:inline-block;margin-top:7px;color:#06796d;font-weight:800}.hotspot-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.hotspot-card{border:1px solid #e8edf2;border-radius:14px;padding:14px;transition:.2s}.hotspot-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,46,72,.08)}.hotspot-card>div:first-child{display:flex;justify-content:space-between;gap:7px}.hotspot-card h3{font-size:13px;margin:12px 0 5px}.hotspot-card p{font-size:10.5px;color:#748295;margin:0 0 12px}.card-score{display:flex;justify-content:space-between;border-top:1px dashed #e3e9ef;padding-top:9px;font-size:10px}.card-score b{font-size:13px}.hotspot-hero{padding:22px 24px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;border-left:6px solid}.hotspot-hero.green{border-color:#1f9d72}.hotspot-hero.yellow{border-color:#d6a700}.hotspot-hero.orange{border-color:#e87921}.hotspot-hero.red{border-color:#d83c4d}.hotspot-hero h2{margin:9px 0 4px;font-size:25px}.hotspot-hero p{margin:0;color:#66758a;font-size:11px}.risk-gauge{text-align:right}.risk-gauge small{display:block;font-size:9px;color:#768398}.risk-gauge b{font-size:42px;letter-spacing:-.05em}.risk-gauge span{font-size:11px;font-weight:700}.workflow-stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0 0 18px;background:#fff;border:1px solid #e5ebf1;border-radius:14px;padding:11px}.workflow-stepper div{display:flex;align-items:center;justify-content:center;gap:7px;color:#98a3b2;font-size:10px;font-weight:700;position:relative}.workflow-stepper div:not(:last-child):after{content:'→';position:absolute;right:-3px;color:#c8d0da}.workflow-stepper i{width:23px;height:23px;border-radius:50%;background:#edf0f4;display:grid;place-items:center;font-style:normal}.workflow-stepper .done{color:#108071}.workflow-stepper .done i{background:#dbf4ee}.workflow-stepper .current{color:#b35b0d}.workflow-stepper .current i{background:#ffecd8}.score-breakdown{display:grid;gap:10px}.score-breakdown div{display:grid;grid-template-columns:130px 1fr 50px;gap:10px;align-items:center;font-size:10.5px}.score-breakdown progress{width:100%;height:9px;border:0;border-radius:10px;overflow:hidden}.score-breakdown progress::-webkit-progress-bar{background:#edf1f5}.score-breakdown progress::-webkit-progress-value{background:linear-gradient(90deg,#1ca78f,#f0a33b)}.recommend-list{margin:0;padding-left:20px;display:grid;gap:10px}.recommend-list li{font-size:11px;line-height:1.5;color:#526176}.verification-last{background:#f8fafc;border:1px solid #e8edf2;padding:13px;border-radius:12px;margin-bottom:13px}.verification-last span,.verification-last small{display:block;color:#748294;font-size:9.5px}.verification-last b{display:block;margin:4px 0;font-size:13px}.verification-last p{margin:6px 0 0;font-size:10.5px;color:#59677b}.case-mini-list{display:grid;gap:7px;margin-bottom:11px}.case-mini-list div{border-bottom:1px solid #edf0f4;padding:7px 0}.case-mini-list b{font-size:10.5px}.case-mini-list span{font-size:9.5px;color:#778496;display:block;margin-top:3px}.monitor-guide{display:grid;gap:9px}.monitor-guide div{display:grid;grid-template-columns:28px 75px 1fr;gap:8px;align-items:center;border:1px solid #e8edf2;border-radius:11px;padding:10px}.monitor-guide i{width:25px;height:25px;border-radius:8px;background:#e6f6f2;color:#0e7b70;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:10px}.monitor-guide b{font-size:10.5px}.monitor-guide span{font-size:9.5px;color:#738196}.intervention-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.intervention-card{border:1px solid #e8edf2;border-radius:14px;padding:14px}.intervention-head{display:flex;justify-content:space-between;gap:12px}.intervention-head h3{font-size:13px;margin:8px 0 4px}.intervention-head p{margin:0;color:#758397;font-size:10px}.status-action{height:max-content;padding:6px 8px;border-radius:9px;font-size:9px;font-weight:800;background:#edf1f5}.status-berjalan{background:#fff0d8;color:#a85b0d}.status-selesai{background:#e5f6ef;color:#0f7d56}.status-dibatalkan{background:#ffe5e5;color:#a92b35}.intervention-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.intervention-meta span{background:#f8fafc;border-radius:9px;padding:8px;font-size:8.5px;color:#758397}.intervention-meta b{display:block;color:#26364b;margin-top:3px;font-size:10.5px}details{border-top:1px dashed #e3e8ee;padding-top:9px}summary{cursor:pointer;font-size:10px;color:#0c786e;font-weight:700}.login-page{min-height:100vh;background:radial-gradient(circle at 15% 15%,#174d58 0,#0d283c 38%,#091f32 100%);display:grid;place-items:center;padding:28px;position:relative;overflow:hidden}.login-bg-orb{position:fixed;border-radius:50%;filter:blur(2px);opacity:.15}.orb-one{width:420px;height:420px;background:#33d7b6;top:-210px;right:-100px;animation:float 8s ease-in-out infinite}.orb-two{width:280px;height:280px;background:#f4a23d;bottom:-150px;left:-90px;animation:float 10s ease-in-out infinite reverse}.login-shell{width:min(1080px,100%);display:grid;grid-template-columns:1.28fr .72fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 35px 100px rgba(0,0,0,.3);position:relative;z-index:2}.login-hero{background:linear-gradient(145deg,#0c3340,#0d5e5b);color:#fff;padding:44px 48px;position:relative;overflow:hidden}.login-hero:after{content:'';position:absolute;width:330px;height:330px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-170px;top:-120px}.hero-kicker{font-size:9px;letter-spacing:.13em;color:#aee5da;display:flex;gap:8px;align-items:center}.hero-kicker span{width:24px;height:2px;background:#48d4b8}.hero-title-row{display:flex;gap:16px;align-items:center;margin-top:24px}.logo-big{width:68px;height:68px;border-radius:20px;font-size:29px;flex:0 0 auto}.login-hero h1{font-size:43px;margin:0;letter-spacing:-.05em}.hero-subtitle{margin:3px 0 0;color:#a9d9d4;font-size:11px}.hero-copy{max-width:680px;line-height:1.65;color:#d7e9e9;font-size:12px;margin:18px 0}.disease-illustration{width:100%;max-width:620px;display:block;margin:12px 0;filter:drop-shadow(0 13px 20px rgba(0,0,0,.12));animation:float 7s ease-in-out infinite}.hero-flow{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:13px}.hero-flow span{padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.09);font-size:9px}.hero-flow b{color:#66dec9;font-size:10px}.tagline{margin-top:17px;font-weight:800;color:#70e5cf;font-size:12px}.login-card{padding:48px 40px;align-self:center}.login-icon{width:49px;height:49px;border-radius:16px;background:#e8f8f4;color:#108274;display:grid;place-items:center;font-size:23px;margin-bottom:17px}.login-card h2{font-size:26px;margin:0 0 6px}.login-card>p{color:#7a8798;margin:0 0 22px;font-size:11px;line-height:1.5}.login-card form{display:grid;gap:13px}.login-card label{display:grid;gap:6px;font-size:10.5px;font-weight:700;color:#526176}.login-card input{border:1px solid #dce3e9;border-radius:11px;padding:12px;background:#fbfcfd}.login-card button{margin-top:5px;background:linear-gradient(135deg,#128d7f,#086860);color:#fff;border:0;padding:12px;border-radius:11px;font-weight:800;cursor:pointer;display:flex;justify-content:space-between}.login-note{margin-top:14px;font-size:9.5px;color:#7c8999}.login-note span{color:#20aa83}@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(70,218,166,.12)}50%{box-shadow:0 0 0 8px rgba(70,218,166,.03)}}@keyframes pulseStrong{0%,100%{box-shadow:0 0 0 4px rgba(217,65,65,.12)}50%{box-shadow:0 0 0 12px rgba(217,65,65,.02)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-in{opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s ease}.animate-in.visible{opacity:1;transform:none}.delay-1{transition-delay:.07s}.delay-2{transition-delay:.14s}.delay-3{transition-delay:.21s}@media(max-width:1180px){.workflow-cards{grid-template-columns:repeat(3,1fr)}.disease-grid{grid-template-columns:repeat(3,1fr)}.hotspot-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:980px){.sidebar{width:232px}.main{margin-left:232px;width:calc(100% - 232px);padding:22px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.two-col{grid-template-columns:1fr}.score-formula{grid-template-columns:repeat(2,1fr)}.intervention-list{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-hero{padding:35px}.disease-illustration{max-width:520px}.login-card{padding:35px}}@media(max-width:720px){.sidebar{position:static;width:100%;min-height:auto}.app-shell{display:block}.main{margin:0;width:100%;padding:15px}.sidebar nav{grid-template-columns:1fr 1fr}.sidebar-foot{margin-top:18px}.topbar{align-items:flex-start;flex-direction:column}.top-chip{display:none}.hero-status{flex-direction:column}.hero-hotspot{min-width:0}.kpi-grid,.disease-grid,.hotspot-cards,.score-formula,.workflow-cards{grid-template-columns:1fr}.filter-card{display:grid}.filter-card label{min-width:0}.map-controls{flex-wrap:wrap}.map-explain{flex-wrap:wrap}.map-explain small{margin-left:0;width:100%}.map-large{height:510px}.workflow-stepper{grid-template-columns:1fr;gap:5px}.workflow-stepper div:not(:last-child):after{display:none}.intervention-meta{grid-template-columns:repeat(2,1fr)}.login-page{padding:12px}.login-hero,.login-card{padding:27px}.login-hero h1{font-size:34px}.hero-title-row{align-items:flex-start}.disease-illustration{margin:8px 0}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
