/* Build 0155 — Screenshots runtime modernization. */
.tg-screenshots-section,
.tg-screenshot-detail-section {
    background: #f8f8f6;
}

.tg-screenshot-layout,
.tg-screenshot-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1.5rem;
    align-items: start;
}

.tg-screenshot-main,
.tg-screenshot-detail-main,
.tg-screenshot-sidebar,
.tg-screenshot-detail-sidebar {
    min-width: 0;
}

.tg-screenshot-hero-actions {
    margin-top: .7rem;
}

.tg-screenshot-hero-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: 650px;
    margin-top: 1rem;
    overflow: hidden;
    border: 1px solid rgba(45, 76, 101, .2);
    border-radius: .7rem;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 8px 22px rgba(26, 38, 48, .05);
}

.tg-screenshot-hero-search input {
    min-width: 0;
    height: 42px;
    padding: 0 .9rem;
    border: 0;
    outline: 0;
    background: transparent;
    color: #24323d;
    font: inherit;
}

.tg-screenshot-hero-search input:focus {
    box-shadow: inset 0 0 0 2px rgba(61, 126, 173, .24);
}

.tg-screenshot-hero-search button {
    min-height: 42px;
    padding: 0 1rem;
    border: 0;
    background: #286d9c;
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    cursor: pointer;
}

.tg-screenshot-heading,
.tg-screenshot-description-heading,
.tg-screenshot-discussion-heading {
    margin-bottom: 1rem;
}

.tg-screenshot-heading {
    align-items: end;
}

.tg-screenshot-heading-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem .8rem;
    color: #73818b;
    font-size: .74rem;
}

.tg-screenshot-heading-meta a {
    color: #2d6289 !important;
    font-weight: 750;
    text-decoration: none;
}

.tg-screenshot-status {
    display: none;
    margin: 0 0 1rem;
    padding: .75rem .9rem;
    border: 1px solid #cbdde9;
    border-left: 3px solid var(--tg007-blue);
    border-radius: .6rem;
    background: #eef5f9;
    color: #24465e;
    font-size: .82rem;
    font-weight: 700;
}

.tg-screenshot-status.is-visible {
    display: block;
}

.tg-screenshot-status.is-error {
    border-color: #e3c4c4;
    border-left-color: #a34a4a;
    background: #fff2f2;
    color: #7d3434;
}

.tg-screenshot-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tg-screenshot-card {
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--tg007-line, #dbe2e7);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(26, 36, 44, .045);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.tg-screenshot-card:hover {
    border-color: #c7d3dc;
    box-shadow: 0 14px 32px rgba(28, 39, 48, .08);
    transform: translateY(-2px);
}

/* Build 0155 Completion Fix 1 — preserve Screenshot preview fidelity on high-density displays. */

.tg-screenshot-card-image {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-bottom: 1px solid #dce4e9;
    background: #11191f;
    text-decoration: none;
}

.tg-screenshot-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    image-rendering: auto;
    transition: opacity .18s ease;
}

.tg-screenshot-card-image:hover img,
.tg-screenshot-card-image:focus-visible img {
    opacity: .985;
}

.tg-screenshot-card-image.is-missing {
    background:
        radial-gradient(circle at 18% 20%, rgba(72, 128, 168, .18), transparent 30%),
        linear-gradient(145deg, #16222b, #0f171d);
}

.tg-screenshot-missing,
.tg-screenshot-image-fallback {
    display: grid;
    place-items: center;
    gap: .45rem;
    width: 100%;
    height: 100%;
    padding: 1rem;
    color: #dbe6ed;
    text-align: center;
}

.tg-screenshot-missing[hidden],
.tg-screenshot-image-fallback[hidden] {
    display: none;
}

.tg-screenshot-missing strong,
.tg-screenshot-image-fallback {
    font-size: .78rem;
    font-weight: 800;
}

.tg-screenshot-missing-icon,
.tg-screenshot-archive-fallback-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 38px;
    border: 1px solid rgba(175, 205, 224, .42);
    border-radius: .6rem;
    color: #87b0cc;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.tg-screenshot-count {
    position: absolute;
    right: .7rem;
    bottom: .7rem;
    padding: .32rem .5rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: .45rem;
    background: rgba(10, 17, 22, .88);
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
}

