:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#20354b;background:#f5f7fa;font-synthesis:none;--blue:#165bd4;--muted:#718096;--line:#e3e9f0;--ink:#10273d}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{border:0;border-radius:8px;background:var(--blue);color:white;padding:11px 18px;font-weight:600;cursor:pointer}button:hover{filter:brightness(.95)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #79b8ff;outline-offset:3px}button:disabled{opacity:.6;cursor:wait}.secondary{background:white;color:#43576c;border:1px solid #d7e0ea}.small{font-size:12px;padding:8px 12px}.shell{display:flex;min-height:100vh}.sidebar{width:254px;flex-shrink:0;background:#10263d;color:#c1d0de;padding:32px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:white;font-size:25px;font-weight:650;letter-spacing:-.8px}.brand-icon{width:42px;height:42px;display:grid;place-items:center;background:#236ae8;border-radius:12px;color:white;font-size:27px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#9fb2c6;margin-top:5px}.workspace{margin:40px 10px 16px;font-size:9px;letter-spacing:1.6px;color:#89a0b7;display:flex;align-items:center;gap:20px}.live-dot{width:6px;height:6px;background:#59c5a4;border-radius:50%}.sidebar nav{display:grid;gap:7px}.sidebar nav button{font-size:11px;font-weight:400;background:transparent;color:#748da6;text-align:left;padding:13px 12px;display:flex;gap:13px}.sidebar nav button span{font-size:13px;color:#bdcddd}.sidebar nav button.active{background:#1c3d5f;color:#74a9ff}.sidebar nav button.active span{color:white}.sidebar-foot{margin-top:auto;padding:40px 9px 0;font-size:10px;color:#8096ae;line-height:1.8}.sidebar-foot strong{font-weight:400;color:#c5d4e3}.version{display:block;font-size:8px;letter-spacing:1px;border-top:1px solid #28415b;padding-top:17px;margin-top:20px}.main{flex:1;min-width:0;padding:0 42px}.topbar{display:flex;align-items:center;justify-content:space-between;height:80px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.topbar strong{font-weight:500;color:#38506a}.topbar>div{display:flex;gap:17px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;color:#637d98;font-weight:700}.heading{display:flex;justify-content:space-between;align-items:center;margin:35px 0 25px;gap:20px}h1{font-size:30px;letter-spacing:-1px;font-weight:600;color:var(--ink);margin:10px 0 9px}h2{font-size:16px;color:var(--ink);font-weight:600;margin:0 0 16px}h3{font-size:14px;margin:0 0 8px}p{font-size:13px;line-height:1.7;margin:7px 0 15px}.muted{color:var(--muted);font-size:12px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:23px;box-shadow:0 2px 3px #142b4010}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin:20px 0 25px}.stat .label{font-size:11px;color:#6d8296}.stat .number{font-size:34px;font-weight:600;margin:13px 0 5px;color:#183750}.stat small{font-size:10px;color:#8998a6}.split{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;margin:22px 0}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;gap:15px}.card-head h2{margin:0}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:600;white-space:nowrap;background:#eef2f7;color:#60758a}.badge.good{background:#e8f5ef;color:#23845c}.badge.warn{background:#fff1df;color:#a66a1b}.badge.blue{background:#eaf0ff;color:#3968b8}.badge.bad{background:#fcecea;color:#b64d41}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{padding:12px;text-align:left;font-size:9px;letter-spacing:1px;color:#7c8fa1;font-weight:600;background:#f8fafc;border-bottom:1px solid var(--line)}td{padding:15px 12px;border-bottom:1px solid #eef1f5}tr:last-child td{border:0}tr[data-id]{cursor:pointer}tr[data-id]:hover{background:#f5f9ff}.mono{font-family:Consolas,monospace;font-size:10px}.chart{display:flex;align-items:flex-end;gap:22px;height:180px;padding:20px 12px 0;border-bottom:1px solid var(--line)}.bar-group{flex:1;text-align:center}.bar{border-radius:5px 5px 0 0;background:#2469dc;min-height:3px;margin:auto;width:58%;position:relative}.bar b{position:absolute;top:-22px;left:0;right:0;font-size:12px;font-weight:500}.chart-labels{display:flex;gap:22px;text-align:center;font-size:10px;color:#7b8da0;margin:12px}.chart-labels span{flex:1}.note{padding:13px 16px;background:#eff5ff;border:1px solid #dae6ff;border-radius:9px;font-size:12px;color:#4c688c;line-height:1.6;margin:18px 0}.timeline{display:grid;gap:23px;margin-top:22px}.timeline-item{display:flex;gap:13px}.step-dot{width:26px;height:26px;flex:none;border-radius:50%;background:#edf3ff;color:#3c70c0;display:grid;place-items:center;font-size:11px}.timeline p{font-size:11px;color:#8191a3;margin:4px 0 0}.empty{text-align:center;color:#7f91a4;font-size:13px;padding:48px 20px;line-height:1.7}.empty strong{display:block;color:#4c6680;margin-bottom:9px}.actions{display:flex;gap:10px;flex-wrap:wrap}a{color:#286acb}.page-foot{display:flex;justify-content:space-between;color:#98a5b3;font-size:10px;padding:30px 0;border-top:1px solid var(--line);margin-top:35px}.login{max-width:760px;margin:70px auto}.login h1{font-size:34px}.login form{margin:30px 0 18px}label{display:block;font-size:12px;font-weight:500;margin:15px 0 8px}.input-row{display:flex;gap:10px}input,select{padding:11px 12px;border:1px solid #d8e1eb;border-radius:7px;min-width:0;background:white;color:#304b65}input{width:100%}.filters{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap}.filters label{margin:0}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.modules label{display:flex;align-items:center;gap:8px;font-weight:400;margin:0;padding:10px;background:#f7f9fc;border-radius:6px}.modules input{width:auto}.toast{position:fixed;right:30px;bottom:25px;background:#193f60;color:white;border-radius:9px;padding:15px 20px;z-index:20;max-width:500px;font-size:13px}dialog{border:1px solid var(--line);border-radius:14px;max-width:1000px;width:92vw;max-height:88vh;padding:26px;color:#294057}dialog::backdrop{background:#10263d88}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}pre{font:11px/1.6 Consolas,monospace;background:#f5f8fc;border-radius:8px;padding:16px;overflow:auto;max-height:420px;white-space:pre-wrap;word-break:break-word}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lab{background:#f5f7fa}.lab main{max-width:900px;margin:60px auto;padding:30px}.lab nav{display:flex;gap:25px;margin:25px 0}.lab .card{margin-top:30px}.lab button{margin-right:8px}.lab h1{font-size:40px}.lab #sdk-status{margin-top:20px}.metric-row{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #eef2f6;font-size:12px}.metric-row:last-child{border:0}.panel-description{max-width:700px;color:#7b8ea0;font-size:13px}.definition{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:12px;margin:15px 0}.definition dt{color:#8293a3}.definition dd{margin:0;line-height:1.6}@media(max-width:1100px){.sidebar{width:210px;padding:25px 15px}.main{padding:0 24px}.split{grid-template-columns:1fr}.stats{gap:10px}.stat .number{font-size:29px}}@media(max-width:760px){.shell{display:block}.sidebar{width:auto;position:static;height:auto;padding:20px}.brand small,.workspace,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;margin-top:20px;gap:3px}.sidebar nav button{white-space:nowrap;padding:10px 8px}.sidebar nav button span{font-size:11px}.main{padding:0 17px}.topbar{height:65px}.topbar #clock{display:none}.heading{margin:25px 0 18px;display:block}.heading .actions{margin-top:18px}h1{font-size:25px}.stats{grid-template-columns:repeat(2,1fr)}.card{padding:18px}.profile-grid,.detail-grid{grid-template-columns:1fr}.modules{grid-template-columns:repeat(2,1fr)}.page-foot span{display:none}.login{margin:30px auto}.input-row{flex-direction:column}.lab main{margin:10px auto;padding:20px}.lab h1{font-size:30px}}

