@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#08794d;--green2:#0d9861;--green-soft:#e7f5ee;--navy:#142b48;--ink:#202d3b;--muted:#758293;--line:#e4e9ee;--canvas:#f4f7f6;--white:#fff;--red:#d83a3a;--amber:#e9a23b;--shadow:0 8px 30px rgba(24,43,57,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px 'DM Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a4d8bf;outline-offset:1px}[hidden]{display:none!important}.offline-banner{position:sticky;top:0;z-index:1000;background:#fff4d8;color:#765212;text-align:center;padding:9px 12px;font-size:12px;border-bottom:1px solid #f0dca6}.status-dot{display:inline-block;width:7px;height:7px;background:#d99a1d;border-radius:50%;margin-right:7px}
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);background:#fff}.login-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:7vw;color:#fff;background:linear-gradient(145deg,rgba(8,50,44,.94),rgba(8,121,77,.88)),url('/assets/jdpc-logo.jpg?v=3') center/cover}.login-brand:after{content:"";position:absolute;width:470px;height:470px;border:1px solid rgba(255,255,255,.15);border-radius:50%;right:-150px;bottom:-200px;box-shadow:0 0 0 36px rgba(255,255,255,.04),0 0 0 80px rgba(255,255,255,.03)}.login-logo{width:90px;height:90px;object-fit:contain;background:white;border-radius:50%;padding:4px;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#bdebd3;margin:0 0 12px}.login-brand h1{font:800 clamp(26px,3vw,42px) Manrope,sans-serif;line-height:1.16;max-width:700px;margin:0 0 18px}.login-brand h2{font:600 clamp(17px,2vw,23px) Manrope,sans-serif;line-height:1.45;max-width:650px;margin:0;color:#d8f5e5}.login-note{line-height:1.7;color:#e2f1e9;max-width:490px;margin-top:28px}.login-foot{position:absolute;bottom:34px;left:7vw;font-size:12px;color:#d2eadc}.login-card{width:min(430px,calc(100% - 40px));align-self:center;justify-self:center;padding:32px 0}.brand-mini{display:flex;align-items:center;gap:12px;margin-bottom:40px;color:var(--green);font:800 17px Manrope}.brand-mini img{width:45px;height:45px;object-fit:contain}.brand-mini small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.4px;margin-top:3px}.login-card h2{font:800 28px Manrope;margin:0 0 8px}.muted{color:var(--muted)}.login-card label,.form-field{display:flex;flex-direction:column;gap:8px;color:#435063;font-size:12px;font-weight:700;margin:20px 0}.login-card input,.form-field input,.form-field select,.form-field textarea,.search-box input{width:100%;border:1px solid #dce3e9;border-radius:8px;background:#fff;padding:12px;color:var(--ink);min-height:43px}.login-card input:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#5bb78a;outline:3px solid #e1f5e9}.login-help{font-size:11px;line-height:1.6;color:var(--muted);margin:17px 0}.form-message{min-height:18px;color:var(--red);font-size:12px}.btn{border:0;border-radius:8px;padding:10px 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:38px;transition:.15s}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn.primary{background:var(--green);color:#fff}.btn.secondary{background:#edf2f4;color:#344458}.btn.outline{background:white;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:#fff0ef;color:#b82e2e}.btn.small{min-height:30px;padding:6px 10px;font-size:12px}.btn.full{width:100%}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:254px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:50}.side-brand{height:78px;display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line)}.side-brand img{width:42px;height:42px;object-fit:contain}.side-brand b,.side-brand small{display:block}.side-brand b{font:800 13px Manrope;color:var(--navy)}.side-brand small{font-size:9px;letter-spacing:1px;color:var(--muted);margin-top:4px}.side-project{display:flex;align-items:center;gap:10px;margin:15px 13px;padding:13px 10px;background:#f0f8f3;border-radius:10px}.project-icon{display:grid;place-items:center;width:34px;height:34px;background:#d4efdf;border-radius:9px;color:var(--green);font-size:19px}.side-project b,.side-project small{display:block}.side-project b{font-size:11px}.side-project small{font-size:10px;color:var(--muted);margin-top:4px}.sidebar nav{overflow:auto;padding:0 12px 12px;flex:1}.nav-label{font-size:9px;letter-spacing:1.3px;color:#9aa5b1;font-weight:800;padding:18px 10px 7px}.nav-item{position:relative;width:100%;display:flex;align-items:center;gap:12px;padding:10px 11px;border:0;background:transparent;text-align:left;color:#637184;border-radius:8px;font-size:12px;font-weight:600;margin:2px 0}.nav-item span{width:18px;text-align:center;font-size:16px}.nav-item:hover{background:#f5f8f7;color:var(--green)}.nav-item.active{background:var(--green-soft);color:var(--green);font-weight:800}.nav-count{margin-left:auto;font-style:normal;font-size:10px;background:#d6f0e1;padding:2px 6px;border-radius:8px}.side-bottom{padding:12px;border-top:1px solid var(--line)}.sync-state{display:flex;gap:10px;align-items:center;padding:5px 4px 12px}.sync-indicator{width:9px;height:9px;border-radius:50%;background:#26a269;box-shadow:0 0 0 4px #e0f5e9}.sync-indicator.pending{background:#d99a1d;box-shadow:0 0 0 4px #fff0d0}.sync-indicator.error{background:#d83a3a;box-shadow:0 0 0 4px #ffe4e1}.sync-state b,.sync-state small{display:block}.sync-state b{font-size:11px}.sync-state small{font-size:10px;color:var(--muted);margin-top:3px}.sync-btn{width:100%;background:#f0f4f4;color:#3d5c51;font-size:12px}
.main-area{margin-left:254px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:30}.breadcrumb{display:flex;align-items:center;gap:11px;font-size:12px}.breadcrumb span{color:#9aa5b1}.breadcrumb b{color:#c0c8d0}.breadcrumb strong{font-size:13px;color:var(--ink)}.top-actions{display:flex;align-items:center;gap:18px}.network-pill{font-size:11px;color:#24855a;background:#e8f7ee;border-radius:20px;padding:7px 10px;display:flex;align-items:center;gap:6px}.network-pill i{width:6px;height:6px;background:#25a66a;border-radius:50%}.network-pill.offline{background:#fff4d8;color:#8a6718}.network-pill.offline i{background:#d99a1d}.icon-btn{position:relative;border:0;background:transparent;color:#667587;font-size:18px;padding:7px;border-radius:7px}.icon-btn:hover{background:#f1f5f3}.icon-btn sup{position:absolute;top:0;right:0;font-size:9px;background:#df3d3d;color:white;border-radius:8px;padding:2px 4px}.user-menu{display:flex;align-items:center;gap:9px;position:relative}.avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#dcefe5;color:var(--green);font-weight:800;font-size:12px}.user-menu b,.user-menu small{display:block}.user-menu b{font-size:11px}.user-menu small{font-size:10px;color:var(--muted);margin-top:3px}.user-dropdown{position:absolute;right:0;top:48px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:9px;min-width:150px;padding:6px;z-index:100}.user-dropdown button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:10px;border-radius:6px;font-size:12px}.user-dropdown button:hover{background:#f1f6f3}.mobile-only{display:none}
.page-content{padding:25px 30px;flex:1;min-width:0}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-heading h1{font:800 23px Manrope;margin:0 0 6px;color:#1e2b38}.page-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}.eyebrow-green{font-size:10px;font-weight:800;letter-spacing:1.4px;color:var(--green);margin-bottom:8px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;box-shadow:0 2px 8px rgba(28,45,58,.02)}.metric-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.metric-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:#e5f6ec;color:var(--green);font-size:18px}.metric-icon.blue{background:#e8f2ff;color:#317bd2}.metric-icon.orange{background:#fff1de;color:#d88917}.metric-icon.red{background:#ffebea;color:#d84a45}.metric-card small{color:var(--muted);font-size:11px}.metric-value{font:800 27px Manrope;letter-spacing:-.8px}.metric-foot{font-size:10px;color:#7f8b99;margin-top:6px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:16px;margin-bottom:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0;box-shadow:0 2px 8px rgba(28,45,58,.02)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.panel-head h3{font:800 13px Manrope;margin:0}.panel-head p{font-size:10px;color:var(--muted);margin:5px 0 0}.text-link{border:0;background:transparent;color:var(--green);font-size:11px;font-weight:800}.chart-area{height:220px;display:flex;align-items:flex-end;gap:18px;padding:10px 5px 24px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 42px,#edf1f2 43px)}.chart-month{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;gap:5px;position:relative}.chart-month .bar{width:min(18px,38%);border-radius:4px 4px 0 0;min-height:3px}.bar.male{background:#2585e8}.bar.female{background:#29b879}.chart-month label{position:absolute;bottom:-21px;font-size:10px;color:#8591a0}.chart-legend{display:flex;justify-content:center;gap:18px;margin-top:14px;font-size:10px;color:#6f7b89}.chart-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:2px;background:#2585e8}.legend-dot.green{background:#29b879}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #f0f2f4}.activity-item:last-child{border:0}.activity-date{width:40px;height:42px;border-radius:8px;background:#f0f7f3;color:var(--green);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}.activity-date strong{font-size:15px}.activity-copy{min-width:0}.activity-copy b{font-size:11px;display:block;margin:2px 0 4px}.activity-copy small{font-size:10px;color:var(--muted);line-height:1.4}.table-panel{padding:0;overflow:hidden}.table-toolbar{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.table-toolbar h3{font:800 13px Manrope;margin:0}.toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-box{position:relative;min-width:210px}.search-box input{padding:9px 11px 9px 32px;min-height:35px;font-size:11px}.search-box:before{content:"⌕";position:absolute;left:11px;top:5px;color:#8b97a4;font-size:17px}.table-wrap{overflow:auto;width:100%}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}thead th{text-align:left;background:#f8fafb;color:#788697;font-size:10px;font-weight:800;padding:12px 14px;border-bottom:1px solid var(--line)}tbody td{padding:12px 14px;border-bottom:1px solid #eef1f3;color:#465366}tbody tr:hover{background:#fbfdfc}tbody tr:last-child td{border-bottom:0}.status{display:inline-flex;align-items:center;border-radius:5px;padding:4px 8px;font-size:10px;font-weight:800;background:#e4f7eb;color:#208354}.status.pending{background:#fff2d9;color:#a66a00}.status.closed,.status.inactive{background:#edf0f3;color:#667384}.status.urgent{background:#ffebe8;color:#bc3731}.empty-state{text-align:center;padding:45px 20px;color:var(--muted);font-size:12px}.empty-state strong{display:block;color:var(--ink);font-size:14px;margin-bottom:7px}.app-footer{display:flex;justify-content:space-between;gap:12px;padding:15px 30px;border-top:1px solid var(--line);background:#fff;color:#9aa4af;font-size:10px}
.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.filters input,.filters select{border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:white;min-height:36px;color:#526072;font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.form-field{margin:8px 0 14px}.form-field.full-width{grid-column:1/-1}.form-field textarea{min-height:84px;resize:vertical}.form-field small{font-weight:400;color:var(--muted);line-height:1.5}.modal-backdrop{position:fixed;inset:0;background:rgba(14,30,42,.45);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#fff;border-radius:14px;width:min(760px,100%);max-height:min(90vh,900px);overflow:auto;box-shadow:0 20px 80px rgba(0,0,0,.2)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 23px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{font:800 18px Manrope;margin:0 0 5px}.modal-head p{font-size:11px;color:var(--muted);margin:0}.modal-body{padding:14px 23px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 23px;background:#fafcfc;border-top:1px solid var(--line);position:sticky;bottom:0}.toast-root{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;gap:8px}.toast{background:#173b2b;color:#fff;padding:13px 16px;border-radius:9px;box-shadow:var(--shadow);max-width:360px;font-size:12px}.toast.error{background:#8e2c2c}.toast.warn{background:#7d5a13}.report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.report-card{border:1px solid var(--line);border-radius:10px;padding:16px;background:#fff}.report-card b{display:block;font:800 22px Manrope;margin:9px 0}.report-card span{font-size:11px;color:var(--muted)}.settings-layout{display:grid;grid-template-columns:210px 1fr;gap:15px}.settings-menu{display:flex;flex-direction:column;gap:4px}.settings-menu button{border:0;text-align:left;padding:12px;background:transparent;border-radius:7px;color:#657386;font-size:12px}.settings-menu button.active{background:#e7f5ee;color:var(--green);font-weight:800}.info-box{padding:14px;border-radius:9px;background:#f0f7f3;color:#4b6859;font-size:12px;line-height:1.6}.sync-card{display:flex;align-items:center;gap:12px;padding:14px;background:#f7faf8;border:1px solid var(--line);border-radius:10px}.sync-card .metric-icon{flex-shrink:0}.sync-card b{display:block;font-size:12px}.sync-card p{font-size:11px;color:var(--muted);margin:4px 0 0}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.help-tile{padding:18px;border:1px solid var(--line);border-radius:10px}.help-tile b{display:block;margin:8px 0}.help-tile p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}
@media(max-width:1200px){.sidebar{width:230px}.main-area{margin-left:230px}.page-content{padding:22px}.topbar{padding:0 22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.chart-area{height:190px}}
@media(max-width:760px){.login-screen{grid-template-columns:1fr;background:#fff}.login-brand{padding:28px 25px 30px;min-height:270px}.login-logo{width:58px;height:58px;margin-bottom:17px}.login-brand h1{font-size:25px}.login-brand h2{font-size:16px}.login-note{margin-top:13px;font-size:12px}.login-foot{position:static;margin-top:20px}.login-card{padding:28px 0 34px}.sidebar{transform:translateX(-102%);transition:transform .2s;box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:15px 0 50px rgba(0,0,0,.16)}.main-area{margin-left:0}.topbar{height:64px;padding:0 14px}.mobile-only{display:inline-block}.breadcrumb{gap:7px}.breadcrumb span,.breadcrumb b{display:none}.top-actions{gap:5px}.network-pill{font-size:0;padding:8px}.network-pill i{width:8px;height:8px}.user-menu>div:nth-child(2){display:none}.page-content{padding:18px 13px}.page-heading{display:block}.page-heading h1{font-size:21px}.heading-actions{margin-top:14px}.metric-grid{gap:9px}.metric-card{padding:12px}.metric-value{font-size:23px}.metric-top{margin-bottom:9px}.metric-icon{width:31px;height:31px}.metric-foot{font-size:9px}.dashboard-grid{gap:12px}.panel{padding:14px}.table-toolbar{padding:13px}.search-box{min-width:170px;flex:1}.app-footer{padding:13px;display:block;line-height:1.8}.form-grid{grid-template-columns:1fr}.form-field.full-width{grid-column:auto}.report-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:1fr}.settings-menu{flex-direction:row;overflow:auto}.settings-menu button{white-space:nowrap}.help-grid{grid-template-columns:1fr}.modal-backdrop{padding:8px}.modal-head,.modal-body{padding-left:15px;padding-right:15px}.modal-foot{padding:12px 15px}.table-wrap table{min-width:720px}}
@media print{.sidebar,.topbar,.app-footer,.heading-actions,.table-toolbar .toolbar-right,.btn,.offline-banner{display:none!important}.main-area{margin:0}.page-content{padding:0}.panel,.metric-card{box-shadow:none;break-inside:avoid}body{background:#fff}}

.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:15px}
.quick-tile{position:relative;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-height:125px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:15px;color:var(--ink)}
.quick-tile:hover{border-color:#9ed7b8;background:#fbfefc}
.quick-tile>span{width:32px;height:32px;display:grid;place-items:center;background:var(--green-soft);border-radius:8px;color:var(--green);font-size:17px}
.quick-tile b{font-size:12px}
.quick-tile small{font-size:10px;color:var(--muted);line-height:1.45;padding-right:14px}
.quick-tile i{position:absolute;right:13px;bottom:13px;color:var(--green);font-style:normal}
.monitor-list{font-size:12px;color:#596779;line-height:1.9;padding-left:20px}
@media(max-width:760px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.quick-tile{min-height:130px;padding:12px}}

/* Field officer registration additions */
.notice-card{background:#fff8e7;border:1px solid #f0dfae;border-radius:12px;padding:14px 16px;color:#71521a;line-height:1.5}
.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{background:#f2f7f4;color:#355144;font-weight:700}.data-table tr:hover td{background:#fbfdfc}
.status-pill{display:inline-block;padding:4px 8px;border-radius:99px;background:#fff1cf;color:#76550d;font-size:11px;font-weight:700}
.form-actions{display:flex;gap:10px;align-items:center}.span-2{grid-column:1/-1}.btn.small{padding:6px 9px;font-size:12px}
@media(max-width:700px){.form-actions{flex-wrap:wrap}.data-table{min-width:760px}}


/* Resilience Measuring Tools module */
.resilience-panel{margin-top:1.2rem}
.resilience-form{display:grid;gap:1rem}
.resilience-section{border:1px solid var(--border,#dbe5e3);border-radius:14px;padding:1.1rem;background:var(--surface,#fff)}
.resilience-section h3{margin:0 0 .85rem;color:var(--green,#08784f);font-size:1.05rem}
.resilience-section .form-hint{font-size:.85rem;color:var(--muted,#657681);line-height:1.5;margin:.7rem 0 0}
.resilience-section .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}
.resilience-section .field{display:flex;flex-direction:column;gap:.35rem;min-width:0;margin:.2rem 0 .7rem}
.resilience-section .field>span{font-size:.86rem;font-weight:600}
.resilience-section .field input,.resilience-section .field select,.resilience-section .field textarea{width:100%;min-width:0;border:1px solid #d6e0e2;border-radius:8px;padding:.7rem .75rem;background:#fff;color:#183344;font:inherit}
.resilience-section .field.full{grid-column:1/-1}
.resilience-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;padding:.6rem 0}
.resilience-checks label{font-size:.9rem;display:flex;align-items:center;gap:.4rem}
.resilience-brs{display:grid;gap:.7rem}
.resilience-brs-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:1rem;align-items:center;padding:.75rem;border:1px solid #e4eceb;border-radius:10px}
.resilience-brs-row .field{margin:0}
.resilience-brs-row small{font-weight:400}
.resilience-score-preview{margin-top:1rem;padding:.9rem 1rem;background:#e8f5ee;border-radius:10px;color:#075d3d;font-weight:700}
.resilience-metrics{margin-bottom:1rem}
@media(max-width:760px){.resilience-section .form-grid{grid-template-columns:1fr}.resilience-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.resilience-brs-row{grid-template-columns:1fr}.resilience-section{padding:.8rem}}