.tg-screenshot-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: .95rem 1rem .9rem;
}

.tg-screenshot-card-kicker {
    margin-bottom: .34rem;
    color: #5d819b;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.tg-screenshot-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .7rem;
    margin-bottom: .55rem;
    color: #7b8790;
    font-size: .72rem;
}

.tg-screenshot-meta a {
    color: #315d7d !important;
    font-weight: 800;
    text-decoration: none;
}

.tg-screenshot-card-body > p {
    margin: 0 0 .8rem;
    color: #566874;
    font-size: .82rem;
    line-height: 1.52;
}

.tg-screenshot-card-footer {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .7rem;
    align-items: center;
    margin-top: auto;
    padding-top: .72rem;
    border-top: 1px solid #e3e8ec;
    color: #7a8791;
    font-size: .68rem;
}

.tg-screenshot-card-footer strong {
    color: #465864;
}

.tg-screenshot-card-actions {
    display: flex;
    gap: .65rem;
    margin-left: auto;
}

.tg-screenshot-card-actions a,
.tg-link-button {
    appearance: none;
    padding: 0;
    border: 0;
    background: none;
    color: #2f6288 !important;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.tg-screenshot-card-actions a:hover,
.tg-screenshot-card-actions a:focus-visible,
.tg-link-button:hover,
.tg-link-button:focus-visible {
    color: #183e5a !important;
}

.tg-danger-link,
.tg-danger-link:hover,
.tg-danger-link:focus-visible {
    color: #934545 !important;
}

.tg-screenshot-empty,
.tg-screenshot-comment-state {
    padding: 1.25rem;
    border: 1px solid #dbe2e7;
    border-radius: .85rem;
    background: #fff;
    color: #65747f;
}

.tg-screenshot-empty.is-error {
    border-color: #e3c8c8;
    background: #fff8f8;
}

.tg-screenshot-empty h3 {
    margin: 0 0 .3rem;
    color: #26343e;
    font: 750 1.1rem/1.2 "Space Grotesk", sans-serif;
}

.tg-screenshot-empty p,
.tg-screenshot-comment-state {
    margin: 0;
    font-size: .82rem;
    line-height: 1.55;
}

.tg-screenshot-sidebar,
.tg-screenshot-detail-sidebar {
    position: sticky;
    top: 1rem;
    display: grid;
    gap: .8rem;
}

.tg-screenshot-submit,
.tg-screenshot-side-note,
.tg-screenshot-latest-comments,
.tg-screenshot-facts,
.tg-screenshot-actions-panel {
    overflow: hidden;
    padding: 1rem;
    border: 1px solid rgba(36, 64, 86, .16);
    border-left: 3px solid #6e8aa0;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 7px 20px rgba(29, 40, 48, .035);
}

.tg-screenshot-submit h2,
.tg-screenshot-side-note h2,
.tg-screenshot-latest-comments h2,
.tg-screenshot-facts h2,
.tg-screenshot-actions-panel h2 {
    margin: .18rem 0 .55rem;
    color: #243a4c;
    font: 750 1rem/1.18 "Space Grotesk", sans-serif;
}

.tg-screenshot-submit p,
.tg-screenshot-side-note p,
.tg-screenshot-latest-comments > p,
.tg-screenshot-actions-panel p {
    margin: 0;
    color: #667681;
    font-size: .78rem;
    line-height: 1.5;
}

.tg-screenshot-submit form {
    display: grid;
    gap: .5rem;
    margin-top: .9rem;
}

.tg-screenshot-submit label:not(.tg-screenshot-file-picker),
.tg-screenshot-comment-form label {
    margin-top: .25rem;
    color: #2b3e4d;
    font-size: .72rem;
    font-weight: 800;
}

.tg-screenshot-file-picker {
    display: grid;
    gap: .2rem;
    padding: .72rem .78rem;
    border: 1px dashed #aebfcb;
    border-radius: .65rem;
    background: #f7fafb;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.tg-screenshot-file-picker:hover,
.tg-screenshot-file-picker:focus-within {
    border-color: #638ba7;
    background: #f0f6f9;
}

.tg-screenshot-file-picker strong {
    color: #315d7d;
    font-size: .75rem;
}

.tg-screenshot-file-picker span {
    color: #7b8992;
    font-size: .66rem;
}

.tg-screenshot-file-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
}

.tg-screenshot-submit textarea,
.tg-screenshot-comment-form textarea {
    width: 100%;
    padding: .7rem .75rem;
    border: 1px solid #cbd5dc;
    border-radius: .5rem;
    background: #fff;
    color: #26343e;
    font: inherit;
    font-size: .79rem;
    line-height: 1.5;
    resize: vertical;
}

.tg-screenshot-submit textarea:focus,
.tg-screenshot-comment-form textarea:focus {
    outline: 3px solid rgba(61, 126, 173, .17);
    border-color: #6d99b7;
}

.tg-screenshot-submit small {
    color: #7b8992;
    font-size: .67rem;
}

.tg-screenshot-submit small.is-error {
    color: #963f3f;
    font-weight: 800;
}

.tg-screenshot-form-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    margin-top: .15rem;
    color: #7a8790;
    font-size: .66rem;
}

