:root{--primary: #4f46e5;--primary-600: #4338ca;--primary-soft: #eef0ff;--ink: #0f172a;--muted: #64748b;--line: #e8ebf2;--bg: #f5f6fa;--surface: #ffffff;--ok: #10b981;--warn: #f59e0b;--danger: #ef4444;--radius: 14px;--shadow: 0 10px 30px rgba(15, 23, 42, .08);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:inherit}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;background:#eef1f6;color:var(--ink);transition:transform .08s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 8px 18px #4f46e547}.btn-primary:hover{background:var(--primary-600)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{background:#f2f4f9}.btn-danger{background:#fdecec;color:var(--danger)}.btn-danger:hover{background:#fbd9d9}.btn-sm{padding:6px 11px;font-size:13px;border-radius:9px}.btn-block{width:100%}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(900px 500px at 20% 0%,#e9ebff,#f5f6fa 55%)}.login-card{width:100%;max-width:400px;background:var(--surface);border-radius:20px;padding:34px 30px;box-shadow:var(--shadow);border:1px solid rgba(232,235,242,.9)}.login-brand{text-align:center;margin-bottom:22px}.login-logo{width:52px;height:52px;border-radius:15px;margin:0 auto 12px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;box-shadow:0 10px 22px #4f46e559}.login-brand h1{font-size:20px;letter-spacing:-.2px}.login-sub{color:var(--muted);font-size:13px;margin-top:6px}.nf-card{max-width:400px;text-align:center;padding:40px 30px 34px}.nf-code{font-size:76px;line-height:1;font-weight:800;letter-spacing:-4px;background:linear-gradient(135deg,#818cf8,#4f46e5);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px}.nf-title{font-size:19px;letter-spacing:-.2px}.nf-desc{color:var(--muted);font-size:13px;margin-top:9px;line-height:1.7}.nf-path{margin-top:20px;padding:9px 12px;border-radius:10px;background:#f6f7fb;border:1px solid var(--line);color:#94a3b8;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>span{font-size:13px;font-weight:600;color:#374151}.field.inline{flex-direction:row;align-items:center;gap:8px;margin-bottom:0}.field.inline>span{font-size:13px;white-space:nowrap}.field.checkbox{gap:8px}.field.checkbox input[type=checkbox]{width:auto;padding:0;margin:0;flex:0 0 auto}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--ink);background:#fff;outline:none;font-family:inherit;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}textarea{resize:vertical;line-height:1.5}input[type=color]{width:44px;height:40px;padding:3px;border-radius:10px}.form-error{background:#fdecec;color:#b91c1c;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}.form-ok{background:#e8f8f0;color:#047857;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}.batch-textarea{width:100%;margin-top:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.form-warn{background:#fff4e5;color:#b45309;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px;line-height:1.6}.stop-list{margin:6px 0 14px;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.75}.stop-list li+li{margin-top:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 16px}.form-grid .card-title,.form-grid .form-actions{grid-column:1 / -1}.form-actions{display:flex;gap:10px;margin-top:8px}.form-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.form-row .field{flex:1 1 240px;margin-bottom:0}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:fadeIn .16s ease}.modal{width:100%;max-width:420px;background:var(--surface);border-radius:16px;padding:22px 24px;box-shadow:0 24px 60px #0f172a3d;animation:popIn .18s ease}.modal-title{font-size:17px;margin-bottom:6px}.modal>.muted.small{margin-bottom:16px;line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.color-row{display:flex;gap:8px;align-items:center}.shell{display:flex;min-height:100vh;background:var(--bg)}.shell-side{width:236px;flex:0 0 236px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh}.shell-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 18px}.shell-brand-logo{width:38px;height:38px;border-radius:11px;flex:0 0 auto;object-fit:cover;background:#fff;border:1px solid var(--line)}.shell-brand-text{flex:1;min-width:0}.shell-brand-title{font-weight:700;font-size:15px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-brand-sub{font-size:12px;color:var(--muted);margin-top:1px}.shell-nav{display:flex;flex-direction:column;gap:3px;margin-top:6px}.shell-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#41506b;text-decoration:none;font-size:14px;font-weight:500}.shell-nav-item:hover{background:#f3f5fa;color:var(--ink)}.shell-nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.shell-nav-icon{font-size:15px;width:18px;text-align:center}.shell-main{flex:1;min-width:0;display:flex;flex-direction:column}.shell-head{display:flex;align-items:center;justify-content:flex-end;gap:24px;padding:20px 32px 0}.shell-logout{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:32px;padding:0 13px;border:1px solid var(--line);border-radius:999px;cursor:pointer;background:var(--surface);color:#5b6478;font-size:12.5px;font-weight:600;font-family:inherit;box-shadow:0 1px 2px #0f172a08;transition:background .16s ease,color .16s ease,border-color .16s ease}.shell-logout:hover{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.shell-logout:active{transform:translateY(.5px)}.shell-content{padding:16px 32px 40px}.page{display:flex;flex-direction:column;gap:16px}.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px #0f172a08}.card-title{font-size:15px;margin-bottom:14px}.muted{color:var(--muted);font-size:13px}.small{font-size:12px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}.table td{padding:11px 10px;border-bottom:1px solid #f1f3f8}.table tr:last-child td{border-bottom:none}.table-card{overflow-x:auto}.table-tight{font-size:13px}.table-tight th,.table-tight td{padding-left:6px;padding-right:6px;white-space:nowrap}.table-tight .row-actions{gap:4px}.row-actions{display:flex;gap:6px}.link-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;font-size:12px;font-weight:600;color:var(--primary)}.link-btn:hover{text-decoration:underline}.text-danger{color:var(--danger);font-weight:600;font-variant-numeric:tabular-nums}.field>span.field-hint{font-size:12px;font-weight:400;color:var(--muted);line-height:1.5}.avatar-field{display:flex;align-items:center;gap:10px}.avatar-field input{flex:1}.avatar-preview{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1px solid var(--line);background:#eef0ff}.avatar-ph{display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--primary)}.qr-content{max-width:360px;color:#475569}.wl-textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.modal-lg{max-width:560px}.faq-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.faq-intro .card-title{margin-bottom:0}.faq-intro .btn{flex:0 0 auto}.faq-table td{vertical-align:top}.faq-sort-input{width:68px;height:32px;padding:0 8px;text-align:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:#fff;transition:border-color .12s,box-shadow .12s;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.faq-sort-input:hover:not(:disabled){border-color:#c9c2fb}.faq-sort-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #7c6cf524}.faq-sort-input:disabled{background:#f7f8fc;color:#a7b0c0;cursor:not-allowed}.faq-sort-input::-webkit-outer-spin-button,.faq-sort-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.th-hint{display:block;margin-top:2px;font-size:11px;font-weight:400;color:var(--muted)}.modal .field-hint{text-align:left}.faq-q{font-weight:600;color:var(--ink);line-height:1.55}.faq-a{max-width:none;font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.faq-empty{text-align:center;padding:34px 12px}.faq-empty-icon{font-size:34px;opacity:.45;margin-bottom:8px}.faq-empty p{margin-bottom:6px;font-weight:600}.faq-empty .btn{margin-top:14px}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#eef1f6;color:#475569}.badge-ok{background:#e8f8f0;color:#047857}.badge-warn{background:#fff4e5;color:#b45309}.badge-danger{background:#fdecec;color:#b91c1c}.card-wide{grid-column:1 / -1}.card-title+.muted{margin-top:-6px;margin-bottom:14px;line-height:1.7}.key-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbff}.console-url{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.console-url-val{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;color:var(--ink);background:#fafbff;border:1px solid var(--line);border-radius:9px;padding:5px 10px;word-break:break-all}.console-url .row-actions{margin-left:auto}.logo-picker{display:flex;align-items:center;gap:12px;margin:14px 0 0}.logo-picker-box{width:56px;height:56px;flex:0 0 auto;padding:0;overflow:hidden;border:1px dashed var(--line);border-radius:12px;background:#fafbff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .16s ease,background .16s ease}.logo-picker-box:hover{border-color:var(--primary);background:var(--primary-soft)}.logo-picker-box img{width:100%;height:100%;object-fit:cover;display:block}.logo-picker-plus{font-size:20px;color:var(--muted);line-height:1}.logo-picker-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.logo-picker-title{font-size:13px;font-weight:600}.logo-picker-meta .row-actions{gap:12px;margin-top:1px}.logo-picker+.form-actions{margin-top:16px}.muted-link{color:var(--muted)}.logo-thumb{width:32px;height:32px;border-radius:8px;object-fit:cover;display:block;border:1px solid var(--line);background:#fff;cursor:zoom-in}.logo-empty{width:32px;height:32px;border-radius:8px;border:1px dashed var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);background:#fafbff}.logo-preview-mask{background:#0f172a8c}.logo-preview{width:260px;height:260px;object-fit:contain;padding:12px;border-radius:24px;background:#fff;box-shadow:0 24px 60px #0f172a52;cursor:zoom-out;animation:popIn .18s ease}.key-value{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--ink);letter-spacing:.3px;word-break:break-all}.snippet{margin:12px 0 0;padding:14px 16px;border-radius:12px;background:#0f172a;color:#e2e8f0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;white-space:pre-wrap;word-break:break-all}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-size:30px;font-weight:800;letter-spacing:-.6px;margin-top:8px;color:var(--ink)}.stat-accent{color:var(--primary)}.wb{height:100vh;display:flex;flex-direction:column;background:var(--bg)}.wb-top{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.wb-title{display:flex;align-items:center;gap:10px}.wb-logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}.wb-name{font-weight:700;font-size:15px}.wb-sub{font-size:12px;color:var(--muted)}.wb-status{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.on{background:var(--ok);box-shadow:0 0 0 3px #10b98129}.dot.off{background:#cbd5e1}.wb-error{background:#fdecec;color:#b91c1c;padding:8px 20px;font-size:13px;cursor:pointer}.wb-body{flex:1;min-height:0;display:grid;grid-template-columns:320px 1fr}.wb-list{background:linear-gradient(180deg,#dcebfa,#e9f2fb 160px,#eff5fb);border-right:1px solid #d5e4f2;display:flex;flex-direction:column;min-height:0}.wb-list-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}.wb-list-title{font-weight:800;font-size:18px;color:#1c3d5a}.wb-refresh{display:inline-flex;flex-direction:column;align-items:center;gap:1px;background:none;border:none;color:#2f7cc4;cursor:pointer;font-size:11px;padding:5px 8px;border-radius:10px;line-height:1.1}.wb-refresh:hover{background:#ffffffbf}.wb-refresh svg{width:16px;height:16px}.wb-list-scroll{flex:1;overflow-y:auto;padding:4px 12px 14px}.wb-empty{padding:28px 16px;text-align:center;color:#7e93aa;font-size:13px}.conv-card{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:10px;cursor:pointer;border:2px solid transparent;box-shadow:0 2px 8px #5883bd1a;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.conv-card:hover{box-shadow:0 5px 14px #5883bd2e;transform:translateY(-1px)}.conv-card.active{border-color:#5aa7ee;box-shadow:0 5px 14px #2f7cc438}.conv-avatar{position:relative;width:42px;height:42px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex:0 0 auto;text-shadow:0 1px 2px rgba(0,0,0,.08)}.conv-avatar.g0{background:linear-gradient(135deg,#ffc7a3,#ff9d80)}.conv-avatar.g1{background:linear-gradient(135deg,#a9d4ff,#6fb1f2)}.conv-avatar.g2{background:linear-gradient(135deg,#c9f0d4,#83d9a0)}.conv-avatar.g3{background:linear-gradient(135deg,#e6d6ff,#b79bef)}.conv-avatar.g4{background:linear-gradient(135deg,#ffe2a8,#f7c26b)}.conv-unread{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-sizing:border-box;font-variant-numeric:tabular-nums;box-shadow:0 2px 5px #ef444459;animation:popIn .18s ease}.conv-main{flex:1;min-width:0}.conv-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.conv-name{font-weight:700;font-size:14px;color:#223a52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{font-size:11px;color:#9db1c5;flex:0 0 auto}.conv-pill{display:inline-flex;align-items:center;margin-top:6px;padding:3px 11px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.4}.conv-pill.serving{background:#e3f7ea;color:#1e9e5a}.conv-pill.queued{background:#e3f0ff;color:#2f7cc4}.conv-pill.empty{background:#fdf3d8;color:#c28a1d}.conv-pill.closed{background:#eef1f5;color:#8a97a8}.conv-preview{margin:5px 0 0;font-size:12px;line-height:1.5;color:#7f93a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-card.unread .conv-preview{color:#55708a}.conv-card.unread .conv-name{color:#0f2540}.conv-card.unread .conv-time{color:#2f7cc4;font-weight:600}.wb-head-unread{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;margin-left:6px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.wb-chat{display:flex;flex-direction:column;min-height:0;background:var(--bg)}.wb-chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:10px}.wb-chat-empty-icon{font-size:40px;opacity:.5}.wb-chat-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.wb-chat-name{font-weight:700;font-size:15px}.wb-chat-sub{font-size:12px;color:var(--muted);margin-top:2px}.wb-chat-actions{display:flex;gap:8px}.wb-thread{flex:1;overflow-y:auto;padding:20px 24px 28px;display:flex;flex-direction:column;gap:0;background:#f8f9fc}.wb-thread-tip{text-align:center;color:var(--muted);font-size:12px;padding:6px 0 14px}.wb-thread-empty{margin:64px auto 0;max-width:320px;text-align:center}.wb-thread-empty-title{font-size:14px;font-weight:600;color:#475569;margin-bottom:6px}.wb-thread-empty-desc{font-size:12px;color:var(--muted);line-height:1.65}.msg-divider{align-self:center;margin:18px 0 6px;padding:3px 12px;border-radius:999px;background:#eef1f7;color:#8b95a7;font-size:11px;letter-spacing:.3px;font-variant-numeric:tabular-nums}.msg-system{align-self:center;max-width:82%;margin:12px auto 2px;padding:6px 16px;border-radius:999px;background:#f0f2f8;border:1px solid #e6e9f2;color:#7b8497;font-size:12px;line-height:1.6;text-align:center;word-break:break-word}.bubble-row{display:flex;align-items:flex-start;gap:10px;margin-top:12px}.bubble-row:first-child{margin-top:0}.bubble-row.right{flex-direction:row-reverse}.msg-avatar{width:30px;height:30px;border-radius:10px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.3px;-webkit-user-select:none;user-select:none;white-space:nowrap}.msg-avatar.visitor{background:#edeffe;color:#6c74a0}.msg-avatar.agent{background:#7c6cf5;color:#fff}.bubble-wrap{display:flex;flex-direction:column;align-items:flex-start;max-width:66%;min-width:0}.bubble-row.right .bubble-wrap{align-items:flex-end}.bubble{max-width:100%;padding:10px 16px;border-radius:20px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.bubble-agent{background:#7c6cf5;color:#fff;border-bottom-right-radius:7px;box-shadow:0 6px 16px #7c6cf538}.bubble-visitor{background:#edf0fe;color:#2b3350;border-bottom-left-radius:7px}.bubble-foot{margin:6px 6px 0;font-size:10px;color:#b0b8ca;letter-spacing:.3px;font-variant-numeric:tabular-nums}.wb-composer{position:relative;background:var(--surface);border-top:1px solid var(--line);flex:0 0 auto}.wb-tools{position:relative;display:flex;align-items:center;gap:10px;padding:10px 20px 0}.wb-tools-hint{font-size:11px;color:#a7b0c0}.wb-input{display:flex;gap:10px;align-items:flex-end;padding:10px 20px 14px}.wb-input textarea{flex:1;resize:none;height:46px;max-height:120px}.wb-input .btn{height:46px}@media (max-width: 960px){.page-grid,.form-grid,.form-grid-3,.wb-body{grid-template-columns:1fr}.wb-list{display:none}}@media (max-width: 720px){.shell-side{display:none}.shell-head,.shell-content{padding-left:16px;padding-right:16px}.shell-head{align-items:center;gap:12px}.card{overflow-x:auto}.table{min-width:620px}}@media (max-width: 480px){.shell-logout{padding:0;width:32px;justify-content:center}.shell-logout span{display:none}}.card-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head-row .card-title{margin-bottom:0}.card-head-row+.table,.card-head-row+.muted{margin-top:14px}.modal{position:relative}.modal .field-row{display:grid;grid-template-columns:118px 1fr;gap:6px 12px;align-items:center;margin-bottom:14px}.modal .field-row>.field-label{font-size:13px;font-weight:600;color:#374151}.modal .field-row>.field-body{display:flex;flex-direction:column;gap:6px;min-width:0}.modal .field-row .field-hint{text-align:left}.modal .field-row .logo-picker{margin:0}.modal-close{position:absolute;top:14px;right:14px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:8px;font-size:22px;line-height:1;color:var(--muted);cursor:pointer}.modal-close:hover{background:#f1f5f9;color:#111827}.modal-md{max-width:500px}.modal-sm{max-width:400px}.import-result{margin-top:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.import-result-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:14px}.import-result-row+.import-result-row{border-top:1px solid var(--line)}.import-result-label{color:var(--muted)}.import-result-num{font-weight:700;font-variant-numeric:tabular-nums}.import-result-num.ok{color:#047857}.import-result-num.warn{color:#b45309}.dup-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto;margin-top:8px;padding:10px;background:#f8fafc;border-radius:10px}.dup-chip{display:inline-block;padding:3px 9px;border-radius:999px;background:#fff;border:1px solid #e5e7eb;color:#475569;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.confirm-dialog{max-width:420px;padding:26px 26px 22px}.confirm-icon{width:40px;height:40px;margin-bottom:14px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#eef2ff;color:#4f46e5;font-size:22px;font-weight:700}.confirm-icon-danger{background:#fdecec;color:var(--danger)}.confirm-message{font-size:13px;line-height:1.7;color:var(--muted);margin-top:6px}.confirm-message strong{color:#111827}.confirm-message ul{margin:8px 0 0;padding-left:18px}.confirm-message li{margin-bottom:2px}.confirm-dialog .modal-actions{margin-top:22px}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover{filter:brightness(.94)}.stat-value.text-danger{color:var(--danger)}.date-picker{position:relative;width:100%}.date-picker .date-input{padding-right:38px;cursor:pointer}.date-picker .date-input.is-empty{color:#94a3b8}.date-picker.open .date-input{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.date-picker .date-icon{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:8px}.date-picker .date-icon:hover{background:var(--primary-soft);color:var(--primary)}.date-panel{position:absolute;top:calc(100% + 8px);left:0;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px #0f172a2e;padding:12px;z-index:30;animation:popIn .14s ease}.date-panel.top{top:auto;bottom:calc(100% + 8px)}.date-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.date-panel-title{font-size:14px;font-weight:600;color:var(--ink)}.date-nav{width:28px;height:28px;border:0;background:transparent;border-radius:8px;color:#475569;font-size:20px;line-height:1;cursor:pointer}.date-nav:hover{background:var(--primary-soft);color:var(--primary)}.date-week,.date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-week span{text-align:center;font-size:12px;color:var(--muted);padding:6px 0}.date-cell{height:34px;border:0;background:transparent;border-radius:8px;font-size:13px;color:var(--ink);cursor:pointer;font-family:inherit}.date-cell:hover{background:var(--primary-soft);color:var(--primary)}.date-cell.other{color:#cbd5e1}.date-cell.today:not(.selected){box-shadow:inset 0 0 0 1px var(--primary);color:var(--primary)}.date-cell.selected{background:var(--primary);color:#fff;font-weight:600}.date-cell.selected:hover{background:var(--primary-600);color:#fff}.date-panel-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.date-panel-foot button{border:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;padding:4px 6px;border-radius:6px;font-family:inherit}.date-panel-foot button:hover{color:var(--primary);background:var(--primary-soft)}
