:root {
  --background: #fbf9ff;
  --foreground: #2b2635;
  --card: #ffffff;
  --card-foreground: #2b2635;
  --popover: #ffffff;
  --popover-foreground: #2b2635;
  --primary: #8b5cf6;
  --primary-foreground: #ffffff;
  --secondary: #f4efff;
  --secondary-foreground: #5d477f;
  --muted: #f7f3fc;
  --muted-foreground: #786e86;
  --accent: #ffedf6;
  --accent-foreground: #a43b74;
  --destructive: #ef476f;
  --border: #eadff6;
  --input: #ded0ef;
  --ring: #9b6ef3;
  --radius: 1rem;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--background); }
body { margin: 0; background: radial-gradient(circle at 12% 0%, #fff0f7 0, transparent 27rem), radial-gradient(circle at 90% 8%, #eee7ff 0, transparent 30rem), var(--background); color: var(--foreground); font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; font-size: 16px; }
button, textarea { font: inherit; }
input { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }

.app-shell { min-height: 100vh; }
.topbar { height: 76px; padding: 0 max(24px, calc((100vw - 1440px) / 2)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(228, 211, 243, .85); background: rgba(255,255,255,.82); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 10; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark { width: 42px; height: 42px; padding: 7px; display: grid; place-items: center; border: 1px solid #d9efff; border-radius: 13px; background: #f2f9ff; box-shadow: 0 9px 24px rgba(12,121,216,.14); }
.brand-mark img { width: 100%; height: 100%; display: block; }
.brand div { display: flex; flex-direction: column; gap: 2px; }
.brand strong { font-size: 17px; letter-spacing: .01em; }
.brand small { color: #887c92; font-size: 12px; }
.secure-label { display: flex; gap: 7px; align-items: center; color: #6e5c82; font-size: 14px; font-weight: 600; padding: 9px 13px; border: 1px solid #e9ddf5; border-radius: 999px; background: white; }
.workspace { max-width: 1440px; margin: 0 auto; padding: 48px 24px 70px; }
.intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 26px; }
.eyebrow { color: #9b63df; font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.intro h1 { margin: 8px 0 7px; font-size: clamp(28px, 3.5vw, 44px); line-height: 1.15; letter-spacing: -.04em; }
.intro p { margin: 0; color: #746b7f; line-height: 1.7; }
.rule-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.rule-pills span { padding: 8px 12px; color: #6f558b; font-size: 13px; font-weight: 650; border: 1px solid #e3d3f4; border-radius: 999px; background: rgba(255,255,255,.76); }
.panel { margin-top: 18px; padding: 24px; border: 1px solid rgba(224, 207, 240, .9); border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 14px 45px rgba(77, 49, 105, .07); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-heading h2 { margin: 0 0 5px; font-size: 20px; letter-spacing: -.02em; }
.panel-heading p { margin: 0; color: #7e728b; font-size: 14px; }
.counter { min-width: 86px; padding: 8px 11px; text-align: center; color: #765894; font-size: 14px; font-weight: 700; border-radius: 11px; background: #f4ecfc; }
textarea { display: block; width: 100%; min-height: 220px; resize: vertical; padding: 18px 19px; color: #332b3c; line-height: 1.65; border: 1px solid #decdec; outline: none; border-radius: 16px; background: #fdfbff; box-shadow: inset 0 1px 3px rgba(79,43,106,.04); transition: border-color .18s, box-shadow .18s, background .18s; }
textarea:focus { border-color: #a678e7; background: white; box-shadow: 0 0 0 4px rgba(155,99,223,.1); }
textarea:disabled { color: #81778b; background: #f8f5fa; }
.input-note { margin: 10px 0 0; color: #b55c7e; font-size: 13px; }
.overflow-box { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: 12px; padding: 12px 14px; color: #9b4769; border: 1px solid #ffd2e2; border-radius: 12px; background: #fff3f8; font-size: 14px; }
.overflow-box button { padding: 6px 10px; color: #945071; border: 1px solid #f2bfd4; border-radius: 9px; background: white; cursor: pointer; }
.input-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 18px; }
.summary { color: #71677b; font-size: 14px; }
.button-row { display: flex; flex-wrap: wrap; gap: 9px; }
.button { min-height: 42px; padding: 10px 15px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid transparent; border-radius: 12px; font-size: 14px; font-weight: 700; cursor: pointer; transition: transform .15s, box-shadow .15s, border-color .15s; }
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button:focus-visible { outline: 3px solid rgba(139,92,246,.25); outline-offset: 2px; }
.button:disabled { opacity: .48; cursor: not-allowed; }
.button.primary { color: white; background: linear-gradient(135deg, #a865dd, #7957e8); box-shadow: 0 7px 18px rgba(126,87,222,.22); }
.button.secondary { color: #625472; border-color: #dfd2eb; background: white; }
.button.danger { color: white; background: #eb5577; }
.button.compact { min-height: 38px; padding: 8px 12px; }
.progress-panel { padding: 20px 24px; }
.progress-title { display: flex; justify-content: space-between; align-items: center; font-size: 14px; font-weight: 700; }
.progress-title > div { display: flex; align-items: center; gap: 8px; }
.running-dot, .done-dot { width: 9px; height: 9px; border-radius: 50%; background: #9c6ae9; box-shadow: 0 0 0 5px rgba(156,106,233,.12); }
.running-dot { animation: pulse 1.4s ease-in-out infinite; }
.done-dot { background: #26a777; box-shadow: 0 0 0 5px rgba(38,167,119,.12); }
@keyframes pulse { 50% { box-shadow: 0 0 0 9px rgba(156,106,233,0); } }
.progress-track { height: 9px; margin: 16px 0; overflow: hidden; border-radius: 999px; background: #eee8f4; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f28bb8, #9065e7); transition: width .25s ease; }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.stats div { display: flex; align-items: baseline; justify-content: center; gap: 9px; color: #81758c; font-size: 13px; }
.stats strong { color: #3c3347; font-size: 18px; }
.stats .green { color: #149a69; }.stats .red { color: #dc4f71; }
.results-panel { padding: 0; overflow: hidden; }
.results-panel > .panel-heading { padding: 23px 24px 5px; }
.table-scroll { overflow: auto; border-top: 1px solid #ece2f4; }
table { width: 100%; min-width: 1420px; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
th, td { padding: 13px 12px; text-align: left; vertical-align: top; border-right: 1px solid #eee6f4; border-bottom: 1px solid #eee6f4; overflow-wrap: anywhere; }
th { color: #665773; font-weight: 750; background: #faf6fd; }
td { color: #645b6d; line-height: 1.55; background: #fff; }
tbody tr:hover td { background: #fdfaff; }
.table-groups th:first-child { color: #8b4f70; background: #fff0f7; }
.table-groups th:last-child { color: #624f8b; background: #f2edff; }
th:nth-child(1), td:nth-child(1), th:nth-child(6), td:nth-child(6) { width: 190px; }
th:nth-child(2), td:nth-child(2), th:nth-child(7), td:nth-child(7) { width: 120px; }
th:nth-child(3), td:nth-child(3), th:nth-child(8), td:nth-child(8) { width: 200px; }
th:nth-child(4), td:nth-child(4), th:nth-child(9), td:nth-child(9) { width: 170px; }
th:nth-child(5), td:nth-child(5), th:nth-child(10), td:nth-child(10) { width: 230px; }
.domain-cell { color: #483854; font-weight: 700; }.url-cell { color: #7657a1; }
.status-badge { width: fit-content; display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; font-weight: 750; border-radius: 999px; }
.status-ok { color: #148461; background: #e8f8f1; }.status-error { color: #c74666; background: #ffedf2; }
.empty-state { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #a38daf; }
.empty-state strong { color: #675c70; font-size: 16px; }.empty-state span { font-size: 14px; }

.tool-nav { display: flex; align-items: center; gap: 5px; padding: 4px; border: 1px solid #eadff4; border-radius: 13px; background: #faf7fd; }
.tool-nav a { min-height: 34px; padding: 7px 12px; display: inline-flex; align-items: center; gap: 6px; color: #766985; text-decoration: none; font-size: 14px; font-weight: 700; border-radius: 9px; }
.tool-nav a.active { color: #6f46b0; background: white; box-shadow: 0 3px 12px rgba(75,45,102,.09); }
.account-overview { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.account-overview h1 { margin: 8px 0 7px; font-size: clamp(28px, 3.5vw, 42px); line-height: 1.15; letter-spacing: -.04em; }
.account-overview p { margin: 0; color: #746b7f; line-height: 1.7; }
.quota-grid { display: grid; grid-template-columns: repeat(3, minmax(115px, 1fr)); gap: 10px; }
.quota-grid div { padding: 13px 16px; display: flex; flex-direction: column; gap: 3px; text-align: center; border: 1px solid #e5d8f1; border-radius: 15px; background: rgba(255,255,255,.86); }
.quota-grid span { color: #81758c; font-size: 12px; }.quota-grid strong { font-size: 21px; }.green { color: #159a6b !important; }.red { color: #dd4e70 !important; }
.cleanup-summary { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 11px; }
.cleanup-summary span { padding: 6px 9px; color: #776a81; font-size: 13px; border-radius: 8px; background: #f7f2fb; }
.cleanup-summary strong { color: #65477e; }
.input-actions > div:first-child { display: flex; flex-direction: column; gap: 4px; }
.ip-hint { color: #a093aa; font-size: 12px; }

.dedupe-workspace { max-width: 1260px; }.compact-overview { align-items: center; }.dedupe-badge { padding: 10px 13px; display: flex; align-items: center; gap: 7px; color: #70578a; font-size: 13px; font-weight: 700; border: 1px solid #dfd0ee; border-radius: 12px; background: white; }
.dedupe-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.dedupe-panel { margin: 0; }.dedupe-panel textarea { min-height: 390px; }.dedupe-actions { justify-content: flex-end; margin-top: 17px; }

.gate-page { min-height: 100vh; padding: 28px; display: grid; place-items: center; background: radial-gradient(circle at 15% 5%, #ffe9f4 0, transparent 30rem), radial-gradient(circle at 90% 15%, #e9e1ff 0, transparent 34rem), #fbf9ff; }
.gate-card { width: min(100%, 480px); padding: 38px; text-align: center; border: 1px solid #e5d6f1; border-radius: 26px; background: rgba(255,255,255,.94); box-shadow: 0 24px 70px rgba(68,42,91,.13); }
.gate-icon { width: 66px; height: 66px; margin: 0 auto 16px; padding: 13px; display: grid; place-items: center; border: 1px solid #d7edff; border-radius: 20px; background: #f1f9ff; box-shadow: 0 12px 28px rgba(12,121,216,.14); }
.gate-icon img { width: 100%; height: 100%; display: block; }
.gate-brand { margin-bottom: 15px; display: flex; justify-content: center; align-items: center; gap: 7px; color: #85679b; font-size: 13px; font-weight: 800; letter-spacing: .05em; }
.gate-brand img { width: 17px; height: 17px; display: block; }
.gate-card h1 { margin: 0 0 10px; font-size: 28px; letter-spacing: -.03em; }.gate-card p { margin: 0; color: #786e82; line-height: 1.75; }
.current-ip-box { margin-top: 22px; padding: 16px; display: flex; flex-direction: column; gap: 5px; border: 1px solid #eadcf4; border-radius: 15px; background: #faf6fd; }
.current-ip-box span { color: #8b7b96; font-size: 12px; }.current-ip-box strong { color: #624477; font-size: 20px; }.current-ip-box small { display: flex; justify-content: center; align-items: center; gap: 5px; color: #9a8aa5; }
.copy-ip-button { width: 100%; cursor: pointer; transition: border-color .18s, transform .18s, box-shadow .18s; }.copy-ip-button:hover { border-color: #bfa1da; transform: translateY(-1px); box-shadow: 0 8px 22px rgba(92,59,119,.08); }.copy-ip-button:focus-visible { outline: 3px solid rgba(139,92,246,.2); outline-offset: 2px; }
.home-card { width: min(100%, 520px); }.large-mark { width: 62px; height: 62px; margin: 0 auto 22px; border-radius: 20px; }.home-card .eyebrow { display: block; margin-bottom: 8px; }.home-features { margin: 24px 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.home-features span { padding: 11px; display: flex; align-items: center; justify-content: center; gap: 6px; color: #705d81; font-size: 13px; font-weight: 700; border-radius: 11px; background: #f8f3fc; }
.admin-entry { min-height: 44px; padding: 10px 14px; display: flex; align-items: center; justify-content: center; gap: 8px; color: #754eaa; text-decoration: none; font-weight: 750; border: 1px solid #dfcfef; border-radius: 12px; background: white; }
.admin-login-card { width: min(100%, 440px); }.admin-login-form { margin-top: 22px; display: grid; gap: 13px; text-align: left; }.admin-login-form label { display: grid; gap: 7px; color: #66586f; font-size: 14px; font-weight: 750; }.admin-login-input { min-height: 48px; padding: 0 13px; display: flex; align-items: center; gap: 9px; color: #947ca5; border: 1px solid #dccce8; border-radius: 12px; background: #fdfbff; transition: border-color .18s, box-shadow .18s; }.admin-login-input:focus-within { border-color: #a97cdd; box-shadow: 0 0 0 3px rgba(157,105,216,.1); }.admin-login-input input { width: 100%; height: 46px; color: #42354b; font-size: 16px; border: 0; outline: 0; background: transparent; }.admin-login-button { width: 100%; min-height: 48px; margin-top: 3px; }.admin-login-error { padding: 10px 12px; color: #b94763; font-size: 13px; border: 1px solid #f1cbd5; border-radius: 10px; background: #fff1f5; }.admin-login-note { display: block; color: #998ba1; font-size: 12px; text-align: center; }

.admin-shell { min-height: 100vh; background: radial-gradient(circle at 2% 0%, #fff0f7 0, transparent 30rem), radial-gradient(circle at 95% 5%, #eee9ff 0, transparent 32rem), #f9f7fc; }
.admin-topbar { height: 76px; padding: 0 max(24px, calc((100vw - 1320px) / 2)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e7dbef; background: rgba(255,255,255,.9); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 10; }
.admin-user { display: flex; align-items: center; gap: 8px; color: #73647e; font-size: 13px; }.admin-user form { margin: 0 0 0 7px; }.admin-user button { padding: 7px 10px; color: #8a5aa0; font: inherit; cursor: pointer; border: 1px solid #e4d6ee; border-radius: 9px; background: white; }
.admin-workspace { max-width: 1320px; margin: 0 auto; padding: 42px 24px 70px; }
.admin-summary { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }.admin-summary h1 { margin: 7px 0 5px; font-size: clamp(28px,3vw,40px); letter-spacing: -.04em; }.admin-summary p { margin: 0; color: #786c82; }.create-account { min-width: 160px; }
.admin-stats { margin-top: 25px; display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; }.admin-stats div { min-height: 95px; padding: 18px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; color: #856699; border: 1px solid #e6d9ef; border-radius: 17px; background: rgba(255,255,255,.9); box-shadow: 0 9px 27px rgba(68,42,91,.05); }.admin-stats span { color: #83768c; font-size: 14px; }.admin-stats strong { color: #44364e; font-size: 25px; }
.admin-notice { width: fit-content; margin: 18px 0 -4px auto; padding: 9px 12px; display: flex; align-items: center; gap: 6px; color: #177957; font-size: 13px; font-weight: 700; border: 1px solid #ccebdd; border-radius: 10px; background: #effbf6; }.admin-notice.notice-error { color: #bc4865; border-color: #f5ced9; background: #fff2f6; }
.admin-loading, .admin-empty { min-height: 270px; margin-top: 18px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: #8e8198; }.admin-empty h2,.admin-empty p { margin: 0; }.admin-empty p { margin-bottom: 8px; }
.spin { animation: spin .9s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } }
.account-list { margin-top: 19px; display: grid; gap: 16px; }.account-card { padding: 22px; border: 1px solid #e5d8ed; border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: 0 11px 36px rgba(64,41,83,.06); transition: border-color .18s, box-shadow .18s, opacity .18s; }.account-disabled { opacity: .84; background: #faf8fb; }.account-state-pending { border-color: #d9b765; box-shadow: 0 0 0 3px rgba(217,183,101,.13), 0 11px 36px rgba(64,41,83,.06); }
.account-card-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; }.account-number { width: 63px; height: 57px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 14px; background: linear-gradient(145deg,#fcecf4,#eee7ff); }.account-number span { color: #99879f; font-size: 11px; }.account-number strong { color: #694b81; font-size: 20px; }.account-title { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }.account-title input { width: min(100%,360px); padding: 8px 10px; color: #44364d; font-size: 18px; font-weight: 750; border: 1px solid transparent; border-radius: 9px; background: transparent; outline: none; }.account-title input:focus { border-color: #d9c6e9; background: #fff; }.online-status,.offline-status { padding: 5px 8px; color: #168360; font-size: 11px; font-weight: 750; border-radius: 999px; background: #eaf8f2; }.offline-status { color: #a86473; background: #f8ebee; }.active-switch { min-width: 174px; min-height: 52px; padding: 8px 11px; display: flex; align-items: center; gap: 9px; border: 1px solid; border-radius: 13px; transition: background .18s, border-color .18s, box-shadow .18s; }.active-switch.state-enabled { color: #167a58; border-color: #bfe7d5; background: #edfaf5; }.active-switch.state-disabled { color: #b14f68; border-color: #f0c5d0; background: #fff0f4; }.account-state-switch { width: 44px !important; height: 24px !important; padding: 3px !important; box-shadow: inset 0 0 0 1px rgba(0,0,0,.05) !important; }.account-state-switch[data-state="checked"] { background: #20a475 !important; }.account-state-switch[data-state="unchecked"] { background: #d66a82 !important; }.account-state-switch [data-slot="switch-thumb"] { width: 18px !important; height: 18px !important; background: #fff !important; box-shadow: 0 2px 6px rgba(58,34,69,.2) !important; transition: transform .16s ease !important; }.account-state-switch[data-state="checked"] [data-slot="switch-thumb"] { transform: translateX(20px) !important; }.account-state-switch[data-state="unchecked"] [data-slot="switch-thumb"] { transform: translateX(0) !important; }.active-state-copy { padding: 6px 2px; color: inherit; text-align: left; white-space: nowrap; cursor: pointer; border: 0; background: transparent; }.active-state-copy strong { font-size: 13px; }.state-pending-badge { margin-left: auto; padding: 3px 6px; color: #8b6310; font-size: 10px; font-weight: 800; white-space: nowrap; border-radius: 999px; background: #fff1c7; }
.account-link-row { margin-top: 14px; padding: 10px 12px; display: flex; align-items: center; gap: 9px; border: 1px solid #eadff1; border-radius: 11px; background: #faf7fc; }.account-link-row code { flex: 1; color: #715788; font-size: 13px; overflow-wrap: anywhere; }.account-link-row button,.account-link-row a { padding: 6px 8px; display: inline-flex; align-items: center; gap: 5px; color: #75588b; text-decoration: none; font-size: 12px; font-weight: 700; border: 1px solid #dfd0eb; border-radius: 8px; background: white; cursor: pointer; }
.limit-editor { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.limit-editor label { padding: 13px; display: grid; grid-template-columns: 1fr 120px; align-items: center; gap: 7px 12px; border: 1px solid #eadff1; border-radius: 13px; background: #fff; }.limit-editor label > span { display: flex; align-items: center; gap: 6px; color: #695c75; font-size: 13px; font-weight: 700; }.limit-editor input,.dialog-form input { width: 100%; padding: 9px 10px; color: #42354b; border: 1px solid #dccce8; border-radius: 9px; outline: none; background: #fdfbff; }.limit-editor input:focus,.dialog-form input:focus { border-color: #a97cdd; box-shadow: 0 0 0 3px rgba(157,105,216,.1); }.limit-editor small { color: #978a9f; font-size: 11px; }
.usage-block { margin-top: 14px; padding: 14px; border-radius: 13px; background: #faf7fc; }.usage-block > div:first-child,.usage-foot { display: flex; justify-content: space-between; gap: 10px; color: #74677d; font-size: 13px; }.usage-block strong { color: #4b3b57; }.usage-track { height: 8px; margin: 10px 0; overflow: hidden; border-radius: 999px; background: #eae3ef; }.usage-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#ec83ac,#865fe4); }.usage-foot { color: #92869a; font-size: 12px; }
.ip-section { margin-top: 14px; padding: 14px; border: 1px solid #eadff1; border-radius: 13px; }.ip-section-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }.ip-section-head > div { display: flex; align-items: center; gap: 7px; color: #66566f; }.ip-section-head span { padding: 3px 6px; color: #836798; font-size: 11px; border-radius: 999px; background: #f2ebf8; }.ip-section-head button { padding: 6px 8px; display: flex; align-items: center; gap: 4px; color: #74518f; font-size: 12px; font-weight: 700; border: 1px solid #ddcce9; border-radius: 8px; background: white; cursor: pointer; }.ip-list { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }.ip-list > div { padding: 7px 8px 7px 10px; display: flex; align-items: center; gap: 8px; border-radius: 9px; background: #f7f3fa; }.ip-list span { display: flex; align-items: center; gap: 6px; }.ip-list code { color: #574761; font-size: 12px; }.ip-list small { color: #9a8aa2; font-size: 11px; }.ip-list button { width: 25px; height: 25px; display: grid; place-items: center; color: #aa697a; border: 0; border-radius: 7px; background: white; cursor: pointer; }.no-ip { margin-top: 10px; padding: 9px; display: flex; align-items: center; gap: 6px; color: #a86878; font-size: 12px; border-radius: 8px; background: #fff1f5; }
.account-actions { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 8px; }.button.danger-outline { color: #c64d69; border-color: #f0c9d3; background: #fff; }
.admin-dialog { border-color: #e4d5ef !important; border-radius: 18px !important; background: white !important; }.dialog-form { display: grid; gap: 12px; }.dialog-form label { display: flex; flex-direction: column; gap: 6px; color: #66586f; font-size: 13px; font-weight: 700; }.dialog-form small { color: #978a9f; font-size: 11px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
[data-slot="alert-dialog-overlay"] { background: rgba(35,20,45,.58) !important; }.admin-alert-dialog { color: #3f3447 !important; border: 1px solid #e0d1ea !important; border-radius: 20px !important; background: #fff !important; box-shadow: 0 28px 90px rgba(30,15,40,.3) !important; transition: none !important; will-change: opacity, transform; }.admin-alert-dialog[data-state="open"] { animation: admin-dialog-in .16s cubic-bezier(.2,.8,.2,1) both !important; }.admin-alert-dialog[data-state="closed"] { animation: admin-dialog-out .11s ease-in both !important; }[data-slot="alert-dialog-overlay"][data-state="open"] { animation: admin-overlay-in .14s ease-out both !important; }[data-slot="alert-dialog-overlay"][data-state="closed"] { animation: admin-overlay-out .1s ease-in both !important; }.admin-alert-dialog [data-slot="alert-dialog-title"] { color: #3b3043 !important; font-size: 20px !important; }.admin-alert-dialog [data-slot="alert-dialog-description"] { color: #75677e !important; font-size: 14px !important; line-height: 1.65 !important; }.admin-alert-icon { color: #7554a2 !important; border-radius: 16px !important; background: #f3ebfc !important; }.admin-alert-icon.reset-icon { color: #7250a9 !important; background: #f2ebff !important; }.admin-alert-icon.delete-icon { color: #c34f6a !important; background: #fff0f4 !important; }.admin-alert-cancel,.admin-alert-confirm,.admin-alert-delete { min-height: 42px !important; padding: 9px 17px !important; border-radius: 11px !important; font-weight: 750 !important; cursor: pointer !important; }.admin-alert-cancel { color: #625472 !important; border: 1px solid #dacbe7 !important; background: #fff !important; }.admin-alert-confirm { color: #fff !important; border: 0 !important; background: linear-gradient(135deg,#a865dd,#7957e8) !important; box-shadow: 0 7px 18px rgba(126,87,222,.22) !important; }.admin-alert-delete { color: #fff !important; border: 0 !important; background: #e35070 !important; box-shadow: 0 7px 18px rgba(211,70,102,.2) !important; }
@keyframes admin-dialog-in { from { opacity: 0; transform: translate(-50%,-48%) scale(.97); } to { opacity: 1; transform: translate(-50%,-50%) scale(1); } } @keyframes admin-dialog-out { from { opacity: 1; transform: translate(-50%,-50%) scale(1); } to { opacity: 0; transform: translate(-50%,-49%) scale(.985); } } @keyframes admin-overlay-in { from { opacity: 0; } to { opacity: 1; } } @keyframes admin-overlay-out { from { opacity: 1; } to { opacity: 0; } }

/* The account state is one solid control: green when enabled, white when disabled. */
.active-switch { min-width: 174px; min-height: 52px; padding: 0; justify-content: flex-end; gap: 8px; color: inherit; border: 0; background: transparent; }
.active-switch.state-enabled,.active-switch.state-disabled { color: inherit; border-color: transparent; background: transparent; }
.account-state-switch { width: 112px !important; height: 42px !important; padding: 0 16px !important; display: inline-flex !important; justify-content: center !important; color: #75677e !important; font-size: 13px !important; font-weight: 800 !important; line-height: 1 !important; border: 1px solid #d9cde3 !important; border-radius: 11px !important; background: #fff !important; box-shadow: 0 3px 11px rgba(67,42,84,.06) !important; cursor: pointer !important; transition: color .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease !important; }
.account-state-switch::after { content: "已停用"; }
.account-state-switch[data-state="unchecked"] { color: #75677e !important; border-color: #d9cde3 !important; background: #fff !important; box-shadow: 0 3px 11px rgba(67,42,84,.06) !important; }
.account-state-switch[data-state="checked"] { color: #fff !important; border-color: #20a475 !important; background: #20a475 !important; box-shadow: 0 7px 18px rgba(32,164,117,.22) !important; }
.account-state-switch[data-state="checked"]::after { content: "已启用"; }
.account-state-switch:hover { transform: translateY(-1px); }
.account-state-switch:focus-visible { outline: 3px solid rgba(32,164,117,.2) !important; outline-offset: 2px !important; }
.account-state-switch [data-slot="switch-thumb"] { display: none !important; }
.state-pending-badge { margin-left: 0; }

/* Tailwind already centers dialogs with the translate property; animate scale only. */
.admin-dialog,.admin-alert-dialog { top: 50% !important; left: 50% !important; translate: -50% -50% !important; }
.admin-alert-dialog { transform-origin: center !important; }
.admin-alert-dialog[data-state="open"] { animation: admin-dialog-centered-in .16s cubic-bezier(.2,.8,.2,1) both !important; }
.admin-alert-dialog[data-state="closed"] { animation: admin-dialog-centered-out .11s ease-in both !important; }
@keyframes admin-dialog-centered-in { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: scale(1); } }
@keyframes admin-dialog-centered-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(.985); } }

@media (max-width: 800px) {
  .topbar { height: 66px; padding: 0 16px; }.secure-label { padding: 8px; font-size: 0; }.workspace { padding: 28px 14px 50px; }
  .intro { align-items: flex-start; flex-direction: column; }.rule-pills { justify-content: flex-start; }.panel { padding: 18px; border-radius: 18px; }
  .panel-heading, .input-actions { align-items: flex-start; flex-direction: column; }.input-actions .button-row, .input-actions .button { width: 100%; }
  textarea { min-height: 250px; }.results-panel { padding: 0; }.results-panel > .panel-heading { padding: 19px 18px 3px; }.results-panel .button-row { width: 100%; }.results-panel .button { flex: 1; }
  .topbar { gap: 8px; }.topbar .brand small { display: none; }.tool-nav a { padding: 7px 8px; font-size: 12px; }.tool-nav a svg { display: none; }
  .account-overview,.compact-overview { align-items: flex-start; flex-direction: column; }.quota-grid { width: 100%; grid-template-columns: repeat(3,1fr); }.quota-grid div { padding: 10px 7px; }.quota-grid strong { font-size: 18px; }
  .dedupe-grid { grid-template-columns: 1fr; }.dedupe-panel textarea { min-height: 280px; }
  .gate-page { padding: 14px; }.gate-card { padding: 28px 20px; }.home-features { grid-template-columns: 1fr; }
  .admin-topbar { height: 68px; padding: 0 15px; }.admin-user span { display: none; }.admin-workspace { padding: 28px 14px 50px; }.admin-summary { align-items: flex-start; flex-direction: column; }.create-account { width: 100%; }.admin-stats { grid-template-columns: 1fr 1fr; }.admin-stats div { min-height: 78px; padding: 13px; grid-template-columns: auto 1fr; }.admin-stats strong { grid-column: 2; font-size: 21px; }
  .account-card { padding: 16px; }.account-card-head { grid-template-columns: auto 1fr; }.active-switch { width: 100%; min-width: 0; grid-column: 1 / -1; }.account-title input { font-size: 16px; }.account-link-row { align-items: stretch; flex-wrap: wrap; }.account-link-row code { width: 100%; flex-basis: 100%; }.limit-editor { grid-template-columns: 1fr; }.limit-editor label { grid-template-columns: 1fr 105px; }.account-actions .button { flex: 1; }.form-grid { grid-template-columns: 1fr; }
}

.admin-user a{text-decoration:none}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(35,20,45,.58)}.modal-backdrop[hidden]{display:none}.modal-card{width:min(100%,520px);padding:26px;border:1px solid #e4d5ef;border-radius:18px;background:#fff;box-shadow:0 28px 90px rgba(30,15,40,.3)}.modal-card h2{margin:0 0 7px}.modal-card>p{margin:0 0 20px;color:#75677e;line-height:1.6}.modal-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:9px}.plain-switch{width:112px;height:42px;color:#fff;font-weight:800;border:0;border-radius:11px;background:#20a475;cursor:pointer}.plain-switch.off{color:#75677e;border:1px solid #d9cde3;background:#fff}.account-title input{font-family:inherit}.ip-list button{cursor:pointer}.account-actions button{white-space:nowrap}
