﻿/* 關渡智慧家 RWD 視覺主題
   依 gandu-smart-home-rwd 示範版建立；保留既有 Razor 與功能邏輯。 */
:root {
    --gd-teal: #087f89;
    --gd-teal-dark: #05636c;
    --gd-ink: #192e43;
    --gd-muted: #637587;
    --gd-line: #dfe8ee;
    --gd-bg: #f5f8fa;
    --gd-mint: #e3f7ef;
    --gd-blue: #e5f2fc;
    --gd-purple: #f0eafb;
    --gd-yellow: #fff4d9;
    --gd-danger: #a44336;
    --gd-radius: 22px;
    --gd-shadow: 0 8px 26px rgba(22, 52, 72, .04);
    --gd-sidebar: 240px;
    --gd-topbar: 86px;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
}

html.gandau-font-large {
    font-size: 18px;
}

html.gandau-font-xlarge {
    font-size: 20px;
}

body.gandau-app {
    margin: 0;
    color: var(--gd-ink);
    background: var(--gd-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
    font-size: 17px;
    line-height: 1.65;
}

html.gandau-font-large body.gandau-app {
    font-size: 19px;
}

html.gandau-font-xlarge body.gandau-app {
    font-size: 21px;
}

.gandau-app *,
.gandau-app *::before,
.gandau-app *::after {
    box-sizing: border-box;
}

.gandau-app a {
    color: inherit;
    text-decoration: none;
}

.gandau-app button,
.gandau-app input,
.gandau-app textarea,
.gandau-app select {
    font: inherit;
}

.gandau-app button,
.gandau-app a {
    touch-action: manipulation;
}

.gandau-app button:focus-visible,
.gandau-app a:focus-visible,
.gandau-app input:focus-visible,
.gandau-app textarea:focus-visible,
.gandau-app select:focus-visible {
    outline: 3px solid #156db8;
    outline-offset: 3px;
}

.gandau-skip-link {
    position: fixed;
    top: -100px;
    left: 12px;
    z-index: 2000;
    padding: 10px 16px;
    border-radius: 10px;
    background: #fff;
    color: var(--gd-teal);
    font-weight: 700;
}

.gandau-skip-link:focus {
    top: 12px;
}

/* Desktop navigation */
.gandau-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1030;
    display: flex;
    width: var(--gd-sidebar);
    flex-direction: column;
    overflow-y: auto;
    padding: 28px 18px 18px;
    border-right: 1px solid var(--gd-line);
    background: #fff;
}

.gandau-brand,
.gandau-mobile-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    color: var(--gd-teal) !important;
    font-size: 1.22rem;
    font-weight: 800;
    letter-spacing: .035em;
}

.gandau-brand {
    padding: 0 8px;
}

.gandau-brand-mark {
    display: inline-flex;
    width: 39px;
    height: 39px;
    flex: 0 0 39px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--gd-mint);
    font-size: 25px;
}

.gandau-side-label {
    margin: 34px 14px 12px;
    color: var(--gd-muted);
    font-size: .73rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.gandau-service-label {
    margin-top: 22px;
}

.gandau-side-nav {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.gandau-side-link {
    display: flex;
    min-height: 51px;
    align-items: center;
    gap: 13px;
    padding: 10px 14px;
    border-radius: 14px;
    color: var(--gd-muted) !important;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.35;
    transition: color .18s, background .18s;
}

.gandau-side-link i {
    width: 26px;
    flex: 0 0 26px;
    font-size: 24px;
    text-align: center;
}

.gandau-side-link:hover {
    background: var(--gd-bg);
    color: var(--gd-teal) !important;
}

.gandau-side-link.active {
    background: var(--gd-mint);
    color: var(--gd-teal) !important;
    font-weight: 750;
}

.gandau-delegate-alert {
    margin: 22px 4px 0;
    padding: 13px;
    border-radius: 14px;
    background: var(--gd-yellow);
    color: #735d28;
    font-size: .76rem;
    line-height: 1.45;
}

.gandau-delegate-alert form {
    margin-top: 7px;
}

.gandau-delegate-alert button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gd-teal);
    font-weight: 700;
}

.gandau-user-card {
    margin-top: auto;
    padding: 17px 8px 0;
    border-top: 1px solid var(--gd-line);
}

.gandau-user-main {
    display: flex;
    align-items: center;
    gap: 11px;
}

.gandau-avatar {
    display: inline-flex;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--gd-blue);
    color: var(--gd-teal);
    font-size: 21px;
}

.gandau-user-main strong,
.gandau-user-main small {
    display: block;
    max-width: 145px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gandau-user-main strong {
    font-size: .88rem;
}

.gandau-user-main small {
    color: var(--gd-muted);
    font-size: .72rem;
}

.gandau-user-id {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-top: 11px;
    color: var(--gd-muted);
    font-size: .68rem;
}

.gandau-user-id > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gandau-user-id button {
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--gd-teal);
}

.gandau-user-id button:hover {
    background: var(--gd-mint);
}

.gandau-logout-form {
    margin: 10px 0 0;
}

.gandau-logout-button {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--gd-line);
    border-radius: 99px;
    background: #fff;
    color: var(--gd-muted);
    font-size: .8rem;
    font-weight: 700;
}

.gandau-logout-button:hover {
    border-color: #a9c6ca;
    background: var(--gd-mint);
    color: var(--gd-teal);
}

/* Topbar and content shell */
.gandau-topbar {
    position: fixed;
    inset: 0 0 auto var(--gd-sidebar);
    z-index: 1020;
    display: flex;
    height: var(--gd-topbar);
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 0 42px;
    border-bottom: 1px solid var(--gd-line);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(12px);
}

.gandau-mobile-brand {
    display: none;
}

.gandau-page-heading {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
}

.gandau-page-heading > div {
    min-width: 0;
}

.gandau-page-heading span {
    display: block;
    color: var(--gd-muted);
    font-size: .72rem;
    line-height: 1.3;
}

