/* Direction 2 visual layer — consumes only wedding-workspace-tokens.css */
:root{color:var(--c-text-1);background:var(--c-bg);font-family:var(--font-body)}
*,*::before,*::after{font-variant-numeric:tabular-nums}
body{background:var(--c-bg);color:var(--c-text-1);font:var(--t-body)}
button,input,select,textarea{font:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring-focus)}
button{min-height:var(--tap-min)}
.app-shell{background:var(--c-bg)}
.sidebar{background:var(--c-wine-deep);color:var(--c-on-wine);box-shadow:var(--shadow-card)}
.brand{padding:var(--sp-6)}
.brand-title{font:var(--t-h2);color:var(--c-on-wine)}
.brand-title small,.brand-title em,.sidebar-account-label,.storage-meta{font:var(--t-caption);color:color-mix(in srgb,var(--c-on-wine) 74%,transparent)}
.brand-mark{border-radius:var(--r-control);border-color:color-mix(in srgb,var(--c-on-wine) 30%,transparent)}
.nav{gap:var(--sp-1);padding:var(--sp-4)}
.nav-item{min-height:var(--h-btn);border-radius:var(--r-control);color:color-mix(in srgb,var(--c-on-wine) 88%,transparent);font:var(--t-title);text-align:start}
.nav-item:hover{background:color-mix(in srgb,var(--c-on-wine) 12%,transparent)}
.nav-item.active{background:var(--c-wine-tint);border-inline-start:3px solid var(--c-gold);color:var(--c-wine)}
.nav-count{background:color-mix(in srgb,var(--c-on-wine) 14%,transparent);color:var(--c-on-wine)}
.storage-card,.sidebar-account{border-color:color-mix(in srgb,var(--c-on-wine) 24%,transparent);background:color-mix(in srgb,var(--c-on-wine) 8%,transparent);border-radius:var(--r-card)}
.storage-progress,.progress{background:color-mix(in srgb,var(--c-surface) 24%,transparent)}
.storage-progress i,.progress i{background:var(--c-gold)}
.sidebar-account-action{color:var(--c-on-wine)}
.main{max-width:var(--container);margin-inline:auto;padding:var(--sp-8) var(--gutter) var(--sp-16)}
.topbar{background:var(--c-surface);border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.view h1,.view h2,.task-page-head h2,.reference-page-head h2,.gallery-intro h2{font:var(--t-h1);color:var(--c-wine)}
.eyebrow,.section-head small,.view p,.task-page-head p,.reference-page-head p{color:var(--c-text-2)}
.button,.task-filter-toggle,.schedule-add-button{min-height:var(--h-btn);border-radius:var(--r-pill);border-color:var(--c-border);font:var(--t-title);box-shadow:none}
.button.primary,.schedule-add-button{background:var(--c-wine);border-color:var(--c-wine);color:var(--c-on-wine)}
.button.primary:hover,.schedule-add-button:hover{background:var(--c-wine-hover);border-color:var(--c-wine-hover)}
.button.subtle,.button.secondary,.task-filter-toggle{background:var(--c-surface);color:var(--c-wine)}
.button.subtle:hover,.button.secondary:hover,.task-filter-toggle:hover{background:var(--c-wine-tint);border-color:var(--c-rose)}
.button:disabled{opacity:.4}
input,select,textarea{min-height:var(--h-input);border-color:var(--c-border);border-radius:var(--r-control);background:var(--c-surface);color:var(--c-text-1)}
input:focus,select:focus,textarea:focus{border-color:var(--c-wine);box-shadow:var(--ring-focus)}
.paper-card,.metric-card,.next-panel,.budget-summary>div,.task-group,.guest-summary,.schedule-share-panel,.gallery-intro,.inspiration-panel,.invite-setting-card,.invite-preview-pane{background:var(--c-surface);border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.countdown-panel{position:relative;overflow:hidden;background:var(--grad-hero);border-radius:var(--r-card);box-shadow:var(--shadow-pop);color:var(--c-on-wine)}
.countdown-panel::before,.countdown-panel::after{content:"";position:absolute;pointer-events:none;width:var(--sp-16);height:var(--sp-16);border-radius:var(--r-pill);background:radial-gradient(circle,color-mix(in srgb,var(--c-rose) 68%,transparent),transparent 70%)}
.countdown-panel::before{inset-inline-end:var(--sp-6);inset-block-start:calc(var(--sp-16) * -1)}
.countdown-panel::after{inset-inline-start:calc(var(--sp-16) * -1);inset-block-end:calc(var(--sp-8) * -1)}
.countdown-panel>*{position:relative;z-index:1}.countdown-panel .eyebrow,.countdown-panel .wedding-moment,.countdown-panel .progress-row{color:color-mix(in srgb,var(--c-on-wine) 84%,transparent)}
.countdown strong,.budget-summary>div:first-child strong{font:var(--t-display);font-variant-numeric:tabular-nums}
.metric-grid{gap:var(--sp-4)}
.metric-card{padding:var(--card-pad);text-align:start}.metric-card:hover{background:var(--c-surface-tint);border-color:var(--c-rose)}
.metric-card strong{font:var(--t-h1);color:var(--c-wine)}
.overview-rhythm-row{gap:var(--sp-6)}
.timeline{display:grid;gap:var(--sp-4);padding-inline-start:var(--sp-6);border-inline-start:1px solid var(--c-hairline)}
.timeline>div{position:relative;display:grid;gap:var(--sp-1)}
.timeline>div::before{content:"";position:absolute;inset-inline-start:calc(var(--sp-6) * -1 - var(--sp-2));inset-block-start:var(--sp-2);width:var(--sp-3);height:var(--sp-3);border-radius:var(--r-pill);background:var(--c-wine);border:var(--sp-1) solid var(--c-wine-tint)}
.timeline b{font:var(--t-title);color:var(--c-wine)}.timeline span{color:var(--c-text-2)}
.overview-share-center{padding:var(--card-pad)}.overview-share-grid{gap:var(--sp-3)}
.overview-share-item{border-color:var(--c-hairline);border-radius:var(--r-control);background:var(--c-surface-tint)}
.task-page-head,.reference-page-head,.gallery-intro{border-color:var(--c-hairline)}
.task-filter-bar{gap:var(--sp-3);padding:var(--sp-3);background:var(--c-surface);border:1px solid var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.task-scope button,.schedule-day-tabs button,.guest-view-switch button{min-height:var(--h-chip);border-radius:var(--r-pill);border-color:var(--c-border);color:var(--c-wine);background:var(--c-surface)}
.task-scope button.selected,.schedule-day-tabs button.active,.guest-view-switch button.active{background:var(--c-wine);border-color:var(--c-wine);color:var(--c-on-wine)}
.task-group{overflow:hidden}.task-group-head{min-height:var(--h-row);background:var(--c-surface-tint);border-color:var(--c-hairline)}
.group-progress{height:var(--sp-2);background:var(--c-surface-tint);border-radius:var(--r-pill)}.group-progress b{background:var(--c-wine);border-radius:var(--r-pill)}
.task-row{min-height:var(--h-row);border-color:var(--c-hairline)}.task-row:hover{background:var(--c-surface-tint)}
.task-row .task-actions{opacity:0}.task-row:hover .task-actions,.task-row:focus-within .task-actions{opacity:1}
.budget-summary{gap:var(--sp-4)}.budget-summary>div{padding:var(--card-pad);border-color:var(--c-hairline)}
.budget-summary>div:first-child{background:var(--grad-hero);color:var(--c-on-wine)}.budget-summary>div:first-child span,.budget-summary>div:first-child small,.budget-summary>div:first-child strong{color:var(--c-on-wine)}
.budget-summary>div:not(:first-child){background:var(--c-wine-tint)}.budget-summary>div:not(:first-child) strong{color:var(--c-wine);font:var(--t-h1)}
.budget-group,.budget-card{border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.budget-progress,.budget-bar-track{height:var(--sp-2);background:var(--c-surface-tint);border-radius:var(--r-pill)}.budget-progress i,.budget-bar-track i{background:var(--c-wine);border-radius:var(--r-pill)}
.budget-over,.budget-overrun{color:var(--c-danger);background:var(--c-danger-tint);border-radius:var(--r-pill)}
.guest-summary,.seat-map,.guest-list,.guest-table{border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.seat-chip{border-radius:var(--r-pill);border-color:var(--c-rose);background:var(--c-wine-tint);color:var(--c-wine)}.seat-chip.occupied{background:var(--c-wine);color:var(--c-on-wine)}
.guest-status{border-radius:var(--r-pill);background:var(--c-success-tint);color:var(--c-success)}.guest-status.pending{background:var(--c-warning-tint);color:var(--c-warning)}
.schedule-share-panel{padding:var(--card-pad);gap:var(--sp-4)}.schedule-share-copy>a{display:inline-flex;align-items:center;min-height:var(--h-btn);padding-inline:var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-control);background:var(--c-surface-tint);color:var(--c-wine);font:var(--t-title);text-decoration:none}
.schedule-share-copy>a[aria-disabled="true"]{color:var(--c-text-3);pointer-events:none}
.schedule-day-tabs{justify-content:flex-start;overflow-x:auto;scroll-snap-type:inline mandatory}.schedule-day-tabs button{scroll-snap-align:start}
.schedule-list::before{background:var(--c-hairline)}.schedule-item{border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.schedule-item:hover{background:var(--c-surface-tint)}
.assignment-stat,.assignment-group,.assignment-card{border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.assignment-progress{height:var(--sp-2);background:var(--c-surface-tint)}.assignment-progress i{background:var(--c-wine)}
.inspiration-grid .inspiration-card,.photo-grid .photo-card{border-radius:var(--r-image);overflow:hidden;border-color:var(--c-hairline);box-shadow:var(--shadow-card)}
.inspiration-grid .inspiration-card img{aspect-ratio:16/10;object-fit:cover;object-position:center}.photo-grid .photo-card img{aspect-ratio:3/4;object-fit:cover;object-position:center}
.inspiration-empty,.gallery-empty{background:var(--c-surface-tint);border-color:var(--c-hairline);border-radius:var(--r-card);color:var(--c-text-2)}
.photo-select{inline-size:var(--sp-6);block-size:var(--sp-6);border-color:var(--c-wine);accent-color:var(--c-wine)}
.invite-editor-layout{gap:var(--sp-6)}.invite-setting-card{padding:var(--card-pad)}.invite-setting-card label{font:var(--t-caption);color:var(--c-text-2)}.invite-preview-pane{box-shadow:var(--shadow-pop)}
.settings-card,.account-card{border-color:var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.empty-state,.error-state{border-radius:var(--r-card);background:var(--c-surface-tint);border-color:var(--c-hairline)}
.error-state{color:var(--c-danger);background:var(--c-danger-tint)}
@media (min-width:1024px){.main{padding-inline:var(--gutter)}.budget-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:768px) and (max-width:1023px){.sidebar{inline-size:var(--sp-16)}.sidebar .brand-title,.sidebar .nav-item:not(.active)::after,.sidebar .sidebar-bottom{display:none}.sidebar .nav{padding:var(--sp-2)}.sidebar .nav-item{font-size:0;text-align:center}.sidebar .nav-item.active{border-inline-start:0;border-block-end:3px solid var(--c-gold)}}
@media (max-width:767px){
 body{padding-bottom:calc(var(--sp-16) + var(--sp-6))}.main{padding:0 0 calc(var(--sp-16) + var(--sp-6));max-width:none}.topbar{position:sticky;inset-block-start:0;z-index:20;border-radius:0;border-inline:0}.view{padding:var(--card-pad-m)}
 .mobile-topnav{background:var(--c-surface)}.mobile-top-links{padding:var(--sp-2) var(--sp-4);gap:var(--sp-2);background:var(--c-surface-tint);overflow-x:auto}.mobile-top-links .nav-item{min-height:var(--h-chip);color:var(--c-wine);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-pill);font:var(--t-caption);white-space:nowrap}.mobile-top-links .nav-item.active{background:var(--c-wine);border-color:var(--c-wine);color:var(--c-on-wine)}
 .task-page-head,.reference-page-head,.gallery-intro{position:sticky;inset-block-start:calc(var(--h-btn) + var(--sp-8));z-index:10;background:var(--c-bg);padding-block:var(--sp-3)}.task-page-head h2,.reference-page-head h2,.gallery-intro h2{font:var(--t-h1)}
 .hero-grid,.overview-rhythm-row,.two-col{grid-template-columns:1fr}.countdown-panel{padding:var(--card-pad-m)}.countdown strong{font:var(--t-display)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.metric-card{padding:var(--card-pad-m)}.metric-card strong{font:var(--t-h2)}
 .task-filter-bar{position:relative}.task-filter-primary{display:grid;grid-template-columns:minmax(0,1fr) auto}.task-filter-advanced{display:none}.task-filter-bar.filters-open .task-filter-advanced{position:fixed;inset-inline:0;inset-block-end:0;z-index:50;display:grid;grid-template-columns:1fr;gap:var(--sp-3);padding:var(--card-pad);background:var(--c-surface);border-radius:var(--r-card) var(--r-card) 0 0;box-shadow:var(--shadow-pop)}.task-date-separator{display:none}
 .task-row .task-actions{opacity:1}.budget-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.budget-summary>div{padding:var(--card-pad-m)}.budget-summary>div:first-child{grid-column:1/-1}.budget-summary>div:first-child strong{font:var(--t-h1)}.budget-summary>div:not(:first-child) strong{font:var(--t-title)}
 .schedule-share-panel{padding:var(--card-pad-m);align-items:stretch}.schedule-share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.schedule-share-actions .button{padding-inline:var(--sp-2)}.schedule-day-tabs{margin-inline:calc(var(--card-pad-m) * -1);padding-inline:var(--card-pad-m)}
 .invite-editor-layout{grid-template-columns:1fr}.invite-setting-card{padding:var(--card-pad-m)}.inspiration-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}
 .mobile-bottom-nav{border-color:var(--c-hairline);background:var(--c-surface);box-shadow:var(--shadow-pop);backdrop-filter:none}.mobile-bottom-nav button{color:var(--c-text-2)}.mobile-bottom-nav button.active{color:var(--c-wine)}
}

/* v2.5.2 recovery guard — legacy desktop layers must never suppress the active workbench view. */
@media (min-width:901px){
  #workbenchMain > .desktop-masthead{display:flex!important;visibility:visible!important;opacity:1!important}
  #workbenchMain > #overview.active-view{display:grid!important;visibility:visible!important;opacity:1!important;position:relative!important}
  #workbenchMain > .view.active-view:not(#overview){display:block!important;visibility:visible!important;opacity:1!important;position:relative!important}
}

/* v2.5.3 desktop shell recovery — the fixed navigation must not occupy document flow. */
@media (min-width:901px){
  .app-shell{display:block!important}
  .sidebar{position:fixed!important;inset:0 auto 0 0!important;width:250px!important;height:100dvh!important;min-height:100dvh!important;overflow-y:auto!important}
  #workbenchMain{width:calc(100% - 250px)!important;max-width:none!important;min-height:100dvh;margin:0 0 0 250px!important;padding:0 var(--sp-8) var(--sp-16)!important}
}

/* v2.4.3 — locked visual-system compliance across every workbench view */
@media (min-width:1024px){
 .main{max-width:var(--container);margin-inline:auto;padding:var(--sp-8) var(--gutter) var(--sp-16)}.sidebar::after,.metric-card::after{content:none}
 #overview{gap:var(--sp-6)}.overview-rhythm-row{grid-template-columns:1fr}.timeline{grid-template-columns:1fr;gap:var(--sp-4);padding-inline-start:var(--sp-6);border-inline-start:1px solid var(--c-hairline)}.timeline>div{padding-inline-start:0}.timeline>div::before{inset-inline-start:calc(var(--sp-6) * -1 - var(--sp-2));inset-block-start:var(--sp-2)}
 .countdown-panel{min-block-size:0}.next-panel{padding:var(--card-pad)}.overview-rhythm-row .paper-card{min-block-size:0;padding:var(--card-pad)}
}
.round-check,.schedule-check{inline-size:var(--sp-6);block-size:var(--sp-6);aspect-ratio:1;flex:0 0 var(--sp-6);border-radius:var(--r-pill);border-color:var(--c-rose)}
.round-check:checked,.schedule-check.done{background:var(--c-wine);border-color:var(--c-wine);box-shadow:inset 0 0 0 var(--sp-1) var(--c-surface)}
.task-filter-toggle[data-count]:not([data-count=""]){position:relative}.task-filter-toggle[data-count]:not([data-count=""])::after{content:attr(data-count);display:inline-grid;place-items:center;min-inline-size:var(--sp-4);block-size:var(--sp-4);margin-inline-start:var(--sp-1);border-radius:var(--r-pill);background:var(--c-wine);color:var(--c-on-wine);font:var(--t-caption)}
.budget-visual{margin-block:var(--sp-6);padding:var(--card-pad);background:var(--c-surface);border:1px solid var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.budget-stack{min-block-size:var(--sp-2);overflow:hidden;border-radius:var(--r-pill);background:var(--c-surface-tint)}.budget-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin-top:var(--sp-4)}.budget-legend span{display:flex;align-items:center;min-height:var(--h-chip);padding-inline:var(--sp-3);border:1px solid var(--c-hairline);border-radius:var(--r-pill);background:var(--c-surface-tint);color:var(--c-text-2);font:var(--t-caption)}.budget-legend span::before{content:"";inline-size:var(--sp-3);block-size:var(--sp-3);margin-inline-end:var(--sp-2);border-radius:var(--r-pill);background:var(--budget-color)}.budget-empty{display:grid;place-items:center;min-block-size:calc(var(--sp-16) * 2)}.budget-empty-copy{color:var(--c-text-2);font:var(--t-caption)}.budget-module-over,.budget-over{display:inline-flex;align-items:center;min-height:var(--h-chip);padding-inline:var(--sp-3);border-radius:var(--r-pill);background:var(--c-danger-tint);color:var(--c-danger);font:var(--t-caption)}
.guest-registry-tabs{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.guest-registry-tabs button{min-height:var(--h-chip);padding-inline:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);color:var(--c-wine);font:var(--t-caption)}.guest-registry-tabs button.active{background:var(--c-wine);border-color:var(--c-wine);color:var(--c-on-wine)}.seating-summary{padding:var(--card-pad);border:1px solid var(--c-hairline);border-radius:var(--r-card);background:var(--c-surface);box-shadow:var(--shadow-card)}.seating-table{border-radius:var(--r-control);background:var(--c-wine-tint);color:var(--c-wine)}.seating-table.unassigned{border-style:dashed;background:var(--c-surface-tint);color:var(--c-text-2)}
.schedule-tabs{display:flex;justify-content:flex-start;gap:var(--sp-2);overflow-x:auto;margin-block:var(--sp-6);scroll-snap-type:inline mandatory}.schedule-tabs button{min-height:var(--h-chip);padding-inline:var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);color:var(--c-wine);font:var(--t-caption);white-space:nowrap;scroll-snap-align:start}.schedule-tabs button.active{background:var(--c-wine);border-color:var(--c-wine);color:var(--c-on-wine)}.schedule-day-list{border-inline-start:1px solid var(--c-hairline)}.schedule-item::before{border-color:var(--c-wine);background:var(--c-surface)}.schedule-time{font-family:var(--font-display);color:var(--c-wine)}
.assignment-people{display:flex;gap:var(--sp-2);overflow-x:auto;padding-block:var(--sp-2)}.assignment-people button{min-height:var(--h-chip);border-radius:var(--r-pill);border-color:var(--c-border);background:var(--c-surface);color:var(--c-wine)}.assignment-people button.active{background:var(--c-wine);border-color:var(--c-wine);color:var(--c-on-wine)}.assignment-cards{gap:var(--sp-4)}.assignment-card{background:var(--c-surface);border:1px solid var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.inspiration-phase-head{margin-top:var(--sp-8)}.inspiration-phase-head span{font:var(--t-h2);color:var(--c-text-1);background:transparent!important;padding:0!important}.inspiration-phase-head::after{content:"";display:block;block-size:1px;flex:1;background:var(--c-gold)}.inspiration-guide{background:var(--c-surface);border:1px solid var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.inspiration-media-image,.inspiration-media-image img{aspect-ratio:16/10;object-fit:cover;object-position:center;border-radius:var(--r-image)}.inspiration-media-empty{display:grid;place-items:center;min-block-size:calc(var(--sp-16) * 2);background:var(--c-surface-tint);border-radius:var(--r-image);color:var(--c-text-2);font:var(--t-caption)}
.gallery-photo-groups h3{font:var(--t-h2);color:var(--c-text-1)}.gallery-photo-groups h3 small{display:inline-flex;min-height:var(--h-chip);align-items:center;margin-inline-start:var(--sp-2);padding-inline:var(--sp-2);border-radius:var(--r-pill);background:var(--c-wine-tint);color:var(--c-wine);font:var(--t-caption)}.photo-card{aspect-ratio:3/4;border-radius:var(--r-image);box-shadow:var(--shadow-card)}.photo-card img{object-position:center}.gallery-select,.photo-select{inline-size:var(--sp-6);block-size:var(--sp-6)}
.invite-kind-tabs{margin-top:var(--sp-3)}.invite-preview-pane,.invite-phone{border-top:1px solid var(--c-gold);border-radius:var(--r-card);box-shadow:var(--shadow-pop)}.invite-editor-form .field label{font:var(--t-caption);color:var(--c-text-2)}.permission-callout{border-inline-start:3px solid var(--c-wine);background:var(--c-wine-tint);color:var(--c-text-1)}.member-card{border:1px solid var(--c-hairline);border-radius:var(--r-card);background:var(--c-surface);box-shadow:var(--shadow-card)}.permission.allowed{background:var(--c-wine-tint);border-color:var(--c-rose);color:var(--c-wine)}
@media (max-width:767px){.budget-visual{padding:var(--card-pad-m)}.budget-legend{gap:var(--sp-1)}.budget-legend span{padding-inline:var(--sp-2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.guest-stats{display:flex;gap:var(--sp-2);overflow-x:auto;white-space:nowrap}.guest-table-wrap table{min-width:0}.guest-table-wrap thead{display:none}.guest-table-wrap tbody,.guest-table-wrap tr,.guest-table-wrap td{display:block}.guest-table-wrap tr{padding:var(--card-pad-m);border-bottom:1px solid var(--c-hairline);background:var(--c-surface)}.guest-table-wrap td{display:grid;grid-template-columns:var(--sp-16) minmax(0,1fr);gap:var(--sp-2);padding-block:var(--sp-1);border:0}.guest-table-wrap td::before{content:attr(data-label);color:var(--c-text-2);font:var(--t-caption)}.gallery-intro{padding:var(--card-pad-m)}.gallery-photo-groups{padding-bottom:calc(var(--sp-16) * 2)}.gallery-intro::after{content:"＋";position:fixed;z-index:20;inset-inline-end:var(--sp-6);inset-block-end:calc(var(--sp-16) + var(--sp-6));display:grid;place-items:center;inline-size:var(--tap-min);block-size:var(--tap-min);border-radius:var(--r-pill);background:var(--c-wine);color:var(--c-on-wine);box-shadow:var(--shadow-pop);font:var(--t-h1);pointer-events:none}.invite-preview-anchor{position:sticky;inset-block-start:var(--sp-2);z-index:20;border-radius:var(--r-pill)} }

/* Final compliance fixes: decorative imagery stays in the hero; mobile upload stays a real button. */
.sidebar::after,.metric-card::after,.gallery-intro::after{content:none}
.budget-stack{display:flex}
@media (max-width:767px){
 #uploadPhoto{position:fixed;z-index:21;inset-inline-end:var(--sp-6);inset-block-end:calc(var(--sp-16) + var(--sp-6));display:grid;place-items:center;inline-size:var(--tap-min);block-size:var(--tap-min);min-height:var(--tap-min);padding:0;border-radius:var(--r-pill);font-size:0;box-shadow:var(--shadow-pop)}
 #uploadPhoto::before{content:"＋";font:var(--t-h1);line-height:1}
}

/* v2.4.4 — desktop shell must reserve space for the fixed sidebar. */
@media (min-width:901px){
 .main{width:calc(100% - 250px);max-width:none;margin:0 0 0 250px;padding:var(--sp-8) var(--gutter) var(--sp-16)}
}

/* v2.5 reference layout — master geometry comes after every legacy layer. */
@media (min-width:901px){
 body{background:var(--c-bg)}
 .main{position:relative;padding:0 var(--sp-8) var(--sp-16);background:linear-gradient(180deg,var(--c-surface-tint) 0,var(--c-bg) 17rem)}
 .desktop-masthead{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:var(--sp-16);margin-inline:calc(var(--sp-8) * -1);padding:var(--sp-3) var(--sp-8);border-bottom:1px solid var(--c-hairline);background:var(--c-surface);overflow:hidden}
 .desktop-masthead::after{content:"";position:absolute;inset:auto calc(var(--sp-6) * -1) calc(var(--sp-16) * -1) auto;width:calc(var(--sp-16) * 4);height:calc(var(--sp-16) * 3);background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.66;pointer-events:none}
 .desktop-masthead-brand{display:flex;align-items:center;gap:var(--sp-3);position:relative;z-index:1}.desktop-masthead-brand img{width:var(--sp-8);height:var(--sp-8);object-fit:contain;border-radius:var(--r-control);background:var(--c-surface)}.desktop-masthead-brand span{display:grid;gap:var(--sp-1)}.desktop-masthead-brand b{font:var(--t-h2);color:var(--c-wine)}.desktop-masthead-brand small{font:var(--t-caption);color:var(--c-text-2)}.desktop-masthead em{position:relative;z-index:1;margin-inline-end:calc(var(--sp-16) * 2);color:var(--c-rose);font:italic 500 18px/1.1 var(--font-display);text-align:center}
 .topbar{display:none}
 .sidebar{background:var(--grad-hero)}.sidebar::after{content:"";z-index:0;opacity:.54}.sidebar>*{position:relative;z-index:1}
 .brand{margin:0;padding:var(--sp-6) var(--sp-3) var(--sp-8)}.nav{padding:0 var(--sp-3)}.nav-item{padding-inline:var(--sp-3)}.sidebar-bottom{padding-inline:var(--sp-3)}
 .view{max-width:calc(var(--container) + var(--sp-16));margin-inline:auto;padding-top:var(--sp-6)}
 .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);gap:var(--sp-4)}.countdown-panel{min-height:280px;padding:var(--sp-8)}.next-panel{min-height:280px;padding:var(--sp-6)}
 .metric-grid{gap:var(--sp-3);margin-block:var(--sp-4)}.metric-card{min-height:156px;padding:var(--sp-4)}.metric-card::after{content:""}.metric-card:nth-child(4n)::after,.metric-card:nth-child(4n+2)::after{content:"";position:absolute;inset:auto calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) auto;width:var(--sp-16);height:var(--sp-16);background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.45;pointer-events:none}.metric-card{position:relative;overflow:hidden}
 .overview-rhythm-row{gap:var(--sp-4)}.overview-rhythm-row .paper-card,.overview-share-center{padding:var(--sp-6)}.timeline{padding-left:var(--sp-6)}
 .task-page-head,.reference-page-head{padding-top:var(--sp-6);margin-bottom:var(--sp-4)}.task-page-head h2,.reference-page-head h2{font-size:34px}.task-list,.task-group{border:1px solid var(--c-hairline);box-shadow:var(--shadow-card)}
 .budget-summary{grid-template-columns:1.08fr 1fr 1fr;gap:var(--sp-3);background:transparent}.budget-summary>div{min-height:184px;border:1px solid var(--c-hairline);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.budget-summary>div:first-child{position:relative;overflow:hidden}.budget-summary>div:first-child::after{content:"";position:absolute;inset:auto calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) auto;width:calc(var(--sp-16) * 2);height:calc(var(--sp-16) * 2);background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.76}.budget-summary>div:not(:first-child){position:relative;overflow:hidden}.budget-summary>div:not(:first-child)::after{content:"";position:absolute;inset:auto calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) auto;width:var(--sp-16);height:var(--sp-16);background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.42}
 .budget-visual{position:relative;overflow:hidden}.budget-visual::after{content:"";position:absolute;inset:auto calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) auto;width:calc(var(--sp-16) * 1.5);height:calc(var(--sp-16) * 1.5);background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.36;pointer-events:none}
}
@media (max-width:900px){.desktop-masthead{display:none}}

/* v2.4.1 — reference-led overview composition, not a colour-only overlay */
@media (min-width:768px){
 .app-shell{position:relative;isolation:isolate}.main{max-width:none;width:100%;margin:0;padding:var(--sp-8) var(--sp-8) var(--sp-16)}
 .sidebar{position:relative;overflow:hidden}.sidebar::after{content:"";position:absolute;z-index:-1;inset-inline-end:calc(var(--sp-16) * -1);inset-block-end:calc(var(--sp-16) * -1);inline-size:calc(var(--sp-16) * 4);block-size:calc(var(--sp-16) * 3);background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.42;pointer-events:none}
 #overview{display:grid;gap:var(--sp-6);max-width:none}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.22fr);gap:var(--sp-6);align-items:stretch}
 .countdown-panel{display:flex;flex-direction:column;justify-content:center;min-block-size:calc(var(--sp-16) * 4);padding:var(--sp-8);background:var(--grad-hero)}
 .countdown-panel::before{inset:auto calc(var(--sp-16) * -1) calc(var(--sp-16) * -1) auto;width:calc(var(--sp-16) * 4);height:calc(var(--sp-16) * 3);border-radius:0;background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.72}.countdown-panel::after{display:none}
 .next-panel{display:flex;flex-direction:column;justify-content:center;padding:var(--sp-8)}.next-task{min-height:var(--h-row);padding-block:var(--sp-3)}
 .metric-grid{margin:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}.metric-card{position:relative;min-block-size:calc(var(--sp-16) * 2);overflow:hidden}.metric-card::after{content:"";position:absolute;inset-inline-end:calc(var(--sp-6) * -1);inset-block-end:calc(var(--sp-6) * -1);inline-size:var(--sp-16);block-size:var(--sp-16);border-radius:var(--r-pill);background:color-mix(in srgb,var(--c-rose) 20%,transparent);pointer-events:none}
 .overview-rhythm-row{grid-template-columns:1fr;gap:var(--sp-6)}.overview-rhythm-row .paper-card{padding:var(--sp-8);min-block-size:calc(var(--sp-16) * 2)}.timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);padding:0;border:0}.timeline>div{padding-inline-start:var(--sp-6)}.timeline>div::before{inset-inline-start:0;inset-block-start:var(--sp-2)}
 .overview-share-center{min-block-size:auto}.overview-share-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:767px){
 .countdown-panel{background:var(--grad-hero);min-block-size:calc(var(--sp-16) * 3);padding:var(--sp-8) var(--card-pad-m)}
 .countdown-panel::before{inset:auto calc(var(--sp-6) * -1) calc(var(--sp-6) * -1) auto;width:calc(var(--sp-16) * 2);height:calc(var(--sp-16) * 2);border-radius:0;background:url("assets/watercolor-floral-corner-v1.png") right bottom/contain no-repeat;opacity:.56}.countdown-panel::after{display:none}
 .round-check{inline-size:var(--sp-4);block-size:var(--sp-4);flex:0 0 var(--sp-4);aspect-ratio:1}
 .overview-rhythm-row .paper-card{padding:var(--card-pad-m)}.timeline{gap:var(--sp-4)}.timeline>div{padding-inline-start:var(--sp-6)}.timeline>div::before{inset-inline-start:0}
}

/* v2.5.4 navigation recovery: legacy overview rules must never keep it above the selected view. */
@media (min-width:768px){
  #workbenchMain > .view:not(.active-view){
    display:none!important;
    visibility:hidden!important;
  }
  #workbenchMain > #overview.active-view{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
  }
  #workbenchMain > .view.active-view:not(#overview){
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
}