textarea{font:inherit;width:100%;padding:11px 12px;border:1px solid #d8e1eb;border-radius:7px;resize:vertical}select[multiple]{display:block;width:100%}

/* Dashboard: semantic tokens and native HTML interactions, independent of the SDK. */
body.dashboard{--surface:#fff;--canvas:#f5f7fa;--ink:#172b40;--muted:#4e6277;--line:#ccd5df;--subtle:#edf2f7;--blue:#1256ba;--focus:#1256ba;--nav:#11283e;--nav-text:#d3e0ed;font:1rem/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--canvas);color:var(--ink);color-scheme:light dark}
.dashboard :where(h1,h2,h3,p,a,span,dt,dd,summary,label){overflow-wrap:anywhere}
.dashboard :where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.dashboard a{color:var(--blue);text-underline-offset:.18em}.dashboard a:hover{text-decoration-thickness:2px}
.dashboard button,.dashboard .button{min-height:44px;padding:.65rem 1rem;border-radius:9px;background:var(--blue);color:#fff;border:1px solid transparent;font-size:1rem;font-weight:600;line-height:1.35;white-space:normal;text-align:center}
.dashboard button:hover{filter:brightness(.92)}.dashboard button:active,.dashboard .button:active{filter:brightness(.82)}
.dashboard button.secondary{background:var(--surface);border-color:var(--line);color:var(--blue)}
.dashboard .shell{min-height:100dvh}.dashboard .sidebar{width:246px;padding:28px 20px;background:var(--nav);color:var(--nav-text);overflow:auto}
.dashboard .brand{font-size:1.5rem;color:#fff;letter-spacing:-.035em}.dashboard .brand small{font-size:.75rem;letter-spacing:.08em;color:var(--nav-text)}
.dashboard .workspace{font-size:.75rem;color:var(--nav-text);letter-spacing:.08em;margin:34px 10px 12px}
.dashboard .sidebar nav{display:grid;gap:6px}.dashboard nav a{display:block;padding:11px 12px;min-height:44px;border-radius:8px;color:var(--nav-text);font-size:.9375rem;text-decoration:none;line-height:1.5}
.dashboard nav a:hover{background:#203f5c}.dashboard nav a[aria-current=page]{color:#fff;background:#285783;font-weight:650;box-shadow:inset 3px 0 #a7d5ff}
.dashboard .sidebar :focus-visible{outline-color:#b6ddff}.dashboard .sidebar-foot{font-size:.8125rem;color:var(--nav-text);padding:32px 8px 0;line-height:1.6}.dashboard .sidebar-foot p{font-size:inherit}.dashboard .version{color:var(--nav-text);font-size:.75rem;letter-spacing:0}
.dashboard .main{max-width:1800px;padding:0 clamp(20px,3vw,48px);margin:0 auto;width:100%}.dashboard .topbar{height:auto;min-height:88px;gap:16px;padding:16px 0;color:var(--muted);font-size:.875rem;flex-wrap:wrap}
.dashboard .signed-in{display:flex;flex-direction:column;gap:0!important;align-items:flex-start!important;color:var(--ink)}.dashboard .signed-in span:last-child{font-size:.8125rem;color:var(--muted)}
.dashboard .topbar form{margin:0}.dashboard .topbar>div{gap:12px}.dashboard .heading{margin:32px 0 24px}.dashboard h1{font-size:clamp(1.75rem,2.4vw,2.25rem);font-weight:650;line-height:1.2;letter-spacing:-.035em;color:var(--ink);margin:0}
.dashboard h2{font-size:1.1875rem;line-height:1.35;color:var(--ink);margin:0 0 16px}.dashboard h3{font-size:1rem;line-height:1.4;color:var(--ink);margin:20px 0 8px}.dashboard p{font-size:1rem;line-height:1.6;margin:8px 0 18px}.dashboard .intro{max-width:78ch;color:var(--muted)}
.dashboard .muted,.dashboard .field-help{font-size:.875rem;color:var(--muted);line-height:1.6}.dashboard .card{background:var(--surface);border-color:var(--line);padding:24px;box-shadow:0 2px 6px #10263d08;border-radius:12px;min-width:0;margin-bottom:24px}
.dashboard .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;margin:24px 0}.dashboard .split>.card{margin:0}.dashboard .profile-grid{gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dashboard .stat .label,.dashboard .stat h2{font-size:.875rem;color:var(--muted);font-weight:500}.dashboard .stat .number{font-size:2.125rem;color:var(--ink);line-height:1.2}.dashboard .stat small{font-size:.8125rem;color:var(--muted)}
.dashboard label{font-size:.9375rem;font-weight:550;margin:0 0 18px;line-height:1.5}.dashboard input,.dashboard select,.dashboard textarea{display:block;width:100%;min-height:44px;margin-top:7px;padding:10px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;font:inherit}
.dashboard select{max-width:100%}.dashboard select[multiple]{min-height:140px}.dashboard textarea{resize:vertical}.dashboard .form-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard .dashboard-form{margin:20px 0 0}.dashboard .topbar .dashboard-form{margin:0}
.dashboard .check-control,.dashboard .modules label{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:400;margin:0;padding:10px 0}.dashboard input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:none;margin:0;accent-color:var(--blue)}
.dashboard .check-control{margin-bottom:18px}.dashboard fieldset{border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 20px;min-width:0}.dashboard legend{padding:0 6px;font-weight:600;font-size:.9375rem}.dashboard .modules{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin:0}.dashboard .modules label{background:transparent}
.dashboard .table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:8px;scrollbar-gutter:stable}.dashboard table{font-size:.875rem;line-height:1.55}.dashboard th{color:var(--muted);background:var(--subtle);font-size:.8125rem;letter-spacing:0;text-transform:none;line-height:1.5;padding:12px 14px}.dashboard td{padding:14px;border-color:var(--line);max-width:40ch;white-space:normal;min-width:120px;overflow-wrap:anywhere}.dashboard td a{display:inline-block;padding:6px 0}.dashboard .mono{font-size:.875rem}
.dashboard .badge{font-size:.8125rem;line-height:1.5;padding:5px 10px;white-space:normal}.dashboard .badge-neutral{background:var(--subtle);color:var(--ink)}.dashboard .badge-warning{background:#fff0ce;color:#704408}.dashboard .badge-danger{background:#ffe9e7;color:#962a27}
.dashboard .record-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 24px}.dashboard .record-meta div{min-width:0}.dashboard dt{font-size:.8125rem;color:var(--muted);margin-bottom:4px}.dashboard dd{font-size:.9375rem;margin:0;color:var(--ink)}
.dashboard details{min-width:0}.dashboard details>summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600;font-size:1rem;color:var(--ink)}.dashboard details>summary:active{color:var(--blue)}.dashboard .technical,.dashboard .installation-access{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 20px;margin:24px 0}.dashboard .technical[open],.dashboard .installation-access[open]{padding-bottom:20px}.dashboard pre{font:.8125rem/1.6 Consolas,monospace;background:var(--subtle);color:var(--ink);margin:12px 0 0;padding:16px;max-height:440px}
.dashboard .notice{padding:16px 20px;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:8px;background:var(--surface);color:var(--ink);margin-bottom:24px;font-size:1rem}.dashboard .notice.error{border-left-color:#b62f29}.dashboard .notice h2{margin-bottom:8px}.dashboard .empty-state{padding:24px 0;color:var(--muted)}
.dashboard .login,.dashboard .installation-access{max-width:680px;margin:24px auto}.dashboard .login form{margin:24px 0}.dashboard .account-panel{max-width:680px}.dashboard .page-foot{font-size:.8125rem;color:var(--muted);gap:20px;flex-wrap:wrap;line-height:1.6;margin-top:40px}.dashboard .page-foot span{display:block}
.dashboard .mobile-header{display:none}.dashboard .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}.dashboard .skip-link{position:fixed;top:-100px;left:16px;padding:12px 18px;background:var(--surface);border:2px solid var(--blue);border-radius:8px;z-index:100;color:var(--blue)}.dashboard .skip-link:focus{top:12px}
@media(prefers-color-scheme:dark){body.dashboard{--surface:#1b2633;--canvas:#111b26;--ink:#e6edf5;--muted:#b2c1d2;--line:#536375;--subtle:#293747;--blue:#a0c9ff;--focus:#b6d7ff;--nav:#101e2d;--nav-text:#d3e0ed}.dashboard button,.dashboard .button{background:#a0c9ff;color:#122a48}.dashboard button.secondary{background:var(--surface);color:var(--blue)}.dashboard .badge-warning{background:#48371c;color:#ffdd9c}.dashboard .badge-danger{background:#542d31;color:#ffc9c6}.dashboard .notice.error{border-left-color:#ffb4ad}.dashboard .brand-icon{background:#236ae8;color:white}}
@media(max-width:1100px){.dashboard .sidebar{width:210px;padding:24px 14px}.dashboard .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard .split,.dashboard .profile-grid{grid-template-columns:1fr}}
@media(max-width:760px){.dashboard .sidebar{display:none}.dashboard .main{padding:0 16px}.dashboard .mobile-header{display:block;margin:0 -16px;padding:20px 16px;background:var(--nav);color:var(--nav-text)}.dashboard .mobile-header .brand{width:fit-content}.dashboard .mobile-menu{margin-top:16px}.dashboard .mobile-menu>summary{color:var(--nav-text);border:1px solid #60778f;border-radius:8px;padding:10px 12px}.dashboard .mobile-menu nav{display:grid;gap:4px;margin-top:8px}.dashboard .mobile-header :focus-visible{outline-color:#b6ddff}.dashboard .topbar{font-size:.8125rem;gap:12px;padding:16px 0}.dashboard .topbar>span{width:100%}.dashboard .heading{margin:24px 0 20px}.dashboard .card{padding:18px}.dashboard .form-pair,.dashboard .record-meta{grid-template-columns:1fr}.dashboard .modules{grid-template-columns:1fr}.dashboard .stats{gap:12px}.dashboard .stat .number{font-size:1.75rem}.dashboard .page-foot{display:block}.dashboard .page-foot span{margin-bottom:8px}.dashboard .technical,.dashboard .installation-access{padding:8px 16px}.dashboard input,.dashboard select,.dashboard textarea{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.dashboard *{scroll-behavior:auto;transition:none;animation:none}}
.dashboard .button-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;background:var(--blue);color:var(--surface);font-weight:600;border-radius:8px;text-decoration:none}
.dashboard .actions{align-items:center;gap:12px 20px}.dashboard .actions>a:not(.button-link){padding:10px 0;min-height:44px}
.dashboard .note{background:var(--subtle);color:var(--ink);border-color:var(--line);font-size:.9375rem}.dashboard .form-error{padding:16px 20px;border:1px solid var(--line);border-left:4px solid #b62f29;border-radius:8px;background:var(--surface);color:var(--ink);margin-bottom:24px}.dashboard .form-error h2{margin-bottom:8px}
@media(prefers-color-scheme:dark){.dashboard .button-link{color:#122a48}.dashboard .form-error{border-left-color:#ffb4ad}}
.dashboard .users-layout{grid-template-columns:minmax(280px,.85fr) minmax(0,1.65fr)}.dashboard .users-layout td{min-width:80px}.dashboard .users-layout td:nth-child(2){min-width:140px}
@media(max-width:1250px){.dashboard .users-layout{grid-template-columns:1fr}}
.dashboard.guest .main{max-width:800px}.dashboard .login-header{padding:28px 0 24px;border-bottom:1px solid var(--line)}.dashboard .login-header .brand{width:fit-content;color:var(--ink)}.dashboard .login-header .brand small{display:block;color:var(--muted)}
.dashboard input::placeholder,.dashboard textarea::placeholder{color:var(--muted);opacity:1}
