:root { --primary:#00664f; --primary-hover:#00866a; --primary-light:#e7f3ef; --text:#1f2329; --muted:#646a73; --border:#d9dce1; --border-light:#e8eaed; --page:#f5f6f8; --white:#fff; --sidebar:#f7f8fa; --success:#00a870; --warning:#ed7b2f; --danger:#d54941; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; }
body { background:var(--page); color:var(--text); font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; }
button,input,select { font:inherit; }
.topbar { position:fixed; z-index:20; inset:0 0 auto; height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 24px 0 18px; border-bottom:1px solid var(--border-light); background:var(--white); }
.brand { display:flex; align-items:center; gap:10px; color:var(--text); font-size:16px; font-weight:600; text-decoration:none; }
.brand-logo { display:block; width:28px; height:28px; object-fit:contain; }
.topbar-right { display:flex; align-items:center; gap:14px; color:var(--muted); font-size:13px; }
.topbar-divider { width:1px; height:18px; background:var(--border-light); }
.account-name { color:var(--text); }
.topbar-action { padding:0; border:0; background:transparent; color:var(--primary); cursor:pointer; }
.app-shell { min-height:100vh; padding-top:56px; }
.sidebar { position:fixed; z-index:10; left:0; top:56px; bottom:0; width:220px; display:flex; flex-direction:column; border-right:1px solid var(--border-light); background:var(--sidebar); }
.sidebar-nav { flex:1; padding:12px 10px; overflow-y:auto; }
.nav-item { display:flex; height:40px; align-items:center; gap:10px; padding:0 12px; border-radius:3px; color:#373c43; text-decoration:none; }
.nav-item:hover { background:#eef1f5; }
.nav-item.active { color:var(--primary); font-weight:500; }
.nav-icon { width:18px; color:#737981; text-align:center; }
.nav-item.active .nav-icon { color:var(--primary); }
.nav-group > summary { list-style:none; }
.nav-group > summary::-webkit-details-marker { display:none; }
.nav-parent { cursor:pointer; user-select:none; }
.nav-arrow { margin-left:auto; color:#8b9098; transition:transform .16s ease; }
.nav-group:not([open]) .nav-arrow { transform:rotate(-90deg); }
.nav-label { padding:20px 12px 8px; color:#969ba3; font-size:12px; }
.nav-subitem { display:flex; min-height:36px; align-items:center; margin:1px 0; padding:7px 12px 7px 40px; border-radius:3px; color:#4e545c; text-decoration:none; }
.nav-subitem:hover { background:#eef1f5; }
.nav-subitem.active { position:relative; background:var(--primary-light); color:var(--primary); }
.nav-subitem.active::before { position:absolute; left:0; width:3px; height:20px; background:var(--primary); content:""; }
.nav-item.active { position:relative; background:var(--primary-light); }
.nav-item.active::before { position:absolute; left:0; width:3px; height:20px; background:var(--primary); content:""; }
.sidebar-status { display:flex; align-items:center; gap:8px; padding:15px 20px; border-top:1px solid var(--border-light); color:var(--muted); font-size:12px; }
.health-dot { width:7px; height:7px; border-radius:50%; background:var(--success); box-shadow:0 0 0 3px rgba(0,168,112,.12); }
.main-content { min-width:0; margin-left:220px; padding:24px 28px 48px; }
.breadcrumb { display:flex; gap:8px; margin-bottom:18px; color:#8b9098; font-size:13px; }
.breadcrumb a { color:var(--primary); text-decoration:none; }
.breadcrumb strong { color:#4e545c; font-weight:400; }
.page-header { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:20px; }
.page-header h1 { margin:0 0 5px; font-size:24px; font-weight:600; }
.page-header p { margin:0; color:var(--muted); }
.header-actions { display:flex; gap:8px; }
.panel { border:1px solid var(--border-light); background:var(--white); }
.panel-toolbar { display:flex; height:52px; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid var(--border-light); }
.panel-toolbar strong { font-size:15px; font-weight:600; }
.panel-toolbar span { color:var(--muted); font-size:13px; }
.table-wrap { overflow-x:auto; }
.data-table { width:100%; min-width:1020px; border-collapse:collapse; table-layout:fixed; }
.data-table th { height:44px; padding:0 16px; border-bottom:1px solid var(--border-light); background:#fafafa; color:#4e545c; font-size:13px; font-weight:500; text-align:left; }
.data-table td { padding:17px 16px; border-bottom:1px solid var(--border-light); vertical-align:top; }
.data-table tbody tr:last-child td { border-bottom:0; }
.data-table tbody tr:hover { background:#fafcff; }
.data-table th:nth-child(1){width:25%}.data-table th:nth-child(2){width:11%}.data-table th:nth-child(3){width:19%}.data-table th:nth-child(4){width:19%}.data-table th:nth-child(5){width:10%}.data-table th:nth-child(6){width:16%}
.script-name { color:var(--primary); font-weight:500; text-decoration:none; }
.script-name:hover,.text-action:hover { color:var(--primary-hover); }
.cell-secondary { margin-top:4px; color:var(--muted); font-size:13px; }
.cell-code { margin-top:4px; color:#969ba3; font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; }
.date-cell { color:#4e545c; font-size:13px; }
.status { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.status i { width:7px; height:7px; border-radius:50%; background:#8b9098; }
.status.running { color:var(--primary); }.status.running i { background:var(--primary); }
.status.success { color:var(--success); }.status.success i { background:var(--success); }
.status.failed { color:var(--danger); }.status.failed i { background:var(--danger); }
.status.idle { color:var(--warning); }.status.idle i { background:var(--warning); }
.timer-state { display:inline-block; padding:1px 7px; border:1px solid #b7ebd4; border-radius:2px; background:#f1fff9; color:var(--success); font-size:12px; }
.timer-state.disabled { border-color:var(--border); background:#fafafa; color:#737981; }
.table-actions { display:flex; flex-wrap:wrap; gap:8px 12px; }
.table-actions form { margin:0; }
.text-action { padding:0; border:0; background:transparent; color:var(--primary); text-decoration:none; white-space:nowrap; cursor:pointer; }
.danger-text { color:var(--danger); }
.account-form-panel { margin-bottom:16px; }
.account-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:16px; padding:18px; }
.account-form label { display:grid; gap:6px; color:#4e545c; font-size:13px; }
.account-form label > span { display:flex; align-items:center; gap:5px; }
.account-form label em { color:#969ba3; font-size:12px; font-style:normal; }
.account-form input:not([type="checkbox"]) { width:100%; height:36px; padding:0 10px; border:1px solid var(--border); border-radius:2px; outline:none; background:var(--white); color:var(--text); }
.account-form input:not([type="checkbox"]):focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(0,102,79,.08); }
.account-form-wide { grid-column:span 2; }
.switch-field { display:flex!important; min-height:36px; align-items:center; gap:8px; }
.switch-field input { width:16px; height:16px; accent-color:var(--primary); }
.account-form-actions { display:flex; align-items:center; gap:8px; }
.account-list-wrap { border-top:1px solid var(--border-light); }
.account-table { min-width:1080px; }
.account-table th:nth-child(1){width:13%}.account-table th:nth-child(2){width:15%}.account-table th:nth-child(3){width:15%}.account-table th:nth-child(4){width:18%}.account-table th:nth-child(5){width:9%}.account-table th:nth-child(6){width:10%}.account-table th:nth-child(7){width:13%}.account-table th:nth-child(8){width:7%}
.switch-button { display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:transparent; color:#8b9098; cursor:pointer; font-size:13px; }
.switch-button i { width:22px; height:14px; position:relative; border-radius:8px; background:#c8cdd3; }
.switch-button i::after { position:absolute; top:2px; left:2px; width:10px; height:10px; border-radius:50%; background:#fff; content:""; transition:left .15s ease; }
.switch-button.on { color:var(--success); }.switch-button.on i { background:var(--success); }.switch-button.on i::after { left:10px; }
.account-security-note { margin-top:12px; padding:12px 16px; border:1px solid #ead6a8; background:#fffbef; color:#6b5627; font-size:12px; }
.account-form-panel > .account-security-note { margin:0; border-width:1px 0 0; }
.task-overview-grid { display:grid; grid-template-columns:1fr 1.25fr 1.5fr .75fr; gap:12px; margin-bottom:16px; }
.task-overview-grid > div { min-width:0; padding:17px 20px; border:1px solid var(--border-light); background:var(--white); }
.task-overview-grid > div > span { display:block; margin-bottom:6px; color:var(--muted); font-size:13px; }
.task-overview-grid strong { display:block; overflow:hidden; color:#373c43; font-size:15px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.task-log-panel { margin-top:16px; }
.log-list-toolbar { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:20px; padding:10px 16px; border-bottom:1px solid var(--border-light); }
.log-list-toolbar > div { display:flex; align-items:center; gap:14px; }.log-list-toolbar > div span { color:var(--muted); font-size:13px; }
.log-error { padding:12px 16px; border-bottom:1px solid #f5c2bf; background:#fff3f2; color:var(--danger); }
.log-entry-table { width:100%; min-width:980px; border-collapse:collapse; table-layout:fixed; }
.log-entry-table th { height:42px; padding:0 14px; border-bottom:1px solid var(--border-light); background:#fafafa; color:#4e545c; font-size:13px; font-weight:500; text-align:left; }
.log-entry-table td { padding:12px 14px; border-bottom:1px solid var(--border-light); color:#4e545c; font-size:13px; vertical-align:top; }
.log-entry-table th:nth-child(1){width:170px}.log-entry-table th:nth-child(2){width:76px}.log-entry-table th:nth-child(3){width:130px}.log-entry-table th:nth-child(4){width:auto}
.log-entry-table pre { max-height:160px; margin:0; overflow:auto; color:#30353b; font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; word-break:break-word; }
.log-level { display:inline-block; min-width:38px; padding:1px 6px; border-radius:2px; background:#edf3f1; color:var(--primary); text-align:center; font-size:12px; }
.log-level.warning { background:#fff7e8; color:var(--warning); }.log-level.error { background:#fff2f1; color:var(--danger); }
.button,.primary { display:inline-flex; min-height:32px; align-items:center; justify-content:center; padding:5px 15px; border:1px solid var(--border); border-radius:2px; background:var(--white); color:#373c43; text-decoration:none; cursor:pointer; }
.button:hover { border-color:var(--primary); color:var(--primary); }
.primary { border-color:var(--primary); background:var(--primary); color:#fff; }.primary:hover { border-color:var(--primary-hover); background:var(--primary-hover); }
.primary:disabled { border-color:#b7c1bd; background:#b7c1bd; cursor:not-allowed; }
.empty { height:140px; color:#969ba3; text-align:center; vertical-align:middle!important; }
.flash { margin-bottom:16px; padding:10px 14px; border:1px solid #a9d4c6; background:#edf8f4; color:#075e4b; }
.flash.success { border-color:#b7ebd4; background:#f1fff9; color:#087f5b; }.flash.error { border-color:#f5c2bf; background:#fff3f2; color:var(--danger); }
.log-toolbar { display:flex; align-items:center; gap:28px; min-height:54px; padding:10px 18px; border-bottom:1px solid var(--border-light); color:#4e545c; font-size:13px; }
.log-toolbar div span:not(.status) { color:#8b9098; }
.logs { min-height:520px; max-height:calc(100vh - 245px); margin:0; padding:18px; overflow:auto; background:#20252b; color:#d8dde5; font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; word-break:break-word; }
.header-actions form { margin:0; }
.data-overview-grid { display:grid; grid-template-columns:1.1fr .7fr .6fr 1fr; gap:12px; margin-bottom:16px; }
.data-overview-grid > div { min-width:0; padding:17px 20px; border:1px solid var(--border-light); background:var(--white); }
.data-overview-grid span { display:block; margin-bottom:6px; color:var(--muted); font-size:13px; }
.data-overview-grid strong { display:block; overflow:hidden; color:#373c43; font-size:16px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.data-browser { display:grid; grid-template-columns:250px minmax(0,1fr); align-items:start; gap:16px; }
.data-table-list nav { padding:6px 0; }
.data-table-link { display:flex; min-height:54px; align-items:center; justify-content:space-between; gap:12px; padding:8px 14px; border-left:3px solid transparent; color:#373c43; text-decoration:none; }
.data-table-link:hover { background:#f6f8f9; }
.data-table-link.active { border-left-color:var(--primary); background:var(--primary-light); color:var(--primary); }
.data-table-link span { display:grid; min-width:0; }
.data-table-link strong { overflow:hidden; font-size:13px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.data-table-link small { overflow:hidden; color:#8b9098; font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow:ellipsis; white-space:nowrap; }
.data-table-link em { min-width:28px; padding:1px 6px; border-radius:10px; background:#eef1f3; color:#646a73; font-size:11px; font-style:normal; text-align:center; }
.data-preview-panel { min-width:0; }
.database-table { width:100%; min-width:max-content; border-collapse:collapse; }
.database-table th { height:42px; padding:0 14px; border-bottom:1px solid var(--border-light); background:#fafafa; color:#4e545c; font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; font-weight:500; text-align:left; white-space:nowrap; }
.database-table td { max-width:320px; padding:11px 14px; border-bottom:1px solid var(--border-light); color:#4e545c; font-size:13px; vertical-align:top; }
.database-table tbody tr:last-child td { border-bottom:0; }
.database-table tbody tr:hover { background:#fafcff; }
.database-table td span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.database-table .sensitive-cell { color:#8b9098; letter-spacing:1px; }
.database-table .muted-cell { color:#969ba3; font-style:italic; }
.backup-panel { margin-top:16px; }
.backup-table { width:100%; min-width:760px; border-collapse:collapse; table-layout:fixed; }
.backup-table th { height:42px; padding:0 16px; border-bottom:1px solid var(--border-light); background:#fafafa; color:#4e545c; font-size:13px; font-weight:500; text-align:left; }
.backup-table td { padding:14px 16px; border-bottom:1px solid var(--border-light); vertical-align:middle; }
.backup-table tbody tr:last-child td { border-bottom:0; }
.backup-table th:nth-child(1){width:42%}.backup-table th:nth-child(2){width:24%}.backup-table th:nth-child(3){width:14%}.backup-table th:nth-child(4){width:20%}
.data-security-note { margin-top:12px; padding:12px 16px; border:1px solid #ead6a8; background:#fffbef; color:#6b5627; font-size:12px; }
.visitor-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.visitor-stats div { padding:18px 20px; border:1px solid var(--border-light); background:var(--white); }
.visitor-stats span { display:block; margin-bottom:6px; color:var(--muted); font-size:13px; }
.visitor-stats strong { font-size:24px; font-weight:500; }
.visitor-toolbar { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:20px; padding:10px 16px; border-bottom:1px solid var(--border-light); }
.search-form { display:flex; align-items:center; gap:8px; }
.search-form input { width:260px; height:32px; padding:0 10px; border:1px solid var(--border); border-radius:2px; outline:none; }
.search-form input:focus { border-color:var(--primary); }
.visitor-table { min-width:1180px; table-layout:auto; }
.visitor-table th:nth-child(1){width:180px}.visitor-table th:nth-child(2){width:140px}.visitor-table th:nth-child(3){width:260px}.visitor-table th:nth-child(4){width:80px}.visitor-table th:nth-child(5){width:80px}.visitor-table th:nth-child(6){width:auto}
.visitor-ip { color:#373c43; white-space:nowrap; }
.method { margin-right:6px; color:#4e545c; font-size:12px; }
.http-status { display:inline-block; min-width:38px; padding:1px 6px; border-radius:2px; background:#f0f1f2; text-align:center; }
.http-status.status-2,.http-status.status-3 { background:#edfff8; color:var(--success); }
.http-status.status-4,.http-status.status-5 { background:#fff2f1; color:var(--danger); }
.user-agent,.visitor-table .cell-secondary { max-width:420px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pagination { display:flex; min-height:56px; align-items:center; justify-content:space-between; padding:10px 16px; border-top:1px solid var(--border-light); color:var(--muted); font-size:13px; }
.pagination-controls { display:flex; align-items:center; gap:8px; }
.page-selector { display:flex; align-items:center; }
.page-selector label { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.page-selector select { height:32px; min-width:58px; padding:0 24px 0 10px; border:1px solid var(--border); border-radius:2px; background:var(--white); color:var(--text); outline:none; }
.page-selector select:focus { border-color:var(--primary); }
.access-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.access-overview > div { padding:17px 20px; border:1px solid var(--border-light); background:var(--white); }
.access-overview span { display:block; margin-bottom:6px; color:var(--muted); font-size:13px; }
.access-overview strong { font-size:20px; font-weight:500; }
.access-ip { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.security-notice { display:flex; align-items:flex-start; gap:16px; margin-bottom:16px; padding:13px 16px; border:1px solid #b9d9cf; background:#f0f8f5; color:#245e50; }
.security-notice strong { flex:0 0 auto; }
.access-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr); gap:16px; margin-bottom:16px; }
.access-panel { min-width:0; }
.access-form { display:grid; align-items:end; gap:12px; padding:16px 18px; border-bottom:1px solid var(--border-light); background:#fcfcfc; }
.access-form-port { grid-template-columns:150px minmax(210px,1fr) auto; }
.access-form-domain { grid-template-columns:1fr 150px; }
.access-form-domain label:nth-of-type(3) { grid-column:1 / -1; }
.access-form label { display:grid; gap:6px; color:#4e545c; font-size:13px; }
.access-form input,.inline-ip-form input { width:100%; height:34px; padding:0 10px; border:1px solid var(--border); border-radius:2px; outline:none; background:var(--white); color:var(--text); }
.access-form input:focus,.inline-ip-form input:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(0,102,79,.08); }
.form-hint { margin:0; padding:12px 18px; color:var(--muted); font-size:12px; }
.access-table { width:100%; min-width:720px; border-collapse:collapse; }
.access-table th { height:42px; padding:0 14px; border-bottom:1px solid var(--border-light); background:#fafafa; color:#4e545c; font-size:13px; font-weight:500; text-align:left; }
.access-table td { padding:14px; border-bottom:1px solid var(--border-light); vertical-align:top; }
.access-table tbody tr:last-child td { border-bottom:0; }
.domain-panel,.audit-panel { margin-bottom:16px; }
.domain-list { display:grid; gap:0; }
.domain-item { padding:18px; border-bottom:1px solid var(--border-light); }
.domain-item:last-child { border-bottom:0; }
.domain-main,.domain-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.domain-main > div:first-child { display:flex; align-items:center; gap:12px; }
.domain-route { color:var(--muted); font-size:13px; }
.domain-statuses { display:flex; gap:8px; }
.domain-allowlist { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:16px 0; }
.domain-label { margin-right:4px; color:var(--muted); font-size:13px; }
.ip-chip { display:inline-flex; align-items:center; gap:5px; height:28px; padding:0 4px 0 9px; border:1px solid #b9d9cf; border-radius:2px; background:#f0f8f5; color:#245e50; font:12px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.ip-chip button { width:20px; height:20px; padding:0; border:0; background:transparent; color:#66877e; cursor:pointer; }
.blocked-label { color:var(--danger); font-size:13px; }
.domain-actions { padding-top:14px; border-top:1px dashed var(--border-light); }
.inline-ip-form { display:flex; width:min(430px,100%); gap:8px; }
.inline-ip-form input { min-width:190px; }
.domain-empty { display:flex; align-items:center; justify-content:center; }
.audit-table { min-width:1000px; }
.audit-table th:nth-child(1){width:180px}.audit-table th:nth-child(2){width:145px}.audit-table th:nth-child(3){width:120px}.audit-table th:nth-child(4){width:190px}.audit-table th:nth-child(5){width:90px}.audit-table th:nth-child(6){width:auto}
.push-status-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.push-status-grid > div { padding:17px 20px; border:1px solid var(--border-light); background:var(--white); }
.push-status-grid span { display:block; margin-bottom:6px; color:var(--muted); font-size:13px; }
.push-status-grid strong { font-size:20px; font-weight:500; }
.push-panel { margin-bottom:16px; }
.connection-panel { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; padding:16px 18px; }
.connection-panel p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.connection-panel code { padding:1px 5px; border-radius:2px; background:#f0f2f4; font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; }
.connection-time { margin-left:12px; color:#8b9098; }
.connection-message { margin-top:7px; color:#4e545c; font-size:13px; }
.channel-table-wrap { overflow-x:auto; }
.channel-table { width:100%; min-width:820px; border-collapse:collapse; }
.channel-table th { height:42px; padding:0 16px; border-bottom:1px solid var(--border-light); background:#fafafa; color:#4e545c; font-size:13px; font-weight:500; text-align:left; }
.channel-table td { padding:15px 16px; border-bottom:1px solid var(--border-light); vertical-align:top; }
.channel-table tbody tr:last-child td { border-bottom:0; }
.channel-table th:nth-child(1){width:130px}.channel-table th:nth-child(2){width:260px}.channel-table th:nth-child(3){width:auto}.channel-table th:nth-child(4){width:130px}
.recommend-tag { display:inline-block; padding:2px 8px; border:1px solid #9fd2c2; border-radius:2px; background:var(--primary-light); color:var(--primary); font-size:12px; }
.push-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:16px; }
.setup-steps { display:grid; gap:0; margin:0; padding:4px 20px 10px; list-style:none; }
.setup-steps li { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:16px 0; border-bottom:1px solid var(--border-light); }
.setup-steps li:last-child { border-bottom:0; }
.setup-steps li > span { display:flex; width:28px; height:28px; align-items:center; justify-content:center; border-radius:50%; background:var(--primary-light); color:var(--primary); font-weight:600; }
.setup-steps strong { font-weight:600; }
.setup-steps p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.setup-steps code { padding:1px 5px; border-radius:2px; background:#f0f2f4; color:#374151; font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; }
.config-checklist { display:grid; padding:4px 18px; }
.config-checklist > div { display:grid; grid-template-columns:24px 1fr auto; align-items:center; min-height:46px; border-bottom:1px solid var(--border-light); }
.config-checklist > div:last-child { border-bottom:0; }
.config-checklist > div > strong { color:var(--muted); font-size:12px; font-weight:400; }
.check-dot { display:flex; width:18px; height:18px; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:50%; color:#969ba3; }
.check-dot.done { border-color:var(--primary); background:var(--primary); color:#fff; }
.secret-notice { margin:12px 18px 16px; padding:13px 14px; border:1px solid #ead6a8; background:#fffbef; color:#6b5627; }
.secret-notice p { margin:5px 0 0; font-size:13px; }
.official-links { display:flex; flex-wrap:wrap; gap:8px; padding:0 18px 18px; }
.login-page { min-height:100vh; padding:125px 20px 50px; background:#f3f5f8; }
.login-card { width:min(400px,100%); margin:0 auto; padding:34px 36px 38px; border:1px solid var(--border-light); background:var(--white); box-shadow:0 6px 20px rgba(31,35,41,.08); }
.login-heading { margin-bottom:26px; text-align:center; }.login-heading h1 { margin:0 0 8px; font-size:22px; font-weight:600; }.login-heading p { margin:0; color:var(--muted); font-size:13px; }
.login-form { display:grid; gap:17px; }.login-form label { display:grid; gap:7px; color:#4e545c; }.login-form input { width:100%; height:38px; padding:0 11px; border:1px solid var(--border); border-radius:2px; outline:none; background:#fff; color:var(--text); }
.login-form input:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(0,102,79,.12); }.login-submit { width:100%; height:38px; margin-top:4px; }.login-footer { margin-top:24px; color:#969ba3; font-size:12px; text-align:center; }
@media (max-width:1100px){.access-grid,.push-layout,.data-browser{grid-template-columns:1fr}.data-table-list nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.access-form-domain{grid-template-columns:1fr 150px}.account-form{grid-template-columns:repeat(2,minmax(0,1fr))}.account-form-wide{grid-column:span 2}.task-overview-grid,.data-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.server-address,.topbar-divider{display:none}.sidebar{width:72px}.sidebar .nav-item span:not(.nav-icon),.sidebar .nav-label,.sidebar .nav-subitem,.sidebar-status span:not(.health-dot){display:none}.nav-item{justify-content:center;padding:0}.nav-icon{width:auto}.main-content{margin-left:72px;padding:20px 16px 40px}.page-header,.connection-panel{align-items:flex-start}.page-header{flex-direction:column}.connection-panel{flex-direction:column}.visitor-stats,.access-overview,.push-status-grid,.task-overview-grid,.data-overview-grid{grid-template-columns:1fr}.data-table-list nav{grid-template-columns:1fr}.visitor-toolbar,.log-list-toolbar{align-items:flex-start;flex-direction:column}.search-form{width:100%;flex-wrap:wrap}.search-form input{width:100%}.access-form-port,.access-form-domain{grid-template-columns:1fr}.access-form-domain label:nth-of-type(3){grid-column:auto}.domain-main,.domain-actions,.domain-main>div:first-child{align-items:flex-start;flex-direction:column}.domain-statuses{flex-wrap:wrap}.inline-ip-form{flex-wrap:wrap}.account-form{grid-template-columns:1fr;padding:16px}.account-form-wide{grid-column:auto}.account-form-actions{grid-column:auto}}
