.tw-sa-app{max-width:1200px;margin:0 auto;padding-top:20px;font-family:inherit;color:#1a1a2e}
.tw-sa-app *,.tw-sa-app *::before,.tw-sa-app *::after{box-sizing:border-box}
.tw-sa-editor{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;margin-bottom:12px}
.tw-sa-textarea{width:100%;min-height:140px;border:none;outline:none;padding:16px;font-size:14px;line-height:1.65;resize:vertical;font-family:inherit;color:#1a1a2e;display:block}
.tw-sa-textarea::placeholder{color:#b0b5c0}
.tw-sa-actions{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-top:1px solid #f3f4f6}
.tw-sa-urlcount{font-size:12px;color:#6b7280}
.tw-sa-btn-primary{height:44px;padding:0 28px;background:#56aea4;color:#fff;font-size:14px;font-weight:600;border:none;border-radius:22px;cursor:pointer;transition:all .15s;font-family:inherit}
.tw-sa-btn-primary:hover{background:#489e94}
.tw-sa-btn-primary:disabled{opacity:.5;cursor:not-allowed}
.tw-sa-status{min-height:20px;margin-bottom:8px}
.tw-sa-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:#6b7280;padding:8px 0}
.tw-sa-spinner{width:18px;height:18px;border:2px solid #e5e7eb;border-top-color:#56aea4;border-radius:50%;animation:tw-sa-spin .6s linear infinite}
.tw-sa-spinner-sm{width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#56aea4;border-radius:50%;animation:tw-sa-spin .6s linear infinite;display:inline-block}
@keyframes tw-sa-spin{to{transform:rotate(360deg)}}
.tw-sa-loading-inline{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280}
.tw-sa-alert{padding:10px 14px;border-radius:8px;font-size:13px;margin:6px 0}
.tw-sa-alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}
.tw-sa-export{display:flex;gap:8px;margin-bottom:12px}
.tw-sa-btn-export{height:34px;padding:0 16px;background:#fff;color:#56aea4;font-size:12px;font-weight:600;border:1.5px solid #56aea4;border-radius:17px;cursor:pointer;transition:all .15s;font-family:inherit}
.tw-sa-btn-export:hover{background:#56aea4;color:#fff}
.tw-sa-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:16px}
.tw-sa-table{width:100%;border-collapse:collapse;font-size:13px}
.tw-sa-table th{background:#f9fafb;padding:8px 12px;text-align:left;font-weight:600;color:#6b7280;border-bottom:1px solid #e5e7eb;white-space:nowrap}
.tw-sa-table td{padding:6px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}
.tw-sa-table tr:last-child td{border-bottom:none}
.tw-sa-table tr[style*="cursor"]:hover{background:#f9fafb}
.tw-sa-url-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-sa-url-cell a{color:#56aea4;text-decoration:none}
.tw-sa-url-cell a:hover{text-decoration:underline}
.tw-sa-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:700;min-width:36px;text-align:center}
.tw-sa-badge-green{background:#dcfce7;color:#16a34a}
.tw-sa-badge-blue{background:#dbeafe;color:#2563eb}
.tw-sa-badge-orange{background:#fef3c7;color:#ca8a04}
.tw-sa-badge-red{background:#fef2f2;color:#dc2626}
.tw-sa-count{font-size:12px;font-weight:600}
.tw-sa-count-err{color:#dc2626}
.tw-sa-count-warn{color:#ca8a04}
.tw-sa-count-info{color:#2563eb}
.tw-sa-detail{margin-bottom:16px}
.tw-sa-detail-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;margin-bottom:16px}
.tw-sa-detail-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.tw-sa-score-circle{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;flex-shrink:0;border:4px solid}
.tw-sa-score-circle-green{border-color:#16a34a;background:#f0fdf4}
.tw-sa-score-circle-blue{border-color:#2563eb;background:#eff6ff}
.tw-sa-score-circle-orange{border-color:#ca8a04;background:#fffbeb}
.tw-sa-score-circle-red{border-color:#dc2626;background:#fef2f2}
.tw-sa-score-num{font-size:24px;font-weight:800;line-height:1}
.tw-sa-score-label{font-size:10px;color:#6b7280;margin-top:2px}
.tw-sa-detail-url{font-size:14px;font-weight:600;color:#1a1a2e;word-break:break-all}
.tw-sa-detail-grade{font-size:28px;font-weight:800;margin-left:auto}
.tw-sa-cats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.tw-sa-cat-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:14px}
.tw-sa-cat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.tw-sa-cat-name{font-size:13px;font-weight:600;color:#1a1a2e}
.tw-sa-cat-score{font-size:12px;font-weight:700}
.tw-sa-cat-details{margin:0;padding:0 0 0 16px;font-size:12px;color:#4b5563;line-height:1.7}
.tw-sa-cat-details li{margin-bottom:2px}
.tw-sa-issues-section{margin-top:16px}
.tw-sa-issues-title{font-size:13px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px}
.tw-sa-issue{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid #f3f4f6;font-size:13px}
.tw-sa-issue:last-child{border-bottom:none}
.tw-sa-issue-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;margin-top:1px}
.tw-sa-icon-error{background:#dc2626}
.tw-sa-icon-warning{background:#ca8a04}
.tw-sa-icon-info{background:#2563eb}
.tw-sa-article-toggle{margin-top:16px;margin-bottom:12px}
.tw-sa-toggle-btn{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:#fff;border:1.5px solid #56aea4;border-radius:10px;cursor:pointer;font-family:inherit;transition:all .15s;text-align:left}
.tw-sa-toggle-btn:hover{background:#f0fdf8}
.tw-sa-toggle-chevron{transition:transform .25s ease;flex-shrink:0;color:#56aea4}
.tw-sa-toggle-btn.tw-sa-toggle-open .tw-sa-toggle-chevron{transform:rotate(180deg)}
.tw-sa-h2{font-size:14px;font-weight:600;color:#56aea4;margin:0}
@media(max-width:700px){.tw-sa-cats-grid{grid-template-columns:1fr}.tw-sa-table{font-size:12px}.tw-sa-detail-header{flex-direction:column;align-items:flex-start}.tw-sa-detail-grade{margin-left:0}}
