.team-registration { max-width: 540px; margin-top: 24px; }
.team-registration h2 { font-size: 22px; }
.team-consent { display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.5; margin:16px 0; }
.team-consent input { width:22px; height:22px; flex:0 0 22px; accent-color:var(--ui-accent); margin-top:1px; }
.team-consent a { color:var(--ui-accent); text-decoration:underline; }
.team-error { color:var(--ui-danger); }
.team-role { display:grid; gap:3px; padding:10px 12px; background:var(--ui-selected); border-radius:12px; margin-bottom:12px; font-size:13px; }
.team-role span { color:var(--ui-muted); }
.observer-projects { display:grid; gap:8px; margin:12px 0; }
.observer-projects h2 { font-size:16px; }
.observer-mode :is([data-do="buy-confirm"],[data-do="expert-open"],.expert-row,.team-hire-button,[data-do="hire"],[data-do="finish-confirm"],[data-do="save"],[data-do="remove-saved"],[data-do="next"],[data-do="restart"],[data-do="buy"]) { display:none!important; }
.team-admin-card { padding:16px; border:1px solid var(--ui-line); border-radius:12px; margin-block:12px; overflow-wrap:anywhere; }
.team-admin-card details { padding:8px 0; }
.team-admin-card summary { cursor:pointer; min-height:36px; font-weight:700; }
.team-profile { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap:6px 12px; border-top:1px solid var(--ui-line); padding:12px 0; font-size:14px; }
.team-profile dt { color:var(--ui-muted); }
.team-profile dd { margin:0; }
.team-journal { padding-left:20px; }
.team-journal li { padding:8px 0; border-bottom:1px solid var(--ui-line); }
.team-journal p { margin:4px 0; font-size:14px; }
.team-export-links { display:flex; gap:10px; flex-wrap:wrap; margin-block:12px; }
.team-brand-line { display:flex; align-items:center; gap:8px; min-width:0; }
.team-brand-line .brand, .team-brand-line .brand-identity { min-width:0; }
.team-brand-line .wordmark { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-role-badge { display:inline-grid; place-items:center; flex:0 0 30px; width:30px; height:30px; padding:5px; border:1px solid var(--ui-line); border-radius:50%; color:var(--ui-accent); background:var(--ui-card); }
.team-role-badge svg { width:18px; height:18px; }
html .minimal-ui .compact-economy .observer-metric-ready { border-radius:8px; outline:1px solid color-mix(in srgb,var(--ui-accent) 50%,transparent); outline-offset:2px; }
.observer-metric-ready .compact-value, .observer-metric-ready .compact-control { color:var(--ui-accent); }
html .minimal-ui .compact-economy .compact-control { flex-basis:18px; }
html .minimal-ui .compact-economy .compact-control svg { width:18px; height:18px; }
html .minimal-ui .metric-trigger svg, html .minimal-ui .conversion-trigger svg { width:20px; height:20px; }
.game-history details { padding:14px 0; border-bottom:1px solid var(--ui-line); }
.game-history summary { display:flex; justify-content:space-between; gap:14px; cursor:pointer; font-weight:700; }
.game-history small, .game-history li span { display:block; color:var(--ui-muted); font-size:14px; }
.game-history small { margin-top:8px; }
.game-history ol { padding-left:20px; }
.game-history li { padding:8px 0; }
.game-history li strong { display:block; font-size:16px; }
@media (max-width:350px) {
 html .minimal-ui .compact-economy .compact-control { flex-basis:15px; }
 html .minimal-ui .compact-economy .compact-control svg { width:15px; height:15px; }
 .team-brand-line { gap:4px; }
 .team-role-badge { flex-basis:26px; width:26px; height:26px; padding:4px; }
 .topbar:has(.team-role-badge) .bakery-wordmark { max-width:115px; }
}
/* Desktop overview uses the available width; the phone layout stays stacked. */
@media (min-width:1024px) {
 .minimal-ui .shell { max-width:1160px; }
 .minimal-ui .compact-economy { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:16px; grid-template-areas:'funnel forecast' 'funnel money' 'kitchen money'; }
 .compact-economy .economy-forecast { grid-area:forecast; }
 .compact-economy .economy-funnel { grid-area:funnel; }
 .compact-economy .economy-kitchen { grid-area:kitchen; }
 .compact-economy .economy-money { grid-area:money; }
 .compact-economy > section { padding:18px; }
 .compact-economy .funnel-equation { padding-block:16px; --formula-size:23px; }
 .compact-economy .funnel-equation .compact-copy { font-size:14px; }
 .compact-economy .living-expenses[open] .expenses-details { max-height:230px; overflow-y:auto; padding-right:8px; }
 .minimal-ui .shell:has(.compact-economy) .app-footer { margin-top:18px; }

 .game-history { min-width:440px; }
}
@media (min-width:1024px) {
 .minimal-ui .economy-layout .offer-carousel .offers { align-items:stretch; }
 .minimal-ui .economy-layout .offer-carousel .offer:not(:only-child) { flex-basis:calc((100% - 32px)/3); min-width:0; }
 .minimal-ui .offer-carousel .offers::after { display:none; }


 .minimal-ui .offer-carousel .offer-title { font-size:19px; }
}
html .minimal-ui .compact-economy .funnel-equation .observer-metric-ready { border-radius:8px; }

@media (min-width:1024px) {
 .minimal-ui .main-panel:has(.offer-carousel) :is(.offers-context,.offer-heading,.offer-carousel) { max-width:none; width:100%; }
 .minimal-ui .main-panel:has(.offer-carousel) .decision-context { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; }
 .minimal-ui .economy-layout .offer-carousel .offers:not(:has(> .offer:nth-child(3))) > .offer { flex-basis:calc((100% - 16px)/2); }


 .minimal-ui .shell:has(.offer-carousel) .game-layout { margin-bottom:0; padding-bottom:0; }
}
/* Columns are independent: expanded expenses cannot move the kitchen. */
.compact-economy > .economy-column { display:contents; }
.compact-economy .economy-column > section { min-width:0; padding:12px; background:var(--ui-card); border:1px solid var(--ui-line); border-radius:13px; }
.compact-economy .economy-forecast { order:-1; }
@media (min-width:1024px) {
 html .minimal-ui .game-layout.economy-layout { max-width:none; width:100%; margin-inline:0; }
 html .minimal-ui .game-layout.economy-layout > .main-panel { max-width:none; width:100%; }
 html .minimal-ui .compact-economy { grid-template-areas:none; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:24px; }
 html .minimal-ui .compact-economy > .economy-column { display:flex; flex-direction:column; gap:24px; min-width:0; }
 html .minimal-ui .compact-economy .economy-column > section { grid-area:auto; padding:24px; }
 html .minimal-ui .compact-economy .economy-forecast { background:var(--ui-accent); }
 html[data-theme="light"] .minimal-ui .compact-economy .economy-forecast { background:var(--ui-profit); }
 html .minimal-ui .compact-economy .funnel-equation { padding-block:20px; }
 html .minimal-ui .compact-economy .living-expenses[open] .expenses-details { max-height:none; overflow:visible; padding-right:0; }
 html .minimal-ui .main-panel:has(.compact-economy) > .actions-footer { margin-top:24px; }
 .welcome-text .story-note.letter + .button { margin-top:28px; }
 .report-topbar .team-brand-line .brand-identity { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:10px; }
 .report-topbar .team-brand-line .brand-meta { grid-column:1/-1; }
 .team-registration { width:100%; max-width:900px; margin:30px auto 44px; }
 .registration-heading { position:relative; padding-bottom:24px; }
 .registration-step { color:var(--ui-muted); font-size:12px; font-weight:700; letter-spacing:.1em; }
 .registration-heading h1 { font-size:32px; margin:8px 0; line-height:1.2; letter-spacing:-.7px; }
 .registration-heading > p { color:var(--ui-muted); font-size:16px; line-height:1.5; }
 .registration-role { display:inline-block; color:var(--ui-accent); font-size:14px; font-weight:650; margin-top:12px; }
 .registration-heading .registration-intro { margin-top:8px; max-width:680px; }
 #team-registration-form { padding:28px; border:1px solid var(--ui-line); border-radius:20px; background:var(--ui-card); }
 .registration-sections { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; }
 .registration-person { margin:0; padding:0; min-width:0; border:0; }
 .registration-person legend { padding:0; margin-bottom:20px; font-size:20px; font-weight:650; }
 .registration-person legend span { display:inline-grid; place-items:center; width:30px; height:30px; margin-right:8px; border-radius:9px; background:var(--ui-selected); color:var(--ui-accent); font-size:13px; }
 .team-registration .field { margin:0 0 18px; }
 .team-registration .field > span { font-size:15px; margin-bottom:8px; }
 .team-registration .field input { min-height:52px; font-size:16px; border:1px solid var(--ui-line); background:var(--ui-bg); color:var(--ui-text); border-radius:10px; padding:12px 14px; }
 .team-registration .field input::placeholder { color:var(--ui-muted); opacity:.8; }
 .registration-fullname .field { margin-bottom:6px; }
 .registration-hint { display:block; font-size:13px; color:var(--ui-muted); margin-bottom:16px; }
 .registration-error { display:block; color:var(--ui-danger); font-size:13px; }
 .registration-error:not(:empty) { margin:-8px 0 16px; }
 .registration-company { border-bottom:1px solid var(--ui-line); padding-bottom:8px; margin-bottom:24px; }
 .registration-company .field { max-width:420px; }
 .registration-submit { border-top:1px solid var(--ui-line); padding-top:8px; margin-top:12px; }
 .registration-submit .button { width:100%; margin-top:12px; }
 .team-consent { font-size:14px; line-height:1.5; }
}
@media (max-width:1023px) {
 .registration-person { border:0; margin:0; padding:0; min-width:0; }
 .registration-person legend { font-size:18px; font-weight:650; padding:0; margin-top:20px; }
 .registration-person legend span { display:none; }
 .registration-step { display:none; }
 .registration-heading h1 { font-size:24px; }
 .registration-role { display:block; color:var(--ui-muted); margin-block:8px; }
 .registration-hint,.registration-error { display:block; font-size:13px; margin-top:-10px; margin-bottom:12px; color:var(--ui-muted); }
 .registration-error:empty { display:none; }
}
.compact-economy .economy-column > .economy-forecast { background:var(--ui-accent); border-color:transparent; }
html[data-theme="light"] .compact-economy .economy-column > .economy-forecast { background:var(--ui-profit); }
.report-topbar .team-brand-line .brand-identity { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:10px; }
.report-topbar .team-brand-line .brand-meta { grid-column:1/-1; }
@media (min-width:1024px) {
 .team-registration { margin-block:20px 24px; }
 .registration-heading { padding-bottom:18px; }
 .registration-heading h1 { font-size:30px; }
 .registration-heading .registration-role { position:absolute; right:0; top:30px; margin:0; }
 .registration-heading .registration-intro { max-width:none; }
 #team-registration-form { padding:24px; }
 .registration-sections { gap:28px; }
 .registration-person { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-content:start; column-gap:16px; }
 .registration-person legend { margin-bottom:16px; }
 .registration-fullname { grid-column:1/-1; }
 .team-registration .field { margin-bottom:14px; }
 .team-registration .field input { min-height:48px; }
 .registration-hint { margin-bottom:14px; }
 .registration-company { margin-bottom:20px; padding-bottom:4px; }
 .registration-company .field { max-width:none; }
 .registration-submit { margin-top:4px; }
}
@media (min-width:1024px) {
 html .minimal-ui .compact-economy .expenses-details { padding-block:4px 0; }
 html .minimal-ui .compact-economy .expenses-details .metric-with-help { margin:0; padding-block:6px; }
 html .minimal-ui .compact-economy .expenses-details .economy-row { min-height:44px; padding-block:6px; }
 html .minimal-ui .compact-economy .expenses-details .expenses-help { min-height:36px; }
}

/* Desktop offers are complete documents, without nested scrolling or swiping. */
@media (min-width:1024px) {
 html .minimal-ui .economy-layout .offer-carousel .offers { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:24px; overflow:visible; scroll-snap-type:none; align-items:start; }
 html .minimal-ui .economy-layout .offer-carousel .offer { min-width:0; max-height:none; height:auto; overflow:visible; padding:20px; display:block; }
 html .minimal-ui .offer-carousel .provider-heading { padding-right:24px; margin-bottom:12px; gap:12px; }
 html .minimal-ui .offer-carousel .provider-heading b { font-size:15px; line-height:1.45; }
 html .minimal-ui .offer-carousel .provider-heading small { font-size:13px; line-height:1.5; }
 html .minimal-ui .offer-carousel .offer-title { font-size:19px; line-height:1.3; text-wrap:normal; margin-bottom:4px; }
 html .minimal-ui .offer-carousel .contractor-pitch { font-size:14px; line-height:1.5; margin-bottom:14px; text-wrap:pretty; }
 html .minimal-ui .offer-carousel .offer-buy { position:static; margin-top:12px; padding-top:0; }
 html .minimal-ui .offer-carousel :is(.carousel-controls,.carousel-hint,.carousel-counter) { display:none; }
}

.game-history .history-solution { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:44px; padding:6px 0; background:none; border:0; color:var(--ui-accent); text-align:left; }
.game-history .history-solution:hover strong { text-decoration:underline; text-underline-offset:3px; }
.game-history .history-solution svg { flex:0 0 18px; transform:rotate(-90deg); }
.history-decision-title { font-size:19px; line-height:1.4; font-weight:700; margin-bottom:12px; }
.history-decision { margin-top:18px; }
.history-decision .receipt-row { align-items:start; gap:12px; }
.history-decision .receipt-row strong { text-align:right; }
.desktop-finish,.desktop-decision-guide { display:none; }
@media (min-width:1024px) {
 html .minimal-ui .shell:has(.offer-carousel) { max-width:1600px; padding-inline:32px; }



 html .minimal-ui .economy-layout .offer-carousel .offers { gap:16px; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
 html .minimal-ui .offer-carousel .offer { border-radius:12px; }
 html .minimal-ui .offer-carousel .offer.carousel-active:not(.expert-offer) { border-color:var(--ui-line); }
 html .minimal-ui .offer-carousel .contract-effects > div { padding-block:10px; }
 html .minimal-ui .offer-carousel .cost-explanation { border:1px solid var(--ui-line); border-radius:8px; padding-inline:12px; }
 html .minimal-ui .main-panel:has(.offer-carousel) .decision-context { display:flex; flex-direction:row; justify-content:space-between; border:1px solid var(--ui-line); border-radius:10px; padding:10px 14px; }
 html .minimal-ui .offers-context .account-balance { background:none; padding:0; }
 html .minimal-ui .offers-context > .button { width:auto; min-width:240px; }
 .desktop-decision-guide { display:flex; align-items:center; gap:16px; margin:16px 0 20px; }
 .desktop-decision-guide > img { width:56px; height:64px; object-fit:contain; }
 .desktop-decision-guide > div { padding:12px 18px; border:1px solid var(--ui-line); background:var(--ui-card); border-radius:10px; }
 .desktop-decision-guide p { margin-top:4px; font-size:15px; line-height:1.5; }
}
/* A preview is sized by the dialog, never by the desktop behind it. */
html .minimal-ui dialog .compact-economy { display:grid; grid-template-columns:minmax(0,1fr); grid-template-areas:none; gap:12px; width:100%; min-width:0; container: economy-preview / inline-size; }
html .minimal-ui dialog .compact-economy > .economy-column { display:contents; }
html .minimal-ui dialog .compact-economy .economy-column > section { grid-area:auto; padding:12px; min-width:0; max-width:100%; }
html .minimal-ui dialog .compact-economy .economy-forecast { order:-1; }
html .minimal-ui dialog .compact-economy .funnel-equation { --formula-size:clamp(15px,3.8cqi,23px); padding-block:10px; }
html .minimal-ui dialog .compact-economy .economy-formula strong { font-size:clamp(14px,3.5cqi,20px); }
@container economy-preview (max-width:420px) {
 .economy-forecast { grid-template-columns:minmax(0,1fr)!important; }
 .forecast-amount { border-left:0; padding-left:0; text-align:left; }
 .forecast-amount strong { font-size:26px; }
 .forecast-net { flex-wrap:wrap; }
 .funnel-equation .compact-copy { font-size:10px; }
 .economy-formula { grid-template-columns:minmax(0,.7fr) 10px minmax(0,1fr) 10px minmax(0,1.4fr); gap:2px; }
}
