:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f5;color:#17212b;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#f8fafb,#edf2f6 42%,#e8edf1)}button,input,textarea{font:inherit}button,a{align-items:center;border:1px solid #cfd7df;border-radius:6px;color:#17212b;display:inline-flex;gap:7px;min-height:34px;padding:7px 10px;text-decoration:none}button{background:#fff;cursor:pointer}button:hover,a:hover{border-color:#3b7a83;color:#12545c}button:disabled{cursor:not-allowed;opacity:.45}input,textarea{background:#fff;border:1px solid #cfd7df;border-radius:6px;color:#17212b;min-width:0;padding:8px 9px;width:100%}textarea{min-height:72px;resize:vertical}label{color:#526272;display:grid;gap:5px;font-size:12px;font-weight:700}.app-shell{min-height:100vh}.topbar{align-items:center;background:#fff;border-bottom:1px solid #d8e0e7;display:grid;gap:16px;grid-template-columns:minmax(180px,260px) 1fr auto;min-height:78px;padding:12px 18px;position:sticky;top:0;z-index:4}h1{font-size:24px;letter-spacing:0;line-height:1;margin:0 0 6px}.subhead{color:#667586;font-size:13px}.topbar-actions,.toolbar-actions,.health-strip{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.metric,.state-pill,.status-chip{align-items:center;border:1px solid #d4dde5;border-radius:6px;display:inline-flex;gap:6px;min-height:28px;padding:5px 8px;white-space:nowrap}.metric{background:#f6f8fa;color:#334150;font-size:13px;font-weight:700}.metric.warn{background:#fff7df;border-color:#edd58d;color:#695019}.radio-dot{background:#2f8f83;border-radius:50%;height:9px;width:9px}.station-grid{display:grid;gap:12px;grid-template-columns:290px minmax(420px,1fr) 390px;padding:12px}.device-rail,.message-workspace,.right-rail>section,.setup-panel,.login-box{background:#fff;border:1px solid #d8e0e7;border-radius:8px}.device-rail,.message-workspace,.right-rail{min-height:calc(100vh - 102px)}.device-rail{overflow:hidden}.panel-title{align-items:center;border-bottom:1px solid #e3e8ed;display:flex;font-size:14px;font-weight:800;gap:8px;min-height:42px;padding:10px 12px}.device-list{display:grid;gap:10px;padding:10px}.device-block{border:1px solid #dbe3ea;border-radius:8px;overflow:hidden}.device-head{align-items:center;background:#f7f9fb;display:flex;gap:10px;justify-content:space-between;padding:10px}.device-head div,.sim-button span,.template-list span{display:grid;gap:3px;min-width:0}.device-head span,.sim-button small,.template-list small,.message-table small,.chat-line small,.ussd-line small{color:#667586;font-size:12px}.state-pill{background:#f5f7f9;font-size:12px;font-weight:800;padding:4px 7px}.state-pill.online{background:#e9f7f4;border-color:#a7d8d0;color:#12655b}.state-pill.offline{background:#f3f0ed;border-color:#dacfc6;color:#7b4a31}.sim-list{display:grid;gap:6px;padding:8px}.sim-button{justify-content:flex-start;min-height:54px;text-align:left;width:100%}.sim-button.active{background:#e8f5f4;border-color:#6fb8af}.message-workspace{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.toolbar{align-items:center;border-bottom:1px solid #e3e8ed;display:grid;gap:10px;grid-template-columns:minmax(210px,1fr) auto;padding:10px}.search-box{align-items:center;display:flex;gap:8px}.message-table-wrap{overflow:auto}.message-table{border-collapse:collapse;font-size:13px;min-width:780px;width:100%}.message-table th,.message-table td{border-bottom:1px solid #e7ecef;padding:9px 10px;text-align:left;vertical-align:top}.message-table th{background:#f7f9fb;color:#596978;font-size:12px;position:sticky;top:0;z-index:1}.message-table tr{cursor:pointer}.message-table tr.active,.message-table tbody tr:hover{background:#f0f8f7}.table-strong,.direction{align-items:center;display:inline-flex;gap:6px;font-weight:800}.direction.incoming{color:#2f6f8f}.direction.outgoing{color:#8a5d17}.message-body{max-width:360px;white-space:normal}.status-chip{background:#f6f8fa;color:#4d5b68;font-size:12px;min-height:24px}.empty-cell,.empty-inline{color:#7b8793;font-size:13px;padding:14px;text-align:center}.right-rail{display:grid;gap:12px}.right-rail>section{overflow:hidden}.thread-pane,.ussd-console,.template-panel,.device-settings{display:grid;gap:0}.thread-messages,.ussd-stream,.template-list,.identity-grid,.rate-grid,.compose-grid,.call-row,.reply-row,.ussd-form{padding:10px}.thread-messages,.ussd-stream{display:grid;gap:7px;max-height:170px;overflow:auto}.chat-line,.ussd-line{border:1px solid #dce4eb;border-radius:8px;display:grid;gap:4px;justify-self:start;max-width:88%;padding:8px 10px}.chat-line.outgoing,.ussd-line.owner{background:#eaf4f2;border-color:#bfdcd7;justify-self:end}.chat-line.incoming,.ussd-line.network{background:#f7f9fb}.compose-grid{border-top:1px solid #e7ecef;display:grid;gap:9px}.call-row,.reply-row,.ussd-form,.rate-grid{align-items:end;border-top:1px solid #e7ecef;display:grid;gap:8px;grid-template-columns:1fr auto}.call-status{background:#f0f7f3;border-top:1px solid #d7e7dc;color:#24543a;font-size:12px;font-weight:800;padding:9px 10px}.call-status.unavailable{background:#f8fafc;border-top-color:#d8e1e8;color:#53616c}.ussd-form,.rate-grid{grid-template-columns:minmax(0,1fr) auto}.template-list{display:grid;gap:7px}.template-list button{justify-content:flex-start;min-height:44px;text-align:left}.identity-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin:0}.identity-grid div{background:#f7f9fb;border:1px solid #e2e8ee;border-radius:6px;padding:8px}.identity-grid dt{color:#697887;font-size:11px;font-weight:800;margin-bottom:3px}.identity-grid dd{font-size:13px;font-weight:700;margin:0;overflow-wrap:anywhere}.rate-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.setup-panel{box-shadow:0 18px 42px #202b362e;display:grid;gap:12px;max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain;padding:12px;position:fixed;right:18px;top:92px;width:min(420px,calc(100vw - 36px));z-index:10}.setup-header,.setup-actions{align-items:center;display:flex;gap:10px;justify-content:space-between}.setup-header .panel-title{border:0;padding:0}.setup-actions{justify-content:flex-start}.setup-download{align-items:center;background:#f1f8f7;border:1px solid #c8e1dc;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.setup-download h3{font-size:15px;margin:0 0 3px}.setup-download p{color:#526272;font-size:13px;line-height:1.35;margin:0}.setup-facts{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin:0}.setup-facts div{background:#f7f9fb;border:1px solid #e2e8ee;border-radius:6px;padding:8px}.setup-facts dt{color:#697887;font-size:11px;font-weight:800;margin-bottom:3px}.setup-facts dd{font-size:12px;font-weight:800;margin:0;overflow-wrap:anywhere}.setup-checklist{display:grid;gap:8px}.setup-checklist div{align-items:start;color:#40505f;display:grid;font-size:13px;gap:8px;grid-template-columns:auto minmax(0,1fr);line-height:1.35}.setup-checklist svg{color:#12655b;margin-top:1px}.pairing-code{background:#17212b;border-radius:6px;color:#fff;letter-spacing:0;padding:8px 10px}.icon-button{min-height:34px;padding:7px}.error-banner,.error-text{background:#fff0ed;border:1px solid #e7b7ad;border-radius:6px;color:#8b2f20;margin:10px 12px 0;padding:9px 10px}.login-screen{align-items:center;display:grid;min-height:100vh;padding:20px}.login-box{display:grid;gap:13px;margin:0 auto;padding:20px;width:min(360px,100%)}.login-box h1{margin-bottom:6px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(max-width:1180px){.station-grid{grid-template-columns:260px minmax(0,1fr)}.right-rail{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));min-height:auto}}@media(max-width:760px){.topbar,.station-grid,.toolbar,.right-rail{grid-template-columns:1fr}.device-rail,.message-workspace,.right-rail{min-height:auto}.station-grid{padding:8px}.topbar{position:static}.reply-row,.call-row,.ussd-form,.rate-grid,.setup-download,.setup-facts{grid-template-columns:1fr}}
