/* Immutable normal shell; material/colour remain owned by the shared theme. */
header{display:flex;gap:8px;height:calc(56px + env(safe-area-inset-top));min-height:56px;padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}
.brand{flex:0 0 96px;min-height:44px;width:96px;padding:0;background:transparent;overflow:hidden}
.brand img{width:96px;height:auto;object-fit:contain}
.actionbar-title{flex:1;text-align:start;font-size:1.05rem;grid-column:auto;grid-row:auto;padding:0}
.header-actions{display:flex;gap:4px;flex-shrink:0;grid-column:auto;grid-row:auto}
#page-actions{gap:4px}
header #menu-toggle,header #shell-back,header #shell-settings,header #page-more,header .shell-action{display:inline-flex;align-items:center;justify-content:center;min-width:44px;width:44px;height:44px;min-height:44px;padding:10px}
header .action-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.shell-overflow{position:fixed;top:calc(var(--actionbar-height,56px) + 8px);inset-inline-end:16px;z-index:21;max-width:calc(100vw - 32px);padding:8px;border:1px solid var(--line);border-radius:var(--frame-radius);background:var(--panel);box-shadow:0 12px 30px #0004;display:flex;flex-direction:column;gap:8px}
.shell-overflow .shell-action{justify-content:flex-start;width:auto;min-width:180px;padding:10px}
.shell-overflow .action-label{position:static;clip-path:none;width:auto;height:auto}
#primary-nav{display:grid;grid-template-columns:repeat(var(--primary-count,5),minmax(0,1fr));height:64px;max-width:760px;margin:0 auto;gap:4px;align-items:stretch}
#primary-nav .primary-destination{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:48px;border:0;box-shadow:none;background:transparent;padding:4px;color:var(--muted);font-size:.7rem}
#primary-nav .primary-destination[aria-current=page]{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);box-shadow:inset 0 2px var(--accent)}
#primary-nav .icon{width:22px;height:22px;flex-shrink:0}
#primary-nav span{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
footer{padding-inline:max(8px,env(safe-area-inset-left));padding-top:0}
.footer-line{min-height:32px;padding-inline:8px}
.app-layout{padding:16px 0 0}
.app-layout>main{padding:0 16px;max-width:1200px;width:100%;margin-inline:auto;box-sizing:border-box}
.dashboard-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dashboard-overview .vehicle-picture{width:100%;max-height:220px;aspect-ratio:16/9}
.dashboard-overview .vehicle-picture img{width:100%;height:100%;object-fit:cover}
.dashboard-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dashboard-shortcuts button{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:64px}
@media(max-width:600px){.dashboard-overview{grid-template-columns:1fr}header{padding-inline:8px;gap:4px}.actionbar-title{font-size:.95rem}}
.compact-setup{max-width:760px;margin-inline:auto}.setup-preferences{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.setup-account{margin-block:16px}.setup-account .auth{padding:0;max-width:none}.setup-account .auth>h1,.setup-account .auth>p{display:none}.setup-account .auth .card{padding:0;border:0;background:none;box-shadow:none}.setup-terms{margin-block:12px}.compact-setup .document{max-height:45vh;overflow:auto;white-space:pre-wrap}.compact-setup .actions .primary{min-height:48px}@media(max-width:520px){.setup-preferences{grid-template-columns:1fr;gap:8px}}
.setup-active #auth-language{display:none}

/* Marvin has one shell canvas; the numbered flags are independent navigation markers. */
footer{position:fixed}
#primary-nav .primary-destination{position:relative;overflow:visible}
#primary-nav .marvin-flag{position:absolute;inset-inline-end:6px;top:-10px;padding:2px 4px 3px 6px;min-width:24px;overflow:visible;border-inline-start:2px solid var(--accent);background:var(--accent);color:var(--panel);font-size:11px;font-weight:750;clip-path:polygon(0 0,100% 0,86% 40%,100% 80%,6% 80%,6% 100%,0 100%)}
.marvin-dock{position:absolute;bottom:64px;width:48px;height:56px;min-height:44px;min-width:48px;padding:0;border:0;background:transparent!important;box-shadow:none!important;overflow:visible;z-index:2}
.marvin-dock canvas{position:absolute;width:48px;height:54px;left:0;top:14px;pointer-events:none;clip-path:inset(0 0 12px)}
.marvin-dock[data-walking=true]{height:56px;pointer-events:none}
.marvin-dock[data-walking=true] canvas{top:0;clip-path:none}
/* Facing is rendered from the authored clip orientation; do not mirror the canvas again. */
body:not(.setup-active) .footer-line{padding-inline-end:56px}
.marvin-bubble{font-size:14px;line-height:1.5;text-align:start;position:absolute;inset-inline-end:16px;bottom:calc(64px + 48px);width:min(340px,calc(100vw - 32px));max-height:min(420px,65dvh);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--panel);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0005;z-index:25;display:flex;flex-direction:column;gap:8px;box-sizing:border-box}
.marvin-bubble h3,.marvin-bubble p{margin:0}
.marvin-bubble h3{color:var(--accent)}
.marvin-bubble h3{padding-inline-end:44px;min-height:32px}
.marvin-bubble .marvin-close{position:absolute;inset-inline-end:6px;top:6px;width:44px;height:44px;padding:0;font-size:24px}
.marvin-notice{border-top:1px solid var(--line);padding-top:8px}
.marvin-bubble button{min-height:44px}

.reaction-control{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.reaction-mark{width:22px;height:22px;flex-shrink:0;vertical-align:middle}
.reaction-tap{min-width:48px;min-height:48px;max-width:100%;padding:5px 8px;touch-action:manipulation;user-select:none;-webkit-touch-callout:none}
.reaction-tap[aria-pressed=true]{border-color:var(--accent)}
.reaction-counts{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:.8rem;gap:5px}
.reaction-counts>span{display:inline-flex;align-items:center;gap:3px}
.reaction-counts>.reaction-count{padding:3px 4px;border-radius:6px}
.reaction-count[data-selected=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);font-weight:700}
.reaction-counts .reaction-mark{width:16px;height:16px}
.reaction-picker{max-width:min(360px,calc(100vw - 32px));border-radius:18px;backdrop-filter:blur(20px)}
.reaction-picker[open]{display:flex;flex-wrap:wrap;gap:8px}
.reaction-picker h3{flex-basis:100%;margin:0}
.reaction-picker button{display:inline-flex;align-items:center;gap:8px;min-height:48px}
.reaction-score{font-weight:700}

/* Canonical inline user text and the shared editor toolbar. */
.inline-symbol{display:inline-block;width:1em;height:1em;vertical-align:-.12em;line-height:1}
.inline-symbol .reaction-mark{display:block;width:100%;height:100%}
.inline-marvin{background-image:url('/mechanic-atlas.png');background-size:15.984615em 23.292308em;background-position:-.492308em -.123077em;background-repeat:no-repeat}
.rich-field{min-width:0}.rich-toolbar{display:flex;flex-wrap:wrap;gap:4px;margin-block:4px}
.rich-toolbar button{min-width:44px;min-height:44px;padding:6px 10px}.rich-toolbar button[aria-pressed=true]{border-color:var(--accent)}
.rich-preview{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;border:1px solid var(--border);border-radius:var(--card-radius)}
.rich-link-dialog{max-width:min(440px,90vw)}

/* Canonical vehicle hero and state-preserving record sections. */
.vehicle-hero{position:relative;margin:0 0 16px;border-radius:var(--frame-radius);overflow:hidden;border:1px solid var(--line);background:var(--panel)}
.vehicle-hero .vehicle-view-photo{display:block;width:100%;padding:0;border:0;overflow:hidden;border-radius:0;height:clamp(160px,30dvh,300px);min-height:160px;max-height:300px;aspect-ratio:16/9}
.vehicle-hero .vehicle-picture{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:16/9}
.vehicle-hero .vehicle-picture img{width:100%;height:100%;object-fit:cover}
.vehicle-hero .manufacturer-logo{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:1.1rem}.vehicle-hero .manufacturer-logo .icon{width:64px;height:64px}.vehicle-hero .manufacturer-logo img{object-fit:contain;padding:24px}
.vehicle-identity-sheet{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;position:relative;margin:-24px 16px 16px;padding:16px;border:1px solid var(--line);border-radius:var(--frame-radius);background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:blur(18px);box-shadow:0 10px 30px #0003;overflow-wrap:anywhere}
.vehicle-identity-sheet h2{flex-basis:100%;margin:0 0 4px}.vehicle-identity-sheet p{margin:0}
.record-section-tabs{display:flex;gap:8px;position:sticky;top:var(--actionbar-height,68px);z-index:3;padding:8px 0;background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:blur(18px);overflow:auto;scrollbar-width:thin;margin-bottom:16px;border-bottom:1px solid var(--line)}
.record-section-tabs button{flex:1;min-height:44px;white-space:nowrap}
.record-section-tabs button[aria-selected=true]{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}
.record-section-panels>[hidden]{display:none!important}
.photo[data-image-slot],.vehicle-picture[data-image-slot]{aspect-ratio:var(--image-ratio)}
[data-image-slot] img{object-fit:var(--image-fit,contain)}
[data-image-slot] .manufacturer-logo img{object-fit:contain}
[data-image-round=true]{border-radius:50%;overflow:hidden}
.media-frame[data-image-slot] .media-frame-stage{height:auto;aspect-ratio:var(--image-ratio);max-height:70dvh}
.photo[data-image-slot=CLUB_COVER]{aspect-ratio:var(--image-ratio);max-height:320px}
.social-profile-header{padding-top:0;overflow:hidden}
.profile-cover-empty{height:72px;margin:0 -22px;border-bottom:1px solid var(--line);background:var(--panel-raised)}
.social-profile-header .profile-banner{position:relative;margin-top:-32px;align-items:flex-end}
.profile-banner [data-image-slot=USER_AVATAR]{width:88px;height:88px;min-height:88px;flex:none;border:3px solid var(--panel);background:var(--panel)}
.profile-banner [data-image-slot=USER_AVATAR] img{height:100%;width:100%;object-fit:cover}
.interest-cloud{display:flex;flex-wrap:wrap;gap:8px}.profile-vehicles .card{display:flex;gap:12px;align-items:center}.profile-vehicles .manufacturer-logo{width:64px;flex:none}
@media(max-width:500px){.vehicle-identity-sheet{margin:-16px 8px 8px;padding:12px}.record-section-tabs{gap:4px}.record-section-tabs button{font-size:.8rem;padding:8px}}

.marvin-held-flag{position:absolute;left:-10px;top:25px;width:24px;height:16px;background:var(--accent);color:var(--panel);border-radius:2px 0 0 2px;font:700 10px/16px system-ui;text-align:center;pointer-events:none}
.marvin-held-flag::after{content:"";position:absolute;right:0;top:0;width:1.5px;height:26px;background:var(--accent)}

/* Authentication has its own branding and no member navigation or persistent slogan. */
body.setup-active>header{display:none}body.setup-active>footer .footer-line>span,body.setup-active>footer #feedback,body.setup-active>footer #primary-nav{display:none}body.setup-active>footer:not(:has(#notice:not(:empty))):not(:has(#notification-badge:not([hidden]))){display:none}body.setup-active{--actionbar-height:0px;padding-top:0;padding-bottom:var(--footer-height,env(safe-area-inset-bottom))}body.setup-active .app-layout{padding-top:max(24px,env(safe-area-inset-top))}.auth-logo{display:block;max-width:80%;height:auto;margin:2rem auto}.auth>.actions{justify-content:center}

#subnavigation{width:100%;max-width:none;height:auto;max-height:none;bottom:auto;flex-direction:row;overflow:visible;scrollbar-gutter:auto;border-radius:0;box-shadow:none;position:fixed;top:var(--actionbar-height,56px);inset-inline:0;z-index:19;display:flex;justify-content:center;gap:4px;padding:4px max(12px,env(safe-area-inset-left));background:var(--panel);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
#subnavigation[hidden]{display:none}#subnavigation>button{flex:1;max-width:250px;min-width:0;min-height:40px;padding:8px;color:var(--muted)}#subnavigation [aria-current=page]{color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
#subnavigation>.section-tabs{margin:0;gap:4px;display:flex;justify-content:center;width:100%}#subnavigation>.section-tabs>button{flex:1;max-width:250px;min-width:0;min-height:40px;padding:8px}
body:not(.setup-active) .app-layout{padding-top:var(--subnavigation-height,0px)}

/* One bottom navigation surface; help and feedback are overlays, never a footer row. */
footer{padding:0 max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom);min-height:0}
body.setup-active>footer{display:none}
#feedback{position:fixed;inset-inline-start:max(10px,env(safe-area-inset-left));bottom:calc(var(--footer-height,64px) + 6px);width:44px;height:44px;min-width:44px;padding:8px;z-index:22;background:var(--glass-control,var(--panel));backdrop-filter:blur(18px)}
#feedback[hidden]{display:none}
#notice{position:fixed;inset-inline-end:12px;bottom:calc(var(--footer-height,64px) + 12px);width:min(400px,calc(100vw - 80px));max-height:min(40dvh,280px);overflow:auto;z-index:26;border:1px solid var(--accent);border-radius:var(--frame-radius);background:var(--panel);backdrop-filter:blur(22px);padding:42px 12px 12px;box-shadow:0 8px 30px #0004;color:var(--accent)}
#notice:empty{display:none}
#notice>.notice-close{position:absolute;top:2px;inset-inline-end:2px;width:40px;height:40px;min-width:40px;font-size:0;padding:8px}
#notice>.notice-close:after{content:'×';font-size:22px}
.record-notices>#notice{position:relative;inset:auto;width:auto;max-height:25dvh}
.app-layout>main{padding-bottom:56px}
/* One actionbar per page; editors retain their real handlers when the shell adopts them. */
.record-toolbar{display:flex;align-items:center;gap:8px;margin-inline-start:auto}
.record-window>.record-heading{position:relative;z-index:2} /* Keep menu actions above glass form sections. */
.record-toolbar[hidden]{display:none}
.record-heading button{font-size:1rem;min-height:44px}
.record-heading .record-toolbar button{display:flex;align-items:center;gap:6px}
.record-form-overflow{position:relative;margin:0;padding:0;border:0;background:transparent}
.record-form-overflow>summary{display:grid;place-items:center;list-style:none;min-width:44px;min-height:44px;padding:8px;cursor:pointer}
.record-form-overflow>summary::-webkit-details-marker{display:none}
.record-form-overflow>.record-actions{position:absolute;inset-inline-end:0;top:100%;z-index:32;display:flex;flex-direction:column;align-items:stretch;min-width:210px;max-height:50dvh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 6px 24px #0006}
.record-window>.record-status,.record-window>.record-message{padding-inline:12px}
.record-window>.record-message:empty{display:none}
.record-inline>.record-heading:has(.record-toolbar[hidden]){display:none}
.record-delete:has(>button[hidden]){display:none}
.record-inline .record-body{padding-bottom:56px}
.record-list-fitted{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
.record-list-fitted>.record-card{height:var(--record-fit-height,112px);min-height:0!important;padding:8px 10px!important;position:relative;display:flex;flex-direction:column;gap:0}
.record-list-fitted .record-card-main{min-height:0;flex:1;display:flex;flex-direction:column;align-items:stretch;gap:0}
.record-list-fitted .record-open{padding:0;min-height:0;flex:1;align-items:center;text-align:start}
.record-list-fitted .record-title{font-size:1.05rem;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-inline-end:104px;display:block}
.record-list-fitted .record-identity{display:flex;flex-direction:column;gap:2px;min-width:0;width:100%}
.record-list-fitted .record-identity>.muted{font-size:.75rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-inline-end:48px}
.record-list-fitted .record-fields{order:2;display:block;margin:0;padding-inline-end:48px;font-size:.8rem;line-height:1.25}
.record-list-fitted .record-fields dd{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.record-list-fitted .record-badges{order:3;margin:0;line-height:1.2}
.record-list-fitted .record-badges .pill{font-size:.7rem;padding:0 4px;min-height:0}
.record-list-fitted .record-card-corner{position:absolute;top:0;inset-inline-end:6px;z-index:2;flex-direction:row-reverse}
.record-list-fitted .record-card-corner button{width:44px;height:44px;min-height:44px;max-width:44px;padding:8px;justify-content:center}
.record-list-fitted .sharing-status>span{display:none}
.record-list-fitted .record-overflow{position:absolute;bottom:0;inset-inline-end:6px;z-index:3;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.record-list-fitted .record-overflow>summary{width:44px;height:44px;padding:0}
.record-list-fitted>.record-card{overflow:visible}
.record-list-fitted>.record-card:has(.record-overflow[open]){z-index:5}
.record-list-fitted .record-thumbnail{height:calc(var(--record-fit-height,112px)*.25 - 8px)!important;max-height:calc(var(--record-fit-height,112px)*.25 - 8px);width:auto!important;aspect-ratio:1;align-self:flex-start;min-height:0!important;padding:0;flex:none}
.record-list-fitted .record-thumbnail>*{height:100%!important;min-height:0!important;max-height:100%;width:100%!important;aspect-ratio:1}
.record-list-landscape .record-identity>.muted{display:none}
.record-list-landscape .record-title{font-size:1rem}
.record-list-landscape .record-thumbnail{position:absolute;top:6px;inset-inline-start:8px}
.record-list-landscape .record-card:has(.record-thumbnail) .record-title{padding-inline-start:calc(var(--record-fit-height)*.25)}
.record-list-landscape>.record-card{padding-block:4px!important}
.record-list-landscape .record-identity{gap:0}
.record-list-landscape .record-card-corner{inset-inline-end:54px}
.record-list-landscape .record-title{padding-inline-end:148px}
.record-title-subtitle{display:none;font-weight:normal;font-size:.8rem;color:var(--muted)}
.record-list-landscape .record-title-subtitle{display:inline}

/* Profile and cover are independent gallery references. */
.vehicle-image-pair{position:relative;width:100%;min-width:0;aspect-ratio:1.35;padding-bottom:18%;isolation:isolate}
.vehicle-cover-image{position:relative;width:100%;height:100%;overflow:hidden;border-radius:var(--radius-card,16px);background:var(--surface)}
.vehicle-cover-image>.vehicle-photo-edit-button,.vehicle-cover-image>.vehicle-picture{width:100%;height:100%;max-height:none}
.vehicle-cover-image .vehicle-photo-preview{width:100%;height:100%;aspect-ratio:auto}
.vehicle-cover-image img{width:100%;height:100%;object-fit:cover}
.vehicle-cover-brand{position:absolute;inset:6px auto auto 6px;max-width:22%;max-height:32%;z-index:2;pointer-events:none}
.vehicle-profile-image{position:absolute;inset:auto auto 0 5%;width:38%;aspect-ratio:1;z-index:3}
.vehicle-profile-image>.vehicle-photo-edit-button,.vehicle-profile-image>.vehicle-picture{width:100%;height:100%;border-radius:50%;overflow:hidden}
.vehicle-profile-image .vehicle-photo-preview{aspect-ratio:1;width:100%;height:100%}
.vehicle-profile-image .vehicle-photo-edit-button>span{font-size:0;inset:auto 0 0 auto;width:24px;height:24px}
.vehicle-profile-image .vehicle-photo-edit-button>span svg{width:16px;height:16px}
.vehicle-edit-header>.vehicle-image-pair{width:clamp(96px,24vw,190px);align-self:start}
.vehicle-image-pair.compact{height:100%;width:100%;padding-bottom:15%;aspect-ratio:auto}
.vehicle-image-pair.compact .vehicle-cover-brand{inset:2px auto auto 2px}
.vehicle-image-pair.compact .vehicle-profile-image{width:38%}

.vehicle-image-pair,.vehicle-image-pair.compact{box-sizing:border-box;padding-bottom:0}
.vehicle-cover-image{height:82%}
.vehicle-cover-image>.vehicle-photo-edit-button>span{font-size:0;width:28px;height:28px;inset:auto 3px 3px auto}
.vehicle-cover-image>.vehicle-photo-edit-button>span svg{width:18px;height:18px}

.vehicle-cover-image .photo,.vehicle-profile-image .photo{width:100%;height:100%;max-height:none;margin:0;aspect-ratio:auto}
.vehicle-cover-image .photo img,.vehicle-profile-image .photo img{width:100%;height:100%;max-height:none;object-fit:cover}

.settings-thin-list{display:flex;flex-direction:column;gap:8px;width:100%}
.settings-thin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:12px 16px;text-align:start}

/* Shared Capture/feedback controls reserve a row above the navigation. */
#global-capture{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:calc(var(--footer-height,64px) + 6px);width:44px;height:44px;min-width:44px;padding:8px;z-index:22;background:var(--glass-control,var(--panel));backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:50%}
#global-capture[hidden]{display:none}
body.has-global-capture #main{padding-bottom:calc(var(--footer-height,64px) + 66px)}
body.has-global-capture .marvin-dock{bottom:calc(100% + 60px)}
body.has-global-capture .marvin-bubble{bottom:calc(100% + 120px)}