.gandau-page-heading h1 {
    max-width: 58vw;
    margin: 2px 0 0;
    overflow: hidden;
    color: var(--gd-ink);
    font-size: 1.16rem;
    font-weight: 750;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gandau-back-button {
    display: inline-flex;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gd-line);
    border-radius: 50%;
    background: #fff;
    color: var(--gd-teal) !important;
    font-size: 22px;
}

.gandau-back-button:hover {
    background: var(--gd-mint);
}

.gandau-topbar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--gd-ink);
    font-size: .83rem;
    font-weight: 650;
}

.gandau-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-right: 7px;
    padding: 5px 11px;
    border-radius: 99px;
    background: var(--gd-mint);
    color: var(--gd-teal);
    font-size: .7rem;
    font-weight: 700;
}

.gandau-main {
    min-height: 100vh;
}

.has-app-shell .gandau-main {
    margin-left: var(--gd-sidebar);
    padding-top: var(--gd-topbar);
}

.gandau-main > .pc-container,
.gandau-main .card-area > .pc-container {
    top: 0;
    width: auto !important;
    min-height: calc(100vh - var(--gd-topbar));
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.gandau-main .pc-content,
.gandau-main > .chat-page {
    width: 100%;
    max-width: 1280px;
    min-height: auto !important;
    margin: 0 auto !important;
    padding: 34px 42px 38px !important;
}

.gandau-main .pc-contentpadding,
.gandau-main .custom-card-container,
.gandau-main .generate-content-center {
    padding: 0 !important;
}

.gandau-main .pc-content > .ms-3,
.gandau-main .pc-content > .ms-4 {
    margin-left: 0 !important;
}

.gandau-main .pc-content > .me-3,
.gandau-main .pc-content > .me-4 {
    margin-right: 0 !important;
}

/* Shared cards and controls */
.health-metric-icon {
    display: block;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    object-fit: contain;
}

.category-tab .health-metric-icon,
.tools-btn .health-metric-icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
}

.gandau-app .disease-row {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    padding: 8px 0;
    align-items: stretch;
}

.disease-row .health-item {
    min-width: 0;
    gap: 10px;
    padding: 16px 8px;
    border: 1px solid var(--gd-line);
    border-radius: 16px;
    background: #fff;
    text-align: center;
}

.disease-row .disease-icon {
    width: 88px;
    height: 88px;
    max-width: 100%;
    object-fit: contain;
}

.disease-row .health-item p { margin: 0; }
.disease-row .health-item .donut-value { margin-top: auto; }

@media (max-width: 640px) {
    .gandau-app .disease-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .disease-row .health-item:last-child { grid-column: 1 / -1; }
    .disease-row .disease-icon { width: 76px; height: 76px; }
}

.gandau-app .card,
.gandau-app .custom-card,
.gandau-app .custom-box,
.gandau-app .action-card,
.gandau-app .info-card,
.gandau-app .health-check-box,
.gandau-app .Analysis-card-container,
.gandau-app .header-card,
.gandau-app .content-right,
.gandau-app .badge-category-card {
    border: 1px solid var(--gd-line) !important;
    border-radius: var(--gd-radius) !important;
    background: #fff !important;
    box-shadow: var(--gd-shadow) !important;
}

.gandau-app .card-header {
    padding: 21px 25px 17px;
    border-bottom: 1px solid var(--gd-line);
    border-radius: var(--gd-radius) var(--gd-radius) 0 0 !important;
    background: #fff;
    color: var(--gd-ink);
    font-size: 1.05rem;
    font-weight: 750;
}

.gandau-app .card-body {
    padding: 25px;
}

.gandau-app .custom-card {
    margin-bottom: 24px;
}

.gandau-app .custom-div {
    margin: 0 0 16px;
    padding: 21px 22px !important;
    border: 1px solid var(--gd-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
}

.gandau-app .custom-div > label,
.gandau-app .custom-div > p:first-child,
.gandau-app .field-label,
.gandau-app legend {
    display: block;
    margin: 0 0 12px;
    color: var(--gd-ink);
    font-weight: 700;
}

.gandau-app .form-control,
.gandau-app input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="submit"]):not([type="file"]),
.gandau-app textarea,
.gandau-app select,
.gandau-app .dropOption {
    width: 100%;
    min-height: 49px;
    padding: 12px 15px;
    border: 1px solid #bccdd8 !important;
    border-radius: 12px !important;
    background: #fff;
    color: var(--gd-ink);
    box-shadow: none !important;
}

.gandau-app textarea.form-control,
.gandau-app textarea {
    min-height: 130px;
    resize: vertical;
}

.gandau-app .form-control:focus,
.gandau-app .dropOption:focus {
    border-color: var(--gd-teal) !important;
    box-shadow: 0 0 0 3px rgba(8, 127, 137, .12) !important;
}

.gandau-app .form-control:disabled,
.gandau-app .form-control[readonly] {
    background: #f0f4f6;
    color: #526574;
}

.gandau-app .custom-div > .form-check,
.gandau-app .card-body > .form-check {
    display: flex;
    min-height: 56px;
    align-items: center;
    gap: 11px;
    margin: 9px 0 !important;
    padding: 13px 15px 13px 46px;
    border: 1px solid #c4d3dc;
    border-radius: 14px;
    background: #fff;
}

.gandau-app .custom-div > .form-check:has(input:checked),
.gandau-app .card-body > .form-check:has(input:checked) {
    border-color: var(--gd-teal);
    background: var(--gd-mint);
    box-shadow: inset 0 0 0 1px var(--gd-teal);
}

.gandau-app .form-check-input {
    width: 22px;
    height: 22px;
    margin-top: 0;
    accent-color: var(--gd-teal);
}

.gandau-app .form-check-label {
    margin: 0;
    cursor: pointer;
}

.gandau-app .btn,
.gandau-app .custom-btn,
.gandau-app .main-btn,
.gandau-app .second-btn {
    display: inline-flex;
    min-height: 49px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 11px 23px;
    border: 0 !important;
    border-radius: 99px !important;
    background: var(--gd-teal) !important;
    color: #fff !important;
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.4;
    box-shadow: none !important;
}

