*{box-sizing:border-box;margin:0;padding:0}.lr-web-access{background:radial-gradient(circle at 82% 18%,hsla(0,0%,100%,.1),transparent 34%),#c6e9da;height:100vh;overflow:hidden;position:relative;width:100vw}.lr-app-launcher{background:hsla(0,0%,100%,.96);border:1px solid #d9e8df;border-radius:14px;box-shadow:0 18px 55px rgba(15,56,39,.14);left:50%;max-height:calc(100vh - 64px);max-width:920px;overflow:auto;padding:28px;position:absolute;top:32px;transform:translateX(-50%);width:calc(100% - 64px)}.lr-app-launcher-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:26px}.lr-app-launcher .lr-launcher-logo{height:48px;margin:0;padding:0}.lr-app-launcher .lr-launcher-logo img{max-height:48px;max-width:210px}.lr-app-launcher h1{color:#10261d;font-size:25px;margin-bottom:6px}.lr-app-launcher>p{color:#577064;font-size:14px;margin-bottom:24px}.lr-app-logout{background:#fff;border:1px solid #b9d4c6;border-radius:7px;color:#176b49;cursor:pointer;font-weight:700;padding:9px 15px}.lr-app-card-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.lr-app-card{align-items:center;background:#fff;border:1px solid #d5e5dc;border-radius:10px;color:#183b2c;cursor:pointer;display:flex;flex-direction:column;min-height:158px;padding:20px 14px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.lr-app-card:hover:not(:disabled){border-color:#09a863;box-shadow:0 9px 24px rgba(5,128,75,.14);transform:translateY(-2px)}.lr-app-card:disabled{cursor:wait;opacity:.62}.lr-app-card-icon{align-items:center;display:grid;font-size:11px;font-weight:900;height:64px;justify-items:center;margin-bottom:10px;position:relative;width:64px}.lr-app-card-icon img{background:#fff;height:64px;inset:0;-o-object-fit:contain;object-fit:contain;position:absolute;width:64px;z-index:1}.lr-app-card-name{font-size:14px;font-weight:800;text-align:center}.lr-app-card-state{color:#168257;font-size:11px;margin-top:5px}.lr-app-launcher .lr-launcher-error{background:#fff1f1;border:1px solid #f1c1c1;border-radius:6px;color:#b42318;margin-top:18px;padding:10px 12px}.lr-app-launcher .lr-launcher-message{background:#eefbf4;border:1px solid #b8e4cc;border-radius:6px;color:#137347;margin-top:18px;padding:10px 12px}.lr-app-client-button{background:#05a85c;border:1px solid #05a85c;border-radius:7px;color:#fff;cursor:pointer;font-weight:800;margin-top:12px;padding:10px 15px}.lr-remoteapp-panel{background:#111827;border:1px solid #4b5563;border-radius:8px;box-shadow:0 24px 70px rgba(15,23,42,.42);height:min(680px,calc(100vh - 100px));overflow:hidden;position:fixed;width:min(960px,calc(100vw - 32px));z-index:3000}.lr-remoteapp-panel.maximized{border-radius:0;height:100vh;inset:0;width:100vw}.lr-remoteapp-panel.minimized{height:42px;width:min(360px,calc(100vw - 32px))}.lr-remoteapp-titlebar{align-items:center;background:#17251f;color:#fff;cursor:move;display:flex;font-size:13px;font-weight:700;height:42px;justify-content:space-between;padding-left:14px;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lr-remoteapp-controls{align-self:stretch;display:flex}.lr-remoteapp-controls button{background:transparent;border:0;color:#fff;cursor:pointer;font-size:16px;width:46px}.lr-remoteapp-controls button:hover{background:hsla(0,0%,100%,.14)}.lr-remoteapp-controls button.close:hover{background:#c42b1c}.lr-remoteapp-frame{background:#000;border:0;display:block;height:calc(100% - 42px);width:100%}@media (max-width:640px){.lr-app-launcher{padding:20px;top:16px;width:calc(100% - 32px)}.lr-app-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.lr-guac-frame,.lr-guac-stage{border:0;height:100%;width:100%}.lr-guac-stage{background:radial-gradient(circle at 18% 22%,rgba(5,168,92,.16),transparent 34%),linear-gradient(135deg,#f7fffb,#e6f8ef 48%,#fafffc)}.lr-guac-frame{display:block}.lr-guac-placeholder{align-items:center;color:#235744;display:grid;font-size:15px;font-weight:700;gap:18px;height:100%;justify-items:center;text-align:center}.lr-launcher-panel{background:#f8fafc;border:1px solid #8f9cad;box-shadow:0 16px 34px rgba(15,23,42,.22);color:#162033;left:0;max-height:calc(100vh - 24px);overflow-y:auto;padding:8px 12px 10px;position:fixed;top:42%;transform:translateY(-50%);width:210px;z-index:1200}.lr-launcher-title{font-size:11px;font-weight:800;margin-bottom:12px}.lr-launcher-collapse{background:#f7fbff;border:1px solid #1179b5;color:#156e9f;cursor:pointer;font-size:11px;height:82px;position:absolute;right:10px;top:28px;width:16px}.lr-launcher-logo{align-items:center;display:flex;height:54px;margin-bottom:8px;padding-right:22px}.lr-launcher-logo img{display:block;max-height:46px;max-width:132px;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center}.lr-launcher-list{display:grid;gap:5px}.lr-launcher-item{align-items:center;background:#fff;border:1px solid #b7bec8;color:#162033;cursor:pointer;display:grid;gap:8px;grid-template-columns:34px minmax(0,1fr);min-height:36px;padding:4px 6px;text-align:left;width:100%}.lr-launcher-item:hover{background:#eff7ff;border-color:#6aa7d8}.lr-launcher-item:disabled{cursor:wait;opacity:.72}.lr-launcher-icon{align-items:center;display:grid;font-size:8px;font-weight:900;height:28px;justify-items:center;position:relative;width:28px}.lr-launcher-icon img{height:28px;inset:0;-o-object-fit:contain;object-fit:contain;position:absolute;width:28px}.lr-launcher-icon.folder{background:#fff4cc;border-radius:4px}.lr-launcher-icon span{color:#243044;position:relative}.lr-launcher-icon.logout{background:#dc2626;border-radius:6px;color:#fff;font-size:8px}.lr-launcher-name{font-size:12px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lr-launcher-copy{display:grid;min-width:0}.lr-launcher-state{color:#526071;font-size:9px;line-height:1.25;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lr-launcher-empty,.lr-launcher-error{color:#b91c1c;font-size:11px;line-height:1.35;padding:8px 2px}.lr-launcher-empty{color:#526071}.lr-launcher-logout{margin-top:5px}.lr-launcher-client{font-size:11px;padding:8px;width:100%}.lr-launcher-tab{background:#f8fafc;border:1px solid #8f9cad;box-shadow:0 12px 28px rgba(15,23,42,.2);color:#162033;cursor:pointer;font-size:12px;font-weight:900;height:86px;left:0;position:fixed;top:42%;transform:translateY(-50%);width:28px;z-index:1200}.lr-launcher-tab span{display:block;transform:rotate(-90deg)}.lr-web-status{background:rgba(15,23,42,.76);border-radius:8px;bottom:14px;color:#fff;font-size:12px;left:206px;max-width:min(520px,calc(100vw - 230px));overflow:hidden;padding:8px 10px;position:fixed;text-overflow:ellipsis;white-space:nowrap;z-index:1100}.lr-web-status.error{background:rgba(127,29,29,.9)}@media (max-width:640px){.lr-launcher-panel{bottom:12px;left:12px;max-height:calc(100vh - 24px);top:auto;transform:none;width:min(210px,calc(100vw - 24px))}.lr-launcher-tab{bottom:42px;top:auto;transform:none}.lr-web-status{bottom:8px;left:8px;max-width:calc(100vw - 16px)}}:root{--bg:#f7faf9;--panel:#fff;--panel2:#f3f7f5;--line:#dde7e2;--text:#12201a;--muted:#617269;--blue:#2563eb;--green:#05a85c;--amber:#d97706;--red:#dc2626;--shadow:0 14px 36px rgba(15,23,42,.08)}body,html{min-height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}main{margin:0 auto;max-width:1380px;padding:28px}.app-shell{min-height:100vh}.topbar{background:var(--panel);border-bottom:1px solid var(--line);box-shadow:0 8px 24px rgba(15,23,42,.05);gap:18px;height:68px;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.brand,.topbar{align-items:center;display:flex}.brand{font-weight:900;gap:12px;min-width:230px}.mark{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;height:42px;justify-content:center;overflow:hidden;width:150px}.mark img{display:block;height:30px;-o-object-fit:contain;object-fit:contain;width:132px}.nav{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.btn{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer;display:inline-flex;font-size:14px;gap:8px;min-height:38px;padding:9px 12px}.btn.primary{background:var(--blue);border-color:var(--blue)}.btn.green{background:var(--green);border-color:var(--green)}.btn.danger{background:var(--red);border-color:var(--red)}.btn:disabled{cursor:wait;opacity:.55}.page-title{align-items:end;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.page-title h1{font-size:28px}.page-title p{color:var(--muted);margin-top:6px}.grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:22px}.layout{display:grid;gap:18px;grid-template-columns:400px 1fr}.stack{display:grid;gap:14px}.wide{grid-column:1/-1}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px}.panel h2{font-size:18px;margin-bottom:12px}.label{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.value{font-size:30px;font-weight:900;margin-top:8px}.greenText{color:#047a45}.blueText{color:#1d4ed8}.amberText{color:#b45309}.redText{color:#b91c1c}.hint,.mini{color:var(--muted)}.hint{font-size:13px;line-height:1.5;margin-bottom:16px}.mini{font-size:12px;margin-top:3px}.field{margin-bottom:13px}label{color:#33443c;display:block;font-size:12px;font-weight:800;margin-bottom:7px}.checkbox-row{align-items:center;display:flex;gap:10px;line-height:1.35;margin-bottom:14px}.checkbox-row input{flex:0 0 auto;width:auto}.field-help{color:var(--muted);font-size:12px;margin:6px 0 0}.windows-account-section{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.windows-account-section h3{margin:0 0 8px}.windows-account-type{background:#f5f8f6;border:1px solid var(--border);border-radius:7px;margin-bottom:16px;padding:10px 12px}.admin-form-overlay{align-items:center;background:rgba(15,23,42,.58);display:flex;inset:0;justify-content:center;overflow-y:auto;padding:24px;position:fixed;z-index:1500}.admin-form-modal{max-width:620px;width:100%}.admin-form-modal .panel{margin:0;max-height:calc(100vh - 48px);overflow-y:auto}input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--text);outline:none;padding:10px 12px;width:100%}textarea{min-height:72px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.18)}.row{display:grid;gap:12px;grid-template-columns:1fr 1fr}.actions,.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.toolbar{margin-bottom:12px}.message{color:var(--muted);font-size:13px;margin-top:12px;min-height:22px}.message.error{color:#b91c1c}.message.success{color:#047a45}.table-wrap{overflow-x:auto}.table{background:var(--panel);border:1px solid var(--line);border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.table td,.table th{border-bottom:1px solid var(--line);font-size:14px;padding:12px 14px;text-align:left;vertical-align:top}.table th{background:#f3f7f5;color:var(--muted);font-size:12px;text-transform:uppercase}.badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;padding:3px 9px}.active,.online,.open{background:rgba(22,163,74,.15);color:#047a45}.closed,.offline{background:rgba(154,166,184,.15);color:#475569}.critical,.error{background:rgba(220,38,38,.15);color:#b91c1c}.normal{background:rgba(37,99,235,.15);color:#1d4ed8}.empty{background:var(--panel);color:var(--muted);padding:34px;text-align:center}.code,.empty{border:1px solid var(--line);border-radius:8px}.code{background:#0b1020;font-family:Consolas,monospace;font-size:12px;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap}.stream-modal{align-items:center;background:rgba(0,0,0,.78);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.stream-shell{background:#0b1020;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.5);overflow:hidden;width:min(1180px,96vw)}.stream-top{align-items:center;background:var(--panel);border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.stream-title{font-weight:800}.stream-stage{background:#05070d;display:grid;height:min(72vh,760px);outline:none;place-items:center;position:relative}.stream-stage img{display:block;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.stream-placeholder{color:var(--muted);padding:20px;position:absolute;text-align:center}.stream-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.stream-status{background:#0b1020;border-top:1px solid var(--line);color:var(--muted);font-size:12px;padding:10px 14px}.auth-shell{background:linear-gradient(180deg,rgba(5,168,92,.08),rgba(37,99,235,.04)),#fff;display:grid;gap:0;grid-template-columns:minmax(0,560px) minmax(360px,420px);justify-content:center;align-content:center;align-items:stretch;margin:0;max-width:none;min-height:100vh;padding:24px}.portal-login{--portal-primary-color:#05a85c;--portal-secondary-color:#2563eb;--portal-accent-color:#05a85c;--portal-background-color:#fff;--portal-card-width:420px;--portal-card-opacity:1;--portal-card-radius:0px;background:linear-gradient(180deg,color-mix(in srgb,var(--portal-primary-color) 8%,transparent),color-mix(in srgb,var(--portal-secondary-color) 4%,transparent)),var(--portal-background-color);grid-template-columns:minmax(0,560px) minmax(320px,var(--portal-card-width));overflow:hidden;position:relative}.portal-login.portal-card-left{justify-content:start}.portal-login.portal-card-center{justify-content:center}.portal-login.portal-card-right{justify-content:end}.portal-login-background,.portal-login-overlay{inset:0;pointer-events:none;position:absolute}.portal-login-background{background-position:50%;background-repeat:no-repeat;background-size:cover;z-index:0}.portal-login-overlay{background:var(--portal-secondary-color);z-index:1}.portal-login>.auth-brand,.portal-login>.auth-form-panel{position:relative;z-index:2}.portal-login>.auth-brand{border-radius:var(--portal-card-radius) 0 0 var(--portal-card-radius)}.portal-login>.auth-form-panel{background:rgb(248 251 250/var(--portal-card-opacity));border-radius:0 var(--portal-card-radius) var(--portal-card-radius) 0;max-width:var(--portal-card-width)}.portal-login .auth-download-btn,.portal-login .auth-form-panel .btn.green{background:var(--portal-primary-color);border-color:var(--portal-primary-color)}.portal-login .auth-download-btn:hover,.portal-login .auth-form-panel .btn.green:hover:not(:disabled){background:color-mix(in srgb,var(--portal-primary-color) 88%,#000)}.portal-login input:focus,.portal-login select:focus,.portal-login textarea:focus{border-color:var(--portal-accent-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent-color) 14%,transparent);outline:none}.portal-login-footer,.portal-login-header{background:hsla(0,0%,100%,.92);border:1px solid color-mix(in srgb,var(--portal-secondary-color) 20%,transparent);border-radius:8px;color:var(--portal-secondary-color);left:24px;padding:10px 14px;position:absolute;right:24px;text-align:center;z-index:3}.portal-login-header{font-size:14px;font-weight:800;top:16px}.portal-login-footer{align-items:center;bottom:12px;display:flex;flex-wrap:wrap;font-size:12px;gap:8px 18px;justify-content:center}.portal-login-footer nav{display:flex;flex-wrap:wrap;gap:12px}.portal-login-footer a{color:var(--portal-accent-color);font-weight:800}.portal-login:has(.portal-login-header){padding-top:72px}.portal-login:has(.portal-login-footer){padding-bottom:70px}.auth-brand,.auth-form-panel{min-height:620px}.auth-brand{background:#fff;border:1px solid var(--line);border-right:0;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;max-width:560px;padding:54px}.auth-logo{display:block;height:86px;margin-bottom:26px;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center;width:min(430px,100%)}.auth-brand h1{font-size:42px;line-height:1.05;margin-bottom:16px}.auth-brand p{color:var(--muted);font-size:16px;line-height:1.7;max-width:560px}.auth-download-btn{align-items:center;background:var(--green);border:1px solid var(--green);border-radius:8px;color:#fff;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;margin-top:22px;min-height:40px;padding:10px 14px;width:-moz-fit-content;width:fit-content}.auth-download-btn:hover{background:#069653}.auth-checks{color:#405149;display:grid;font-size:14px;gap:12px;margin-top:34px}.auth-check{align-items:center;display:flex;gap:10px}.auth-dot{background:var(--green);border-radius:50%;height:10px;width:10px}.auth-footer{color:var(--muted);font-size:12px}.auth-form-panel{background:#f8fbfa;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center;max-width:420px;padding:42px}.auth-form-panel,.auth-tabs{border:1px solid var(--line)}.auth-tabs{border-radius:8px;display:grid;grid-template-columns:1fr 1fr;margin-bottom:24px;overflow:hidden}.auth-tab{background:transparent;border:0;color:var(--muted);cursor:pointer;font-weight:700;padding:12px}.auth-tab.active{background:var(--green);color:#fff}.auth-title{font-size:22px;font-weight:800;margin-bottom:6px}.auth-sub{color:var(--muted);font-size:14px;margin-bottom:24px}.auth-form-panel .btn.green{color:#fff;justify-content:center;width:100%}.auth-form-panel input:disabled{background:#f0f4f2;color:#617269;cursor:wait}.auth-form-panel input[aria-invalid=true]{border-color:#dc2626}.field-error{color:#b91c1c;font-size:12px;line-height:1.35;margin-top:6px}.auth-error,.auth-status{border-radius:8px;font-size:13px;line-height:1.45;margin-top:14px;overflow-wrap:anywhere;padding:10px 12px}.auth-status{background:#edf9f3;border:1px solid #b9e1cc;color:#176b49}.auth-error{background:#fff1f1;border:1px solid #f1c1c1;color:#a61b1b}.auth-remember{align-items:center;color:var(--muted);cursor:pointer;display:flex;font-size:13px;font-weight:700;gap:8px;margin:-4px 0 16px}.auth-remember input{accent-color:var(--portal-primary-color,var(--green));cursor:pointer;height:16px;margin:0;width:16px}.auth-remember span{line-height:1}.auth-view-options{border:1px solid var(--line);border-radius:8px;display:grid;gap:0;grid-template-columns:repeat(3,1fr);overflow:hidden}.auth-view-options label{align-items:center;background:#fff;color:var(--muted);cursor:pointer;display:flex;font-size:12px;font-weight:800;justify-content:center;margin:0;min-height:42px;padding:8px;text-align:center}.auth-view-options label+label{border-left:1px solid var(--line)}.auth-view-options label.active{background:var(--blue);color:#fff}.auth-view-options input{height:1px;opacity:0;position:absolute;width:1px}.auth-view-options.auth-view-options-two{grid-template-columns:repeat(2,1fr)}.auth-connection-field{margin-bottom:18px}.portal-view-options{flex:0 0 300px}.portal-shell{--portal-bg:#f7faf9;--portal-bg2:#fff;--portal-bg3:#eef7f1;--portal-accent:#05a85c;--portal-accent2:#047a45;--portal-accent3:#2563eb;--portal-green:#05a85c;--portal-red:#ef4444;--portal-amber:#f59e0b;--portal-blue:#3b82f6;--portal-text:#12201a;--portal-text2:#4f6259;--portal-text3:#708178;--portal-border:#dde7e2;--portal-border2:#cad8d1;--portal-card:#fff;--portal-radius:8px;--portal-shadow:0 16px 40px rgba(15,23,42,.08);background:var(--portal-bg);color:var(--portal-text);min-height:100vh}.portal-sidebar{align-items:center;background:var(--portal-bg2);border-right:1px solid var(--portal-border);display:flex;flex-direction:column;height:100vh;left:0;padding:20px 0;position:fixed;top:0;transition:width .3s;width:72px;z-index:100}.portal-sidebar:hover{width:220px}.portal-logo{align-items:center;background:#fff;border:1px solid var(--portal-border);border-radius:10px;display:flex;flex-shrink:0;height:44px;justify-content:center;margin-bottom:32px;overflow:hidden;width:52px}.portal-logo img{display:block;height:30px;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center;width:142px}.portal-sidebar:hover .portal-logo{width:162px}.portal-sidebar:hover .portal-logo img{width:142px}.portal-nav-item{align-items:center;background:transparent;border:0;border-left:3px solid transparent;color:var(--portal-text2);cursor:pointer;display:flex;gap:14px;overflow:hidden;padding:12px 16px;text-align:left;transition:all .2s;white-space:nowrap;width:100%}.portal-nav-item.active,.portal-nav-item:hover{background:var(--portal-bg3);border-left-color:var(--portal-accent);color:var(--portal-text)}.portal-nav-icon{flex-shrink:0;font-size:11px;font-weight:900;text-align:center;width:24px}.portal-nav-label{font-size:14px;opacity:0;transition:opacity .2s}.portal-sidebar:hover .portal-nav-label{opacity:1}.portal-nav-bottom{margin-top:auto;width:100%}.portal-main{margin:0 0 0 72px;max-width:none;min-height:100vh;padding:32px;transition:margin-left .3s}.portal-sidebar:hover~.portal-main{margin-left:220px}.portal-header,.portal-header-right,.portal-modal-actions,.portal-panel-top,.portal-section-header,.portal-server-header,.portal-server-tags,.portal-toolbar{align-items:center;display:flex}.portal-header,.portal-panel-top,.portal-section-header{justify-content:space-between}.portal-header{margin-bottom:32px}.portal-header h1{color:var(--portal-text);font-size:24px;font-weight:700}.portal-header p,.portal-panel-subtitle,.portal-section-subtitle{color:var(--portal-text3);font-size:13px;margin-top:4px}.portal-header-right{gap:16px}.portal-avatar{align-items:center;background:var(--portal-accent);border-radius:50%;display:flex;font-size:15px;font-weight:700;height:40px;justify-content:center;width:40px}.portal-user-info{text-align:right}.portal-name{font-size:14px;font-weight:600}.portal-role{color:var(--portal-text3);font-size:12px}.portal-stats-row{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:32px}.portal-license-banner{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#9a3412;font-size:13px;font-weight:800;margin:-14px 0 24px;padding:10px 14px}.portal-stat-card{background:var(--portal-card);border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow);overflow:hidden;padding:20px;position:relative}.portal-stat-card:before{content:"";height:3px;left:0;position:absolute;right:0;top:0}.portal-stat-card.green:before{background:var(--portal-green)}.portal-stat-card.blue:before{background:var(--portal-blue)}.portal-stat-card.amber:before{background:var(--portal-amber)}.portal-stat-card.purple:before{background:var(--portal-accent)}.portal-stat-label{color:var(--portal-text3);font-size:12px;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.portal-stat-value{font-size:28px;font-weight:800;line-height:1}.portal-stat-value.small{font-size:16px;padding-top:6px}.portal-stat-sub{color:var(--portal-text3);font-size:12px;margin-top:6px}.portal-launcher-stage{align-items:center;display:flex;justify-content:center;min-height:360px;padding:48px 16px}.portal-floating-panel,.portal-table-wrap{background:var(--portal-card);border:1px solid var(--portal-border);border-radius:8px;box-shadow:var(--portal-shadow)}.portal-floating-panel{padding:22px;width:min(720px,100%)}.portal-panel-top{gap:16px;margin-bottom:18px}.portal-panel-title,.portal-section-title{font-size:18px;font-weight:700}.portal-app-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.portal-app-tile{align-items:center;background:var(--portal-bg2);border:1px solid var(--portal-border);border-radius:8px;color:var(--portal-text);cursor:pointer;display:flex;flex-direction:column;gap:8px;height:142px;justify-content:center;transition:all .2s}.portal-app-tile:hover,.portal-server-card:hover{border-color:var(--portal-accent);box-shadow:0 16px 36px rgba(5,168,92,.14);transform:translateY(-2px)}.portal-app-icon{align-items:center;background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.28);border-radius:8px;display:flex;font-size:12px;font-weight:900;height:46px;justify-content:center;width:46px}.portal-app-name{font-size:13px;font-weight:700;line-height:1.25;overflow-wrap:anywhere;padding:0 6px;text-align:center}.portal-app-mode{color:var(--portal-text3);font-size:11px;font-weight:700;line-height:1.2;text-align:center}.portal-section-header,.portal-toolbar{margin-bottom:20px}.portal-toolbar{flex-wrap:wrap;gap:12px}.portal-search-box{align-items:center;background:var(--portal-bg2);border:1px solid var(--portal-border);border-radius:8px;display:flex;flex:1;gap:10px;min-width:220px;padding:0 14px}.portal-search-box span{color:var(--portal-text3);font-size:12px;font-weight:800;text-transform:uppercase}.portal-search-box input{background:none;border:none;box-shadow:none;color:var(--portal-text);height:42px;padding:0}.portal-btn,.portal-filter-btn{border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;padding:10px 18px}.portal-filter-btn{background:var(--portal-bg2);border:1px solid var(--portal-border);color:var(--portal-text2)}.portal-filter-btn.active,.portal-filter-btn:hover{background:var(--portal-accent);border-color:var(--portal-accent);color:#fff}.portal-btn{border:0;display:inline-flex;justify-content:center}.portal-btn-primary{background:linear-gradient(135deg,var(--portal-accent),var(--portal-accent2));color:#fff}.portal-btn-secondary{background:#fff;border:1px solid var(--portal-border);color:var(--portal-text2)}.portal-server-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.portal-server-card{background:var(--portal-card);border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow);color:var(--portal-text);cursor:pointer;overflow:hidden;padding:24px;position:relative;text-align:left;transition:all .25s}.portal-server-header{align-items:flex-start;justify-content:space-between;margin-bottom:16px}.portal-server-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:12px;font-weight:900;height:48px;justify-content:center;width:48px}.portal-server-icon.rdp,.portal-tag.rdp{background:rgba(59,130,246,.15);color:#1d4ed8}.portal-server-icon.ssh,.portal-tag.ssh{background:rgba(34,197,94,.15);color:#047a45}.portal-server-icon.vnc{background:rgba(245,158,11,.15);color:#b45309}.portal-status-badge{align-items:center;border-radius:20px;display:flex;font-size:12px;font-weight:600;gap:6px;padding:4px 10px}.portal-status-badge.online{background:rgba(34,197,94,.15);color:var(--portal-green)}.portal-status-badge.offline{background:rgba(239,68,68,.15);color:var(--portal-red)}.portal-status-dot{background:currentColor;border-radius:50%;height:7px;width:7px}.portal-server-name{font-size:16px;font-weight:700;margin-bottom:4px}.portal-server-ip{color:var(--portal-text3);font-family:Consolas,monospace;font-size:13px;margin-bottom:12px}.portal-server-tags{flex-wrap:wrap;gap:6px;margin-bottom:16px}.portal-tag{border-radius:4px;font-size:11px;font-weight:700;padding:3px 8px}.portal-tag.windows{background:rgba(14,165,233,.2);color:#0369a1}.portal-tag.linux{background:rgba(168,85,247,.2);color:#7e22ce}.portal-server-meta{color:var(--portal-text3);font-size:12px;margin-bottom:18px}.portal-launch-btn{align-items:center;background:linear-gradient(135deg,var(--portal-accent),var(--portal-accent2));border-radius:8px;color:#fff;display:flex;font-size:14px;font-weight:800;justify-content:center;padding:12px;width:100%}.portal-table-wrap{margin-top:32px;overflow:hidden}.portal-table-head{border-bottom:1px solid var(--portal-border);display:flex;justify-content:space-between;padding:20px 24px}.portal-file-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.portal-file-input{display:none}.portal-file-bar{align-items:center;background:var(--portal-bg2);border-bottom:1px solid var(--portal-border);color:var(--portal-text2);display:flex;flex-wrap:wrap;font-size:13px;gap:10px;padding:12px 24px}.portal-file-bar span{color:var(--portal-text3);font-weight:800;text-transform:uppercase}.portal-file-bar strong{color:var(--portal-text);font-weight:800}.portal-file-bar em{background:rgba(37,99,235,.12);border-radius:999px;color:var(--portal-accent3);font-style:normal;font-weight:800;margin-left:auto;padding:4px 10px}.portal-table{border-collapse:collapse;width:100%}.portal-table th{background:var(--portal-bg2);color:var(--portal-text3);font-size:12px;letter-spacing:.5px;padding:12px 20px;text-align:left;text-transform:uppercase}.portal-table td{border-bottom:1px solid var(--portal-border);color:var(--portal-text2);font-size:14px;padding:14px 20px}.portal-file-table td:last-child,.portal-file-table th:last-child{text-align:right}.portal-file-name{align-items:center;background:transparent;border:0;color:var(--portal-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:10px;padding:0}.portal-file-name:disabled{cursor:default}.portal-file-name span{background:var(--portal-bg3);border:1px solid var(--portal-border);border-radius:6px;color:var(--portal-accent2);font-size:11px;font-weight:900;min-width:40px;padding:4px 6px;text-align:center}.portal-row-actions{display:flex;gap:8px;justify-content:flex-end}.portal-mini-btn{background:var(--portal-bg2);border:1px solid var(--portal-border);border-radius:6px;color:var(--portal-text2);cursor:pointer;font-size:12px;font-weight:800;padding:7px 10px}.portal-mini-btn:hover{border-color:var(--portal-accent);color:var(--portal-text)}.portal-mini-btn.danger:hover{border-color:var(--portal-red);color:var(--portal-red)}.portal-badge{border-radius:20px;display:inline-flex;font-size:12px;font-weight:700;padding:3px 10px}.portal-badge.active{background:rgba(34,197,94,.15);color:var(--portal-green)}.portal-badge.closed{background:rgba(100,116,139,.15);color:var(--portal-text3)}.portal-badge.error{background:rgba(239,68,68,.15);color:var(--portal-red)}.portal-empty-state{color:var(--portal-text3);padding:56px 20px;text-align:center}.portal-empty-icon{font-size:16px;font-weight:900;margin-bottom:16px;opacity:.5}.portal-modal-overlay{align-items:center;background:rgba(15,23,42,.35);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.portal-modal{background:var(--portal-bg2);border:1px solid var(--portal-border2);border-radius:20px;box-shadow:var(--portal-shadow);max-width:90vw;padding:32px;width:460px}.portal-modal h2{font-size:20px;margin-bottom:6px}.portal-modal p{color:var(--portal-text2);font-size:14px;margin-bottom:24px}.portal-modal-server-info{align-items:center;background:var(--portal-bg3);border:1px solid var(--portal-border);border-radius:8px;display:flex;gap:14px;margin-bottom:24px;padding:16px}.portal-modal-actions{gap:12px}.portal-modal-actions .portal-btn{flex:1}.portal-toast-container{bottom:24px;display:flex;flex-direction:column;gap:10px;position:fixed;right:24px;z-index:9999}.portal-toast{background:var(--portal-bg2);border:1px solid var(--portal-border);border-radius:8px;box-shadow:var(--portal-shadow);color:var(--portal-text);font-size:14px;min-width:280px;padding:14px 18px}.portal-toast.success{border-left:3px solid var(--portal-green)}.portal-toast.error{border-left:3px solid var(--portal-red)}.portal-toast.info{border-left:3px solid var(--portal-blue)}@media (max-width:960px){.grid,.layout,.row{grid-template-columns:1fr}.page-title{align-items:start;flex-direction:column}.topbar{align-items:flex-start;height:auto;padding:14px 16px}.brand{min-width:auto}main{padding:18px}.auth-shell{grid-template-columns:1fr;padding:24px}.auth-brand,.auth-form-panel{max-width:none;min-height:auto}.auth-brand,.portal-login>.auth-brand{border-right:1px solid var(--line);border-radius:var(--portal-card-radius) var(--portal-card-radius) 0 0;padding:32px}.auth-form-panel,.portal-login>.auth-form-panel{border-radius:0 0 var(--portal-card-radius) var(--portal-card-radius);max-width:none;padding:28px}.portal-login{grid-template-columns:1fr}.portal-login-footer,.portal-login-header{left:12px;right:12px}.auth-brand h1{font-size:34px}.portal-sidebar{height:auto;position:sticky;width:100%}.portal-sidebar,.portal-sidebar:hover{align-items:stretch;flex-direction:row;overflow-x:auto;padding:8px;top:0;width:100%}.portal-logo{margin:0 12px 0 0}.portal-nav-item{border-left:0;border-bottom:3px solid transparent;width:auto}.portal-nav-label,.portal-sidebar:hover .portal-nav-label{opacity:1}.portal-nav-bottom{display:flex;margin-left:auto;margin-top:0;width:auto}.portal-main,.portal-sidebar:hover~.portal-main{margin-left:0;padding:18px}.portal-header{align-items:flex-start;flex-direction:column;gap:16px}.portal-header-right{flex-wrap:wrap}.portal-server-grid{grid-template-columns:1fr}}.lr-web-access,.remote-session-shell{margin:0;max-width:none;padding:0}.remote-session-shell{background:#07110d;display:grid;grid-template-rows:54px minmax(0,1fr);height:100vh;overflow:hidden;width:100vw}.remote-session-toolbar{align-items:center;background:#10251c;border-bottom:1px solid #29473a;color:#f5fff9;display:flex;justify-content:space-between;padding:0 12px 0 16px;position:relative;z-index:100}.remote-session-actions,.remote-session-brand{align-items:center;display:flex;gap:10px}.remote-session-brand{font-size:13px;font-weight:800}.remote-session-brand img{height:30px;max-width:150px;-o-object-fit:contain;object-fit:contain}.remote-printing-indicator,.remote-session-actions>button{background:#18382b;border:1px solid #416453;border-radius:7px;color:#f5fff9;cursor:pointer;font-size:12px;font-weight:700;min-height:34px;padding:6px 11px}.remote-printing-indicator:hover,.remote-session-actions>button:hover{background:#22513d}.remote-session-frame{background:#000;border:0;height:100%;width:100%}.remote-session-error,.remote-session-loading{align-items:center;background:#07110d;color:#effaf4;display:flex;flex-direction:column;height:100vh;justify-content:center;margin:0;max-width:none;padding:32px;text-align:center}.remote-session-error{height:auto}.remote-session-error h1{margin-bottom:8px}.remote-session-error p{color:#b9cec4;margin-bottom:18px}.remote-session-error button{background:#07a65f;border:0;border-radius:7px;color:#fff;cursor:pointer;font-weight:800;padding:10px 16px}.remote-printing{position:relative}.remote-printing-indicator{align-items:center;display:flex;gap:8px}.remote-printing-indicator>span:first-child{background:#e9fff4;border-radius:4px;color:#145b3d;font-size:10px;letter-spacing:.04em;padding:3px 5px;text-transform:uppercase}.remote-printing-indicator.ready{border-color:#29a66d}.remote-printing-indicator.connecting{border-color:#d39f35}.remote-printing-indicator.disabled,.remote-printing-indicator.stopped{opacity:.72}.remote-printing-indicator.error{border-color:#ec6b6b}.remote-printing-indicator strong{align-items:center;background:#e9fff4;border-radius:999px;color:#145b3d;display:inline-flex;font-size:11px;height:20px;justify-content:center;min-width:20px;padding:0 5px}.remote-printing-dialog{background:#fff;border:1px solid #c8ded3;border-radius:10px;box-shadow:0 22px 65px rgba(0,0,0,.42);color:#173428;max-height:min(560px,calc(100vh - 76px));overflow:auto;position:absolute;right:0;top:calc(100% + 10px);width:min(430px,calc(100vw - 24px))}.remote-printing-dialog>header{align-items:start;border-bottom:1px solid #dce9e2;display:flex;justify-content:space-between;padding:16px}.remote-printing-dialog h2,.remote-printing-dialog h3,.remote-printing-dialog p{margin:0}.remote-printing-dialog h2{font-size:17px}.remote-printing-dialog header p{color:#597064;font-size:12px;margin-top:3px}.remote-printing-dialog header>button{background:transparent;border:0;color:#496358;cursor:pointer;font-size:24px;line-height:1}.remote-printing-jobs{display:grid;gap:10px;padding:12px}.remote-print-job{background:#f8fbf9;border:1px solid #d5e5dc;border-radius:8px;padding:13px}.remote-print-job h3{font-size:14px;overflow-wrap:anywhere}.remote-print-job-meta{color:#61776c;display:flex;flex-wrap:wrap;font-size:11px;gap:4px 10px;margin-top:5px}.remote-print-job>p{color:#335346;font-size:12px;margin-top:9px}.remote-print-job-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.remote-print-job-actions a,.remote-print-job-actions button{background:#176b49;border:1px solid #176b49;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:7px 10px;text-decoration:none}.remote-print-job-actions .danger{background:#fff;border-color:#d06a6a;color:#a12626}.remote-print-job-actions a.disabled,.remote-print-job-actions button:disabled{cursor:not-allowed;opacity:.55;pointer-events:none}.remote-printing-empty{color:#64786e;font-size:13px;padding:18px 8px;text-align:center}@media (max-width:720px){.remote-session-shell{grid-template-rows:auto minmax(0,1fr)}.remote-session-toolbar{align-items:stretch;flex-direction:column;gap:8px;padding:9px}.remote-session-actions{flex-wrap:wrap}.remote-printing-dialog{left:0;right:auto}}