.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{font-family:Inter,system-ui,sans-serif;color:#121826;background-color:#f4f6fb}*{box-sizing:border-box}body{margin:0;background:#f4f6fb}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.theme-dark{background:#0f172a;color:#f8fafc}.theme-dark .app-main{background:#0b1120;color:#f8fafc}.theme-dark .muted{color:#94a3b8}.theme-dark .status-label{color:#cbd5f5}.theme-dark .status-value{color:#e2e8f0}.theme-dark .session-panel,.theme-dark .form-card,.theme-dark .table-card,.theme-dark .client-group-card{background:#1e293b;color:#e2e8f0;border:1px solid #334155}.theme-dark .fortigate-card,.theme-dark .status-row,.theme-dark .toggle-button,.theme-dark .table-actions button,.theme-dark .icon-button,.theme-dark .topbar-select,.theme-dark .form-grid input,.theme-dark .form-grid select,.theme-dark .login-card input,.theme-dark .dashboard-header input{background:#0b1120;color:#e2e8f0;border-color:#1f2937}.theme-dark .fortigate-card{background:#1e293b;box-shadow:0 12px 30px #0f172a59}.theme-dark .fortigate-card .badge{background:#334155;color:#e2e8f0}.theme-dark .topbar-actions button{background:#1f2937;color:#f8fafc;border:1px solid #334155}.theme-dark .topbar-actions .danger{background:#ef4444;border-color:#b91c1c;color:#fff}.theme-dark .form-actions button{background:#1f2937;color:#f8fafc;border:1px solid #334155}.theme-dark .form-actions .ghost{background:transparent;color:#e2e8f0;border-color:#334155}.theme-dark .fortigate-table th,.theme-dark .fortigate-table td{border-bottom-color:#475569}.theme-dark .client-group-card{border-color:#334155}.theme-dark .fortigate-table{border-top:1px solid #475569}.theme-dark .clickable-row:hover{background:#e2e8f014}.sidebar{background:#111827;color:#f8fafc;padding:24px;position:sticky;top:0;height:100vh;align-self:start}.sidebar-brand{display:flex;gap:12px;align-items:center;margin-bottom:32px}.brand-mark{background:#f37021;color:#fff;font-weight:700;padding:10px 12px;border-radius:12px}.sidebar-nav a{display:block;color:inherit;text-decoration:none;padding:10px 12px;border-radius:8px}.sidebar-nav a.active,.sidebar-nav a:hover{background:#ffffff14}.app-main{background:#f8fafc;padding:24px 32px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.topbar-actions button{margin-left:12px;padding:8px 14px;border-radius:8px;border:none;cursor:pointer}.topbar-actions{display:flex;align-items:center;gap:12px}.topbar-welcome{text-align:right;margin-right:8px}.topbar-welcome h2{margin:0;font-size:18px}.topbar-welcome p{margin:4px 0 0;font-size:13px;color:#64748b}.topbar-select{padding:8px 10px;border-radius:8px;border:1px solid #cbd5f5;background:#fff}.spinner{display:inline-block;width:14px;height:14px;margin-right:8px;border-radius:50%;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;animation:spinner-rotate .8s linear infinite;vertical-align:middle}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.icon-button{width:50px;height:50px;border-radius:10px;border:1px solid #cbd5f5;background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-button svg{width:28px;height:28px;fill:none;stroke:#0f172a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.topbar-actions .danger{background:#ef4444;color:#fff}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dashboard-header input{padding:8px 12px;border-radius:8px;border:1px solid #cbd5f5;min-width:260px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,320px));gap:16px;margin-bottom:24px;justify-content:start}.fortigate-card{border:none;text-align:left;border-radius:16px;padding:16px;background:#fff;cursor:pointer;box-shadow:0 12px 30px #0f172a14}.fortigate-card-header{display:flex;justify-content:space-between;align-items:center}.fortigate-card-title{display:flex;align-items:center;gap:8px}.status-dot{width:10px;height:10px;border-radius:999px;display:inline-block;background:#22c55e;box-shadow:0 0 0 2px #22c55e33}.status-dot.is-down{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.status-dot.is-neutral{background:#94a3b8;box-shadow:0 0 0 2px #94a3b833}.status-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#f8fafc}.status-label{font-weight:600;color:#475569}.status-value{display:inline-flex;align-items:center;gap:8px;color:#0f172a}.fortigate-card .badge{background:#e0e7ff;padding:4px 8px;border-radius:999px;font-size:12px}.fortigate-card .status{color:#64748b;font-weight:600}.muted{color:#64748b;font-size:13px}.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(120deg,#0f172a,#1e293b)}.login-card{background:#fff;padding:32px;border-radius:20px;width:min(420px,90vw)}.login-card form{display:grid;gap:16px;margin-top:16px}.login-card input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #cbd5f5}.login-error{margin:0;padding:10px 12px;border-radius:8px;background:#fee2e2;color:#991b1b;font-size:14px}.login-card button{padding:12px 16px;border-radius:10px;border:none;background:#f37021;color:#fff;font-weight:600}.fortigate-session .session-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.session-panel{background:#fff;padding:16px;border-radius:16px}.ssh-actions{display:flex;gap:12px;align-items:center;margin-bottom:8px}.ssh-terminal{height:320px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#0b1120}.ssh-fullpage{display:grid;gap:12px}.ssh-terminal-full{height:70vh}.ssh-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.details-panel{margin-bottom:16px}.client-header{display:flex;justify-content:space-between;align-items:center;border-left:4px solid;padding-left:12px;margin-bottom:12px}.form-card{background:#fff;padding:20px;border-radius:16px;margin-top:24px;box-shadow:0 12px 30px #0f172a0f}.form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-grid label{display:grid;gap:6px;font-size:14px}.form-grid input,.form-grid select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #cbd5f5}.form-actions{grid-column:1 / -1;display:flex;gap:12px;align-items:center}.form-actions button{padding:10px 16px;border-radius:10px;border:none;background:#111827;color:#fff;font-weight:600;cursor:pointer}.form-actions .ghost{background:transparent;border:1px solid #cbd5f5;color:#0f172a}.form-actions .ghost.is-loading{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.form-actions button:disabled{opacity:.6;cursor:not-allowed}.inline-error{margin:0;padding:10px 12px;border-radius:8px;background:#fee2e2;color:#991b1b;font-size:14px}.inline-success{margin:0;padding:10px 12px;border-radius:8px;background:#dcfce7;color:#166534;font-size:14px}.empty-state{margin-top:8px;color:#64748b}.table-card{background:#fff;border-radius:16px;padding:8px 16px 16px;box-shadow:0 12px 30px #0f172a0f;margin-bottom:24px}.group-header{display:flex;align-items:center;gap:12px;padding:8px 0 12px}.group-header h3{margin:0}.toggle-button{width:32px;height:32px;border-radius:10px;border:1px solid #cbd5f5;background:#fff;font-size:18px;cursor:pointer}.fortigate-table{width:100%;border-collapse:collapse;font-size:14px}.fortigate-table th,.fortigate-table td{text-align:left;padding:12px 8px;border-bottom:1px solid #e2e8f0}.clickable-row{cursor:pointer}.clickable-row:hover{background:#0f172a0a}.table-actions button{padding:6px 10px;border-radius:8px;border:1px solid #cbd5f5;background:#fff;cursor:pointer}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.table-actions .danger{background:#fee2e2;border-color:#fecaca;color:#991b1b}.checkbox-row{grid-column:1 / -1;display:flex;align-items:center;gap:10px;font-size:14px}.checkbox-row.compact{gap:8px}.client-grid{display:grid;gap:8px;margin-top:8px}.client-group-card{border:1px solid #e2e8f0;border-radius:12px;padding:10px;display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start}.client-group-meta{display:flex;flex-direction:column;gap:4px}.client-group-name{font-weight:600}.client-group-items{grid-column:2 / -1;display:grid;gap:6px;margin-top:6px}.full-width{grid-column:1 / -1}.password-reset{margin-top:16px}
