:root { --canvas:var(--proposal-canvas); --surface:var(--proposal-paper); --ink:var(--jey-text-primary); --muted:var(--jey-text-muted); --rule:var(--jey-border-subtle); --strong:var(--jey-border-strong); --action:var(--proposal-accent); --on-action:var(--proposal-on-accent); --food:var(--proposal-food); --coffee:var(--jey-line-coffee); --sport:var(--jey-line-sport); --wellness:var(--jey-line-wellness); --premium:var(--jey-background-premium); --premium-soft:var(--jey-background-premium-soft); --success:var(--jey-status-success); --danger:var(--jey-status-danger); --info:var(--jey-status-info); --warning:var(--jey-status-warning); }
* { box-sizing:border-box; scrollbar-width:thin; scrollbar-color:var(--strong) var(--canvas); }
[hidden] { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; background:var(--canvas); color:var(--ink); font:400 14px/1.5 var(--jey-font-body); }
::selection { background:var(--premium); color:#14171a; }
:focus-visible { outline:3px solid var(--jey-border-focus); outline-offset:2px; }
a { color:inherit; text-underline-offset:.22em; }
button, input, select, textarea { font:inherit; color:inherit; }
button, select, summary, input[type="checkbox"], input[type="radio"] { cursor:pointer; }
button { background:transparent; }
button:disabled { opacity:.45; cursor:not-allowed; }
button, a { -webkit-tap-highlight-color:transparent; }
input, textarea { caret-color:var(--jey-border-focus); }
input[type="checkbox"], input[type="radio"], input[type="range"] { accent-color:var(--action); }
h1,h2,h3,h4 { margin:0; font-family:var(--jey-font-display); font-weight:800; line-height:1.15; letter-spacing:-.03em; text-wrap:balance; }
h1 { font-size:clamp(40px, 5.5vw, 76px); }
h2 { font-size:32px; }
h3 { font-size:20px; }
h4 { font-size:17px; }
p { margin:10px 0 0; max-width:70ch; }
small, .muted { color:var(--muted); }
small { font-size:12px; }
svg.icon { width:20px; height:20px; flex-shrink:0; stroke-width:1.8; }
.skip-link { position:fixed; top:-60px; left:16px; background:var(--surface); padding:12px; z-index:100; }
.skip-link:focus { top:10px; }
.catalog-header { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 32px; background:var(--surface); border-bottom:1px solid var(--rule); position:sticky; top:0; z-index:20; gap:20px; }
.wordmark { font-family:var(--jey-font-display); font-weight:800; font-size:30px; letter-spacing:-.04em; text-decoration:none; }
.brand-lockup { display:flex; align-items:center; gap:18px; white-space:nowrap; text-decoration:none; }
.brand-lockup .divider { width:1px; height:24px; background:var(--rule); }
.header-meta { display:flex; align-items:center; gap:12px; }
.catalog-layout { display:grid; grid-template-columns:224px minmax(0,1fr); }
.catalog-nav { padding:30px 18px; background:var(--surface); border-right:1px solid var(--rule); position:sticky; top:76px; height:calc(100dvh - 76px); overflow:auto; }
.catalog-nav a { display:flex; align-items:center; gap:12px; min-height:44px; padding:10px 12px; margin-bottom:5px; text-decoration:none; border-radius:8px; }
.catalog-nav a:hover { background:var(--canvas); }
.catalog-nav a[aria-current="page"] { background:var(--action); color:var(--on-action); }
.nav-foot { margin:36px 12px 0; padding-top:18px; border-top:1px solid var(--rule); }
.nav-foot p { font-size:12px; color:var(--muted); }
.catalog-main { min-width:0; padding:42px 48px 80px; max-width:1580px; width:100%; margin:auto; }
.page-head { margin-bottom:32px; }
.page-head p { font-size:17px; color:var(--muted); margin-top:16px; }
.section { padding:40px 0; border-top:1px solid var(--rule); }
.section-head { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:24px; }
.section-head p { color:var(--muted); }
.intro { display:grid; grid-template-columns:1.15fr .85fr; gap:40px; padding-bottom:48px; align-items:center; }
.intro h1 { max-width:11ch; }
.intro p { font-size:18px; color:var(--muted); margin:24px 0; max-width:44ch; }
.intro-art { background:var(--surface); border-radius:14px; overflow:hidden; padding:32px; min-height:310px; display:flex; flex-direction:column; justify-content:space-between; }
.line-sign { display:flex; align-items:center; gap:14px; font-family:var(--jey-font-display); font-size:28px; font-weight:800; }
.route-dot { background:var(--food); color:var(--proposal-ground); width:44px; height:44px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.route-diagram { position:relative; display:flex; justify-content:space-between; margin:45px 6px 25px; }
.route-diagram::before { content:""; position:absolute; height:6px; background:var(--food); left:8px; right:8px; top:10px; }
.station { width:26px; height:26px; background:var(--surface); border:6px solid var(--food); border-radius:50%; position:relative; }
.station.interchange { outline:3px solid var(--premium); outline-offset:4px; }
.route-legend { display:flex; gap:18px; flex-wrap:wrap; }
.line-label { display:inline-flex; gap:7px; align-items:center; font-size:12px; }
.line-label::before { content:""; height:9px; width:9px; border-radius:50%; background:var(--line-color,var(--food)); }
.row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.between { justify-content:space-between; }
.stack { display:flex; flex-direction:column; gap:16px; }
.columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.columns.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.panel { background:var(--surface); border:1px solid var(--rule); border-radius:14px; padding:24px; }
.plain-panel { background:var(--surface); border-radius:14px; padding:24px; }
.btn { border:1px solid var(--strong); border-radius:999px; min-height:40px; padding:9px 16px; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; line-height:1.3; font-weight:600; font-size:13px; }
.btn:hover { background:var(--jey-background-soft); }
.btn.primary { background:var(--action); color:var(--on-action); border-color:var(--action); }
.btn.primary:hover { filter:brightness(.94); }
.btn.premium { background:var(--premium); color:#14171a; border-color:var(--premium); }
.btn.danger { color:var(--danger); border-color:var(--danger); }
.btn.quiet { border-color:transparent; }
.btn.full { width:100%; }
.icon-btn { min-width:44px; min-height:44px; padding:9px; border:1px solid var(--rule); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.badge { display:inline-flex; gap:5px; align-items:center; font-size:12px; font-weight:600; line-height:1.4; padding:4px 8px; border:1px solid var(--rule); border-radius:999px; background:var(--surface); white-space:nowrap; color:var(--ink); }
.badge.premium { background:var(--premium); color:#14171a; border-color:var(--premium); }
.badge.success { color:var(--success); border-color:currentColor; }
.badge.danger { color:var(--danger); border-color:currentColor; }
.badge.warning { color:var(--warning); border-color:currentColor; }
.badge.info { color:var(--info); border-color:currentColor; }
.badge .icon { width:14px; height:14px; }
.palette { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.swatch { min-width:0; }
.swatch-color { height:90px; border-radius:8px; border:1px solid var(--rule); margin-bottom:10px; display:flex; align-items:flex-end; padding:10px; }
.swatch span { display:block; font-weight:600; }
.swatch code { font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.type-row { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:baseline; border-bottom:1px solid var(--rule); padding:22px 0; gap:24px; }
.type-sample { overflow-wrap:anywhere; }
.spacing-row { display:flex; align-items:center; gap:20px; margin:16px 0; }
.spacing-row code { width:100px; }
.spacing-block { height:20px; width:var(--size); background:var(--action); }
.radius-sample { width:100px; height:80px; border:1px solid var(--strong); display:grid; place-items:center; }
.specimen { padding:28px; background:var(--canvas); border-radius:8px; min-height:110px; display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:20px 0; }
.component-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.component { padding:24px; background:var(--surface); border:1px solid var(--rule); border-radius:14px; min-width:0; }
.component p { color:var(--muted); font-size:13px; }
.component details { margin-top:16px; border-top:1px solid var(--rule); padding-top:12px; }
.component summary { min-height:36px; font-weight:600; }
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:0; text-align:left; flex:1; min-width:0; }
.field label { font-size:12px; font-weight:600; }
.field input,.field textarea,.field select,.search-input { width:100%; min-height:44px; border:1px solid var(--strong); border-radius:8px; padding:10px 12px; background:var(--surface); }
.field textarea { min-height:90px; resize:vertical; }
.field [aria-invalid="true"] { border-color:var(--danger); }
.field .error { color:var(--danger); font-size:12px; }
.check { display:flex; align-items:flex-start; gap:12px; min-height:52px; padding:14px 12px; border:1px solid var(--rule); border-radius:12px; margin:8px 0; }
.check input { width:20px; height:20px; flex-shrink:0; margin:1px 0 0; }
.check small { display:block; }
.notice { padding:14px; background:var(--jey-background-info); color:var(--info); border-radius:8px; display:flex; gap:10px; align-items:flex-start; text-align:left; }
.notice.success { background:var(--proposal-sport-soft); color:var(--ink); border:0; }
.notice.warning { background:var(--jey-background-warning); color:var(--warning); }
.notice.danger { background:var(--jey-background-error); color:var(--danger); }
.notice p { margin:3px 0 0; font-size:13px; }
.avatar { width:44px; height:44px; background:var(--jey-background-soft); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0; }
.segment { display:flex; border:1px solid var(--rule); border-radius:999px; padding:4px; gap:4px; width:max-content; max-width:100%; background:var(--surface); }
.segment button { border:0; border-radius:999px; padding:8px 14px; min-height:44px; font-size:13px; white-space:nowrap; }
.segment button[aria-pressed="true"] { background:var(--action); color:var(--on-action); }
.progress { height:6px; background:var(--rule); border-radius:999px; overflow:hidden; margin:12px 0; }
.progress span { height:100%; width:var(--progress,60%); display:block; background:var(--line-color,var(--food)); }
.stamps { display:grid; grid-template-columns:repeat(var(--proposal-stamp-columns),minmax(0,1fr)); gap:var(--proposal-stamp-gap); padding:24px 0; max-width:390px; margin:auto; }
.stamps-columns-1 { grid-template-columns:1fr; }
.stamps-columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.stamp-cell { display:flex; flex-direction:column; align-items:center; gap:8px; min-width:0; }
.stamp-label { display:flex; align-items:center; gap:4px; font-size:11px; }
.stamp-label .icon { width:12px; height:12px; }
.stamp { width:38px; height:38px; border:2px solid var(--strong); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; }
.stamp.done { background:var(--line-color,var(--food)); border-color:var(--line-color,var(--food)); color:var(--proposal-ground); }
.stamp.reward { border-color:var(--premium); border-width:4px; }
.skeleton { height:16px; width:100%; border-radius:4px; background:var(--jey-background-soft); margin:14px 0; }
.skeleton.short { width:55%; }
.spinner { width:18px; height:18px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; display:inline-block; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.list-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid var(--rule); }
.list-row:last-child { border-bottom:0; }
.mobile-app .mobile-list-group > .list-row { border-bottom:0; }
.mobile-app .mobile-list-group > .list-row + .list-row { border-top:1px solid var(--rule); }
.mobile-app .mobile-list-actions { margin-top:16px; }
.list-row strong { display:block; }
.list-row .copy { flex:1; min-width:0; }
.list-row small { display:block; margin-top:4px; }
.table-wrap { overflow:auto; background:var(--surface); border:1px solid var(--rule); border-radius:12px; }
table { width:100%; border-collapse:collapse; text-align:left; font-variant-numeric:tabular-nums; }
th { font-size:12px; color:var(--muted); font-weight:600; background:var(--canvas); padding:12px; white-space:nowrap; }
td { font-size:13px; padding:var(--proposal-table-cell-y) var(--proposal-table-cell-x); border-bottom:1px solid var(--rule); }
tbody tr:last-child td { border-bottom:0; }
tbody tr:hover { background:var(--proposal-accent-soft); }
td:last-child a { white-space:nowrap; font-weight:600; text-decoration:none; }
td strong,td small { display:block; }
.stat-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:24px 0; }
.stat { padding:18px 0; border-bottom:1px solid var(--rule); }
.stat strong { display:block; font-family:var(--jey-font-display); font-size:32px; margin-top:6px; }
.token-actions { display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
pre { background:var(--surface); border:1px solid var(--rule); border-radius:8px; padding:24px; overflow:auto; font-size:12px; line-height:1.7; }
code { font-size:.9em; }
.rules { padding-left:20px; color:var(--muted); }
.rules li { margin:10px 0; }
.screen-tools { display:flex; align-items:center; gap:12px; justify-content:space-between; flex-wrap:wrap; margin-bottom:16px; }
.screen-tools select { border:1px solid var(--strong); border-radius:8px; background:var(--surface); padding:6px; min-height:36px; max-width:100%; }
.screen-explorer { display:grid; grid-template-columns:250px minmax(0,1fr); border:1px solid var(--rule); border-radius:14px; overflow:hidden; background:var(--surface); }
.screen-index { padding:16px; background:var(--surface); border-right:1px solid var(--rule); }
.screen-index .search-input { margin-bottom:18px; margin:0; }
.screen-group-label { margin:20px 8px 10px; font-size:12px; font-weight:700; color:var(--ink); font-family:var(--jey-font-body); letter-spacing:0; }
.screen-link { display:flex; gap:10px; min-height:44px; padding:10px 8px; border-radius:8px; text-decoration:none; font-size:12px; align-items:baseline; }
.screen-link span { color:var(--muted); font-size:11px; flex-shrink:0; }
.screen-link[aria-current="page"] { background:var(--proposal-accent-soft); color:var(--proposal-accent); }
.screen-link[aria-current="page"] span { color:inherit; }
.screen-link:hover { box-shadow:inset 0 0 0 1px var(--strong); }
.screen-stage { min-width:0; background:var(--canvas); padding:20px; }
.preview-scroll { overflow:auto; padding:4px 2px 16px; }
.preview-frame { border:1px solid var(--strong); border-radius:14px; overflow:hidden; margin:0 auto; background:var(--surface); max-width:100%; }
.preview-frame iframe { display:block; border:0; width:100%; height:780px; background:var(--canvas); }
.preview-frame.phone { max-width:390px; }
.preview-frame.tablet { max-width:768px; }
.preview-frame.desktop { width:1120px; max-width:none; }
.preview-note { margin-top:16px; }
.screen-spec { margin-top:20px; padding:16px 20px; border-radius:8px; background:var(--surface); }
.screen-spec h3 { margin-bottom:14px; }
.screen-spec dl { margin:0; }
.screen-spec dt { font-weight:700; margin-top:14px; font-size:12px; }
.screen-spec dd { color:var(--muted); margin:4px 0 0; font-size:13px; }
.screen-empty { padding:24px; color:var(--muted); }
.coverage-row { display:grid; grid-template-columns:80px 1fr auto; gap:16px; align-items:center; padding:14px 0; border-bottom:1px solid var(--rule); }
.coverage-row a { text-decoration:none; }
.catalog-footer { padding-top:32px; border-top:1px solid var(--rule); color:var(--muted); font-size:12px; margin-top:40px; }
.toast { position:fixed; bottom:24px; right:24px; z-index:100; background:var(--action); color:var(--on-action); border-radius:14px; padding:16px 24px; box-shadow:var(--jey-shadow-md); max-width:calc(100vw - 48px); }
.toast:empty { display:none; }
.flow,.form-fields,.form-flow { display:flex; flex-direction:column; gap:var(--proposal-control-field-gap); }
.flow > p,.form-flow > p { margin:0; }
.form-flow .actions { margin-top:8px; }
.form-fields .columns { margin:0; }
.field + .field { margin-top:16px; }
.stack > .field + .field,.form-fields > .field + .field,.columns > .field + .field,.filter-grid > .field + .field { margin-top:0; }
.panel > .btn.full,.panel > .notice + .field { margin-top:16px; }
.panel > .btn.full + .btn.full { margin-top:12px; }
.badge.role-client { color:var(--info); background:var(--jey-background-info); border-color:transparent; }
.badge.role-partner { color:var(--coffee); background:var(--proposal-coffee-soft); border-color:transparent; }
.notice-copy { min-width:0; }
.notice.compact { padding:12px 14px; align-items:center; gap:10px; }
.notice.compact strong { font-size:13px; }
.notice.compact p { font-size:12px; margin-top:2px; }
.notice.success > .icon { color:var(--success); }
.category-chip { background:var(--surface); color:var(--line-color); min-height:44px; padding:10px 12px; border-color:var(--line-color); }
.category-chip:hover { background:var(--canvas); }
.auth-brand { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.auth-route { display:flex; gap:7px; align-items:center; }
.auth-route span { width:18px; height:18px; border-radius:50%; }
.route-food { background:var(--food); }
.route-coffee { background:var(--coffee); }
.route-sport { background:var(--sport); }
.route-wellness { background:var(--wellness); }
.auth-panel { padding:28px; border-radius:16px; background:var(--surface); border:1px solid var(--rule); max-width:400px; margin:35px auto; }
.auth-panel h1 { color:var(--proposal-accent); font-size:32px; margin:26px 0 12px; }
.place-card { display:block; margin-top:12px; padding:16px; }
.place-card p { margin-top:4px; }
.place-card .btn { width:auto; }
.benefit-detail { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.benefit-detail p { margin:0; }
.benefit-detail .notice { margin-top:8px; width:100%; }
.selection-context { display:flex; align-items:center; gap:12px; padding:16px; border-radius:12px; background:var(--proposal-accent-soft); }
.selection-context .business-mark { width:44px; height:44px; border-radius:8px; }
.selection-context small { display:block; margin-top:3px; }
.code-flow { display:flex; flex-direction:column; gap:24px; border:1px solid var(--rule); border-radius:16px; padding:18px; }
.code-flow header { gap:8px; }
.code-flow header p { margin:0; }
.code-identity { text-align:center; }
.code-identity .qr-specimen { margin:0 auto 16px; }
.code-controls { display:flex; flex-direction:column; gap:12px; text-align:center; }
.code-countdown { color:var(--ink); font-weight:700; margin:0; }
.code-concepts { padding:20px 0 0; border-top:1px solid var(--rule); }
.code-concepts h3 { margin-bottom:4px; }
.code-business { display:flex; align-items:center; gap:10px; text-align:left; padding:10px 0; }
.code-business .business-mark { width:38px; height:38px; }
.sample-logo { object-fit:contain; border-radius:50%; }
.business-cover-image { width:100%; height:100%; object-fit:cover; }
.category-coffee { --profile-soft:var(--proposal-coffee-soft); }.category-sport { --profile-soft:var(--proposal-sport-soft); }.category-wellness { --profile-soft:var(--proposal-wellness-soft); }
.code-controls .btn { color:var(--action); border-color:var(--action); background:var(--proposal-accent-soft); }
.concept-action { display:flex; flex-direction:column; gap:12px; }.concept-action p { margin:0; font-size:13px; color:var(--muted); }
.code-flow .notice { padding:16px; }
summary { min-height:44px; display:list-item; align-content:center; }
.mobile-body > .field { margin-bottom:20px; }
.mobile-bar { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; gap:12px; background:var(--proposal-ground); border-bottom:1px solid var(--rule); }
.bottom-nav a[aria-current="page"] { color:var(--action); font-weight:700; }
.app-sidebar nav a.active { color:var(--proposal-accent); background:var(--jey-background-soft); font-weight:700; }
.app-sidebar .wordmark { color:var(--proposal-accent); }
.app-content { max-width:1200px; padding:28px; margin:auto; }
.app-content > .columns > .panel { min-width:0; }
.app-content > .panel + .panel { margin-top:24px; }
.app-content .btn,.app-content .field input,.app-content .field select,.app-content .search-input,.app-content .filter-bar select { min-height:var(--proposal-control-desktop); padding:7px 12px; font-size:13px; }
.app-content .segment button { min-height:32px; padding:6px 12px; }
.filter-bar { margin:20px 0; align-items:center; display:flex; gap:12px; flex-wrap:wrap; }
.filter-panel { margin:20px 0 24px; }
.filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.filter-panel .row { flex-wrap:wrap; }
.section-caption { margin:24px 0 16px; }
.section-caption h2 { font-size:20px; }
.account-layout { display:grid; grid-template-columns:1fr 1.4fr; gap:24px; }
.account-profile .avatar { color:var(--proposal-accent); background:var(--proposal-accent-soft); }
.account-validity { background:var(--surface); align-self:start; }
.plan-summary { display:flex; align-items:center; gap:16px; padding:16px; background:var(--proposal-sport-soft); border-radius:8px; }
.plan-summary small { display:block; }
.activity-track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; margin:24px 0 0; gap:0; }
.activity-track li { position:relative; padding:0 24px 0 0; min-width:0; }
.activity-track li::before { content:""; position:absolute; height:1px; background:var(--rule); left:32px; right:0; top:16px; }
.activity-track li:last-child::before { display:none; }
.activity-track .icon { display:block; width:32px; height:32px; padding:6px; border-radius:50%; background:var(--surface); margin-bottom:14px; position:relative; }
.activity-success .icon { color:var(--success); background:var(--proposal-sport-soft); }
.activity-info .icon { color:var(--info); background:var(--jey-background-info); }
.activity-accent .icon { color:var(--proposal-accent); background:var(--proposal-accent-soft); }
.activity-track strong,.activity-track small { display:block; }
.activity-track p { font-size:13px; margin-top:6px; }
.business-header { display:flex; align-items:center; gap:20px; padding:24px; background:var(--surface); border:1px solid var(--rule); border-radius:14px; }
.business-header .business-mark { width:var(--proposal-business-avatar); height:var(--proposal-business-avatar); }
.business-identity { flex:1; min-width:0; }
.business-identity h2 { font-size:28px; }
.business-identity p { margin:4px 0 8px; }
.social-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.social-links .btn { font-size:12px; gap:4px; padding:4px 8px; min-height:32px; }
.business-header > .btn { align-self:flex-start; }
.app-content .tabs { margin-top:12px; margin-bottom:24px; }
.report-layout { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; }
.chart > div { background:var(--action); border-radius:4px 4px 0 0; flex:1; height:var(--height); min-width:12px; position:relative; }
.stat-strip .stat:first-child { border-color:var(--food); }
.stat-strip .stat:nth-child(2) { border-color:var(--coffee); }
.stat-strip .stat:nth-child(3) { border-color:var(--sport); }
.portal-shell .app-content { max-width:1200px; }
.portal-shell .form-panel { margin:24px auto; }
.portal-shell .form-panel .field { margin-bottom:16px; }
.portal-shell .form-panel > a:last-child { display:inline-flex; margin-top:20px; }
.portal-shell .app-content > .columns:has(.avatar) { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:24px; }
.portal-shell .app-content > .columns:has(.avatar) .btn.full { margin-top:20px; }
.portal-shell .panel > .btn { margin-top:16px; }
.history-mobile { display:none; }
.operation { background:var(--surface); padding:20px; border:1px solid var(--rule); border-radius:12px; }
.operation + .operation { margin-top:12px; }
.operation h3 { margin-top:14px; }
.landing-main { max-width:1200px; padding:0 6%; margin:auto; }
.landing-nav { gap:24px; border-bottom:1px solid var(--rule); display:flex; justify-content:space-between; align-items:center; padding:22px 6%; background:var(--surface); }
.landing-nav .wordmark { color:var(--proposal-accent); }
.landing-hero { display:grid; grid-template-columns:1fr 1.05fr; gap:64px; padding:72px 0 64px; align-items:center; }
.landing-hero h1 { max-width:10ch; font-size:clamp(40px,6vw,72px); }
.landing-hero p { max-width:42ch; font-size:18px; color:var(--muted); margin:24px 0; }
.launch-note { display:block; margin-top:18px; }
.landing-network { position:relative; min-height:410px; padding:0 0 48px 28px; }
.landing-network .intro-art { background:var(--proposal-accent-soft); min-height:300px; padding:28px; }
.landing-network .intro-art > p { font-size:16px; }
.landing-ticket { position:relative; margin:-32px -16px 0 48px; padding:24px; border-radius:14px; background:var(--jey-background-header); color:var(--jey-text-on-header); }
.landing-ticket .badge { float:right; }
.landing-ticket h2 { font-size:32px; margin-top:20px; }
.landing-ticket p { color:inherit; margin:12px 0 0; font-size:14px; }
.landing-lines { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; padding:0 0 48px; }
.landing-lines > span { display:flex; gap:12px; align-items:center; color:var(--line-color); font-size:18px; font-weight:600; border-bottom:2px solid currentColor; padding-bottom:16px; }
.landing-editorial { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; }
.journey-list { list-style:none; padding:0; margin:0; counter-reset:journey; margin-top:28px; }
.journey-list li { padding:0 0 28px 42px; border-bottom:1px solid var(--rule); position:relative; border:0; counter-increment:journey; }
.journey-list li:first-child { padding-top:0; }
.journey-list li:last-child { border:0; }
.journey-list p { color:var(--muted); margin-top:10px; }
.plan-comparison { align-items:stretch; }
.plan-comparison .panel { padding:32px; }
.plan-comparison ul { padding-left:20px; margin:8px 0 16px; }
.plan-comparison li { padding:6px 0; }
.premium-plan { background:var(--premium-soft); border-color:var(--premium); }
.business-commercial { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; }
.business-commercial ul { padding:20px; }
.business-commercial li { margin:10px 0; }
.commercial-route { padding:32px; background:var(--proposal-coffee-soft); border-radius:14px; align-content:center; color:var(--coffee); }
.commercial-route > .icon { width:48px; height:48px; margin-bottom:24px; }
.commercial-route p { color:var(--ink); }
.landing-main summary { min-height:28px; font-weight:600; }
.explorer-heading { display:flex; gap:20px; justify-content:space-between; align-items:center; margin-bottom:24px; }
.explorer-heading h1 { font-size:32px; }
.explorer-heading p { color:var(--muted); font-size:13px; margin-top:4px; }
.explorer-heading > span { color:var(--proposal-accent); font-weight:600; font-size:13px; }
.catalog-main:has(.screen-explorer) { padding:28px; }
.screen-chooser > summary { font-weight:600; }
.screen-chooser > summary span { display:block; color:var(--muted); font-size:12px; font-weight:400; }
.screen-filters { display:flex; flex-direction:column; gap:8px; margin:16px 0; }
.screen-filters label { font-size:12px; font-weight:600; }
.screen-filters select { width:100%; min-height:36px; padding:8px; border-radius:8px; border:1px solid var(--strong); background:var(--surface); }
.screen-list-scroll { max-height:65dvh; overflow:auto; }
.screen-flow-label { margin:16px 8px 6px; font:600 11px var(--jey-font-body); color:var(--muted); letter-spacing:0; }
.screen-tools .segment button { min-height:32px; padding:6px 12px; }
.screen-tools .btn { min-height:36px; padding:7px 10px; font-size:12px; }
.screen-spec summary { font-weight:600; }
.screen-spec aside { padding-top:16px; }
@media (max-width:1000px) {
  .portal-shell .app-content > .columns:has(.avatar) { grid-template-columns:1fr; }
  .business-header { flex-wrap:wrap; }.report-layout,.account-layout { grid-template-columns:1fr; }
  .filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .landing-hero { gap:32px; }.landing-network { padding-left:0; }.landing-ticket { margin-right:0; }
}
@media (max-width:900px) {
  .screen-explorer { display:block; }.screen-index { border-right:0; border-bottom:1px solid var(--rule); max-height:none; }
  .screen-list-scroll { max-height:35dvh; }.screen-chooser > summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .screen-chooser > summary::after { content:"+"; font-size:20px; }.screen-chooser[open] > summary::after { content:"−"; }
  .screen-filters { display:grid; grid-template-columns:1fr 1fr; }.screen-filters label { align-self:end; }.screen-filters select { grid-column:1; grid-row:2; }.screen-filters input { grid-column:2; grid-row:2; }.screen-filters button { grid-column:1 / -1; }
  .explorer-heading { align-items:flex-start; flex-direction:column; gap:8px; margin-bottom:16px; }
  .app-content .btn,.app-content .field input,.app-content .field select,.app-content .search-input,.app-content .filter-bar select,.app-content .segment button,.social-links .btn { min-height:var(--proposal-control-touch); }
}
@media (max-width:600px) {
  .auth-panel { margin:24px 16px; padding:24px 20px; }.auth-panel .row { flex-wrap:wrap; }
  .filter-grid,.account-layout,.report-layout,.business-commercial,.landing-editorial { grid-template-columns:1fr; gap:24px; }
  .filter-panel { padding:16px; }.filter-panel .row > small { width:100%; }.filter-panel .row > .row { margin-top:12px; }
  .app-topbar h1 { font-size:20px; }.app-topbar .avatar { width:32px; height:32px; }
  .business-header { padding:18px; gap:16px; }.business-header .business-mark { width:56px; height:56px; }.business-identity h2 { font-size:24px; }.business-header > .btn { width:100%; }
  .business-identity .row { flex-wrap:wrap; }.business-header .social-links { margin-left:-72px; margin-top:20px; }
  .history-desktop { display:none; }.history-mobile { display:block; }
  .activity-track { display:flex; flex-direction:column; gap:24px; }.activity-track li { padding:0 0 0 48px; }.activity-track .icon { position:absolute; left:0; top:0; }.activity-track li::before { top:32px; bottom:-24px; left:16px; width:1px; height:auto; }
  .timeline { flex-direction:column; }.timeline p { min-width:0; }
  .screen-index { max-height:none; }.screen-stage { padding:12px; }.catalog-main:has(.screen-explorer) { padding:20px 12px; }.screen-tools .segment button { min-height:44px; }.screen-tools label { flex:1; }.screen-tools select { min-height:44px; }.screen-tools .btn { min-height:44px; }.screen-tools .segment { width:100%; }
  .landing-network { min-height:0; padding:0 0 20px; }.landing-ticket { margin-left:32px; }.landing-lines { grid-template-columns:repeat(2,minmax(0,1fr)); padding-bottom:32px; }.landing-lines > span { font-size:15px; }
  .landing-main .section { padding:36px 0; }.landing-hero { padding-top:40px; }.landing-hero h1 { max-width:13ch; }.landing-hero .row { gap:12px; flex-wrap:wrap; }.landing-hero .row .btn { width:100%; }
  .landing-main h2 { font-size:28px; }.plan-comparison .panel { padding:24px; }
}
.embed { background:var(--canvas); }
.embed #app { min-height:100dvh; }
.embed .skip-link { display:none; }
.device-status { padding:12px 22px 6px; display:flex; justify-content:space-between; font-size:12px; font-weight:700; background:var(--surface); }
.mobile-app { max-width:600px; margin:auto; min-height:100dvh; padding-bottom:86px; background:var(--proposal-ground); }
.mobile-bar h1 { font-size:24px; }
.mobile-body { padding:20px 16px 32px; }
.mobile-body h2 { font-size:28px; }
.mobile-body h3 { font-size:20px; }
.mobile-body .panel { padding:18px; }
.mobile-body .btn { min-height:44px; font-size:14px; }
.bottom-nav { position:fixed; bottom:0; left:0; right:0; display:flex; justify-content:space-around; background:var(--surface); padding:10px 8px max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--rule); z-index:5; }
.bottom-nav a { display:flex; flex-direction:column; align-items:center; font-size:11px; gap:4px; text-decoration:none; min-width:60px; min-height:44px; color:var(--muted); }
.mobile-app .section { padding:24px 0; margin-top:24px; }
.mobile-app .section-head { margin-bottom:16px; }
.mobile-app .section-head h3 { font-size:20px; }
.business-tile { display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--rule); text-decoration:none; align-items:center; }
.business-mark { width:52px; height:52px; background:var(--line-color,var(--food)); color:var(--proposal-ground); border-radius:50%; display:grid; place-items:center; flex-shrink:0; }
.business-mark .icon { width:28px; height:28px; }
.business-tile strong { font-family:var(--jey-font-display); font-size:17px; display:block; }
.business-tile small { display:block; margin:3px 0 7px; }
.business-cover { background:var(--line-color,var(--food)); color:var(--proposal-ground); padding:26px 24px; min-height:140px; display:flex; align-items:end; justify-content:space-between; border-radius:14px; gap:16px; }
.business-cover h2 { font-size:36px; max-width:9ch; }
.business-cover .icon { width:60px; height:60px; }
.benefit { padding:18px 0; border-bottom:1px solid var(--rule); }
.benefit h3 { margin:12px 0 6px; }
.member-pass { background:var(--proposal-food-soft); color:var(--ink); border-radius:14px; padding:24px; }
.member-pass h2 { font-size:32px; margin:30px 0 5px; }
.member-pass .muted { color:var(--muted); }
.qr-specimen { width:196px; height:196px; margin:24px auto 16px; padding:12px; background:#ffffff; border:1px solid #14171a; display:grid; place-items:center; }
.qr-specimen svg { width:100%; height:100%; }
.code-text { font-family:var(--jey-font-body); font-size:28px; font-weight:700; letter-spacing:.1em; text-align:center; font-variant-numeric:tabular-nums; color:var(--action); }
.center { text-align:center; }
.center p { margin-left:auto; margin-right:auto; }
.map-specimen { height:360px; background:var(--jey-background-soft); border-radius:14px; position:relative; overflow:hidden; }
.map-specimen svg { width:100%; height:100%; }
.map-caption { position:absolute; bottom:14px; left:14px; right:14px; background:var(--surface); padding:14px; border-radius:8px; }
.auth-panel .wordmark { font-size:42px; }
.auth-panel form { margin-top:28px; }
.auth-panel .row > .btn { flex:1; }
.auth-panel .legal-note { margin-top:24px; font-size:12px; color:var(--muted); }
.app-shell { min-height:100dvh; display:grid; grid-template-columns:210px minmax(0,1fr); }
.app-sidebar { padding:24px 16px; background:var(--surface); border-right:1px solid var(--rule); }
.app-sidebar nav { margin-top:32px; }
.app-sidebar nav a { display:flex; align-items:center; gap:10px; padding:12px; margin-bottom:4px; border-radius:8px; text-decoration:none; font-size:13px; }
.app-sidebar .context { padding:18px 10px; margin-top:24px; border-top:1px solid var(--rule); }
.app-workspace { min-width:0; }
.app-topbar { display:flex; justify-content:space-between; align-items:center; padding:16px 28px; border-bottom:1px solid var(--rule); min-height:76px; background:var(--surface); gap:16px; }
.app-topbar h1 { font-size:24px; }
.app-context-link { text-decoration:none; }
.compact-menu { display:none; position:relative; }
.compact-menu summary { min-height:44px; display:flex; align-items:center; padding:8px 12px; border:1px solid var(--strong); border-radius:8px; }
.compact-menu nav { position:absolute; top:100%; right:0; width:240px; max-height:70dvh; overflow:auto; background:var(--surface); box-shadow:var(--jey-shadow-md); border-radius:14px; padding:12px; z-index:10; }
.compact-menu nav a { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px; text-decoration:none; }
.app-content h1 { font-size:32px; }
.app-page-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; }
.app-page-header p { color:var(--muted); font-size:13px; }
.form-panel { max-width:680px; }
.filter-bar input { flex:1; min-width:160px; }
.filter-bar select { border:1px solid var(--strong); border-radius:8px; background:var(--surface); padding:10px; }
.actions { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
.tabs { display:flex; gap:20px; border-bottom:1px solid var(--rule); overflow:auto; margin:20px 0; }
.tabs a { padding:12px 0; white-space:nowrap; text-decoration:none; color:var(--muted); }
.tabs a.active { border-bottom:3px solid var(--action); color:var(--action); font-weight:600; }
.scan-area { min-height:280px; max-width:460px; margin:24px auto; background:#14171a; color:#ffffff; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:20px; border-radius:14px; }
.scan-corners { width:160px; height:160px; border:3px solid #ffffff; border-radius:14px; display:grid; place-items:center; }
.scan-corners .icon { width:54px; height:54px; }
.empty-state { text-align:center; padding:48px 20px; }
.empty-state > .icon { width:40px; height:40px; color:var(--muted); margin-bottom:18px; }
.empty-state h2 { font-size:24px; }
.empty-state .btn { margin-top:22px; }
.timeline { display:flex; gap:24px; padding:24px 0; overflow:auto; }
.timeline p { flex:1; min-width:160px; padding-top:16px; border-top:1px solid var(--food); }
.timeline small { display:block; }
.diff { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:20px 0; }
.diff > div { padding:20px; background:var(--canvas); border-radius:8px; }
.chart { display:flex; gap:12px; align-items:flex-end; height:180px; border-bottom:1px solid var(--strong); padding:16px 12px 0; }
.chart > div span { position:absolute; bottom:100%; font-size:11px; width:100%; text-align:center; margin-bottom:4px; }
.landing-hero .member-pass { transform:rotate(-3deg); min-height:290px; }
.landing-main .section { padding:48px 0; }
.landing-main details { padding:18px 0; border-bottom:1px solid var(--rule); }
.legal-copy { max-width:70ch; margin:48px auto; }
.legal-copy h1 { font-size:36px; }
.legal-copy h2 { font-size:22px; margin:32px 0 12px; }
.design-disclaimer { font-size:11px; padding:12px 20px; background:var(--surface); color:var(--muted); border-top:1px solid var(--rule); }
@media (max-width:1100px) {
  .catalog-main { padding:32px 28px 60px; }
  .catalog-layout { grid-template-columns:190px minmax(0,1fr); }
  .screen-explorer { grid-template-columns:190px minmax(0,1fr); }
  .screen-stage { padding:16px; }
  .intro { gap:24px; }
  .intro-art { padding:24px; }
}
@media (max-width:900px) {
  .catalog-layout { display:block; }
  .catalog-nav { position:sticky; top:76px; height:auto; padding:8px 16px; display:flex; border-right:0; border-bottom:1px solid var(--rule); z-index:15; overflow:auto; gap:8px; }
  .catalog-nav a { flex-shrink:0; margin:0; }
  .nav-foot { display:none; }
  .intro { grid-template-columns:1fr 1fr; }
  .columns.three { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .catalog-header { padding:0 16px; height:68px; }
  .brand-lockup { gap:10px; min-width:0; white-space:normal; }.brand-lockup > span:last-child { max-width:104px; }.catalog-header { gap:8px; }.header-meta select { width:90px; }.brand-lockup .divider,.header-meta > small { display:none; }
  .brand-lockup > span:last-child { font-size:12px; }
  .catalog-nav { top:68px; }.catalog-nav a { padding:8px 12px; font-size:12px; gap:7px; }
  .catalog-nav .icon { width:17px; height:17px; }
  .catalog-main { padding:28px 18px 48px; }
  .intro,.columns,.component-grid,.landing-hero,.diff { grid-template-columns:1fr; }
  .intro { gap:28px; }.intro h1 { max-width:12ch; font-size:52px; }
  .intro-art { min-height:260px; }
  .palette { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .type-row { grid-template-columns:1fr; gap:12px; }
  .screen-explorer { display:block; }.screen-index { max-height:260px; border-right:0; border-bottom:1px solid var(--rule); }
  .screen-stage { padding:12px; }.screen-spec { padding:16px; }
  .screen-tools { gap:10px; }.screen-tools .segment button { padding:8px 10px; }
  .screen-tools .segment { width:100%; justify-content:space-between; }
  .screen-tools .segment button { min-height:44px; }
  .preview-frame iframe { height:740px; }
  .coverage-row { grid-template-columns:55px 1fr; }.coverage-row > .badge { display:none; }
  .app-shell { display:block; }.app-sidebar { display:none; }.app-topbar { padding:14px 16px; }
  .compact-menu { display:block; }.app-topbar > .row > .badge { display:none; }
  .app-content { padding:24px 16px; }.app-content .columns { grid-template-columns:1fr; }
  .app-page-header { align-items:flex-start; }.app-page-header h1 { font-size:28px; }
  .stat-strip { gap:12px; }.stat strong { font-size:26px; }
  .app-content .btn { min-height:44px; }
  .app-content .panel { padding:18px; }.auth-panel { margin:24px 16px; }
  .landing-hero { padding:40px 0; gap:32px; }.landing-hero .member-pass { transform:none; }
  .landing-nav .row > a:not(.btn):not(:last-child) { display:none; }
  .form-panel .columns { gap:0; }.section-head { display:block; }
  .btn { min-height:44px; }.legal-copy { margin:32px 0; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }.spinner { animation:none; }
}
@media print {
  .catalog-header,.catalog-nav,.screen-index,.screen-tools,.token-actions,.toast { display:none; }
  .catalog-layout { display:block; }.catalog-main { padding:0; }.section,.component { break-inside:avoid; }
}
/* Final responsive overrides keep the compact chooser unconstrained when expanded. */
@media (max-width:600px) {
  .screen-index { max-height:none; }
  .app-content .filter-grid { grid-template-columns:1fr; }
  .screen-spec { padding:16px; }
  .form-panel .columns { gap:16px; }
}
.coupon-summary .actions { padding-top:20px; border-top:1px solid var(--rule); }
.coupon-summary .stamps { max-width:390px; }
.coupon-rewards { margin-top:8px; }
.social-variants h3 { margin-top:20px; }
.landing-hero .landing-ticket p { color:var(--jey-text-on-header); }
.coupon-summary .coupon-body { display:grid; grid-template-columns:minmax(220px,1fr) minmax(240px,1fr); gap:32px; align-items:center; margin-top:24px; }
.coupon-summary .coupon-body .stamps { width:100%; padding:8px 0; }
@media (min-width:601px) and (max-width:1000px) {
  .portal-shell .history-desktop { display:none; }
  .portal-shell .history-mobile { display:block; }
}
@media (max-width:900px) {
  .coupon-summary .coupon-body { grid-template-columns:1fr; gap:16px; }
}
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
.home-bar { border:0; padding-bottom:4px; }
.home-bar h1 { display:none; }
.home-greeting { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.home-greeting h2 { margin-top:3px; }
.membership-strip { display:flex; align-items:center; gap:8px; margin:14px 0 18px; font-size:12px; }
.membership-strip > span:nth-child(2) { flex:1; }
.membership-strip a { color:var(--action); font-weight:600; }
.discovery-search { display:flex; align-items:center; gap:10px; padding:0 14px; border:1px solid var(--strong); border-radius:999px; min-height:48px; background:var(--surface); color:var(--action); }
.discovery-search input { width:100%; min-width:0; min-height:46px; border:0; background:transparent; outline-offset:0; color:var(--ink); }
.category-stations { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin:20px 0; position:relative; }
.category-stations::before { content:""; position:absolute; left:12.5%; right:12.5%; top:24px; height:2px; background:var(--rule); }
.category-station { position:relative; border:0; display:flex; flex-direction:column; align-items:center; gap:8px; min-height:76px; padding:0 2px; font-weight:600; font-size:12px; }
.category-circle { display:grid; place-items:center; width:var(--proposal-station-diameter); height:var(--proposal-station-diameter); border-radius:50%; color:var(--proposal-ground); background:var(--line-color); outline:4px solid var(--proposal-ground); }
.category-circle .icon { width:23px; height:23px; }
.category-station[aria-pressed="true"] .category-circle { outline:2px solid var(--line-color); outline-offset:4px; }
.category-station[aria-pressed="true"] > span:last-child { text-decoration:underline; text-underline-offset:4px; }
.featured-benefit { border-radius:14px; background:var(--proposal-food-soft); padding:18px; }
.featured-business { display:flex; gap:10px; align-items:center; }
.featured-business > div { flex:1; }
.featured-business small { display:block; }
.featured-business .business-mark { width:42px; height:42px; }
.featured-benefit > a { display:block; margin:18px 0 12px; text-decoration:none; }
.featured-benefit h3 { font-size:26px; }
.featured-benefit > a > span { display:flex; gap:8px; align-items:center; color:var(--action); font-weight:600; margin-top:14px; }
.featured-benefit > small { display:block; }
.home-recent { margin-top:28px; }
.home-recent .section-head { margin-bottom:2px; display:flex; flex-wrap:nowrap; gap:8px; align-items:baseline; }
.business-result-copy { flex:1; min-width:0; }
.business-result-copy strong { font:800 17px var(--jey-font-display); display:block; }
.business-result-copy p { font-size:13px; margin:4px 0; }
.business-result-copy small { display:block; }
.business-tile > .icon { color:var(--action); }
.sample-logo { width:36px; height:36px; }
.discovery-tools { display:flex; justify-content:space-between; gap:8px; margin:16px 0; align-items:center; }
.discovery-tools > .btn { padding:8px 10px; }
.category-all { margin-top:20px; }
.category-all .btn { min-height:44px; padding:10px 16px; border:1px solid var(--rule); border-radius:999px; }
.subcategory-options { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.subcategory-options .btn { font-size:12px; }
.result-caption { display:flex; align-items:center; justify-content:space-between; padding:12px 0 4px; gap:8px; }
.discovery-filter { margin-top:24px; }
.btn[aria-pressed="true"] { background:var(--proposal-accent-soft); color:var(--action); border-color:var(--action); }
.identity-cover { min-height:0; height:128px; padding:0; overflow:hidden; background:var(--profile-soft,var(--proposal-food-soft)); color:var(--line-color,var(--food)); }
.identity-cover > span { display:flex; gap:8px; align-items:center; font-size:12px; }
.identity-cover .icon { width:24px; height:24px; }
.business-profile-row { display:flex; gap:12px; align-items:center; margin:18px 0; }
.business-profile-row > div { flex:1; min-width:0; }
.business-profile-row .business-mark { width:64px; height:64px; }
.business-profile-row p { margin:5px 0; font-size:13px; }
.business-description { margin:0 0 18px; color:var(--muted); }
.coupon-mini { display:flex; gap:12px; align-items:center; background:var(--proposal-food-soft); padding:16px; border-radius:12px; }
.coupon-mini > div { flex:1; }
.coupon-mini h3 { font-size:16px; }
.coupon-mini p { font-size:13px; margin-top:4px; }
.coupon-mini > .icon { color:var(--food); }
.directions { padding:0 0 12px; }
.directions summary { display:flex; align-items:center; gap:8px; color:var(--action); font-weight:600; }
.directions p { font-size:12px; color:var(--muted); margin-bottom:12px; }
.directions .flow { gap:8px; }
.provider-btn { flex:1; min-height:44px; }
.provider-btn .icon { color:var(--ink); }
.place-identity { display:flex; gap:12px; align-items:center; }
.place-identity h3 { margin:4px 0; }
.place-card > p { font-size:13px; margin-top:12px; }
.place-action { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:16px; width:100%; }
.filter-workspace { margin-bottom:20px; }
.filter-search { flex:1; min-width:160px; }
.filter-count { display:inline-grid; place-items:center; min-width:18px; min-height:18px; border-radius:50%; background:var(--proposal-accent-soft); color:var(--action); font-size:11px; }
.additional-filters { padding:16px; background:var(--surface); border:1px solid var(--rule); border-radius:12px; }
.additional-filters > .field { max-width:300px; }
.opportunity-board { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.opportunity-feature { grid-column:1 / -1; background:var(--proposal-food-soft); padding:28px; border-radius:16px; }
.opportunity-feature h2 { font-size:38px; margin:24px 0 18px; }
.opportunity-feature .featured-business .business-mark { width:48px; height:48px; }
.opportunity-small { padding:20px; border-radius:14px; background:var(--proposal-coffee-soft); }
.opportunity-small.sport { background:var(--proposal-sport-soft); }
.opportunity-small > .icon { color:var(--coffee); }
.opportunity-small.sport > .icon { color:var(--sport); }
.opportunity-small h3 { margin:16px 0 8px; }
.opportunity-small p { font-size:14px; color:var(--ink); margin:0; }
.opportunity-board > small { grid-column:1 / -1; }
.product-preview { padding:24px; background:var(--proposal-ground); border:1px solid var(--rule); border-radius:16px; }
.product-preview h3 { margin:10px 0 16px; }
.journey-list li::before { content:counter(journey); display:grid; place-items:center; position:absolute; top:0; left:0; width:28px; height:28px; border:2px solid var(--action); border-radius:50%; color:var(--action); font-weight:700; background:var(--canvas); }
.journey-list li:not(:last-child)::after { content:""; position:absolute; top:30px; bottom:3px; width:1px; left:14px; background:var(--rule); }
.portal-preview { background:var(--proposal-ground); padding:24px; border-radius:14px; border:1px solid var(--rule); }
.preview-window-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--rule); }
.portal-preview .list-row { padding:14px 0; }
.commercial-close { background:var(--proposal-accent-soft); border-radius:16px; padding:36px; margin-bottom:48px; }
.commercial-close h2 { max-width:20ch; }
.commercial-close .btn { margin-top:24px; }
.check:has(input:checked) { background:var(--proposal-accent-soft); border-color:var(--action); }
.check:has(input:disabled) { background:var(--canvas); }
.list-row > .icon:first-child { color:var(--action); }
@media (max-width:600px) { .auth-panel .provider-btn { flex-basis:100%; }.opportunity-feature { padding:22px; }.opportunity-feature h2 { font-size:30px; }.opportunity-small { padding:16px; }.opportunity-small h3 { font-size:18px; }.product-preview,.portal-preview { padding:18px; }.commercial-close { padding:24px; } }
@media (max-width:350px) { .mobile-body { padding:16px 12px 28px; }.category-station { font-size:11px; }.code-flow { padding:14px; }.code-text { font-size:25px; }.discovery-tools { flex-wrap:wrap; }.opportunity-board { grid-template-columns:1fr; } }
