@charset "UTF-8";

.app-shell {
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: var(--app-max-width);
    min-height: 100vh;
    min-height: 100svh;
    margin-inline: auto;
    background: var(--color-background);
    box-shadow: 0 0 36px rgb(16 43 70 / 5%);
}
.page-background { position: absolute; z-index: -1; inset: 180px 0 auto; width: 100%; height: 760px; object-fit: cover; opacity: .14; pointer-events: none; }
.skip-link { position: fixed; top: -80px; left: 12px; z-index: 200; min-height: 44px; padding: 10px 14px; background: #fff; border: 2px solid var(--color-tech); border-radius: 8px; }
.skip-link:focus { top: 8px; }
.app-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: env(safe-area-inset-top, 0px) 12px 0; background: linear-gradient(105deg, #0c3552, #082940); color: white; }
.brand { display: inline-flex; align-items: center; gap: 8px; min-width: 0; min-height: 48px; color: white; font-weight: 650; letter-spacing: .4px; --app-font-size: 14px; }
.brand__logo { width: 25px; height: 25px; flex: 0 0 25px; object-fit: contain; filter: brightness(0) invert(1); }
.header-query { display: inline-flex; align-items: center; justify-content: center; gap: 5px; flex-shrink: 0; min-width: 58px; min-height: 44px; color: white; --app-font-size: 12px; }
.header-query .icon { filter: brightness(0) invert(1); }
.icon { display: inline-block; flex-shrink: 0; width: 20px; height: 20px; object-fit: contain; }
.icon--fallback { border: 1.5px solid currentColor; border-radius: 5px; width: 16px; height: 16px; }
.brand-hero { position: relative; height: 150px; overflow: hidden; background: #143b55; color: white; }
.brand-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: 54% 52%; }
.brand-hero__shade { position: absolute; inset: 0; background: linear-gradient(110deg, rgb(6 40 61 / 44%) 0%, rgb(6 40 61 / 12%) 55%, transparent 83%); }
.brand-hero__chip { position: absolute; right: -5px; bottom: 0; width: 43%; height: 78%; object-fit: contain; object-position: right bottom; pointer-events: none; }
.brand-hero__copy { position: absolute; z-index: 1; top: 16px; left: 18px; right: 12px; max-width: calc(100% - 30px); text-shadow: 0 1px 5px rgb(0 18 35 / 42%); }
.brand-hero__slogan { --app-font-size: 14px; color: #fff3c8; font-weight: 700; letter-spacing: .4px; line-height: 1.7; }
.brand-hero__subtitle { --app-font-size: 12px; color: #fff; margin-top: 2px; letter-spacing: .25px; }
.brand-hero__rule { display: block; width: 28px; height: 2px; margin-top: 9px; border-radius: 2px; background: #d4b876; }
.brand-hero--compact { height: 116px; }
.brand-hero--compact .brand-hero__copy { top: 12px; }
.main-content { position: relative; min-width: 0; padding: 12px max(12px, env(safe-area-inset-right, 0px)) calc(var(--nav-height) + env(safe-area-inset-bottom, 0px) + 18px) max(12px, env(safe-area-inset-left, 0px)); }
.main-content:focus { outline: none; }
.main-content > * + * { margin-top: var(--content-gap); }
.card { min-width: 0; padding: 13px; background: rgb(255 255 255 / 97%); border: 1px solid rgb(225 229 233 / 80%); border-radius: var(--radius-card); box-shadow: var(--shadow-card); }
.phone-login, .phone-login-shell { background: #fff; }
.phone-login-shell { box-shadow: none; }
.phone-login-main { padding-top: 24px; padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
.phone-login-card { padding: 0 16px; border: 0; box-shadow: none; text-align: center; }
.phone-login-mark { display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto 12px; border-radius: 10px; background: var(--color-pale-blue); }
.phone-login-mark .icon { width: 22px; height: 22px; }
.phone-login-description { margin-top: 6px; color: #4e5d6b; }
.phone-login-card form, .phone-login-unavailable { margin-top: 22px; }
.phone-login-card > .text-link { margin-top: 4px; }
.phone-login-card .phone-login-switch { display: inline-block; margin: 4px 0 0 12px; }
.phone-login-unavailable { color: var(--color-error); }
.phone-login-note { margin-top: 8px; color: var(--color-muted); --app-font-size: 11px; }
.phone-login-links { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 2px 14px; margin-top: 18px; padding-top: 8px; border-top: 1px solid var(--color-line); color: var(--color-muted); }
.phone-login-links > a { display: inline-flex; flex-direction: column; justify-content: center; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; }
.phone-login-links > .phone-login-divider { width: 1px; height: 14px; background: var(--color-line); }
.account-profile { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 14px; }
.account-profile__avatar { position: relative; display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border: 1px solid #dce7f1; border-radius: 50%; background: #e9f1f9; color: #254b6a; --app-font-size: 14px; font-weight: 700; }
.account-profile__avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #e9f1f9; }
.account-profile__info h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-profile__phone { display: flex; align-items: center; gap: 4px; margin-top: 3px; color: #596c7d; --app-font-size: 11px; font-variant-numeric: tabular-nums; }
.account-profile__phone .icon { width: 13px; height: 13px; }
.account-profile__action .button { padding-inline: 8px; white-space: nowrap; }
.section-heading { display: flex; align-items: center; gap: 8px; min-width: 0; margin-bottom: 8px; }
.section-heading h1, .section-heading h2 { min-width: 0; }
.section-heading--between { justify-content: space-between; }
.section-heading--between > :first-child { flex: 1; }
.section-description { color: #4e5d6b; margin: -2px 0 12px; }
.badge { --app-font-size: 10px; display: inline-flex; align-items: center; justify-content: center; padding: 2px 8px; border-radius: var(--radius-pill); line-height: 1.6; font-weight: 600; white-space: normal; text-align: center; }
.badge--blue { color: #23486d; background: #e6eef7; }
.badge--warm { color: #8a521d; background: #fff0db; }
.preview-notice { display: flex; align-items: flex-start; gap: 7px; padding: 8px 10px; border: 1px solid #dae4ee; border-radius: 8px; background: #f1f6fa; color: #476078; --app-font-size: 10px; line-height: 1.5; }
.preview-notice .badge { flex-shrink: 0; }
.text-link { display: inline-flex; align-items: center; justify-content: center; gap: 2px; min-height: 44px; padding: 2px 0; border: 0; background: transparent; color: var(--color-tech); --app-font-size: 11px; }
.text-link .icon { width: 15px; height: 15px; }
.section-heading .text-link { margin-top: -10px; margin-bottom: -10px; flex-shrink: 0; }
.theme-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.theme-chips > span { display: flex; align-items: center; justify-content: center; gap: 5px; min-height: 28px; padding: 4px; background: var(--color-pale-red); color: #8d242b; border-radius: var(--radius-pill); --app-font-size: 11px; }
.theme-chips .icon { width: 16px; height: 16px; }
.policy-list { display: grid; }
.policy-item { display: flex; align-items: center; gap: 9px; min-height: 61px; padding: 9px 0; color: var(--color-navy); }
.policy-item + .policy-item { border-top: 1px solid var(--color-line); }
.policy-item:last-child { padding-bottom: 2px; }
.policy-item__icon { display: flex; align-items: center; justify-content: center; width: 24px; flex-shrink: 0; color: var(--color-red); }
.policy-item__icon .icon { width: 23px; height: 23px; }
.policy-item__body { flex: 1; min-width: 0; }
.policy-item__body > * { display: block; }
.policy-item__body strong { --app-font-size: 12px; font-weight: 650; line-height: 1.55; }
.policy-item__body .small { --app-font-size: 10px; margin-top: 3px; }
.policy-item > .icon { width: 15px; height: 15px; opacity: .75; }
.form-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; min-width: 0; }
.form-field--row { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: start; gap: 8px; margin-bottom: 10px; }
.form-field--row > label, .form-field--row > .field-label { display: flex; align-items: center; min-height: 44px; color: var(--color-navy); font-weight: 650; }
.form-field > label { color: var(--color-navy); font-weight: 600; }
.field-control { min-width: 0; }
input:not([type="checkbox"]):not([type="hidden"]), select, textarea, .region-trigger {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: var(--control-height);
    padding: 10px 10px;
    border: 1px solid #cbd3dc;
    background: #fff;
    color: var(--color-ink);
    --app-font-size: 12px;
    line-height: 1.65;
    box-shadow: inset 0 1px 2px rgb(16 43 70 / 2%);
}
input::placeholder, textarea::placeholder { color: #77828c; opacity: 1; --app-font-size: 11px; }
input[aria-invalid="true"], select[aria-invalid="true"] { border-color: var(--color-error); background: #fffafb; }
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--color-tech); outline: 2px solid rgb(36 119 184 / 20%); outline-offset: 1px; }
input:disabled, select:disabled { background: #f0f2f3; color: #77808a; }
.region-trigger { align-items: center; justify-content: space-between; gap: 6px; text-align: left; }
.region-trigger .icon { width: 16px; height: 16px; transform: rotate(90deg); }
.region-trigger > span { min-width: 0; }
.js .region-inline { display: none; }
.region-fields .form-field:last-of-type { margin-bottom: 8px; }
.consent-row { display: flex; align-items: flex-start; gap: 1px; margin: 0 -7px 7px; }
.checkbox-target { position: relative; flex: 0 0 40px; min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.checkbox-target input { position: absolute; width: 22px; height: 22px; margin: 0; opacity: 0; }
.checkbox-visual { display: block; width: 18px; height: 18px; border: 1.5px solid #8794a0; border-radius: 4px; background: #fff; pointer-events: none; }
.checkbox-target input:checked + .checkbox-visual { border-color: var(--color-red); background: var(--color-red); }
.checkbox-target input:checked + .checkbox-visual::after { content: ""; display: block; width: 8px; height: 5px; margin: 4px 3px; border-left: 2px solid white; border-bottom: 2px solid white; transform: rotate(-45deg); }
.checkbox-target input:focus-visible + .checkbox-visual { outline: 2px solid var(--color-tech); outline-offset: 3px; }
.consent-copy { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1px; min-height: 44px; min-width: 0; --app-font-size: 11px; }
.consent-copy a { display: inline-flex; align-items: center; min-height: 44px; color: #225a8c; }
.form-availability { margin-top: 8px; }
.field-error { --app-font-size: 11px; margin-top: 5px; color: var(--color-error); line-height: 1.5; }
.validation-summary { padding: 10px 12px; margin-bottom: 12px; border: 1px solid #efcbd0; border-radius: 8px; background: #fff7f7; color: var(--color-error); }
.validation-summary strong { --app-font-size: 12px; }
.validation-summary ul { margin: 5px 0 0; padding-left: 18px; }
.validation-summary li { --app-font-size: 11px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: var(--control-height); padding: 10px 12px; border: 1px solid transparent; border-radius: var(--radius-control); text-align: center; font-weight: 650; --app-font-size: 13px; line-height: 1.5; }
.button--primary { background: linear-gradient(100deg, #b52d32, #a91f28); color: #fff; border-color: #ae252d; }
.button--primary .icon { filter: brightness(0) invert(1); }
.button--outline { color: var(--color-navy); background: #fff; border-color: #304f6a; }
.button--quiet { color: #586d80; background: #f2f4f6; border-color: #e4e8ec; }
.button--disabled, .button:disabled { color: #707b84; background: #e9ecef; border-color: #e4e7ea; box-shadow: none; }
.button--disabled .icon { filter: grayscale(1); opacity: .6; }
.button--block { display: flex; width: 100%; }
.button--block + .button--block { margin-top: 10px; }
.card > .button--block, .card > .button-row { margin-top: 12px; }
.button-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; }
.button-row .button { --app-font-size: 12px; padding-inline: 8px; }
.button-row .icon { width: 18px; height: 18px; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; min-height: 44px; padding: 9px; border: 0; border-radius: 7px; background: transparent; color: var(--color-navy); }
.icon-button--outline-red { color: var(--color-red); border: 1px solid var(--color-red); background: white; }
.icon-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.icon-list li { display: flex; align-items: flex-start; gap: 10px; }
.icon-list .icon { width: 19px; height: 19px; margin-top: 1px; }
.page-heading { display: flex; align-items: center; gap: 3px; min-height: 44px; margin-block: 0 8px; }
.page-heading h1 { flex: 1; min-width: 0; }
.page-heading__back { margin-left: -8px; }
.page-heading__back .icon { width: 18px; height: 18px; }
.page-heading__action { margin-left: auto; }
.notice { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: 10px 11px; border-radius: 8px; border: 1px solid transparent; }
.notice > .icon { width: 18px; height: 18px; margin-top: 1px; }
.notice > p, .notice > span { min-width: 0; }
.notice--info { color: #2a526f; background: #edf4fa; border-color: #dce8f1; }
.notice--warm { color: #785127; background: #fbf3e8; border-color: #eee2d1; }
.notice--quiet { background: #f4f6f7; color: #5c6b78; border-color: #edf0f2; --app-font-size: 11px; }
.card .notice { margin-top: 12px; }
.card > .notice:first-child { margin-top: 0; }
.review-note { margin: 10px 0; color: #715335; }
.status-card { display: flex; align-items: flex-start; gap: 12px; }
.status-symbol { display: flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; background: var(--color-navy); }
.status-symbol .icon { width: 25px; height: 25px; filter: brightness(0) invert(1); }
.status-card--correction .status-symbol, .status-card--rejected .status-symbol { background: #8c6035; }
.status-card__body { flex: 1; min-width: 0; border-left: 1px solid #d5dce3; padding-left: 12px; }
.status-card__heading { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; margin-bottom: 4px; }
.status-card__body p + p { margin-top: 2px; }
.code-row { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.application-code { flex: 1; min-width: 0; padding: 10px 10px; border-radius: 6px; background: var(--color-pale-gold); color: var(--color-navy); font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; --app-font-size: 14px; font-weight: 700; line-height: 1.7; overflow-wrap: anywhere; }
.detail-list { margin-top: 6px; }
.detail-list > div { display: grid; grid-template-columns: minmax(70px, .7fr) minmax(0, 1.5fr); gap: 10px; align-items: start; padding: 9px 2px; border-bottom: 1px solid var(--color-line); }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list dt { color: #596877; }
.detail-list dd { min-width: 0; color: var(--color-navy); overflow-wrap: anywhere; }
.masked-value { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: 0; }
.progress-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 14px 0 0; padding: 0; }
.progress-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; text-align: center; color: #72808d; }
.progress-step::before { content: ""; position: absolute; top: 15px; left: -50%; z-index: 0; width: 100%; height: 2px; background: #dce2e8; }
.progress-step:first-child::before { display: none; }
.progress-step.is-done::before { background: #315b7d; }
.progress-step__marker { display: flex; align-items: center; justify-content: center; position: relative; z-index: 1; width: 32px; height: 32px; margin-bottom: 5px; background: #edf0f2; border: 2px solid #fff; border-radius: 50%; }
.progress-step__marker .icon { width: 17px; height: 17px; opacity: .65; }
.progress-step.is-done .progress-step__marker { background: var(--color-navy); }
.progress-step.is-done .progress-step__marker .icon { filter: brightness(0) invert(1); opacity: 1; }
.progress-step.is-current .progress-step__marker { background: #f3e6d5; }
.progress-step.is-warning .progress-step__marker { background: #f8e5e4; }
.progress-step__title { --app-font-size: 12px; font-weight: 650; color: #2c4c66; }
.progress-step__status { --app-font-size: 11px; }
.next-action-card__intro { display: flex; align-items: flex-start; gap: 12px; }
.next-action-card__icon { display: flex; align-items: center; justify-content: center; width: 45px; min-height: 46px; flex-shrink: 0; color: var(--color-navy); border-right: 1px solid #cdd6df; padding-right: 10px; }
.next-action-card__icon .icon { width: 28px; height: 28px; }
.next-action-card__intro h2 { margin-bottom: 4px; }
.step-number { --app-font-size: 14px; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; color: white; background: var(--color-navy); border-radius: 50%; font-weight: 700; }
.guide-step__heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 13px; }
.guide-step__heading p { margin-top: 3px; }
.guide-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px; margin-top: 9px; }
.availability-note { color: #856a50; }
.qr-area { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 12px; margin: 12px 0 0; }
.qr-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; width: 112px; min-height: 112px; padding: 10px; background: #f5eee5; border: 1px solid #e9dfd1; border-radius: 9px; text-align: center; color: #756757; }
.qr-placeholder > .icon { width: 25px; height: 25px; opacity: .6; }
.qr-placeholder strong { --app-font-size: 12px; font-weight: 600; }
.qr-area__actions { min-width: 0; }
.qr-area__actions .button { --app-font-size: 11px; gap: 4px; padding-inline: 6px; }
.qr-area__actions .icon { width: 16px; height: 16px; }
.qr-area__actions p { margin-top: 8px; --app-font-size: 11px; }
.group-qr { width: 100%; height: auto; border: 1px solid var(--color-line); padding: 5px; background: white; object-fit: contain; }
.qr-figure figcaption { --app-font-size: 10px; text-align: center; color: var(--color-muted); margin-top: 4px; }
.instruction-list { display: grid; gap: 17px; margin: 0; padding: 0; list-style: none; }
.instruction-list li { display: flex; align-items: flex-start; gap: 10px; }
.instruction-list .step-number { width: 26px; height: 26px; }
.instruction-list h3 { margin-bottom: 3px; }
.instruction-list + .notice { margin-top: 16px; }
.prose > * + * { margin-top: 13px; }
.prose ul { margin-bottom: 0; }
.prose li + li { margin-top: 6px; }
.prose .instruction-list { margin-top: 0; }
.article-title { margin-top: 12px; }
.document-meta { padding: 10px 0; border-block: 1px solid var(--color-line); }
.document-meta > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; padding: 4px 0; --app-font-size: 11px; }
.document-meta dt { color: var(--color-muted); }
.document-meta dd { overflow-wrap: anywhere; }
.source-url { word-break: break-all; }
.project-point { display: flex; align-items: flex-start; gap: 10px; padding: 11px; border-radius: 8px; background: #f2f6f8; }
.project-point .icon { margin-top: 1px; }
.legal-section + .legal-section { margin-top: 18px; }
.legal-section h3 { margin-bottom: 7px; }
.legal-section p + p { margin-top: 8px; }
.proposal-card { border-color: #e7d8c3; background: linear-gradient(105deg, #fffdf8, #f9f3e9); }
.proposal-amount { --app-font-size: 14px; margin: 8px 0 5px; color: var(--color-navy); font-weight: 700; font-variant-numeric: tabular-nums; }
.proposal-amount span { --app-font-size: 11px; font-weight: 500; }
.amount-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 6px; }
.amount-grid > div { padding: 12px 8px; border-bottom: 1px solid var(--color-line); }
.amount-grid > div:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--color-line); }
.amount-grid > div:nth-child(even) { padding-left: 13px; }
.amount-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
.amount-grid dt { --app-font-size: 11px; color: #617181; }
.amount-grid dd { --app-font-size: 14px; margin-top: 5px; font-weight: 700; color: var(--color-navy); font-variant-numeric: tabular-nums; }
.amount-grid .amount-caption { --app-font-size: 10px; display: block; color: #75808a; margin-top: 3px; font-weight: 400; }
.transaction-record { padding: 14px 0; }
.transaction-record + .transaction-record { border-top: 1px solid var(--color-line); }
.transaction-record__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.transaction-record__top strong { --app-font-size: 14px; color: var(--color-navy); }
.transaction-record .detail-list > div { border: 0; padding-block: 3px; --app-font-size: 11px; }
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 30px 18px; text-align: center; }
.empty-state > .icon { width: 42px; height: 42px; margin-bottom: 3px; opacity: .65; }
.empty-state p { color: var(--color-muted); max-width: 290px; }
.empty-state--inset { padding: 18px 4px; }
.app-footer { text-align: center; color: #7c858c; --app-font-size: 10px; padding: 10px 4px 0; }
.app-footer p + p { margin-top: 4px; }
.app-footer__links { display: flex; align-items: center; justify-content: center; gap: 10px; }
.app-footer__links a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: #617486; }
.bottom-nav { position: fixed; left: 50%; bottom: 0; z-index: 30; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; max-width: var(--app-max-width); min-height: var(--nav-height); padding: 5px 6px calc(4px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e6e9eb; background: rgb(255 255 255 / 98%); box-shadow: 0 -4px 20px rgb(16 43 70 / 3%); transform: translateX(-50%); }
.bottom-nav__item { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0; min-height: 58px; padding: 3px 2px 7px; border: 0; background: transparent; color: #757c82; --app-font-size: 11px; line-height: 1.4; font-weight: 500; }
.bottom-nav__item .icon { width: 23px; height: 23px; }
.bottom-nav__item:not(.is-active) .icon { filter: grayscale(1); opacity: .7; }
.bottom-nav__item.is-active { color: var(--color-navy); font-weight: 700; }
.bottom-nav__item.is-active::after { position: absolute; content: ""; left: 50%; bottom: 0; width: 42px; height: 3px; border-radius: 3px; background: var(--color-red); transform: translateX(-50%); }
.keyboard-open .bottom-nav { display: none; }
.app-dialog { position: fixed; inset: 0; z-index: 101; width: calc(100% - 28px); max-width: 430px; max-height: calc(var(--visible-height, 100vh) - 40px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); padding: 0; margin: auto; color: var(--color-ink); border: 1px solid #dce3e9; border-radius: 14px; background: #fff; box-shadow: 0 16px 60px rgb(7 29 47 / 22%); overflow: auto; overscroll-behavior: contain; }
.app-dialog:not([open]) { display: none; }
.app-dialog[open] { display: flex; flex-direction: column; }
.app-dialog::backdrop { background: rgb(10 28 43 / 53%); }
.dialog-scrim { position: fixed; inset: 0; z-index: 100; background: rgb(10 28 43 / 53%); }
.dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; padding: 9px 8px 8px 17px; border-bottom: 1px solid #e8edf1; }
.dialog-header h2 { --app-font-size: 14px; }
.dialog-header .icon { width: 18px; height: 18px; }
.dialog-body { min-height: 0; padding: 16px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.dialog-body > .small:last-child { margin-top: 10px; }
.dialog-footer { flex-shrink: 0; padding: 0 16px 16px; }
.dialog-footer > form + .button { margin-top: 8px; }
.query-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; margin-bottom: 16px; padding: 4px; border-radius: 9px; background: #eef2f5; }
.query-tab { --app-font-size: 12px; display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px; color: #627181; border-radius: 6px; font-weight: 600; }
.query-tab.is-active { color: var(--color-navy); background: #fff; box-shadow: 0 1px 4px rgb(16 43 70 / 9%); }
.query-panel .section-description { --app-font-size: 11px; margin-bottom: 14px; }
.query-panel .form-field { margin-bottom: 12px; }
.query-switch-help { justify-content: flex-start; margin-top: -7px; margin-bottom: 3px; }
.query-privacy { margin: 3px 0 12px; }
.query-empty-state .empty-state h3 { --app-font-size: 14px; }
.query-empty-state .button { margin-top: 10px; }
.query-empty-state .empty-state { padding-top: 12px; padding-bottom: 20px; }
.manual-copy-value { margin-top: 12px; word-break: break-all; -webkit-user-select: text; user-select: text; }
.toast { position: fixed; z-index: 250; bottom: calc(var(--nav-height) + 18px + env(safe-area-inset-bottom, 0px)); left: 50%; width: max-content; max-width: calc(100% - 40px); padding: 11px 16px; border-radius: 8px; color: #fff; background: rgb(16 43 70 / 95%); box-shadow: 0 3px 12px rgb(16 43 70 / 20%); transform: translateX(-50%); text-align: center; --app-font-size: 12px; pointer-events: none; }
.development-entry { align-items: center; flex-wrap: wrap; }
.development-entry form { margin-left: auto; }
.development-entry .button { --app-font-size: 11px; }
.development-exit { display: flex; justify-content: flex-end; }
.development-exit .text-link { min-height: 44px; }

@media (min-width: 375px) {
    .main-content { padding-left: max(13px, env(safe-area-inset-left, 0px)); padding-right: max(13px, env(safe-area-inset-right, 0px)); }
    .card { padding: 15px; }
    .form-field--row { grid-template-columns: 68px minmax(0, 1fr); }
    .brand-hero { height: 160px; }
    .brand-hero--compact { height: 120px; }
    .qr-area { grid-template-columns: 136px minmax(0, 1fr); }
    .qr-placeholder { width: 136px; min-height: 136px; }
}
@media (max-width: 340px) {
    .brand-hero { height: 140px; }
    .brand-hero--compact { height: 106px; }
    .brand-hero__copy { left: 13px; top: 13px; }
    .brand-hero__slogan { letter-spacing: 0; }
    .theme-chips { gap: 4px; }
    .theme-chips > span { gap: 3px; --app-font-size: 10px; }
    .status-card { gap: 8px; }
    .status-symbol { width: 36px; height: 36px; flex-basis: 36px; }
    .status-card__body { padding-left: 9px; }
    .application-code { padding-inline: 7px; --app-font-size: 13px; }
    .badge { padding-inline: 6px; }
    .proposal-card .section-heading { align-items: flex-start; }
    .proposal-card .badge { max-width: 120px; }
    .dialog-body { padding: 14px; }
    .dialog-footer { padding-inline: 14px; }
}
@media print {
    .app-header, .bottom-nav, .app-footer, .app-dialog, .dialog-scrim, .toast, .development-entry, .development-exit { display: none !important; }
    .app-shell { max-width: none; box-shadow: none; }
    .main-content { padding-bottom: 0; }
    .card { break-inside: avoid; box-shadow: none; }
    .button { color: var(--color-navy); background: white; border-color: var(--color-line); }
}
