/* v4.41 · 52 patentes do ranking e guia fixo da comunidade */
#historyModal .report-modal-header,
#rankingModal .report-modal-header { align-items:center; padding:13px 18px; }
#historyModal .report-title-minimal,
#rankingModal .report-title-minimal { display:flex; align-items:center; gap:8px; margin:0; color:var(--signal-soft); font:800 13px/1.2 var(--type-heading); letter-spacing:.08em; }
#historyModal .report-title-minimal .kicker-mark,
#rankingModal .report-title-minimal .kicker-mark { flex:0 0 auto; }

.patent-button,
.profile-patent-button {
    appearance: none;
    border: 0;
    background: transparent;
    cursor: pointer;
}

/* O selo de colaborador é um escudo, não uma pílula de texto. Esta regra fica
   após os estilos compactos para impedir que perfil, comunidade e ranking o
   reduzam novamente ao tamanho das demais insígnias. */
.account-insignia.contributor-insignia {
    width:24px !important;
    min-width:24px !important;
    height:24px !important;
    min-height:0 !important;
    max-width:none !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible;
    line-height:0;
    cursor:pointer;
}

.account-insignia.contributor-insignia:focus-visible {
    outline:2px solid var(--signal-soft);
    outline-offset:2px;
}

.account-insignia.contributor-insignia img {
    width:24px !important;
    height:24px !important;
    border-radius:0 !important;
    object-fit:contain;
}

@media (max-width:680px) {
    .account-insignia.contributor-insignia {
        width:22px !important;
        min-width:22px !important;
        height:22px !important;
        min-height:0 !important;
    }

    .account-insignia.contributor-insignia img {
        width:22px !important;
        height:22px !important;
    }
}

.patent-button,
.profile-patent-button {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    padding: 0;
    border-radius: 10px;
}

.patent-button:focus-visible,
.profile-patent-button:focus-visible {
    outline: 2px solid var(--signal-soft);
    outline-offset: 3px;
}

.patent-insignia {
    --patent-main: #527348;
    --patent-light: #b9d792;
    --patent-mark: #f7e9b1;
    display: inline-grid;
    place-items: center;
    width: 60px;
    height: 60px;
    filter: drop-shadow(0 5px 5px rgb(5 15 30 / 22%));
    transition: transform .18s ease, filter .18s ease;
}

