
:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#e7eef7;background:#090e18;font-synthesis:none;color-scheme:dark;--accent:#29d4cd;--muted:#91a2b8;--border:#253145}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--border);border-radius:9px;padding:11px 15px;font-weight:600;color:#dce7f4;background:#172234}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:#052827;border:0;box-shadow:0 4px 18px #22cfc51a}.secondary{background:#142033}.quiet{background:transparent}.error{color:#ffb0b0;font-size:14px;min-height:1em}.login{min-height:100vh;max-width:1230px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr;gap:110px;align-items:center;padding:70px 50px}.login-brand h1{font-size:clamp(40px,5vw,67px);line-height:1.08;letter-spacing:-2px;font-weight:650;margin:27px 0}.login-brand>p:not(.eyebrow){color:var(--muted);font-size:18px;line-height:1.8}.mark{font-size:49px;font-weight:800;color:var(--accent);letter-spacing:-5px}.mark>span{font-size:.57em;letter-spacing:-3px;vertical-align:middle}.mark.small{font-size:34px;letter-spacing:-3px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--accent)}.privacy-note{margin-top:55px;font-size:12px;color:#748ca6;line-height:2}.login-card{background:#101927;border:1px solid var(--border);border-radius:20px;padding:35px;box-shadow:0 30px 80px #0003}.tag{display:inline-block;font-size:10px;color:var(--accent);background:#16312f;border:1px solid #27504b;padding:6px 10px;border-radius:5px;letter-spacing:1px}.login-card h2{font-size:25px;letter-spacing:-.7px;margin:24px 0 8px}.login-card p{color:var(--muted);font-size:14px;line-height:1.6}.login-card .error{color:#ffb0b0}.login-card small{color:#7d90a8;line-height:1.6;font-size:12px}label{display:block;font-size:13px;color:#b8c9db;margin:18px 0}input,select,textarea{display:block;width:100%;margin-top:8px;background:#0b1320;border:1px solid #304058;border-radius:8px;padding:12px;color:#eef6ff}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:135px;resize:vertical;line-height:1.5}button.primary span{float:right}.login-card .primary{width:100%;margin:5px 0 0;padding:14px}.shell{display:grid;grid-template-columns:244px 1fr;min-height:100vh}aside{position:sticky;top:0;height:100vh;background:#0d1421;border-right:1px solid #202d3e;padding:31px 17px 22px;display:flex;flex-direction:column}.brand{color:#edf7ff;text-decoration:none;display:flex;align-items:center;gap:14px;font-size:21px;font-weight:650;padding:0 12px}.brand small{display:block;font-size:9px;color:#778da8;letter-spacing:2px;margin-top:4px}.nav-label{font-size:9px;color:#667c97;letter-spacing:1.8px;margin:42px 12px 17px}nav{display:grid;gap:5px}nav button{text-align:left;background:transparent;border:1px solid transparent;color:#8fa4be;font-size:13px;font-weight:500;padding:13px 11px;display:flex;align-items:center;gap:11px}nav button span{font-size:16px;width:20px;text-align:center;color:#6d879f}nav button.active{background:#183231;border-color:#27514d;color:#91fff1}nav button.active span{color:var(--accent)}nav button:hover:not(.active){background:#172234}.owner{margin-top:auto;padding:28px 4px 18px;display:flex;gap:10px;align-items:center;font-size:11px}.owner small{display:block;color:#7088a4;font-size:10px;margin-top:5px}.avatar{background:#283448;border:1px solid #43516a;border-radius:50%;display:grid;place-items:center;width:32px;height:32px;color:#c9d7ea}aside .quiet{font-size:11px;color:#8c9eb5}header{height:83px;border-bottom:1px solid #1e2a3b;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:20px}.breadcrumb{font-size:10px;letter-spacing:1px;color:#59708c}.breadcrumb span{color:#a0b1c5}.secure{font-size:10px;color:#66c5ab;letter-spacing:1px;background:#11261f;border:1px solid #234638;border-radius:20px;padding:8px 12px}.workspace{padding:36px 38px;max-width:1580px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}.page-heading h1{font-size:30px;letter-spacing:-1px;margin:10px 0}.page-heading p:last-child{font-size:13px;color:var(--muted);line-height:1.7;margin-top:0}.page-heading .secondary{font-size:12px;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:26px 0}.metric{border:1px solid var(--border);border-radius:12px;padding:20px;background:#101a29}.metric small{color:#8d9fb7;font-size:11px}.metric strong{font-size:29px;font-weight:600;display:block;margin:10px 0 2px;letter-spacing:-1px}.metric em{font-size:10px;color:#5f7997;font-style:normal}.notice{background:#112322;border:1px solid #23423f;border-radius:8px;padding:14px 17px;color:#91c9bd;font-size:12px;line-height:1.7;margin-bottom:20px}.notice:empty{display:none}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 15px}.toolbar button{font-size:12px}.panel{background:#101927;border:1px solid #233147;border-radius:12px;overflow:auto;min-height:250px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;white-space:nowrap}th{font-size:9px;font-weight:650;text-transform:uppercase;letter-spacing:1px;color:#8298b2;background:#111d2e;padding:18px;border-bottom:1px solid var(--border)}td{padding:17px 18px;border-bottom:1px solid #202b3d;color:#bbcde0}tr:last-child td{border:0}td.title{color:#e5f1ff;font-weight:550}td small{display:block;color:#6c849f;font-size:10px;margin-top:5px}.badge{border:1px solid #364659;border-radius:5px;padding:4px 8px;font-size:10px;color:#a7b7cb;display:inline-block}.badge.active,.badge.ok{background:#12302a;color:#70dfbe;border-color:#255447}.badge.pending{background:#32291b;color:#e0bb7b;border-color:#52412a}.badge.suspended,.badge.revoked,.badge.denied,.badge.rejected{background:#321e29;color:#e7a0b5;border-color:#573144}.row-actions{display:flex;gap:5px}.row-actions button{font-size:10px;padding:6px 9px;background:#172438}.row-actions .danger{color:#f0a9b7}.empty{text-align:center;padding:70px 20px;color:#7e93ac;font-size:13px}.empty strong{display:block;font-size:18px;color:#c6d6e8;margin-bottom:10px}.settings-form{padding:25px;max-width:650px}.settings-form p{color:#8da4bb;font-size:13px;line-height:1.7}footer{font-size:10px;color:#62758e;margin:23px 0}dialog{background:#111d2b;color:#e5eef9;border:1px solid #344359;border-radius:15px;width:min(580px,94vw);max-height:88vh;padding:25px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#050a14bb;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading h2{font-size:22px;letter-spacing:-.6px;margin:5px 0}.icon{background:transparent;border:0;font-size:24px;padding:2px 9px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.help{font-size:12px;color:#8fa7c0;line-height:1.7}.result{overflow-wrap:anywhere;background:#08131d;padding:15px;border:1px solid #27484b;border-radius:8px;font-family:monospace;font-size:13px;white-space:pre-wrap;max-height:350px;overflow:auto}#toast{position:fixed;bottom:24px;right:24px;max-width:420px;padding:16px 23px;border:1px solid #306154;background:#17362e;color:#b2f4d9;border-radius:10px;font-size:13px;box-shadow:0 8px 30px #0008;z-index:10}[hidden]{display:none!important}@media(max-width:1050px){.shell{grid-template-columns:205px 1fr}aside{padding-inline:10px}.workspace{padding:24px}.metrics{gap:8px}.metric{padding:14px}header{padding:0 24px}.brand{font-size:18px}}@media(max-width:760px){.login{grid-template-columns:1fr;gap:30px;padding:35px 20px}.login-brand h1{font-size:40px}.privacy-note{display:none}.login-card{padding:24px}.shell{display:block}aside{position:relative;height:auto;padding:17px}nav{display:flex;overflow:auto;margin-top:10px}nav button{white-space:nowrap;flex-shrink:0}.nav-label,.owner{display:none}aside .quiet{position:absolute;top:25px;right:18px}.brand{max-width:220px}.workspace{padding:20px 14px}header{height:50px;padding:0 14px}.metrics{grid-template-columns:repeat(2,1fr)}.page-heading h1{font-size:25px}.secure{font-size:8px}.breadcrumb{font-size:8px}.page-heading{align-items:start}.page-heading .secondary{padding:9px}.dialog-footer{position:sticky;bottom:-25px;background:#111d2b;padding-bottom:10px}}

