/* Portal colours follow the explicit preference, otherwise the operating system. */
:root{font-family:"Segoe UI",Inter,system-ui,sans-serif;font-size:15px;line-height:1.5;color-scheme:light;--page:#f0f4f8;--surface:#fff;--soft:#f7f9fb;--ink:#203248;--muted:#738095;--line:#dfe6ee;--accent:#557c35;--accent-ink:#365524;--accent-soft:#eff5e6;--lime:#d5eaa5;--shadow:0 9px 30px #1b36550c;--danger:#ae6150;--error:#fff1ed}
:root[data-theme=dark]{color-scheme:dark;--page:#0d1013;--surface:#181d22;--soft:#1e252c;--ink:#dce5ed;--muted:#929eab;--line:#303943;--accent:#afce86;--accent-ink:#d0e7ac;--accent-soft:#253027;--lime:#a8cc74;--shadow:0 9px 30px #0003;--danger:#e5a08d;--error:#352420}
@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--page:#0d1013;--surface:#181d22;--soft:#1e252c;--ink:#dce5ed;--muted:#929eab;--line:#303943;--accent:#afce86;--accent-ink:#d0e7ac;--accent-soft:#253027;--lime:#a8cc74;--shadow:0 9px 30px #0003;--danger:#e5a08d;--error:#352420}}
*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink)}main{max-width:1390px;margin:auto;padding:30px 32px 18px}button,input{font:inherit}a{color:var(--accent);text-underline-offset:3px}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}p{margin:12px 0}h1{font-size:28px;letter-spacing:-.7px;line-height:1.25;margin:0 0 8px;font-weight:650}h2{font-size:19px;line-height:1.3;letter-spacing:-.3px;margin:0;font-weight:650}h3{font-size:16px;margin:0;font-weight:600}.muted{color:var(--muted)}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:3px 0 24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:27px;font-weight:750;letter-spacing:-1px;line-height:1.15}.brand-caption{display:block;color:var(--muted);font-size:11px;letter-spacing:.8px;font-weight:500;margin-top:5px}.brand-mark{display:flex;align-items:flex-end;gap:4px;width:46px;height:46px;padding:11px;border-radius:13px;background:var(--lime);box-shadow:0 4px 12px #658b3520}.brand-mark i{width:6px;background:#426531;border-radius:2px;height:11px}.brand-mark i:nth-child(2){height:18px}.brand-mark i:nth-child(3){height:24px}.masthead-tools{display:flex;align-items:center;gap:22px}.masthead-note{font-size:12px;color:var(--muted)}
.theme-picker{display:inline-flex;padding:3px;gap:3px;border:1px solid var(--line);background:var(--surface);border-radius:10px}.theme-picker button{display:inline-flex;align-items:center;justify-content:center;width:31px;height:29px;padding:6px;border:0;border-radius:7px;background:transparent;color:var(--muted)}.theme-picker button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.theme-picker button:hover{background:var(--soft)}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 2px 24px}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;font-size:10px;font-weight:650;color:var(--muted);margin:0 0 6px}.portal-heading .muted{font-size:13px;margin:0}.account-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:99px;font-weight:550;font-size:13px;max-width:45%;overflow-wrap:anywhere}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0}.account-chip .status-dot,.live-dot,.online .status-dot{background:var(--accent)}
.portal-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:22px;align-items:start}.workspace{display:flex;flex-direction:column;gap:22px;min-width:0}.card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:24px;box-shadow:var(--shadow);min-width:0}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.pill{font-size:10px;border-radius:99px;padding:4px 9px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.auth-tabs{display:flex;gap:5px;align-items:center;padding:4px;background:var(--soft);border:1px solid var(--line);border-radius:10px;margin:18px 0}.auth-tabs button{background:transparent;border:0;border-radius:7px;color:var(--muted);padding:8px 22px;font-size:13px;min-width:105px}.auth-tabs button[aria-selected=true]{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 2px 7px #00000012}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.form-field{min-width:0}label{display:block;color:var(--ink);font-size:12px;font-weight:550}input{display:block;width:100%;padding:11px 13px;margin-top:7px;border:1px solid var(--line);border-radius:9px;background:var(--soft);color:var(--ink);outline:none}input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.helptext{display:block;font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0 0}.form-field .helptext{margin:5px 0 0}.helptext ul{padding-left:17px}.error,.errorlist{font-size:12px;color:var(--danger);background:var(--error);border-radius:8px;padding:9px 12px}.errorlist{list-style:none;margin:7px 0}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:9px;padding:10px 14px;line-height:1.4;font-size:12px;font-weight:550;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}.button.primary{background:var(--lime);border-color:var(--lime);color:#30471f;box-shadow:0 3px 8px #73934518}.button.primary:hover{filter:brightness(1.04)}.button.secondary,.button.continue{background:var(--accent-soft);border-color:var(--line);color:var(--accent-ink)}.button.secondary:hover,.button.continue:hover{border-color:var(--accent)}.button.quiet{background:var(--soft);color:var(--muted);border-color:var(--line)}.button.quiet:hover{color:var(--ink)}.button.stop:hover,.button.delete:hover{color:var(--danger);border-color:var(--danger)}.icon-button{width:32px;height:32px;padding:7px;background:transparent;color:var(--muted);border-color:var(--line)}.icon-button svg{width:15px;height:15px}
.account-summary{display:flex;justify-content:space-between;align-items:start;gap:20px;margin:18px 0}.field-caption{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.account-name{font-size:21px;font-weight:600;overflow-wrap:anywhere}.personal-visits{text-align:right}.personal-visits strong{font-size:18px;color:var(--accent);font-weight:600}.account-actions{display:flex;align-items:center;gap:17px;justify-content:space-between;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.text-link{font-size:12px;color:var(--muted)}.account-actions form{margin:0}.compact{font-size:12px;line-height:1.65;margin:10px 0 16px}.session-heading .eyebrow{margin-bottom:4px}.session-heading form{margin:0}
.sessions-card{padding-bottom:18px}.session-group+.session-group{margin-top:18px}.session-group-title{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);font-weight:600;padding:8px 0;margin:0 0 5px}.session-group-title span{padding:1px 7px;border-radius:7px;background:var(--soft);font-size:10px}.sessions{list-style:none;margin:0;padding:0}.session-row{display:grid;grid-template-columns:minmax(200px,1fr) 120px auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);min-width:0}.session-row:last-child{border-bottom:0}.session-security{display:flex;gap:8px;align-items:center;min-width:0}.bond-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);min-width:0}.security-code{font:11px ui-monospace,Consolas,monospace;color:var(--muted);white-space:nowrap}.session-time{font-size:10px;color:var(--muted);white-space:nowrap}.session-time>span{display:block;font-size:9px;margin-bottom:2px}.session-time time{font-variant-numeric:tabular-nums}.session-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.session-actions form{margin:0;display:inline-flex}.session-actions .button{font-size:11px;padding:7px 9px}.session-actions .icon-button{padding:7px}.update-dot{font-size:9px;color:#c39a42}.empty-compact{font-size:12px;color:var(--muted);margin:5px 0 10px}.session-hint{font-size:11px;color:var(--muted);line-height:1.7;padding-top:14px;margin:15px 0 0;border-top:1px solid var(--line)}.empty-state{text-align:center;color:var(--muted);padding:24px 8px}.empty-state h3{font-size:15px;color:var(--ink);margin:11px 0 7px}.empty-state p{font-size:12px;line-height:1.7}.empty-icon{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);border-radius:12px;font-size:26px}
.roster-card{padding:24px 18px 18px;position:sticky;top:20px}.roster-card h2{font-size:17px}.people-icon{color:var(--accent);letter-spacing:2px;font-size:11px}.roster-scroll{overflow-x:auto}.roster{width:100%;border-collapse:collapse;text-align:left;font-size:11px}.roster th{color:var(--muted);font-weight:500;font-size:10px;padding:10px 4px;border-bottom:1px solid var(--line);vertical-align:top}.roster th span{display:block;font-size:9px;white-space:nowrap}.roster td{padding:14px 4px;border-bottom:1px solid var(--line);vertical-align:top}.roster td:first-child{color:var(--ink);font-weight:550;max-width:110px}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;margin-right:6px;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-size:10px;vertical-align:middle}.user-name{overflow-wrap:anywhere;word-break:break-word}.online{color:var(--accent)}.offline{color:var(--muted)}.roster .status-dot{margin-right:5px;width:5px;height:5px;vertical-align:middle}.last-seen{display:block;color:var(--muted);font-size:9px;line-height:1.7;margin-top:4px;max-width:150px}.last-seen time{white-space:nowrap}.counter{font-variant-numeric:tabular-nums;white-space:nowrap}.roster td.counter{color:var(--ink);font-size:11px;text-align:right}.roster th:last-child{text-align:right}.counter span{color:var(--muted)}.no-users{padding:20px 4px!important;font-weight:400!important}.site-visits{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:11px;padding:14px 12px;margin-top:20px;color:var(--muted);font-size:11px}.site-visits small{display:block;font-size:9px;margin-top:2px}.site-visits strong{font-size:22px;font-weight:550;color:var(--accent);letter-spacing:-.4px}.site-visits strong span{font-size:17px;color:var(--muted)}
.page-footer{display:flex;justify-content:space-between;align-items:center;margin-top:25px;padding:16px 2px;color:var(--muted);font-size:10px}.page-footer span{font-size:9px}main>h1{margin-top:30px}main>form{max-width:620px;padding:24px;background:var(--surface);border-radius:16px;border:1px solid var(--line)}main>form label{margin-bottom:12px}
@media(max-width:1250px){main{padding:25px}.portal-grid{grid-template-columns:minmax(0,1fr) 350px;gap:18px}.card{padding:21px}.roster-card{padding:21px 15px 16px}.session-row{grid-template-columns:minmax(180px,1fr) 110px auto;gap:9px}.session-actions{gap:4px}.session-actions .button{font-size:10px;padding:7px}.session-security{gap:6px}.bond-name{font-size:12px}.security-code{font-size:10px}.masthead-note{display:none}}
@media(max-width:1050px){.portal-grid{grid-template-columns:1fr}.roster-card{position:static}.session-row{grid-template-columns:minmax(240px,1fr) 140px auto}.session-actions .button{font-size:12px;padding:8px 11px}.security-code{font-size:11px}.bond-name{font-size:14px}.roster td:first-child{max-width:230px}.last-seen{max-width:none;font-size:10px}.roster{font-size:12px}.roster th{font-size:11px}}
@media(max-width:650px){main{padding:20px 15px}.card{padding:20px 17px}.portal-heading{padding:24px 2px 20px}h1{font-size:24px}.portal-heading .muted{font-size:12px}.session-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:12px 0}.session-security{grid-column:1/-1}.session-time{grid-column:1}.session-actions{grid-column:2;grid-row:2}.session-time>span{display:inline;margin-right:5px}.session-time{font-size:10px}.session-actions .button{font-size:11px;padding:7px 9px}.form-grid{grid-template-columns:1fr;gap:14px}.account-chip{font-size:11px;padding:7px 10px}.personal-visits .field-caption{max-width:140px}.account-summary{gap:10px}.session-heading{align-items:start;flex-wrap:wrap}.session-heading form{margin-top:5px}.auth-tabs button{flex:1;min-width:0}.theme-picker button{width:28px;height:28px;padding:5px}.brand-caption{font-size:10px}.brand{font-size:25px}.brand-mark{width:42px;height:42px;padding:9px}.masthead{gap:10px}.page-footer span{max-width:160px;text-align:right}.roster td:first-child{max-width:110px}}
@media(max-width:390px){main{padding:17px 10px}.card{padding:18px 14px}.portal-heading{align-items:start;gap:8px}h1{font-size:22px}.session-actions .button{padding:7px;font-size:10px}.security-code{font-size:10px}.account-actions{gap:8px}.session-time{font-size:9px}.button{padding:9px 11px}}

.session-resources{display:flex;gap:5px;flex-direction:column;font-size:11px;color:var(--muted);min-width:130px}.session-row{flex-wrap:wrap}.session-security{flex:1;min-width:110px}.session-resources span{white-space:nowrap}

.session-row{grid-template-columns:minmax(95px,1fr) 105px 132px auto}.session-resources{line-height:1.35}.session-actions{white-space:nowrap}@media(max-width:700px){.session-row{grid-template-columns:1fr auto;gap:8px}.session-resources{grid-column:1}.session-actions{grid-column:2}.session-time{text-align:right}}
