/* ─────────────────────────────────────────
   Page shell
───────────────────────────────────────── */
.content-wrapper {
    min-height: calc(100vh - 76px);
    display: flex; flex-direction: column;
    background: #f8f9fa;
    position: relative; overflow: hidden;
}
.ssg-wrap { flex: 1; display: flex; flex-direction: column; }

.blob { position: fixed; border-radius: 50%; filter: blur(120px); pointer-events: none; z-index: 0; }
.blob-1 { top: 20%;   left: -100px;  width: 460px; height: 460px; background: rgba(0,6,102,0.05); }
.blob-2 { bottom: 15%; right: -100px; width: 440px; height: 440px; background: rgba(16,185,129,0.06); }

/* ─────────────────────────────────────────
   Hero (initial state)
───────────────────────────────────────── */
.ssg-hero {
    flex: 1; display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    min-height: calc(100vh - 120px);
     position: relative; z-index: 1;
}
.ssg-hero.ssg-hero--compact {
    min-height: auto;
    padding: 40px 10px;
    justify-content: flex-start;
}
.ssg-hero.ssg-hero--compact .ssg-hero-bottom { display: none; }
.ssg-hero-shell { width:100%; max-width:1200px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; }
.ssg-hero-intro { width:100%; max-width:920px; display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; }
.ssg-headline {
    font-size: clamp(2.4rem, 6vw, 4.8rem); font-weight: 800;
    color: #000666; text-align: center;
    letter-spacing: -2px; line-height: 1.05; margin-bottom: 0;
}
.ssg-headline span { color: #4c56af; }
.ssg-subline {
    color: #64748b; font-size: 1rem; text-align: center;
    max-width: 760px; margin: 0; line-height: 1.75;
}
.ssg-mini-pills { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.ssg-mini-pill { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; background:rgba(255,255,255,.8); border:1px solid #dce7f2; color:#304a55; font-size:.74rem; font-weight:700; box-shadow:0 4px 16px rgba(15,23,42,.04); }
.ssg-hero-input-wrap { width:100%; display:flex; justify-content:center; }
.ssg-input-stack { width:100%; display:flex; flex-direction:column; gap:12px; }
.ssg-hero-bottom { width:100%; display:flex; flex-direction:column; gap:16px; align-items:center; }
.ssg-hero-score-card { width:100%; max-width:1100px; background:linear-gradient(180deg,#ffffff 0%, #f9fbff 100%); border:1px solid #dfe8f3; border-radius:22px; box-shadow:0 16px 40px rgba(15,23,42,.07); padding:18px; display:flex; flex-direction:column; gap:16px; }
.ssg-score-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.ssg-score-title { font-size:1rem; font-weight:800; color:#0f172a; margin:0; }
.ssg-score-note { font-size:.76rem; color:#7b8797; }
.ssg-score-badge { display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:999px; background:#eef6ff; border:1px solid #d6e7fb; color:#163047; font-size:.74rem; font-weight:800; }
.ssg-score-badge strong { font-size:.95rem; color:#0f172a; }

/* ─────────────────────────────────────────
   Shared URL input
───────────────────────────────────────── */
.ssg-input-wrap {
    background: #fff; border: 1px solid rgba(0,0,0,0.09);
    border-radius: 14px; padding: 8px 8px 8px 20px;
    display: flex; align-items: center; gap: 10px;
    max-width: 720px; width: 100%;
    box-shadow: 0 4px 28px rgba(0,6,102,0.07);
    transition: box-shadow .2s, border-color .2s;
}
.ssg-input-wrap:focus-within {
    border-color: rgba(76,86,175,0.4);
    box-shadow: 0 4px 28px rgba(0,6,102,0.12), 0 0 0 4px rgba(76,86,175,0.08);
}
.ssg-input-wrap input {
    flex: 1; background: transparent; border: none; outline: none;
    color: #1e293b; font-size: 0.975rem;
}
.ssg-input-wrap input::placeholder { color: #94a3b8; }
.ssg-mode-select {
    height: 42px; min-width: 162px; padding: 0 38px 0 14px;
    border: 1px solid #d9e3ee; border-radius: 10px; outline: none;
    background: #f8fbff;
    color: #1e293b; font-size: .88rem; font-weight: 600;
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    background-image:
            linear-gradient(45deg, transparent 50%, #64748b 50%),
            linear-gradient(135deg, #64748b 50%, transparent 50%);
    background-position:
            calc(100% - 18px) calc(50% - 2px),
            calc(100% - 13px) calc(50% - 2px);
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    flex-shrink: 0;
}
.ssg-mode-select:focus {
    border-color: rgba(76,86,175,0.42);
    box-shadow: 0 0 0 3px rgba(76,86,175,0.08);
}
.ssg-btn-start {
    background: linear-gradient(135deg, #000666 0%, #1a237e 100%);
    border: none; border-radius: 10px; color: #fff;
    font-weight: 700; padding: 11px 28px; font-size: 0.9rem;
    white-space: nowrap; transition: all .2s; cursor: pointer;
}
.ssg-btn-start:hover:not(:disabled) {
    opacity: .9; box-shadow: 0 6px 20px rgba(0,6,102,.3); transform: translateY(-1px);
}
.ssg-btn-start:active:not(:disabled) { transform: scale(.97); }
.ssg-btn-start:disabled { opacity: .5; cursor: not-allowed; }
.ssg-advanced-row {
    display:flex; align-items:center; gap:10px; width:100%;
    padding:0 4px; flex-wrap:wrap;
}
.ssg-advanced-field {
    display:inline-flex; flex-direction:row; align-items:center; gap:6px;
    min-width:0;
}
.ssg-advanced-label {
    font-size:.75rem; font-weight:700; color:#64748b; white-space:nowrap;
}

/* ─────────────────────────────────────────
   Dimension cards (hero)
───────────────────────────────────────── */
.dim-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 12px; width: 100%; }
.dim-card { background: #fff; border-radius: 16px; padding: 18px 14px; border: 1px solid rgba(0,0,0,.05); transition: all .2s; box-shadow:0 6px 18px rgba(15,23,42,.04); }
.dim-card:hover { box-shadow: 0 6px 20px rgba(0,6,102,.08); transform: translateY(-2px); }
.dim-icon  { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; font-size: 17px; }
.dim-label { font-size: 11px; font-weight: 800; color: #000666; margin-bottom: 5px; }
.dim-desc  { font-size: 11px; color: #94a3b8; line-height: 1.55; }

/* ─────────────────────────────────────────
   Audit progress area
───────────────────────────────────────── */
.ssg-progress-wrap { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:18px 22px; margin-bottom:20px; box-shadow:0 1px 6px rgba(0,0,0,.04); }
.ssg-progress-meta { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; font-size:.875rem; }
.ssg-bar-track { height:5px; background:#e2e8f0; border-radius:999px; overflow:hidden; }
.ssg-bar-fill  { height:100%; background:linear-gradient(90deg,#000666,#4c56af); border-radius:999px; transition:width .5s ease; }

.phase-label { display:flex; align-items:center; gap:8px; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#94a3b8; margin-bottom:10px; margin-top:4px; }
.phase-label::after { content:''; flex:1; height:1px; background:#e2e8f0; }
.phase-connector { display:flex; justify-content:center; margin:6px 0; }
.phase-connector-line { width:2px; height:24px; background:linear-gradient(to bottom,#e2e8f0,#4c56af); border-radius:2px; }

.module-card { background:#fff; border:1px solid #e2e8f0; border-left:4px solid #e2e8f0; border-radius:12px; padding:15px 18px; display:flex; align-items:center; gap:14px; transition:all .3s; box-shadow:0 1px 4px rgba(0,0,0,.04); min-height:72px; }
.module-card.status-pending   { border-left-color:#cbd5e1; }
.module-card.status-running   { border-left-color:#4c56af; box-shadow:0 2px 14px rgba(76,86,175,.13); }
.module-card.status-completed { border-left-color:#10b981; box-shadow:0 2px 12px rgba(16,185,129,.10); }
.module-card.status-failed    { border-left-color:#ef4444; }
.module-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; transition:all .3s; }
.status-pending  .module-icon { background:#f1f5f9; }
.status-running  .module-icon { background:#eef0fb; animation:iconPulse 1.5s ease-in-out infinite; }
.status-completed .module-icon { background:#f0fdf4; }
.status-failed   .module-icon { background:#fef2f2; }
@keyframes iconPulse { 0%,100%{box-shadow:0 0 0 0 rgba(76,86,175,.2)} 50%{box-shadow:0 0 0 7px rgba(76,86,175,0)} }
.module-body { flex:1; min-width:0; }
.module-name  { font-weight:600; font-size:.88rem; color:#1e293b; margin-bottom:2px; }
.module-desc  { font-size:.77rem; color:#94a3b8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.module-right { flex-shrink:0; text-align:right; }
.status-badge  { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:999px; font-size:.72rem; font-weight:600; }
.badge-pending   { background:#f1f5f9; color:#64748b; }
.badge-running   { background:#eef0fb; color:#4c56af; }
.badge-completed { background:#f0fdf4; color:#16a34a; }
.badge-failed    { background:#fef2f2; color:#dc2626; }
.score-display   { font-size:1.3rem; font-weight:800; line-height:1; margin-bottom:4px; }
.score-critical  { color:#dc2626; } .score-poor { color:#ea580c; } .score-fair { color:#ca8a04; }
.score-good      { color:#16a34a; } .score-excellent { color:#2563eb; }
.cached-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:.72rem; font-weight:600; background:#fefce8; color:#a16207; }

/* ─────────────────────────────────────────
   Results Report (matching report.html)
───────────────────────────────────────── */

/* Score ring */
.rpt-ring-wrap { position:relative; width:220px; height:220px; flex-shrink:0; }
.rpt-ring-wrap svg { width:220px; height:220px; transform:rotate(-90deg); display:block; }
.rpt-ring-wrap circle { fill:none; stroke-width:13; }
.cring-bg   { stroke:rgba(0,6,102,.08); }
.cring-fill { stroke:#000666; stroke-linecap:round; transition:stroke-dashoffset .8s ease; }
.cring-score { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; white-space:nowrap; }
.cring-score .val { display:block; font-size:3.6rem; font-weight:800; color:#000666; line-height:1; }
.cring-score .lbl { display:block; font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#64748b; margin-top:4px; }

/* Header meta cards */
.rpt-header-card { background:#fff; border:1px solid rgba(0,0,0,.07); border-radius:14px; padding:16px 18px; height:100%; }
.rpt-hc-label { font-size:.58rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:#94a3b8; margin-bottom:5px; }
.rpt-hc-val { font-size:.875rem; font-weight:700; color:#000666; }

/* Composite section */
.rpt-composite-wrap { background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:24px; padding:40px; display:flex; flex-direction:column; align-items:center; gap:40px; box-shadow:0 2px 14px rgba(0,0,0,.04); }
@media (min-width:768px) { .rpt-composite-wrap { flex-direction:row; } }

/* Stats columns */
.rpt-stats-grid { flex:1; display:grid; grid-template-columns:1fr; gap:24px; width:100%; }
@media (min-width:576px) { .rpt-stats-grid { grid-template-columns:repeat(3,1fr); } }
.rpt-stat-col { border-left:2px solid rgba(0,6,102,.15); padding-left:22px; }
.rpt-stat-label { font-size:.58rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:#94a3b8; margin-bottom:8px; }
.rpt-stat-val { font-size:1.4rem; font-weight:800; color:#000666; line-height:1; margin-bottom:6px; }
.rpt-stat-desc { font-size:.8rem; color:#64748b; line-height:1.55; margin:0; }

/* Section headings */
.rpt-section-h { font-size:1.05rem; font-weight:800; color:#000666; display:flex; align-items:center; gap:14px; margin-bottom:20px; white-space:nowrap; }
.rpt-section-h .h-rule { flex:1; height:1px; background:#e2e8f0; display:inline-block; }

/* Platform cards */
.rpt-platform-card { background:#fff; border:1px solid rgba(0,0,0,.07); border-radius:18px; padding:20px; height:100%; transition:box-shadow .2s; }
.rpt-platform-card:hover { box-shadow:0 6px 24px rgba(0,0,0,.09); }
.rpt-platform-icon { width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1rem; }
.rpt-plat-badge { font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:3px 9px; border-radius:6px; white-space:nowrap; }
.rpt-plat-name { font-size:.875rem; font-weight:700; color:#000666; margin-bottom:4px; }
.rpt-plat-desc { font-size:.78rem; color:#64748b; line-height:1.5; margin:0; }

/* Dimension cards */
.rpt-dim-card { border-radius:18px; overflow:hidden; border:1px solid #e2e8f0; box-shadow:0 2px 10px rgba(0,0,0,.04); height:100%; display:flex; flex-direction:column; }
.rpt-dim-header { padding:15px 20px; display:flex; justify-content:space-between; align-items:center; }
.rpt-dim-title { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.rpt-dim-badge { font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:3px 10px; border-radius:6px; border:1px solid rgba(0,0,0,.08); }
.rpt-dim-body { background:#fff; padding:18px 20px; flex:1; }
.rpt-dim-row { display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-bottom:1px solid #f1f5f9; }
.rpt-dim-row:last-child { border-bottom:none; padding-bottom:0; }
.rpt-dr-key { font-size:.8rem; color:#64748b; }
.rpt-dr-val { font-size:.8rem; font-weight:700; color:#1e293b; max-width:160px; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rpt-dim-footer { padding:13px 20px; display:flex; justify-content:space-between; align-items:center; background:#fff; border-top:1px solid #f1f5f9; }
.rpt-df-wt-label { font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#94a3b8; }
.rpt-df-wt { font-size:1rem; font-weight:800; color:#000666; }
.rpt-df-score { font-size:1.4rem; font-weight:800; color:#000666; }

/* Findings */
.finding-card { background:#fff; border-left:4px solid #ef4444; border-radius:12px; padding:20px 22px; box-shadow:0 1px 6px rgba(0,0,0,.04); }
.finding-card.warn { border-left-color:#f59e0b; }
.finding-hdr { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }
.finding-title { font-weight:700; color:#1e293b; font-size:.9rem; }
.finding-priority { font-size:.75rem; font-weight:700; }
.finding-desc { font-size:.83rem; color:#64748b; margin-bottom:14px; line-height:1.6; }
.finding-recs { background:#f8f9fa; border-radius:8px; padding:14px 16px; }
.finding-recs-ttl { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#000666; margin-bottom:8px; }
.finding-recs li { font-size:.82rem; color:#1e293b; display:flex; align-items:flex-start; gap:6px; margin-bottom:5px; }
.finding-recs li:last-child { margin-bottom:0; }

/* View More */
.view-more-btn { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; margin-top:12px; padding:9px 18px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; font-size:.8rem; font-weight:600; color:#4c56af; cursor:pointer; transition:all .2s; }
.view-more-btn:hover { background:#eef0fb; border-color:#c7caee; }

/* Score / pill utilities */
.res-score-pill { display:inline-block; padding:2px 10px; border-radius:999px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.pill-critical { background:#ef4444; color:#fff; }
.pill-poor     { background:#ef4444; color:#fff; }
.pill-fair     { background:#cbe7f5; color:#304a55; }
.pill-good     { background:#e0e0ff; color:#343d96; }
.pill-excellent { background:#d1fae5; color:#065f46; }
.score-critical { color:#dc2626; } .score-poor { color:#ea580c; } .score-fair { color:#ca8a04; }
.score-good     { color:#16a34a; } .score-excellent { color:#2563eb; }

/* Roadmap v2 */
.rpt-roadmap-section { background:#f1f3f5; border-radius:24px; padding:40px; border:1px solid rgba(0,0,0,.05); }
.rpt-phase-block { display:flex; gap:22px; }
.rpt-phase-num { width:52px; height:52px; border-radius:16px; background:#000666; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1rem; font-weight:800; flex-shrink:0; box-shadow:0 4px 14px rgba(0,6,102,.25); }
.rpt-phase-num.outline { background:#fff; border:2px solid #e2e8f0; color:#94a3b8; box-shadow:none; }
.rpt-phase-content { background:#fff; border-radius:18px; padding:26px 28px; flex:1; border:1px solid rgba(0,0,0,.06); box-shadow:0 2px 10px rgba(0,0,0,.04); }
.rpt-phase-content.dim { opacity:.75; border-style:dashed; box-shadow:none; }
.rpt-phase-status.active { display:inline-flex; align-items:center; gap:6px; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:5px 12px; border-radius:999px; background:rgba(0,6,102,.08); color:#000666; }
.rpt-phase-status.scheduled { display:inline-flex; align-items:center; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:5px 12px; border-radius:999px; background:#f1f5f9; color:#94a3b8; border:1px solid #e2e8f0; }
.rpt-phase-tasks { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.rpt-task-card { background:#f8f9fa; border-radius:12px; padding:14px 16px; border:1px solid rgba(0,0,0,.05); transition:all .2s; }
.rpt-task-card:hover { background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.07); }
.rpt-task-title { font-size:.76rem; font-weight:700; color:#000666; margin-bottom:5px; }
.rpt-task-desc  { font-size:.75rem; color:#64748b; line-height:1.5; margin:0; }

/* Export */
.btn-export { background:#fff; border:2px solid #000666; color:#000666; border-radius:12px; padding:12px 28px; font-weight:800; font-size:.875rem; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; transition:all .2s; text-decoration:none; }
.btn-export:hover { background:#000666; color:#fff; box-shadow:0 6px 20px rgba(0,6,102,.25); }
.cached-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:.72rem; font-weight:600; background:#fefce8; color:#a16207; }

@media (max-width:768px) { .rpt-phase-block { gap:14px; } .rpt-phase-num { width:40px; height:40px; border-radius:12px; font-size:.85rem; } .rpt-phase-tasks { grid-template-columns:1fr; } .rpt-roadmap-section { padding:28px 20px; } .rpt-composite-wrap { padding:28px 20px; } }

/* ─────────────────────────────────────────
   Scan Dashboard (audit loading state)
───────────────────────────────────────── */
.scan-dashboard {
    background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%); border-radius:24px; border:1px solid rgba(0,0,0,.06);
    box-shadow:0 18px 40px rgba(15,23,42,.08); padding:34px 32px 28px;
    display:flex; flex-direction:column; align-items:center; gap:26px;
}
.scan-loading-top { display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; max-width:720px; }
.scan-loading-icon { position:relative; width:74px; height:74px; border-radius:22px; background:linear-gradient(135deg,#0f172a,#1d4f6b); box-shadow:0 18px 36px rgba(21,61,87,.24); overflow:hidden; }
.scan-loading-icon::before { content:''; position:absolute; inset:14px; border:2px solid rgba(255,255,255,.35); border-radius:50%; }
.scan-loading-icon::after { content:''; position:absolute; left:-22px; top:34px; width:118px; height:6px; background:linear-gradient(90deg,transparent, rgba(255,255,255,.95), transparent); transform:rotate(-18deg); animation:scanSweep 1.8s linear infinite; }
.scan-loading-dot { position:absolute; width:10px; height:10px; border-radius:50%; background:#7dd3fc; top:18px; right:16px; box-shadow:0 0 0 6px rgba(125,211,252,.18); animation:scanDot 1.4s ease-in-out infinite; }
@keyframes scanSweep { 0% { transform:translateX(-18px) rotate(-18deg); opacity:.35; } 50% { opacity:1; } 100% { transform:translateX(34px) rotate(-18deg); opacity:.35; } }
@keyframes scanDot { 0%,100% { transform:scale(1); } 50% { transform:scale(1.18); } }
.scan-loading-title { font-size:1.15rem; font-weight:800; color:#0f172a; }
.scan-loading-desc { font-size:.84rem; color:#64748b; line-height:1.7; max-width:620px; }
.scan-loading-pills { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.scan-loading-pill { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; background:#f8fbff; border:1px solid #dbe8f5; color:#466177; font-size:.72rem; font-weight:700; }

/* Central hub */
.scan-hub-wrap { position:relative; width:160px; height:160px; flex-shrink:0;  margin-top: 100px; margin-bottom: 100px}

.scan-pulse-ring {
    position:absolute; border-radius:50%;
    border:1.5px solid rgba(0,6,102,.12);
    animation:scanPulse 2.8s ease-out infinite; pointer-events:none;
}
.scanpr-1 { inset:-18px; animation-delay:0s; }
.scanpr-2 { inset:-34px; animation-delay:.7s; }
.scanpr-3 { inset:-50px; animation-delay:1.4s; }
@keyframes scanPulse {
    0%   { opacity:.7; transform:scale(.9); }
    100% { opacity:0;  transform:scale(1.1); }
}

.scan-progress-ring {
    position:absolute; inset:0; width:160px; height:160px; transform:rotate(-90deg);
}
.scan-progress-ring circle { fill:none; stroke-width:8; }
.sprg-bg   { stroke:rgba(0,6,102,.07); }
.sprg-fill { stroke:#000666; stroke-linecap:round; transition:stroke-dashoffset .5s ease; }

.scan-hub-inner {
    position:absolute; inset:0; display:flex; flex-direction:column;
    align-items:center; justify-content:center; z-index:2;
}
.scan-hub-pct  { font-size:2.1rem; font-weight:800; color:#000666; line-height:1; }
.scan-hub-label {
    font-size:.6rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.08em; color:#94a3b8; margin-top:5px; text-align:center;
    max-width:90px; line-height:1.3;
}

/* Dimension cards */
.dim-analysis-grid {
    display:grid; grid-template-columns:repeat(6,1fr);
    gap:14px; width:100%; max-width:1100px;
}

.da-card {
    background:#f8f9fa; border-radius:18px; padding:18px 10px 16px;
    text-align:center; border:1.5px solid transparent;
    transition:background .3s, border-color .3s, box-shadow .3s;
    position:relative; overflow:hidden;
}
.da-card[data-status="running"] {
    background:#fff; border-color:rgba(76,86,175,.25);
    box-shadow:0 4px 18px rgba(76,86,175,.12);
}
.da-card[data-status="running"]::before {
    content:''; position:absolute; inset:0;
    background:linear-gradient(120deg, transparent 0%, rgba(76,86,175,.08) 45%, transparent 100%);
    animation:daSweep 1.8s linear infinite;
}
@keyframes daSweep { 0% { transform:translateX(-110%); } 100% { transform:translateX(110%); } }
.da-card[data-status="completed"] {
    background:#fff; border-color:rgba(16,185,129,.2);
    box-shadow:0 2px 10px rgba(16,185,129,.08);
}
.da-card[data-status="failed"] { background:#fff; border-color:rgba(239,68,68,.2); }

.da-icon-wrap {
    width:42px; height:42px; border-radius:11px;
    display:flex; align-items:center; justify-content:center;
    font-size:19px; margin:0 auto 10px; transition:transform .3s;
}
[data-status="running"] .da-icon-wrap { animation:daIconPulse 1.4s ease-in-out infinite; }
@keyframes daIconPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.12)} }

.da-label {
    font-size:.68rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; color:#94a3b8; margin-bottom:12px; transition:color .3s;
}
[data-status="running"]   .da-label { color:#4c56af; }
[data-status="completed"] .da-label { color:#059669; }

.da-dots { display:flex; justify-content:center; gap:4px; height:18px; align-items:center; }
.da-dots span { width:5px; height:5px; border-radius:50%; background:#cbd5e1; display:inline-block; }
[data-status="running"] .da-dots span {
    background:#4c56af; animation:dotPop 1.1s ease-in-out infinite;
}
[data-status="running"] .da-dots span:nth-child(2) { animation-delay:.2s; }
[data-status="running"] .da-dots span:nth-child(3) { animation-delay:.4s; }
@keyframes dotPop { 0%,100%{transform:translateY(0);opacity:.4} 50%{transform:translateY(-4px);opacity:1} }
[data-status="completed"] .da-dots span { background:#10b981; }
[data-status="failed"]    .da-dots span { background:#ef4444; }

.da-score-reveal { text-align:center; }
.da-score-num { font-size:1.7rem; font-weight:800; color:#000666; line-height:1; margin-bottom:8px; }
.da-bar-wrap { height:3px; background:#e2e8f0; border-radius:999px; overflow:hidden; margin:0 10px; }
.da-bar      { height:100%; border-radius:999px; width:0; transition:width .9s ease; }

/* Discovery strip */
.scan-disc-strip {
    background:#f8f9fa; border-radius:10px; padding:10px 18px;
    display:flex; align-items:center; width:100%; max-width:480px; transition:background .3s;
}

@media (max-width: 991px) {
    .dim-grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 768px) {
    .ssg-headline { letter-spacing:-1px; }
    .ssg-input-wrap { flex-wrap:wrap; padding:12px; }
    .ssg-input-wrap input { width:100%; }
    .ssg-mode-select { width:100%; min-width:0; }
    .ssg-btn-start { width:100%; }
    .ssg-advanced-row { gap:8px; padding:0; }
    .ssg-advanced-field { flex-shrink:0; }
    .ssg-option-select { width:auto; }
    .dim-analysis-grid { grid-template-columns: repeat(2,1fr); }
    .scan-dashboard { padding:30px 20px 24px; }
    .ssg-hero { min-height:auto; padding-top:28px; }
    .ssg-hero-score-card { padding:14px; }
}
@media (max-width: 480px) {
    .dim-grid { grid-template-columns: repeat(2,1fr); }
    .dim-analysis-grid { grid-template-columns: repeat(2,1fr); }
}

/* ─────────────────────────────────────────
   Report v4 — screenshot-aligned result layout
───────────────────────────────────────── */
.rpt-page-shell { display:flex; flex-direction:column; gap:16px; }
.rpt-section-card { background:#fff; border:1px solid #e6ebf2; border-radius:18px; box-shadow:0 2px 10px rgba(15,23,42,.04); overflow:hidden; }
.rpt-section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 18px; border-bottom:1px solid #eef2f7; background:linear-gradient(180deg,#fff,#fbfcfe); }
.rpt-section-title { font-size:.92rem; font-weight:800; color:#111827; margin:0; }
.rpt-section-note { font-size:.72rem; color:#94a3b8; }
.rpt-section-body { padding:16px 18px; }

.rpt-hero-v4 { background:linear-gradient(135deg,#0b1524 0%, #163047 55%, #21445e 100%); color:#fff; border-radius:18px; padding:14px; position:relative; overflow:hidden; box-shadow:0 12px 30px rgba(15,23,42,.14); }
.rpt-hero-v4::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 80% 20%, rgba(255,255,255,.08), transparent 40%), linear-gradient(120deg, transparent 0%, rgba(255,255,255,.04) 45%, transparent 100%); pointer-events:none; }
.rpt-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:210px minmax(0,1fr) 320px; gap:14px; align-items:stretch; }
.rpt-score-pane { background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04)); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:16px; display:flex; flex-direction:column; justify-content:space-between; min-height:140px; }
.rpt-score-pane .rhs-idx { display:block; font-size:.55rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#9db7c9; margin-bottom:8px; }
.rpt-score-pane .rhs-num { display:block; font-size:3.4rem; font-weight:800; line-height:1; letter-spacing:-.04em; color:#fff; }
.rpt-score-pane .rhs-lbl { display:inline-flex; align-items:center; padding:3px 10px; border-radius:999px; font-size:.72rem; font-weight:700; margin-top:8px; }
.rpt-score-pane .rhs-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.rpt-score-pane .rhs-tag { display:inline-flex; align-items:center; gap:5px; padding:3px 8px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.12); border-radius:999px; color:#e5edf3; font-size:.66rem; font-weight:700; }
.rpt-score-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; margin-top:14px; }
.rpt-score-stat-chip { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:7px 10px; }
.rpt-score-stat-label { font-size:.48rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#a9c0d1; margin-bottom:3px; }
.rpt-score-stat-value { font-size:.78rem; font-weight:800; color:#fff; line-height:1.3; word-break:break-word; }
.rpt-score-action { display:inline-flex; align-items:center; justify-content:center; width:max-content; margin-top:12px; padding:7px 10px; border-radius:10px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#fff; font-size:.68rem; font-weight:700; cursor:pointer; text-decoration:none; }
.rpt-score-action:hover { background:rgba(255,255,255,.14); color:#fff; }
.rpt-hero-copy { display:flex; flex-direction:column; justify-content:space-between; min-width:0; }
.rpt-hero-copy .rhi-bc { color:#d7e3ee; font-size:.72rem; margin-bottom:6px; }
.rpt-hero-copy .rpt-hero-title { font-size:1.45rem; font-weight:800; margin:0 0 8px; color:#fff; }
.rpt-hero-copy .rhi-desc { color:rgba(255,255,255,.82); font-size:.84rem; line-height:1.65; margin:0 0 10px; max-width:760px; }
.rpt-hero-copy .rhi-badge { display:inline-flex; align-items:center; padding:3px 9px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#e5edf3; font-size:.64rem; font-weight:700; margin:0 6px 6px 0; }
.rpt-hero-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:10px; }
.rpt-stat-chip { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:12px 13px; min-height:72px; }
.rpt-stat-chip-lbl { font-size:.52rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#a9c0d1; margin-bottom:4px; }
.rpt-stat-chip-val { font-size:.82rem; font-weight:700; color:#fff; line-height:1.45; }
.rpt-radar-pane { background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.05)); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:16px; display:flex; flex-direction:column; gap:14px; min-width:0; }
.rpt-radar-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.rpt-radar-kicker { font-size:.55rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#9db7c9; margin-bottom:6px; }
.rpt-radar-title { font-size:1rem; font-weight:800; color:#fff; line-height:1.2; }
.rpt-radar-badge { display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#dbe8f6; font-size:.68rem; font-weight:700; white-space:nowrap; }
.rpt-radar-canvas { display:flex; align-items:center; justify-content:center; }
.rpt-radar-svg { width:100%; max-width:260px; height:auto; overflow:visible; }
.rpt-radar-level { fill:none; stroke:rgba(203,213,225,.22); stroke-width:1; }
.rpt-radar-axis { stroke:rgba(203,213,225,.18); stroke-width:1; }
.rpt-radar-shape { fill:rgba(96,165,250,.16); stroke:#60a5fa; stroke-width:2.2; }
.rpt-radar-point { stroke:#fff; stroke-width:2; }
.rpt-radar-label { fill:#dbe8f6; font-size:9px; font-weight:700; }
.rpt-radar-score { fill:#fff; font-size:11px; font-weight:800; }
.rpt-radar-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 10px; }
.rpt-radar-legend-item { display:flex; align-items:center; gap:8px; min-width:0; padding:8px 9px; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); }
.rpt-radar-legend-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.rpt-radar-legend-name { font-size:.68rem; color:#dbe8f6; font-weight:700; min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rpt-radar-legend-val { font-size:.78rem; color:#fff; font-weight:800; flex-shrink:0; }
.rpt-radar-legend--center { grid-template-columns:repeat(3,minmax(0,1fr)); align-self:flex-end; width:100%; }
.rpt-radar-legend--center .rpt-radar-legend-item { background:rgba(255,255,255,.07); }

.rpt-dim-grid-v4 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rpt-dim-card-v4 { background:#fff; border:1px solid #e6ebf2; border-radius:16px; padding:14px; display:flex; flex-direction:column; gap:10px; min-height:226px; }
.rpt-dim-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.rpt-dim-name-cn { font-size:.84rem; font-weight:800; color:#111827; }
.rpt-dim-name-en { font-size:.68rem; color:#94a3b8; margin-top:2px; }
.rpt-dim-weight { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:22px; padding:0 8px; border-radius:999px; background:#ecfdf5; color:#10b981; font-size:.64rem; font-weight:800; }
.rpt-dim-main { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.rpt-dim-score-big { font-size:2.3rem; font-weight:800; line-height:1; color:#111827; }
.rpt-dim-status-pill { display:inline-flex; align-items:center; padding:3px 9px; border-radius:999px; font-size:.68rem; font-weight:700; margin-top:4px; }
.rpt-dim-mini-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.rpt-dim-mini { border:1px solid #e8edf3; border-radius:10px; padding:9px 10px; background:#fbfcfe; }
.rpt-dim-mini span { display:block; font-size:.62rem; color:#94a3b8; margin-bottom:4px; }
.rpt-dim-mini strong { display:block; font-size:.86rem; font-weight:800; color:#111827; }
.rpt-dim-formula { font-size:.67rem; color:#64748b; line-height:1.55; min-height:52px; }
.rpt-dim-current { font-size:.68rem; color:#6b7280; line-height:1.55; padding-top:8px; border-top:1px dashed #e5e7eb; }

.rpt-list-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rpt-list-grid--elevated { margin-top:2px; }
.rpt-list-card { background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%); border:1px solid #eef2f6; border-radius:24px; overflow:hidden; box-shadow:0 16px 36px rgba(15,23,42,.05); }
.rpt-list-card .rpt-section-head { padding:18px 20px 12px; border-bottom:none; background:transparent; }
.rpt-list-card .rpt-section-body { padding:8px 20px 20px; }
.rpt-list-card--issues .rpt-section-title::before,
.rpt-list-card--wins .rpt-section-title::before { content:''; display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.rpt-list-card--issues .rpt-section-title::before { background:#ef4444; box-shadow:0 0 0 6px rgba(239,68,68,.10); }
.rpt-list-card--wins .rpt-section-title::before { background:#22c55e; box-shadow:0 0 0 6px rgba(34,197,94,.10); }
.rpt-li-item { display:flex; gap:12px; align-items:flex-start; padding:14px; border:none; border-radius:18px; background:#f8fafc; }
.rpt-li-item + .rpt-li-item { margin-top:10px; }
.rpt-li-item--critical { background:linear-gradient(180deg,#fff8f8 0%,#fff 100%); border:1px solid #fee2e2; }
.rpt-li-item--good { background:linear-gradient(180deg,#f7fff9 0%,#fff 100%); border:1px solid #dcfce7; }
.rpt-li-num { width:28px; height:28px; border-radius:10px; background:#eef2f7; color:#374151; font-size:.7rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:inset 0 0 0 1px rgba(148,163,184,.18); }
.rpt-li-num.good { background:#dcfce7; color:#15803d; box-shadow:none; }
.rpt-li-txt { font-size:.76rem; color:#111827; line-height:1.72; }

.rpt-action-list { display:flex; flex-direction:column; gap:10px; }
.rpt-ap-row { display:grid; grid-template-columns:76px 1fr 88px; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:14px; border:1px solid #e6ebf2; background:#fff; }
.rpt-ap-pri { display:inline-flex; align-items:center; justify-content:center; min-height:24px; border-radius:999px; font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.rpt-ap-high   { background:#fee2e2; color:#dc2626; }
.rpt-ap-medium { background:#ffedd5; color:#ea580c; }
.rpt-ap-low    { background:#dcfce7; color:#059669; }
.rpt-ap-title { font-size:.84rem; font-weight:800; color:#111827; margin-bottom:4px; }
.rpt-ap-desc { font-size:.75rem; color:#6b7280; line-height:1.55; }
.rpt-ap-impact { text-align:right; font-size:.62rem; color:#94a3b8; font-weight:700; text-transform:uppercase; }
.rpt-ap-impact strong { display:inline-flex; align-items:center; justify-content:center; margin-top:6px; padding:4px 9px; border-radius:999px; font-size:.64rem; }

.rpt-platform-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.rpt-section-card--platforms { background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%); border-radius:24px; border-color:#eef2f6; box-shadow:0 16px 36px rgba(15,23,42,.05); }
.rpt-section-body--platforms { padding:18px 20px 20px; }
.rpt-plat-v3 { background:#fff; border:1px solid #edf2f7; border-radius:22px; padding:18px; min-height:272px; box-shadow:0 10px 28px rgba(15,23,42,.04); }
.rpt-plat-v3-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:12px; }
.rpt-plat-v3-name { font-size:.8rem; font-weight:800; color:#111827; max-width:76%; line-height:1.45; }
.rpt-plat-v3-score { font-size:1.45rem; font-weight:900; line-height:1; letter-spacing:-.03em; }
.rpt-plat-v3-desc { font-size:.72rem; color:#6b7280; line-height:1.7; margin:0 0 12px; min-height:50px; }
.rpt-plat-v3-meta { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.rpt-plat-v3-meta-item { border:1px solid #eef2f7; border-radius:14px; padding:10px 12px; background:#fbfcfe; }
.rpt-plat-v3-meta-item span { display:block; font-size:.58rem; color:#94a3b8; margin-bottom:4px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.rpt-plat-v3-meta-item strong { display:block; font-size:.72rem; color:#111827; line-height:1.55; }
.rpt-plat-v3-group-title { font-size:.58rem; color:#94a3b8; text-transform:uppercase; letter-spacing:.08em; margin:2px 0 6px; font-weight:800; }
.rpt-plat-v3-ri { display:flex; gap:6px; align-items:flex-start; font-size:.7rem; color:#4b5563; line-height:1.6; padding:6px 0; border-bottom:1px solid #f3f4f6; }
.rpt-plat-v3-ri:last-child { border-bottom:none; }

.rpt-observation-box { display:grid; grid-template-columns:1.1fr .9fr; gap:12px; }
.rpt-ob-card { background:#fff; border:1px solid #e6ebf2; border-radius:16px; padding:16px; }
.rpt-ob-unscored { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; background:#fff7ed; color:#ea580c; font-size:.68rem; font-weight:800; border:1px solid #fed7aa; }
.rpt-ob-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.rpt-ob-title { font-size:.88rem; font-weight:800; color:#111827; }
.rpt-ob-summary { font-size:.8rem; color:#4b5563; line-height:1.7; }
.rpt-ob-pair-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.rpt-ob-pair { border:1px solid #edf2f7; border-radius:12px; background:#fbfdff; padding:12px; }
.rpt-ob-pair h4 { font-size:.72rem; font-weight:800; color:#111827; margin:0 0 8px; }
.rpt-ob-list { display:flex; flex-direction:column; gap:8px; }
.rpt-ob-item { display:flex; gap:6px; align-items:flex-start; font-size:.76rem; color:#4b5563; line-height:1.55; }
.rpt-ob-platform-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.rpt-ob-platform { border:1px solid #edf2f7; border-radius:12px; background:#fbfdff; padding:12px; }
.rpt-ob-platform strong { display:block; font-size:.76rem; color:#111827; margin-bottom:6px; }
.rpt-ob-platform p { margin:0; font-size:.73rem; color:#64748b; line-height:1.55; }

.rpt-metric-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.rpt-metric-card { background:#fff; border:1px solid #e6ebf2; border-radius:16px; padding:16px; }
.rpt-metric-name { font-size:.84rem; font-weight:800; color:#111827; margin-bottom:10px; }
.rpt-metric-row { display:flex; gap:10px; padding:7px 0; border-bottom:1px solid #f1f5f9; }
.rpt-metric-row:last-child { border-bottom:none; padding-bottom:0; }
.rpt-metric-row span { width:110px; flex-shrink:0; font-size:.66rem; color:#94a3b8; text-transform:uppercase; letter-spacing:.06em; }
.rpt-metric-row strong { font-size:.76rem; color:#334155; line-height:1.6; font-weight:700; }
.ssg-input-stack { display:grid; gap:10px; width:100%; }
.ssg-input-options { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding-left:12px; }
.ssg-option-chip { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border:1px solid rgba(148,163,184,.28); border-radius:999px; background:rgba(255,255,255,.72); color:#475569; font-size:.78rem; font-weight:700; }
.ssg-option-check { display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px; border:1px solid rgba(99,102,241,.18); border-radius:999px; background:rgba(238,242,255,.78); color:#312e81; font-size:.78rem; font-weight:800; cursor:pointer; }
.ssg-option-check input { accent-color:#4f46e5; }
.ssg-option-inline { display:inline-flex; align-items:center; gap:8px; }
.ssg-option-inline span { font-size:.78rem; color:#64748b; font-weight:700; }
.ssg-option-select { height:32px; border-radius:999px; border:1px solid rgba(148,163,184,.35); background:#fff; color:#0f172a; font-size:.78rem; font-weight:700; padding:0 12px; }

.rpt-snapshot-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.rpt-snapshot-card { background:#fff; border:1px solid #e6ebf2; border-radius:16px; overflow:hidden; }
.rpt-snapshot-card .rpt-section-head { padding:13px 15px; }
.rpt-snapshot-card .rpt-section-body { padding:12px 15px; }
.rpt-snap-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:7px 0; border-bottom:1px solid #f3f4f6; }
.rpt-snap-row:last-child { border-bottom:none; }
.rpt-snap-k { font-size:.74rem; color:#6b7280; flex-shrink:0; }
.rpt-snap-v { font-size:.74rem; font-weight:700; color:#111827; text-align:right; max-width:62%; word-break:break-word; }
.rpt-snap-v.pass { color:#059669; }
.rpt-snap-v.fail { color:#dc2626; }
.rpt-snap-v.warn { color:#d97706; }

.rpt-note-box { background:#fff; border:1px solid #e6ebf2; border-radius:16px; }
.rpt-note-body { padding:14px 16px; }
.rpt-note-line { background:#fbfcfe; border:1px solid #edf2f7; border-radius:12px; padding:12px 14px; font-size:.8rem; color:#4b5563; line-height:1.65; }
.rpt-note-line + .rpt-note-line { margin-top:10px; }
.rpt-note-actions { display:flex; justify-content:flex-end; padding:0 16px 16px; }
.btn-export { background:#fff; border:1px solid #163047; color:#163047; border-radius:10px; padding:10px 16px; font-size:.82rem; font-weight:800; text-decoration:none; }
.btn-export:hover { background:#163047; color:#fff; }

.rpt-guide-card { background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%); border:1px solid #dfe8f3; border-radius:18px; box-shadow:0 8px 24px rgba(15,23,42,.05); overflow:hidden; }
.rpt-guide-headline { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rpt-guide-current { display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; background:#eef6ff; color:#163047; border:1px solid #d8e7f8; font-size:.74rem; font-weight:700; }
.rpt-guide-current strong { font-size:.88rem; color:#0f172a; }
.rpt-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rpt-guide-dim { background:#fff; border:1px solid #e5edf5; border-radius:16px; padding:16px; box-shadow:0 2px 10px rgba(15,23,42,.03); }
.rpt-guide-dim-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.rpt-guide-dim-name { font-size:.84rem; font-weight:800; color:#111827; }
.rpt-guide-dim-sub { font-size:.68rem; color:#94a3b8; margin-top:3px; }
.rpt-guide-dim-weight { display:inline-flex; align-items:center; justify-content:center; min-width:52px; height:26px; padding:0 10px; border-radius:999px; background:#ecfdf5; color:#10b981; font-size:.72rem; font-weight:800; }
.rpt-guide-rule-list { display:flex; flex-direction:column; gap:8px; }
.rpt-guide-rule { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; font-size:.78rem; line-height:1.5; }
.rpt-guide-rule span { color:#6b7280; }
.rpt-guide-rule strong { color:#111827; font-weight:800; text-align:right; }
.rpt-guide-note { margin-top:12px; padding-top:12px; border-top:1px dashed #e5e7eb; font-size:.72rem; color:#64748b; line-height:1.65; }
.rpt-level-wrap { margin-top:16px; background:#fff; border:1px solid #e5edf5; border-radius:16px; padding:14px 16px; }
.rpt-level-head { font-size:.8rem; font-weight:800; color:#111827; margin-bottom:12px; }
.rpt-level-grid { display:grid; grid-template-columns:120px repeat(5,minmax(0,1fr)); gap:10px; align-items:stretch; }
.rpt-level-label { display:flex; align-items:center; font-size:.8rem; color:#6b7280; font-weight:700; }
.rpt-level-item { border:1px solid #e5e7eb; border-radius:14px; background:#fff; padding:12px 10px; text-align:center; transition:all .2s ease; }
.rpt-level-item strong { display:block; font-size:.92rem; font-weight:800; margin-bottom:4px; }
.rpt-level-item span { display:block; font-size:.72rem; color:#6b7280; font-weight:700; text-transform:uppercase; }
.rpt-level-item.active { transform:translateY(-2px); box-shadow:0 8px 20px rgba(15,23,42,.08); border-color:currentColor; background:#f8fbff; }
.rpt-level-critical { color:#dc2626; }
.rpt-level-poor { color:#ea580c; }
.rpt-level-fair { color:#d97706; }
.rpt-level-good { color:#16a34a; }
.rpt-level-strong { color:#10b981; }
.rpt-page-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.rpt-page-card { background:#fff; border:1px solid #e6ebf2; border-radius:18px; padding:16px; box-shadow:0 10px 24px rgba(15,23,42,.04); }
.rpt-page-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
.rpt-page-title { font-size:.92rem; font-weight:800; color:#111827; line-height:1.45; }
.rpt-page-sub { font-size:.73rem; color:#94a3b8; margin-top:4px; }
.rpt-page-score { display:inline-flex; align-items:center; justify-content:center; min-width:56px; height:40px; padding:0 10px; border-radius:14px; background:#eef2ff; color:#3730a3; font-size:1rem; font-weight:800; }
.rpt-page-url { margin-bottom:12px; font-size:.76rem; color:#475569; line-height:1.6; word-break:break-all; }
.rpt-page-score-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.rpt-page-metric { border:1px solid #edf2f7; border-radius:12px; padding:10px 8px; background:#fbfdff; text-align:center; }
.rpt-page-metric span { display:block; font-size:.64rem; color:#94a3b8; margin-bottom:4px; }
.rpt-page-metric strong { display:block; font-size:.84rem; color:#111827; font-weight:800; }
.rpt-page-gap { margin-bottom:12px; font-size:.8rem; color:#475569; line-height:1.7; }
.rpt-page-list-title { font-size:.64rem; color:#94a3b8; text-transform:uppercase; letter-spacing:.08em; font-weight:800; margin-bottom:6px; }
.rpt-page-list { display:grid; gap:8px; }
.rpt-page-list-item { display:flex; gap:6px; align-items:flex-start; font-size:.76rem; color:#475569; line-height:1.55; }
.rpt-page-empty { padding:18px; border:1px dashed #cbd5e1; border-radius:16px; background:#f8fafc; color:#64748b; font-size:.86rem; line-height:1.7; }
.fa-gate-modal .modal-dialog { max-width:640px; }
.fa-gate-modal .modal-content { border:none; border-radius:22px; overflow:hidden; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.16); }
.fa-gate-shell { background:#fff; color:#1f2937; }
.fa-gate-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:26px 30px; border-bottom:1px solid #e5e7eb; }
.fa-gate-header-title { font-size:1.3rem; font-weight:900; color:#111827; margin:0; }
.fa-gate-close { width:38px; height:38px; border:none; border-radius:12px; background:#f3f4f6; color:#6b7280; display:flex; align-items:center; justify-content:center; }
.fa-gate-body { padding:24px 24px 22px; text-align:center; }
.fa-gate-kicker { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:5px 12px; border-radius:999px; background:#f5f3ff; color:#7c3aed; font-size:.74rem; font-weight:800; letter-spacing:.04em; }
.fa-gate-title { margin-top:16px; font-size:1.65rem; font-weight:900; color:#1f2937; letter-spacing:-.03em; line-height:1.3; }
.fa-gate-desc { margin:12px auto 0; max-width:560px; font-size:.96rem; line-height:1.85; color:#4b5563; }
.fa-gate-hero { display:flex; align-items:center; justify-content:center; margin:22px 0 8px; }
.fa-gate-hero img { display:block; width:min(100%, 360px); height:auto; object-fit:contain; }
.fa-gate-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:12px; text-align:left; }
.fa-gate-point { display:flex; align-items:flex-start; gap:10px; padding:14px 14px; border-radius:16px; background:#f8fafc; border:1px solid #e5e7eb; color:#4b5563; font-size:.84rem; line-height:1.7; }
.fa-gate-point i { color:#7c3aed; margin-top:2px; }
.fa-gate-footer { display:flex; justify-content:center; gap:14px; padding:18px 24px 24px; border-top:1px solid #e5e7eb; background:#fff; }
.fa-gate-btn { display:inline-flex; align-items:center; justify-content:center; min-width:180px; height:48px; border-radius:14px; font-size:.92rem; font-weight:800; text-decoration:none; border:none; }
.fa-gate-btn.primary { background:linear-gradient(90deg,#7c3aed 0%, #9333ea 100%); color:#fff; box-shadow:0 12px 28px rgba(124,58,237,.22); }
.fa-gate-btn.secondary { background:#9ca3af; color:#fff; }
.fa-gate-note { padding:0 24px 20px; text-align:center; font-size:.76rem; color:#9ca3af; }

@media (max-width: 1199px) {
    .rpt-platform-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rpt-guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rpt-observation-box, .rpt-metric-grid, .rpt-page-grid { grid-template-columns:1fr; }
    .rpt-plat-score-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 991px) {
    .rpt-hero-grid, .rpt-list-grid, .rpt-snapshot-grid, .rpt-dim-grid-v4, .rpt-page-grid { grid-template-columns:1fr; }
    .rpt-hero-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rpt-ap-row { grid-template-columns:1fr; }
    .rpt-ap-impact { text-align:left; }
    .rpt-platform-grid, .rpt-ob-platform-grid, .rpt-ob-pair-grid { grid-template-columns:1fr; }
    .rpt-level-grid { grid-template-columns:1fr 1fr; }
    .rpt-level-label { grid-column:1 / -1; }
    .rpt-page-score-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .rpt-radar-pane { order:3; }
    .rpt-radar-legend--center { align-self:stretch; }
}
@media (max-width: 576px) {
    .rpt-hero-v4 { padding:12px; }
    .rpt-hero-stats, .rpt-dim-mini-grid, .rpt-platform-grid, .rpt-guide-grid, .rpt-level-grid, .rpt-metric-grid, .rpt-radar-legend { grid-template-columns:1fr; }
    .rpt-score-pane .rhs-num { font-size:3rem; }
    .ssg-input-options { padding-left:0; }
    .rpt-page-score-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .fa-gate-header { padding:18px 18px; }
    .fa-gate-body { padding:20px 16px 18px; }
    .fa-gate-title { font-size:1.6rem; }
    .fa-gate-desc { font-size:.94rem; }
    .fa-gate-hero img { width:min(100%, 280px); }
    .fa-gate-points { grid-template-columns:1fr; }
    .fa-gate-footer { flex-direction:column; padding:18px; }
    .fa-gate-btn { width:100%; }
    .fa-gate-note { padding:0 18px 18px; }
}

/* ─────────────────────────────────────────
   Report — section accent header
───────────────────────────────────────── */
.rpt-accent-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:20px; }
.rpt-accent-head-left { display:flex; align-items:flex-start; gap:12px; }
.rpt-accent-bar { width:4px; min-height:36px; border-radius:4px; background:linear-gradient(180deg,#2b4bee,#6272f5); flex-shrink:0; margin-top:2px; }
.rpt-accent-title { font-size:1.35rem; font-weight:800; color:#111827; margin:0 0 4px; }
.rpt-accent-sub { font-size:.8rem; color:#64748b; margin:0; }
.rpt-accent-sub .rpt-snap-date { font-size:.72rem; color:#94a3b8; margin-left:6px; }
.rpt-accent-link { font-size:.78rem; color:#2b4bee; font-weight:700; text-decoration:none; white-space:nowrap; margin-top:6px; }
.rpt-accent-link:hover { text-decoration:underline; }

/* ─────────────────────────────────────────
   Report — traffic dashboard (sd = search data)
───────────────────────────────────────── */
.sd-section { margin-bottom:32px; }
.sd-three-cols { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.sd-two-cols   { display:grid; grid-template-columns:2fr 1fr; gap:16px; }
.sd-card { background:#fff; border:1px solid #e6ebf2; border-radius:16px; padding:20px; box-shadow:0 2px 10px rgba(15,23,42,.04); }
.sd-card-head { display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.sd-card-head i { color:#2b4bee; font-size:1rem; }
.sd-card-head h3 { font-size:.88rem; font-weight:800; color:#111827; margin:0; }

/* 2×2 metrics */
.sd-metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sd-metric-item { background:#f8fafc; border-radius:12px; padding:12px 14px; }
.sd-metric-label { font-size:.63rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94a3b8; margin-bottom:6px; }
.sd-metric-val   { font-size:1.65rem; font-weight:800; color:#111827; line-height:1; }

/* traffic source bars */
.sd-src-list { display:flex; flex-direction:column; gap:12px; }
.sd-src-row  { display:flex; flex-direction:column; gap:5px; }
.sd-src-meta { display:flex; justify-content:space-between; align-items:center; }
.sd-src-label { font-size:.78rem; color:#475569; }
.sd-src-pct   { font-size:.78rem; font-weight:700; color:#111827; }
.sd-src-track { height:7px; background:#f1f5f9; border-radius:999px; overflow:hidden; }
.sd-src-fill  { height:100%; border-radius:999px; transition:width .6s ease; }
.sd-src-fill.c-search   { background:linear-gradient(90deg,#2b4bee,#4f6bff); }
.sd-src-fill.c-direct   { background:linear-gradient(90deg,#60a5fa,#93c5fd); }
.sd-src-fill.c-social   { background:linear-gradient(90deg,#818cf8,#a5b4fc); }
.sd-src-fill.c-referral { background:#cbd5e1; }
.sd-src-fill.c-paid     { background:#94a3b8; }

/* country list */
.sd-country-list { display:flex; flex-direction:column; gap:10px; }
.sd-country-row  { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.sd-country-left { display:flex; align-items:center; gap:10px; }
.sd-country-rank { font-size:.66rem; font-weight:800; color:#94a3b8; min-width:20px; }
.sd-country-name { font-size:.82rem; color:#374151; }
.sd-country-code { font-size:.72rem; color:#94a3b8; margin-left:4px; }
.sd-country-pct  { font-size:.82rem; font-weight:700; color:#111827; }

/* bar chart */
.sd-bar-chart-wrap { height:160px; display:flex; align-items:flex-end; gap:20px; padding:0 10px; position:relative; }
.sd-bar-chart-wrap::before { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:#e2e8f0; }
.sd-bar-group { flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; height:100%; justify-content:flex-end; }
.sd-bar-val   { font-size:.7rem; font-weight:700; color:#64748b; }
.sd-bar-fill-wrap { width:40px; background:#eff6ff; border-radius:6px 6px 0 0; position:relative; overflow:hidden; min-height:4px; }
.sd-bar-fill-inner { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(180deg,#4f6bff,#2b4bee); border-radius:6px 6px 0 0; }
.sd-bar-label { font-size:.68rem; color:#94a3b8; font-weight:600; white-space:nowrap; }

/* keywords card (blue tint) */
.sd-kw-card { background:linear-gradient(135deg,#eff6ff,#e0e7ff); border:1px solid #c7d2fe; border-radius:16px; padding:20px; }
.sd-kw-head  { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.sd-kw-title { font-size:.88rem; font-weight:800; color:#1e40af; }
.sd-kw-badge { font-size:.62rem; font-weight:800; background:#c7d2fe; color:#3730a3; padding:3px 8px; border-radius:6px; }
.sd-kw-num   { font-size:3rem; font-weight:900; color:#2563eb; line-height:1; margin-bottom:6px; }
.sd-kw-desc  { font-size:.74rem; color:#3b82f6; line-height:1.6; }
.sd-cat-tags { display:flex; flex-wrap:wrap; gap:7px; }
.sd-cat-tag  { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; font-size:.72rem; font-weight:700; background:#eef2ff; border:1px solid #c7d2fe; color:#3730a3; }
.sd-cat-tag.alt { background:#f0fdf4; border-color:#bbf7d0; color:#065f46; }

/* ─────────────────────────────────────────
   Report — GEO platform score cards
───────────────────────────────────────── */
.rpt-plat-score-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.rpt-plat-score-card { background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%); border:1px solid #edf2f7; border-radius:20px; padding:16px 12px 14px; text-align:center; box-shadow:0 10px 24px rgba(15,23,42,.04); min-height:172px; display:flex; flex-direction:column; justify-content:flex-start; }
.rpt-plat-score-icon { width:36px; height:36px; border-radius:11px; background:#f1f5f9; display:flex; align-items:center; justify-content:center; font-size:.9rem; margin:0 auto 10px; }
.rpt-plat-score-name { font-size:.62rem; font-weight:800; color:#64748b; margin-bottom:8px; line-height:1.45; min-height:34px; display:flex; align-items:center; justify-content:center; }
.rpt-plat-score-num  { font-size:1.34rem; font-weight:900; line-height:1; margin-bottom:6px; letter-spacing:-.03em; }
.rpt-plat-score-desc { font-size:.6rem; color:#94a3b8; line-height:1.55; min-height:38px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.rpt-plat-score-bar  { height:4px; background:#eef2f7; border-radius:999px; overflow:hidden; margin-top:auto; }
.rpt-plat-score-bar-fill { height:100%; border-radius:999px; transition:width .6s ease; }

/* ─────────────────────────────────────────
   Report — action/insight cards
───────────────────────────────────────── */
.rpt-insight-section { margin-top:0; }
.rpt-insight-head { text-align:center; margin-bottom:20px; }
.rpt-insight-head h2 { font-size:1.5rem; font-weight:800; color:#111827; margin-bottom:4px; }
.rpt-insight-head p  { font-size:.84rem; color:#64748b; }
.rpt-insight-list { display:flex; flex-direction:column; gap:14px; }
.rpt-section-card--insights { background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%); border-radius:24px; border-color:#eef2f6; box-shadow:0 16px 36px rgba(15,23,42,.05); }
.rpt-section-body--insights { padding:18px 20px 20px; }
.rpt-insight-card { background:#fff; border:1px solid #edf2f7; border-radius:22px; padding:18px 20px; display:grid; grid-template-columns:minmax(0,1fr) 112px; gap:16px; align-items:center; box-shadow:0 10px 28px rgba(15,23,42,.04); }
.rpt-insight-body {}
.rpt-insight-card + .rpt-insight-card { margin-top:14px; }
.rpt-insight-icon-row { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.rpt-insight-icon { width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:.95rem; flex-shrink:0; }
.rpt-insight-kw-row { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.rpt-insight-kw { display:inline-flex; align-items:center; min-height:24px; padding:0 9px; border-radius:999px; font-size:.62rem; font-weight:800; background:#f4f6f8; color:#475569; border:1px solid #e7edf3; }
.rpt-insight-title { font-size:.82rem; font-weight:800; color:#111827; line-height:1.55; }
.rpt-insight-desc  { font-size:.74rem; color:#6b7280; line-height:1.75; }
.rpt-impact-badge  { flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:98px; height:78px; border-radius:18px; padding:10px 12px; text-align:center; border:1px solid rgba(255,255,255,.35); }
.rpt-impact-label  { font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:3px; }
.rpt-impact-val    { font-size:.92rem; font-weight:900; line-height:1.1; }
.rpt-impact-green  { background:#dcfce7; color:#059669; }
.rpt-impact-blue   { background:#e0e7ff; color:#3730a3; }
.rpt-impact-red    { background:#fee2e2; color:#dc2626; }
.rpt-impact-amber  { background:#fef3c7; color:#d97706; }

/* ─────────────────────────────────────────
   GEO 6-dim radar layout
───────────────────────────────────────── */
.geo-radar-wrap  { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
.geo-radar-panel { background:#fff; border:1px solid #e6ebf2; border-radius:18px; padding:22px; box-shadow:0 2px 10px rgba(15,23,42,.04); }
.geo-radar-title { font-size:.96rem; font-weight:800; color:#111827; margin-bottom:16px; }
.geo-radar-canvas-wrap { display:flex; align-items:center; justify-content:center; }

/* sentiment bars (right panel) */
.geo-sent-list   { display:flex; flex-direction:column; gap:18px; margin-top:10px; }
.geo-sent-row    { display:flex; flex-direction:column; gap:6px; }
.geo-sent-meta   { display:flex; justify-content:space-between; align-items:baseline; }
.geo-sent-label  { font-size:.86rem; color:#374151; font-weight:500; }
.geo-sent-pct    { font-size:1.1rem; font-weight:800; }
.geo-sent-track  { height:10px; background:#f1f5f9; border-radius:999px; overflow:hidden; }
.geo-sent-fill   { height:100%; border-radius:999px; transition:width .7s ease; }
.geo-sent-positive  .geo-sent-pct  { color:#2563eb; }
.geo-sent-positive  .geo-sent-fill { background:linear-gradient(90deg,#2563eb,#60a5fa); }
.geo-sent-neutral   .geo-sent-pct  { color:#94a3b8; }
.geo-sent-neutral   .geo-sent-fill { background:#cbd5e1; }
.geo-sent-controversy .geo-sent-pct  { color:#dc2626; }
.geo-sent-controversy .geo-sent-fill { background:#ef4444; }

/* brand tags purple card */
.geo-brand-tag-card { background:linear-gradient(135deg,#7c3aed 0%,#a855f7 50%,#6366f1 100%); border-radius:18px; padding:22px; color:#fff; display:flex; flex-direction:column; gap:16px; }
.geo-brand-tag-icon { width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.geo-brand-tag-title { font-size:1.1rem; font-weight:800; }
.geo-brand-tag-pills { display:flex; flex-wrap:wrap; gap:8px; }
.geo-brand-tag-pill  { display:inline-flex; align-items:center; padding:6px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.15); font-size:.8rem; font-weight:700; color:#fff; }
.geo-brand-tag-quote { font-size:.78rem; color:rgba(255,255,255,.8); font-style:italic; line-height:1.7; border-top:1px solid rgba(255,255,255,.2); padding-top:12px; margin-top:4px; }

/* GEO 6-dimension evaluation board */
.rpt-sixdim-body { padding:34px 36px 36px; }
.rpt-sixdim-header { margin-bottom:34px; }
.rpt-sixdim-meta { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-bottom:18px; }
.rpt-sixdim-id { display:inline-flex; align-items:center; min-height:26px; padding:0 12px; border-radius:999px; background:linear-gradient(135deg,#6ee7b7 0%,#34d399 100%); color:#0f172a; font-size:.68rem; font-weight:900; letter-spacing:.08em; }
.rpt-sixdim-updated { font-size:.76rem; font-weight:600; color:#4b5563; }
.rpt-sixdim-title { margin:0; font-size:.92rem; line-height:1.45; letter-spacing:.01em; color:#111827; font-weight:800; }
.rpt-sixdim-desc { max-width:980px; margin:12px 0 0; font-size:.8rem; line-height:1.75; color:#4b5563; font-weight:500; }
.rpt-sixdim-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.rpt-sixdim-card { background:#fff; border:1px solid #f2f4f7; border-radius:24px; padding:24px 24px 20px; box-shadow:0 18px 40px rgba(15,23,42,.06); display:flex; flex-direction:column; gap:16px; min-height:220px; }
.rpt-sixdim-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.rpt-sixdim-title-wrap { display:flex; align-items:flex-start; gap:14px; min-width:0; }
.rpt-sixdim-icon { width:44px; height:44px; border-radius:14px; background:#f3f4f6; color:#111827; display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.rpt-sixdim-name-block { min-width:0; }
.rpt-sixdim-name-cn { font-size:.84rem; line-height:1.35; color:#111827; font-weight:800; margin-bottom:3px; }
.rpt-sixdim-name-en { font-size:.64rem; line-height:1.25; color:#6b7280; font-weight:700; letter-spacing:.02em; }
.rpt-sixdim-dot { width:10px; height:10px; border-radius:999px; margin-top:4px; flex-shrink:0; background:#d1d5db; }
.rpt-sixdim-card-main { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.rpt-sixdim-score-wrap { display:flex; align-items:flex-end; gap:10px; min-width:0; }
.rpt-sixdim-score { font-size:2rem; line-height:1; letter-spacing:-.04em; color:#111827; font-weight:900; }
.rpt-sixdim-score-max { font-size:.72rem; line-height:1.2; color:#4b5563; font-weight:700; padding-bottom:4px; }
.rpt-sixdim-weight { min-width:84px; text-align:right; display:flex; flex-direction:column; gap:4px; align-items:flex-end; }
.rpt-sixdim-weight-label { font-size:.68rem; line-height:1; color:#4b5563; font-weight:800; }
.rpt-sixdim-weight-value { font-size:.84rem; line-height:1; color:#1f2937; font-weight:800; }
.rpt-sixdim-progress { position:relative; height:7px; border-radius:999px; background:#eceff3; overflow:hidden; }
.rpt-sixdim-progress-fill { height:100%; border-radius:999px; transition:width .7s ease; }
.rpt-sixdim-card-foot { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.rpt-sixdim-level { display:inline-flex; align-items:center; min-height:24px; padding:0 10px; border-radius:999px; font-size:.66rem; font-weight:800; background:#f3f4f6; color:#111827; white-space:nowrap; }
.rpt-sixdim-footnote { flex:1; min-width:0; font-size:.68rem; line-height:1.65; color:#6b7280; text-align:right; }
.rpt-sixdim-card--excellent .rpt-sixdim-dot,
.rpt-sixdim-card--excellent .rpt-sixdim-progress-fill { background:#2563eb; }
.rpt-sixdim-card--excellent .rpt-sixdim-level { background:#dbeafe; color:#1d4ed8; }
.rpt-sixdim-card--good .rpt-sixdim-dot,
.rpt-sixdim-card--good .rpt-sixdim-progress-fill { background:#22c55e; }
.rpt-sixdim-card--good .rpt-sixdim-level { background:#dcfce7; color:#15803d; }
.rpt-sixdim-card--fair .rpt-sixdim-dot,
.rpt-sixdim-card--fair .rpt-sixdim-progress-fill { background:#f59e0b; }
.rpt-sixdim-card--fair .rpt-sixdim-level { background:#fef3c7; color:#b45309; }
.rpt-sixdim-card--poor .rpt-sixdim-dot,
.rpt-sixdim-card--poor .rpt-sixdim-progress-fill { background:#ef4444; }
.rpt-sixdim-card--poor .rpt-sixdim-level { background:#fee2e2; color:#dc2626; }
.rpt-sixdim-card--critical .rpt-sixdim-dot,
.rpt-sixdim-card--critical .rpt-sixdim-progress-fill { background:#dc2626; }
.rpt-sixdim-card--critical .rpt-sixdim-level { background:#fee2e2; color:#b91c1c; }

@media (max-width: 991px) {
    .sd-three-cols { grid-template-columns:1fr; }
    .sd-two-cols   { grid-template-columns:1fr; }
    .rpt-plat-score-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .rpt-insight-card { grid-template-columns:1fr; }
    .rpt-impact-badge { flex-direction:row; gap:8px; height:auto; min-width:auto; width:100%; justify-content:flex-start; border-radius:10px; padding:8px 12px; }
    .geo-radar-wrap   { grid-template-columns:1fr; }
    .rpt-sixdim-body { padding:26px 24px 28px; }
    .rpt-sixdim-title { font-size:.92rem; }
    .rpt-sixdim-desc { font-size:.78rem; }
    .rpt-sixdim-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
    .rpt-sixdim-card { min-height:208px; padding:22px 20px 18px; border-radius:20px; }
    .rpt-sixdim-card-main { align-items:flex-start; flex-direction:column; }
    .rpt-sixdim-weight { min-width:auto; width:100%; align-items:flex-start; text-align:left; }
    .rpt-sixdim-card-foot { flex-direction:column; align-items:flex-start; }
    .rpt-sixdim-footnote { text-align:left; }
}
@media (max-width: 576px) {
    .rpt-plat-score-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sd-metric-grid { grid-template-columns:1fr 1fr; }
    .rpt-plat-score-card { min-height:158px; padding:14px 10px 12px; border-radius:18px; }
    .rpt-plat-score-name { min-height:30px; }
    .rpt-plat-score-num { font-size:1.2rem; }
    .rpt-plat-score-desc { min-height:32px; }
    .rpt-sixdim-body { padding:22px 18px 22px; }
    .rpt-sixdim-meta { gap:12px; }
    .rpt-sixdim-id { font-size:.64rem; letter-spacing:.06em; }
    .rpt-sixdim-updated { font-size:.7rem; }
    .rpt-sixdim-title { font-size:.92rem; }
    .rpt-sixdim-desc { font-size:.74rem; line-height:1.75; }
    .rpt-sixdim-grid { grid-template-columns:1fr; }
    .rpt-sixdim-icon { width:40px; height:40px; font-size:1rem; }
    .rpt-sixdim-name-cn { font-size:.8rem; }
    .rpt-sixdim-score { font-size:1.8rem; }
    .rpt-sixdim-score-max { font-size:.68rem; padding-bottom:4px; }
    .rpt-sixdim-weight-label { font-size:.64rem; }
    .rpt-sixdim-weight-value { font-size:.78rem; }
}
