:root { --navy:#143b62; --blue:#237bc0; --blue-soft:#e9f3fb; --green:#10946b; --red:#d83f55; --red-soft:#fff0f2; --text:#253039; --muted:#6d7b84; --line:#dce4e8; --surface:#fff; --bg:#f2f6f8; --shadow:0 12px 36px rgba(27,55,73,.08); font-family:"Noto Sans Thai",Tahoma,Arial,sans-serif; color-scheme:light; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--text); background:var(--bg); }
button,input,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.admin-shell { min-height:100vh; display:grid; grid-template-columns:260px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; padding:26px 20px; display:flex; flex-direction:column; color:#fff; background:linear-gradient(175deg,#123657,#0c263d); }
.admin-brand { display:flex; align-items:center; gap:11px; color:#fff; text-decoration:none; }
.admin-brand-logo { width:45px; height:57px; display:block; object-fit:contain; filter:drop-shadow(0 6px 12px rgba(0,0,0,.22)); }
.admin-brand strong,.admin-brand small { display:block; }.admin-brand strong { font-size:.92rem; }.admin-brand small { margin-top:3px; color:#afc5d6; font-size:.65rem; }
.sidebar nav { margin-top:40px; display:grid; gap:6px; }.sidebar nav a { padding:11px 12px; border-radius:10px; color:#b8ccdb; text-decoration:none; font-size:.76rem; font-weight:700; }.sidebar nav a:hover,.sidebar nav a.is-active { color:#fff; background:rgba(255,255,255,.1); }
.sidebar-footer { margin-top:auto; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); }.sidebar-footer span,.sidebar-footer small,.sidebar-footer strong { display:block; }.sidebar-footer span { color:#9fb7c9; font-size:.63rem; }.sidebar-footer strong { margin-top:4px; font-size:.77rem; }.sidebar-footer small { margin-top:2px; color:#b8ccdb; font-size:.61rem; overflow:hidden; text-overflow:ellipsis; }.logout-button { margin-top:12px; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; font-size:.68rem; font-weight:700; text-decoration:underline; }
.admin-main { width:min(1180px,calc(100% - 56px)); margin:0 auto; padding:34px 0 70px; }
.topbar { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }.eyebrow { margin:0; color:var(--blue); font-size:.69rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.topbar h1 { margin:4px 0 0; font-size:clamp(1.55rem,3vw,2.2rem); letter-spacing:-.04em; }.topbar-actions { display:flex; gap:8px; }
.primary-button,.secondary-button { min-height:40px; padding:9px 14px; border-radius:10px; cursor:pointer; font-size:.72rem; font-weight:800; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }.primary-button { border:0; color:#fff; background:var(--blue); box-shadow:0 7px 16px rgba(35,123,192,.2); }.primary-button:disabled { opacity:.55; cursor:wait; }.secondary-button { border:1px solid var(--line); color:var(--navy); background:var(--surface); }
.admin-section { scroll-margin-top:20px; margin-bottom:18px; padding:22px; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); }.section-title { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-bottom:17px; border-bottom:1px solid var(--line); }.section-title > div { display:flex; align-items:center; gap:11px; }.section-title > div > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:var(--blue); background:var(--blue-soft); font-size:.66rem; font-weight:900; }.section-title h2 { margin:0; font-size:1.02rem; }.section-title p,.section-title small { margin:3px 0 0; color:var(--muted); font-size:.65rem; }
.metric-grid { margin-top:16px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }.metric-grid label { padding:13px; border:1px solid var(--line); border-radius:12px; background:#f8fafb; }.metric-grid label > span { display:block; min-height:32px; color:var(--muted); font-size:.67rem; }.metric-grid input { width:100%; margin-top:5px; border:0; outline:0; color:var(--blue); background:transparent; font-size:1.65rem; font-weight:900; }.metric-grid small { color:var(--muted); font-size:.59rem; }.metric-grid .critical input { color:var(--red); }
.form-grid { margin-top:17px; display:grid; grid-template-columns:1fr 1fr; gap:13px; }.form-grid label,.standalone-label { display:grid; gap:6px; }.form-grid label > span,.standalone-label > span,.capacity-grid label > span { color:var(--text); font-size:.69rem; font-weight:800; }.form-grid .full { grid-column:1/-1; }.form-grid input,.form-grid textarea,.capacity-grid input,.standalone-label textarea { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; outline:0; color:var(--text); background:#f8fafb; }.form-grid input:focus,.form-grid textarea:focus,.capacity-grid input:focus,.standalone-label textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,123,192,.1); }.form-grid textarea,.standalone-label textarea { resize:vertical; }
.capacity-grid { margin-top:13px; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.capacity-grid label { display:grid; gap:6px; }.standalone-label { margin-top:13px; }
.save-bar { position:sticky; bottom:12px; z-index:5; margin:4px 0 22px; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:15px; border:1px solid rgba(35,123,192,.2); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 10px 30px rgba(26,54,73,.14); backdrop-filter:blur(12px); }.save-bar p { margin:0; color:var(--muted); font-size:.66rem; }
.route-admin-section > .section-title { background:linear-gradient(135deg,#f7fbfd,#e8f5f4); }.route-admin-notice { margin-top:16px; padding:12px 14px; display:flex; gap:10px; border:1px solid #cde5e0; border-radius:11px; color:#31594f; background:#eff9f6; font-size:.71rem; line-height:1.6; }.route-admin-notice strong { flex:0 0 auto; }.route-admin-layout { margin-top:14px; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr); gap:14px; }.route-map-column,.route-editor-column { min-width:0; }.admin-route-map { height:540px; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#dfe9e9; }.route-map-loading { height:100%; display:grid; place-items:center; color:var(--muted); font-size:.74rem; }.route-map-actions { margin-top:9px; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }.route-map-actions > span { margin-left:auto; color:var(--muted); font-size:.68rem; font-weight:800; }.route-map-actions button.is-active { color:#fff; border-color:var(--blue); background:var(--blue); }.admin-route-list { max-height:270px; display:grid; gap:7px; overflow:auto; }.admin-route-option { width:100%; padding:11px 12px; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--line); border-left:4px solid #71808a; border-radius:10px; color:var(--text); background:#f8fafb; cursor:pointer; font:inherit; text-align:left; }.admin-route-option:hover,.admin-route-option.is-selected { border-color:#8ebcdc; background:#eef7fc; }.admin-route-option.is-open { border-left-color:#178d68; }.admin-route-option.is-flooded { border-left-color:#d83f55; }.admin-route-option strong,.admin-route-option small { display:block; }.admin-route-option strong { font-size:.76rem; }.admin-route-option small { margin-top:2px; color:var(--muted); font-size:.61rem; }.admin-route-option > span { padding:4px 7px; border-radius:999px; color:#59666d; background:#e8edef; font-size:.6rem; font-weight:900; white-space:nowrap; }.admin-route-option.is-open > span { color:#166c51; background:#dcf3eb; }.admin-route-option.is-flooded > span { color:#a22d40; background:#ffdfe4; }.route-editor-form { margin-top:12px; padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:11px; border:1px solid var(--line); border-radius:12px; background:#fbfcfd; }.route-editor-form label { min-width:0; display:grid; gap:6px; }.route-editor-form label.full,.route-editor-form .route-editor-meta,.route-editor-form .primary-button { grid-column:1/-1; }.route-editor-form label > span { color:var(--text); font-size:.68rem; font-weight:800; }.route-editor-form input,.route-editor-form select,.route-editor-form textarea { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; outline:0; color:var(--text); background:#fff; font:inherit; font-size:.72rem; }.route-editor-form textarea { resize:vertical; }.route-editor-form input:focus,.route-editor-form select:focus,.route-editor-form textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,123,192,.1); }.route-editor-meta { margin:0; color:var(--muted); font-size:.64rem; line-height:1.5; }.route-editor-form .primary-button { width:100%; }.route-popup span { display:block; margin-top:3px; }.route-water-flow { animation:routeWaterFlow 1.15s linear infinite; stroke-linecap:round; filter:drop-shadow(0 0 2px rgba(120,224,255,.7)); }@keyframes routeWaterFlow { to { stroke-dashoffset:-32; } }
.admin-alert-list { margin-top:14px; display:grid; gap:9px; }.admin-alert { padding:13px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; border:1px solid #f1cbd1; border-radius:12px; background:var(--red-soft); }.alert-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--red); font-weight:900; }.admin-alert strong { display:block; font-size:.76rem; }.admin-alert p { margin:3px 0 0; color:var(--muted); font-size:.63rem; }.admin-alert-actions { display:flex; gap:6px; }.admin-alert-actions a,.admin-alert-actions button { padding:7px 9px; border-radius:8px; font-size:.63rem; font-weight:800; text-decoration:none; }.admin-alert-actions a { color:var(--blue); border:1px solid #c9ddec; background:#fff; }.admin-alert-actions button { color:#fff; border:0; background:var(--red); cursor:pointer; }.empty-state { min-height:130px; display:grid; place-items:center; color:var(--muted); border:1px dashed var(--line); border-radius:12px; font-size:.71rem; }
.pregnancy-section { padding:0; overflow:hidden; }.pregnancy-section > * { margin-left:22px; margin-right:22px; }.pregnancy-section > .section-title { margin:0; padding:22px; background:linear-gradient(135deg,#f8fbfd,#eef7fb); }.mental-section > .section-title { background:linear-gradient(135deg,#fbf9fd,#f2edf8); }.pregnancy-title { align-items:flex-start; }.pregnancy-source-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }.pregnancy-source-actions small { width:100%; text-align:right; }.privacy-notice,.data-quality-notice { margin-top:17px; padding:11px 13px; display:flex; align-items:center; gap:10px; border-radius:10px; font-size:.67rem; }.privacy-notice { border:1px solid #f0d9a2; color:#68501c; background:#fff8e6; }.privacy-notice strong,.data-quality-notice strong { flex:0 0 auto; }.data-quality-notice { margin-top:9px; border:1px solid #efbdc5; color:#8e2737; background:#fff0f2; }.pregnancy-kpi-grid { margin-top:13px; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }.pregnancy-kpi-grid article { min-width:0; padding:13px 11px; border:1px solid var(--line); border-radius:12px; background:#f8fafb; }.pregnancy-kpi-grid span,.pregnancy-kpi-grid small { display:block; color:var(--muted); font-size:.59rem; line-height:1.4; }.pregnancy-kpi-grid span { min-height:34px; }.pregnancy-kpi-grid strong { display:inline-block; margin:4px 4px 0 0; color:var(--navy); font-size:1.45rem; line-height:1; }.pregnancy-kpi-grid small { display:inline; }.pregnancy-kpi-grid .attention { border-color:#f1cbd1; background:var(--red-soft); }.pregnancy-kpi-grid .attention strong { color:var(--red); }
.pregnancy-charts { margin-top:13px; display:grid; grid-template-columns:minmax(300px,.8fr) minmax(380px,1.2fr); gap:12px; }.dashboard-card,.pregnancy-table-card { border:1px solid var(--line); border-radius:13px; background:#fff; }.dashboard-card { min-width:0; padding:15px; }.card-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }.card-heading h3 { margin:0; font-size:.79rem; }.card-heading p { margin:3px 0 0; color:var(--muted); font-size:.61rem; }.bar-list { margin-top:14px; display:grid; gap:8px; }.diagnosis-chart { max-height:266px; padding-right:5px; overflow:auto; }.bar-row { display:grid; grid-template-columns:92px minmax(80px,1fr) 34px; align-items:center; gap:8px; font-size:.63rem; }.mental-section .bar-row { grid-template-columns:118px minmax(80px,1fr) 34px; }.bar-row > span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.bar-row > strong { color:var(--navy); text-align:right; }.bar-track { height:8px; overflow:hidden; border-radius:10px; background:#e7edf1; }.bar-track i { height:100%; display:block; border-radius:inherit; background:linear-gradient(90deg,var(--blue),#53addd); }.mental-section .bar-track i { background:linear-gradient(90deg,#6f55a3,#9f83cf); }.month-chart { height:190px; margin-top:12px; padding:8px 2px 2px; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(54px,1fr); gap:5px; align-items:end; overflow-x:auto; }.month-column { height:100%; min-width:54px; display:grid; grid-template-rows:1fr auto auto; align-items:end; text-align:center; }.month-column > div { height:128px; display:flex; align-items:flex-end; justify-content:center; }.month-column i { width:60%; min-height:8px; display:block; border-radius:7px 7px 3px 3px; background:linear-gradient(180deg,#51b6a1,var(--green)); }.month-column strong { margin-top:4px; color:var(--navy); font-size:.64rem; }.month-column span { margin-top:2px; color:var(--muted); font-size:.52rem; white-space:nowrap; }.chart-loading,.chart-error { min-height:145px; display:grid; place-items:center; color:var(--muted); font-size:.67rem; }.chart-error { color:var(--red); }
.pregnancy-table-card { margin-top:13px; margin-bottom:22px; overflow:hidden; }.table-heading { padding:15px; border-bottom:1px solid var(--line); }.pregnancy-filters { padding:12px 15px; display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:8px; background:#f8fafb; border-bottom:1px solid var(--line); }.pregnancy-filters label { min-width:0; display:grid; gap:5px; }.pregnancy-filters label > span { color:var(--muted); font-size:.59rem; font-weight:800; }.pregnancy-filters input,.pregnancy-filters select { min-width:0; width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:8px; outline:0; color:var(--text); background:#fff; font-size:.65rem; }.pregnancy-filters input:focus,.pregnancy-filters select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,123,192,.1); }.pregnancy-table-wrap { max-height:680px; overflow:auto; }.pregnancy-table { width:100%; min-width:1020px; border-collapse:collapse; font-size:.62rem; }.pregnancy-table th { position:sticky; z-index:2; top:0; padding:10px 9px; color:#52636f; background:#eef3f6; text-align:left; font-size:.57rem; white-space:nowrap; }.pregnancy-table td { padding:10px 9px; border-bottom:1px solid #e9eef1; vertical-align:top; line-height:1.5; }.pregnancy-table tbody tr:hover { background:#f8fbfd; }.pregnancy-table td > strong,.pregnancy-table td > small { display:block; }.pregnancy-table td > small { margin-top:2px; max-width:280px; color:var(--muted); }.tambon-chip,.status-badge { width:max-content; margin-top:5px; padding:3px 6px; display:block; border-radius:999px; font-size:.53rem; font-weight:800; white-space:nowrap; }.tambon-chip { color:var(--navy); background:var(--blue-soft); }.status-badge.danger { color:#a62c3f; background:#ffe4e8; }.status-badge.warning { color:#8b520d; background:#fff0cf; }.status-badge.watch { color:#155f8a; background:#e2f2fb; }.status-badge.calm { color:#25745f; background:#e4f6f0; }.status-badge.neutral { color:#5e6970; background:#edf1f3; }.phone-link { color:var(--blue); font-weight:800; white-space:nowrap; }.phone-link.needs-review { color:var(--red); }.review-note { display:block; margin-top:2px; color:var(--red)!important; }.missing-data { color:var(--red); font-weight:700; }.table-empty { min-height:150px; display:grid; place-items:center; color:var(--muted); }.table-empty.error { color:var(--red); }
.user-form { margin-top:16px; display:grid; grid-template-columns:1.1fr 1fr 1fr auto; align-items:end; gap:10px; }.user-form label,.login-form label { display:grid; gap:6px; text-align:left; }.user-form label > span,.login-form label > span { color:var(--text); font-size:.68rem; font-weight:800; }.user-form input,.login-form input { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:9px; outline:0; color:var(--text); background:#f8fafb; }.user-form input:focus,.login-form input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,123,192,.1); }.user-list { margin-top:15px; display:grid; gap:8px; }.user-row { padding:12px 13px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:11px; border:1px solid var(--line); border-radius:11px; background:#f8fafb; }.user-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:var(--navy); background:var(--blue-soft); font-size:.72rem; font-weight:900; }.user-row strong { display:block; font-size:.75rem; }.user-row p { margin:2px 0 0; color:var(--muted); font-size:.62rem; }.user-row button { padding:7px 9px; border:1px solid #f1cbd1; border-radius:8px; color:var(--red); background:var(--red-soft); cursor:pointer; font-size:.63rem; font-weight:800; }.user-row .current-user { color:var(--green); font-size:.63rem; font-weight:800; }
.toast { position:fixed; z-index:20; left:50%; bottom:24px; max-width:min(90vw,430px); padding:11px 16px; border-radius:10px; color:#fff; background:#20313d; box-shadow:0 10px 28px rgba(0,0,0,.22); font-size:.72rem; font-weight:700; opacity:0; pointer-events:none; transform:translate(-50%,14px); transition:.2s ease; }.toast.is-visible { opacity:1; transform:translate(-50%,0); }.toast.is-error { background:var(--red); }
.auth-gate { min-height:100vh; padding:24px; place-items:center; background:linear-gradient(145deg,#eaf3f8,#f7fafb); }.auth-gate:not([hidden]) { display:grid; }.auth-gate section { width:min(100%,440px); padding:34px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:var(--shadow); text-align:center; }.auth-gate h1 { margin:5px 0 0; }.auth-gate section > p:not(.eyebrow):not(.login-error) { color:var(--muted); font-size:.75rem; line-height:1.65; }.login-form { margin-top:18px; display:grid; gap:11px; }.login-form .primary-button { width:100%; margin-top:3px; }.login-error { margin:0; padding:8px 10px; border-radius:8px; color:#a7293b; background:var(--red-soft); font-size:.66rem; text-align:left; }.text-link { display:block; margin-top:15px; color:var(--muted); font-size:.68rem; }
.gate-logo { width:76px; height:96px; display:block; object-fit:contain; margin:0 auto 13px; filter:drop-shadow(0 6px 12px rgba(20,59,98,.15)); }
@media(max-width:1120px){.pregnancy-kpi-grid{grid-template-columns:repeat(4,1fr)}.pregnancy-filters{grid-template-columns:1.5fr 1fr}.pregnancy-charts{grid-template-columns:1fr}}
@media(max-width:980px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:18px}.sidebar nav{margin-top:18px;grid-template-columns:repeat(7,1fr)}.sidebar-footer{display:none}.admin-main{width:min(100% - 28px,900px);padding-top:22px}.metric-grid{grid-template-columns:repeat(3,1fr)}.user-form{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.sidebar nav{display:none}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;flex-wrap:wrap}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-grid label:last-child{grid-column:1/-1}.form-grid,.capacity-grid,.user-form{grid-template-columns:1fr 1fr}.form-grid label,.user-form label{grid-column:1/-1}.user-form button{grid-column:1/-1}.admin-section{padding:16px}.pregnancy-section{padding:0}.pregnancy-section > *{margin-left:14px;margin-right:14px}.pregnancy-section > .section-title{margin:0;padding:16px}.pregnancy-title{display:block}.pregnancy-source-actions{margin-top:12px;justify-content:flex-start}.pregnancy-source-actions small{text-align:left}.privacy-notice,.data-quality-notice{align-items:flex-start;flex-direction:column}.pregnancy-kpi-grid{grid-template-columns:repeat(2,1fr)}.pregnancy-charts{grid-template-columns:1fr}.pregnancy-filters{grid-template-columns:1fr}.pregnancy-table-wrap{max-height:none;padding:10px;background:#f5f8fa}.pregnancy-table{min-width:0;display:block}.pregnancy-table thead{display:none}.pregnancy-table tbody{display:grid;gap:10px}.pregnancy-table tr{display:block;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.pregnancy-table td{min-height:40px;padding:8px 10px;display:grid;grid-template-columns:105px minmax(0,1fr);gap:8px;border-bottom:1px solid #edf1f3}.pregnancy-table td:last-child{border-bottom:0}.pregnancy-table td::before{content:attr(data-label);color:var(--muted);font-size:.55rem;font-weight:800}.pregnancy-table td[colspan]{display:block}.pregnancy-table td[colspan]::before{display:none}.pregnancy-table td > small{max-width:none}.table-empty{min-height:110px}.save-bar{align-items:stretch;flex-direction:column}.admin-alert,.user-row{grid-template-columns:auto 1fr}.admin-alert-actions,.user-row button,.user-row .current-user{grid-column:2;flex-wrap:wrap}}

/* Larger admin workspace for easier reading on desktop and tablets. */
body { font-size:18px; }
.admin-shell { grid-template-columns:290px minmax(0,1fr); }
.admin-main { width:min(1440px,calc(100% - 48px)); }
.sidebar nav a { padding:13px 14px; font-size:.82rem; }
.section-title h2 { font-size:1.12rem; }
.section-title p,.section-title small { font-size:.72rem; }
.primary-button,.secondary-button { min-height:44px; padding:10px 16px; font-size:.78rem; }
.pregnancy-kpi-grid article { padding:16px 13px; }
.pregnancy-kpi-grid span,.pregnancy-kpi-grid small { font-size:.66rem; }
.pregnancy-kpi-grid strong { font-size:1.62rem; }
.card-heading h3 { font-size:.88rem; }
.card-heading p { font-size:.68rem; }
.bar-row { grid-template-columns:112px minmax(90px,1fr) 42px; font-size:.7rem; }
.mental-section .bar-row,.homebound-section .bar-row { grid-template-columns:150px minmax(90px,1fr) 42px; }
.pregnancy-filters label > span { font-size:.66rem; }
.pregnancy-filters input,.pregnancy-filters select { padding:11px 12px; font-size:.72rem; }
.pregnancy-table { min-width:1120px; font-size:.72rem; }
.pregnancy-table th { padding:12px 11px; font-size:.66rem; }
.pregnancy-table td { padding:12px 11px; }
.tambon-chip,.status-badge { padding:4px 8px; font-size:.61rem; }
.privacy-notice,.data-quality-notice { font-size:.74rem; }
.homebound-section > .section-title { background:linear-gradient(135deg,#f7fbf8,#eaf6f0); }
.homebound-section .bar-track i { background:linear-gradient(90deg,#168b68,#52b995); }
.homebound-bedridden-dashboard { margin:14px 0; padding:16px; border-color:#f1caca; background:linear-gradient(145deg,#fffafa,#fff 50%,#f7fbff); }
.homebound-bedridden-dashboard > .card-heading { align-items:flex-start; }
.homebound-bedridden-dashboard > .card-heading > strong { color:var(--muted); font-size:.68rem; white-space:nowrap; }
.homebound-bedridden-dashboard .card-heading h3 { font-size:.9rem; }
.homebound-bedridden-dashboard .card-heading h4 { margin:0; color:var(--navy); font-size:.76rem; }
.homebound-bedridden-dashboard .homebound-bedridden-kpis { margin:13px 0; }
.homebound-bedridden-kpis article.attention { border-color:#f0cccc; background:#fff4f3; }
.homebound-risk-facility-card { margin:12px 0; padding:13px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.homebound-risk-facility-card .bar-track i { background:linear-gradient(90deg,#c84c4c,#eb9c6d); }
.homebound-risk-filters { grid-template-columns:1.5fr 1fr 1fr; border:1px solid var(--line); border-radius:10px 10px 0 0; }
.homebound-bedridden-grid { max-height:720px; padding:12px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; overflow:auto; border:1px solid var(--line); border-top:0; border-radius:0 0 11px 11px; background:#f6f8fa; }
.homebound-bedridden-card { min-width:0; padding:13px; border:1px solid var(--line); border-left:4px solid #9aa7af; border-radius:10px; background:#fff; box-shadow:0 3px 10px rgba(20,45,65,.04); }
.homebound-bedridden-card.risk-area { border-left-color:#c9424b; }
.homebound-bedridden-card.risk-route { border-left-color:#df8b28; }
.homebound-bedridden-card.risk-safe { border-left-color:#3b9b76; }
.homebound-risk-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.homebound-risk-card-heading .tambon-chip,.homebound-risk-card-heading .status-badge { margin-top:0; white-space:normal; }
.homebound-bedridden-card h4 { margin:11px 0 4px; color:var(--navy); font-size:.82rem; }
.homebound-risk-address { min-height:2.6em; margin:0; color:var(--muted); font-size:.65rem; line-height:1.5; }
.homebound-risk-situation { margin-top:10px; padding:8px 9px; display:grid; gap:3px; border-radius:8px; background:#f4f7f8; }
.homebound-risk-situation small { color:var(--muted); font-size:.58rem; }
.homebound-risk-situation strong { font-size:.66rem; line-height:1.4; }
.homebound-risk-contact { margin-top:10px; min-height:1.5em; font-size:.66rem; }
@media(max-width:1120px){.homebound-bedridden-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.homebound-risk-filters{grid-template-columns:1fr}.homebound-bedridden-grid{max-height:none;grid-template-columns:1fr;padding:9px}.homebound-bedridden-dashboard>.card-heading{display:block}.homebound-bedridden-dashboard>.card-heading>strong{display:block;margin-top:4px;white-space:normal}}
@media(max-width:980px){body{font-size:17px}.admin-shell{grid-template-columns:1fr}.sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-main{width:min(100% - 28px,1100px)}.route-admin-layout{grid-template-columns:1fr}.admin-route-map{height:500px}}
@media(max-width:640px){.pregnancy-table{min-width:0;display:block;font-size:.78rem}.pregnancy-table td{padding:11px 12px;grid-template-columns:118px minmax(0,1fr)}.pregnancy-table td::before{font-size:.64rem}.pregnancy-kpi-grid span,.pregnancy-kpi-grid small{font-size:.7rem}.route-admin-notice{align-items:flex-start;flex-direction:column}.admin-route-map{height:430px}.route-map-actions .secondary-button{flex:1 1 45%}.route-map-actions>span{width:100%;margin-left:0}.route-editor-form{grid-template-columns:1fr}.route-editor-form label,.route-editor-form label.full{grid-column:1}}
@media (prefers-reduced-motion:reduce){.route-water-flow{animation-duration:.01ms!important}}

.renal-section > .section-title { background:linear-gradient(135deg,#f7f9fc,#e8f0fb); }
.renal-section .renal-kpis { grid-template-columns:repeat(5,minmax(0,1fr)); }
.renal-section .bar-track i { background:linear-gradient(90deg,#4967ae,#78a2e6); }
.renal-filters { grid-template-columns:1.6fr repeat(4,minmax(130px,1fr)); }
.renal-treatment-chart { max-height:300px; padding-right:5px; overflow:auto; }
.renal-table { min-width:1480px; }
@media(max-width:1120px){.renal-filters{grid-template-columns:1.5fr 1fr 1fr}}
@media(max-width:1120px){.renal-section .renal-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){.renal-filters{grid-template-columns:1fr}.renal-table{min-width:0}.renal-section .renal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