.gandau-app .btn:hover,
.gandau-app .custom-btn:hover,
.gandau-app .main-btn:hover {
    background: var(--gd-teal-dark) !important;
    color: #fff !important;
}

.gandau-app .btn-light,
.gandau-app .btn-outline-secondary,
.gandau-app .second-btn {
    border: 1px solid #9dbcc6 !important;
    background: #fff !important;
    color: var(--gd-teal) !important;
}

.gandau-app .btn-link {
    min-height: auto;
    padding: 4px 7px;
    background: transparent !important;
    color: var(--gd-teal) !important;
}

.gandau-app .buttom-btn {
    display: flex;
    justify-content: center;
    margin: 26px 0 5px;
    padding: 0;
}

.gandau-app .buttom-btn > div {
    width: auto;
    min-width: 190px;
}

.gandau-app .buttom-btn .btn,
.gandau-app .buttom-btn input {
    width: 100%;
}

.gandau-app .dropdown-menu {
    padding: 8px;
    border: 1px solid var(--gd-line);
    border-radius: 14px;
    box-shadow: 0 14px 30px rgba(25, 46, 67, .12);
}

.gandau-app .dropdown-item {
    padding: 10px 12px;
    border-radius: 9px;
}

.gandau-app .dropdown-item:active,
.gandau-app .dropdown-item:hover {
    background: var(--gd-mint);
    color: var(--gd-teal);
}

.gandau-app .alert {
    border: 0;
    border-radius: 15px;
}

.gandau-app .alert-warning {
    background: var(--gd-yellow);
    color: #735d28;
}

.gandau-app .alert-info {
    background: var(--gd-blue);
    color: #286383;
}

.gandau-app .table-responsive {
    border: 1px solid var(--gd-line);
    border-radius: 16px;
}

.gandau-app .table {
    margin-bottom: 0;
    color: var(--gd-ink);
}

.gandau-app .table > :not(caption) > * > * {
    padding: 13px 15px;
    border-bottom-color: var(--gd-line);
}

.gandau-app .table thead th {
    background: #edf7f5;
    color: var(--gd-teal);
    font-weight: 750;
}

.gandau-app hr {
    margin: 22px 0;
    border-color: var(--gd-line);
    opacity: 1;
}

.gandau-app .modal-content {
    overflow: hidden;
    border: 1px solid var(--gd-line);
    border-radius: 24px !important;
    box-shadow: 0 20px 55px rgba(25, 46, 67, .16);
}

.gandau-app .modal-header,
.gandau-app .modal-footer {
    border-color: var(--gd-line);
}

.gandau-app .nav-tabs {
    padding: 5px;
    border: 0;
    border-radius: 99px;
    background: #edf2f5;
}

.gandau-app .nav-tabs .nav-link {
    border: 0;
    border-radius: 99px;
    color: var(--gd-muted);
}

.gandau-app .nav-tabs .nav-link.active {
    background: #fff;
    color: var(--gd-teal);
    font-weight: 750;
    box-shadow: 0 2px 5px rgba(25, 53, 72, .06);
}

.gandau-app .survey-tag,
.gandau-app .survey-tag-gray,
.gandau-app .badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border-radius: 99px;
    background: var(--gd-mint);
    color: var(--gd-teal);
    font-size: .72rem;
    font-weight: 700;
}

.gandau-app .survey-tag-gray {
    background: #edf2f5;
    color: var(--gd-muted);
}

.gandau-app .page-footer-note {
    max-width: 880px;
    margin: 28px auto 0;
    color: var(--gd-muted);
    font-size: .77rem;
    line-height: 1.75;
    text-align: center;
}

.gandau-app .mainhome-bg {
    display: none;
}

.gandau-app .mainhome-header {
    position: static;
    width: auto;
    height: auto;
    margin: 0 0 24px;
    padding: 0;
}

.gandau-app .mainhome-headercard {
    position: static;
    display: flex;
    width: 100%;
    min-height: 112px;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 23px 26px;
    transform: none;
    border: 0;
    border-radius: var(--gd-radius);
    background: var(--gd-mint);
    box-shadow: none;
}

.gandau-app .mainhome-headercard .person-wrapper {
    display: inline-flex;
    width: 62px;
    height: 62px;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    border-radius: 50%;
    background: rgba(255, 255, 255, .72);
}

.gandau-app .mainhome-headercard .person-wrapper img {
    width: 38px;
    height: 38px;
}

.gandau-app .mainhome-headercard .title-text {
    margin: 0;
    color: var(--gd-ink);
    font-size: 1.5rem;
    font-weight: 780;
}

/* Home dashboard */
.gandau-home {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr);
    gap: 24px;
}

.gandau-home-stack {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 24px;
}

.gandau-panel {
    padding: 25px;
    border: 1px solid var(--gd-line);
    border-radius: var(--gd-radius);
    background: #fff;
    box-shadow: var(--gd-shadow);
}

.gandau-home-hero {
    display: flex;
    align-items: center;
    gap: 23px;
    padding: 30px;
    border: 0;
    background: var(--gd-mint);
}

.gandau-home-hero-copy {
    flex: 1;
}

.gandau-eyebrow {
    color: var(--gd-teal);
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .08em;
}

.gandau-home-hero h2 {
    margin: 10px 0 8px;
    color: var(--gd-ink);
    font-size: 1.62rem;
    font-weight: 780;
}

.gandau-home-hero p:last-of-type {
    margin: 0;
    color: #4b6c67;
}

.gandau-hero-avatar {
    display: inline-flex;
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 50%;
    background: rgba(255, 255, 255, .72);
}

.gandau-hero-avatar img {
    width: 76px;
    height: 76px;
    object-fit: contain;
}

.gandau-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 17px;
}

.gandau-section-title h2 {
    margin: 0;
    font-size: 1.14rem;
    font-weight: 750;
}

.gandau-section-title a {
    color: var(--gd-teal);
    font-size: .8rem;
    font-weight: 700;
}

