:root{--primary:#5865f2;--primary-hover:#4752c4;--primary-soft:#eef0fd;--success:#16a34a;--success-soft:#f0fdf4;--danger:#b91c1c;--danger-soft:#fef2f2;--warning:#d97706;--warning-soft:#fffbeb;--card-bg:#fff;--card-shadow:0 1px 3px #00000014}*{box-sizing:border-box}body{text-rendering:optimizelegibility;color:#1e293b;background:#f8fafc;max-width:900px;margin:0 auto;padding:24px 16px 60px;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif;line-height:1.5}h1{margin-bottom:4px;font-size:1.5rem;font-weight:700}.subtitle{color:#64748b;margin-bottom:6px;font-size:.9rem}.subtitle-note{color:#64748b;margin:0 0 20px;font-size:.84rem;line-height:1.45}.header{margin-bottom:16px}.header a{text-decoration:none;display:inline-block}.header img{width:auto;height:36px;display:block}.filter-card{background:var(--card-bg);box-shadow:var(--card-shadow);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:18px 20px;display:flex}.filter-group{flex-direction:column;gap:4px;display:flex}.filter-group label{color:#475569;font-size:.8rem;font-weight:500}.filter-group select,.filter-group input{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;height:38px;padding:8px 10px;font-size:.9rem}.filter-group select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.filter-group select:focus,.filter-group input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #5865f21a}.filter-group input[type=number]{width:80px}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.summary-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.summary-card{background:var(--card-bg);box-shadow:var(--card-shadow);cursor:pointer;border-radius:12px;flex-direction:column;gap:2px;padding:16px 18px;transition:box-shadow .15s;display:flex}.summary-card:hover{box-shadow:0 4px 12px #0000001f}.summary-card .label{color:#64748b;font-size:.8rem;font-weight:500}.summary-card .value{font-size:1.6rem;font-weight:700;line-height:1.2}.summary-card.total .value{color:#1e293b}.summary-card.entered .value{color:var(--success)}.summary-card.uncertain .value{color:var(--warning)}.summary-card.missing .value{color:var(--danger)}.summary-card.active.total{outline:2px solid #1e293b}.summary-card.active.entered{outline:2px solid var(--success)}.summary-card.active.uncertain{outline:2px solid var(--warning)}.summary-card.active.missing{outline:2px solid var(--danger)}.table-card{background:var(--card-bg);box-shadow:var(--card-shadow);border-radius:12px;margin-bottom:16px;overflow:hidden}.table-toolbar{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.table-toolbar h2{margin:0;font-size:1rem;font-weight:600}.tab-group{background:#f1f5f9;border-radius:8px;gap:4px;padding:3px;display:flex}.tab-btn{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:.82rem;font-weight:500;transition:background .15s,color .15s}.tab-btn.active{color:#1e293b;background:#fff;box-shadow:0 1px 2px #00000014}table{border-collapse:collapse;width:100%;font-size:.88rem}thead th{text-align:left;color:#64748b;background:#f8fafc;border-bottom:1px solid #f1f5f9;padding:10px 16px;font-size:.78rem;font-weight:600}tbody tr{border-bottom:1px solid #f8fafc}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#fafbfc}tbody td{vertical-align:middle;padding:11px 16px}.badge{border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:.78rem;font-weight:600;display:inline-flex}.badge-entered{background:var(--success-soft);color:var(--success)}.badge-missing{background:var(--danger-soft);color:var(--danger)}.badge-uncertain{background:var(--warning-soft);color:var(--warning)}.badge-discord-only{color:#64748b;background:#f1f5f9}.badge-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.empty-state{text-align:center;color:#94a3b8;padding:48px 24px}.empty-state .icon{margin-bottom:10px;font-size:2.5rem}.empty-state p{margin:0;font-size:.9rem}.bottom-actions{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.bottom-actions .count-hint{color:#64748b;font-size:.82rem}.loading-msg{color:#64748b;align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.loading-spinner{border:2px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.callout{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.discord-name{color:#64748b;font-size:.82rem}@media (width<=600px){.summary-row{grid-template-columns:repeat(3,1fr)}.filter-card{flex-direction:column;align-items:stretch}.filter-group input[type=number]{width:100%}thead th:nth-child(3),tbody td:nth-child(3),thead th:nth-child(4),tbody td:nth-child(4){display:none}}
