:root{font-family:system-ui,-apple-system,"Noto Sans Oriya",sans-serif;color:#172033;background:#f6f8fb;line-height:1.5}*{box-sizing:border-box}body{margin:0}.shell{max-width:72rem;margin:auto;padding:1rem}header{background:#173f73;color:white}header .shell{display:flex;justify-content:space-between;gap:1rem;align-items:center}nav{display:flex;gap:1rem;flex-wrap:wrap}header a{color:white}header a.nav-current{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.nav-user{opacity:.85;font-size:.9em}main{min-height:70vh}label{display:block;font-weight:650;margin-top:.75rem}input,select,button{font:inherit;padding:.65rem;border:1px solid #65758b;border-radius:.25rem}button{background:#0b5cab;color:white;border-color:#0b5cab;font-weight:700}.form-row{display:flex;gap:.5rem;flex-wrap:wrap}.notice,.result{margin-top:1rem;padding:1rem;border-left:.35rem solid #b26a00;background:white}dl{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr;gap:.5rem}dt{font-weight:700}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:.65rem;border:1px solid #c8d0dc}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;background:white;color:#111;padding:.5rem;z-index:10}:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}@media(max-width:40rem){header .shell{align-items:flex-start;flex-direction:column}dl{grid-template-columns:1fr}.form-row input{width:100%}}
.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;font-size:.8rem;font-weight:700;border-radius:999px;border:1px solid}
.badge-ok{background:#d1e7dd;color:#0f5132;border-color:#badbcc}
.badge-warn{background:#fff3cd;color:#664d03;border-color:#ffe69c}
.badge-bad{background:#f8d7da;color:#842029;border-color:#f5c2c7}
.badge-info{background:#e8f1fb;color:#0b5cab;border-color:#0b5cab}
.badge-mute{background:#eef1f5;color:#5b6b84;border-color:#c8d0dc}
.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;min-height:22rem;padding:2rem;border-radius:.35rem;border:1px dashed #e0c675;background:#fffdf6;color:#664d03;margin-top:1rem}
.map-placeholder h2{font-size:1.1rem;font-weight:700;margin:0;color:#664d03}
.map-placeholder p{margin:0;max-width:32rem;font-size:.9rem}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1rem}
.tile{border-radius:.5rem;padding:.9rem 1rem;border:1px solid #c8d0dc;background:white}
.tile .label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#5b6b84;margin-bottom:.4rem}
.tile .value{font-size:1.4rem;font-weight:700}
.tile .sublabel{font-size:.8rem;color:#5b6b84;margin-top:.2rem}
.dmap-page{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;padding:0 1.25rem;box-sizing:border-box}
.dmap-page-header{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin:.5rem 0}
.dmap-page-header h1{margin:0;font-size:1.15rem}
.dmap-back-link{font-size:.85rem;white-space:nowrap}
@media(max-width:40rem){.dmap-page{padding:0 .75rem}}
.directorate-map-layout{display:flex;gap:1rem;align-items:stretch;height:calc(100vh - 8rem);min-height:26rem}
.directorate-map-layout{height:calc(100dvh - 8rem)}
.directorate-map-sidebar{width:20rem;flex:none;background:white;border:1px solid #c8d0dc;border-radius:.5rem;padding:.75rem;overflow-y:auto;transition:width .2s ease,padding .2s ease}
.directorate-map-sidebar.dmap-collapsed{width:3.25rem;padding:.75rem .4rem;overflow:hidden}
.directorate-map-sidebar.dmap-collapsed #dmap-sidebar-body{display:none}
#dmap-sidebar-toggle{display:flex;align-items:center;gap:.35rem;width:100%;background:white;color:#172033;border-color:#c8d0dc;font-weight:600;font-size:.85rem;padding:.4rem .5rem;white-space:nowrap;overflow:hidden}
.directorate-map-sidebar fieldset{border:1px solid #c8d0dc;border-radius:.35rem;padding:.5rem .75rem;margin:.75rem 0 0}
.directorate-map-sidebar legend{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#5b6b84;padding:0 .3rem}
.directorate-map-sidebar label{display:block;font-weight:400;margin-top:.25rem;white-space:nowrap}
.directorate-map-sidebar select{margin-top:.25rem;width:100%}
.directorate-map-sidebar h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:#5b6b84;margin:1rem 0 .25rem}
.dmap-toolbar-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}
.dmap-toolbar-row button{font-size:.8rem;padding:.4rem .6rem;flex:1}
#dmap-print{margin-top:.75rem;width:100%}
#dmap-legend .dmap-legend-row{display:flex;align-items:center;gap:.4rem;padding:.2rem 0;font-size:.85rem}
#dmap-legend .dmap-legend-swatch{width:.7rem;height:.7rem;border-radius:50%;flex:none}
#dmap-legend .dmap-legend-count{margin-left:auto;color:#5b6b84}
.directorate-map-canvas-wrap{flex:1;min-width:0}
#dmap-print-report{display:none}
#dmap-print-report img{max-width:100%;border:1px solid #c8d0dc;margin-top:.75rem}
@media print{body>*:not(#dmap-print-report){display:none!important}#dmap-print-report{display:block!important}}
.table-toolbar{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.table-toolbar button{padding:.4rem .8rem;font-size:.85rem}
.table-toolbar [data-filter-summary]{font-size:.85rem;color:#5b6b84}
tr.filter-row th{background:#f6f8fb;padding:.35rem}
tr.filter-row select,tr.filter-row input{width:100%;min-width:5.5rem;padding:.3rem .4rem;font-size:.8rem;font-weight:400}
@media(max-width:48rem){.tiles{grid-template-columns:repeat(2,1fr)}}
.ddn-map{min-height:22rem;height:26rem;border-radius:.35rem;border:1px solid #c8d0dc;overflow:hidden;margin-top:1rem}
.directorate-map-canvas{height:100%;margin-top:0}
@media(max-width:56rem){
  .directorate-map-layout{flex-direction:column;height:auto;min-height:0}
  .directorate-map-sidebar,.directorate-map-sidebar.dmap-collapsed{width:100%}
  .directorate-map-sidebar{max-height:18rem}
  .directorate-map-canvas-wrap{flex:none}
  .directorate-map-canvas{height:24rem}
}
.role-switcher{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#172033;color:#fff;padding:.6rem 1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;box-shadow:0 -2px 8px rgba(0,0,0,.25)}
.role-switcher form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}
.role-switcher label{margin:0;font-weight:600;color:#c7d3e8;display:inline}
.role-switcher select{padding:.3rem .45rem;font-size:.85rem;border-radius:.25rem}
.role-switcher button{padding:.3rem .75rem;font-size:.85rem}
.role-switcher-active{background:#b26a00;padding:.2rem .6rem;border-radius:.25rem;font-weight:600}
.role-switcher a{color:#8ec9ff}
body.has-role-switcher{padding-bottom:3.5rem}