.tw-sm-app{max-width:1200px;margin:0 auto;padding-top:20px;font-family:inherit;color:#1a1a2e}
.tw-sm-app *,.tw-sm-app *::before,.tw-sm-app *::after{box-sizing:border-box}

/* Top-level mode switcher (Générer | Analyser) */
.tw-sm-mode-switch{display:flex;gap:0;margin-bottom:14px;border:1.5px solid #56aea4;border-radius:20px;overflow:hidden;width:fit-content}
.tw-sm-mode-btn{padding:8px 24px;font-size:13px;font-weight:600;border:none;cursor:pointer;font-family:inherit;transition:all .15s;background:#fff;color:#56aea4}
.tw-sm-mode-btn.tw-sm-mode-active{background:#56aea4;color:#fff}
.tw-sm-mode-btn:hover:not(.tw-sm-mode-active){background:#f0fdf8}

.tw-sm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px;flex-wrap:wrap}
.tw-sm-panel-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}
.tw-sm-header-actions{display:flex;gap:6px}
.tw-sm-btn-action{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1}
.tw-sm-btn-action:hover{background:#f3f4f6;color:#1a1a2e;border-color:#d1d5db}

.tw-sm-main{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}

.tw-sm-config{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px;max-height:600px;overflow-y:auto}
.tw-sm-urls{display:flex;flex-direction:column;gap:10px}
.tw-sm-url-entry{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;padding:12px}
.tw-sm-url-entry-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.tw-sm-url-entry-header input{flex:1}
.tw-sm-url-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.tw-sm-field{display:flex;flex-direction:column;gap:3px}
.tw-sm-field label{font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}
.tw-sm-input{width:100%;height:34px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;color:#1a1a2e;outline:none;transition:border-color .2s;font-family:inherit}
.tw-sm-input:focus{border-color:#56aea4;box-shadow:0 0 0 3px rgba(86,174,164,.1)}
.tw-sm-select{width:100%;height:34px;padding:0 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;color:#1a1a2e;font-family:inherit;background:#fff;cursor:pointer}

.tw-sm-btn-add{padding:8px 16px;font-size:12px;font-weight:600;color:#56aea4;background:#fff;border:1.5px solid #56aea4;border-radius:20px;cursor:pointer;transition:all .15s;font-family:inherit;align-self:flex-start}
.tw-sm-btn-add:hover{background:#56aea4;color:#fff}
.tw-sm-btn-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;color:#dc2626;transition:all .15s;flex-shrink:0;font-size:16px}
.tw-sm-btn-remove:hover{background:#fef2f2;border-color:#fecaca}

.tw-sm-preview-panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.tw-sm-preview-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #f3f4f6;background:#f8f9fa;flex-wrap:wrap;gap:6px}
.tw-sm-preview-actions{display:flex;gap:6px}
.tw-sm-btn-copy{padding:5px 14px;font-size:12px;font-weight:600;color:#56aea4;background:#fff;border:1.5px solid #56aea4;border-radius:20px;cursor:pointer;transition:all .15s;font-family:inherit}
.tw-sm-btn-copy:hover{background:#56aea4;color:#fff}
.tw-sm-output{flex:1;width:100%;min-height:300px;border:none;outline:none;padding:14px;font-size:12px;line-height:1.6;resize:none;font-family:'Courier New',monospace;color:#1a1a2e;background:#f8fffe}

.tw-sm-article-toggle{margin-bottom:12px}
.tw-sm-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-size:14px;font-weight:600;color:#56aea4;font-family:inherit;transition:all .15s;text-align:left}
.tw-sm-toggle-btn:hover{background:#f0fdf8;border-color:#4a9e94;color:#4a9e94}
.tw-sm-toggle-chevron{transition:transform .25s ease;flex-shrink:0;color:#56aea4}
.tw-sm-toggle-btn.tw-sm-toggle-open .tw-sm-toggle-chevron{transform:rotate(180deg)}
.tw-sm-h1{font-size:14px;font-weight:600;margin:0;padding:0;color:inherit;font-family:inherit;line-height:1.4}

/* Sub-mode switcher (URL par URL | Import en masse) */
.tw-sm-submode-switcher{display:flex;gap:8px;margin-bottom:14px;width:fit-content}
.tw-sm-submode-btn{padding:8px 20px;font-size:13px;font-weight:600;color:#56aea4;background:#fff;border:1.5px solid #56aea4;border-radius:20px;cursor:pointer;transition:all .15s;font-family:inherit}
.tw-sm-submode-btn.tw-sm-submode-active{background:#56aea4;color:#fff;border-color:#56aea4}
.tw-sm-submode-btn:hover:not(.tw-sm-submode-active){background:#56aea4;color:#fff}

/* Bulk mode */
.tw-sm-bulk-section{display:flex;flex-direction:column;gap:6px}
.tw-sm-label{font-size:12px;font-weight:600;color:#1a1a2e}
.tw-sm-bulk-textarea{width:100%;min-height:200px;padding:12px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;font-family:'Courier New',monospace;color:#1a1a2e;line-height:1.6;resize:vertical;outline:none;transition:border-color .2s}
.tw-sm-bulk-textarea:focus{border-color:#56aea4;box-shadow:0 0 0 3px rgba(86,174,164,.1)}
.tw-sm-bulk-textarea::placeholder{color:#9ca3af}
.tw-sm-bulk-count{font-size:12px;color:#6b7280;font-weight:500}
.tw-sm-bulk-count span{font-weight:700;color:#56aea4}

.tw-sm-bulk-defaults{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin-top:10px}
.tw-sm-bulk-defaults .tw-sm-label{margin-bottom:8px;display:block}
.tw-sm-bulk-defaults-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}

.tw-sm-btn-generate-bulk{margin-top:12px;padding:10px 24px;font-size:13px;font-weight:700;color:#fff;background:#56aea4;border:none;border-radius:8px;cursor:pointer;transition:all .15s;font-family:inherit;align-self:flex-start}
.tw-sm-btn-generate-bulk:hover{background:#4a9e94}

/* ─── Analyze mode ─── */
.tw-sm-analyze-input-row{display:flex;gap:10px;margin-bottom:16px}
.tw-sm-analyze-url-input{flex:1;height:38px;font-size:13px}
.tw-sm-btn-primary{padding:8px 24px;font-size:13px;font-weight:600;color:#fff;background:#56aea4;border:none;border-radius:8px;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}
.tw-sm-btn-primary:hover{background:#4a9e94}
.tw-sm-btn-primary:disabled{opacity:.5;cursor:not-allowed}

/* Score row */
.tw-sm-score-row{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px}
.tw-sm-score-badge{display:flex;align-items:baseline;gap:4px;border:3px solid #22c55e;border-radius:50%;width:80px;height:80px;justify-content:center;align-items:center;flex-shrink:0}
.tw-sm-score-value{font-size:28px;font-weight:800;color:#22c55e}
.tw-sm-score-label{font-size:12px;color:#6b7280;font-weight:500}
.tw-sm-score-meta{display:flex;flex-direction:column;gap:6px}
.tw-sm-score-url{font-size:13px;color:#6b7280;word-break:break-all}

/* Type badge */
.tw-sm-type-badge{display:inline-block;padding:3px 12px;font-size:12px;font-weight:700;border-radius:12px;text-transform:uppercase;letter-spacing:.04em}
.tw-sm-type-index{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}
.tw-sm-type-sitemap{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}

/* Stats grid */
.tw-sm-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}
.tw-sm-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 10px;text-align:center}
.tw-sm-stat-num{font-size:20px;font-weight:700;color:#1a1a2e;margin-bottom:2px}
.tw-sm-stat-num.tw-sm-stat-small{font-size:13px;line-height:1.4}
.tw-sm-stat-num.tw-sm-stat-warn{color:#ef4444}
.tw-sm-stat-label{font-size:11px;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.04em}

/* Section blocks */
.tw-sm-section-block{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px;margin-bottom:14px}
.tw-sm-section-title{font-size:13px;font-weight:700;color:#1a1a2e;margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em}
.tw-sm-section-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.tw-sm-section-title-row .tw-sm-section-title{margin-bottom:0}

/* Issues */
.tw-sm-issues-list{display:flex;flex-direction:column;gap:8px}
.tw-sm-issue-item{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.5}
.tw-sm-issue-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.tw-sm-issue-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.tw-sm-issue-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}
.tw-sm-sev-icon{flex-shrink:0;font-size:15px;line-height:1.3}
.tw-sm-sev-error{color:#dc2626}
.tw-sm-sev-warning{color:#f59e0b}
.tw-sm-sev-info{color:#3b82f6}

/* Children table (sitemap index) */
.tw-sm-children-table-wrap{overflow-x:auto}
.tw-sm-children-table{width:100%;border-collapse:collapse;font-size:13px}
.tw-sm-children-table th{text-align:left;padding:8px 10px;background:#f8f9fa;border-bottom:2px solid #e5e7eb;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-weight:700}
.tw-sm-children-table td{padding:8px 10px;border-bottom:1px solid #f3f4f6;vertical-align:top}
.tw-sm-children-table a{color:#2563eb;text-decoration:none;word-break:break-all}
.tw-sm-children-table a:hover{text-decoration:underline}

/* Directory distribution */
.tw-sm-dirs-list{display:flex;flex-direction:column;gap:8px}
.tw-sm-dir-row{display:flex;align-items:center;gap:10px}
.tw-sm-dir-label{width:180px;flex-shrink:0;font-size:12px;font-weight:500;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-sm-dir-bar-wrap{flex:1;height:20px;background:#f3f4f6;border-radius:4px;overflow:hidden}
.tw-sm-dir-bar{height:100%;background:#56aea4;border-radius:4px;min-width:2px;transition:width .3s}
.tw-sm-dir-count{width:60px;text-align:right;font-size:12px;font-weight:700;color:#1a1a2e;flex-shrink:0}

/* Changefreq pills */
.tw-sm-freq-pills{display:flex;flex-wrap:wrap;gap:8px}
.tw-sm-freq-pill{display:inline-block;padding:6px 14px;font-size:12px;background:#f8f9fa;border:1px solid #e5e7eb;border-radius:20px;color:#1a1a2e}
.tw-sm-freq-pill strong{color:#56aea4;margin-right:4px}

/* URL Extractor */
.tw-sm-btn-toggle-urls{padding:6px 16px;font-size:12px;font-weight:600;color:#56aea4;background:#fff;border:1.5px solid #56aea4;border-radius:20px;cursor:pointer;transition:all .15s;font-family:inherit}
.tw-sm-btn-toggle-urls:hover{background:#56aea4;color:#fff}

.tw-sm-urls-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.tw-sm-urls-filter{flex:1;min-width:200px;height:34px}
.tw-sm-urls-actions{display:flex;gap:6px}

.tw-sm-urls-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:8px 12px;border-radius:6px;font-size:12px;margin-bottom:10px}

.tw-sm-urls-table-wrap{max-height:500px;overflow-y:auto;overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px}
.tw-sm-urls-table{width:100%;border-collapse:collapse;font-size:12px}
.tw-sm-urls-table th{position:sticky;top:0;text-align:left;padding:8px 10px;background:#f8f9fa;border-bottom:2px solid #e5e7eb;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-weight:700;z-index:1}
.tw-sm-urls-table td{padding:6px 10px;border-bottom:1px solid #f3f4f6;vertical-align:top}
.tw-sm-url-num{color:#9ca3af;font-size:11px;width:40px}
.tw-sm-url-cell{word-break:break-all;max-width:500px}

@media(max-width:880px){
  .tw-sm-main{grid-template-columns:1fr}
  .tw-sm-url-fields{grid-template-columns:1fr}
  .tw-sm-stats-grid{grid-template-columns:repeat(3,1fr)}
  .tw-sm-bulk-defaults-row{grid-template-columns:1fr}
  .tw-sm-dir-label{width:120px}
}
@media(max-width:500px){
  .tw-sm-header{flex-direction:column;align-items:stretch}
  .tw-sm-stats-grid{grid-template-columns:repeat(2,1fr)}
  .tw-sm-analyze-input-row{flex-direction:column}
  .tw-sm-score-row{flex-direction:column;align-items:center;text-align:center}
  .tw-sm-urls-toolbar{flex-direction:column}
  .tw-sm-urls-filter{min-width:100%}
}
