/* Shared palette for authenticated, public and account pages. */
:root{color-scheme:light;--ink:#193b4e;--muted:#5d7380;--green:#147b6d;--bg:#fafcfc;--panel:#fff;--soft:#edf3f2;--line:#d7e2e3;--header:#fff;--star:#ad7900;--star-fill:#efbf24;--gold:#c9a25d;--shadow:0 5px 18px #193b4e10;--handle:var(--day-icon)}
:root[data-theme=night]{color-scheme:dark;--ink:#e6eff3;--muted:#a7bac6;--green:#72cdbb;--bg:#040b13;--panel:#242e34;--soft:#2c3941;--line:#42535d;--header:#040b13;--star:#ff8859;--star-fill:#ff8859;--shadow:0 5px 20px #0003;--handle:var(--night-icon)}
body{background:var(--bg);color:var(--ink)}
header,#appHeader{background:var(--header);color:var(--ink);box-shadow:0 10px 24px -12px #193b4e30}
#appHeader{position:relative;padding:16px max(16px,calc((100vw - 1600px)/2));border-bottom:1px solid var(--line)}
#portraitShell{background:linear-gradient(var(--header),var(--bg) 320px)}
a,.spaceNavigation a{color:var(--green)}
.brandLogo{display:block;flex:none;width:220px;max-width:65vw;line-height:0}
.brandLogo img{width:100%;height:auto;object-fit:contain;aspect-ratio:2/1}
.logoNight{display:none}:root[data-theme=night] .logoDay{display:none}:root[data-theme=night] .logoNight{display:block}
.headerStart .brand{align-items:center}.headerActions button{background:var(--panel);color:var(--ink);border-color:var(--line)}
.headerField,.filterLabel{color:var(--ink)}
.headerField input,.headerField select,button,select,input:not([type=range]),textarea,.card textarea{background:var(--panel);color:var(--ink);border-color:var(--line)}
button.active,.choice.selected,.agentSelector button.selected,.collectionButton,#profileDialog #logout{background:#147b6d;color:#fff}
.sortSection,.filterSection{min-width:0}.sortSection{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.sortSection h2,.filterSection h2{font-size:13px;margin:0 0 6px;letter-spacing:.03em}.sortSection .sortControl{max-width:420px}
.sortSearchRow{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rangeFilter{grid-column:span 2;border:1px solid var(--line);border-radius:10px;margin:0;padding:8px 16px 12px;min-width:0}.rangeFilter legend{font-size:12px;font-weight:650;padding:0 6px}.rangeValues{font-variant-numeric:tabular-nums;font-size:12px;display:flex;justify-content:space-between}
.dualRange{position:relative;height:40px;margin:0 4px;--from:0%;--to:100%}.dualRange:before{content:"";position:absolute;top:18px;left:0;right:0;height:4px;border-radius:3px;background:linear-gradient(to right,var(--line) var(--from),var(--green) var(--from),var(--green) var(--to),var(--line) var(--to))}
.dualRange input[type=range]{position:absolute;inset:0;margin:0;width:100%;height:40px;appearance:none;-webkit-appearance:none;background:transparent;pointer-events:none;border:0;padding:0;min-height:0;box-shadow:none}
.dualRange input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:32px;height:32px;background:var(--handle) center/30px no-repeat;pointer-events:auto;cursor:ew-resize;border:0;border-radius:50%;box-shadow:0 0 0 2px var(--panel);touch-action:none}
.dualRange input::-moz-range-thumb{width:32px;height:32px;background:var(--handle) center/30px no-repeat;pointer-events:auto;cursor:ew-resize;border:0;border-radius:50%;touch-action:none}
.dualRange input:focus-visible{outline:none}.dualRange input:focus-visible::-webkit-slider-thumb{outline:3px solid var(--green);outline-offset:2px}.dualRange input:focus-visible::-moz-range-thumb{outline:3px solid var(--green);outline-offset:2px}
.dualRange.atEnd input[id$=Min]{z-index:2}
.toolbar .headerField{color:var(--ink)}#resetFilters{background:var(--soft);color:var(--ink);border-color:var(--line)}
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.card,.catalogueCard,.catalogueCard.isFavorite,.catalogueCard.isNew,.card.isFavorite,.card.isNew,dialog,.empty,.tableWrap{background:var(--panel);color:var(--ink);border-color:var(--line)}
.catalogueCard{border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}
.card.isCollected{border:2px solid var(--gold)!important;box-shadow:0 0 0 1px var(--gold),var(--shadow)!important}
.cataloguePriceRow{display:flex;gap:8px;align-items:center;margin:0 0 10px}.cataloguePriceRow h2{margin:0 auto 0 0;font-size:17px;line-height:1.3;overflow-wrap:anywhere;min-width:0}.cataloguePriceRow>strong{font-size:18px;color:var(--green);white-space:nowrap}.catalogueFacts{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:normal;gap:6px;overflow:visible}.catalogueFacts .catalogueKind{grid-column:1/-1}.catalogueFacts .catalogueKind,.catalogueFacts>span{font-size:13px;white-space:normal}.catalogueActions>button{font-size:12px}.catalogueCard .body{padding-top:14px}
.detailButton{background:var(--panel);color:var(--ink)}.collectionFooter{background:var(--panel)}
.cardHeader,.personRating,.feature,.tag,.statusChoice,.agentSelector,.agentSelector button,.choice,.waiting,th,tr:nth-child(even){background:var(--soft);color:var(--ink);border-color:var(--line)}
.card .feature b,.card .feature>span,.cardHeader .placeLink,.propertyKind,.personLabel,.agentSelector>span{color:var(--ink)}
.small,.ref,.zoneLabel,.monthLabel,.personal,.ratingValue,.personRating small{color:var(--muted)}
.star.filled,.familyRatings .star.filled{color:var(--star-fill)}.star:hover{color:var(--star);background:var(--soft)}.star:not(.filled){color:var(--muted)}
#listingDetails,dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line)}dialog::backdrop{background:#07111799}
.appearance{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:24px 0}.appearance small{grid-column:2;text-align:center;color:var(--muted)}
.themeToggle{position:relative;display:flex;align-items:center;justify-content:space-between;gap:26px;width:104px;height:44px;border:1px solid var(--line);border-radius:12px;padding:5px 10px;background:var(--soft);color:var(--green);font-size:24px;isolation:isolate}
.themeKnob{position:absolute;left:5px;top:5px;width:32px;height:32px;border-radius:50%;background:var(--panel) var(--handle) center/28px no-repeat;box-shadow:0 1px 5px #0003;transition:transform .18s ease}
:root[data-theme=night] .themeKnob{transform:translateX(60px)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.accountPage main{background:var(--panel);color:var(--ink);border-color:var(--line)}.accountPage p,.accountPage small{color:var(--muted)}.accountPage header,.publicPage header{display:block}.accountPage .brandLogo,.publicPage .brandLogo{width:240px}.publicPage article{background:var(--panel);border:1px solid var(--line)}
@media(max-width:1279px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:979px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:639px){.grid{grid-template-columns:minmax(0,1fr)}.sortSearchRow{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.brandLogo{width:180px}.headerStart{gap:12px}.spaceNavigation{font-size:13px;gap:12px}.rangeFilter{grid-column:1/-1}.publicPage main{padding:16px}}
@media(prefers-reduced-motion:reduce){.themeKnob{transition:none}}
/* Override legacy header whites in both palettes. */
.rangeValues,.inventoryStats,.inventoryStats strong{color:var(--ink)}
.card .feature.positive,.card .feature.negative,.card .feature.unknown{background:var(--soft);border-color:var(--line)}
.card .feature.positive b,.card .feature.negative b{color:var(--ink)}
.collectionCity{font-size:16px;font-weight:750;overflow-wrap:anywhere}.card .propertyTop{margin-bottom:8px}.card .propertyZone>.identityStrip{justify-content:flex-start;gap:8px;flex-wrap:wrap}

/* UX corrections: preserve native range keyboard/touch behavior. */
[hidden]{display:none!important}
.sortSearchRow{grid-template-columns:minmax(90px,1fr) minmax(100px,1fr) minmax(88px,.7fr) minmax(100px,.8fr) minmax(160px,1.4fr) minmax(160px,1.4fr) auto;align-items:end;gap:10px}
.sortSearchRow>*{min-width:0}.sortSearchRow .headerField input,.sortSearchRow .headerField select{width:100%;min-width:0;box-sizing:border-box}
.rangeFilter{grid-column:auto;padding:40px 16px 8px}.rangeFilter legend{color:var(--ink)}
#resetFilters{font-size:12px;min-height:38px;padding:8px;white-space:nowrap;margin-bottom:4px}
.dualRange{height:40px;margin:0}.dualRange:before{top:18px;left:16px;right:16px}
.dualRange input::-webkit-slider-runnable-track{height:32px;background:transparent}
.dualRange input::-moz-range-track{height:4px;background:transparent}
.dualRange input::-webkit-slider-thumb{margin-top:0;filter:drop-shadow(0 2px 3px #0004);box-shadow:none;background-size:contain}
.dualRange input::-moz-range-thumb{filter:drop-shadow(0 2px 3px #0004);background-size:contain}
.rangeBubble{position:absolute;bottom:calc(100% + 9px);transform:translateX(-50%);padding:4px 6px;border-radius:7px;background:color-mix(in srgb,var(--panel) 92%,transparent);color:var(--ink);border:1px solid var(--line);font-size:12px;line-height:1.3;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums;z-index:3}
.rangeBubbleMax{bottom:calc(100% + 33px)}
.rangeFilter{padding-top:64px}
.card.isFavorite{border:3px solid #dc3545!important;box-shadow:var(--shadow)!important}
.card.isCollected{border:3px solid var(--gold)!important;box-shadow:var(--shadow)!important}
.favoriteButton.selected{color:#dc3545!important}
@media(max-width:1199px){.sortSearchRow{grid-template-columns:repeat(4,minmax(0,1fr))}.rangeFilter{grid-column:span 2}#resetFilters{justify-self:end;grid-column:1/-1}}
@media(max-width:639px){.sortSearchRow{grid-template-columns:repeat(2,minmax(0,1fr))}.rangeFilter{grid-column:1/-1}.toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Original transparent PNGs supplied by the owner, shared by all theme controls. */
:root{--day-icon:url("images/Bouton_Jour.png");--night-icon:url("images/Bouton_Nuit.png")}
.sunIcon,.moonIcon{display:block;flex:0 0 32px;width:32px;height:32px;background:center/contain no-repeat;filter:drop-shadow(0 1px 2px #0003)}
.sunIcon{background-image:var(--day-icon)}.moonIcon{background-image:var(--night-icon)}
.themeToggle{gap:26px;padding:5px}
.themeKnob{background:transparent;border:2px solid var(--green);box-sizing:border-box;box-shadow:0 1px 5px #0003;pointer-events:none}
:root[data-theme=night] .themeKnob{transform:translateX(60px)}

/* Progressive selection and NAS catalogue layout. 7px ~= 1.85 CSS mm. */
#appHeader .brandLogo{width:min(660px,46vw);max-width:100%}
.headerStart{display:grid;grid-template-columns:minmax(0,660px) minmax(0,1fr) auto;align-items:center;gap:20px}
.spaceNavigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;min-width:0}
.navDestination{display:grid;justify-items:center;gap:10px;min-width:0}
.navDestination>a{display:flex;align-items:center;justify-content:center;width:100%;height:80px;border-radius:16px;text-decoration:none;text-align:center;box-sizing:border-box;filter:drop-shadow(3px 5px 5px #193b4e30)}
.navDestination>a[aria-current=page]{outline:2px solid var(--green);outline-offset:3px}
.navDestination img{width:100%;height:100%;object-fit:contain}
.graphicFallback{display:block;font-size:14px;line-height:1.35;padding:8px;color:var(--ink)}
.inventoryStats,.collectionStats{font-size:12px;color:var(--muted);text-align:center;white-space:normal}
.graphicNight{display:none}:root[data-theme=night] .graphicDay{display:none}:root[data-theme=night] .graphicNight{display:block}
.selectionButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:88px;height:88px;max-width:100%;padding:0;border:0;background:transparent;filter:drop-shadow(2px 4px 3px #193b4e40)}
.selectionButton img{width:100%;height:100%;object-fit:contain}
.card,.catalogueCard,.card.isNew{--state-light:#8aaab9;border:7px solid var(--line)!important;box-shadow:3px 6px 14px #193b4e26!important;box-sizing:border-box}
.card.isFavorite{--state-light:#dc3545;border:7px solid #dc3545!important}
.card.isCollected{--state-light:#d5ae54;border:7px solid var(--gold)!important}
:root[data-theme=night] .card{box-shadow:0 0 14px color-mix(in srgb,var(--state-light) 32%,transparent)!important}
:root[data-theme=night] .navDestination>a,:root[data-theme=night] .selectionButton{filter:drop-shadow(0 0 6px #8eb9dc70)}
:root[data-theme=night] .sunIcon,:root[data-theme=night] .moonIcon{filter:drop-shadow(0 0 3px #e7c98070)}
:root[data-theme=night] .dualRange input::-webkit-slider-thumb{filter:drop-shadow(0 0 4px #b5cfea90)}
:root[data-theme=night] .dualRange input::-moz-range-thumb{filter:drop-shadow(0 0 4px #b5cfea90)}
:root[data-theme=night] .themeKnob{box-shadow:0 0 5px #9ec8e380}
.sortSearchRow{grid-template-columns:70px minmax(90px,1fr) 84px 76px minmax(150px,1.25fr) minmax(150px,1.25fr) auto;gap:8px}
.rangeFilter{padding:52px 12px 4px}.rangeBubble{font-size:11px;padding:3px 5px}.rangeBubbleMax{bottom:calc(100% + 27px)}
@media(max-width:1199px){.headerStart{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.headerActions{grid-column:1/-1;justify-self:end}#appHeader .brandLogo{width:min(440px,44vw)}.sortSearchRow{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:639px){.headerStart{grid-template-columns:minmax(0,1fr);gap:14px}.headerActions{grid-column:auto}#appHeader .brandLogo{width:min(340px,85vw);margin:auto}.spaceNavigation{gap:12px}.navDestination>a{height:66px}.sortSearchRow{grid-template-columns:repeat(2,minmax(0,1fr))}.selectionButton{width:72px;height:72px}}

/* Let the supplied PNG logos keep their intrinsic proportions. */
.brandLogo img{aspect-ratio:auto}

/* Priority visual fixes: unchanged interactions, fixed dimensions in both spaces. */
#appHeader .brand{display:block;min-width:0}
#appHeader .brandLogo{width:660px;max-width:100%;overflow:visible}
#appHeader .brandLogo img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
#appHeader .brandLogo img.logoNight{display:none}:root[data-theme=night] #appHeader .brandLogo img.logoDay{display:none}:root[data-theme=night] #appHeader .brandLogo img.logoNight{display:block}
.headerStart{grid-template-columns:minmax(0,660px) minmax(0,1fr) auto;overflow:visible}
.navDestination>a,.navDestination>a[aria-current=page],:root[data-theme=night] .navDestination>a{outline:none;outline-offset:0;filter:none;box-shadow:none;transform:none;position:relative}
.navDestination>a[aria-current=page]::after{content:"";position:absolute;bottom:8px;left:38%;right:38%;height:3px;border-radius:3px;background:var(--ink);pointer-events:none}
.navDestination>a:focus-visible,:root[data-theme=night] .navDestination>a:focus-visible{outline:none;box-shadow:none}
.navDestination>a:focus-visible::before{content:"";position:absolute;left:42%;right:28%;bottom:16px;border-bottom:3px dotted var(--ink);pointer-events:none}
.sortSearchRow{grid-template-columns:70px minmax(90px,1fr) 104px 96px minmax(150px,1.25fr) minmax(150px,1.25fr) auto}
@media(max-width:1199px){.sortSearchRow{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:639px){.sortSearchRow{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Match the 36px city/bedroom fields, keeping range bubbles above the control. */
.sortSearchRow{align-items:end;row-gap:46px}
.rangeFilter{position:relative;height:36px;min-height:36px;box-sizing:border-box;padding:0 9px;border:1px solid var(--line);border-radius:6px;margin:0;overflow:visible;background:var(--panel)}
.rangeFilter legend{position:absolute;top:-20px;left:0;padding:0;font-size:11px;line-height:16px;font-weight:600;color:var(--ink)}
.filterSection{padding-top:40px}.filterSection h2{margin-bottom:32px}
.dualRange{height:34px;width:100%;margin:0}
.dualRange input[type=range]{height:34px}
.dualRange:before{top:15px}
.rangeBubble{bottom:calc(100% + 24px);font-size:11px;padding:3px 5px}
.rangeBubbleMax{bottom:calc(100% + 45px)}
#resetFilters{margin-bottom:0}
.selectionButton,:root[data-theme=night] .selectionButton{filter:none;box-shadow:none;overflow:visible;min-width:44px;min-height:44px}
.selectionButton img{width:75%;height:75%;object-fit:contain;object-position:center;filter:none;flex:none}
@media(max-width:1199px){.headerStart{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#appHeader .brandLogo{width:min(660px,100%)}.filterSection h2{margin-bottom:32px}}
@media(max-width:639px){.headerStart{grid-template-columns:minmax(0,1fr)}#appHeader .brandLogo{width:min(340px,100%);margin:auto}.sortSearchRow{row-gap:60px}.filterSection{padding-top:12px}.filterSection h2{margin-bottom:10px}}

/* Navigation, catalogue controls and collection tracking share the logo height. */
#appHeader{display:grid!important;grid-template-columns:minmax(0,660px) minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:20px;row-gap:8px;align-items:start}
.headerStart{display:contents}
#appHeader .brand{grid-column:1;grid-row:1/5;align-self:start}
.spaceNavigation{grid-column:2;grid-row:1;padding-top:36px;margin-right:110px;align-self:start}
.headerActions{grid-column:2;grid-row:1;margin-top:46px;justify-self:end;align-self:start}
.sortSection{grid-column:2;grid-row:2;display:grid;grid-template-columns:194px repeat(2,minmax(0,1fr));align-items:end;gap:8px;padding-top:20px}
.sortSection h2{display:none}
.sortSection .rangeFilter{grid-column:auto}
.sortSection .sortControl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;max-width:none}
.sortControl .headerField{min-width:0}
.sortControl select{width:100%;max-width:100%;height:36px;padding:6px 4px;font-size:11px;box-sizing:border-box}
.filterSection{grid-column:2;grid-row:3;padding:0}
.filterSection h2{display:none}
.sortSearchRow{grid-template-columns:58px minmax(85px,1fr) 104px 88px auto;align-items:end;gap:8px}
.toolbar{grid-column:2;grid-row:2/4;max-width:none;width:100%;align-self:start;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;justify-content:start}
#spaceKind{display:none}
#filterFeedback{grid-column:1/-1;margin:0}
.rangeControl{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:4px;height:34px;min-width:0}
.rangeValue{position:static;display:block;transform:none;padding:0;border:0;background:none;color:var(--ink);white-space:nowrap;font-size:11px;font-variant-numeric:tabular-nums;line-height:1.2;pointer-events:none}
.rangeControl .dualRange{min-width:0}
/* Fixed borders and inset highlights add relief without moving the cards. */
.card,.catalogueCard,.card.isNew,.card.isFavorite,.card.isCollected{border-width:8px!important;box-shadow:inset 0 2px 0 #ffffffb3,inset 0 -2px 0 #193b4e24,6px 10px 18px #102f4359,2px 4px 7px #102f4338!important}
:root[data-theme=night] .card{box-shadow:inset 0 2px 0 #e6f4ff33,inset 0 -2px 0 #0007,0 0 7px color-mix(in srgb,var(--state-light) 80%,transparent),0 0 22px color-mix(in srgb,var(--state-light) 60%,transparent)!important}
@media(max-width:1279px){
 #appHeader{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);column-gap:16px}
 #appHeader .brand{grid-row:1/3}
 .spaceNavigation{grid-column:2;grid-row:1;padding-top:24px;margin-right:0}
 .headerActions{grid-column:2;grid-row:2;margin-top:0}
 .sortSection{grid-column:1/-1;grid-row:3;grid-template-columns:194px repeat(2,minmax(0,1fr))}
 .filterSection{grid-column:1/-1;grid-row:4}.toolbar{grid-column:1/-1;grid-row:3;grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:639px){
 #appHeader{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(6,auto);row-gap:12px}
 #appHeader .brand{grid-column:1;grid-row:1}
 .spaceNavigation{grid-column:1;grid-row:2;padding-top:0}
 .headerActions{grid-column:1;grid-row:3;margin-top:0}
 .sortSection{grid-column:1;grid-row:4;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px;padding-top:0}
 .sortSection .sortControl{grid-column:1/-1}
 .filterSection{grid-column:1;grid-row:5}.sortSearchRow{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:8px}
 .sortSection .rangeFilter{grid-column:auto}
 #resetFilters{grid-column:1/-1}
 .toolbar{grid-column:1;grid-row:4;grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Keep the first four photos fully visible on short desktop viewports. */
@media(min-width:1280px){#appHeader{padding-top:8px;padding-bottom:8px}#resetFilters{grid-column:auto}}
@media(min-width:1280px) and (max-height:760px){
 .catalogueCard .photo{height:clamp(140px,calc(100svh - var(--header-height,380px) - 28px),210px);min-height:0}
}
/* Compact summaries and traditional heart selection. */
#appHeader .brandLogo{width:594px}
#appHeader{grid-template-columns:minmax(0,594px) minmax(0,1fr)}
.spaceNavigation{padding-top:32px}.headerActions{margin-top:42px}
.sortSearchRow{grid-template-columns:minmax(102px,1.4fr) minmax(74px,1fr) 76px 62px 76px 94px 82px;gap:6px}
.sortSearchRow .headerField{font-size:10px;white-space:nowrap}
.sortSearchRow select,.sortSearchRow input{padding-inline:5px;font-size:11px}
.card,.catalogueCard,.card.isNew,.card.isFavorite,.card.isCollected{border-width:7px!important}
.selectionButton{width:76px;height:44px;min-height:44px;min-width:44px}
.heartTrio{display:flex;align-items:center;justify-content:center;gap:0;width:100%;height:44px;color:var(--muted)}
.trioHeart{display:block;line-height:0}.trioHeart:nth-child(2){transform:translateY(-4px) scale(1.12)}
.trioHeart:first-child{transform:rotate(-14deg)}.trioHeart:last-child{transform:rotate(14deg)}
.trioHeart.filled{color:#dc3545}.stage2 .trioHeart.filled{color:var(--gold)}
.catalogueCard .body{padding:8px 10px}
.cataloguePriceRow{gap:6px;margin-bottom:2px}
.cataloguePriceRow h2{font-size:16px}.cataloguePriceRow>strong{font-size:17px}
.catalogueFacts{display:block}.catalogueFacts .catalogueKind{font-size:12px}
.catalogueActions{margin:4px 0 0;display:flex;justify-content:flex-end}
.catalogueActions .detailButton{padding:4px 8px;min-height:32px;font-size:12px;border:0;text-decoration:underline;text-underline-offset:3px}
.trackingCard .body{padding:10px}
.trackingCard .propertyKind{display:block;font-size:12px;margin-bottom:8px}
.trackingCard .features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:8px 0;overflow:visible}
.trackingCard .feature{min-width:0;white-space:normal;padding:5px 2px}
.trackingCard .description{margin:8px 0;font-size:12px}
.agencyDetails{font-size:12px;margin:8px 0}.agencyDetails summary{cursor:pointer;min-height:28px;display:list-item}
.personalEvaluation{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);background:linear-gradient(var(--soft),transparent 100px)}
.personalEvaluation h3{font-size:12px;margin:0 0 8px;color:var(--muted)}
.personalEvaluation .familyRatings{display:grid;grid-template-columns:1fr;gap:6px;margin:0 0 10px}
.personalEvaluation .personRating{width:100%;box-sizing:border-box}
.personalEvaluation .stars{justify-content:center}
.personalEvaluation .star{flex:1;min-width:0;width:auto;min-height:32px;font-size:20px}
.personalEvaluation .reviewedName:disabled{opacity:1;color:var(--ink)}
#participantsForm{border-top:1px solid var(--line);padding-top:12px;margin-bottom:20px}
#participantsForm h3{font-size:16px}.participantSelf{color:var(--muted)}
.participantRow{display:flex;align-items:end;gap:8px;margin-bottom:10px}.participantRow label{flex:1;min-width:0}
.participantRow input{display:block;width:100%;box-sizing:border-box}.participantRow button{min-height:40px;min-width:40px}
#participantsForm small{display:block;margin-top:10px;color:var(--muted)}
@media(max-width:1279px){#appHeader{grid-template-columns:repeat(2,minmax(0,1fr))}.sortSearchRow{grid-template-columns:minmax(102px,1.4fr) minmax(74px,1fr) 76px 62px 76px 94px 82px}}
@media(max-width:799px){.sortSearchRow{grid-template-columns:repeat(4,minmax(0,1fr))}.sortSearchRow .headerField{white-space:normal}}
@media(max-width:639px){#appHeader{grid-template-columns:minmax(0,1fr)}#appHeader .brandLogo{width:min(306px,100%)}.spaceNavigation{padding-top:0}.headerActions{margin-top:0}.sortSearchRow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1280px) and (max-height:760px){.catalogueCard .photo{height:clamp(110px,calc(100svh - var(--header-height,315px) - 180px),210px)}}

/* The collection summary is a full-width section, independent of the legacy
   two-column .propertySummary used by older headers. Long descriptions wrap. */
.trackingCard .trackingSummary{display:block;min-width:0;max-width:100%;overflow-wrap:anywhere}
.personalEvaluation .personRating .stars{display:flex;flex-wrap:nowrap;max-width:none;width:100%}
.personalEvaluation .personLabel .reviewedName{background:var(--soft);color:var(--ink)}
.personalEvaluation .personLabel .reviewedName.selected{background:var(--green);color:var(--bg)}

/* Participant panels share a row; each keeps safe space around the stars. */
.personalEvaluation .familyRatings{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.personalEvaluation .familyRatings[data-participants="1"]{grid-template-columns:minmax(0,1fr)}
.personalEvaluation .personRating{grid-column:auto;padding:8px;min-width:0}
.personalEvaluation .personRating .stars{gap:2px;padding:4px 2px;box-sizing:border-box}
.personalEvaluation .star{height:32px;line-height:32px;font-size:clamp(14px,1.5vw,20px)}
.personalEvaluation .halfFilled{background:linear-gradient(to right,var(--star-fill) var(--star-fill-percent),var(--muted) var(--star-fill-percent));background-clip:text;-webkit-background-clip:text;color:transparent}
.trackingCard .photo{position:relative}
.trackingCard .photo::after{content:"";position:absolute;inset:auto 0 0;height:22px;background:linear-gradient(transparent,var(--panel));pointer-events:none}
