:root {
    --app-radius: 1rem;
}
body {
    min-height: 100vh;
    background: linear-gradient(180deg, rgba(13,110,253,.04), transparent 240px);
}
.card, .accordion-item { border-radius: var(--app-radius); overflow: hidden; }
.content-type-select { max-width: 260px; }
.preview-sticky { position: sticky; top: 84px; }
.qr-preview { display: flex; align-items: center; justify-content: center; min-height: 280px; overflow: auto; }
.qr-preview canvas, .qr-preview svg { max-width: 100%; height: auto !important; }
.preview-placeholder { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.download-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .5rem; }
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1090; background: var(--bs-body-bg); border-top: 1px solid var(--bs-border-color); }
.dynamic-field-card { border: 1px solid var(--bs-border-color); border-radius: .75rem; padding: 1rem; background: rgba(var(--bs-secondary-bg-rgb), .35); }
.history-item-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 70%; }
.form-label { font-weight: 600; }
.form-text { font-size: .78rem; }
@media (max-width: 991.98px) {
    .preview-sticky { position: static; }
}
@media (max-width: 575.98px) {
    .navbar .container-fluid { gap: .5rem; }
    .navbar-brand span { display: none; }
    .content-type-select { max-width: none; width: 100%; }
    .download-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .card-body { padding: 1rem; }
    .qr-preview { min-height: 240px; }
}

/* 語系切換使用原生選單避免依賴Bootstrap下拉選單JavaScript */
.language-switcher {
    width: auto;
    min-width: 190px;
}
.language-switcher .form-select {
    min-width: 155px;
}
@media (max-width: 575.98px) {
    .language-switcher {
        min-width: 0;
        width: 178px;
    }
    .language-switcher .form-select {
        min-width: 0;
        font-size: 0.82rem;
    }
}

/* Logo預覽區只顯示已標準化後的本機圖片 */
.logo-preview-wrap { display: flex; align-items: center; gap: .75rem; min-height: 52px; }
.logo-preview-image { width: 48px; height: 48px; object-fit: contain; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: #fff; padding: 3px; }