.policy-dialog{width:min(920px,94vw)}.policy-target{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-bottom:18px}.policy-fields{max-height:48vh;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 2px}.policy-fields h3{grid-column:1/-1;color:var(--accent,#52dcc9)}.policy-fields label{display:flex;flex-direction:column;gap:6px}.policy-fields input,.policy-fields select,.policy-target select{width:100%;min-width:0}.policy-editor .row-actions{margin:12px 0;flex-wrap:wrap}.sound-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding:22px}.sound-card{border:1px solid #284450;border-radius:16px;padding:20px;background:#10222b}.sound-card p{color:#9eb5c2}@media(max-width:600px){.policy-fields{grid-template-columns:1fr}.policy-target{grid-template-columns:1fr}}

nav{min-height:0;overflow-y:auto}.policy-editor .row-actions .primary{background:var(--accent);color:#052827}.policy-fields{max-height:35vh;gap:8px 14px}.policy-fields label{margin:4px 0}.policy-target{gap:5px 12px;margin-bottom:8px}.policy-editor>.row-actions:last-of-type{position:sticky;bottom:0;background:#111d2b;padding:10px 0;align-items:center}.policy-editor>.row-actions select{width:min(240px,100%);margin:0}.policy-dialog .help{margin:6px 0}.policy-dialog .dialog-footer{margin-top:8px}

.policy-target label{margin:0;align-self:center}.policy-target select{margin:0}.policy-dialog .dialog-footer{display:none}@media(max-width:600px){.policy-dialog{padding:18px}.policy-fields{max-height:24vh}.policy-target{gap:6px}.policy-editor>.row-actions:last-of-type{gap:6px}.policy-editor>.row-actions select{width:100%}.policy-editor>.row-actions:last-of-type button{width:100%;padding:10px;font-size:12px}}
.apk-link{display:inline-flex;align-items:center;justify-content:center;background:#29d4cd;color:#052827;border-radius:10px;padding:13px 18px;text-decoration:none;font-size:14px;font-weight:650;line-height:1.5}.apk-link:hover{background:#6ce9e1}.sidebar-download{font-size:11px;margin:0 0 12px}@media(max-width:760px){.sidebar-download{margin:14px 0 0;max-width:240px}}
.invitation-qr{display:block;width:min(100%,280px);height:auto;margin:18px auto;border:12px solid white;border-radius:14px;background:white;image-rendering:pixelated}

/* Keep wide device tables inside their panel, including small PC screens. */
.shell{grid-template-columns:244px minmax(0,1fr)}.shell>main{min-width:0}.workspace{width:100%;min-width:0}.access-filters{display:flex;flex-wrap:wrap;gap:10px;padding:16px}.access-filters input,.access-filters select{flex:1 1 200px;min-width:0;margin:0}.access-filters select{flex-grow:0}
@media(max-width:1050px){.shell{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:760px){.shell{display:block}.access-filters select{flex-grow:1}}

/* Boki Toki communication-console visual system. */
:root{--accent:#00dfdf;--muted:#95afc4;--border:#29475b;background:#06111d}
body{background:radial-gradient(ellipse at 75% 0,#102b3e 0,transparent 55%),#06111d}
aside{background:linear-gradient(180deg,#0b1b2a,#06111d);border-color:#264253}.brand{letter-spacing:-.6px}.brand small{letter-spacing:2px;color:#89adbd}
nav button.active{background:linear-gradient(100deg,#006a83,#064354);color:#d7ffff;border-color:#098799;box-shadow:inset 3px 0 #00dfdf}
header{background:#06111d99;border-color:#203b4e}.workspace{padding-top:28px}.page-heading h1{font-size:32px;font-weight:700}.page-heading p:last-child{max-width:680px}
.metric{background:linear-gradient(135deg,#193347,#0d1d2d);border-color:#2a485d;box-shadow:0 10px 30px #0002}.metric strong{color:#eaffff;font-size:34px}.metric small{color:#c1d8e5}.metric em{color:#96b7ca}
.panel,.overview-card{background:linear-gradient(150deg,#102435,#0b1927);border-color:#29475b}.primary{box-shadow:0 5px 20px #00dfdf15}.notice{background:#07322f;border-color:#12665a;color:#b5ece0}
.dashboard-content{border:0;background:none;overflow:visible;min-height:0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px}.overview-card{border:1px solid #29475b;border-radius:16px;padding:22px;min-width:0}.overview-card h2{font-size:18px;letter-spacing:-.4px;margin:0 0 8px}.overview-card>.help{margin:0 0 18px}
.activity-row,.channel-overview{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #284051}.activity-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#093d4c;color:var(--accent);font-size:18px}.activity-row>div,.channel-overview>div{flex:1;min-width:0}.activity-row strong,.channel-overview strong{font-size:12px;display:block;overflow-wrap:anywhere}.activity-row small,.channel-overview small{display:block;font-size:11px;color:#89a9bd;margin-top:5px;overflow-wrap:anywhere}.activity-row time{font-size:10px;color:#aac4d5;flex-shrink:0}.channel-overview .badge{white-space:nowrap}.overview-card>button{margin-top:16px}
.access-meter{margin:18px 0}.meter-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.meter-label strong{color:var(--accent)}progress{display:block;width:100%;height:7px;border:0;border-radius:8px;overflow:hidden;background:#213b4b;accent-color:var(--accent)}progress::-webkit-progress-bar{background:#213b4b}progress::-webkit-progress-value{background:linear-gradient(90deg,#0c9fc3,#00dfdf)}
.guide-step{display:flex;gap:14px;margin:18px 0}.guide-step>span{font-size:12px;color:var(--accent);border:1px solid #2b5364;border-radius:10px;height:34px;min-width:34px;display:grid;place-items:center}.guide-step strong{font-size:13px}.guide-step p{margin:6px 0;color:#96b2c5;font-size:12px;line-height:1.6}details>summary{cursor:pointer;color:var(--accent);font-size:13px;padding:10px 0}.row-actions{flex-wrap:wrap}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.overview-card{padding:16px}.activity-row{flex-wrap:wrap}.activity-row time{margin-left:46px}.page-heading h1{font-size:27px}.secure{display:none}.login{padding:25px 16px}}

.radio-mark{width:64px;height:64px;fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.mark.small .radio-mark{width:40px;height:40px}.nav-symbol{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}

/* Device configuration: keep identifiers and previews inside the modal on small screens. */
.policy-dialog th,.policy-dialog td{white-space:normal;overflow-wrap:anywhere}.policy-dialog .row-actions button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:520px){.policy-dialog th,.policy-dialog td{padding:12px 6px;vertical-align:top}.policy-dialog .row-actions button{padding:7px 6px}}
.device-detail{margin-top:18px}.device-detail td,.policy-dialog td{overflow-wrap:anywhere;word-break:break-word}.policy-dialog table{width:100%;min-width:0;table-layout:fixed}.policy-dialog details{padding:10px 12px;margin:10px 0;border:1px solid var(--border);border-radius:10px;background:#0b1b29}.policy-dialog summary{overflow-wrap:anywhere}.panel input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin:0}.panel>input[type=search]{width:calc(100% - 28px);margin:14px}.panel>.help{margin:14px}

.policy-fields.notice-fields{max-height:none;overflow:visible}.policy-fields.notice-fields>p:last-child{grid-column:1/-1}.policy-fields.notice-fields>button{align-self:end;min-height:44px}

.policy-editor.notice-editor>.row-actions:last-of-type{position:static}

.sync-results table { white-space:normal; overflow-wrap:anywhere; }
@media(max-width:650px) {
 .sync-results table,.sync-results tbody { display:block; min-width:0; }
 .sync-results thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .sync-results tr { display:block; border:1px solid #29465a; border-radius:10px; padding:8px 12px; margin:10px 0; }
 .sync-results td { display:grid; grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr); gap:8px; padding:6px 0; border:0; }
 .sync-results td::before { content:attr(data-label); color:#aac4d5; font-weight:400; }
}
