{"version":3,"file":"static/css/main.1f3c3f17.css","mappings":"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","sources":["index.css","App.css"],"sourcesContent":["\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  background: #0a0d14;\n}\n\ncode {\n  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;\n}\n","/* ===== 基础变量与全局 ===== */\n:root {\n  --primary: #a78bfa;\n  --primary-hover: #c4b5fd;\n  --primary-light: rgba(167, 139, 250, 0.12);\n  --success: #34d399;\n  --success-hover: #10b981;\n  --danger: #f87171;\n  --danger-hover: #ef4444;\n  --warning: #fbbf24;\n  --warning-hover: #f59e0b;\n  --info: #60a5fa;\n  --info-hover: #3b82f6;\n  --gray-50: #0f1219;\n  --gray-100: #161b26;\n  --gray-200: #1f2633;\n  --gray-300: #2a3243;\n  --gray-400: #525f75;\n  --gray-500: #7a8699;\n  --gray-600: #98a4b8;\n  --gray-700: #b4bfce;\n  --gray-800: #d5dce6;\n  --gray-900: #f0f3f7;\n  --surface: #121620;\n  --surface-hover: #181d2a;\n  --surface-border: rgba(255, 255, 255, 0.06);\n  --input-bg: #0b0e15;\n  --input-border: #2a3243;\n  --radius: 8px;\n  --radius-sm: 6px;\n  --radius-xs: 4px;\n  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);\n  --shadow: 0 2px 8px rgba(0, 0, 0, 0.35);\n  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.45);\n  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);\n  --transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n* {\n  box-sizing: border-box;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  color: var(--gray-700);\n  color-scheme: dark;\n}\n\n/* ===== 布局 ===== */\n.App {\n  min-height: 100vh;\n  background: linear-gradient(135deg, #0a0d14 0%, #0f1320 30%, #0d1118 70%, #0a0e16 100%);\n  padding: 24px 16px 48px;\n}\n\n.config-container {\n  max-width: 960px;\n  margin: 0 auto;\n  position: relative;\n}\n\n.config-container h1 {\n  text-align: center;\n  font-size: 26px;\n  font-weight: 700;\n  color: var(--gray-800);\n  margin: 0 0 28px;\n  letter-spacing: -0.02em;\n  text-shadow: 0 0 20px rgba(167, 139, 250, 0.15);\n}\n\n/* ===== Section 卡片 ===== */\n.config-section {\n  background: var(--surface);\n  border-radius: 12px;\n  padding: 24px 28px;\n  margin-bottom: 20px;\n  box-shadow: var(--shadow);\n  border: 1px solid var(--surface-border);\n  transition: box-shadow var(--transition), border-color var(--transition);\n}\n\n.config-section:hover {\n  box-shadow: var(--shadow-md);\n  border-color: rgba(255, 255, 255, 0.08);\n}\n\n.config-section h2 {\n  margin: 0 0 18px;\n  font-size: 16px;\n  font-weight: 600;\n  color: var(--gray-800);\n  padding-bottom: 12px;\n  border-bottom: 1px solid var(--gray-200);\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n\n.config-section h2::before {\n  content: '';\n  display: inline-block;\n  width: 4px;\n  height: 18px;\n  background: var(--primary);\n  border-radius: 2px;\n  box-shadow: 0 0 8px rgba(167, 139, 250, 0.3);\n}\n\n.config-section h3 {\n  margin: 0 0 12px;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--gray-700);\n}\n\n/* ===== 服务器信息 ===== */\n.server-info p {\n  margin: 4px 0;\n  color: var(--gray-600);\n  font-size: 14px;\n}\n\n.server-info strong {\n  color: var(--gray-800);\n}\n\n.ip-list {\n  list-style: none;\n  padding: 0;\n  margin: 12px 0 0;\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\n  gap: 8px;\n}\n\n.ip-item {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 8px 12px;\n  background: var(--gray-100);\n  border-radius: var(--radius-sm);\n  font-size: 13px;\n  border: 1px solid var(--gray-200);\n}\n\n.interface-name {\n  font-weight: 600;\n  color: var(--gray-700);\n  white-space: nowrap;\n}\n\n.ip-address {\n  font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Courier New', monospace;\n  font-size: 12px;\n  background: var(--primary-light);\n  color: var(--primary);\n  padding: 2px 8px;\n  border-radius: var(--radius-xs);\n  font-weight: 500;\n}\n\n.docker-info {\n  display: inline-block;\n  font-size: 12px;\n  font-weight: 500;\n  color: var(--info);\n  background: rgba(96, 165, 250, 0.12);\n  padding: 2px 8px;\n  border-radius: 10px;\n  margin-left: 6px;\n}\n\n.host-ip-info {\n  margin-top: 12px;\n  padding-top: 12px;\n  border-top: 1px solid var(--gray-200);\n}\n\n.host-ip-info p {\n  font-size: 13px;\n  color: var(--gray-600);\n}\n\n/* ===== Tab 导航栏 ===== */\n.tab-bar {\n  display: flex;\n  gap: 0;\n  margin-bottom: 0;\n  border-bottom: 1px solid var(--gray-200);\n  background: var(--surface);\n  border-radius: 12px 12px 0 0;\n  padding: 0;\n  box-shadow: var(--shadow-sm);\n  overflow: hidden;\n  border: 1px solid var(--surface-border);\n  border-bottom: 1px solid var(--gray-200);\n}\n\n/* Tab 内容区与 Tab 栏无缝衔接，顶部无圆角 */\n.config-section.tab-content {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  margin-top: 0;\n}\n\n.tab-btn {\n  flex: 1;\n  padding: 14px 16px;\n  background: transparent;\n  color: var(--gray-500);\n  border: none;\n  border-bottom: 2px solid transparent;\n  cursor: pointer;\n  font-size: 14px;\n  font-weight: 500;\n  transition: all var(--transition);\n  margin-bottom: -1px;\n  white-space: nowrap;\n}\n\n.tab-btn:hover {\n  color: var(--gray-700);\n  background: var(--surface-hover);\n}\n\n.tab-btn.active {\n  color: var(--primary);\n  border-bottom-color: var(--primary);\n  font-weight: 600;\n  background: var(--surface-hover);\n}\n\n/* ===== 拦截主机列表 ===== */\n.host-input {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  margin-bottom: 16px;\n  align-items: flex-end;\n}\n\n.host-input input[type=\"text\"] {\n  flex: 1;\n  min-width: 180px;\n  padding: 10px 14px;\n  border: 1.5px solid var(--input-border);\n  border-radius: var(--radius-sm);\n  font-size: 14px;\n  transition: border-color var(--transition), box-shadow var(--transition);\n  background: var(--input-bg);\n  color: var(--gray-800);\n}\n\n.host-input input[type=\"text\"]:focus {\n  outline: none;\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.15);\n}\n\n.host-input input[type=\"text\"]::placeholder {\n  color: var(--gray-400);\n}\n\n.time-inputs {\n  display: flex;\n  gap: 10px;\n  align-items: center;\n  flex-wrap: wrap;\n}\n\n.time-inputs label {\n  display: flex;\n  align-items: center;\n  gap: 4px;\n  font-size: 13px;\n  color: var(--gray-600);\n}\n\n.time-inputs label span {\n  white-space: nowrap;\n}\n\n.host-input button,\n.time-inputs button {\n  padding: 10px 20px;\n  background: var(--primary);\n  color: #0a0d14;\n  border: none;\n  border-radius: var(--radius-sm);\n  cursor: pointer;\n  font-size: 14px;\n  font-weight: 600;\n  transition: background var(--transition), transform 50ms, box-shadow var(--transition);\n  white-space: nowrap;\n}\n\n.host-input button:hover {\n  background: var(--primary-hover);\n  box-shadow: 0 0 12px rgba(167, 139, 250, 0.25);\n}\n\n.host-input button:active {\n  transform: scale(0.97);\n}\n\nhr.simple-line {\n  height: 1px;\n  border: none;\n  background: var(--gray-200);\n  margin: 0 0 12px;\n}\n\n/* ===== 域名列表表头 ===== */\n.host-list {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n}\n\n.host-item {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 12px;\n  padding: 14px 16px;\n  border-radius: var(--radius-sm);\n  transition: background var(--transition);\n}\n\n.host-item:first-child {\n  background: var(--gray-100);\n  border-radius: var(--radius-sm);\n  margin-bottom: 4px;\n  padding: 10px 16px;\n  font-weight: 600;\n  font-size: 13px;\n  color: var(--gray-500);\n  text-transform: uppercase;\n  letter-spacing: 0.05em;\n}\n\n.host-item:not(:first-child) {\n  border-bottom: 1px solid var(--gray-200);\n}\n\n.host-item:not(:first-child):hover {\n  background: var(--surface-hover);\n}\n\n.host-item:last-child {\n  border-bottom: none;\n}\n\n.host-info {\n  display: flex;\n  flex-grow: 1;\n  align-items: center;\n  gap: 12px;\n  flex-wrap: wrap;\n}\n\nspan.host-text {\n  font-size: 14px;\n  flex: 1;\n  min-width: 0; /* flex 子项允许收缩，否则内部长正则会撑出容器 */\n  line-height: 1.5;\n}\n\nspan.host-text strong {\n  color: var(--gray-800);\n  font-weight: 600;\n}\n\n/* 正则表达式部分：强制在任意字符处折行，避免与星期控件重叠 */\n.host-match-rule {\n  display: block;\n  font-size: 13px;\n  word-break: break-all;\n  overflow-wrap: anywhere;\n}\n\n/* ===== 时间控件 ===== */\ninput[type=\"time\"] {\n  padding: 6px 8px;\n  border: 1.5px solid var(--input-border);\n  border-radius: var(--radius-xs);\n  font-size: 13px;\n  background: var(--input-bg);\n  color: var(--gray-800);\n  transition: border-color var(--transition), box-shadow var(--transition);\n  font-family: inherit;\n}\n\ninput[type=\"time\"]:focus {\n  outline: none;\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.15);\n}\n\n.time-controls {\n  display: flex;\n  gap: 6px;\n  align-items: center;\n}\n\n.time-controls label {\n  display: flex;\n  align-items: center;\n  font-size: 13px;\n  color: var(--gray-500);\n}\n\n/* ===== 删除按钮 ===== */\n.remove-btn {\n  background: var(--gray-100);\n  color: var(--gray-400);\n  border: 1.5px solid var(--gray-300);\n  width: 30px;\n  height: 30px;\n  min-width: 30px;\n  cursor: pointer;\n  border-radius: var(--radius-xs);\n  font-size: 14px;\n  font-weight: 600;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: all var(--transition);\n  padding: 0;\n}\n\n.remove-btn:hover {\n  background: var(--danger);\n  color: white;\n  border-color: var(--danger);\n  box-shadow: 0 0 10px rgba(248, 113, 113, 0.2);\n}\n\n/* ===== 设置行 ===== */\n.setting-row {\n  display: flex;\n  align-items: center;\n  margin-bottom: 14px;\n  gap: 16px;\n}\n\n.setting-row label {\n  width: 200px;\n  text-align: right;\n  font-weight: 500;\n  color: var(--gray-700);\n  flex-shrink: 0;\n  font-size: 14px;\n}\n\n/* ===== Switch 开关 ===== */\n.setting-row label.switch {\n  width: 44px;\n}\n\n.switch {\n  position: relative;\n  display: inline-block;\n  width: 44px;\n  height: 24px;\n  flex-shrink: 0;\n}\n\n.switch input {\n  opacity: 0;\n  width: 0;\n  height: 0;\n}\n\n.switch-slider {\n  position: absolute;\n  cursor: pointer;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background-color: var(--gray-300);\n  transition: var(--transition);\n  border-radius: 24px;\n}\n\n.switch-slider:before {\n  position: absolute;\n  content: \"\";\n  height: 20px;\n  width: 20px;\n  left: 2px;\n  bottom: 2px;\n  background-color: white;\n  transition: var(--transition);\n  border-radius: 50%;\n  box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n}\n\n.switch input:checked + .switch-slider {\n  background-color: var(--success);\n}\n\n.switch input:checked + .switch-slider:before {\n  transform: translateX(20px);\n}\n\n.switch input:focus + .switch-slider {\n  box-shadow: 0 0 1px var(--success);\n}\n\n.switch-label {\n  margin-left: 10px;\n  font-size: 14px;\n  color: var(--gray-600);\n  user-select: none;\n}\n\n.setting-row input[type=\"text\"],\n.setting-row input[type=\"number\"],\n.setting-row select {\n  flex: 1;\n  padding: 10px 14px;\n  border: 1.5px solid var(--input-border);\n  border-radius: var(--radius-sm);\n  font-size: 14px;\n  font-family: inherit;\n  transition: border-color var(--transition), box-shadow var(--transition);\n  background: var(--input-bg);\n  color: var(--gray-800);\n}\n\n.setting-row input[type=\"text\"]:focus,\n.setting-row input[type=\"number\"]:focus,\n.setting-row select:focus {\n  outline: none;\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.15);\n}\n\n.setting-row select {\n  cursor: pointer;\n  appearance: none;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237a8699' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 12px center;\n  padding-right: 36px;\n}\n\n.setting-row.full-width {\n  flex-wrap: wrap;\n}\n\n.setting-row.full-width label {\n  width: 200px;\n}\n\n.setting-row.full-width input {\n  flex: 1;\n  min-width: 240px;\n}\n\n.help-text {\n  width: 100%;\n  margin-left: 216px;\n  font-size: 12px;\n  color: var(--gray-400);\n  line-height: 1.5;\n  margin-top: -4px;\n}\n\n/* ===== 操作按钮行 ===== */\n.actions {\n  display: flex;\n  gap: 12px;\n  margin-top: 20px;\n  padding-top: 20px;\n  border-top: 1px solid var(--gray-200);\n}\n\n.save-btn,\n.restart-btn,\n.refresh-btn {\n  flex: 1;\n  padding: 12px 20px;\n  border: none;\n  border-radius: var(--radius-sm);\n  cursor: pointer;\n  font-size: 14px;\n  font-weight: 600;\n  transition: all var(--transition);\n  letter-spacing: 0.01em;\n}\n\n.save-btn {\n  background: var(--success);\n  color: #0a0d14;\n}\n\n.save-btn:hover:not(:disabled) {\n  background: var(--success-hover);\n  box-shadow: 0 2px 12px rgba(52, 211, 153, 0.25);\n}\n\n.restart-btn {\n  background: var(--warning);\n  color: #0a0d14;\n}\n\n.restart-btn:hover:not(:disabled) {\n  background: var(--warning-hover);\n  box-shadow: 0 2px 12px rgba(251, 191, 36, 0.25);\n}\n\n.save-btn:disabled,\n.restart-btn:disabled,\n.refresh-btn:disabled {\n  background: var(--gray-300);\n  color: var(--gray-500);\n  cursor: not-allowed;\n  box-shadow: none;\n}\n\n.save-btn:active:not(:disabled),\n.restart-btn:active:not(:disabled),\n.refresh-btn:active:not(:disabled),\n.refresh-table-btn:active:not(:disabled) {\n  transform: scale(0.98);\n}\n\n.refresh-btn {\n  background: var(--info);\n  color: #0a0d14;\n}\n\n.refresh-btn:hover:not(:disabled) {\n  background: var(--info-hover);\n  box-shadow: 0 2px 12px rgba(96, 165, 250, 0.25);\n}\n\n.refresh-table-btn {\n  margin-top: 12px;\n}\n\n.export-btn,\n.import-btn {\n  background: var(--gray-400);\n}\n\n.export-btn:hover:not(:disabled),\n.import-btn:hover:not(:disabled) {\n  background: var(--gray-500);\n  box-shadow: 0 2px 8px rgba(107, 114, 128, 0.3);\n}\n\n/* ===== 代理设置信息区 ===== */\n.config-section p {\n  margin: 6px 0;\n  font-size: 14px;\n  color: var(--gray-600);\n  line-height: 1.7;\n}\n\n.config-section p b {\n  color: var(--gray-800);\n  font-weight: 600;\n}\n\n.config-section a {\n  color: var(--primary);\n  text-decoration: none;\n  font-weight: 500;\n  transition: color var(--transition);\n}\n\n.config-section a:hover {\n  color: var(--primary-hover);\n  text-decoration: underline;\n}\n\n#qrcode {\n  margin-top: 8px;\n  border-radius: var(--radius-sm);\n  border: 1px solid var(--gray-200);\n  padding: 8px;\n  background: var(--input-bg);\n}\n\n/* ===== 通用按钮 ===== */\nbutton {\n  font-family: inherit;\n}\n\n.config-section > button {\n  padding: 10px 20px;\n  background: var(--gray-100);\n  color: var(--gray-700);\n  border: 1.5px solid var(--gray-300);\n  border-radius: var(--radius-sm);\n  cursor: pointer;\n  font-size: 14px;\n  font-weight: 500;\n  transition: all var(--transition);\n}\n\n.config-section > button:hover:not(:disabled) {\n  background: var(--surface-hover);\n  border-color: var(--gray-400);\n}\n\n.config-section > button:disabled {\n  opacity: 0.5;\n  cursor: not-allowed;\n}\n\n/* ===== 星期几按钮 ===== */\n.weekday-controls {\n  display: flex;\n  gap: 2px;\n  align-items: center;\n}\n\n.weekday-btn {\n  width: 20px;\n  height: 20px;\n  padding: 0;\n  background: var(--gray-200);\n  color: var(--gray-500);\n  font-size: 11px;\n  font-weight: 500;\n  border-radius: var(--radius-xs);\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border: 1.5px solid transparent;\n  transition: all var(--transition);\n}\n\n.weekday-btn:hover {\n  background: var(--gray-300);\n  color: var(--gray-700);\n}\n\n.weekday-btn.active {\n  background: var(--primary);\n  color: #0a0d14;\n  border-color: var(--primary);\n  box-shadow: 0 0 8px rgba(167, 139, 250, 0.3);\n}\n\n.weekday-btn:focus {\n  outline: none;\n  box-shadow: 0 0 0 2px rgba(167, 139, 250, 0.3);\n}\n\n/* ===== MAC 地址输入 ===== */\n.mac-input {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n\n.mac-input input[type=\"text\"] {\n  width: 130px;\n  padding: 6px 10px;\n  border: 1.5px solid var(--input-border);\n  border-radius: var(--radius-xs);\n  font-size: 12px;\n  font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Courier New', monospace;\n  background: var(--input-bg);\n  color: var(--gray-800);\n  transition: border-color var(--transition), box-shadow var(--transition);\n}\n\n.mac-input input[type=\"text\"]:focus {\n  outline: none;\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.15);\n}\n\n.mac-input input[type=\"text\"]::placeholder {\n  color: var(--gray-400);\n  font-family: inherit;\n}\n\n/* ===== 列表表头 ===== */\n.table-right-blank {\n  min-width: 30px;\n}\n\n.title-mac-input {\n  font-size: 13px;\n  text-align: center;\n  min-width: 138px;\n}\n\n.title-time-controls {\n  font-size: 13px;\n  text-align: center;\n  min-width: 190px;\n}\n\n.title-weedkey-controls {\n  font-size: 13px;\n  min-width: 120px;\n}\n\n/* ===== Toast 通知 ===== */\n.toast {\n  position: fixed;\n  top: 24px;\n  right: 24px;\n  padding: 14px 20px;\n  border-radius: 10px;\n  color: white;\n  font-weight: 500;\n  font-size: 14px;\n  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);\n  z-index: 1000;\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  animation: toastSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n  min-width: 260px;\n  backdrop-filter: blur(12px);\n  border: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n@keyframes toastSlideIn {\n  from {\n    transform: translateX(120%);\n    opacity: 0;\n  }\n  to {\n    transform: translateX(0);\n    opacity: 1;\n  }\n}\n\n.toast.success {\n  background: rgba(52, 211, 153, 0.9);\n  box-shadow: 0 8px 20px rgba(52, 211, 153, 0.2);\n}\n\n.toast.error {\n  background: rgba(248, 113, 113, 0.9);\n  box-shadow: 0 8px 20px rgba(248, 113, 113, 0.2);\n}\n\n.toast.info {\n  background: rgba(96, 165, 250, 0.9);\n  box-shadow: 0 8px 20px rgba(96, 165, 250, 0.2);\n}\n\n.toast-close {\n  background: rgba(255,255,255,0.2);\n  border: none;\n  color: white;\n  font-size: 18px;\n  font-weight: 400;\n  cursor: pointer;\n  padding: 0;\n  width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 50%;\n  transition: background var(--transition);\n  margin-left: auto;\n  flex-shrink: 0;\n}\n\n.toast-close:hover {\n  background: rgba(255,255,255,0.35);\n}\n\n/* ===== 路由表 ===== */\n.config-section .ip-list {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n}\n\n.config-section .ip-item {\n  background: var(--gray-100);\n}\n\n.empty-hint {\n  text-align: center;\n  color: var(--gray-400);\n  font-size: 14px;\n  padding: 32px 0;\n  margin: 0;\n}\n\n/* ===== 响应式 ===== */\n@media (max-width: 768px) {\n  .App {\n    padding: 12px 8px 32px;\n  }\n\n  .config-section {\n    padding: 18px 16px;\n  }\n\n  .tab-bar {\n    border-radius: 8px 8px 0 0;\n  }\n\n  .tab-btn {\n    padding: 12px 8px;\n    font-size: 13px;\n  }\n\n  .host-info {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 8px;\n  }\n\n  .setting-row {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 6px;\n  }\n\n  .setting-row label {\n    width: 100%;\n    text-align: left;\n  }\n\n  .setting-row.full-width label {\n    width: 100%;\n  }\n\n  .help-text {\n    margin-left: 0;\n  }\n\n  .actions {\n    flex-direction: column;\n  }\n\n  .host-item {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 8px;\n  }\n\n  .remove-btn {\n    align-self: flex-end;\n  }\n\n  .time-controls {\n    flex-wrap: wrap;\n  }\n\n  .host-input {\n    flex-direction: column;\n  }\n\n  .host-input input[type=\"text\"] {\n    min-width: 100%;\n  }\n\n  .ip-list {\n    grid-template-columns: 1fr;\n  }\n}\n\n@media (max-width: 480px) {\n  .config-container h1 {\n    font-size: 20px;\n  }\n\n  .config-section h2 {\n    font-size: 14px;\n  }\n\n  .weekday-btn {\n    width: 18px;\n    height: 18px;\n    font-size: 10px;\n  }\n}\n\n/* ===== Rule 逻辑区块 ===== */\n.rule-module-block {\n  width: 100%;\n  margin-top: 12px;\n  padding: 12px;\n  border: 1px solid var(--gray-200);\n  border-radius: 6px;\n  background: var(--gray-100);\n}\n\n.rule-module-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 12px;\n  margin-bottom: 10px;\n}\n\n.rule-module-header h3 {\n  margin: 0;\n  font-size: 14px;\n  color: var(--gray-700);\n}\n\n.rule-module-disabled-note {\n  color: var(--warning);\n  font-size: 13px;\n}\n\n.rule-module-list {\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n}\n\n.rule-module-item {\n  display: flex;\n  align-items: flex-start;\n  gap: 10px;\n  padding: 8px;\n  border-radius: 6px;\n  background: var(--surface);\n  cursor: pointer;\n}\n\n.rule-module-item:hover {\n  background: var(--surface-hover);\n}\n\n.rule-module-item input[type=\"checkbox\"] {\n  margin-top: 3px;\n  accent-color: var(--primary);\n}\n\n.rule-module-main {\n  display: flex;\n  flex-direction: column;\n  gap: 3px;\n  min-width: 0;\n}\n\n.rule-module-title {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 8px;\n  font-weight: 600;\n  font-size: 14px;\n  color: var(--gray-800);\n}\n\n.rule-module-source {\n  font-size: 11px;\n  color: #fff;\n  background: var(--gray-500);\n  padding: 1px 6px;\n  border-radius: 3px;\n  font-weight: 500;\n}\n\n.rule-module-source:has(+ .rule-module-count) {\n  /* builtin source uses primary color */\n}\n\n.rule-module-count {\n  font-size: 12px;\n  color: var(--gray-500);\n  font-weight: 400;\n}\n\n.rule-module-description {\n  color: var(--gray-500);\n  font-size: 13px;\n  line-height: 1.4;\n}\n\n/* ===== 登录页 ===== */\n.login-page {\n  min-height: 100vh;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: linear-gradient(135deg, #0a0d14 0%, #0f1320 30%, #0d1118 70%, #0a0e16 100%);\n  padding: 24px;\n}\n\n.login-form {\n  background: var(--surface);\n  border-radius: 12px;\n  padding: 40px 36px;\n  box-shadow: var(--shadow-lg);\n  border: 1px solid var(--surface-border);\n  width: 100%;\n  max-width: 400px;\n}\n\n.login-form h2 {\n  text-align: center;\n  font-size: 22px;\n  font-weight: 700;\n  color: var(--gray-800);\n  margin: 0 0 32px;\n  letter-spacing: -0.02em;\n  text-shadow: 0 0 20px rgba(167, 139, 250, 0.15);\n}\n\n.login-error {\n  background: rgba(248, 113, 113, 0.1);\n  border: 1px solid rgba(248, 113, 113, 0.3);\n  color: var(--danger);\n  padding: 10px 14px;\n  border-radius: var(--radius-sm);\n  font-size: 14px;\n  margin-bottom: 20px;\n}\n\n.login-field {\n  margin-bottom: 20px;\n}\n\n.login-field label {\n  display: block;\n  font-size: 14px;\n  font-weight: 500;\n  color: var(--gray-700);\n  margin-bottom: 8px;\n}\n\n.login-field input {\n  width: 100%;\n  padding: 12px 14px;\n  border: 1.5px solid var(--input-border);\n  border-radius: var(--radius-sm);\n  font-size: 14px;\n  font-family: inherit;\n  background: var(--input-bg);\n  color: var(--gray-800);\n  transition: border-color var(--transition), box-shadow var(--transition);\n}\n\n.login-field input:focus {\n  outline: none;\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.15);\n}\n\n.login-btn {\n  width: 100%;\n  padding: 14px;\n  background: var(--primary);\n  color: #0a0d14;\n  border: none;\n  border-radius: var(--radius-sm);\n  font-size: 15px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: background var(--transition), box-shadow var(--transition);\n  margin-top: 8px;\n}\n\n.login-btn:hover:not(:disabled) {\n  background: var(--primary-hover);\n  box-shadow: 0 2px 12px rgba(167, 139, 250, 0.3);\n}\n\n.login-btn:disabled {\n  background: var(--gray-300);\n  color: var(--gray-500);\n  cursor: not-allowed;\n}\n"],"names":[],"sourceRoot":""}