:root{color-scheme:light;--brand-100: #eaf8e7;--brand-200: #d8f4d1;--brand-500: #6dd22e;--brand-600: #52b35c;--mint-500: #64bf8c;--ink-900: #111827;--ink-800: #1f2937;--slate-700: #374151;--slate-600: #4b5563;--slate-500: #6b7280;--surface: #ffffff;--surface-soft: #f7faf8;--surface-mint: #f0f8f0;--dark-green: #10251a;--dark-green-2: #0f1f17;--bg: #f8fbf8;--panel: #ffffff;--panel-soft: var(--surface-soft);--text: var(--ink-900);--muted: var(--slate-600);--line: #dde8df;--line-strong: #cbd8cf;--accent: var(--brand-600);--accent-strong: #428f4a;--danger: #c14949;--shadow: 0 18px 55px rgba(16, 37, 26, .08);--shadow-card: 0 14px 40px rgba(17, 24, 39, .08);--font-brand: "Druk Wide Cyr", "Arial Black", Impact, var(--font-sans);--font-sans: Inter, Manrope, Onest, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-sans)}@font-face{font-family:Druk Wide Cyr;src:url(../fonts/DrukWideCyr-Bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Druk Wide Cyr;src:url(../fonts/DrukWideCyr-Heavy.otf) format("opentype");font-weight:900;font-style:normal;font-display:swap}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top left,rgba(109,210,46,.14),transparent 34rem),linear-gradient(180deg,#ffffff 0%,var(--bg) 100%);color:var(--text);scroll-behavior:smooth}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.app-shell[data-admin-only]:not([data-ready]){visibility:hidden}.sidebar{background:radial-gradient(circle at 24px 24px,rgba(109,210,46,.22),transparent 12rem),linear-gradient(180deg,var(--dark-green-2),var(--dark-green));border-right:1px solid rgba(255,255,255,.07);color:#edf4f0;display:flex;flex-direction:column;padding:24px 16px}.brand{align-items:center;display:inline-flex;gap:11px;font-family:var(--font-brand);font-size:21px;font-weight:900;letter-spacing:0;line-height:1;margin:0 0 28px}.brand:before{background:url(../brand/raildesk-mark.svg) center / contain no-repeat;content:"";display:block;height:34px;width:34px}.nav{display:grid;gap:4px}.sidebar-footer{margin-top:auto;padding-top:20px}.nav button,.nav a{width:100%;border:0;border-radius:8px;background:transparent;color:#edf4f0d1;display:flex;justify-content:space-between;padding:11px 12px;text-align:left;transition:background .15s ease,color .15s ease,transform .15s ease}.nav button.active,.nav button:hover,.nav a.active,.nav a:hover{background:#6dd22e29;color:#fff}.nav button:hover,.nav a:hover{transform:translate(1px)}.main{min-width:0;padding:22px}.topbar{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:18px}.topbar h1{color:var(--ink-900);font-size:28px;line-height:1.12;margin:0}.muted{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-card)}.toolbar{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;padding:14px}.toolbar h2{font-size:18px;margin:0 0 4px}.filters{display:flex;gap:10px;min-width:0}.input{background:#fff;border:1px solid var(--line-strong);border-radius:8px;min-height:38px;min-width:220px;padding:8px 10px}.button{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:8px;color:#fff;display:inline-flex;font-weight:650;min-height:38px;padding:8px 13px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .15s ease}.button:hover{background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 10px 24px #52b35c33;transform:translateY(-1px)}.button:focus-visible,.input:focus-visible,.nav button:focus-visible,.nav a:focus-visible{outline:3px solid rgba(47,125,87,.26);outline-offset:2px}.button.compact{min-height:30px;padding:5px 10px}.button.secondary{background:#fff;border-color:var(--line-strong);color:var(--text)}.button.secondary:hover{background:var(--brand-100);border-color:#52b35c73;box-shadow:none;color:var(--accent-strong)}.icon-button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--muted);display:inline-flex;font-size:28px;height:36px;justify-content:center;line-height:1;width:36px}.icon-button:hover{background:var(--panel-soft);color:var(--text)}.actions{align-items:center;display:flex;gap:8px}.sidebar-admin{justify-content:center;width:100%}.user-menu{position:relative}.user-menu__trigger{align-items:center;background:#ffffffa3;border:1px solid transparent;border-radius:8px;color:var(--ink-900);display:flex;gap:10px;min-height:52px;min-width:220px;padding:8px 10px;text-align:left}.user-menu__trigger:hover,.user-menu__trigger[aria-expanded=true]{background:#fff;border-color:var(--line);box-shadow:var(--shadow-card)}.avatar{align-items:center;background:linear-gradient(135deg,#6dd22ef2,#64bf8cf2);border:2px solid #ffffff;border-radius:999px;box-shadow:0 8px 20px #10251a24;color:#fff;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:850;height:34px;justify-content:center;line-height:1;width:34px}.user-menu__identity{display:grid;gap:2px;min-width:0}.user-menu__identity strong,.user-menu__identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__identity strong{font-size:14px;font-weight:800}.user-menu__identity small{color:var(--muted);font-size:11px}.user-menu__dropdown{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 55px #10251a24;display:grid;gap:4px;min-width:220px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:10}.user-menu__item{display:block;background:transparent;border:0;border-radius:6px;color:var(--text);font:inherit;min-height:36px;padding:8px 10px;text-align:left;width:100%}.user-menu__item:hover{background:var(--brand-100);color:var(--accent-strong)}.user-menu__item.danger{color:var(--danger)}.segmented{display:inline-flex;gap:8px}.button.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.connection-filters{justify-content:flex-start}.stage-chip{background:#4a7d5b1f;border:1px solid rgba(74,125,91,.24);border-radius:999px;color:var(--accent-strong);display:inline-flex;font-size:12px;font-weight:800;line-height:1;margin:2px 4px 2px 0;padding:6px 8px;white-space:nowrap}.stage-chip.fail{background:#c6444a1a;border-color:#c6444a3d;color:var(--danger)}.connection-route{align-items:center;display:inline-flex;gap:8px;min-width:0}.connection-route__arrow{color:var(--muted);font-weight:800}.route-peer{align-items:center;display:inline-flex;gap:8px;min-width:0}.route-peer__text{display:inline-grid;gap:2px;min-width:0}.route-peer__text strong,.route-peer__text small{overflow-wrap:anywhere}.route-peer__text small{color:var(--muted);font-size:12px;font-weight:700}.peer-info-button{padding-inline:8px}.modal{align-items:center;background:#0e181294;display:grid;inset:0;justify-items:center;padding:24px;position:fixed;z-index:20}.modal[hidden]{display:none}.modal-card{background:var(--panel);border-radius:8px;box-shadow:0 28px 80px #0c181242;max-height:min(820px,calc(100vh - 48px));overflow:auto;width:min(920px,100%)}.modal-header{align-items:start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:18px 20px}.modal-header h2{font-size:21px;margin:0;overflow-wrap:anywhere}.modal-kicker{color:var(--accent);font-size:12px;font-weight:800;margin:0 0 4px;text-transform:uppercase}.session-details{max-width:1040px;width:min(1040px,100%)}.peer-details{max-width:980px;width:min(980px,100%)}.peer-card{align-items:center;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) 300px;padding:34px 36px 46px}.peer-card__main{min-width:0}.peer-card h2{font-size:clamp(34px,4vw,54px);line-height:1.06;margin:0 0 46px;overflow-wrap:anywhere}.peer-specs{display:grid;gap:24px;margin:0;max-width:680px}.peer-specs div{display:grid;gap:26px;grid-template-columns:170px minmax(0,1fr)}.peer-specs dt,.peer-specs dd{font-size:26px;line-height:1.2;margin:0}.peer-specs dd{font-weight:650;overflow-wrap:anywhere}.peer-card__visual{color:#454545;display:grid;justify-items:center}.peer-computer{display:block;height:auto;width:min(100%,300px)}.peer-os-logo{fill:currentColor}.peer-os-logo--text text{dominant-baseline:middle;fill:currentColor;font-size:72px;font-weight:900;letter-spacing:0}.peer-card-more{border-top:2px solid rgba(14,24,18,.22);margin:0 36px 28px;padding-top:30px}.peer-more-grid{display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--line)}.peer-info-item{background:var(--panel);display:grid;gap:8px;min-height:78px;padding:16px}.peer-info-item span{color:var(--muted);font-size:13px;font-weight:800}.peer-info-item strong{font-size:17px;overflow-wrap:anywhere}.peer-history{border-top:1px solid var(--line);padding:22px 36px 32px}.peer-history h3{font-size:24px;margin:0 0 18px}.session-summary{background:var(--line);display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr))}.session-timeline{display:grid;gap:12px;padding:16px}.session-event{border:1px solid var(--line);border-radius:8px;overflow:hidden}.session-event__head{align-items:center;background:var(--panel-soft);border-bottom:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;padding:10px 12px}.session-event__grid{background:var(--line);display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr))}.event-payload{background:#16251b;color:#eff8ef;font-size:12px;margin:0;overflow:auto;padding:12px}.compact-field{align-items:center;display:inline-flex;gap:8px}.compact-field span{color:var(--muted);font-size:13px;font-weight:700}.row-actions{display:inline-flex;gap:8px}.color-chip{border:1px solid var(--line-strong);border-radius:999px;display:inline-block;height:14px;margin-right:8px;vertical-align:-2px;width:14px}.button.danger{background:var(--danger);border-color:var(--danger)}.dashboard-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.metric-panel{display:grid;gap:10px;min-height:132px;padding:18px}.metric-label{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.metric-panel strong{font-size:36px;line-height:1}.metric-line{color:var(--muted);font-size:14px}.server-panel{overflow:hidden}.server-summary{align-items:start;border-bottom:1px solid var(--line);display:grid;gap:16px;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);padding:18px}.server-summary h2{font-size:22px;margin:4px 0 0}.server-summary dl{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.server-summary dt{color:var(--muted);font-size:12px;font-weight:800}.server-summary dd{font-size:15px;font-weight:700;margin:4px 0 0;overflow-wrap:anywhere}.status-output{background:var(--dark-green);color:#e7f1ec;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;margin:0;max-height:380px;overflow:auto;padding:16px 18px;white-space:pre-wrap}.table-wrap{overflow:auto}table{border-collapse:collapse;min-width:900px;width:100%}th,td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:middle;white-space:nowrap}th{background:linear-gradient(180deg,#ffffff,var(--panel-soft));color:var(--muted);font-size:13px;font-weight:700}.table-sort{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:6px;padding:0}.table-sort:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;content:"";opacity:.35}.table-sort[data-direction=asc],.table-sort[data-direction=desc]{color:var(--text)}.table-sort[data-direction=asc]:after{opacity:1;transform:rotate(180deg)}.table-sort[data-direction=desc]:after{opacity:1}td{font-size:14px}.status-dot{border-radius:999px;display:inline-block;height:8px;margin-right:8px;width:8px}.status-dot.online{background:#2ca66a}.status-dot.offline{background:#d04545}.login-screen{align-items:center;background:radial-gradient(circle at 16% 16%,rgba(109,210,46,.18),transparent 30rem),radial-gradient(circle at 84% 12%,rgba(100,191,140,.14),transparent 28rem),linear-gradient(180deg,#ffffff,var(--surface-soft));display:grid;min-height:100vh;padding:22px}.login-box{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin:0 auto;max-width:420px;padding:26px;width:100%}.login-box h1{align-items:center;display:inline-flex;gap:12px;font-family:var(--font-brand);font-size:24px;font-weight:900;letter-spacing:0;line-height:1;margin:0 0 6px}.login-box h1:before{background:url(../brand/raildesk-mark.svg) center / contain no-repeat;content:"";display:block;height:38px;width:38px}.form{display:grid;gap:12px;margin-top:20px}.form label{display:grid;gap:6px;font-size:13px;font-weight:700}.password-form{display:grid;gap:14px;max-width:560px}.password-form label,.password-modal label{display:grid;gap:6px;font-size:13px;font-weight:700}.settings-form{display:grid;gap:18px;padding:16px}.settings-switches,.form-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.settings-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid label,.redirect-field{display:grid;gap:6px;font-size:13px;font-weight:700}.copy-row{display:flex;gap:10px}.copy-row .grow{display:grid;flex:1;gap:6px;min-width:0;font-size:13px;font-weight:700}.copy-row .input{flex:1;min-width:0}.check-row{align-items:center;display:inline-flex;gap:8px;font-size:14px;font-weight:650}.check-row input{height:16px;width:16px}.error{color:var(--danger);font-size:13px;min-height:18px}.login-separator{color:var(--muted);font-size:13px;font-weight:700;text-align:center}.sso-actions{display:grid;gap:8px}.sso-button{justify-content:center;width:100%}.sso-page{display:grid;gap:18px;align-content:start}.sso-summary{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.sso-card{display:grid;gap:7px;padding:16px}.sso-card span,.field-label{color:var(--muted);font-size:13px;font-weight:700}.sso-card strong{font-size:20px}.sso-card small{color:var(--muted);line-height:1.45}.sso-settings .settings-form{margin-top:0}.mono-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:13px}.provider-table{min-width:1180px}.provider-table td{vertical-align:top}.provider-table strong{display:block;margin-bottom:3px}.sso-status{color:var(--muted);min-height:22px}.sso-status[data-kind=ok]{color:var(--accent-strong);font-weight:700}.sso-status[data-kind=error]{color:var(--danger);font-weight:700}.modal-backdrop{align-items:center;background:#0e181294;display:grid;inset:0;justify-items:center;padding:24px;position:fixed;z-index:20}.modal-panel{background:var(--panel);border-radius:8px;box-shadow:0 28px 80px #0c181242;max-height:min(820px,calc(100vh - 48px));max-width:920px;overflow:auto;width:min(920px,100%)}.modal-head{align-items:start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:18px 20px}.modal-head h2{font-size:21px;margin:0 0 4px}.provider-form{display:grid;gap:18px;padding:20px}.discovery-panel{background:linear-gradient(135deg,#eaf8e7e6,#f0f8f0c7);border:1px solid #cfe5d6;border-radius:8px;display:grid;gap:12px;padding:16px}.discovery-panel h3{font-size:18px;margin:4px 0}.discovery-panel p{margin:0}.manual-settings{border:1px solid var(--line);border-radius:8px;padding:0}.manual-settings summary{cursor:pointer;font-weight:800;list-style-position:inside;padding:14px 16px}.manual-settings[open] summary{border-bottom:1px solid var(--line)}.manual-settings .settings-grid{padding:16px}#discovery-status[data-kind=ok]{color:var(--accent-strong);font-weight:700}#discovery-status[data-kind=error]{color:var(--danger);font-weight:700}.provider-type-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.radio-pill{align-items:center;border:1px solid var(--line-strong);border-radius:999px;display:inline-flex;gap:8px;min-height:34px;padding:6px 12px}.modal-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end}.profile-shell .main{display:grid;gap:18px;align-content:start;scroll-margin-top:18px}.profile-summary{display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;scroll-margin-top:18px}.profile-summary div{background:var(--panel);display:grid;gap:6px;min-width:0;padding:16px}.profile-summary span{color:var(--muted);font-size:13px;font-weight:700}.profile-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-panel{overflow:hidden;scroll-margin-top:18px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;padding:12px 14px 0}.tag-pill{background:var(--brand-100);border:1px solid #c9ded3;border-radius:999px;color:var(--accent-strong);font-size:13px;font-weight:700;padding:5px 9px}.empty{color:var(--muted);padding:28px 14px;text-align:center}.pager{align-items:center;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.pager__summary{color:var(--muted);font-size:14px}.pager__controls{align-items:center;display:flex;gap:10px}.pager__controls span{color:var(--slate-700);font-size:14px;font-weight:650;min-width:120px;text-align:center}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}.detail-item{background:var(--panel);display:grid;gap:6px;min-height:74px;padding:14px}.detail-item span{color:var(--muted);font-size:13px;font-weight:700}.detail-item strong{font-size:15px;overflow-wrap:anywhere}@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{padding:14px}.nav{display:flex;overflow-x:auto}.sidebar-footer{margin-top:12px;padding-top:0}.nav button,.nav a{min-width:130px}.main{padding:14px}.toolbar,.filters,.copy-row,.pager,.topbar,.actions{align-items:stretch;flex-direction:column}.pager__controls{justify-content:space-between;width:100%}.user-menu__trigger,.user-menu__dropdown{width:100%}.input{min-width:0;width:100%}.detail-grid{grid-template-columns:1fr}.peer-card{grid-template-columns:1fr;padding:24px 20px 30px}.peer-card h2{margin-bottom:28px}.peer-specs div{gap:10px;grid-template-columns:1fr}.peer-specs dt,.peer-specs dd{font-size:21px}.peer-card__visual{order:-1}.peer-computer{width:min(100%,220px)}.peer-card-more{margin-inline:20px}.peer-more-grid{grid-template-columns:1fr}.peer-history{padding-inline:20px}.dashboard-grid,.server-summary,.server-summary dl,.profile-summary,.sso-summary,.settings-grid{grid-template-columns:1fr}.row-actions,.modal-actions{align-items:stretch;flex-direction:column}}
