.styly-composer { background: transparent; border: 0; box-shadow: none; padding: 0; margin: 24px 0 36px; border-radius: 0; }
.v2 .styly-composer { background: transparent; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
.styly-composer .journey-head { margin-bottom: 22px; }
.styly-composer .journey-head h2 { font-size: 28px; line-height: 1.2; letter-spacing: 0; }
.composer-workspace { display: grid; grid-template-columns: minmax(300px, 360px) minmax(0, 1fr); gap: 30px; align-items: start; }
.composer-controls { position: sticky; top: 96px; min-width: 0; }
.styly-composer .journey-step { display: block; border: 0; padding: 14px 0; background: transparent; border-radius: 0; }
.styly-composer .journey-step-copy { display: block; margin-bottom: 10px; }
.styly-composer h3 { font-size: 16px; margin: 0 0 10px; }
.styly-composer label, .styly-composer legend { font-size: 14px; font-weight: 650; }
.styly-composer .journey-search-row { display: flex; flex-wrap: wrap; gap: 8px; }
.styly-composer .journey-search-row input { width: 100%; min-width: 0; flex: 1 1 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #CBD5E1; border-radius: 8px; font: inherit; background: white; }
.v2 .styly-composer .journey-search-row input { font-weight: 400; }
.styly-composer .choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
.styly-composer .choice-pill { min-height: 44px; padding: 8px 14px; border: 1px solid #CBD5E1; border-radius: 24px; background: white; color: #0F172A; font: inherit; font-size: 14px; font-weight: 650; box-shadow: none; }
.styly-composer .choice-row.small .choice-pill { min-width: 44px; padding: 8px 11px; }
.styly-composer .choice-pill.active { background: #FFE6E9; color: #7F1D32; border-color: #FF5F6D; }
.styly-composer .journey-refinements { border: 0; border-top: 1px solid #DDE3EA; border-radius: 0; padding: 14px 0; background: transparent; }
.styly-composer summary { cursor: pointer; font-weight: 700; margin-bottom: 12px; }
.styly-composer fieldset { margin: 16px 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.styly-composer fieldset label { display: inline-flex; gap: 5px; align-items: center; min-height: 36px; }
.styly-composer input[type=checkbox] { accent-color: #0F172A; width: 17px; height: 17px; }
.styly-composer .journey-price { display: grid; gap: 7px; margin: 16px 0; }
.styly-composer .journey-money { display: flex; border: 1px solid #CBD5E1; border-radius: 8px; background: #fff; overflow: hidden; max-width: 220px; }
.styly-composer .journey-money b { padding: 10px; color: #475569; }
.styly-composer .journey-money input { width: 100%; min-width: 0; border: 0; padding: 10px; font: inherit; background: transparent; }
.composer-delivery { display: grid; gap: 8px; }
.composer-delivery select, .account-settings select { padding: 10px; min-height: 44px; border: 1px solid #CBD5E1; border-radius: 8px; background: #fff; font: inherit; }
.composer-preview { min-width: 0; }
.styly-composer .journey-results-head { display: flex; justify-content: space-between; align-items: start; gap: 10px; margin: 0 0 16px; }
.styly-composer .journey-results-head h3 { font-size: 20px; }
.styly-composer .journey-rail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; overflow: visible; padding: 0; }
.v2 .styly-composer .journey-rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
.styly-composer .journey-card { width: auto; min-width: 0; background: #fff; border: 0; border-radius: 8px; box-shadow: none; overflow: hidden; }
.styly-composer .journey-card > a { display: block; }
.styly-composer .journey-card img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 8px; display: block; }
.styly-composer .journey-card > div { padding: 12px 0; }
.styly-composer .journey-card > div > span { font-size: 13px; color: #475569; }
.styly-composer .journey-card h3 { font-size: 15px; line-height: 1.4; margin: 7px 0; }
.styly-composer .journey-card h3 a { color: #0F172A; }
.styly-composer .journey-price-row { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0; }
.styly-composer .journey-now { color: #CE164D; font-size: 20px; }
.styly-composer .journey-was { color: #64748B; text-decoration: line-through; align-self: center; font-size: 13px; }
.styly-composer .journey-saving { color: #166534; flex-basis: 100%; font-size: 13px; }
.styly-composer .journey-freshness { font-size: 12px; color: #64748B; }
.styly-composer .journey-retailer-link { font-size: 13px; color: #174EA6; }
.styly-composer .journey-empty, .styly-composer .journey-loading { grid-column: 1 / -1; min-height: 220px; display: flex; flex-direction: column; gap: 12px; justify-content: center; background: #fff; border: 1px solid #DDE3EA; border-radius: 8px; padding: 24px; color: #475569; }
.composer-save { position: sticky; bottom: 12px; background: #fff; border-top: 1px solid #DDE3EA; padding: 12px 0; margin-top: 18px; z-index: 8; }
.composer-save button { width: 100%; }
.styly-composer button:disabled { opacity: .55; cursor: default; }
.styly-composer .accent, .styly-composer .premium, .plan-action { background: #B52648; border: 1px solid #B52648; color: white; }
.styly-composer :focus-visible, .v2 :focus-visible { outline: 3px solid #174EA6; outline-offset: 3px; }
.v2-side-card.v2-premium-nudge { background: #FFF1F3; border-radius: 8px; }
.v2-side-card.v2-premium-nudge strong { font-size: 18px; }
.v2-side-card .v2-mini-kicker { display: block; width: fit-content; margin-bottom: 10px; }
.v2-side-card.v2-premium-nudge a { background: #B52648; border-color: #B52648; }
.v2-main .v2-panel { border-radius: 8px; }
.account-settings { display: grid; gap: 14px; max-width: 500px; }
.account-settings label { display: grid; gap: 7px; }
.plan-layout { max-width: 940px; margin: 0 auto; }
.plan-intro { padding: 12px 0 26px; max-width: 660px; }
.plan-intro h2 { font-size: 28px; margin: 0 0 12px; }
.plan-intro p { color: #475569; line-height: 1.6; }
.plan-comparison { width: 100%; border-collapse: collapse; background: white; margin-bottom: 24px; }
.plan-comparison th, .plan-comparison td { padding: 16px; border-bottom: 1px solid #DDE3EA; text-align: left; }
.plan-comparison th { color: #0F172A; }
.plan-comparison .plan-price { font-size: 22px; display: block; margin-top: 7px; }
.plan-action { min-height: 44px; border-radius: 8px; padding: 10px 16px; font: inherit; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.plan-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.plan-notice, .account-summary { padding: 16px 0; border-top: 1px solid #DDE3EA; color: #475569; line-height: 1.6; }
.v2-settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
.v2-settings-grid section { padding: 20px 0; border-top: 1px solid #DDE3EA; min-width: 0; }
.v2-settings-grid p, .v2-settings-grid strong { overflow-wrap: anywhere; }
.member-welcome { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0 24px; border-bottom: 1px solid #DDE3EA; }
.member-welcome h2 { font-size: 24px; margin: 0 0 8px; }
.member-welcome p { color: #64748B; margin: 0; }
.member-search-summary { min-width: 0; display: grid; gap: 6px; }
.member-search-summary small { font-size: 13px; line-height: 1.5; font-weight: 400; color: #475569; }
.v2-rule-row { gap: 14px; }
.v2-rule-row small { overflow-wrap: anywhere; }
.v2-rule-actions details { max-width: 310px; }
.v2-rule-actions summary { cursor: pointer; color: #174EA6; min-height: 40px; padding: 9px 0; }
.v2-rule-actions input:not([type=checkbox]) { min-height: 44px; width: 100%; min-width: 0; border: 1px solid #CBD5E1; border-radius: 8px; font: inherit; padding: 10px; }
.v2 .journey-confirmation-rail { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.v2 .journey-confirmation-rail .journey-card { width: auto; min-width: 0; }
.v2 .journey-confirm-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 24px 0; }
@media (min-width: 1600px) { .styly-composer .journey-rail, .v2 .styly-composer .journey-rail { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 1199px) {
 .v2-shell { grid-template-columns: minmax(0,1fr); }
 .v2-sidebar { display: none; }
 .v2-mobile-icons { display: flex; }
 .v2-top-actions { display: none; }
 .v2-main { padding: 24px; }
 .v2 .composer-save { bottom: calc(66px + env(safe-area-inset-bottom)); }
 .v2-main { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
 .composer-workspace { grid-template-columns: minmax(270px,320px) minmax(0,1fr); gap: 24px; }
}
@media (max-width: 900px) {
 .composer-workspace { grid-template-columns: minmax(0,1fr); }
 .composer-controls { position: static; }
 .styly-composer .journey-search-row input { flex: 1 1 230px; }
 .v2-settings-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
 .styly-composer .journey-head h2 { font-size: 23px; }
 .styly-composer .journey-head p { font-size: 14px; }
 .v2 .styly-composer .journey-head { display: none; }
 .styly-composer .journey-rail, .v2 .styly-composer .journey-rail { grid-template-columns: minmax(0,1fr); }
 .styly-composer .journey-card img { aspect-ratio: 4 / 5; }
 .composer-save { bottom: 8px; padding-bottom: max(12px,env(safe-area-inset-bottom)); }
 .v2-main { padding: 18px 16px 100px; }
 .v2-page-head h1 { font-size: 27px; }
 .v2-page-head .v2-account-pill { display: none; }
 .v2-rule-row, .v2-rule-actions { flex-wrap: wrap; }
 .plan-comparison th, .plan-comparison td { padding: 12px 7px; font-size: 13px; }
 .plan-comparison .plan-price { font-size: 20px; }
 .v2-button { white-space: normal; }
 .v2 .journey-confirmation-rail { grid-template-columns: minmax(0,1fr); }
}
.topbar nav a, .catalogue-nav-link { color: #0F172A; }
.topbar nav a:hover, .catalogue-nav-link:hover { color: #B52648; }
.public-login, .topbar nav a.public-login, .styly-drawer nav a.public-login { color: #0F172A; border-color: #0F172A; background: #fff; }
.public-login:hover, .topbar nav a.public-login:hover, .styly-drawer nav a.public-login:hover { color: #0F172A; border-color: #0F172A; background: #F1F5F9; text-decoration: none; }
.public-signup, .topbar nav a.public-signup, .mobile-menu nav a.public-signup, .styly-drawer nav a.public-signup { color: #0F172A; border-color: #FF5F6D; background: #FF5F6D; }
.public-signup:hover, .topbar nav a.public-signup:hover, .mobile-menu nav a.public-signup:hover, .styly-drawer nav a.public-signup:hover { color: #0F172A; border-color: #FF4759; background: #FF4759; text-decoration: none; }
.topbar nav a:focus-visible, .catalogue-topbar a:focus-visible, .styly-drawer nav a:focus-visible { outline: 3px solid #0F172A; outline-offset: 3px; }
