.admin-shell[data-v-7a7a37b1]{min-height:100vh;display:grid;grid-template-columns:240px 1fr;background:linear-gradient(180deg,#f8fafc,#f3f6fb)}.admin-sidebar[data-v-7a7a37b1]{background:#0f172a;color:#e2e8f0;padding:1rem .85rem;border-right:1px solid #1e293b}.admin-brand[data-v-7a7a37b1]{display:flex;align-items:center;gap:.65rem;padding:.4rem .5rem 1rem}.admin-brand__logo[data-v-7a7a37b1]{width:2rem;height:2rem;border-radius:10px;background:linear-gradient(135deg,#6366f1,#22c55e);color:#fff;display:grid;place-items:center;font-weight:700}.admin-brand__name[data-v-7a7a37b1]{margin:0;color:#f8fafc;font-weight:700;line-height:1.2}.admin-brand__sub[data-v-7a7a37b1]{margin:0;font-size:.78rem;color:#94a3b8}.admin-nav[data-v-7a7a37b1]{display:flex;flex-direction:column;gap:.3rem}.admin-nav__link[data-v-7a7a37b1]{color:#cbd5e1;text-decoration:none;padding:.58rem .72rem;border-radius:10px;font-size:.93rem}.admin-nav__link[data-v-7a7a37b1]:hover{background:#1e293b;color:#fff}.admin-nav__link.router-link-active[data-v-7a7a37b1]{background:#334155;color:#fff;font-weight:600}.admin-main[data-v-7a7a37b1]{min-width:0}.admin-topbar[data-v-7a7a37b1]{height:60px;display:flex;align-items:center;padding:0 1.25rem;border-bottom:1px solid #e2e8f0;background:#ffffffc7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.admin-topbar h1[data-v-7a7a37b1]{margin:0;font-size:1.06rem;color:#0f172a}.logout-btn[data-v-7a7a37b1]{margin-left:auto;border:1px solid #cbd5e1;background:#fff;color:#334155;padding:.42rem .7rem;border-radius:9px;cursor:pointer}.logout-btn[data-v-7a7a37b1]:hover{background:#f8fafc}.admin-content[data-v-7a7a37b1]{padding:1rem}@media(max-width:900px){.admin-shell[data-v-7a7a37b1]{grid-template-columns:1fr}.admin-sidebar[data-v-7a7a37b1]{border-right:none;border-bottom:1px solid #1e293b}.admin-nav[data-v-7a7a37b1]{flex-direction:row;flex-wrap:wrap}}.dashboard[data-v-7f773d42]{background:#fff;padding:1.5rem;border-radius:8px}.filters[data-v-1154e174]{margin-bottom:.75rem}.total[data-v-1154e174]{margin-left:auto;color:#475569;font-size:.88rem}.user-cell[data-v-1154e174]{display:flex;align-items:center;gap:.6rem}.avatar[data-v-1154e174]{width:2rem;height:2rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-1154e174]{font-weight:600;color:#111827}.panel[data-v-4bac0f08]{display:flex;flex-direction:column;gap:.75rem}.profile-head[data-v-4bac0f08]{display:flex;align-items:center;gap:.7rem;margin-bottom:.25rem}.avatar[data-v-4bac0f08]{width:3rem;height:3rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-4bac0f08]{margin:0;font-weight:700;color:#0f172a}.meta[data-v-4bac0f08]{display:grid;grid-template-columns:7rem 1fr;gap:.35rem .75rem;margin:0;font-size:.92rem}.meta dt[data-v-4bac0f08]{margin:0;color:#64748b}.meta dd[data-v-4bac0f08]{margin:0}.capacity-row[data-v-4bac0f08]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.btn-recalc[data-v-4bac0f08]{font:inherit;font-size:.8rem;padding:.25rem .5rem;border:1px solid #cbd5e1;border-radius:6px;background:#1e293b;cursor:pointer}.btn-recalc[data-v-4bac0f08]:disabled{opacity:.6;cursor:default}.recalc-msg[data-v-4bac0f08]{margin:0;font-size:.88rem;color:#0f766e}.muted[data-v-4bac0f08]{color:#64748b;font-size:.75rem}.logs h3[data-v-4bac0f08]{margin:0 0 .5rem}.log-status-cell[data-v-4bac0f08]{vertical-align:top;max-width:22rem}.status-ok[data-v-4bac0f08]{color:#0f766e;font-weight:600}.status-bad[data-v-4bac0f08]{color:#b91c1c;font-weight:600}.log-err-detail[data-v-4bac0f08]{margin-top:.35rem;font-size:.8rem;color:#475569;line-height:1.35;white-space:pre-wrap;word-break:break-word}.filters[data-v-e9d063ed]{display:flex;gap:.5rem;margin-bottom:.75rem;align-items:center}.total[data-v-e9d063ed]{margin-left:auto;color:#475569;font-size:.88rem}.user-cell[data-v-e9d063ed]{display:flex;align-items:center;gap:.6rem}.avatar[data-v-e9d063ed]{width:2rem;height:2rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-e9d063ed]{font-weight:600;color:#111827}.tags[data-v-e9d063ed]{max-width:14rem;font-size:.88rem;color:#334155}table[data-v-e9d063ed]{width:100%;border-collapse:collapse}th[data-v-e9d063ed],td[data-v-e9d063ed]{padding:.45rem;border-bottom:1px solid #eee;text-align:left}.user-head[data-v-40262d82]{display:flex;align-items:center;gap:.6rem;margin-bottom:.65rem}.avatar[data-v-40262d82]{width:2.4rem;height:2.4rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-40262d82]{font-weight:700;color:#111827}.meta[data-v-40262d82]{display:grid;grid-template-columns:6rem 1fr;gap:.35rem .75rem;font-size:.92rem;margin-bottom:1rem}.meta dt[data-v-40262d82]{color:#64748b;margin:0}.meta dd[data-v-40262d82]{margin:0;word-break:break-word}.filters[data-v-2d024a6c]{display:flex;gap:.5rem;margin-bottom:.75rem;align-items:center}.total[data-v-2d024a6c]{margin-left:auto;color:#475569;font-size:.88rem}.user-cell[data-v-2d024a6c]{display:flex;align-items:center;gap:.6rem}.avatar[data-v-2d024a6c]{width:2rem;height:2rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-2d024a6c]{font-weight:600;color:#111827}table[data-v-2d024a6c]{width:100%;border-collapse:collapse}th[data-v-2d024a6c],td[data-v-2d024a6c]{padding:.45rem;border-bottom:1px solid #eee;text-align:left}.user-head[data-v-3fe2861b]{display:flex;align-items:center;gap:.6rem;margin-bottom:.65rem}.avatar[data-v-3fe2861b]{width:2.4rem;height:2.4rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-3fe2861b]{font-weight:700;color:#111827}.meta[data-v-3fe2861b]{display:grid;grid-template-columns:6rem 1fr;gap:.35rem .75rem;font-size:.92rem;margin-bottom:1rem}.meta dt[data-v-3fe2861b]{color:#64748b;margin:0}.meta dd[data-v-3fe2861b]{margin:0;word-break:break-word}.filters[data-v-91d2da70]{display:flex;gap:.5rem;margin-bottom:.75rem}.total[data-v-91d2da70]{margin-left:auto;color:#475569;font-size:.88rem}.user-cell[data-v-91d2da70]{display:flex;align-items:center;gap:.6rem}.avatar[data-v-91d2da70]{width:2rem;height:2rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-91d2da70]{font-weight:600;color:#111827}.user-head[data-v-a74f03d5]{display:flex;align-items:center;gap:.6rem;margin-bottom:.65rem}.avatar[data-v-a74f03d5]{width:2.4rem;height:2.4rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-a74f03d5]{font-weight:700;color:#111827}.meta[data-v-a74f03d5]{display:grid;grid-template-columns:6rem 1fr;gap:.35rem .75rem;font-size:.92rem;margin-bottom:1rem}.meta dt[data-v-a74f03d5]{color:#64748b;margin:0}.meta dd[data-v-a74f03d5]{margin:0}.panel[data-v-1d9c3825]{background:#fff;padding:1rem;border-radius:8px}.sections[data-v-1d9c3825]{display:grid;gap:1rem}.block[data-v-1d9c3825]{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem}.cards[data-v-1d9c3825]{display:grid;gap:.75rem}.cards--two[data-v-1d9c3825]{grid-template-columns:repeat(2,minmax(0,1fr))}.cards--three[data-v-1d9c3825]{grid-template-columns:repeat(3,minmax(0,1fr))}.cards--four[data-v-1d9c3825]{grid-template-columns:repeat(4,minmax(0,1fr))}.card[data-v-1d9c3825]{background:#fff;padding:.7rem;border-radius:6px;border:1px solid #eef2f7}h3[data-v-1d9c3825]{margin:0 0 .6rem;font-size:1rem}h4[data-v-1d9c3825]{margin:0;font-size:.9rem;color:#334155}.num[data-v-1d9c3825]{margin:.25rem 0 0;font-size:1.25rem;font-weight:700;color:#0f172a}.meta[data-v-1d9c3825]{margin:.3rem 0 0;font-size:.78rem;color:#64748b}.empty-hint[data-v-1d9c3825]{margin:0}.empty-hint code[data-v-1d9c3825]{font-size:.85em}@media(max-width:1024px){.cards--four[data-v-1d9c3825]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.cards--three[data-v-1d9c3825],.cards--two[data-v-1d9c3825],.cards--four[data-v-1d9c3825]{grid-template-columns:1fr}}.filters[data-v-575593a2]{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.total[data-v-575593a2]{margin-left:auto;color:#475569;font-size:.88rem}.user-cell[data-v-575593a2]{display:flex;align-items:center;gap:.6rem}.avatar[data-v-575593a2]{width:2rem;height:2rem;border-radius:999px;object-fit:cover;border:1px solid #e2e8f0}.name[data-v-575593a2]{font-weight:600;color:#111827}table[data-v-575593a2]{width:100%;border-collapse:collapse}th[data-v-575593a2],td[data-v-575593a2]{padding:.45rem;border-bottom:1px solid #eee;text-align:left}.panel[data-v-5ac9946e]{background:#fff;padding:1rem;border-radius:8px}.filters[data-v-5ac9946e]{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.section-divider[data-v-5ac9946e]{border:0;border-top:1px solid #e5e7eb;margin:1rem 0}.reminder-settings h2[data-v-5ac9946e]{margin:0}.hint[data-v-5ac9946e]{margin:.2rem 0 .9rem;color:#64748b}.form-row[data-v-5ac9946e]{margin-bottom:.8rem}.label[data-v-5ac9946e]{display:inline-flex;gap:.5rem;align-items:center}.form-grid[data-v-5ac9946e]{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:.8rem}.field[data-v-5ac9946e]{display:flex;flex-direction:column;gap:.35rem}.actions[data-v-5ac9946e]{margin-top:1rem;display:flex;gap:.6rem}.preview-box[data-v-5ac9946e],.test-box[data-v-5ac9946e]{margin-top:1.2rem;border-top:1px solid #e5e7eb;padding-top:1rem}.preview-box h3[data-v-5ac9946e],.test-box h3[data-v-5ac9946e]{margin:0 0 .5rem;font-size:1rem}.preview-table-wrap[data-v-5ac9946e]{margin-top:.75rem;overflow:auto}.preview-table[data-v-5ac9946e]{width:100%;border-collapse:collapse;font-size:.86rem}.preview-table th[data-v-5ac9946e],.preview-table td[data-v-5ac9946e]{border-bottom:1px solid #e5e7eb;padding:.45rem .5rem;text-align:left;vertical-align:top}.preview-table th[data-v-5ac9946e]{color:#475569;font-weight:600}.mono[data-v-5ac9946e]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;word-break:break-all}.preview-row--muted td[data-v-5ac9946e]{color:#94a3b8}.meta[data-v-5ac9946e]{margin-top:.8rem;color:#64748b;font-size:.86rem}.err[data-v-5ac9946e]{margin-top:.6rem;color:#b91c1c}.ok[data-v-5ac9946e]{margin-top:.6rem;color:#166534}.total[data-v-5ac9946e]{margin-left:auto;color:#475569;font-size:.88rem}.btn-new[data-v-5ac9946e]{padding:.35rem .6rem;border:1px solid #ddd;border-radius:6px;text-decoration:none;color:#333;background:#f7f7f7}table[data-v-5ac9946e]{width:100%;border-collapse:collapse}th[data-v-5ac9946e],td[data-v-5ac9946e]{padding:.45rem;border-bottom:1px solid #eee;text-align:left}.nowrap[data-v-5ac9946e]{white-space:nowrap;font-size:.82rem;color:#475569}.muted[data-v-5ac9946e]{color:#94a3b8;font-size:.88rem}.panel[data-v-11b6157b]{background:#fff;padding:1rem;border-radius:8px}.form[data-v-11b6157b]{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}label[data-v-11b6157b]{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}textarea[data-v-11b6157b],input[data-v-11b6157b],select[data-v-11b6157b]{padding:.4rem;border:1px solid #ddd;border-radius:6px}.inline[data-v-11b6157b]{flex-direction:row;align-items:center;gap:.5rem}.actions[data-v-11b6157b]{grid-column:1 / -1;display:flex;gap:.6rem;align-items:center}.danger[data-v-11b6157b]{background:#fff3f3;border:1px solid #f3b6b6}.locked-msg[data-v-11b6157b]{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;padding:.65rem .75rem;border-radius:8px;margin:0 0 .75rem}.ro[data-v-11b6157b]{display:grid;grid-template-columns:8rem 1fr;gap:.35rem .75rem;margin:0 0 1rem;font-size:.92rem}.ro dt[data-v-11b6157b]{color:#64748b;margin:0}.ro dd[data-v-11b6157b]{margin:0}.err[data-v-11b6157b]{grid-column:1 / -1;color:#b91c1c;font-size:.88rem;margin:0}.toolbar[data-v-7b920126]{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.hint[data-v-7b920126]{margin-left:auto;color:#0f766e;font-size:.86rem}.hint--bad[data-v-7b920126]{color:#b91c1c}.desc[data-v-7b920126]{max-width:22rem;white-space:pre-wrap}textarea[data-v-7b920126]{width:100%;min-width:14rem;margin-bottom:.3rem}.replied-meta[data-v-7b920126]{margin:0 0 .25rem;color:#475569;font-size:.8rem}.replied-preview[data-v-7b920126]{margin:.2rem 0 0;color:#334155;font-size:.82rem;white-space:pre-wrap;line-height:1.45}.message[data-v-7b920126]{margin-top:.6rem;color:#0f766e}.row--replied[data-v-7b920126]{background:#f8fafc}.row--replied td[data-v-7b920126]{color:#64748b}.status-pill[data-v-7b920126]{display:inline-block;border-radius:999px;padding:.1rem .5rem;font-size:.78rem;font-weight:700}.status-pill--new[data-v-7b920126]{background:#fee2e2;color:#b91c1c}.status-pill--replied[data-v-7b920126]{background:#d1fae5;color:#065f46}.panel[data-v-0116897f]{background:#fff;padding:1rem;border-radius:8px}.toolbar[data-v-0116897f]{display:flex;gap:.5rem;margin-bottom:.75rem}.layout[data-v-0116897f]{display:grid;grid-template-columns:300px 1fr;gap:1rem}.list[data-v-0116897f]{list-style:none;padding:0;margin:0;border:1px solid #e5e7eb;border-radius:8px;max-height:70vh;overflow:auto}.list li[data-v-0116897f]{padding:.6rem;border-bottom:1px solid #f1f5f9;cursor:pointer;display:flex;flex-direction:column;gap:.2rem}.list li.active[data-v-0116897f]{background:#f5f3ff}.list li span[data-v-0116897f]{color:#64748b;font-size:.82rem}.editor[data-v-0116897f]{border:1px solid #e5e7eb;border-radius:8px;padding:.8rem}.field[data-v-0116897f]{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.65rem}.check[data-v-0116897f]{display:inline-flex;gap:.45rem;align-items:center;margin-bottom:.65rem}.schedule-row[data-v-0116897f]{display:flex;gap:.7rem}.media-head[data-v-0116897f]{display:flex;align-items:center;justify-content:space-between;margin-top:.8rem}.media-list[data-v-0116897f]{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.media-item[data-v-0116897f]{border:1px solid #e5e7eb;border-radius:8px;padding:.55rem;display:grid;gap:.4rem}.media-meta[data-v-0116897f]{font-size:.8rem;color:#64748b;overflow-wrap:anywhere}.actions[data-v-0116897f]{margin-top:.85rem;display:flex;gap:.5rem;justify-content:flex-end}.run-now-target[data-v-0116897f]{margin-top:.75rem}.hint[data-v-0116897f]{color:#64748b;font-size:.82rem}.target-users-actions[data-v-0116897f]{display:flex;gap:.45rem}.target-users-list[data-v-0116897f]{border:1px solid #e5e7eb;border-radius:8px;max-height:220px;overflow:auto;padding:.45rem;display:grid;gap:.35rem}.target-user-item[data-v-0116897f]{display:flex;align-items:center;gap:.45rem;font-size:.92rem}.err[data-v-0116897f]{color:#b91c1c;margin-top:.7rem}.ok[data-v-0116897f]{color:#166534;margin-top:.7rem}.login-wrap[data-v-08aaad4e]{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(180deg,#f8fafc,#eef2ff)}.login-card[data-v-08aaad4e]{width:100%;max-width:360px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1rem;box-shadow:0 10px 28px #0f172a14}h2[data-v-08aaad4e]{margin:0 0 .25rem}.hint[data-v-08aaad4e]{margin:0 0 .9rem;color:#64748b;font-size:.9rem}.form[data-v-08aaad4e]{display:flex;flex-direction:column;gap:.7rem}label[data-v-08aaad4e]{display:flex;flex-direction:column;gap:.3rem}.err[data-v-08aaad4e]{color:#b91c1c;margin:0;font-size:.88rem}*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Microsoft JhengHei,Microsoft JhengHei UI,PingFang TC,Noto Sans TC,system-ui,sans-serif;color:#0f172a}a{color:#4338ca}:where(.panel,.dashboard){background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1rem;box-shadow:0 8px 24px #0f172a0a}:where(h2){margin-top:0;margin-bottom:.85rem;font-size:1.1rem;color:#0f172a}:where(.filters,.actions){display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}:where(input,select,textarea,button){font:inherit}:where(input,select,textarea){border:1px solid #cbd5e1;background:#fff;border-radius:10px;padding:.5rem .65rem;min-height:2.25rem}:where(input:focus,select:focus,textarea:focus){outline:2px solid rgba(67,56,202,.24);outline-offset:1px;border-color:#6366f1}:where(button){border:1px solid transparent;border-radius:10px;min-height:2.25rem;padding:.45rem .82rem;cursor:pointer;background:#4f46e5;color:#fff;font-weight:600}:where(button:hover){background:#4338ca}:where(button.danger){background:#dc2626}:where(button.danger:hover){background:#b91c1c}:where(table){width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}:where(th,td){text-align:left;padding:.6rem .72rem;border-bottom:1px solid #eef2f7;vertical-align:middle;font-size:.92rem}:where(thead th){background:#f8fafc;color:#334155;font-weight:700}:where(tbody tr:hover){background:#f8fafc}:where(tbody tr:last-child td){border-bottom:none}
