:root{color-scheme:light;--ink:#1f2937;--muted:#64748b;--line:#e5e7eb;--paper:#fff;--bg:#f6f7f9;--red:#e11d48;--red-dark:#be123c;--green:#047857;--amber:#b45309}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.topbar{height:60px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 980px)/2));position:sticky;top:0;z-index:5}.topbar strong{font-size:17px}.muted{color:var(--muted);font-size:13px}.topbar .muted{margin-left:10px}.top-actions{display:flex;align-items:center;gap:8px}.shell{max-width:980px;margin:0 auto;padding:28px 18px 64px}.welcome-row{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.welcome-row h1{margin:0;font-size:24px}.panel,.account-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 12px rgba(15,23,42,.04)}.auth-panel{max-width:440px;margin:11vh auto;padding:34px}.brand-mark{font-size:32px}.auth-panel h1{margin:8px 0 2px}.auth-panel form{margin-top:24px}.auth-panel label,.dialog label{display:block;font-weight:600;margin-bottom:7px}.input-row{display:flex;gap:8px;align-items:center}.input-row input{min-width:0;flex:1}input,textarea{border:1px solid #d1d5db;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);width:100%}input:focus,textarea:focus{outline:2px solid rgba(225,29,72,.16);border-color:var(--red)}button{border:0;border-radius:8px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.primary{background:var(--red);color:#fff}.primary:hover{background:var(--red-dark)}.secondary{background:#f1f5f9;color:#334155}.secondary:hover{background:#e2e8f0}.text-btn,.link-btn{background:none;color:var(--red);padding:5px 7px}.icon-btn{width:34px;height:34px;padding:7px;background:transparent;color:#475569}.icon-btn:hover{background:#f1f5f9}.small{padding:7px 10px;font-size:13px}.error{color:#b91c1c;min-height:22px;margin:10px 0 0}.notice{border-radius:8px;padding:10px 12px;margin-bottom:16px;background:#fff7ed;color:var(--amber);border:1px solid #fed7aa}.account-list{display:grid;gap:12px}.account-card{padding:17px}.account-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.account-name{font-size:17px;font-weight:650;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge{font-size:12px;border-radius:999px;padding:2px 8px;font-weight:600}.badge.good{background:#dcfce7;color:var(--green)}.badge.bad{background:#fee2e2;color:#b91c1c}.badge.wait{background:#fef3c7;color:var(--amber)}.account-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin:11px 0}.account-actions{display:flex;gap:7px;flex-wrap:wrap}.account-actions button{font-size:13px}.record{font-size:13px;margin:8px 0;color:#475569}.record.failed{color:#b91c1c}.record.good{color:var(--green)}.empty{padding:46px 20px;text-align:center}.empty-icon{font-size:40px}.empty h2{margin:8px 0 2px}.dialog{border:0;border-radius:13px;padding:0;width:min(94vw,440px);max-height:88vh;box-shadow:0 18px 60px rgba(15,23,42,.25)}.dialog::backdrop{background:rgba(15,23,42,.48)}.dialog>form,.dialog:not(.wide){padding:21px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.dialog h2{font-size:18px;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.wide{width:min(94vw,620px)}.toolbar{display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:7px}.friend-list{max-height:52vh;overflow:auto}.friend-item{display:flex;align-items:center;gap:10px;padding:9px 3px;border-bottom:1px solid #f1f5f9}.friend-item input{width:18px;height:18px;accent-color:var(--red)}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;background:#f1f5f9;flex:none}.friend-info{min-width:0;flex:1}.friend-info strong{font-size:14px}.friend-info small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-dialog{width:min(94vw,700px)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{background:none;color:var(--muted);border-radius:0;padding:8px 12px;border-bottom:2px solid transparent}.tab.active{color:var(--red);border-bottom-color:var(--red);font-weight:600}.phone-form{display:grid;gap:8px;margin-bottom:14px}.surface-wrap{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#f8fafc;text-align:center}.surface-wrap img{display:block;max-width:100%;width:100%;height:auto;min-height:200px;object-fit:contain;touch-action:none;user-select:none;-webkit-user-drag:none}.surface-wrap p{padding:7px 10px;margin:0}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#1f2937;color:#fff;padding:10px 16px;border-radius:8px;transition:.2s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#b91c1c}.toast.success{background:#047857}@media(max-width:560px){.shell{padding:20px 12px 48px}.auth-panel{padding:24px;margin-top:7vh}.welcome-row{align-items:center}.welcome-row h1{font-size:21px}.account-card{padding:14px}.account-head{display:block}.account-head>.account-actions{margin-top:10px}.topbar{padding:0 12px}.topbar .muted{display:none}.dialog{max-height:92vh}.input-row{flex-wrap:wrap}.input-row button{flex:0 0 auto}.login-dialog .input-row input{flex-basis:55%}}
:where([hidden]){display:none!important}
.record-details{font-size:12px;color:var(--muted);margin:9px 0 12px;overflow-wrap:anywhere}.record-details summary{cursor:pointer;color:#475569}.record-details ul{margin:7px 0;padding-left:18px}.account-checked{font-size:12px;color:var(--muted);margin:5px 0 10px}.account-checked.error{color:#b45309}
.account-card,.auth-panel{border-radius:8px}.dialog{border-radius:8px}.surface-wrap{border-radius:8px}.account-name{overflow-wrap:anywhere}.brand-mark{font-size:32px}
:where(button svg){width:16px;height:16px;flex:none}.brand-mark svg{width:34px;height:34px;color:var(--red)}.empty-icon svg{width:38px;height:38px;color:#94a3b8}.empty .primary{margin-top:16px}
.surface-wrap img{min-height:0;object-fit:fill;width:100%;height:auto;margin:0 auto}.surface-wrap img.qr-surface{max-width:280px}.surface-wrap:has(img.qr-surface){background:#fff}.surface-wrap img:not(.qr-surface){width:min(100%,640px)}
.login-dialog{width:min(96vw,900px)}.login-dialog .dialog-head>div{min-width:0}.login-dialog .dialog-head p{overflow-wrap:anywhere;margin:5px 0 0}.login-dialog .dialog-head>.icon-btn{flex:none}.login-external:not([hidden]){display:flex;align-items:flex-start;gap:14px;padding:22px 18px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.login-external>svg{flex:none;color:var(--red);width:24px;height:24px}.login-external strong{display:block;font-size:15px}.login-external p{margin:7px 0 0;color:var(--muted)}.surface-viewport{overflow:auto;overscroll-behavior:contain}.surface-viewport.full-page{aspect-ratio:16/10;max-height:64vh;background:#17181f}.surface-viewport.full-page img{width:calc(100% * var(--surface-zoom,1));max-width:none;display:block;margin:0;height:auto;cursor:crosshair}.surface-viewport.full-page img.pan-mode{cursor:grab}.surface-viewport.full-page img.pan-mode:active{cursor:grabbing}.surface-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 8px;padding:3px 7px;background:#fff}.surface-footer p{padding:3px 2px;min-width:0}.surface-tools{display:flex;align-items:center;gap:1px}.surface-tools output{min-width:42px;text-align:center;font-size:12px;color:var(--muted)}.surface-tools .icon-btn[aria-pressed=true]{color:var(--red);background:#fff1f2}@media(max-width:560px){.login-dialog{width:96vw;padding:15px!important}.surface-footer{justify-content:center}.surface-footer p{flex-basis:100%}.surface-viewport.full-page{max-height:50vh}}
.douyin-account{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted);font-size:13px}.douyin-avatar,.douyin-avatar-placeholder{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#f1f5f9;flex:none}.douyin-avatar-placeholder{display:grid;place-items:center;color:var(--red);font-weight:700}.friend-item.ambiguous{opacity:.72}.friend-item input:disabled{cursor:not-allowed}
.scan-status{margin:8px 0;padding:9px 11px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc}.scan-status.complete{color:var(--green);border-color:#a7f3d0;background:#f0fdf4}.scan-status.partial{color:var(--amber);border-color:#fde68a;background:#fffbeb}.scan-status.pending{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}
.account-status-feedback{min-height:20px;margin-top:7px;font-size:13px;color:var(--muted)}.account-status-feedback.pending{color:var(--amber)}.account-status-feedback.good{color:var(--green)}.account-status-feedback.bad,.account-status-feedback.error{color:#b91c1c}
.schedule-summary{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:#fff1f2;color:#be123c}.schedule-summary svg{width:14px;height:14px}
.friend-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-bottom:11px;border-bottom:1px solid var(--line)}.friend-search{position:relative;flex:1;min-width:190px}.friend-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#94a3b8}.friend-search input{padding:8px 10px 8px 34px;border-radius:9px;background:#f8fafc}.friend-list{display:grid;gap:8px;max-height:54vh;overflow:auto;padding:9px 2px}.friend-item{display:grid;grid-template-columns:20px 42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid #e9edf3;border-radius:11px;background:#fff;transition:border-color .15s,background .15s,box-shadow .15s}.friend-item:hover{border-color:#fda4af;background:#fffafb}.friend-item:has(input:checked){border-color:#fda4af;background:#fff7f8;box-shadow:0 2px 9px rgba(225,29,72,.06)}.friend-item input{width:18px;height:18px;margin:0;accent-color:var(--red)}.friend-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;background:#fff1f2;color:#be123c;display:grid;place-items:center;font-size:16px;font-weight:700;flex:none}.friend-avatar img{width:100%;height:100%;object-fit:cover}.friend-info{min-width:0}.friend-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.friend-title strong{font-size:14px;overflow-wrap:anywhere}.friend-identifier{display:inline-block!important;width:max-content;max-width:100%;margin-top:4px;padding:2px 7px;border-radius:5px;background:#f1f5f9;color:#475569!important;font-size:11px!important}.friend-last-message{display:block;margin-top:4px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spark-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:11px;font-weight:650}.spark-pill svg{width:13px;height:13px}.friend-check-state{font-size:12px;color:#94a3b8}.friend-item:has(input:checked) .friend-check-state{color:#be123c;font-weight:650}.friend-warning{display:block;margin-top:5px;color:#b45309;font-size:12px}.friend-item.ambiguous{background:#fffbeb;border-color:#fde68a}.friend-empty{padding:26px 12px;text-align:center}.wide{width:min(96vw,720px)}.schedule-toggle{display:flex!important;align-items:center;gap:9px;margin:8px 0 14px!important;font-weight:600}.schedule-toggle input{width:18px;height:18px;margin:0;accent-color:var(--red)}.schedule-help{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:#f8fafc;color:#475569;font-size:13px}.logs-dialog{width:min(96vw,820px)}.logs-toolbar{display:grid;grid-template-columns:auto minmax(120px,1fr) auto minmax(110px,.65fr) auto;gap:8px;align-items:center;margin:14px 0}.logs-toolbar label{font-size:12px;color:var(--muted)}.logs-toolbar select{padding:7px 8px}.operation-logs{display:grid;gap:8px;max-height:65vh;overflow:auto}.operation-log{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.operation-log.error{border-left:3px solid #ef4444}.operation-log.warning{border-left:3px solid #f59e0b}.operation-log.info{border-left:3px solid #38bdf8}.operation-log-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px}.operation-log time{color:var(--muted)}.log-level{padding:1px 6px;border-radius:999px;background:#f1f5f9;color:#475569;font-weight:650}.operation-log.error .log-level{background:#fee2e2;color:#b91c1c}.operation-log.warning .log-level{background:#fef3c7;color:#b45309}.log-event{font-weight:650;color:#334155}.log-account{margin-left:auto;color:var(--muted)}.operation-log p{margin:6px 0 0;overflow-wrap:anywhere;white-space:pre-wrap;color:#334155;font-size:13px}
@media(max-width:560px){.friend-toolbar{align-items:stretch}.friend-search{flex-basis:100%}.friend-toolbar>button{flex:1}.friend-item{grid-template-columns:18px 38px minmax(0,1fr);gap:8px;padding:9px}.friend-avatar{width:38px;height:38px}.friend-check-state{display:none}.logs-toolbar{grid-template-columns:auto minmax(0,1fr);}.logs-toolbar button{grid-column:1/-1}.log-account{margin-left:0}.operation-log-head{align-items:flex-start}.top-actions{gap:3px}.top-actions .small{padding:7px 8px}}
