:root{--bg:#f6f7f4;--fg:#1d2a22;--muted:#66736b;--card:#fff;--line:#dfe4dc;--brand:#1f6f43;--warn:#b26a00;--bad:#b3261e}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font-family:system-ui,Noto Sans Ethiopic,sans-serif}.topbar{background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{color:var(--brand);letter-spacing:.08em;font-size:1.3rem;font-weight:800}.nav{flex-wrap:wrap;flex:1;gap:4px;display:flex}.nav a{color:var(--fg);border-radius:6px;padding:8px 12px;text-decoration:none}.nav a.active{background:var(--brand);color:#fff}.badge{border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700}.badge-mock{color:#7a5200;background:#fff3cd;border:1px solid #f0d58a}.badge-live{color:var(--bad);background:#fde4e2;border:1px solid #f1b3ae}.content{max-width:1100px;margin:0 auto;padding:16px}.stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:16px 0;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px}.stat-label{color:var(--muted);font-size:.75rem}.stat-value{margin-top:4px;font-size:1.2rem;font-weight:700}.stat-value.ok{color:var(--brand)}.stat-value.warn{color:var(--warn)}.stat-value.bad{color:var(--bad)}.muted{color:var(--muted)}.error{color:var(--bad)}@media (width<=600px){.content{padding:12px}}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}.login-wrap{place-items:center;min-height:100vh;padding:16px;display:grid}.login{flex-direction:column;gap:12px;width:100%;max-width:360px;display:flex}.form{flex-direction:column;gap:12px;max-width:420px;display:flex}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}input{border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:6px;padding:9px 10px;font-size:1rem}button{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:10px 14px;font-size:1rem;font-weight:600}button:disabled{opacity:.6;cursor:default}button.link{color:var(--muted);background:0 0;padding:4px 8px;font-weight:400}.user{color:var(--fg);font-weight:600;text-decoration:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-head h1{margin:8px 0}.loc-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin:16px 0 28px;display:grid}.loc{flex-direction:column;gap:6px;padding:16px;display:flex}.loc.inactive{opacity:.65}.loc header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.loc h3{margin:0;font-size:1.1rem}.badges{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.badge-test{color:#0b4a8f;background:#e3f0ff;border:1px solid #a9cdf5}.badge-off{color:#555;background:#eee;border:1px solid #ccc}.small{font-size:.85rem}.counts{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 2px;display:grid}.counts div{background:var(--bg);text-align:center;border-radius:8px;padding:8px}.counts b{font-size:1.4rem;display:block}.counts span{color:var(--muted);font-size:.75rem}.btns{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.btns button{flex:1;padding:8px 10px;font-size:.85rem}.small-btns button{padding:6px 8px;font-size:.8rem}button.secondary{color:var(--fg);border:1px solid var(--line);background:#fff;font-weight:500}button.danger{color:var(--bad)}.overlay{z-index:10;background:#0006;place-items:start center;padding:5vh 12px;display:grid;position:fixed;inset:0;overflow:auto}.modal{width:100%;max-width:480px}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{margin:0 0 8px;font-size:1.15rem}.row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.check{color:var(--fg);flex-direction:row;align-items:center;gap:8px;font-size:.95rem}.check input{width:auto}.actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}select{border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:6px;padding:9px 10px;font-size:1rem}.warn{color:var(--warn)}.details{margin:8px 0}.details summary{cursor:pointer;font-weight:600}.details ul{max-height:180px;margin:6px 0;padding-left:20px;font-size:.9rem;overflow:auto}.farmers h2{margin:8px 0}.filters{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.filters input{flex:1;min-width:180px}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}tr.inactive td{color:var(--muted)}.row-actions{gap:6px;display:flex}.row-actions button{padding:5px 9px;font-size:.8rem}.pager{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin:10px 0 30px;display:flex}.pager .muted{margin-right:auto}@media (width<=600px){.row{grid-template-columns:1fr}}.tpl-grid{gap:14px;margin:12px 0 28px;display:grid}.tpl{flex-direction:column;gap:8px;padding:16px;display:flex}.tpl header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;display:flex}.tpl h3{margin:0}textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:6px;padding:10px;line-height:1.45}pre.sms{white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:10px 12px;font-family:inherit;font-size:.95rem;line-height:1.5}.chips{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.chip{color:var(--fg);border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 9px;font-family:ui-monospace,monospace;font-size:.78rem;font-weight:500}.preview{border-top:1px dashed var(--line);margin-top:8px;padding-top:10px}.preview-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--fg);background:#fff;border-radius:0;padding:7px 12px;font-size:.85rem;font-weight:500}.seg button.on{background:var(--brand);color:#fff}button.danger-solid{background:var(--bad)}.banner-warn{color:#7a5200;background:#fff8e1;border:1px solid #f0d58a;border-radius:8px;padding:10px 12px}tr.needs-review td{background:#fffbe9}.pill{color:#555;background:#eee;border-radius:999px;margin:1px 0;padding:2px 8px;font-size:.72rem;display:inline-block}.pill-review{color:#7a4a00;background:#ffe9b3;font-weight:700}h2{margin:22px 0 4px}code{font-size:.85rem}.msg-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;margin:14px 0 30px;display:grid}.msg{flex-direction:column;gap:6px;padding:14px;display:flex}.msg h3{margin:0;font-size:1rem}.msg header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.msg-flag{background:#fffdf5;border-color:#e0b34a}.prepare{max-width:640px;margin:18px 0}.prepare h2{margin-top:0}.pill-bad{color:var(--bad);background:#fde4e2;font-weight:700}@media (width<=420px){.msg-grid{grid-template-columns:1fr}}.actionbar{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.wx{background:var(--bg);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:.85rem;display:flex}.banner-live{color:var(--bad);background:#fde4e2;border:1px solid #f1b3ae;border-radius:8px;padding:10px 12px}button.link.small{padding:2px 0;font-size:.75rem;text-decoration:underline}.msg .btns button{flex:auto}.tabs{margin:12px 0}.btn{border-radius:6px;padding:8px 12px;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-block}a.btn.secondary{color:var(--fg);border:1px solid var(--line);background:#fff}label.inline{color:var(--fg);flex-direction:row;align-items:center;gap:6px;font-size:.9rem}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f3f7f2}td.wrap{white-space:normal;min-width:260px}.hist-groups{flex-direction:column;gap:10px;margin:12px 0 30px;display:flex}.hist-group>summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.hist-body h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px;font-size:.9rem}.stat-value.small{font-size:.95rem}.pill{border-radius:10px;padding:1px 8px;font-size:.8rem;font-weight:600;display:inline-block}.pill-ok{color:#1d5e20;background:#dcf1dc}.pill-warning{color:#7a5200;background:#fff0c9}.pill-error{color:#8a1c1c;background:#fbdada}.pill-unknown{color:#444;background:#e6e6e6}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ok{color:#1d5e20}:root{--shadow:0 1px 2px #14281c0f, 0 2px 8px #14281c0a;--brand-dark:#175632;--ring:0 0 0 3px #1f6f4340}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1{letter-spacing:-.01em;margin:10px 0 4px;font-size:1.75rem;line-height:1.2}.content>section>h2,.content section>h2{border-bottom:1px solid var(--line);margin:30px 0 10px;padding-bottom:6px;font-size:1.2rem}h3{font-size:1.05rem}.topbar{z-index:5;box-shadow:var(--shadow);position:sticky;top:0}.nav a{transition:background .15s,color .15s}.nav a:hover:not(.active){background:#eef3ec}.card{box-shadow:var(--shadow)}button{transition:background .15s,filter .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(1.08)}button.secondary:hover:not(:disabled){filter:none;background:#f1f5ef}button:focus-visible,a:focus-visible,summary:focus-visible{box-shadow:var(--ring);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:var(--ring);outline:none}button:disabled{cursor:not-allowed}tbody tr:hover td{background:#f7faf5}tr.needs-review:hover td{background:#fff6d6}th{background:#fafbf9}.table-wrap{box-shadow:var(--shadow)}.form.wide{max-width:none}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start;gap:16px;display:grid}.settings-grid .card{height:100%}.form h3{margin:6px 0 0}.health table{table-layout:auto}.health th,.health td{white-space:normal;vertical-align:top;overflow-wrap:anywhere}.health th{text-transform:uppercase;background:0 0;width:210px}.health td:nth-child(2){width:110px}@media (width<=700px){.health table,.health tbody,.health tr,.health th,.health td{width:100%;display:block}.health tr{border-bottom:1px solid var(--line);padding:8px 0}.health th,.health td{border:0;padding:2px 0}.health td:nth-child(2){width:auto}}table.cond{table-layout:auto}table.cond th,table.cond td{white-space:normal;vertical-align:top;overflow-wrap:anywhere}table.cond td:first-child,table.cond th:first-child{white-space:nowrap}table.cond .cond-status{min-width:150px}table.cond .cond-status .pill{white-space:nowrap;margin:2px 4px 2px 0;display:inline-block}table.cond code{white-space:nowrap;overflow-wrap:normal}@media (width<=900px){table.cond,table.cond tbody,table.cond tr,table.cond td{width:100%;display:block}table.cond thead{display:none}table.cond tr{border-bottom:1px solid var(--line);padding:10px 12px}table.cond td{border:0;padding:2px 0}table.cond td:first-child{color:var(--muted);font-size:.75rem}}@media (width<=600px){th,td{padding:8px 10px}.stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}.actions{flex-wrap:wrap}code{overflow-wrap:anywhere}table.cond td:last-child,table.cond th:last-child{white-space:nowrap;width:1%}table.cond td button{white-space:nowrap}.form.medium{max-width:none}.form.medium label,.form.medium textarea,.form.medium p{max-width:640px}.jump{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.jump a{border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:999px;padding:4px 10px;text-decoration:none}.jump a:hover{background:#eef3ec}.editor-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:14px;margin-bottom:8px;display:grid}@media (width<=820px){.editor-grid{grid-template-columns:1fr}}.picker{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;min-width:0;padding:10px}.picker input{width:100%}.picker-list{max-height:340px;margin-top:6px;overflow:auto}.picker h4{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 4px;font-size:.75rem}button.picker-item{text-align:left;width:100%;color:var(--fg);border:1px solid var(--line);background:#fff;border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;margin:0 0 4px;padding:6px 8px;font-weight:400;display:flex}button.picker-item:hover{filter:none;border-color:var(--brand);background:#f1f5ef}button.picker-item.used{border-left:3px solid var(--brand)}.picker-token{overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:.82rem;font-weight:600}.picker-desc{font-size:.82rem}.picker-meta{color:var(--muted);overflow-wrap:anywhere;font-size:.72rem}.picker-warn{color:var(--warn);font-size:.72rem}.editor-text textarea{min-height:180px}.modal.wide{max-width:1000px}.bulkbar{flex-wrap:wrap;align-items:center;gap:10px;min-height:38px;margin:8px 0;display:flex}.bulkbar .bulkbar-all{margin-left:auto}.chk{width:36px}.chk input{width:auto}.import-history{margin:10px 0 18px}.import-history .table-wrap{margin-top:8px}.control-copies{border-top:1px dashed var(--line);padding-top:6px}.control-copies p{margin:2px 0}.control-status{margin:4px 0 0;padding-left:18px}.control-status li{margin:2px 0}fieldset.scope{border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:10px 12px}fieldset.scope legend{color:var(--muted);padding:0 6px;font-size:.8rem}fieldset.scope .table-wrap{margin-top:8px}
