:root{--brand-green: #1F5C3D;--green-deep: #14452D;--green-tint: #E6F0EA;--sun-orange: #E8771A;--orange-tint: #FDF1E3;--orange-ink: #8A4B0C;--ink: #1B241E;--ink-muted: #4A574F;--surface: #FFFFFF;--surface-soft: #F7F9F7;--surface-muted: #F1F4F1;--border: #D5DCD6;--divider: #E3E8E4;--warn-tint: #FCE9DC;--warn-ink: #8A3E0B;--over-budget: #B3540F;--info-tint: #EEF1F4;--info-ink: #34495E;--delivered-tint: #EFE8F6;--delivered-ink: #5B3A82;--map-sand: #D8CDB2;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 16px;--radius-pill: 999px;--touch-min: 44px;--button-main: 52px;--input-height: 48px;--font-arabic: "IBM Plex Sans Arabic", system-ui, sans-serif;--font-latin: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-arabic);font-size:15px;line-height:22px;-webkit-tap-highlight-color:transparent}html[lang=en] body{font-family:var(--font-latin)}a{color:var(--brand-green)}a:hover{color:var(--green-deep)}button,input,select,textarea{font:inherit;color:inherit}.screen{min-height:100%;display:flex;flex-direction:column;max-width:560px;margin:0 auto}.screen-body{flex:1;padding:var(--space-2) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.screen-header{padding:var(--space-5) var(--space-5) var(--space-2)}.title{margin:0;font-size:28px;line-height:36px;font-weight:700}.subtitle{margin-top:var(--space-1);font-size:14px;color:var(--ink-muted)}.card{border:1px solid var(--divider);border-radius:var(--radius-xl);padding:var(--space-4);display:flex;flex-direction:column;gap:10px}.card-title{font-size:17px;font-weight:600}.muted{color:var(--ink-muted);font-size:14px}.row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.btn{min-height:var(--touch-min);border-radius:var(--radius-md);border:0;padding:0 var(--space-4);font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn-primary{background:var(--sun-orange);color:var(--ink);height:var(--button-main);border-radius:var(--radius-lg);font-size:16px;font-weight:700;width:100%}.btn-secondary{background:var(--surface);color:var(--brand-green);border:1.5px solid var(--brand-green)}.btn-neutral{background:var(--surface-muted);color:var(--ink)}.btn:disabled{opacity:.55;cursor:default}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:600}.input{height:var(--button-main);border-radius:var(--radius-lg);border:1px solid var(--border);padding:0 14px;font-size:16px;background:var(--surface)}.input:focus{outline:2px solid var(--brand-green);outline-offset:1px}.input-pin{font-size:22px;letter-spacing:10px;text-align:center}.chip{font-size:12px;line-height:16px;font-weight:600;padding:4px 10px;border-radius:var(--radius-pill);white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-muted);background:var(--surface-muted);padding:6px 10px;border-radius:var(--radius-pill)}.dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--brand-green)}.dot.off{background:var(--sun-orange)}.filters{display:flex;gap:var(--space-2);padding:var(--space-4) var(--space-5) var(--space-2);flex-wrap:wrap}.filter{height:40px;padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);font-size:14px;cursor:pointer}.filter[aria-pressed=true]{background:var(--brand-green);color:#fff;border-color:var(--brand-green);font-weight:600}.bottom-nav{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--divider);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:var(--space-2) var(--space-2) calc(var(--space-5) + env(safe-area-inset-bottom))}.bottom-nav a{text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:52px;color:var(--ink-muted);font-size:12px}.bottom-nav a.active{color:var(--brand-green);font-weight:600}.notice{background:var(--surface-soft);border-radius:var(--radius-md);padding:10px 12px;font-size:14px;color:var(--ink-muted)}.error{background:var(--warn-tint);color:var(--warn-ink);border-radius:var(--radius-md);padding:10px 12px;font-size:14px}.empty{text-align:center;padding:var(--space-6) var(--space-4);display:flex;flex-direction:column;align-items:center;gap:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.place-row{flex-direction:row;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit;padding:12px var(--space-4)}.place-dot{width:14px;height:14px;border-radius:var(--radius-pill);flex:none}.crumbs{display:flex;flex-wrap:wrap;gap:4px 6px;padding:0 20px;font-size:13px;color:var(--ink-muted)}.crumbs a{text-decoration:none}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip-soft{background:var(--surface-muted);color:var(--ink)}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:14px}.facts dt{color:var(--ink-muted)}.facts dd{margin:0}.section-title{margin:8px 0 0;font-size:17px;font-weight:700}.grid-scroll{overflow-x:auto;border:1px solid var(--divider);border-radius:var(--radius-xl);padding:8px;background:var(--surface-soft)}.grid-scroll a:focus-visible circle{stroke:var(--ink);stroke-width:2}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.map-wrap{position:relative;flex:1;min-height:360px}.map-wrap .maplibregl-map{position:absolute;top:0;right:0;bottom:0;left:0}.map-marker{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;padding:0;cursor:pointer}.map-marker .pin{width:18px;height:18px;border-radius:var(--radius-pill);border:3px solid #FFFFFF;box-shadow:0 1px 4px #0006}.map-marker .label{font-size:12px;font-weight:600;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.9);white-space:nowrap;font-family:var(--font-arabic)}.map-marker[aria-pressed=true] .pin{width:24px;height:24px;border-color:var(--sun-orange)}.map-sheet{position:absolute;inset-inline:12px;bottom:12px;background:var(--surface);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:0 4px 18px #00000040;display:flex;flex-direction:column;gap:10px}.map-note{position:absolute;inset-inline:12px;top:12px}