.gandau-assessment-list {
    display: flex;
    flex-direction: column;
}

.gandau-assessment-row,
.gandau-service-row {
    position: relative;
    display: flex;
    min-height: 78px;
    align-items: center;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 1px solid var(--gd-line);
}

.gandau-assessment-row:last-child,
.gandau-service-row:last-child {
    border-bottom: 0;
}

.gandau-row-icon {
    display: inline-flex;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--gd-mint);
    color: var(--gd-teal);
    font-size: 25px;
}

.gandau-row-icon.blue {
    background: var(--gd-blue);
    color: #286994;
}

.gandau-row-icon.purple {
    background: var(--gd-purple);
    color: #75519f;
}

.gandau-row-icon.yellow {
    background: var(--gd-yellow);
    color: #886523;
}

.gandau-row-copy {
    min-width: 0;
    flex: 1;
}

.gandau-row-copy strong,
.gandau-row-copy small {
    display: block;
}

.gandau-row-copy strong {
    font-size: .98rem;
}

.gandau-row-copy small {
    margin-top: 3px;
    color: var(--gd-muted);
    font-size: .78rem;
}

.gandau-row-arrow {
    color: #7f95a5;
    font-size: 21px;
}

.gandau-profile-summary {
    display: flex;
    align-items: center;
    gap: 17px;
}

.gandau-profile-summary .gandau-avatar {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
    font-size: 29px;
}

.gandau-profile-summary h2 {
    margin: 0;
    font-size: 1.16rem;
}

.gandau-profile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 7px;
}

.gandau-profile-meta span {
    padding: 4px 10px;
    border-radius: 99px;
    background: var(--gd-blue);
    color: #286383;
    font-size: .73rem;
}

.gandau-tip {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 15px 17px;
    border-radius: 15px;
    background: var(--gd-yellow);
    color: #735d28;
    font-size: .82rem;
}

.gandau-tip i {
    margin-top: 2px;
    font-size: 20px;
}

/* Assessment entry page */
.gandau-page-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 24px;
}

.gandau-page-intro h2 {
    margin: 0 0 7px;
    font-size: 1.65rem;
    font-weight: 780;
}

.gandau-page-intro p {
    margin: 0;
    color: var(--gd-muted);
}

.gandau-assessment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.gandau-assessment-card {
    position: relative;
    display: flex;
    min-height: 132px;
    align-items: center;
    gap: 17px;
    padding: 22px;
    border: 1px solid var(--gd-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--gd-shadow);
    transition: transform .18s, border-color .18s, box-shadow .18s;
}

.gandau-assessment-card:hover {
    transform: translateY(-2px);
    border-color: #a9cfd0;
    box-shadow: 0 14px 30px rgba(22, 52, 72, .08);
}

.gandau-assessment-card .gandau-row-icon {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
    font-size: 29px;
}

.gandau-assessment-card h3 {
    margin: 0 0 5px;
    font-size: 1.04rem;
    font-weight: 750;
}

.gandau-assessment-card p {
    margin: 0;
    color: var(--gd-muted);
    font-size: .8rem;
}

.gandau-flow-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 24px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--gd-line);
    border-radius: 18px;
    background: #fff;
    list-style: none;
}

.gandau-flow-strip li {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 17px 20px;
}

.gandau-flow-strip li + li {
    border-left: 1px solid var(--gd-line);
}

.gandau-flow-strip li > span {
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #edf2f5;
    color: var(--gd-muted);
    font-size: .82rem;
    font-weight: 800;
}

.gandau-flow-strip li.active > span {
    background: var(--gd-mint);
    color: var(--gd-teal);
}

.gandau-flow-strip strong,
.gandau-flow-strip small {
    display: block;
}

.gandau-flow-strip strong {
    font-size: .88rem;
}

.gandau-flow-strip small {
    margin-top: 2px;
    color: var(--gd-muted);
    font-size: .72rem;
}

.gandau-flow-actions {
    margin-top: 18px;
}

.gandau-flow-result-link {
    display: flex;
    min-height: 74px;
    align-items: center;
    gap: 14px;
    padding: 15px 19px;
    border: 1px solid #b9d8da;
    border-radius: 18px;
    background: var(--gd-mint);
    color: var(--gd-ink) !important;
}

.gandau-flow-result-link > i:first-child {
    color: var(--gd-teal);
    font-size: 27px;
}

.gandau-flow-result-link > i:last-child {
    margin-left: auto;
    color: var(--gd-teal);
    font-size: 21px;
}

.gandau-flow-result-link span {
    min-width: 0;
    flex: 1;
}

.gandau-flow-result-link strong,
.gandau-flow-result-link small {
    display: block;
}

.gandau-flow-result-link small {
    margin-top: 2px;
    color: var(--gd-muted);
    font-size: .76rem;
}

/* More / reading settings */
.gandau-settings-grid {
    align-items: start;
}

.gandau-reading-settings {
    min-width: 0;
}

.gandau-setting-label {
    margin: 0 0 10px;
    color: var(--gd-ink);
    font-size: .9rem;
    font-weight: 700;
}

.gandau-font-size-options {
    display: flex;
    gap: 5px;
    margin-bottom: 20px;
    padding: 5px;
    border-radius: 99px;
    background: #edf2f5;
}

.gandau-font-size-options button {
    min-width: 0;
    min-height: 46px;
    flex: 1;
    padding: 8px 12px;
    border: 0;
    border-radius: 99px;
    background: transparent;
    color: var(--gd-muted);
    font-weight: 650;
}

.gandau-font-size-options button:hover {
    color: var(--gd-teal);
}

.gandau-font-size-options button.active {
    background: #fff;
    color: var(--gd-teal);
    font-weight: 800;
    box-shadow: 0 2px 6px rgba(25, 53, 72, .08);
}

.gandau-font-preview {
    padding: 20px;
    border-radius: 16px;
    background: var(--gd-yellow);
}

.gandau-font-preview small,
.gandau-font-preview strong {
    display: block;
}

.gandau-font-preview small {
    color: #735d28;
    font-size: .74rem;
}