.tg-screenshot-rules {
    margin: .85rem 0 0;
    padding: .78rem 0 0 1.05rem;
    border-top: 1px solid #e3e8eb;
    color: #6b7a84;
    font-size: .67rem;
    line-height: 1.5;
}

.tg-screenshot-side-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .7rem;
}

.tg-screenshot-comment-links {
    display: grid;
    margin-top: .3rem;
}

.tg-screenshot-comment-links > a {
    display: grid;
    gap: .14rem;
    padding: .62rem 0;
    border-top: 1px solid #e5e9ec;
    color: inherit;
    text-decoration: none;
}

.tg-screenshot-comment-links > a:first-child {
    border-top: 0;
}

.tg-screenshot-comment-links strong {
    color: #315f80;
    font-size: .7rem;
}

.tg-screenshot-comment-links span {
    color: #566773;
    font-size: .69rem;
    line-height: 1.42;
}

.tg-screenshot-comment-links small {
    color: #8a959d;
    font-size: .62rem;
}

/* Detail */
.tg-screenshot-viewer {
    overflow: hidden;
    border: 1px solid #cdd8df;
    border-radius: 1rem;
    background: #121b21;
    box-shadow: 0 13px 34px rgba(18, 27, 33, .1);
}

.tg-screenshot-main-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 410px;
    max-height: 720px;
    padding: 1rem;
    background:
        linear-gradient(45deg, rgba(255,255,255,.025) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.025) 75%),
        linear-gradient(45deg, rgba(255,255,255,.025) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.025) 75%),
        #121b21;
    background-size: 28px 28px;
    background-position: 0 0, 14px 14px;
    text-decoration: none;
}

.tg-screenshot-main-image.is-missing {
    background:
        radial-gradient(circle at 25% 20%, rgba(65, 119, 157, .18), transparent 32%),
        #121b21;
}

.tg-screenshot-main-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 680px;
    object-fit: contain;
    border-radius: .45rem;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .28);
}

.tg-screenshot-archive-fallback {
    display: grid;
    place-items: center;
    gap: .48rem;
    max-width: 430px;
    color: #dce6ed;
    text-align: center;
}

.tg-screenshot-archive-fallback strong {
    font: 750 1rem/1.2 "Space Grotesk", sans-serif;
}

.tg-screenshot-archive-fallback small {
    color: #93a6b4;
    font-size: .73rem;
    line-height: 1.5;
}

.tg-screenshot-thumbnails {
    display: flex;
    gap: .48rem;
    overflow-x: auto;
    padding: .62rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
    background: #0d151a;
}

.tg-screenshot-thumbnail {
    flex: 0 0 88px;
    height: 62px;
    overflow: hidden;
    padding: 2px;
    border: 2px solid transparent;
    border-radius: .45rem;
    background: #273640;
    cursor: pointer;
    opacity: .72;
}

