.notification-center[data-v-f038e2ca]{position:fixed;top:16px;right:16px;z-index:100;width:min(360px,calc(100vw - 32px));display:grid;gap:8px;pointer-events:none}.notification[data-v-f038e2ca]{min-height:44px;padding:10px 10px 10px 12px;border:1px solid var(--line);border-radius:7px;display:flex;align-items:flex-start;gap:9px;color:var(--ink);background:var(--surface);box-shadow:var(--menu-shadow);font-size:13px;line-height:1.45;pointer-events:auto}.notification>svg[data-v-f038e2ca]{flex:0 0 auto;margin-top:1px}.notification>span[data-v-f038e2ca]{flex:1;min-width:0}.notification.pending[data-v-f038e2ca]{border-color:var(--accent-border);color:var(--accent-hover);background:var(--accent-soft)}.notification.success[data-v-f038e2ca]{border-color:#a8d9c4;color:#176847;background:#f0faf5}.notification.error[data-v-f038e2ca]{border-color:#e2b8b8;color:#9b3434;background:#fff5f5}.notification-close[data-v-f038e2ca]{width:24px;height:24px;margin:-2px -3px -2px 0;padding:0;border:0;border-radius:5px;display:inline-grid;place-items:center;color:currentColor;background:transparent;cursor:pointer}.notification-close[data-v-f038e2ca]:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.notification-close[data-v-f038e2ca]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}.notification-spinner[data-v-f038e2ca]{animation:spin-f038e2ca .8s linear infinite}@keyframes spin-f038e2ca{to{transform:rotate(360deg)}}@media(max-width:640px){.notification-center[data-v-f038e2ca]{top:10px;right:10px;width:min(360px,calc(100vw - 20px))}}:root[data-theme=night]{border-color:#2b765d;color:#bde9d6;background:#193f35}:root[data-theme=night]{border-color:#874c4c;color:#f0c6c6;background:#482c32}:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;--ink: #18324a;--muted: #667d90;--line: #d5e3ee;--canvas: #edf5fb;--surface: #fff;--surface-subtle: #f2f7fa;--surface-hover: #f7fafc;--table-head: #eef5f8;--sidebar: #e5f1f9;--sidebar-line: #c8dce9;--sidebar-ink: #173c5a;--sidebar-muted: #55748b;--sidebar-hover: #d9eaf5;--sidebar-active: #cfe6f5;--sidebar-active-border: #9fc7df;--sidebar-active-mark: #3687bf;--brand-mark-border: #78acd2;--brand-mark-bg: #d5eaf8;--brand-mark-ink: #246b9e;--topbar: rgba(250, 253, 255, .97);--accent: #2b78b4;--accent-hover: #23689e;--accent-border: #9fc5df;--accent-soft: #e3f1fb;--focus-border: #68a5d1;--focus-ring: rgba(43, 120, 180, .2);--panel-shadow: 0 4px 16px rgba(44, 91, 124, .055);--menu-shadow: 0 14px 35px rgba(30, 66, 91, .18);--login-bg: #e6f2fa;--login-band: #d8eaf6;--login-edge: #4f99ca;--green: #1d9a72;--red: #c65353;--amber: #c47a19;color:var(--ink);background:var(--canvas)}:root[data-theme=mint]{--ink: #183b3b;--muted: #657f7d;--line: #d4e5e1;--canvas: #eef7f5;--surface-subtle: #f1f8f6;--surface-hover: #f6faf9;--table-head: #edf6f3;--sidebar: #e0f0ec;--sidebar-line: #c5ded8;--sidebar-ink: #194a49;--sidebar-muted: #547c78;--sidebar-hover: #d2e9e3;--sidebar-active: #c5e3dc;--sidebar-active-border: #92c5ba;--sidebar-active-mark: #278a82;--brand-mark-border: #74b5aa;--brand-mark-bg: #cde7e1;--brand-mark-ink: #21766f;--topbar: rgba(251, 254, 253, .97);--accent: #278a82;--accent-hover: #206f69;--accent-border: #92c5ba;--accent-soft: #dff1ed;--focus-border: #64aaa2;--focus-ring: rgba(39, 138, 130, .2);--login-bg: #e6f3f0;--login-band: #d6ebe6;--login-edge: #45a79d}:root[data-theme=graphite]{--ink: #263744;--muted: #6b7882;--line: #dce2e6;--canvas: #f0f3f5;--surface-subtle: #f4f6f7;--surface-hover: #f7f8f9;--table-head: #f0f3f4;--sidebar: #e7ebee;--sidebar-line: #d0d8dd;--sidebar-ink: #2d414f;--sidebar-muted: #617582;--sidebar-hover: #dde4e8;--sidebar-active: #d4dde2;--sidebar-active-border: #aebdc6;--sidebar-active-mark: #667785;--brand-mark-border: #a8b7c0;--brand-mark-bg: #d9e0e4;--brand-mark-ink: #4d626f;--topbar: rgba(253, 253, 253, .97);--accent: #667785;--accent-hover: #52616c;--accent-border: #aebdc6;--accent-soft: #e5eaed;--focus-border: #8b9aa5;--focus-ring: rgba(102, 119, 133, .2);--login-bg: #edf0f2;--login-band: #e0e5e8;--login-edge: #7a8b97}:root[data-theme=alipay]{--ink: #142c4c;--muted: #61758f;--line: #d6e4f5;--canvas: #f2f7ff;--surface-subtle: #f5f9ff;--surface-hover: #edf5ff;--table-head: #edf5ff;--sidebar: #eaf3ff;--sidebar-line: #ccdef5;--sidebar-ink: #143e73;--sidebar-muted: #55749a;--sidebar-hover: #deecff;--sidebar-active: #d6e8ff;--sidebar-active-border: #91caff;--sidebar-active-mark: #1677ff;--brand-mark-border: #69b1ff;--brand-mark-bg: #d6e8ff;--brand-mark-ink: #0958d9;--topbar: rgba(252, 254, 255, .98);--accent: #1677ff;--accent-hover: #0958d9;--accent-border: #91caff;--accent-soft: #e6f4ff;--focus-border: #4096ff;--focus-ring: rgba(22, 119, 255, .2);--login-bg: #edf5ff;--login-band: #dbeaff;--login-edge: #1677ff}:root[data-theme=night]{color-scheme:dark;--ink: #e4edf2;--muted: #9fb2be;--line: #38505f;--canvas: #14232d;--surface: #1d303c;--surface-subtle: #243945;--surface-hover: #29414e;--table-head: #263d49;--sidebar: #192d39;--sidebar-line: #36505f;--sidebar-ink: #e7f2f6;--sidebar-muted: #a8bfca;--sidebar-hover: #243f4d;--sidebar-active: #2a4857;--sidebar-active-border: #4f7789;--sidebar-active-mark: #65b6d3;--brand-mark-border: #527d90;--brand-mark-bg: #254653;--brand-mark-ink: #bceaf4;--topbar: rgba(27, 45, 56, .98);--accent: #65b6d3;--accent-hover: #4da0bd;--accent-border: #527d90;--accent-soft: #294753;--focus-border: #65b6d3;--focus-ring: rgba(101, 182, 211, .23);--panel-shadow: 0 4px 18px rgba(0, 0, 0, .18);--menu-shadow: 0 18px 42px rgba(0, 0, 0, .35);--login-bg: #142630;--login-band: #102029;--login-edge: #65b6d3}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px;background:var(--canvas)}button,input,select,textarea{font:inherit;letter-spacing:0}button,select{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}h1{font-size:20px;line-height:1.2}h2{font-size:15px}small{color:var(--muted)}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:236px;color:var(--sidebar-muted);background:var(--sidebar);border-right:1px solid var(--sidebar-line);display:flex;flex-direction:column;box-shadow:4px 0 18px #2c5b7c0b}.brand{height:72px;padding:0 21px;display:flex;align-items:center;gap:11px;font-weight:800;color:var(--sidebar-ink);border-bottom:1px solid var(--sidebar-line);letter-spacing:.01em}.brand-mark{width:32px;height:32px;display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid var(--brand-mark-border);border-radius:8px;background:var(--brand-mark-bg);color:var(--brand-mark-ink);font-size:13px;font-weight:800}.sidebar nav{min-height:0;padding:14px 11px 18px;display:grid;align-content:start;gap:7px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--sidebar-active-border) transparent}.nav-group{min-width:0}.nav-group-toggle{width:100%;min-height:31px;padding:0 10px;border:0;border-radius:6px;display:flex;align-items:center;justify-content:space-between;color:var(--sidebar-muted);background:transparent;font:inherit;font-size:11px;font-weight:750;letter-spacing:.04em;text-align:left;cursor:pointer;transition:color .15s ease,background .15s ease}.nav-group-toggle:hover,.nav-group-active>.nav-group-toggle{color:var(--sidebar-ink);background:var(--sidebar-hover)}.nav-group-toggle svg{transition:transform .18s ease}.nav-group-toggle svg.rotated{transform:rotate(180deg)}.nav-group-items{display:grid;gap:3px;margin-top:2px}.sidebar nav a{height:39px;padding:0 12px;border:1px solid transparent;border-radius:7px;display:flex;align-items:center;gap:11px;color:var(--sidebar-muted);font-size:13px;transition:color .15s ease,background .15s ease,border-color .15s ease}.sidebar nav a:hover{color:var(--sidebar-ink);background:var(--sidebar-hover)}.sidebar nav a.router-link-active{color:var(--sidebar-ink);background:var(--sidebar-active);border-color:var(--sidebar-active-border);box-shadow:inset 3px 0 0 var(--sidebar-active-mark);font-weight:650}.sidebar-foot{margin-top:auto;padding:19px 22px;display:flex;align-items:center;gap:8px;color:var(--sidebar-muted);border-top:1px solid var(--sidebar-line);font-size:12px}.workspace{grid-column:2;min-width:0;background:var(--canvas)}.topbar{position:sticky;top:0;z-index:20;height:72px;padding:0 30px;background:var(--topbar);border-bottom:1px solid var(--line);box-shadow:0 2px 12px #2c5b7c0f;display:flex;align-items:center;gap:16px}.topbar p{margin-top:3px;color:var(--muted);font-size:12px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.server-picker{min-width:190px;height:36px;padding:0 9px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;gap:8px;background:var(--surface)}.server-picker select{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink)}.status-dot{width:8px;height:8px;display:inline-block;flex:0 0 auto;border-radius:50%;background:#9aa5af}.status-dot.online{background:var(--green);box-shadow:0 0 0 3px #dff3eb}.sidebar .status-dot.online{box-shadow:0 0 0 3px #cde7dd}.status-dot.offline{background:#9aa5af}.page{width:min(1480px,100%);padding:26px 30px 42px}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card,.panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--panel-shadow)}.metric-card{position:relative;min-height:150px;padding:19px 19px 17px;display:flex;flex-direction:column;overflow:hidden}.metric-card:before{position:absolute;inset:0 0 auto;height:3px;content:"";background:var(--accent)}.metric-card:nth-child(2):before{background:var(--green)}.metric-card:nth-child(3):before{background:#7588cf}.metric-card:nth-child(4):before{background:var(--amber)}.metric-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:650;letter-spacing:.02em}.metric-label svg{padding:5px;width:28px;height:28px;border-radius:7px;color:var(--accent);background:var(--accent-soft)}.metric-card:nth-child(2) .metric-label svg{color:var(--green);background:#e4f5ee}.metric-card:nth-child(3) .metric-label svg{color:#5f73bf;background:#eef0fb}.metric-card:nth-child(4) .metric-label svg{color:var(--amber);background:#fff3df}.metric-card>strong{margin:17px 0 13px;font-size:31px;line-height:1;font-weight:700;letter-spacing:-.02em}.metric-card>strong.metric-text{font-size:20px;line-height:1.25}.metric-card>small{margin-top:auto}.progress{width:100%;height:6px;margin-bottom:11px;overflow:hidden;border-radius:3px;background:#e7edf1}.progress i{display:block;height:100%;max-width:100%;background:var(--accent)}.progress.memory i{background:var(--green)}.progress.disk i{background:var(--amber)}.span-2{grid-column:span 2}.panel{padding:20px}.engine-panel{display:flex;justify-content:space-between;align-items:center;gap:20px}.engine-panel h2,.engine-panel h3{margin:4px 0}.engine-panel p{margin:0;color:var(--muted)}.engine-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}@media(max-width:720px){.engine-panel{align-items:flex-start;flex-direction:column}.engine-actions{justify-content:flex-start}}.panel-title{min-height:28px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.panel-title h2{display:flex;align-items:center;gap:9px;font-size:15px;letter-spacing:.01em}.panel-title h2:before{width:4px;height:17px;border-radius:2px;content:"";background:var(--accent)}.panel-title>svg{color:var(--muted)}.disk-list{display:grid;gap:17px;min-width:0}.disk-row{min-width:0}.disk-row>div:first-child{min-width:0;margin-bottom:7px;display:flex;justify-content:space-between;gap:12px;font-size:13px}.disk-row strong{min-width:0;flex:1 1 auto;overflow-wrap:anywhere;word-break:break-word}.disk-row span{flex:0 0 auto;color:var(--muted)}.toolbar{min-height:44px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.toolbar p{margin-top:4px;color:var(--muted);font-size:12px}.search{width:min(420px,100%);height:36px;padding:0 11px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;gap:8px;color:var(--muted);background:var(--surface)}.search:focus-within{border-color:#6caee2;box-shadow:0 0 0 3px #e7f2fb}.search input{min-width:0;flex:1;border:0;outline:0}.data-page{padding:18px}.status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 16px}.status-grid>div{min-height:92px;padding:16px;display:grid;align-content:center;gap:9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 2px 8px #354f6d09}.status-grid span{color:var(--muted);font-size:12px}.status-grid strong{color:var(--ink);font-size:16px;font-weight:650}.status-grid strong.mono{color:var(--accent);font-size:14px}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{padding:10px 12px;color:var(--muted);background:var(--table-head);font-weight:650;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}td{max-width:480px;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:hover{background:var(--surface-hover)}.truncate{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:12px}.block{display:block;margin-top:4px}.row-actions{display:flex;align-items:center;gap:3px;white-space:nowrap}.icon-button{width:34px;height:34px;padding:0;border:0;border-radius:6px;display:inline-grid;place-items:center;color:#586674;background:transparent}.icon-button:hover{color:var(--ink);background:var(--surface-subtle)}.icon-button.bordered{border:1px solid var(--line);background:var(--surface)}.icon-button.danger:hover{color:var(--red);background:#fae9eb}.icon-button:disabled{opacity:.45;cursor:wait}.text-button{padding:7px 4px;border:0;background:transparent;color:var(--muted)}.primary-button,.secondary-button{min-height:36px;padding:0 14px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;font-weight:600;font-size:13px}.primary-button{color:#fff;background:var(--accent);box-shadow:0 2px 5px #2b78b433}.primary-button:hover{background:var(--accent-hover)}.secondary-button{color:var(--ink);border-color:var(--line);background:var(--surface)}.secondary-button:hover{border-color:var(--accent-border);background:var(--surface-subtle)}.action-row input:not([type=checkbox]),.action-row select,.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea,.restore-form input{width:100%;min-width:0;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:6px;outline:none;color:var(--ink);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.form-grid textarea{height:auto;min-height:108px;padding:10px;resize:vertical;line-height:1.5}.action-row input:not([type=checkbox]):focus,.action-row select:focus,.form-grid input:not([type=checkbox]):focus,.form-grid select:focus,.form-grid textarea:focus,.restore-form input:focus{border-color:var(--focus-border);box-shadow:0 0 0 3px var(--focus-ring)}.status-badge{max-width:190px;padding:3px 7px;border-radius:4px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.status-badge.success{color:#0b6847;background:#ddf2e9}.status-badge.neutral{color:#5d6873;background:#ebeff2}.status-badge.danger{color:#a13232;background:#fbe5e5}.inline-error,.form-error{color:var(--red);font-size:13px}.form-success{padding:9px 11px;color:#0b6847;background:#eef8f3;border-left:3px solid var(--green);font-size:13px}.inline-error{margin:10px 0;padding:9px 11px;background:#fcecee;border-left:3px solid var(--red)}.operation-error{margin:10px 0 14px;padding:12px 10px 12px 13px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:#8f2525;background:#fff1f2;border:1px solid #f1b8bd;border-left:4px solid var(--red);border-radius:5px}.operation-error>div{min-width:0}.operation-error strong{display:block;margin-bottom:6px;font-size:13px}.operation-error pre{max-height:240px;margin:0;overflow:auto;color:#6f2020;font:12px/1.55 Cascadia Code,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}.operation-error .icon-button{flex:0 0 auto}.exposure-form{max-width:680px}.exposure-mode{width:220px;margin-top:7px}.exposure-mode button{flex:1}.exposure-preview{width:fit-content;display:inline-flex;align-items:center;gap:7px;color:var(--accent)}.terminal-list{min-height:280px;padding:14px;overflow:auto;color:#d6e0e8;background:#111920;border-radius:5px;font:12px/1.75 Cascadia Code,Consolas,monospace;white-space:pre}.page-actions{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px}.server-list{display:grid;gap:8px}.server-row{min-height:70px;padding:12px 14px;border:1px solid var(--line);border-radius:7px;background:var(--surface);display:grid;grid-template-columns:42px minmax(180px,1fr) minmax(120px,1fr) 80px auto;align-items:center;gap:12px;cursor:pointer}.server-row:hover{border-color:#a9c9e2}.server-icon{width:38px;height:38px;border-radius:6px;display:grid;place-items:center;color:var(--accent);background:#e8f2fa}.server-main{min-width:0;display:grid;gap:5px}.server-main span{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px}.server-public-ip{color:var(--muted);font-size:11px}.server-labels{display:flex;flex-wrap:wrap;gap:5px}.connection{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.empty-state{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);text-align:center}.empty-state strong{color:var(--ink)}.modal-backdrop{position:fixed;inset:0;z-index:100;padding:20px;display:grid;place-items:center;background:#0b12188f}.modal{width:min(430px,100%);padding:20px;border-radius:7px;background:var(--surface);box-shadow:0 18px 50px #0003}.modal.wide{width:min(620px,100%)}.modal.network-modal{width:min(720px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.modal.container-files-modal{width:min(1040px,100%);max-height:calc(100vh - 40px);overflow:auto}.modal.deploy-modal{width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto}.modal.version-upgrade-modal{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto}.container-file-table{min-height:360px;max-height:calc(100vh - 250px)}.editor-toolbar{margin-bottom:12px;display:flex;align-items:center;gap:12px}.editor-toolbar strong{min-width:0}.container-editor{min-height:480px}.folder-select{width:100%;margin-bottom:4px}.deploy-modal .docker-output{min-height:180px;margin-top:14px}.deploy-type{width:100%}.deploy-type button{flex:1}.container-name-form{max-width:480px}.container-name-form>label{margin-top:18px}.modal-title{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between}.modal label,.login-panel label{margin-top:14px;display:grid;gap:7px;color:#4f5b66;font-size:13px;font-weight:600}.modal input,.modal select,.login-panel input{width:100%;height:39px;padding:0 11px;border:1px solid var(--line);border-radius:5px;outline:none;color:var(--ink);background:var(--surface)}.modal input:focus,.modal select:focus,.login-panel input:focus{border-color:var(--focus-border);box-shadow:0 0 0 3px var(--focus-ring)}.modal-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:8px}.version-upgrade-modal .modal-title{align-items:flex-start}.version-upgrade-modal .modal-title small{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:400}.upgrade-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.upgrade-version-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:7px;background:#f8fafc;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.upgrade-version-card.selected{border-color:#6caee2;background:#f5faff;box-shadow:0 0 0 3px #e7f2fb}.upgrade-component-toggle{width:100%;padding:0 0 12px;border:0;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);background:transparent;text-align:left}.upgrade-component-toggle>span:first-child{min-width:0;display:grid;gap:4px}.upgrade-component-toggle small{color:var(--muted);font-size:11px;font-weight:400}.choice-indicator{flex:0 0 auto;padding:4px 7px;border:1px solid #c5d0da;border-radius:999px;color:var(--muted);background:#fff;font-size:11px;font-weight:600}.upgrade-version-card.selected .choice-indicator{color:#075f9a;border-color:#83bde5;background:#e6f3fc}.upgrade-version-card label{margin-top:0}.upgrade-version-card a{margin-top:11px;display:inline-block;color:var(--accent);font-size:12px}.upgrade-version-card>small{margin-top:8px;display:block;color:var(--muted);font-size:11px;line-height:1.5}.upgrade-warning{margin-top:14px;padding:10px 11px;color:#78551c;border-left:3px solid #d59b37;background:#fff8e8;font-size:12px;line-height:1.55}.config-output{width:100%;min-height:180px;padding:13px;resize:vertical;border:1px solid var(--line);border-radius:5px;background:#f5f7f8;font:12px/1.7 Cascadia Code,Consolas,monospace}.server-actions{display:flex;align-items:center;gap:4px}.server-actions .icon-button:disabled{opacity:.35;cursor:not-allowed}.invite-meta{margin-bottom:10px;display:grid;gap:4px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.invite-output{min-height:220px;overflow-wrap:anywhere}.login-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:28px;overflow:hidden;background:var(--login-bg)}.login-page:before{position:fixed;inset:0 auto 0 0;width:7px;content:"";background:var(--login-edge)}.login-page:after{position:fixed;inset:auto 0 0;height:30%;content:"";background:var(--login-band);clip-path:polygon(0 42%,100% 0,100% 100%,0 100%)}.login-panel{position:relative;z-index:1;width:min(410px,100%);padding:34px;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px #305b792e}.login-brand{margin-bottom:30px;padding-bottom:23px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.login-brand .brand-mark{width:38px;height:38px;color:#fff;background:var(--accent)}.login-brand h1{font-size:20px}.login-brand p{margin-top:4px;color:var(--muted);font-size:12px}.login-panel label{color:#41565b}.login-button{width:100%;margin-top:23px}.mobile-menu,.mobile-close,.scrim{display:none}.file-toolbar{align-items:flex-start}.file-manager-heading{margin-bottom:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.file-manager-heading h2{margin-top:3px;font-size:19px}.file-manager-heading p{margin-top:7px;display:flex;align-items:center;gap:6px;color:var(--muted);font:12px Cascadia Code,Consolas,monospace}.file-manager-heading p svg{color:var(--accent)}.file-count{padding-left:8px;color:#9aa7b4;border-left:1px solid var(--line);font-family:inherit}.eyebrow{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.08em}.loading-label{padding-top:4px;color:var(--muted);font-size:12px}.hidden-input{display:none}.transfer-status{margin:-5px 0 12px;padding:9px 11px 3px;border:1px solid var(--line);border-radius:6px;background:#f8fafb}.transfer-status>div:first-child{margin-bottom:7px;display:grid;grid-template-columns:54px minmax(0,1fr) 42px;gap:9px;color:var(--muted);font-size:12px}.transfer-status>div:first-child span:last-child{text-align:right}.transfer-status .progress{margin-bottom:6px}.breadcrumbs{min-height:36px;display:flex;align-items:center;flex-wrap:wrap}.breadcrumbs button{min-height:30px;padding:0 3px;border:0;display:inline-flex;align-items:center;gap:2px;color:#50606e;background:transparent}.breadcrumbs button:hover{color:var(--accent)}.file-name,.device-name{display:inline-flex;align-items:center;gap:8px}.file-name svg{color:var(--accent)}.file-name small{padding:2px 5px;border-radius:4px;color:#6c7783;background:#eef2f5;font-size:10px}.file-row{cursor:pointer;transition:background .12s ease}.file-row:focus,.file-row:hover{background:#f3f8ff}.file-table{min-height:280px}.file-editor-modal{width:min(900px,100%)}.file-editor-modal .editor{min-height:min(62vh,620px)}.editor-hint{margin-top:9px;color:var(--muted);font-size:12px}.editor{width:100%;min-height:420px;padding:12px;resize:vertical;border:1px solid var(--line);border-radius:5px;outline:none;font:13px/1.55 Cascadia Code,Consolas,monospace;tab-size:4}.editor:focus{border-color:#6caee2;box-shadow:0 0 0 3px #e7f2fb}.check-label{display:inline-flex!important;grid-template-columns:none!important;align-items:center;gap:8px;color:#4f5b66;font-size:13px}.check-label input{width:16px;height:16px;margin:0}input[type=checkbox]{appearance:none;width:18px!important;height:18px!important;padding:0;border:1px solid #b8c5d2;border-radius:5px;display:inline-grid;place-content:center;background:#fff;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}input[type=checkbox]:before{width:9px;height:5px;content:"";border:solid #fff;border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);transition:transform .12s ease}input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}input[type=checkbox]:hover{border-color:var(--accent)}.user-group{margin:2px 4px 2px 0}.secondary-button.compact{min-height:30px;padding:0 9px;font-size:12px}.danger-text{color:var(--red)}.cleanup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cleanup-disks{display:grid;gap:16px}.quick-clean{display:flex;flex-wrap:wrap;gap:9px}.scan-bar{display:grid;grid-template-columns:minmax(180px,1fr) 100px auto auto auto;align-items:center;gap:8px}.scan-bar input{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:5px;min-width:0}.result-table{margin-top:16px;max-height:420px}.tab-toolbar{min-height:44px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.segmented{padding:3px;display:inline-flex;flex-wrap:wrap;gap:2px;border:1px solid var(--line);border-radius:6px;background:var(--surface-subtle)}.segmented button{min-height:30px;padding:0 11px;border:0;border-radius:4px;color:var(--muted);background:transparent;font-size:12px}.segmented button:hover{color:var(--ink)}.segmented button.active{color:var(--ink);background:var(--surface);box-shadow:0 1px 3px #18212b1f;font-weight:600}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--line)}.info-grid>div{min-height:82px;padding:14px;display:grid;align-content:center;gap:7px;background:var(--surface)}.info-grid span{color:var(--muted);font-size:12px}.info-grid strong{min-width:0;overflow-wrap:anywhere;font-size:14px}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.modal textarea{width:100%;min-height:96px;padding:10px 11px;resize:vertical;border:1px solid var(--line);border-radius:5px;outline:none;background:#fff}.modal textarea:focus{border-color:#6caee2;box-shadow:0 0 0 3px #e7f2fb}.modal textarea.docker-output{min-height:480px;color:#d6e0e8;background:#111920;font:12px/1.65 Cascadia Code,Consolas,monospace}.dns-list{min-height:260px;display:flex;align-content:flex-start;flex-wrap:wrap;gap:9px}.dns-server{height:36px;padding:0 12px;border:1px solid #b9d7c9;border-radius:5px;display:inline-flex;align-items:center;color:#0b6847;background:#eef8f3}.modal textarea.dns-editor{min-height:220px}.settings-form{max-width:780px;display:grid;gap:16px}.settings-form label:not(.check-label){display:grid;gap:7px;color:#4f5b66;font-size:13px;font-weight:600}.settings-form input{width:100%;height:39px;padding:0 11px;border:1px solid var(--line);border-radius:5px;outline:none}.settings-form select{width:100%;height:39px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:#fff}.settings-form textarea{width:100%;min-height:108px;padding:10px 11px;resize:vertical;border:1px solid var(--line);border-radius:5px;outline:none}.settings-form input:focus,.settings-form textarea:focus,.settings-form select:focus{border-color:var(--focus-border);box-shadow:0 0 0 3px var(--focus-ring)}.settings-form .primary-button{justify-self:start}.dns-provider-control{margin-bottom:14px;padding:16px;display:grid;gap:13px;border:1px solid #d3e6e2;border-radius:8px;background:#f8fcfb}.dns-provider-control .ha-direct-heading{padding-bottom:2px}.dns-provider-control .form-columns{grid-template-columns:minmax(150px,1fr) minmax(170px,1.15fr) minmax(150px,1fr) minmax(210px,1.45fr) minmax(100px,.65fr);gap:12px}.dns-provider-control label{min-width:0;display:grid;gap:6px;color:#526970;font-size:11px;font-weight:700;letter-spacing:.01em}.dns-provider-control input,.dns-provider-control select{width:100%;height:38px;min-width:0;padding:0 10px;border:1px solid #cddedb;border-radius:6px;outline:none;color:var(--ink);background:#fff}.dns-provider-control input:focus,.dns-provider-control select:focus{border-color:#58a9a2;box-shadow:0 0 0 3px #58a9a224}.dns-provider-control input:disabled,.dns-provider-control select:disabled{color:#91a0a3;background:#eef3f2;cursor:not-allowed}.dns-provider-control>label:not(.form-columns label),.dns-provider-control>template+label{max-width:560px}.dns-provider-control>small{color:var(--muted);font-size:11px;line-height:1.5}.dns-provider-control .secret-input{width:min(560px,100%)}.dns-provider-control .secondary-button{width:fit-content;justify-self:start}.settings-note{color:var(--muted);font-size:12px}.wide-settings{max-width:980px}.data-page>.settings-form.wide-settings{display:none}.firewall-policy-modern{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}.firewall-policy-card{min-height:138px;padding:18px;border:1px solid var(--line);border-radius:6px;background:#fff}.firewall-policy-card h3{margin:0 0 18px;font-size:16px}.policy-choice-row{display:flex;align-items:end;gap:28px;flex-wrap:wrap}.policy-choice-row label:not(.check-label):not(.policy-switch){display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:600}.policy-choice-row select{min-width:120px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:#fff}.policy-switch{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--ink);font-size:13px;font-weight:600}.firewall-policy-actions{grid-column:1 / -1;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding-top:4px}@media(max-width:900px){.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.status-grid,.firewall-policy-modern{grid-template-columns:1fr}.firewall-policy-actions{justify-content:flex-start}}.settings-form textarea.tall-editor{min-height:360px}.firewall-log{white-space:normal}.firewall-log div{min-height:28px;display:flex;align-items:flex-start;gap:8px}.firewall-log svg{margin-top:4px;flex:0 0 auto;color:#6f8292}.web-config-tabs{margin:2px 0 14px;width:fit-content}.web-config-tabs button{display:inline-flex;align-items:center;gap:6px}.web-config-tabs small{color:var(--muted);font-size:11px}.config-service-dot{width:8px;height:8px;display:inline-block;flex:0 0 auto;border-radius:50%;background:#94a3b8}.config-service-dot.nginx{background:#18a877}.config-service-dot.caddy{background:#e7a52c}.web-config-workspace{min-height:580px;display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr);gap:14px}.web-config-list,.web-config-editor{min-width:0;border:1px solid var(--line);border-radius:6px;background:#fff}.web-config-list{overflow:auto}.web-config-list-heading{height:46px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--ink)}.web-config-list-heading span{color:var(--muted);font-size:12px}.config-group-title{min-height:31px;padding:9px 13px 5px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.config-group-title small{margin-left:auto;color:#9ba8b5;font-size:11px;font-weight:500}.config-file-item{width:100%;min-height:54px;padding:8px 11px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;border:0;border-left:3px solid transparent;color:#526477;background:#fff;text-align:left}.config-file-item:hover{background:#f4f8fc}.config-file-item.selected{border-left-color:var(--accent);color:var(--ink);background:#edf5ff}.config-file-item>svg{color:var(--accent)}.config-file-item span{min-width:0;display:grid;gap:3px}.config-file-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}.config-file-item small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font:10px Cascadia Code,Consolas,monospace}.config-file-item em{color:var(--muted);font-size:10px;font-style:normal;white-space:nowrap}.config-list-empty{min-height:160px;padding:26px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:12px;text-align:center}.config-list-empty svg{color:#9bb0c7}.config-list-empty small{max-width:230px;line-height:1.5}.web-config-editor{padding:17px;display:flex;flex-direction:column}.web-config-editor-heading{min-height:48px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.web-config-editor-heading h3{margin:3px 0 4px;font-size:17px}.web-config-editor-heading p{max-width:650px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.config-file-meta{min-height:32px;margin:11px 0;padding:7px 9px;display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);border-top:1px solid #edf1f4;border-bottom:1px solid #edf1f4;font-size:11px}.web-config-editor-textarea{min-height:440px;flex:1;resize:vertical}.web-config-editor-actions{margin-top:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.web-config-editor-actions small{color:var(--muted);line-height:1.5}.web-config-editor-empty{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;color:var(--muted);text-align:center}.web-config-editor-empty svg{color:#a8bfd6}.web-config-editor-empty strong{color:var(--ink);font-size:15px}.web-config-editor-empty span{max-width:340px;font-size:12px;line-height:1.6}.web-config-output{margin-top:0}.web-config-create-modal{max-height:calc(100vh - 40px);overflow-y:auto}.create-config-editor{min-height:250px}@media(max-width:900px){.web-config-workspace{grid-template-columns:1fr}.web-config-list{max-height:360px}.web-config-editor-empty{min-height:260px}}@media(max-width:620px){.web-config-toolbar{align-items:flex-start;flex-direction:column}.web-config-toolbar .row-actions{width:100%;flex-wrap:wrap}.web-config-editor-actions{align-items:flex-start;flex-direction:column}}.certificate-summary{margin-top:14px}.certificate-toolbar{align-items:flex-start}.certificate-toolbar h2{margin-top:3px;font-size:19px}.certificate-toolbar p{margin-top:7px;color:var(--muted);font-size:12px}.certificate-filters{margin:4px 0 8px;align-items:center}.certificate-filter-input{width:min(340px,100%)}.certificate-filter-input input{width:100%;height:36px;padding:0 11px;border:1px solid var(--line);border-radius:5px;outline:none}.certificate-filter-input input:focus{border-color:#6caee2;box-shadow:0 0 0 3px #e7f2fb}.certificate-kind-filter{width:fit-content;margin-bottom:12px}.certificate-workspace{min-width:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:14px}.certificate-table{min-height:430px;border:1px solid var(--line);border-radius:6px}.certificate-row{cursor:pointer}.certificate-row.selected{background:#edf5ff}.certificate-row:hover{background:#f4f8fc}.certificate-name{min-width:210px;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:7px}.certificate-name svg{grid-row:span 2;color:var(--accent)}.certificate-name strong,.certificate-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.certificate-name small{color:var(--muted)}.certificate-subject{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge.warning{color:#78551c;background:#fff1cf}.certificate-detail{min-width:0;min-height:430px;padding:16px;border:1px solid var(--line);border-radius:6px;background:#fff}.certificate-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.certificate-detail-heading h3{margin:3px 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}.certificate-detail-heading p{max-width:430px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.certificate-detail-meta{margin:12px 0;padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;border:1px solid var(--line);border-radius:5px;background:#f8fafc}.certificate-detail-meta div,.certificate-detail-info div{min-width:0;display:grid;gap:4px}.certificate-detail-meta span,.certificate-detail-info span{color:var(--muted);font-size:11px}.certificate-detail-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.certificate-detail-info{margin-bottom:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:var(--line)}.certificate-detail-info div{min-height:58px;padding:9px 10px;background:#fff}.certificate-detail-info strong{min-width:0;overflow-wrap:anywhere;font-size:12px}.certificate-editor{min-height:260px;max-height:440px}.certificate-detail-actions{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.certificate-detail-actions small{color:var(--muted);font-size:11px;line-height:1.45}.certificate-private-warning{margin-bottom:12px;padding:12px;display:flex;align-items:flex-start;gap:9px;color:#78551c;border:1px solid #efd89a;border-radius:5px;background:#fff9e9}.certificate-private-warning svg{flex:0 0 auto}.certificate-private-warning div{display:grid;gap:4px}.certificate-private-warning span{font-size:11px;line-height:1.5}.certificate-detail-empty{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;color:var(--muted);text-align:center}.certificate-detail-empty svg{color:#a8bfd6}.certificate-detail-empty strong{color:var(--ink);font-size:15px}.certificate-detail-empty span{max-width:280px;font-size:12px;line-height:1.6}.certificate-output{margin-top:0}.certificate-create-modal{max-height:calc(100vh - 40px);overflow-y:auto}.create-certificate-editor{min-height:260px}@media(max-width:1050px){.certificate-workspace{grid-template-columns:1fr}.certificate-detail{min-height:0}}@media(max-width:760px){.certificate-filters{align-items:stretch;flex-direction:column}.certificate-filter-input{width:100%}.certificate-detail-actions{align-items:flex-start;flex-direction:column}}.ddns-modal{max-height:calc(100vh - 40px);overflow-y:auto}.gateway-status{margin-bottom:14px}.gateway-rules{min-height:260px}.editable-value{display:flex;align-items:center;gap:8px}.mirror-settings{max-width:840px}.mirror-settings .tall-editor{min-height:260px}.mirror-presets{display:flex;flex-wrap:wrap;gap:7px}.empty-row{min-height:110px;display:grid;place-items:center;color:var(--muted);font-size:13px}.status-toggle{min-width:68px;height:28px;padding:0 8px;border:1px solid var(--line);border-radius:5px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);background:#fff;font-size:12px}.status-toggle span{width:7px;height:7px;border-radius:50%;background:#9aa5af}.status-toggle.active{color:#0b6847;border-color:#b9d7c9;background:#eef8f3}.status-toggle.active span{background:var(--green)}.settings-page{max-width:980px;display:grid;gap:14px}.settings-account strong{display:flex;align-items:center;gap:8px}.password-form{max-width:520px}.ha-disabled,.ha-recovery-notice{min-height:68px;padding:14px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;gap:12px;background:#f8fafc}.ha-disabled>div,.ha-recovery-notice>div{min-width:0;flex:1;display:grid;gap:4px}.ha-disabled span,.ha-recovery-notice span{color:var(--muted);font-size:12px}.ha-recovery-notice{border-color:#b9d7c9;background:#eef8f3}.ha-recovery-notice>svg{color:var(--green)}.ha-summary{margin-bottom:14px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line);border-radius:6px;overflow:hidden}.ha-summary>div{min-height:72px;padding:12px;display:grid;align-content:center;gap:6px;border-right:1px solid var(--line)}.ha-summary>div:last-child{border-right:0}.ha-summary span{color:var(--muted);font-size:11px}.ha-summary strong{display:flex;align-items:center;gap:8px;font-size:13px}.ha-entry-routing{margin-bottom:14px;padding:13px 14px;border:1px solid #acd5c2;border-radius:7px;display:grid;gap:10px;background:#f1faf6}.ha-mode-control{margin-bottom:14px;padding:13px 14px;border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f8fafb}.ha-mode-control>div:first-child{min-width:0;display:grid;gap:4px}.ha-mode-control small,.ha-mode-control span{color:var(--muted);font-size:11px}.ha-mode-control .form-error{color:var(--red)}.ha-mode-switch{flex:0 0 auto}.ha-mode-switch button:disabled{cursor:not-allowed;opacity:.5}.ha-settings>.panel-title h2,.settings-page>.panel>.panel-title h2{letter-spacing:-.01em}.ha-settings>.panel-title h2:before{width:4px;height:18px;margin-right:9px;border-radius:2px;display:inline-block;content:"";vertical-align:-3px;background:var(--accent)}.ha-tunnel-endpoint{margin-bottom:14px;padding:13px 14px;border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:minmax(220px,1fr) minmax(190px,1fr) 130px auto;align-items:end;gap:10px;background:#fff}.ha-tunnel-endpoint-copy{min-width:0;display:grid;gap:5px}.ha-tunnel-endpoint-copy small{color:var(--muted);font-size:11px;line-height:1.5}.ha-tunnel-endpoint label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:600}.ha-tunnel-endpoint input,.ha-tunnel-endpoint select{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:5px;outline:none;background:#fff}.ha-tunnel-endpoint input:focus,.ha-tunnel-endpoint select:focus{border-color:#6caee2;box-shadow:0 0 0 3px #e7f2fb}.ha-tunnel-endpoint input:disabled,.ha-tunnel-endpoint select:disabled{cursor:not-allowed;opacity:.65}.ha-tunnel-endpoint .primary-button:disabled{cursor:not-allowed;opacity:.5}.tunnel-endpoint-message{grid-column:2 / -1;margin:0;overflow-wrap:anywhere;font-size:11px}.cloudflare-token-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,2fr) auto;align-items:end;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.cloudflare-token-help{grid-column:1 / -1;display:grid;gap:4px;padding:10px 12px;border-left:3px solid var(--accent);background:var(--surface-subtle);color:var(--muted);font-size:12px;line-height:1.55}.cloudflare-token-help strong{color:var(--ink);font-size:12px}.cloudflare-token-copy{display:flex;align-items:center;gap:9px;min-height:36px}.cloudflare-token-copy>div{display:grid;gap:2px}.cloudflare-token-copy small{color:var(--muted);font-size:11px}.secret-input{display:grid;grid-template-columns:minmax(0,1fr) 36px}.ha-tunnel-endpoint .secret-input input{border-radius:5px 0 0 5px}.ha-tunnel-endpoint .secret-input .icon-button{width:36px;height:36px;border-left:0;border-radius:0 5px 5px 0}.cloudflare-token-message{grid-column:2 / -1;margin:0;overflow-wrap:anywhere;font-size:11px}.ha-direct-control{margin-bottom:14px;padding:13px 14px;border:1px solid #acd5c2;border-radius:7px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f1faf6}.ha-direct-control.disabled{border-color:var(--line);background:#f8fafb}.ha-direct-copy{min-width:0;display:grid;gap:5px}.ha-direct-copy small{color:var(--muted);font-size:11px;line-height:1.5}.ha-direct-heading{display:flex;align-items:center;gap:8px;color:var(--ink)}.ha-direct-heading>svg{color:var(--accent)}.direct-toggle{min-width:116px;height:34px;padding:0 11px;border:1px solid #9dcab7;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#176847;background:#fff;font-size:12px;font-weight:700;white-space:nowrap}.direct-toggle:hover:not(:disabled){border-color:#5fa487;background:#f8fffb}.direct-toggle:disabled{cursor:not-allowed;opacity:.55}.direct-toggle-track{width:30px;height:17px;padding:2px;border-radius:10px;display:inline-flex;align-items:center;background:#9aa5af;transition:background .15s ease}.direct-toggle-track i{width:13px;height:13px;border-radius:50%;display:block;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s ease}.direct-toggle.active .direct-toggle-track{background:var(--green)}.direct-toggle.active .direct-toggle-track i{transform:translate(13px)}.ha-entry-routing.warning{border-color:#e6c68d;background:#fff9ee}.ha-entry-main,.ha-entry-fallback{min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px}.ha-entry-main>svg{color:var(--green)}.ha-entry-fallback{padding-top:10px;border-top:1px solid rgba(122,151,139,.28)}.ha-entry-fallback>svg{color:var(--accent)}.ha-entry-main>div,.ha-entry-fallback>div{min-width:0;display:grid;gap:3px}.ha-entry-main small{color:var(--muted);font-size:11px}.ha-entry-routing a{width:fit-content;max-width:100%;overflow:hidden;display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ha-entry-fallback small{max-width:260px;color:var(--muted);font-size:11px;text-align:right}.ha-entry-routing .form-error{margin:0}.ha-dns-propagation{margin-bottom:14px;padding:14px;border:1px solid #b8cee8;border-radius:7px;display:grid;gap:11px;background:#f5f9ff}.ha-dns-propagation.complete{border-color:#acd5c2;background:#f1faf6}.ha-dns-propagation.warning{border-color:#e6c68d;background:#fff9ee}.ha-dns-heading{display:flex;align-items:center;gap:11px}.ha-dns-heading>svg{flex:0 0 auto;color:var(--accent)}.ha-dns-propagation.complete .ha-dns-heading>svg{color:var(--green)}.ha-dns-propagation.warning .ha-dns-heading>svg{color:#a76a08}.ha-dns-heading>div{min-width:0;flex:1;display:grid;gap:4px}.ha-dns-heading strong{font-size:13px}.ha-dns-heading span{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ha-dns-heading .spinning{animation:ha-dns-spin .8s linear infinite}.ha-dns-progress{height:5px;overflow:hidden;border-radius:999px;background:#dce8f5}.ha-dns-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .5s ease}.ha-dns-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:11px}.ha-dns-resolvers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ha-dns-resolvers>div{min-width:0;padding:10px 11px;border:1px solid var(--line);border-left-width:3px;border-radius:6px;display:grid;gap:4px;background:#ffffffd6}.ha-dns-resolvers>div.success{border-left-color:var(--green)}.ha-dns-resolvers>div.waiting{border-left-color:#d89a32}.ha-dns-resolvers>div.error{border-left-color:#c85b5b}.ha-dns-resolvers span{color:var(--muted);font-size:11px}.ha-dns-resolvers strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ha-dns-resolvers small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}@keyframes ha-dns-spin{to{transform:rotate(360deg)}}.ha-node-list{margin-top:14px;display:grid;gap:8px}.ha-node{min-height:62px;padding:11px 12px;border:1px solid var(--line);border-radius:6px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;background:#fff}.ha-node.current{border-color:#9ec4ee;background:#f5faff}.ha-node.offline{border-color:#ebcaca;background:snow}.ha-node>svg{color:var(--accent)}.ha-node>div{min-width:0;display:grid;gap:5px}.ha-node>div strong{display:flex;align-items:center;gap:7px}.ha-node-health{display:flex!important;grid-auto-flow:initial;flex-wrap:wrap;align-items:center;gap:6px 9px!important;color:var(--muted);font-size:11px}.ha-node-error{max-width:680px;overflow:hidden;color:#a13232;text-overflow:ellipsis;white-space:nowrap}.ha-audit{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.ha-audit h3{margin:0 0 9px;font-size:13px}.ha-audit>div{min-height:34px;display:grid;grid-template-columns:150px 90px minmax(0,1fr);align-items:center;gap:10px;color:var(--muted);font-size:12px}.ha-audit strong{color:var(--ink)}.blacklist-settings{display:grid;gap:20px}.blacklist-settings .tall-editor{min-height:180px}.auto-blacklist-table{border-top:1px solid var(--line);padding-top:14px}.container-detail-page{display:grid;gap:14px}.container-detail-header{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.detail-heading,.detail-title,.detail-name-row{display:flex;align-items:center;gap:12px}.detail-title{min-width:0}.detail-title>svg{flex:0 0 auto;color:var(--accent)}.detail-name-row{gap:9px}.detail-name-row h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-actions{flex-wrap:wrap;justify-content:flex-end}.detail-section{padding:18px}.detail-section .panel-title{margin-bottom:14px}.detail-section .panel-title h2{display:flex;align-items:center;gap:7px}.detail-section .panel-title h2 svg{color:var(--accent)}.detail-section .panel-title small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.detail-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--line)}.detail-info-grid>div{min-height:74px;padding:12px 14px;display:grid;align-content:center;gap:6px;background:#fff}.detail-info-grid span{color:var(--muted);font-size:12px}.detail-info-grid strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.detail-info-grid .detail-wrap{overflow-wrap:anywhere;white-space:normal}.network-connect{display:flex;align-items:center;gap:8px}.network-connect select{min-width:220px;height:32px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:#fff}.network-connect-form{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:12px}.network-connect-form label{display:grid;gap:7px;color:#4f5b66;font-size:13px;font-weight:600}.network-connect-form input,.network-connect-form select{width:100%;height:39px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:#fff}.mihomo-status-bar{margin-bottom:14px;padding:14px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc}.mihomo-status-bar strong{display:flex;align-items:center;gap:8px}.detail-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}.detail-table-wrap table{min-width:680px}.detail-table-wrap th{background:#f7f9fc}.metadata-table{overflow-x:auto;border:1px solid var(--line);border-radius:6px}.metadata-table table{min-width:560px}.metadata-table th{background:#f7f9fc}.metadata-table td{vertical-align:top}.detail-editor{width:100%;min-height:112px;padding:11px;resize:vertical;border:1px solid var(--line);border-radius:6px;outline:none;background:#fff}.detail-editor:focus{border-color:#6caee2;box-shadow:0 0 0 3px #e7f2fb}.port-preview{margin-top:12px}.detail-raw{max-height:520px;margin:0;padding:14px;overflow:auto;color:#d6e0e8;background:#111920;border-radius:5px;font:12px/1.65 Cascadia Code,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.compose-status-list{display:grid;gap:8px}.compose-status-row{min-height:58px;padding:11px;display:grid;grid-template-columns:minmax(160px,2fr) 100px 110px minmax(140px,1fr);align-items:center;gap:12px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;font-size:12px}.detail-notice{display:flex;align-items:center;justify-content:space-between;gap:8px}body,.sidebar,.workspace,.topbar,.panel,.metric-card,.server-row,.server-picker,.icon-button,.secondary-button{transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}[data-theme=night] .sidebar .status-dot.online{box-shadow:0 0 0 3px #294a46}[data-theme=night] .progress{background:#38505f}[data-theme=night] .metric-card:nth-child(2) .metric-label svg{background:#24493f}[data-theme=night] .metric-card:nth-child(3) .metric-label svg{background:#303b5c}[data-theme=night] .metric-card:nth-child(4) .metric-label svg{background:#514128}[data-theme=night] :is(input,select,textarea){color:var(--ink);border-color:var(--line);background:var(--surface)}[data-theme=night] :is(.status-grid>div,.server-row,.modal,.choice-indicator,.firewall-policy-card,.web-config-list,.web-config-editor,.certificate-detail,.certificate-detail-info div,.status-toggle,.ha-tunnel-endpoint,.ha-node,.detail-info-grid>div,.detail-editor){color:var(--ink);border-color:var(--line);background:var(--surface)}[data-theme=night] :is(.upgrade-version-card,.transfer-status,.certificate-detail-meta,.ha-disabled,.ha-mode-control,.ha-direct-control.disabled,.mihomo-status-bar,.compose-status-row,.dns-provider-control){color:var(--ink);border-color:var(--line);background:var(--surface-subtle)}[data-theme=night] :is(.config-file-item,.breadcrumbs button,.login-panel label,.modal label,.settings-form label:not(.check-label),.network-connect-form label){color:var(--ink)}[data-theme=night] :is(.detail-table-wrap th,.metadata-table th){color:var(--muted);background:var(--table-head)}[data-theme=night] :is(.config-file-item,.segmented button.active){background:var(--surface)}[data-theme=night] :is(.config-file-item:hover,.config-file-item.active){background:var(--surface-hover)}[data-theme=night] .server-icon{background:var(--accent-soft)}[data-theme=night] .ha-node.current{border-color:var(--accent-border);background:var(--accent-soft)}[data-theme=night] .ha-node.offline{border-color:#704b50;background:#382d32}[data-theme=night] .config-output{color:var(--ink);border-color:var(--line);background:#182a34}[data-theme=night] .search input{background:transparent}@media(prefers-reduced-motion:reduce){body,.sidebar,.workspace,.topbar,.panel,.metric-card,.server-row,.server-picker,.icon-button,.secondary-button{transition:none}}@media(max-width:900px){.detail-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.container-detail-header{align-items:flex-start;flex-direction:column}.detail-actions{justify-content:flex-start}}@media(max-width:560px){.detail-info-grid{grid-template-columns:1fr}.detail-heading{align-items:flex-start;flex-direction:column}.network-connect{width:100%;align-items:stretch;flex-direction:column}.network-connect select{min-width:0;width:100%}.network-connect-form{grid-template-columns:1fr}}@media(max-width:1050px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dns-provider-control .form-columns{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.app-shell{display:block}.workspace{min-width:0}.sidebar{transform:translate(-100%);transition:transform .18s ease}.sidebar.open{transform:translate(0)}.scrim{position:fixed;inset:0;z-index:25;display:block;background:#0c121780}.mobile-menu{display:inline-grid}.mobile-close{position:absolute;top:17px;right:10px;display:inline-grid;color:#c5ced6}.topbar{height:62px;padding:0 12px}.topbar h1{font-size:17px}.topbar>div:nth-child(2) p{display:none}.server-picker{min-width:0;width:145px}.text-button{display:none}.page{padding:12px}.dashboard-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.metric-card{min-height:135px}.server-row{grid-template-columns:42px minmax(0,1fr) 70px 34px}.server-labels{display:none}.connection{font-size:0}.connection .status-dot{margin:auto}td,th{padding:10px}.login-panel{padding:24px}.file-toolbar{flex-direction:column}.cleanup-grid{grid-template-columns:1fr}.cleanup-grid .span-2{grid-column:span 1}.scan-bar{grid-template-columns:minmax(0,1fr) 80px auto}.scan-bar button{grid-column:span 1}.tab-toolbar{align-items:flex-start;flex-direction:column}.segmented{width:100%;overflow-x:auto;flex-wrap:nowrap}.segmented button{flex:1 0 auto}.info-grid{grid-template-columns:1fr}.form-columns{grid-template-columns:1fr;gap:0}.dns-provider-control{padding:13px}.dns-provider-control .form-columns{grid-template-columns:1fr;gap:0}.dns-provider-control label{margin-top:12px}.upgrade-version-grid,.ha-summary{grid-template-columns:1fr}.ha-summary>div{border-right:0;border-bottom:1px solid var(--line)}.ha-summary>div:last-child{border-bottom:0}.ha-entry-main,.ha-entry-fallback{grid-template-columns:24px minmax(0,1fr)}.ha-mode-control,.ha-direct-control{align-items:stretch;flex-direction:column}.ha-tunnel-endpoint{grid-template-columns:1fr;align-items:stretch}.tunnel-endpoint-message{grid-column:1}.cloudflare-token-row{grid-column:1;grid-template-columns:1fr;align-items:stretch}.cloudflare-token-message{grid-column:1}.ha-entry-main>:last-child,.ha-entry-fallback>:last-child{grid-column:2;justify-self:start;text-align:left}.ha-recovery-notice{align-items:flex-start;flex-wrap:wrap}.ha-dns-resolvers{grid-template-columns:1fr}.ha-node{grid-template-columns:24px minmax(0,1fr)}.ha-node>:last-child{grid-column:2;justify-self:start}.ha-audit>div{grid-template-columns:1fr;gap:3px;padding:8px 0;border-bottom:1px solid var(--line)}}
