/* Google Workspace 域名检测 V1.4 - UI 参考 V1390 设置 / 批量域名的颜色、卡片与间距。
 * 修改主题请优先调整 :root 变量，避免添加覆盖性补丁。 */
:root{--blue:#00a4ef;--blue-dark:#0089ca;--blue-light:#edf9ff;--text:#25394b;--sub:#708398;--line:#e4ecf4;--border:#cbdcf4;--bad:#d74752;--good:#19986d;--warn:#c0871d;--shadow:0 7px 26px rgba(25,90,140,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8fbfe;color:var(--text);font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid rgba(0,164,239,.28);outline-offset:1px}h1,h2,h3,p{margin:0}h1{font-size:26px;color:var(--blue);line-height:1.35}h2{font-size:19px;color:var(--blue)}h3{font-size:15px;color:var(--blue)}.muted,.sub,.hint,.intro{color:var(--sub)}.hint{font-size:12px;line-height:1.65}.small{font-size:12px}.intro{margin:6px 0 14px;font-size:13px}.sub{margin-top:4px}.auth-page{background:linear-gradient(145deg,#e6f7ff 0%,#f7fbff 50%,#fff 100%);min-height:100vh}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(100%,450px);padding:34px 33px;border:1px solid #e5eef8;border-radius:18px;background:#fff;box-shadow:0 18px 65px rgba(30,99,145,.12)}.auth-card h1{text-align:center;font-size:24px}.auth-card .sub{text-align:center;font-size:13px;margin-bottom:26px}.logo{height:48px;width:48px;border-radius:13px;background:var(--blue);color:#fff;font-size:28px;font-weight:700;display:grid;place-items:center;margin:0 auto 16px}.auth-card h2{margin:0 0 15px}.auth-card form{display:grid;gap:13px}.auth-card footer{text-align:center;color:#9aa9b8;font-size:12px;margin-top:22px}.auth-card .muted{margin-bottom:14px;font-size:13px}.dashboard{max-width:1100px;margin:0 auto;padding:30px 24px 24px}.topline{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px}.topline p{color:var(--blue);font-size:13px;margin-top:3px}.card{border:1px solid var(--line);border-radius:15px;background:white;box-shadow:var(--shadow);padding:23px 25px;margin-bottom:18px}.card h2{margin-bottom:5px}.card summary{font-size:17px;font-weight:650;color:var(--blue);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px}.card summary:after{content:'＋';font-size:20px;font-weight:400;color:var(--blue)}.card[open] summary:after{content:'−'}.card summary::-webkit-details-marker{display:none}.card summary .hint{margin-left:auto;font-weight:400}.settings-inner{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label,.auth-card label,.card>label,.settings-inner label{display:block;font-size:13px;color:var(--blue)}label input:not([type=checkbox]):not([type=file]),label textarea{display:block;width:100%;height:44px;margin-top:6px;padding:0 12px;border:1px solid var(--border);background:#fff;border-radius:9px;outline:none;color:var(--text);font-size:14px}label textarea{height:auto;min-height:130px;resize:vertical;padding:11px 12px;line-height:1.65;font-family:ui-monospace,"SFMono-Regular",Consolas,monospace}label input:focus,label textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,164,239,.08)}label input[type=file]{width:100%;margin:7px 0;color:var(--text)}.file-label{margin-top:12px}.btn-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:16px}.btn{height:41px;min-width:90px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border:0;border-radius:9px;font-size:13px;font-weight:500;line-height:1.1;white-space:nowrap;transition:filter .12s}.btn:hover:not(:disabled){filter:brightness(.97)}.btn.primary{background:var(--blue);color:#fff}.btn.secondary{background:var(--blue-light);color:var(--blue-dark);border:1px solid #d3ecfc}.btn.ghost{background:white;color:var(--blue);border:1px solid #bde7fc}.btn.warning{background:#fff4de;color:#9c6413;border:1px solid #f4dcaa}.btn.danger{background:#fff0f1;color:#bf3b4b;border:1px solid #f5c7cc}.btn.success{background:#e3f7ee;color:#087c4d;border:1px solid #b8e6cf}.btn.wide{width:100%;height:45px}.alert{border-radius:10px;padding:11px 13px;font-size:13px;margin:15px 0;white-space:pre-wrap;overflow-wrap:anywhere}.alert.error{background:#fff0f1;color:#a92537;border:1px solid #f8d1d5}.alert.ok{background:#e9faef;color:#086f46;border:1px solid #c9efd9}.alert.info{background:#edf8ff;color:#28709b;border:1px solid #cceafd}.alert.warn,.warning-box{background:#fffaf1;color:#936425;border:1px solid #f2dfb3}.warning-box{border-radius:9px;padding:11px 13px;margin-top:13px;font-size:13px}.checkline{display:flex!important;align-items:flex-start;gap:9px;line-height:1.5!important;color:#8b652b!important}.checkline input{margin:4px 0 0;flex-shrink:0;accent-color:var(--blue)}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:19px 0 15px}.summary-grid>div{border:1px solid #e5f0fb;background:#f9fcff;border-radius:10px;text-align:center;padding:10px 5px}.summary-grid span{font-size:11px;display:block;color:#8193a8}.summary-grid strong{font-size:23px;color:var(--blue);font-weight:650;display:block;font-variant-numeric:tabular-nums}.progress{height:11px;background:#edf3fa;border-radius:100px;overflow:hidden}.progress>span{height:100%;display:block;background:var(--blue);width:0%;transition:width .18s}.data-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:22px}.data-grid h3{margin:0 0 9px}.scroll{overflow:auto;border:1px solid var(--line);border-radius:9px}.scroll table{width:100%;border-collapse:collapse;font-size:12px}.scroll th,.scroll td{text-align:left;border-bottom:1px solid var(--line);padding:9px 10px;word-break:break-word}.scroll th{position:sticky;top:0;background:#f4faff;color:var(--blue)}.log{max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7fbff;border:1px solid var(--line);border-radius:9px;padding:13px;font:12px/1.85 ui-monospace,Consolas,monospace}.key-box{word-break:break-all;text-align:center;border:1px dashed var(--blue);background:#f4fbff;color:#0875ab;border-radius:10px;padding:14px;margin:10px 0;font:700 15px/1.7 ui-monospace,monospace;letter-spacing:1px}.auth-card .key-box{text-align:center}.auth-card pre{white-space:pre-wrap;word-break:break-all;font-size:14px;line-height:2}code{font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere}footer{font-size:12px;color:#9aacc0;text-align:center;padding:14px 0}#mfaSetup{margin-top:17px;padding:14px;background:#f4fbff;border:1px solid #d2efff;border-radius:10px}#mfaSetup[hidden]{display:none}.pill{border-radius:20px;background:#eaf8ff;color:var(--blue);padding:3px 9px;font-size:11px}.auth-card h2,.auth-card .alert{line-height:1.6}
@media(max-width:800px){.dashboard{padding:18px 15px}.summary-grid{grid-template-columns:repeat(3,1fr)}.data-grid{grid-template-columns:1fr}.card{padding:18px}.topline h1{font-size:23px}}
@media(max-width:520px){.dashboard{padding:12px}.card{padding:15px;margin-bottom:11px;border-radius:12px}.topline{align-items:flex-start}.topline h1{font-size:21px}.topline p{font-size:11px}.topline .btn{min-width:75px;padding:0 8px}.form-grid{grid-template-columns:1fr}.summary-grid{gap:6px}.summary-grid>div{padding:7px 3px}.summary-grid strong{font-size:20px}.btn-row{gap:7px}.btn-row .btn{flex:1 1 28%;min-width:0;padding:0 9px;font-size:12px}.auth-card{padding:24px 20px}.card summary{font-size:15px}.card summary .hint{font-size:10px}}

.qr-wrap{display:flex;justify-content:center;margin:12px auto 8px}.qr-wrap svg{border:1px solid var(--line);border-radius:8px;background:white;max-width:100%;height:auto;padding:7px}
/* 域名上传后关键词预筛选：与 V1390 设置表单、统计卡与日志窗保持同一视觉体系。 */
.domain-filter{margin-top:15px;padding:16px;border:1px solid #e4f0fb;border-radius:11px;background:#fbfdff}
.domain-filter h3{margin:0 0 4px;font-size:15px}
.domain-filter .hint{margin-bottom:12px}
.domain-filter .form-grid label{display:block;font-size:13px;color:var(--blue)}
.domain-filter select{display:block;width:100%;height:44px;margin-top:6px;padding:0 12px;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:9px;font:inherit;font-size:14px}
.domain-filter select:focus{border-color:var(--blue);outline:3px solid rgba(0,164,239,.08)}
.filter-counts{margin-top:12px;padding:10px 12px;background:var(--blue-light);color:#146c9b;border-radius:8px;font-size:13px;overflow-wrap:anywhere}
.filter-preview{margin-top:11px}.filter-preview-title{font-size:12px;color:var(--sub);margin-bottom:6px}
.filter-preview pre{max-height:170px;overflow:auto;margin:0;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.75 ui-monospace,Consolas,monospace}
.domain-filter .btn-row{margin-top:11px}
@media(max-width:520px){.domain-filter{padding:12px}.domain-filter .btn-row .btn{flex:1 1 45%}}

/* 安装页 SSH 命令：独立一行显示，右侧单独一列复制按钮；手机下自动换行。 */
.ssh-command{margin:13px 0 17px;border:1px solid #d9e9f8;border-radius:10px;background:#f7fbff;overflow:hidden}
.ssh-command-caption{font-size:12px;color:#708398;padding:9px 12px 0}
.ssh-command-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 12px}
.ssh-command-row code{overflow-wrap:anywhere;white-space:pre-wrap;display:block;font:12px/1.7 ui-monospace,Consolas,monospace;color:#1e597c;user-select:all}
.ssh-command-row .copy-command{min-width:84px;padding:0 11px}
@media(max-width:440px){.ssh-command-row{grid-template-columns:1fr}.ssh-command-row .copy-command{justify-self:end}}

/* V1.4：关键词支持一行一个，直接替换旧 input 样式，不用并存的补丁规则。 */
.domain-filter textarea.keyword-input{display:block;width:100%;height:100px;min-height:100px;resize:vertical;margin-top:6px;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font:13px/1.65 ui-monospace,Consolas,monospace}
.domain-filter textarea.keyword-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,164,239,.08)}
/* 完整已占用域名，一行一个；其余最近结果与日志在相同可视高度中分别滚动。 */
.occupied-section{margin-top:20px;padding:17px;border:1px solid #d7eaf8;border-radius:11px;background:#fbfdff}
.occupied-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px}
.occupied-heading h3{margin-bottom:3px}
.occupied-heading .btn-row{margin:0}
#occupiedList{display:block;width:100%;height:190px;resize:vertical;padding:12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);white-space:pre;overflow:auto;font:13px/1.7 ui-monospace,Consolas,monospace}
.occupied-section>.hint{margin-top:8px}
.data-grid>div{min-width:0;display:flex;flex-direction:column}
.data-grid .scroll,.data-grid .log{height:320px;min-height:320px;max-height:320px;overflow:auto;flex:none}
/* 统一站内弹窗：覆盖确认、通知、凭据重验、一次性恢复码提示。 */
.ui-dialog[hidden]{display:none}
.ui-dialog{position:fixed;inset:0;z-index:10000;display:flex;justify-content:center;align-items:center;padding:16px}
.ui-dialog-backdrop{position:absolute;inset:0;background:rgba(17,39,58,.48)}
.ui-dialog-panel{position:relative;width:min(100%,440px);max-height:min(90vh,700px);overflow-y:auto;padding:23px 24px;background:#fff;border:1px solid #deedf8;border-radius:14px;box-shadow:0 18px 60px rgba(22,59,92,.22);outline:none}
.ui-dialog-title{font-size:18px;font-weight:650;line-height:1.4;color:var(--blue);padding-bottom:11px;border-bottom:1px solid var(--line)}
.ui-dialog-message{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75;padding-top:13px;color:var(--text)}
.ui-dialog-fields{display:grid;gap:11px;margin-top:12px}
.ui-dialog-fields:empty{display:none}
.ui-dialog-fields label{display:block;font-size:13px;color:var(--blue)}
.ui-dialog-fields input{display:block;width:100%;height:42px;border:1px solid var(--border);border-radius:9px;margin-top:6px;padding:0 12px;color:var(--text);background:white}
.ui-dialog-error{margin-top:11px;color:#b63144;font-size:13px}
.ui-dialog-error[hidden],.ui-dialog-actions .btn[hidden]{display:none}
.ui-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:21px}
.ui-dialog-actions .btn{min-width:85px}
body.dialog-open{overflow:hidden}
@media(max-width:800px){.data-grid .scroll,.data-grid .log{height:280px;min-height:280px;max-height:280px}}
@media(max-width:520px){.occupied-heading{align-items:stretch;flex-direction:column}.occupied-heading .btn-row{justify-content:flex-start}.occupied-heading .btn-row .btn{flex:0 1 auto}.ui-dialog-panel{padding:20px 17px}.ui-dialog-actions .btn{flex:1}.data-grid .scroll,.data-grid .log{height:260px;min-height:260px;max-height:260px}}