.patent-button:hover .patent-insignia,
.profile-patent-button:hover .patent-insignia { transform: translateY(-2px); filter: drop-shadow(0 7px 7px rgb(5 15 30 / 30%)); }
.patent-insignia.is-compact { width: 46px; height: 46px; }
.patent-insignia svg { display: block; width: 100%; height: 100%; overflow: visible; }
.patent-tile-shadow { fill:rgb(0 0 0 / 40%); }
.patent-tile-frame { fill:#1b252d; stroke:var(--patent-light); stroke-width:1.6; }
.patent-tile-inner { fill:var(--patent-main); stroke:color-mix(in srgb,var(--patent-light) 54%,#111); stroke-width:1.2; }
.patent-tile-bevel { fill:none; stroke:rgb(255 255 255 / 25%); stroke-width:1.1; stroke-linecap:round; }
.patent-tile-gloss { fill:rgb(255 255 255 / 8%); }
.patent-chevron,.patent-rocker,.patent-rank-bar { fill:none; stroke:var(--patent-mark); stroke-linecap:round; stroke-linejoin:round; }
.patent-chevron { stroke-width:3.8; }
.patent-rocker { stroke-width:3.3; }
.patent-rank-bar { stroke-width:4.4; }
.patent-star,.patent-pip,.patent-grade-dot { fill:var(--patent-mark); stroke:color-mix(in srgb,var(--patent-light) 55%,#000); stroke-width:.8; }
.patent-field-grade { filter:drop-shadow(0 1px 1px rgb(0 0 0 / 38%)); }
.patent-major-grade { fill:#e6bb42; stroke:#fff0a1; stroke-width:.8; }
.patent-lieutenant-grade { fill:#dceaf0; stroke:#76a99f; stroke-width:.9; }
.patent-major-progress,.patent-lieutenant-progress { transform-origin:32px 47px; }
.patent-command-marks .patent-star { filter: drop-shadow(0 1px 1px rgb(0 0 0 / 24%)); }
.patent-command-stars .patent-star { filter:drop-shadow(0 1px 2px rgb(0 0 0 / 35%)); }
.patent-subtenente-triangle { fill:rgb(242 202 75 / 16%); stroke:var(--patent-mark); stroke-width:4; stroke-linejoin:round; }
.patent-subtenente-mark .patent-star { filter:drop-shadow(0 1px 2px rgb(0 0 0 / 35%)); }
.patent-hero-marks { filter:drop-shadow(0 0 5px rgb(255 205 68 / 58%)); }
.patent-hero-cluster { transform-origin:32px 32px; animation:patent-hero-glow 2.4s ease-in-out infinite; }
.patent-hero-cluster .patent-star:first-child { fill:#fff0a3; stroke:#e3a72f; stroke-width:1.1; }
.patent-hero-cluster .patent-star:not(:first-child) { fill:#ffd84f; stroke:#fff1aa; stroke-width:.75; }
@keyframes patent-hero-glow {
    0%,100% { filter:drop-shadow(0 0 2px rgb(255 206 61 / 50%)) drop-shadow(0 0 5px rgb(255 191 35 / 28%)); }
    50% { filter:drop-shadow(0 0 4px rgb(255 235 143 / 88%)) drop-shadow(0 0 9px rgb(255 184 25 / 58%)); }
}

.patent-family-trainee { --patent-main:#151c21;--patent-light:#606e76;--patent-mark:#93a1a9; }
.patent-family-enlisted { --patent-main:#11191e;--patent-light:#6d7e87;--patent-mark:#b7c5cb; }
.patent-family-sergeant { --patent-main:#181712;--patent-light:#8b7444;--patent-mark:#d2ad51; }
.patent-level-8,.patent-level-9,.patent-level-10,.patent-level-11 { --patent-main:#1b180d;--patent-light:#b18c36;--patent-mark:#f2ca4b; }
.patent-sergeant-tier-1 .patent-rocker { stroke-width:3.1; }
.patent-family-seniorSergeant { --patent-main:#1b180d;--patent-light:#b18c36;--patent-mark:#f2ca4b; }
.patent-family-juniorOfficer { --patent-main:#07182a;--patent-light:#54738e;--patent-mark:#d0e0e8; }
.patent-family-officer { --patent-main:#071c31;--patent-light:#6688a3;--patent-mark:#edf4f7; }
.patent-family-captain { --patent-main:#071d33;--patent-light:#6c8ba2;--patent-mark:#e8eef1; }
.patent-family-major { --patent-main:#0c2524;--patent-light:#537c72;--patent-mark:#cddbd5; }
.patent-family-lieutenantColonel { --patent-main:#102b29;--patent-light:#5f897b;--patent-mark:#e0ebe5; }
.patent-family-colonel { --patent-main:#17301f;--patent-light:#78905e;--patent-mark:#f2cb45; }
.patent-family-general { --patent-main:#4a1019;--patent-light:#a7553e;--patent-mark:#ffd044; }
.patent-family-hero { --patent-main:#5b0c1a;--patent-light:#dfa83b;--patent-mark:#ffe27a; }
.patent-family-hero .patent-tile-frame { stroke:#f0c24d; }
.patent-family-hero .patent-tile-inner { stroke:#de9e31; }
.patent-family-hero .patent-tile-gloss { fill:rgb(255 224 122 / 14%); }
.patent-level-developer { --patent-main:#130e13;--patent-light:#b12e43;--patent-mark:#ffd24d; }
.patent-level-developer .patent-tile-frame { stroke:#d3a949; }
.patent-level-developer .patent-tile-inner { stroke:#b12e43; }
.patent-code-mark { fill:none; stroke:#e8edf4; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 1px 1px #000); }
.patent-dev-label { fill:#ffd24d; font:800 7px var(--type-ui); letter-spacing:1.2px; }
.patent-level-admin { --patent-main:#102d51;--patent-light:#d0aa4c;--patent-mark:#f3cf6b; }
.patent-level-admin .patent-tile-frame { stroke:#d4ad4d; }
.patent-level-admin .patent-tile-inner { stroke:#a52a3d; }
.patent-admin-book { fill:rgb(243 207 107 / 22%); stroke:#f3cf6b; stroke-width:2.1; stroke-linejoin:round; }
.patent-admin-page { fill:none; stroke:#fff1bd; stroke-width:1.25; stroke-linecap:round; }
.patent-admin-marks .patent-star { fill:#79bcf2; stroke:#e8f6ff; stroke-width:1; filter:drop-shadow(0 0 3px rgb(91 174 242 / 72%)); }
.patent-admin-label { fill:#f3cf6b; font:800 6.5px var(--type-ui); letter-spacing:1px; }

.profile-dashboard .profile-identity { align-items: center; }
.profile-dashboard .profile-patent-button { width: 62px; min-width: 62px; height: 60px; }
.profile-dashboard .profile-patent-button .patent-insignia { width: 58px; height: 58px; }
.ranking-podium { gap:12px; padding-top:20px; }
.ranking-toolbar-actions { justify-content:flex-end; }
.podium-card { position:relative; gap:9px; padding:14px 12px 12px; border-radius:11px; overflow:hidden; }
.podium-emblem-row { display:flex; align-items:center; justify-content:center; gap:7px; min-height:92px; }
.podium-card .podium-position { position:absolute; z-index:3; top:9px; left:9px; min-width:50px; height:27px; margin:0; padding:0 7px; box-sizing:border-box; }
.podium-card .patent-button:not(.papirao-patent-button) { margin: 3px auto 0; }
.podium-card .papirao-patent-button { margin: -4px auto 2px; }
.podium-card .papirao-patent-button .podium-champion-crown { margin: 0; }
.podium-identity { display:grid; justify-items:center; gap:3px; width:100%; min-width:0; }
.podium-name-line { width:100%; min-width:0; text-align:center; }
.podium-name-line > strong { display:block; max-width:100%; white-space:normal; overflow-wrap:anywhere; word-break:normal; line-height:1.2; }
.podium-account-badges { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:2px; width:100%; min-width:0; }
.podium-account-badges:empty { display:none; }
.podium-account-badges .account-insignia { flex:0 1 auto; min-width:0; max-width:100%; margin:0; white-space:nowrap; }
.podium-identity > small { color:var(--text-muted); font:500 9px var(--type-ui); }
.podium-results { display:grid; grid-template-columns:repeat(2,1fr); width:100%; margin-top:2px; overflow:hidden; border:1px solid var(--line); border-radius:8px; }
.podium-results > span { display:grid; gap:0; padding:7px 5px; text-align:center; }
.podium-results > span + span { border-left:1px solid var(--line); }
.podium-results b { color:var(--text-accent); font:800 15px var(--type-heading); }
.podium-results small { color:var(--text-muted); font:700 7px var(--type-ui); letter-spacing:.04em; text-transform:uppercase; }

.ranking-list { display:grid; grid-template-columns:1fr; align-items:stretch; gap:6px; }
.ranking-card { position:relative; display:grid; grid-template-columns:42px 52px minmax(0,1fr) minmax(176px,210px); align-items:center; justify-items:stretch; gap:8px; min-width:0; min-height:66px; padding:7px 10px; border-radius:9px; overflow:hidden; text-align:left; }
.ranking-card-emblem { display:grid; place-items:center; min-height:50px; }
.ranking-card-emblem .patent-insignia { width:48px; height:48px; }
.ranking-card .ranking-position { position:static; z-index:auto; display:grid; place-items:center; width:38px; min-width:38px; height:34px; padding:0; color:var(--text-main); background:color-mix(in srgb,var(--navy-strong) 9%,var(--panel-surface)); border:1px solid color-mix(in srgb,var(--navy-strong) 28%,var(--line)); border-radius:7px; }
.ranking-person { display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); align-items:center; justify-items:start; column-gap:4px; min-width:0; width:100%; overflow:hidden; }
.ranking-name-line { width:auto; max-width:100%; min-width:0; }
.ranking-name-line > strong { display:block; width:100%; max-width:100%; white-space:normal; overflow-wrap:anywhere; word-break:normal; font:750 14px/1.2 var(--type-heading); }
.ranking-account-badges { display:flex; flex-wrap:wrap; align-items:center; gap:2px; min-width:0; max-width:100%; overflow:hidden; }
.ranking-account-badges:empty { display:none; }
.ranking-account-badges .account-insignia { flex:0 0 auto; min-height:16px; max-width:100%; padding:2px 5px; margin:0; font-size:8px; white-space:nowrap; }
.ranking-person > small { grid-column:1 / -1; max-width:100%; overflow:hidden; color:var(--text-muted); font:500 8px var(--type-ui); text-overflow:ellipsis; white-space:nowrap; }
.ranking-card-score { display:grid; grid-template-columns:repeat(2,1fr); align-self:center; width:100%; min-width:0; margin:0; overflow:hidden; border:1px solid var(--line); border-radius:8px; }
.ranking-card-score > span { display:grid; align-content:center; justify-items:center; min-width:0; padding:6px; }
.ranking-card-score > span + span { border-left:1px solid var(--line); }
.ranking-card-score .ranking-primary-score strong { color:var(--text-accent); font:800 19px var(--type-heading); }
.ranking-card-score .ranking-secondary-score strong { color:var(--text-main); font:750 13px var(--type-heading); }
.ranking-card-score small { color:var(--text-muted); font:700 7px var(--type-ui); letter-spacing:.04em; text-transform:uppercase; }
:root:not([data-theme="dark"]) .ranking-card .ranking-position,
:root[data-theme="light"] .ranking-card .ranking-position { color:#102f50; background:#e5edf4; border-color:#9fb4c7; box-shadow:0 1px 2px rgb(16 47 80 / 10%); }

.patent-overlay { z-index: 520; padding: 18px; }
.patent-modal-card {
    position: relative;
    width: min(430px, calc(100vw - 36px));
    max-height: calc(100dvh - 36px);
    padding: 26px;
    overflow-y: auto;
    text-align: center;
    border-radius: 16px;
}
.patent-modal-close {
    position:absolute;
    top:10px;
    right:10px;
    width:40px;
    height:40px;
    color:#fff;
    background:var(--signal);
    border:2px solid #fff;
    box-shadow:0 4px 12px rgb(7 20 42 / 28%);
    font-weight:700;
    line-height:1;
}
.patent-modal-close:hover { color:#fff; background:var(--signal-soft); border-color:#fff; }
.patent-modal-close:focus-visible { outline:3px solid color-mix(in srgb,var(--signal) 35%,#fff); outline-offset:2px; }
:root:not([data-theme="dark"]) .patent-modal-close,
:root[data-theme="light"] .patent-modal-close { color:#fff; background:#b52135; border-color:#fff; box-shadow:0 3px 0 #7f1525,0 6px 16px rgb(7 20 42 / 25%); }
.patent-modal-icon { display: grid; place-items: center; min-height: 88px; margin-bottom: 4px; }
.patent-modal-icon .patent-insignia { width: 104px; height: 104px; filter: drop-shadow(0 8px 10px rgb(4 18 42 / 25%)); }
.contributor-modal-emblem { display:grid; place-items:center; width:88px; height:88px; }
.contributor-modal-emblem img { display:block; width:88px; height:88px; object-fit:contain; filter:drop-shadow(0 7px 8px rgb(4 18 42 / 24%)); }
.patent-modal-card.is-contributor { max-width:390px; }
.patent-modal-card.is-contributor .patent-modal-description { max-width:320px; margin-bottom:18px; }
.patent-modal-kicker { justify-content: center; margin: 2px 0 7px; }
.patent-modal-card h2 { margin: 0; color: var(--text-accent); font: 800 25px/1.15 var(--type-heading); }
.patent-modal-description { min-height: 38px; margin: 9px auto 15px; color: var(--text-muted); font-size: 13px; line-height: 1.45; }
.patent-modal-stats { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8px; margin-bottom: 13px; }
.patent-modal-stats span { display: grid; gap: 4px; padding: 10px; background: var(--canvas-soft); border: 1px solid var(--line); border-radius: 9px; }
.patent-modal-stats small { color: var(--text-muted); font: 700 8px var(--type-ui); letter-spacing: .07em; text-transform: uppercase; }
.patent-modal-stats strong { color: var(--text-main); font: 750 13px var(--type-heading); }
.patent-progress { height: 8px; overflow: hidden; background: var(--canvas-soft); border: 1px solid var(--line); border-radius: 999px; }
.patent-progress i { display: block; width: 0; height: 100%; background: linear-gradient(90deg,#315f9b,#d5a83d); border-radius: inherit; transition: width .55s ease; }
.patent-modal-next { margin: 7px 0 16px; color: var(--text-muted); font: 700 9px var(--type-ui); }
.patent-continue { width: 100%; }
.patent-modal-crown { display: grid; place-items: center; width: 132px; height: 104px; }
.patent-modal-crown img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 0 12px rgb(232 182 44 / 48%)); }
.patent-modal-card.is-achievement { animation: patent-arrival .48s cubic-bezier(.2,.9,.2,1) both; }
.patent-modal-card.is-achievement::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,#1e4778,#e1b64d,#9d263e); }
@keyframes patent-arrival { from { opacity:0; transform:translateY(12px) scale(.96); } to { opacity:1; transform:none; } }

.system-topic-card { border-left: 4px solid #d1a53d; background: linear-gradient(110deg,color-mix(in srgb,#d1a53d 9%,var(--panel-surface)),var(--panel-surface)); }
.patent-guide-table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
.patent-guide-table { width: 100%; min-width: 720px; border-collapse: collapse; text-align: left; }
.patent-guide-table th { padding: 10px 12px; color: var(--text-muted); background: var(--canvas-soft); font: 700 9px var(--type-ui); letter-spacing: .06em; text-transform: uppercase; }
.patent-guide-table td { padding: 9px 12px; color: var(--text-muted); border-top: 1px solid var(--line); font-size: 11px; line-height: 1.4; vertical-align: middle; }
.patent-guide-table td:first-child { width: 58px; text-align: center; }
.patent-guide-table td:nth-child(2) { min-width: 180px; }
.patent-guide-table td:nth-child(3) { width: 88px; color: var(--text-main); font-weight: 700; white-space: nowrap; }
.patent-guide-table td strong,.patent-guide-table td small { display: block; }
.patent-guide-table td strong { color: var(--text-main); font-family: var(--type-heading); }
.patent-guide-table td small { margin-top: 2px; color: var(--signal); font: 700 8px var(--type-ui); text-transform: uppercase; }
.patent-guide-special { background:color-mix(in srgb,#b52135 8%,var(--panel-surface)); }
.patent-guide-special td { border-top-color:color-mix(in srgb,#d0a94d 45%,var(--line)); }
.patent-guide-admin { background:color-mix(in srgb,#245f9c 10%,var(--panel-surface)); }
.patent-guide-admin td { border-top-color:color-mix(in srgb,#5a9dd6 48%,var(--line)); }
.patent-guide-papirao { background:color-mix(in srgb,#d0a43d 12%,var(--panel-surface)); }
.patent-guide-papirao td { border-top-color:color-mix(in srgb,#d0a94d 65%,var(--line)); }
.patent-guide-crown { display:inline-grid; place-items:center; width:48px; height:48px; }
.patent-guide-crown img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 0 6px rgb(224 176 53 / 35%)); }

@media (max-width: 720px) {
    .profile-dashboard .profile-patent-button { width: 50px; min-width: 50px; height: 49px; }
    .profile-dashboard .profile-patent-button .patent-insignia { width: 48px; height: 48px; }
    .ranking-podium { grid-template-columns:1fr !important; }
    .podium-1 { transform:none; }
    .podium-card { grid-template-columns:86px minmax(0,1fr) 126px; align-items:center; text-align:left; }
    .podium-emblem-row { min-height:84px; padding-top:25px; box-sizing:border-box; }
    .podium-emblem-row .podium-champion-crown { width:84px; height:70px; }
    .podium-identity { justify-items:start; }
    .podium-name-line { text-align:left; }
    .podium-account-badges { justify-content:flex-start; }
    .podium-results { margin:0; }
    .ranking-card-score { min-width:0; }
    .ranking-card-score > span { min-width:0; padding-inline:6px; }
    .patent-modal-card { padding: 23px 17px 18px; }
    .patent-guide-table-wrap { overflow: visible; border: 0; }
    .patent-guide-table,.patent-guide-table tbody { display: grid; min-width: 0; gap: 7px; }
    .patent-guide-table thead { display: none; }
    .patent-guide-table tr { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 3px 9px; padding: 9px; background: var(--canvas-soft); border: 1px solid var(--line); border-radius: 9px; }
    .patent-guide-table td { padding: 0; border: 0; }
    .patent-guide-table td:first-child { grid-row: 1 / 3; width: 50px; }
    .patent-guide-table td:nth-child(2) { min-width: 0; }
    .patent-guide-table td:nth-child(3) { width: auto; font-size: 10px; }
    .patent-guide-table td:nth-child(4) { grid-column: 2 / 4; font-size: 10px; }
}

@media (max-width: 520px) {
    .podium-card { grid-template-columns:76px minmax(0,1fr); }
    .podium-results { grid-column:1 / -1; }
    .ranking-list { gap:5px; }
    .ranking-card { grid-template-columns:30px 38px minmax(88px,1fr) minmax(82px,92px); gap:5px; min-height:60px; padding:5px 6px; }
    .ranking-card-emblem { min-height:42px; }
    .ranking-card-emblem .patent-insignia { width:38px; height:38px; }
    .ranking-card .ranking-position { width:28px; min-width:28px; height:28px; font-size:9px; }
    .ranking-person { grid-template-columns:minmax(0,1fr); align-content:center; gap:1px; overflow:hidden; }
    .ranking-name-line > strong { font-size:11px; }
    .ranking-account-badges { width:100%; flex-wrap:wrap; gap:1px; overflow:hidden; }
    .ranking-account-badges .account-insignia { flex:0 0 auto; min-width:0; min-height:14px; max-width:100%; padding:1px 4px; font-size:6.5px; white-space:nowrap; }
    .ranking-person > small { grid-column:1; font-size:7px; line-height:1.25; }
    .ranking-card-score { position:relative; z-index:1; background:var(--panel-surface); }
    .ranking-card-score > span { min-width:0; padding:4px 2px; }
    .ranking-card-score .ranking-primary-score strong { font-size:14px; }
    .ranking-card-score .ranking-secondary-score strong { font-size:10px; }
    .ranking-card-score small { font-size:6px; letter-spacing:0; }
}

@media (prefers-reduced-motion: reduce) {
    .patent-modal-card.is-achievement { animation: none; }
    .patent-progress i,.patent-insignia { transition: none; }
    .patent-hero-cluster { animation:none; }
}