.gandau-font-preview strong {
    margin-top: 7px;
    color: var(--gd-ink);
    font-size: 1.18rem;
}

.gandau-font-preview p {
    margin: 7px 0 0;
    color: #735d28;
    font-size: .82rem;
}

.gandau-setting-status {
    min-height: 1.5em;
    margin: 13px 0 0;
    color: var(--gd-teal);
    font-size: .8rem;
    font-weight: 700;
}

.gandau-setting-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 12px 0 0;
    color: var(--gd-muted);
    font-size: .76rem;
}

.gandau-setting-note i {
    margin-top: 2px;
    color: var(--gd-teal);
    font-size: 18px;
}

/* Existing reports */
.gandau-app .marquee-container {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    padding: 16px 18px;
    overflow: hidden;
    border: 0;
    border-radius: 16px;
    background: var(--gd-yellow);
    color: #735d28;
}

.gandau-app .marquee-icon {
    width: 24px;
    height: 24px;
}

.gandau-app .summary-title {
    margin: 22px 0 14px;
    padding: 16px 19px;
    border: 1px solid var(--gd-line);
    border-radius: 17px;
    background: #fff;
    color: var(--gd-ink);
    font-weight: 750;
}

.gandau-app .summary-title > img {
    width: 33px;
    height: 33px;
    margin-right: 11px !important;
}

.gandau-app .custom-circle {
    border: 0 !important;
    background: var(--gd-mint) !important;
    color: var(--gd-teal) !important;
    box-shadow: none !important;
}

.gandau-app .health-row,
.gandau-app .summary-cardpadding,
.gandau-app .cardpadding {
    border-color: var(--gd-line) !important;
}

/* AI page */
.gandau-main > .chat-page {
    max-width: 1080px;
}

.gandau-app .chat-shell {
    height: min(720px, calc(100vh - 154px));
    min-height: 490px;
    overflow: hidden;
    border: 1px solid var(--gd-line);
    border-radius: var(--gd-radius);
    background: #fff;
    box-shadow: var(--gd-shadow);
}

.gandau-app .chat-header {
    min-height: 79px;
    padding: 15px 22px;
    border-bottom: 1px solid var(--gd-line);
    background: #fff;
}

.gandau-app .chat-logo,
.gandau-app .message-avatar {
    background: var(--gd-purple);
    color: #75519f;
}

.gandau-app .chat-messages {
    background: #fbfcfd;
}

.gandau-app .assistant-bubble {
    border-color: var(--gd-line);
    background: #fff;
}

.gandau-app .user-bubble {
    background: var(--gd-mint);
    color: var(--gd-ink);
}

.gandau-app .send-button {
    min-width: 74px;
    border-radius: 99px;
    background: var(--gd-teal);
}

.gandau-app .send-button:hover {
    background: var(--gd-teal-dark);
}

.gandau-app .chat-composer textarea {
    min-height: 49px;
    border-radius: 24px !important;
}

