:root{--dw-navy:#0d2748;--dw-teal:#078486;--dw-line:#dce5ec;--dw-soft:#f4f7f9;--dw-muted:#67798d;--dw-red:#b63b36}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#eef3f6;color:#14243d;font-family:"Source Sans 3",sans-serif}.dw-loading{min-height:100vh;display:grid;place-items:center;font-weight:800}.dw-app{min-height:100vh;display:grid;grid-template-rows:56px 1fr}.dw-top{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--dw-navy);color:#fff;padding:0 16px;position:sticky;top:0;z-index:40}.dw-brand,.dw-top-actions{display:flex;align-items:center;gap:9px}.dw-brand i{width:32px;height:32px;border-radius:10px;background:var(--dw-teal);display:grid;place-items:center}.dw-brand b{font:800 15px "Plus Jakarta Sans"}.dw-plan{border-radius:999px;background:rgba(255,255,255,.12);padding:5px 9px;font:800 10px "Plus Jakarta Sans";letter-spacing:.08em;text-transform:uppercase}.dw-top button,.dw-top a{border:0;border-radius:8px;background:transparent;color:#d4e0eb;text-decoration:none;padding:8px 10px;font-weight:800;cursor:pointer}.dw-top button:hover,.dw-top a:hover{background:rgba(255,255,255,.1);color:#fff}.dw-body{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 56px)}.dw-side{background:#fff;border-right:1px solid var(--dw-line);padding:16px;overflow:auto}.dw-side span,.dw-eyebrow{font:800 10px "Plus Jakarta Sans";letter-spacing:.12em;color:var(--dw-teal)}.dw-side h2{font:800 19px "Plus Jakarta Sans";margin:6px 0 4px}.dw-side p{margin:0 0 14px;color:var(--dw-muted);font-size:12px}.dw-source-list,.dw-view-list{display:grid;gap:6px}.dw-side button{width:100%;text-align:left;border:1px solid transparent;border-radius:9px;background:transparent;padding:9px 10px;color:#263a50;font-weight:700;cursor:pointer}.dw-side button:hover,.dw-side button.on{background:#eef8f7;border-color:#d7ece9;color:#086f70}.dw-side hr{border:0;border-top:1px solid var(--dw-line);margin:16px 0}.dw-main{min-width:0;display:flex;flex-direction:column;background:#fff}.dw-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--dw-line);background:#fbfcfd}.dw-toolbar button,.dw-toolbar select,.dw-toolbar input{min-height:38px;border:1px solid #cfd9e2;border-radius:8px;background:#fff;padding:7px 10px;font:700 12px "Source Sans 3"}.dw-toolbar button{cursor:pointer}.dw-toolbar button.primary{background:var(--dw-teal);border-color:var(--dw-teal);color:#fff}.dw-toolbar button:disabled{opacity:.45;cursor:not-allowed}.dw-toolbar .grow{flex:1;min-width:180px}.dw-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#f7fafb;border-bottom:1px solid var(--dw-line);font-size:12px;color:var(--dw-muted)}.dw-summary b{color:#14243d}.dw-grid-wrap{overflow:auto;flex:1}.dw-grid{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content}.dw-grid th,.dw-grid td{border-right:1px solid #e6edf2;border-bottom:1px solid #e6edf2;padding:8px 10px;white-space:nowrap;font-size:12px;max-width:280px;overflow:hidden;text-overflow:ellipsis}.dw-grid th{position:sticky;top:0;z-index:4;background:#eef3f7;text-align:left;font:800 11px "Plus Jakarta Sans";color:#344a61;user-select:none}.dw-grid th[data-sort]{cursor:pointer}.dw-grid th.dragging{opacity:.4}.dw-grid tbody tr:hover td{background:#f7fbfb}.dw-grid td.num{text-align:right;font-variant-numeric:tabular-nums}.dw-grid .select-col{position:sticky;left:0;z-index:5;background:#fff;width:42px;text-align:center}.dw-grid th.select-col{background:#eef3f7}.dw-grid td.address{font-weight:800;color:#0e2248}.dw-flood{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 7px;font-weight:800}.dw-flood.high{background:#fdecea;color:#a22d28}.dw-flood.moderate{background:#fff4d7;color:#8a6500}.dw-flood.minimal{background:#e9f6ef;color:#286a45}.dw-flood.unknown{background:#eef2f5;color:#63788b}.dw-actionbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--dw-line);background:#fff}.dw-actionbar span{font-size:12px;color:var(--dw-muted);margin-right:auto}.dw-menu{position:relative}.dw-menu-pop{position:absolute;bottom:44px;right:0;min-width:210px;background:#fff;border:1px solid var(--dw-line);border-radius:12px;box-shadow:0 18px 45px rgba(13,39,72,.18);padding:7px;z-index:20}.dw-menu-pop button{display:block;width:100%;text-align:left;border:0;background:#fff;border-radius:7px;padding:9px;cursor:pointer;font-weight:700}.dw-menu-pop button:hover{background:#f2f6f8}.dw-empty{padding:50px;text-align:center;color:var(--dw-muted)}.dw-field-panel{position:fixed;right:0;top:56px;bottom:0;width:min(390px,92vw);background:#fff;border-left:1px solid var(--dw-line);box-shadow:-20px 0 50px rgba(13,39,72,.13);z-index:30;padding:18px;overflow:auto}.dw-field-panel header{display:flex;justify-content:space-between;gap:12px}.dw-field-panel h3{margin:4px 0;font:800 20px "Plus Jakarta Sans"}.dw-field-panel input[type=search]{width:100%;height:40px;border:1px solid #ccd7e0;border-radius:8px;padding:0 10px;margin:12px 0}.dw-fields{display:grid;gap:5px}.dw-field{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:8px}.dw-field:hover{background:#f5f8fa}.dw-field b,.dw-field small{display:block}.dw-field small{color:var(--dw-muted)}.dw-field.locked{opacity:.5}.dw-modal{position:fixed;inset:0;background:rgba(8,25,45,.5);z-index:60;display:grid;place-items:center;padding:20px}.dw-modal-card{width:min(620px,100%);background:#fff;border-radius:18px;padding:22px;box-shadow:0 28px 70px rgba(0,0,0,.2)}.dw-modal-card h2{margin:4px 0 8px;font:800 22px "Plus Jakarta Sans"}.dw-modal-card p{color:var(--dw-muted)}.dw-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.dw-modal-actions button{border:1px solid #cdd8e1;border-radius:8px;background:#fff;padding:9px 13px;font-weight:800;cursor:pointer}.dw-modal-actions .primary{background:var(--dw-teal);color:#fff;border-color:var(--dw-teal)}@media(max-width:850px){.dw-body{grid-template-columns:1fr}.dw-side{display:none}.dw-top .dw-plan{display:none}.dw-toolbar{position:sticky;top:56px;z-index:15}.dw-grid th,.dw-grid td{padding:8px}.dw-actionbar{position:sticky;bottom:0;z-index:18}}