/* Ehopto entity card language — the same identity, everywhere.
   Image-led cards use a 16:9 photograph above concise, centred text.
   List / interactive results keep their practical horizontal layout, but
   share the same stroke, radius, colour and emphasis. */
:root{
    --e-entity-card-bg:var(--e-card,#121a30);
    --e-entity-card-ink:var(--e-ink,#f0ece9);
    --e-entity-card-muted:var(--e-ink-muted,#a39d97);
    --e-entity-card-line:var(--e-line,#223452);
    --e-entity-card-link:var(--e-accent-pale,#9fc1ff);
    --e-entity-card-radius:13px;
}
.e-entity-card{
    box-sizing:border-box;
    position:relative;
    min-width:0;
    border:1px solid var(--e-entity-card-line);
    border-radius:var(--e-entity-card-radius);
    background:var(--e-entity-card-bg);
    color:var(--e-entity-card-ink);
    text-decoration:none;
    overflow:hidden;
    transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.e-entity-card:is(:hover,:focus-visible,:focus-within){
    border-color:color-mix(in srgb,var(--e-accent,#4f8cff) 67%,var(--e-entity-card-line));
}
.e-entity-card:focus-visible{
    outline:2px solid var(--e-entity-card-link);
    outline-offset:2px;
}
.e-entity-card-media{min-width:0;background:#15233c;overflow:hidden}
.e-entity-card-media img{object-position:center}
.e-entity-card-title{
    min-width:0;color:var(--e-entity-card-ink);
    font-weight:850;line-height:1.3;overflow-wrap:anywhere;
}
.e-entity-card-meta{color:var(--e-entity-card-muted);font-size:11px;line-height:1.4}
.e-entity-card-link{color:var(--e-entity-card-link);font-weight:800;text-underline-offset:3px}
.e-entity-card--stacked{
    display:flex;flex-direction:column;align-items:stretch;
}
.e-entity-card--stacked>.e-entity-card-media{
    display:block;box-sizing:border-box;position:relative;
    width:100%;flex:0 0 auto;aspect-ratio:16/9;
    border-radius:0;overflow:hidden;
}
.e-entity-card--stacked>.e-entity-card-copy{
    box-sizing:border-box;
    display:flex;flex-direction:column;justify-content:flex-end;
    align-items:center;text-align:center;flex:1 1 auto;
    min-width:0;padding:11px 10px 12px;
}
.e-entity-card--stacked>.e-entity-card-copy .e-entity-card-link{margin-top:auto}
.e-entity-card--row{
    display:flex;align-items:center;min-width:0;gap:10px;
    padding:11px 13px;border-radius:var(--e-entity-card-radius);
}
.e-entity-card--row .e-entity-card-media{border-radius:9px;flex-shrink:0}
.e-entity-card--row .e-entity-card-media img{object-fit:contain}
.e-entity-card--tool{border-radius:var(--e-entity-card-radius)}
@media(prefers-reduced-motion:reduce){
    .e-entity-card{transition:none}
}

/* Adapters: these are actual entity/result cards, not forms, map controls or
   feed text. Keep distinct functional layouts where required. */
.list .row.e-entity-card--row{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
    padding:12px 14px!important;
    margin-bottom:8px!important;
}
.list .row.e-entity-card--row .face{
    background:#15233c;border-radius:9px;
}
.find-google-card.e-entity-card{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    border-left:3px solid var(--e-accent,#4f8cff)!important;
    background:var(--e-entity-card-bg)!important;
}
.result a.hit{
    background:var(--e-entity-card-bg)!important;
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
}
.result a.hit.e-entity-card--row img{border-radius:9px!important;object-fit:contain!important}
.inside-row.e-entity-card--row{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
.area-place-result.e-entity-card--row{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
.mk-card.e-entity-card--tool{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
a.hm-related-card.e-entity-card,
a.hm-related-card.e-entity-card.is-person{
    border-radius:var(--e-entity-card-radius)!important;
    border-color:var(--e-entity-card-line)!important;
}
a.hm-related-card.e-entity-card .hm-related-name{color:var(--e-entity-card-ink)}
a.hm-related-card.e-entity-card .hm-related-view{color:var(--e-entity-card-link)}
a.hm-related-card.e-entity-card:focus-visible{
    outline:2px solid var(--e-entity-card-link)!important;outline-offset:2px;
}

/* Dynamic Scan and map-discovery choices use the same compact card stroke,
   even when their markup is supplied asynchronously by their own renderer. */
.result a.hit img{
    border-radius:9px!important;
    object-fit:contain!important;
}
.area-place-result{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
.world-hop-results .place-choice,
.world-place-lookup-results .place-choice,
.place-picker-results .place-choice{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
.placecard .pc-menu.ms-cards .pc-row{
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
.entity-card:is(a,article,div){
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
/* Phase 2 — historic Hub cards and notification discovery results.
   Structural controls stay functional; only card language is shared. */
.e-entity-card-collection > .card{
    box-sizing:border-box;
    min-width:0;
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
    color:var(--e-entity-card-ink);
    overflow-wrap:anywhere;
}
.e-entity-card-collection > a.card:hover,
.e-entity-card-collection > a.card:focus-visible{
    border-color:var(--e-accent,#4f8cff)!important;
    color:var(--e-entity-card-ink);
}
.e-entity-card-collection > a.card:focus-visible{
    outline:2px solid var(--e-entity-card-link);
    outline-offset:2px;
}
.e-entity-card-collection > .card .name{
    font-weight:800;
    color:var(--e-entity-card-ink);
}
.e-entity-card-collection > .card .etype{
    color:var(--e-entity-card-muted);
}
.grouping-card.e-entity-card,
.topic-branch,
.web-evidence-card{
    border-radius:var(--e-entity-card-radius)!important;
    border-color:var(--e-entity-card-line)!important;
    background:var(--e-entity-card-bg)!important;
}
.grouping-card.e-entity-card:is(:hover,:focus-visible){
    border-color:var(--e-accent,#4f8cff)!important;
}
.return-result.e-entity-card--row{
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr) auto!important;
    gap:12px;
    align-items:center;
    min-width:0;
    padding:10px!important;
    border:1px solid var(--e-entity-card-line)!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--e-entity-card-bg)!important;
}
.return-result.e-entity-card--row .return-result-thumb{
    width:56px;height:50px;
    border-radius:9px;
    overflow:hidden;
}
.return-result.e-entity-card--row .return-result-copy{min-width:0}
.return-result.e-entity-card--row .return-result-title{
    color:var(--e-entity-card-ink);
}
.return-result.e-entity-card--row .return-result-meta{
    color:var(--e-entity-card-muted);
}
@media(max-width:520px){
    .return-result.e-entity-card--row{
        grid-template-columns:50px minmax(0,1fr)!important;
        gap:9px!important;
    }
    .return-result.e-entity-card--row .return-result-thumb{width:50px;height:50px}
    .return-result.e-entity-card--row .return-source{grid-column:2}
}
/* Contributions are visual entity suggestions too: the same framed,
   equal-height media-over-identity layout as World instead of bare tiles. */
.hub-market .hm-contribution-grid{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:10px!important;
    min-width:0;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity;
    padding:2px 2px 10px!important;
    scrollbar-width:thin;
}
.hub-market .hm-contribution-card.e-entity-card--stacked{
    display:flex!important;
    flex-direction:column!important;
    flex:0 0 180px!important;
    width:180px!important;
    min-width:180px!important;
    max-width:180px!important;
    height:192px!important;
    min-height:192px!important;
    border:1px solid var(--hm-line,var(--e-entity-card-line))!important;
    border-radius:var(--e-entity-card-radius)!important;
    background:var(--hm-soft,var(--e-entity-card-bg))!important;
    color:var(--hm-title,var(--e-entity-card-ink))!important;
    overflow:hidden!important;
    scroll-snap-align:start;
}
.hub-market .hm-contribution-card.e-entity-card--stacked > .hm-contribution-media{
    display:grid!important;
    place-items:center!important;
    flex:0 0 98px!important;
    width:100%!important;
    height:98px!important;
    min-height:0!important;
    max-height:98px!important;
    aspect-ratio:auto!important;
    border-radius:0!important;
    overflow:hidden!important;
    background:#15233c;
}
.hub-market .hm-contribution-card.e-entity-card--stacked > .hm-contribution-media img{
    position:absolute!important;inset:0!important;
    display:block!important;width:100%!important;height:100%!important;
    max-width:none!important;max-height:none!important;
    object-fit:contain!important;object-position:center;
}
.hub-market .hm-contribution-card.e-entity-card--stacked > .hm-contribution-copy{
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-end!important;
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    gap:4px!important;
    padding:9px 8px 13px!important;
    text-align:center!important;
}
.hub-market .hm-contribution-card.e-entity-card--stacked .hm-contribution-copy strong{
    color:var(--hm-title,var(--e-entity-card-ink));
    font-size:11.5px;line-height:1.3;overflow-wrap:anywhere;
}
.hub-market .hm-contribution-card.e-entity-card--stacked .hm-contribution-copy small{
    font-size:9px;line-height:1.3;color:var(--hm-muted,var(--e-entity-card-muted));
}
.hub-market .hm-contribution-card.e-entity-card--stacked:is(:hover,:focus-visible){
    border-color:var(--e-accent,#4f8cff)!important;
}
.hub-market .hm-interact-tile,
.hub-market .hm-voice-card{
    border-radius:var(--e-entity-card-radius)!important;
    border-color:var(--e-entity-card-line)!important;
}
@media(max-width:640px){
    .hub-market .hm-contribution-card.e-entity-card--stacked{
        flex-basis:165px!important;width:165px!important;
        min-width:165px!important;max-width:165px!important;
    }
}

/* Phase 3 — consistent media and lower text alignment for legacy entity cards.
   Pictures are never stretched or cropped to force an arbitrary frame. */
.topic-branch img.topic-branch-media {
    display:block!important;
    grid-column:1 / -1;
    justify-self:center;
    inline-size:auto!important;
    block-size:auto!important;
    max-inline-size:100%!important;
    max-block-size:420px!important;
    max-block-size:min(420px,70svh)!important;
    object-fit:contain!important;
    object-position:center;
    border-radius:10px;
}
.topic-branch video.topic-branch-media {
    display:block;
    grid-column:1 / -1;
    justify-self:center;
    inline-size:100%;
    block-size:auto;
    max-block-size:480px;
    object-fit:contain;
    border-radius:10px;
}
.topic-branch audio.topic-branch-media {
    grid-column:1 / -1;
    inline-size:100%;
    max-inline-size:540px;
}
.topic-branch h3,
.topic-branch p,
.topic-branch .topic-branch-by {overflow-wrap:anywhere}

/* Home and Feed use one post component. Only NEW / REVIEW previews get the
   same aligned card footer; full conversation posts retain natural heights. */
.feed-list .fpost.fnew,
.feed-list .fpost.frev {
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    box-sizing:border-box;
    min-inline-size:0;
    min-block-size:118px;
    padding:13px 14px 12px;
    border-radius:var(--e-entity-card-radius,13px)!important;
    background:var(--e-entity-card-bg,#121a30)!important;
}
.feed-list .fnew-open {
    display:flex!important;
    flex-direction:column!important;
    gap:3px;
    min-width:0;
}
.feed-list .fpost.fnew .fpost-room,
.feed-list .fpost.frev .when {margin-block-start:auto!important}
.feed-list .fpost.fnew .fpost-room {align-self:flex-start;padding-block-start:6px}
.feed-list .fpost:is(.fnew,.frev) .what {
    overflow-wrap:anywhere;
    line-height:1.45;
}
.feed-list .fpost:is(.fnew,.frev):focus-within {
    outline:2px solid var(--e-entity-card-link,#9fc1ff);
    outline-offset:2px;
}
/* A full post's photograph is content, not a thumbnail. Its intrinsic aspect
   ratio is preserved even on phones; landscape photos expand, portraits centre. */
.feed-list img.fpost-media {
    block-size:auto;
    max-block-size:560px;
    object-fit:contain;
}
@media(max-width:520px) {
    .feed-list .fpost-shot {
        display:flex!important;
        justify-content:center;
        align-items:flex-start;
        min-width:0;
    }
    .feed-list img.fpost-media {
        inline-size:auto!important;
        block-size:auto!important;
        max-inline-size:100%!important;
        max-block-size:560px!important;
        max-block-size:min(560px,72svh)!important;
        object-fit:contain!important;
        margin-inline:auto!important;
    }
    .feed-list .fpost-shot img.fpost-media {max-inline-size:100%!important}
}