.tg-screenshot-thumbnail.is-active,
.tg-screenshot-thumbnail:hover,
.tg-screenshot-thumbnail:focus-visible {
    border-color: #73a5c5;
    opacity: 1;
}

.tg-screenshot-thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: .25rem;
}

.tg-screenshot-thumbnail.is-missing {
    display: grid;
    place-items: center;
    border-color: #3b4b56;
    color: #8fa0ab;
    font-size: .62rem;
    font-weight: 800;
    cursor: default;
    opacity: .7;
}

.tg-screenshot-archive-notice {
    margin-top: .7rem;
    padding: .7rem .8rem;
    border: 1px solid #dce4e9;
    border-radius: .65rem;
    background: #f6f8f9;
    color: #70808b;
    font-size: .72rem;
}

.tg-screenshot-description,
.tg-screenshot-discussion {
    margin-top: 1.4rem;
}

.tg-screenshot-description-copy,
.tg-screenshot-comment-form {
    padding: 1rem 1.05rem;
    border: 1px solid #dbe2e7;
    border-radius: .85rem;
    background: #fff;
    box-shadow: 0 7px 20px rgba(29, 40, 48, .035);
}

.tg-screenshot-description-copy {
    border-left: 3px solid #789ab2;
    color: #3b4d59;
    font-size: .84rem;
    line-height: 1.68;
    overflow-wrap: anywhere;
}

.tg-screenshot-description-copy a,
.tg-screenshot-comment-body a {
    color: #2b628a !important;
}

.tg-screenshot-prev-next {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 1rem 0 0;
    padding: .8rem 0;
    border-top: 1px solid #dfe5e9;
    border-bottom: 1px solid #dfe5e9;
}

.tg-screenshot-prev-next a {
    color: #326487 !important;
    font-size: .75rem;
    font-weight: 800;
    text-decoration: none;
}

.tg-screenshot-prev-next a:last-child {
    text-align: right;
}

.tg-screenshot-facts dl {
    display: grid;
    margin: .7rem 0 .85rem;
}

.tg-screenshot-facts dl > div {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: .55rem;
    padding: .5rem 0;
    border-top: 1px solid #e5e9ec;
}

.tg-screenshot-facts dt {
    color: #7c8992;
    font-size: .67rem;
    font-weight: 700;
}

.tg-screenshot-facts dd {
    min-width: 0;
    margin: 0;
    color: #344753;
    font-size: .68rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.tg-screenshot-facts dd a {
    color: #315f80 !important;
    text-decoration: none;
}

.tg-screenshot-full-image,
.tg-screenshot-actions-panel .tg-btn {
    width: 100%;
    justify-content: center;
}

.tg-screenshot-full-image-note {
    display: block;
    padding: .58rem .65rem;
    border-radius: .5rem;
    background: #f4f6f7;
    color: #78858e;
    font-size: .67rem;
    text-align: center;
}

.tg-screenshot-actions-panel {
    display: grid;
    gap: .45rem;
}

.tg-screenshot-actions-panel .tg-kicker,
.tg-screenshot-actions-panel h2 {
    margin-bottom: 0;
}

.tg-btn-danger {
    border-color: #914747 !important;
    background: #914747 !important;
    color: #fff !important;
}

.tg-btn-danger:hover,
.tg-btn-danger:focus-visible {
    border-color: #7e3737 !important;
    background: #7e3737 !important;
}

.tg-screenshot-comment-form {
    display: grid;
    gap: .5rem;
    margin: 0 0 .75rem;
}

.tg-screenshot-comments {
    display: grid;
    gap: .55rem;
}

.tg-screenshot-comment {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .7rem;
    padding: .8rem .85rem;
    border: 1px solid #e0e6ea;
    border-radius: .75rem;
    background: #fff;
}

.tg-screenshot-comment.is-new {
    border-color: #bfd3e1;
    background: #fbfdfe;
}

.tg-screenshot-comment-avatar {
    width: 42px;
    height: 42px;
}

.tg-screenshot-comment-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 1px solid #d3dde3;
    border-radius: 50%;
    background: #fff;
}

.tg-screenshot-comment header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .22rem .55rem;
    margin-bottom: .3rem;
}