.gandau-app .chat-composer textarea,
.gandau-app .chat-composer textarea:hover,
.gandau-app .chat-composer textarea:focus,
.gandau-app .chat-composer textarea:focus-visible {
    min-height: 36px;
    margin: 0;
    padding: 7px 0;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Login and registration */
.gandau-app:not(.has-app-shell) {
    min-height: 100vh;
    background:
        radial-gradient(circle at 82% 14%, rgba(255, 244, 217, .72), transparent 28%),
        radial-gradient(circle at 12% 88%, rgba(227, 247, 239, .95), transparent 32%),
        var(--gd-bg);
}

.gandau-app:not(.has-app-shell) .gandau-main {
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: 32px 20px;
}

.gandau-app:not(.has-app-shell) .gandau-main > .pc-content {
    max-width: none;
    padding: 0 !important;
}

.gandau-app:not(.has-app-shell) .login-bg,
.gandau-app:not(.has-app-shell) .register-bg {
    display: none;
}

.gandau-app:not(.has-app-shell) .center-form-wrapper {
    position: relative;
    top: auto;
    left: auto;
    width: min(100%, 520px);
    max-height: calc(100vh - 48px);
    margin: 0 auto;
    padding: 30px;
    overflow-y: auto;
    transform: none;
    border: 1px solid var(--gd-line);
    border-radius: 24px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 20px 55px rgba(25, 46, 67, .10);
    font-size: 17px;
}

.gandau-app:not(.has-app-shell) .center-form-wrapper > div {
    max-width: 410px;
    margin: 0 auto;
}

.gandau-app:not(.has-app-shell) .center-form-wrapper img {
    width: 68px;
    height: 68px;
}

.gandau-app:not(.has-app-shell) .account-text {
    margin-top: 10px;
    color: var(--gd-teal);
    font-size: 1.38rem;
    font-weight: 800;
}

.gandau-app:not(.has-app-shell) .center-form-wrapper .custom-btn {
    width: 100%;
}

/* Bottom navigation is mobile-only */
.mobile-bottom-bar {
    display: none;
}

@media (min-width: 1500px) {
    :root {
        --gd-sidebar: 264px;
    }

    .gandau-main .pc-content,
    .gandau-main > .chat-page {
        padding-top: 43px !important;
    }
}

@media (max-width: 1100px) {
    :root {
        --gd-sidebar: 204px;
    }

    .gandau-sidebar {
        padding-right: 12px;
        padding-left: 12px;
    }

    .gandau-brand {
        font-size: 1.05rem;
    }

    .gandau-side-link {
        padding-right: 10px;
        padding-left: 10px;
        font-size: .82rem;
    }

    .gandau-topbar {
        padding-right: 27px;
        padding-left: 27px;
    }

    .gandau-main .pc-content,
    .gandau-main > .chat-page {
        padding: 28px 27px 34px !important;
    }

    .gandau-home {
        grid-template-columns: minmax(0, 1.25fr) minmax(250px, 1fr);
        gap: 18px;
    }
}

@media (max-width: 900px) and (min-width: 641px) {
    :root {
        --gd-sidebar: 84px;
    }

    .gandau-sidebar {
        align-items: center;
        padding: 25px 11px 15px;
    }

    .gandau-brand > span:last-child,
    .gandau-side-label,
    .gandau-side-link span,
    .gandau-user-card,
    .gandau-delegate-alert {
        display: none;
    }

    .gandau-brand {
        padding: 0;
    }

    .gandau-side-nav {
        width: 100%;
        margin-top: 27px;
    }

    .gandau-side-link {
        justify-content: center;
        padding: 13px 0;
    }

    .gandau-home {
        grid-template-columns: minmax(0, 1fr);
    }

    .gandau-home > .gandau-home-stack:last-child {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    :root {
        --gd-topbar: 76px;
    }

    body.gandau-app.has-app-shell {
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
        background: #fff;
    }

    body.gandau-app.is-chat-page.has-app-shell {
        padding-bottom: 0;
        overflow: hidden;
    }

    .gandau-sidebar {
        display: none;
    }

    .gandau-topbar {
        right: 0;
        left: 0;
        height: calc(var(--gd-topbar) + env(safe-area-inset-top));
        padding: env(safe-area-inset-top) 20px 0;
        border-bottom: 0;
        background: #fff;
    }

    .gandau-mobile-brand {
        display: flex;
        flex: 1;
        font-size: 1.05rem;
    }

    .gandau-mobile-brand .gandau-brand-mark {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
        border-radius: 12px;
        font-size: 21px;
    }

    .gandau-page-heading {
        position: absolute;
        top: var(--gd-topbar);
        right: 0;
        left: 0;
        min-height: 58px;
        padding: 7px 20px 10px;
        border-bottom: 1px solid var(--gd-line);
        background: #fff;
    }

    .gandau-page-heading > div > span {
        display: none;
    }

    .gandau-page-heading h1 {
        max-width: calc(100vw - 95px);
        font-size: 1.03rem;
    }

    .gandau-back-button {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        border: 0;
        margin-left: -9px;
    }

    .gandau-topbar-user {
        gap: 7px;
    }

    .gandau-status-badge,
    .gandau-topbar-name {
        display: none;
    }

    .gandau-topbar-user .gandau-avatar {
        width: 35px;
        height: 35px;
        flex-basis: 35px;
    }

    .has-app-shell .gandau-main {
        margin-left: 0;
        padding-top: calc(var(--gd-topbar) + env(safe-area-inset-top));
    }

    .is-chat-page.has-app-shell .gandau-main {
        height: calc(100vh - 76px - env(safe-area-inset-bottom));
        height: calc(100dvh - 76px - env(safe-area-inset-bottom));
        min-height: 0;
    }

    .has-app-shell .gandau-main .pc-content,
    .has-app-shell .gandau-main > .chat-page {
        padding: 20px 20px 26px !important;
    }

    body.gandau-app.has-app-shell:not(.is-focused-page):not(.is-chat-page) .gandau-main .pc-content {
        padding-bottom: calc(120px + env(safe-area-inset-bottom)) !important;
    }

    .is-chat-page.has-app-shell .gandau-main > .chat-page {
        width: 100%;
        height: 100%;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden;
    }

    .gandau-home {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .gandau-home-stack {
        gap: 22px;
    }

    .gandau-panel {
        padding: 20px;
        border-radius: 20px;
        box-shadow: none;
    }

    .gandau-home-hero {
        padding: 24px;
    }

    .gandau-home-hero h2 {
        font-size: 1.35rem;
    }

    .gandau-hero-avatar {
        display: none;
    }

    .gandau-assessment-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 13px;
    }

    .gandau-flow-strip {
        grid-template-columns: minmax(0, 1fr);
    }

    .gandau-flow-strip li {
        padding: 13px 16px;
    }

    .gandau-flow-strip li + li {
        border-top: 1px solid var(--gd-line);
        border-left: 0;
    }

    .gandau-page-intro {
        display: block;
    }

    .gandau-page-intro h2 {
        font-size: 1.42rem;
    }

    .gandau-assessment-card {
        min-height: 110px;
        padding: 18px;
        box-shadow: none;
    }

    .gandau-app .card,
    .gandau-app .custom-card,
    .gandau-app .custom-box,
    .gandau-app .action-card,
    .gandau-app .info-card,
    .gandau-app .health-check-box,
    .gandau-app .content-right {
        box-shadow: none !important;
    }

    .gandau-app .card-header {
        padding: 18px 20px 15px;
    }

    .gandau-app .card-body {
        padding: 20px;
    }

    .gandau-app .custom-div {
        padding: 18px !important;
        border-radius: 17px;
    }

    .gandau-app .custom-div > .form-check,
    .gandau-app .card-body > .form-check {
        padding: 13px 13px 13px 43px;
    }

    .gandau-app .buttom-btn {
        position: sticky;
        bottom: 0;
        z-index: 20;
        margin: 23px -20px -26px;
        padding: 13px 20px calc(13px + env(safe-area-inset-bottom));
        border-top: 1px solid var(--gd-line);
        background: rgba(255, 255, 255, .97);
    }

    .gandau-app .buttom-btn > div {
        width: 100%;
    }

    .mobile-bottom-bar {
        position: fixed;
        inset: auto 0 0;
        z-index: 1040;
        display: flex;
        min-height: 76px;
        align-items: stretch;
        justify-content: space-around;
        padding: 7px 5px calc(7px + env(safe-area-inset-bottom));
        border-top: 1px solid var(--gd-line);
        background: rgba(255, 255, 255, .96);
        backdrop-filter: blur(12px);
    }

    .mobile-bottom-tab {
        display: flex;
        min-width: 0;
        min-height: 55px;
        flex: 1;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1px;
        color: var(--gd-muted) !important;
        font-size: .69rem;
        line-height: 1.25;
        text-align: center;
    }

    .mobile-bottom-icon {
        display: inline-flex;
        min-width: 49px;
        height: 30px;
        align-items: center;
        justify-content: center;
        border-radius: 99px;
        font-size: 22px;
    }

    .mobile-bottom-tab.active {
        color: var(--gd-teal) !important;
        font-weight: 750;
    }

    .mobile-bottom-tab.active .mobile-bottom-icon {
        background: var(--gd-mint);
    }

    .is-focused-page.has-app-shell {
        padding-bottom: 0;
    }

    .is-focused-page .mobile-bottom-bar {
        display: none;
    }

    .gandau-app .chat-shell {
        width: 100%;
        height: 100% !important;
        min-height: 0;
        margin: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .gandau-app .chat-header {
        min-height: 66px;
        padding: 12px 18px;
        background: var(--gd-purple);
    }

    .gandau-app .chat-composer {
        padding-bottom: 10px;
    }

    .gandau-app .table-responsive {
        margin-right: -4px;
        margin-left: -4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

@media print {
    body.gandau-app {
        padding: 0 !important;
        background: #fff;
        font-size: 12pt;
    }

    .gandau-sidebar,
    .gandau-topbar,
    .mobile-bottom-bar,
    .gandau-skip-link,
    .buttom-btn,
    .btn,
    .no-print {
        display: none !important;
    }

    .has-app-shell .gandau-main {
        margin: 0;
        padding: 0;
    }

    .gandau-main .pc-content {
        max-width: none;
        padding: 0 !important;
    }

    .gandau-app .card,
    .gandau-panel {
        break-inside: avoid;
        border: 1px solid #bbb !important;
        box-shadow: none !important;
    }
}

/* 問卷使用一致的點選範圍，保留原生鍵盤與焦點操作。 */
.gandau-app .form-choice-row { cursor: pointer; min-height: 48px; }
.gandau-app .form-choice-row .form-check-label { flex: 1; min-width: 0; }
.gandau-app .form-choice-row:focus-within { outline: 3px solid #218995; outline-offset: 2px; }
.gandau-app .form-choice-row:has(input:disabled) { cursor: not-allowed; opacity: .6; }
.gandau-app .friendly-number { margin-top: 8px; min-width: 0; }
.gandau-app .number-stepper { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 8px; }
.gandau-app .number-stepper input { min-width: 0; text-align: center; font-size: 18px; }
.gandau-app .number-stepper button, .gandau-app .number-presets button { min-height: 44px; border: 1px solid #b5ced1; border-radius: 12px; color: #185966; background: #fff; cursor: pointer; }
.gandau-app .number-stepper button { font-size: 24px; font-weight: 600; }
.gandau-app .number-presets { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.gandau-app .number-presets button { padding: 8px 12px; font-size: 15px; }
.gandau-app .number-presets button[aria-pressed="true"] { color: #fff; background: #176779; border-color: #176779; }
.gandau-app .friendly-number button:focus-visible { outline: 3px solid #218995; outline-offset: 2px; }
.gandau-app .friendly-number button:disabled { opacity: .45; cursor: not-allowed; }
.gandau-app .number-help { display: block; margin-top: 7px; color: #5c7077; }
.gandau-app .number-error { display: block; color: #a83939; font-size: 14px; }
.gandau-app .friendly-number input[aria-invalid="true"] { border-color: #a83939; }
.gandau-app .rating-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin-top: 12px; }
.gandau-app .rating-scale > p { grid-row: 1; margin: 0; font-size: 14px; }
.gandau-app .rating-scale > p:first-child { grid-column: 1 / 4; }
.gandau-app .rating-scale > p:last-child { grid-column: 4 / 6; text-align: right; }
.gandau-app .rating-scale .form-check { grid-row: 2; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; margin: 0; padding: 8px 0; border: 1px solid #b5ced1; border-radius: 10px; }
.gandau-app .rating-scale .form-check-input { float: none; margin: 0; }
.gandau-app .rating-scale .form-check-label { width: 100%; text-align: center; }
.gandau-app .rating-scale .form-check:has(input:checked) { background: var(--gd-mint); border-color: var(--gd-teal); }
.gandau-app .summary-history-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 6px 12px; color: #176779; font-size: 14px; font-weight: 600; text-decoration: none; border-radius: 10px; }
.gandau-app .summary-history-link:hover { background: #e9f7f5; }
.gandau-app .summary-history-link:focus-visible { outline: 3px solid #218995; outline-offset: 2px; }
.gandau-app .pc-exercise:has(> .summary-history-link), .gandau-app .diet-item:has(> .summary-history-link) { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; }
/* 建議回饋：直接點分數，避免圓點、窄欄與橫向捲軸。 */
.gandau-app .feedback-page { max-width: 760px; margin-inline: auto; }
.gandau-app .feedback-page .custom-card { border: 0; background: transparent; box-shadow: none; overflow: visible; }
.gandau-app .feedback-page .card-header { padding: 4px 0 20px; border: 0; background: transparent; }
.gandau-app .feedback-page .card-header h2 { margin: 0 0 8px; font-size: 23px; color: #164654; }
.gandau-app .feedback-page .card-header p { margin: 0; color: #5c7077; font-size: 15px; }
.gandau-app .feedback-page .card-body { padding: 0; }
.gandau-app .feedback-page .custom-div { padding: 20px; margin-bottom: 16px; border-radius: 18px; background: #fff; }
.gandau-app .feedback-page .rating-question { margin: 0; font-size: 17px; font-weight: 650; line-height: 1.65; }
.gandau-app .feedback-page .rating-question > span { font-size: 13px; font-weight: 400; color: #63787c; white-space: nowrap; }
.gandau-app .feedback-page .rating-scale { gap: 6px; }
.gandau-app .feedback-page .rating-scale > p { font-size: 13px; color: #5c7077; white-space: nowrap; }
.gandau-app .feedback-page .rating-scale .form-check { position: relative; padding: 0; min-height: 54px; background: #f8fbfc; border-color: #d2e1e4; }
.gandau-app .feedback-page .rating-scale .form-check-input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.gandau-app .feedback-page .rating-scale .form-check-label { display: flex; align-items: center; justify-content: center; min-height: 54px; gap: 3px; cursor: pointer; }
.gandau-app .feedback-page .rating-score { font-size: 21px; font-weight: 650; }
.gandau-app .feedback-page .rating-unit { font-size: 11px; }
.gandau-app .feedback-page .rating-scale .form-check:has(input:checked) { background: #176779; border-color: #176779; color: #fff; box-shadow: 0 3px 8px rgba(23,103,121,.14); }
.gandau-app .feedback-page textarea { margin-top: 10px; min-height: 120px; font-size: 16px; }
.gandau-app .feedback-page .buttom-btn { position: static; margin: 4px 0 20px; padding: 0; border: 0; background: transparent; }
.gandau-app .feedback-page .buttom-btn > div { width: 100%; }
@media (max-width: 360px) {
 .gandau-app .feedback-page .custom-div { padding: 16px 12px; }
 .gandau-app .feedback-page .rating-scale { gap: 5px; }
 .gandau-app .feedback-page .rating-question { font-size: 16px; }
}

/* 結果項目可整格前往對應問卷，歷史紀錄保留獨立入口。 */
.gandau-app :is(.health-item, .diet-item, .pc-exercise):has(> .summary-questionnaire-link) { position: relative; }
.gandau-app .summary-questionnaire-link { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; color: #176779; font-size: 14px; font-weight: 650; text-decoration: none; border-radius: 10px; }
.gandau-app .summary-questionnaire-link::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: 16px; }
.gandau-app .summary-questionnaire-link:hover::after { background: rgba(23, 103, 121, .04); }
.gandau-app .summary-questionnaire-link:focus-visible::after { outline: 3px solid #218995; outline-offset: 2px; }
.gandau-app .summary-history-link { position: relative; z-index: 3; }
.gandau-topbar-user .gandau-account-link { width: 44px; height: 44px; flex-basis: 44px; text-decoration: none; }
.gandau-account-link:focus-visible { outline: 3px solid #218995; outline-offset: 3px; }

/* 錯誤提示保留文字，移除清單圓點與空白項目。 */
.validation-summary-errors.form-error-summary ul { list-style: none; padding-left: 0; margin: 0; }
.validation-summary-errors.form-error-summary li { list-style: none; }
.validation-summary-errors.form-error-summary li + li { margin-top: 6px; }
.validation-summary-errors.form-error-summary li:empty { display: none; }

/* 手機標題列改回正常排版，內容留足兩列高度（含帳號設定頁）。 */
@media (max-width: 640px) {
    .gandau-topbar { flex-wrap: wrap; row-gap: 0; height: auto; min-height: calc(var(--gd-topbar) + 58px + env(safe-area-inset-top)); }
    .gandau-mobile-brand, .gandau-topbar-user { min-height: var(--gd-topbar); }
    .gandau-page-heading { position: static; order: 3; flex: 0 0 100%; padding: 7px 0 10px; min-height: 58px; }
    .has-app-shell .gandau-main { padding-top: calc(var(--gd-topbar) + 58px + env(safe-area-inset-top)); }
    .member-auth-page.manage-page { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
    .manage-dl { grid-template-columns: minmax(0, 6.5em) minmax(0, 1fr); }
    .manage-dl dd, .manage-dl dd > * { min-width: 0; overflow-wrap: anywhere; }
    .is-overview-page .gandau-page-heading { display: none; }
    .is-overview-page .gandau-topbar { min-height: calc(var(--gd-topbar) + env(safe-area-inset-top)); }
    .is-overview-page.has-app-shell .gandau-main { padding-top: calc(var(--gd-topbar) + env(safe-area-inset-top)); }
}
.gandau-app .portion-slider { margin-top: 10px; }
.gandau-app .portion-slider input[type="range"] { display: block; width: 100%; height: 44px; margin: 0; padding: 0; accent-color: var(--gd-teal); cursor: pointer; }
.gandau-app .portion-slider input.is-unanswered { opacity: .6; }
.gandau-app .portion-scale { display: flex; justify-content: space-between; gap: 12px; color: var(--gd-muted); font-size: .9rem; }
.gandau-app .portion-extend { display: block; width: 100%; min-height: 44px; margin-top: 10px; border: 1px solid var(--gd-teal); border-radius: 12px; color: var(--gd-teal-dark); background: var(--gd-mint); font-weight: 600; }
.gandau-app .portion-extend[hidden] { display: none; }

.questionnaire-progress { padding:12px 16px;margin-bottom:16px;background:#eef8f7;border-radius:12px; }.questionnaire-progress p { margin:4px 0; }.questionnaire-progress button { border:1px solid #b7d5d5;border-radius:8px;padding:8px 12px;background:white;color:#087f89;min-height:44px;margin:4px; }.question-error { color:#a32323;font-weight:600;margin:8px 0; }[aria-invalid=true] { outline:2px solid #a32323;scroll-margin-top:160px; }
body .pc-content:has([data-questionnaire-flow]) .custom-div { padding-top:14px;padding-bottom:14px;margin-bottom:12px; }
body .pc-content:has([data-questionnaire-flow]) .custom-text { margin-bottom:8px; }
.category-tabs { gap:8px!important; }.category-tab { min-height:44px!important;padding:8px!important; }.category-tab img { width:24px!important;height:24px!important; }
.trend-panel[hidden] { display:none!important; }

/* 回饋題組使用頁面自身的欄位容器，避免網格負邊距超出卡片。 */
.gandau-app .feedback-page .feedback-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; width: 100%; min-width: 0; }
.gandau-app .feedback-page .feedback-fields > .custom-div { box-sizing: border-box; width: 100%; min-width: 0; margin: 0; }
.gandau-app .feedback-page textarea { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; resize: vertical; }
.gandau-app .feedback-page .rating-scale .form-check-label { min-width: 0; flex-wrap: wrap; }
.gandau-app .feedback-page .rating-scale .form-check-input:focus-visible + label { outline: 3px solid #218995; outline-offset: 2px; border-radius: 10px; }
@media (max-width: 360px) {
    .gandau-app .feedback-page .feedback-fields > .custom-div { padding: 16px 12px !important; }
}
