.bottom-nav{z-index:10;background:var(--color-surface);border-top:1px solid var(--color-border);padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px));display:flex;position:sticky;bottom:0}.bottom-nav__item{min-height:var(--tap-target-min);color:var(--color-text-secondary);border-radius:var(--radius-md);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-size:12px;text-decoration:none;display:flex}.bottom-nav__item--active{color:var(--color-primary-hover);font-weight:700}.primary-button{min-height:var(--tap-target-min);border-radius:var(--radius-lg);border:2px solid var(--color-primary);background:var(--color-primary);color:var(--color-primary-text);font-size:var(--font-size-body);cursor:pointer;box-sizing:border-box;justify-content:center;align-items:center;padding:12px 20px;font-weight:700;text-decoration:none;display:inline-flex}.primary-button:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.primary-button--outline{background:var(--color-surface);color:var(--color-heading)}.primary-button--outline:hover{background:var(--color-bg)}.primary-button--full{width:100%}.filter-chip{min-height:var(--tap-target-min);border-radius:var(--radius-pill);border:2px solid var(--color-tag-bg);background:var(--color-tag-bg);color:var(--color-tag-text);font-size:var(--font-size-caption);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:6px;padding:8px 18px;font-weight:600;display:inline-flex}.filter-chip--selected{background:var(--color-tag-selected-bg);border-color:var(--color-tag-selected-bg);color:var(--color-tag-selected-text)}.filter-chip--lg{width:100%;font-size:var(--font-size-body);justify-content:center;padding:14px 16px}.filter-chip__close{font-size:14px}.feature-tag{border-radius:var(--radius-pill);background:var(--color-tag-bg);color:var(--color-tag-text);font-size:var(--font-size-caption);align-items:center;padding:4px 12px;font-weight:600;display:inline-flex}.favorite-button{width:var(--tap-target-min);height:var(--tap-target-min);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary-hover);cursor:pointer;flex:none;justify-content:center;align-items:center;display:flex}.favorite-button--active{border-color:var(--color-primary);background:var(--color-tag-bg)}.restaurant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;display:flex}.restaurant-card__head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.restaurant-card__name-link{color:inherit;min-width:0;text-decoration:none}.restaurant-card__name{font-size:var(--font-size-name);color:var(--color-heading);margin:0;font-weight:700}.restaurant-card__meta{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.restaurant-card__summary{background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:var(--radius-md);font-size:var(--font-size-body);margin:0;padding:10px 12px}.restaurant-card__tags{flex-wrap:wrap;gap:6px;display:flex}.home-intro{margin-bottom:20px}.home-intro__brand{color:var(--color-primary-hover);letter-spacing:.02em;margin:0 0 6px;font-weight:700}.home-intro__headline{font-size:var(--font-size-heading);color:var(--color-heading);margin:0 0 10px}.home-intro__body{color:var(--color-text-secondary);margin:0}.home-section-title{color:var(--color-heading);margin:28px 0 12px;font-size:18px;font-weight:700}.home-goals__grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.app-header{z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:12px 16px;position:sticky;top:0}.app-header__row{align-items:center;gap:8px;display:flex}.app-header__back,.app-header__back-spacer{width:var(--tap-target-min);height:var(--tap-target-min);flex:none}.app-header__back{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-heading);cursor:pointer;justify-content:center;align-items:center;font-size:20px;display:flex}.app-header__titles{flex:1;min-width:0}.app-header__title{font-size:var(--font-size-name);color:var(--color-heading);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:700;overflow:hidden}.app-header__subtitle{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin:2px 0 0}.app-header__right{flex:none;align-items:center;display:flex}.area-airport-group{margin-top:20px}.area-airport-group__title{color:var(--color-heading);margin:0 0 10px;font-size:18px;font-weight:700}.area-airport-group__count{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-left:6px;font-weight:500}.area-airport-group__list{flex-direction:column;gap:10px;display:flex}.area-row{min-height:var(--tap-target-min);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-heading);align-items:center;gap:10px;padding:14px 16px;text-decoration:none;display:flex}.area-row__name{font-size:var(--font-size-body);flex:1;font-weight:700}.area-row__count{color:var(--color-primary-hover);font-weight:700}.empty-state{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-body);padding:32px 16px}.restaurants-filter-row{align-items:center;gap:8px;margin:16px 0;display:flex}.restaurants-filter-row .chip-row{flex:1}.restaurants-clear{min-height:var(--tap-target-min);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-caption);cursor:pointer;flex:none;padding:8px 14px;font-weight:600}.status-notice{border-radius:var(--radius-md);background:var(--color-caution-bg);border:1px solid var(--color-caution-border);color:var(--color-caution-text);font-size:var(--font-size-caption);margin:0;padding:10px 14px}.safety-card{border:1px dashed var(--color-caution-border);background:var(--color-caution-bg);border-radius:var(--radius-lg);margin-top:16px;padding:16px}.safety-card__text{color:var(--color-caution-text);font-size:var(--font-size-caption);margin:0;line-height:1.7}.safety-card__text a{color:var(--color-primary-hover);font-weight:700;text-decoration-thickness:2px}.detail-body{flex-direction:column;gap:16px;padding-top:8px;display:flex}.detail-tags{flex-wrap:wrap;gap:6px;display:flex}.detail-genre{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.detail-summary{background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:var(--radius-lg);font-size:var(--font-size-body);flex-direction:column;gap:8px;margin:0;padding:14px 16px;display:flex}.detail-facts{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin:0;overflow:hidden}.detail-facts__row{border-bottom:1px solid var(--color-border);gap:12px;padding:12px 16px;display:flex}.detail-facts__row:last-child{border-bottom:none}.detail-facts__row dt{width:88px;color:var(--color-text-secondary);font-size:var(--font-size-caption);flex:none}.detail-facts__row dd{font-size:var(--font-size-body);flex:1;margin:0}.detail-checked-at{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.detail-disclaimer{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:8px 0 0;line-height:1.6}.area-group{margin-bottom:24px}.area-group__title{color:var(--color-heading);margin:0 0 10px;font-size:18px;font-weight:700}.area-group__count{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-left:6px;font-weight:500}:root{--color-bg:#fbf3e6;--color-surface:#fff;--color-border:#e8d2b0;--color-primary:#e2921f;--color-primary-hover:#c97d15;--color-primary-text:#3a2415;--color-tag-bg:#f8deb9;--color-tag-text:#5c3b1e;--color-tag-selected-bg:var(--color-primary);--color-tag-selected-text:var(--color-primary-text);--color-text:#4a3222;--color-text-secondary:#8a6a4e;--color-heading:#3a2415;--color-caution-bg:#fdf0d9;--color-caution-border:#e7b65c;--color-caution-text:#6b4a15;--color-focus-ring:#b4560a;--font-size-body:17px;--font-size-name:21px;--font-size-caption:16px;--font-size-heading:26px;--tap-target-min:48px;--content-max-width:480px;--radius-md:12px;--radius-lg:18px;--radius-pill:999px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Noto Sans JP,system-ui,sans-serif;font-size:var(--font-size-body);-webkit-text-size-adjust:100%;line-height:1.6}#root{min-height:100vh}img{max-width:100%;display:block}button,input,select{font:inherit;color:inherit}a{color:inherit}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app-shell{max-width:var(--content-max-width);background:var(--color-bg);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.app-main{flex:1;padding:16px 16px 96px}.app-footer{text-align:center;color:var(--color-text-secondary);margin-top:28px;font-size:12px;line-height:1.8}.app-footer a{color:inherit;text-underline-offset:3px;white-space:nowrap;text-decoration:underline}.chip-row{white-space:nowrap;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;display:flex;overflow:auto hidden}.chip-row::-webkit-scrollbar{height:4px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