.tg-screenshot-comment header strong a {
    color: #315e7e !important;
    font-size: .72rem;
    text-decoration: none;
}

.tg-screenshot-comment header span {
    color: #89949c;
    font-size: .64rem;
}

.tg-screenshot-comment header button {
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: #914545;
    font-size: .65rem;
    font-weight: 800;
    cursor: pointer;
}

.tg-screenshot-comment-body {
    color: #445660;
    font-size: .79rem;
    line-height: 1.58;
    overflow-wrap: anywhere;
}

.tg-screenshot-delete-dialog {
    width: min(92vw, 480px);
    padding: 0;
    border: 0;
    border-radius: 1rem;
    background: transparent;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.tg-screenshot-delete-dialog::backdrop {
    background: rgba(11, 17, 22, .58);
    backdrop-filter: blur(2px);
}

.tg-screenshot-delete-dialog form {
    padding: 1.3rem;
    border: 1px solid #d9e0e5;
    border-radius: 1rem;
    background: #fff;
}

.tg-screenshot-delete-dialog h2 {
    margin: .2rem 0 .5rem;
    color: #26343e;
    font: 750 1.25rem/1.15 "Space Grotesk", sans-serif;
}

.tg-screenshot-delete-dialog p {
    margin: 0;
    color: #667681;
    font-size: .82rem;
    line-height: 1.55;
}

.tg-screenshot-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: .55rem;
    margin-top: 1rem;
}

@media (max-width: 1020px) {
    .tg-screenshot-layout,
    .tg-screenshot-detail-layout {
        grid-template-columns: 1fr;
    }

    .tg-screenshot-sidebar,
    .tg-screenshot-detail-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tg-screenshot-submit,
    .tg-screenshot-latest-comments,
    .tg-screenshot-facts {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .tg-screenshot-hero-search,
    .tg-screenshot-grid,
    .tg-screenshot-sidebar,
    .tg-screenshot-detail-sidebar {
        grid-template-columns: 1fr;
    }

    .tg-screenshot-hero-search {
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
        gap: .45rem;
    }

    .tg-screenshot-hero-search input,
    .tg-screenshot-hero-search button {
        border: 1px solid rgba(45, 76, 101, .2);
        border-radius: .6rem;
    }

    .tg-screenshot-hero-search input {
        background: #fff;
    }

    .tg-screenshot-submit,
    .tg-screenshot-latest-comments,
    .tg-screenshot-facts {
        grid-column: auto;
    }

    .tg-screenshot-main-image {
        min-height: 260px;
        padding: .55rem;
    }

    .tg-screenshot-main-image img {
        max-height: 520px;
    }

    .tg-screenshot-heading,
    .tg-screenshot-discussion-heading {
        align-items: stretch;
    }

    .tg-screenshot-heading-meta {
        justify-content: flex-start;
    }

    .tg-screenshot-form-row {
        flex-direction: column;
        align-items: stretch;
    }

    .tg-screenshot-form-row .tg-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 520px) {
    .tg-screenshot-card-body,
    .tg-screenshot-submit,
    .tg-screenshot-side-note,
    .tg-screenshot-latest-comments,
    .tg-screenshot-facts,
    .tg-screenshot-actions-panel {
        padding: .85rem;
    }

    .tg-screenshot-card-actions {
        width: 100%;
        margin-left: 0;
        padding-top: .2rem;
    }

    .tg-screenshot-prev-next {
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .tg-screenshot-prev-next a:last-child {
        text-align: left;
    }

    .tg-screenshot-facts dl > div {
        grid-template-columns: 74px minmax(0, 1fr);
    }

    .tg-screenshot-comment {
        grid-template-columns: 36px minmax(0, 1fr);
        padding: .72rem;
    }

    .tg-screenshot-comment-avatar {
        width: 36px;
        height: 36px;
    }

    .tg-screenshot-dialog-actions {
        flex-direction: column-reverse;
    }

    .tg-screenshot-dialog-actions .tg-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tg-screenshot-card,
    .tg-screenshot-card-image img,
    .tg-screenshot-file-picker {
        transition: none;
    }
}
