:root { --bg: #f6f8fc; --surface: #fff; --surface-soft: #f0f5ff; --fg: #1a1835; --muted: #706d89; --border: #e5e8f2; --brand: #2b1f99; --ai: #3ad4d8; --success: #1aa981; --warning: #e58a16; --danger: #d74747; --radius-sm: 10px; --radius-md: 16px; --radius-lg: 24px; --shadow-card: 0 8px 24px rgb(43 31 153 / 8%); --tap-size: 44px; } *, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; min-width: 0; min-height: 100%; overflow-x: hidden; } body { color: var(--fg); background: #e9edf5; font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif; } button, a { min-height: var(--tap-size); } button { color: inherit; font: inherit; } :where(button, a, [tabindex]):focus-visible { outline: 3px solid color-mix(in srgb, var(--ai) 72%, #fff); outline-offset: 2px; } .prototype-stage { position: relative; width: 100%; min-height: 100vh; padding: 24px; overflow-x: hidden; } .phone-shell { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: min(100%, 430px); height: min(932px, calc(100vh - 48px)); min-height: 844px; margin-inline: auto; overflow: hidden; background: var(--bg); border-radius: 32px; box-shadow: 0 24px 64px rgb(26 24 53 / 16%); } #appHeader { padding: 22px 20px 14px; background: var(--surface); border-bottom: 1px solid var(--border); } .hospital-context { display: flex; min-width: 0; align-items: center; gap: 10px; } .hospital-logo { display: grid; width: 40px; height: 40px; color: #fff; background: var(--brand); border-radius: 13px; flex: 0 0 auto; place-items: center; } .hospital-context__copy { min-width: 0; margin-right: auto; } .app-kicker { margin: 0 0 2px; color: var(--fg); font-size: 15px; font-weight: 700; } .campus-label { margin: 0; color: var(--muted); font-size: 11px; } .icon-button { position: relative; display: grid; width: var(--tap-size); height: var(--tap-size); padding: 0; background: transparent; border: 0; border-radius: 50%; cursor: pointer; place-items: center; } .icon-button svg { width: 20px; height: 20px; } .unread-badge { position: absolute; top: 3px; right: 1px; display: grid; min-width: 18px; height: 18px; padding: 0 5px; color: #fff; background: var(--danger); border: 2px solid var(--surface); border-radius: 999px; font-size: 10px; font-weight: 800; place-items: center; } .patient-switcher { display: flex; width: 100%; min-height: var(--tap-size); margin-top: 8px; padding: 0; background: transparent; border: 0; align-items: center; gap: 8px; cursor: pointer; } .patient-switcher span { color: var(--muted); font-size: 12px; } .patient-switcher strong { font-size: 14px; } .patient-switcher svg { width: 16px; height: 16px; } #appView { min-width: 0; overflow-x: hidden; overflow-y: auto; padding: 16px 18px 28px; overscroll-behavior: contain; scrollbar-width: thin; } .ai-welcome { position: relative; display: grid; min-width: 0; padding: 20px; overflow: hidden; color: #fff; background: radial-gradient(circle at 88% 15%, rgb(58 212 216 / 32%), transparent 32%), linear-gradient(135deg, #211477, var(--brand)); border-radius: var(--radius-lg); box-shadow: 0 12px 28px rgb(43 31 153 / 18%); grid-template-columns: minmax(0, 1fr) 58px; gap: 12px; } .ai-welcome .section-eyebrow { color: #b8fbfb; } .ai-welcome h1 { margin: 4px 0 6px; font-size: 22px; line-height: 1.35; } .ai-welcome p:not(.section-eyebrow) { margin: 0; color: rgb(255 255 255 / 78%); font-size: 13px; line-height: 1.55; } .doctor-avatar { width: 58px; height: 58px; object-fit: cover; object-position: top; background: rgb(255 255 255 / 16%); border: 2px solid rgb(255 255 255 / 34%); border-radius: 18px; } .assistant-input { display: flex; min-width: 0; min-height: 48px; padding: 0 12px; color: var(--fg); background: #fff; border: 0; border-radius: 14px; grid-column: 1 / -1; align-items: center; gap: 8px; cursor: pointer; } .assistant-input span { min-width: 0; font-size: 12px; text-align: left; line-height: 1.35; } .assistant-input svg { width: 18px; height: 18px; color: var(--brand); flex: 0 0 auto; } .assistant-input svg:last-child { margin-left: auto; } .home-section { margin-top: 22px; } .section-heading { display: flex; margin-bottom: 10px; align-items: end; justify-content: space-between; } .section-eyebrow { margin: 0 0 2px; color: var(--brand); font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .section-heading h2 { margin: 0; font-size: 18px; } .task-list { display: grid; gap: 12px; } .empty-card, .journey-empty, .care-empty { display: flex; width: 100%; padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); align-items: flex-start; gap: 12px; } .empty-card > svg, .journey-empty > svg, .care-empty > svg { width: 22px; height: 22px; color: var(--brand); flex: 0 0 auto; } .empty-card strong, .journey-empty strong, .care-empty strong { font-size: 14px; } .empty-card p, .journey-empty p, .care-empty p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; } .task-card { padding: 17px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); } .task-card:first-child:not(.task-card--completed) { border-color: rgb(43 31 153 / 24%); } .task-card__status { display: flex; margin-bottom: 8px; color: var(--warning); font-size: 11px; font-weight: 700; align-items: center; gap: 5px; } .task-card__status svg { width: 15px; height: 15px; } .task-card--completed { opacity: 0.72; } .task-card--completed .task-card__status { color: var(--success); } .task-card h3 { margin: 0 0 10px; font-size: 16px; } .task-card p { margin: 6px 0; color: var(--muted); font-size: 12px; line-height: 1.55; } .task-card p strong { color: var(--fg); } .task-card__recommendation { display: flex; margin-top: 12px; padding: 10px 12px; background: var(--surface-soft); border-radius: var(--radius-sm); align-items: center; justify-content: space-between; gap: 10px; } .task-card__recommendation span { color: var(--muted); font-size: 11px; } .task-card__recommendation strong { font-size: 12px; text-align: right; } .task-card__actions { display: flex; margin-top: 12px; flex-wrap: wrap; gap: 8px; } .button { min-width: 0; min-height: var(--tap-size); max-width: 100%; padding: 0 14px; border: 1px solid var(--border); border-radius: 12px; font-size: 13px; font-weight: 700; overflow-wrap: anywhere; white-space: normal; flex: 1 1 140px; cursor: pointer; } .button--primary { color: #fff; background: var(--brand); border-color: var(--brand); } .button--secondary { color: var(--fg); background: var(--surface); } .service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; } .service-entry { display: flex; min-width: 0; min-height: 78px; padding: 8px 2px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; align-items: center; flex-direction: column; gap: 6px; justify-content: center; cursor: pointer; } .service-entry span { display: grid; width: 32px; height: 32px; color: var(--brand); background: var(--surface-soft); border-radius: 10px; place-items: center; } .service-entry svg { width: 17px; height: 17px; } .service-entry strong { max-width: 100%; overflow: hidden; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; } .care-section { padding-bottom: 6px; } #bottomNav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); min-width: 0; padding: 8px 8px 14px; background: var(--surface); border-top: 1px solid var(--border); } .nav-item { display: flex; min-width: 0; min-height: var(--tap-size); padding: 6px 2px; color: var(--muted); background: transparent; border: 0; border-radius: var(--radius-sm); align-items: center; flex-direction: column; gap: 3px; justify-content: center; cursor: pointer; } .nav-item span { max-width: 100%; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .nav-item[aria-current="page"] { color: var(--brand); background: var(--surface-soft); font-weight: 700; } .nav-item svg { width: 21px; height: 21px; flex: 0 0 auto; stroke-width: 2; } .assistant-view { display: grid; min-width: 0; min-height: 100%; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 14px; } .assistant-view__header { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; } .assistant-view__header h1, .assistant-scenarios h2, .assistant-result h2 { margin: 0; } .assistant-view__header .text-button { max-width: 112px; white-space: normal; } .assistant-scenarios { display: flex; min-width: 0; flex-wrap: wrap; gap: 8px; } .assistant-scenarios h2 { width: 100%; font-size: 15px; } .assistant-scenarios button { padding: 8px 12px; color: var(--brand); background: var(--surface-soft); border: 1px solid #dce3fb; border-radius: 999px; cursor: pointer; } .assistant-thread { min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 2px 2px 12px; overscroll-behavior: contain; } .assistant-message { width: fit-content; max-width: 88%; margin: 0 0 10px; padding: 10px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; } .assistant-message--user { margin-left: auto; color: #fff; background: var(--brand); border-color: var(--brand); } .assistant-message strong { font-size: 11px; } .assistant-message p, .assistant-answer, .assistant-recovery p, .assistant-lock-success p { margin: 4px 0 0; font-size: 13px; line-height: 1.65; } .assistant-result, .assistant-recovery, .assistant-lock-success { margin-top: 10px; padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); } .assistant-recovery { border-color: #f0c98f; background: #fff8eb; } .assistant-lock-success { border-color: #a9e1d1; background: #effbf7; } .slot-presentation { display: grid; margin-top: 12px; gap: 8px; } .slot-candidate { display: grid; width: 100%; min-width: 0; padding: 12px; text-align: left; background: var(--surface-soft); border: 1px solid #dce3fb; border-radius: 12px; gap: 4px; cursor: pointer; } .slot-candidate span { color: var(--muted); font-size: 12px; } .assistant-composer { position: sticky; bottom: 0; display: grid; padding-top: 10px; background: var(--bg); grid-template-columns: minmax(0, 1fr) var(--tap-size); gap: 8px; } .assistant-composer input { min-width: 0; min-height: var(--tap-size); padding: 0 12px; font: inherit; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; } .assistant-composer button { display: grid; width: var(--tap-size); min-height: var(--tap-size); padding: 0; color: #fff; background: var(--brand); border: 0; border-radius: 12px; cursor: pointer; place-items: center; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .report-view { position: relative; display: grid; min-width: 0; padding-bottom: 10px; gap: 14px; } .text-button { display: inline-flex; width: fit-content; min-height: var(--tap-size); padding: 0 4px; color: var(--brand); background: transparent; border: 0; align-items: center; gap: 6px; cursor: pointer; font-size: 13px; font-weight: 700; } .text-button svg { width: 18px; height: 18px; } .report-hero, .report-card, .result-card { padding: 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); } .report-hero h1, .result-summary h1 { margin: 4px 0 6px; font-size: 23px; } .report-hero > p:not(.section-eyebrow), .result-summary > p:not(.section-eyebrow) { margin: 0; color: var(--muted); font-size: 12px; } .report-audit { display: inline-flex; margin-top: 14px; padding: 6px 9px; color: var(--success); background: rgb(26 169 129 / 9%); border-radius: 999px; align-items: center; gap: 5px; font-size: 11px; font-weight: 800; } .report-audit svg { width: 15px; height: 15px; } .report-notice, .safety-callout { display: flex; padding: 13px; color: #684d14; background: #fff8e8; border: 1px solid #f4dfae; border-radius: 13px; align-items: flex-start; gap: 9px; } .report-notice svg { width: 19px; height: 19px; flex: 0 0 auto; } .report-notice p, .safety-callout p { margin: 0; font-size: 12px; line-height: 1.6; } .indicator-list { display: grid; margin: 0 0 14px; padding: 0; gap: 8px; list-style: none; } .indicator-list li { display: grid; min-width: 0; padding: 11px 0; border-bottom: 1px solid var(--border); grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; } .indicator-list span, .indicator-list strong { font-size: 13px; } .indicator-list strong { color: var(--danger); } .indicator-list small { color: var(--muted); font-size: 10px; grid-column: 1 / -1; } .report-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; } .report-links button { display: flex; min-width: 0; min-height: var(--tap-size); padding: 10px; color: var(--fg); background: var(--surface); border: 1px solid var(--border); border-radius: 12px; align-items: center; gap: 7px; justify-content: center; cursor: pointer; font-size: 12px; } .report-links svg { width: 17px; height: 17px; color: var(--brand); } .report-primary { display: flex; width: 100%; align-items: center; gap: 8px; justify-content: center; } .report-primary svg { width: 18px; height: 18px; } .consent-backdrop { position: absolute; z-index: 20; inset: 0; display: grid; padding: 20px; background: rgb(15 13 40 / 58%); place-items: end center; } .consent-sheet { width: min(100%, 430px); max-height: min(760px, calc(100vh - 40px)); padding: 22px; overflow-y: auto; background: var(--surface); border-radius: 24px; box-shadow: 0 24px 70px rgb(15 13 40 / 30%); overscroll-behavior: contain; } .consent-sheet:focus-visible { outline: 3px solid var(--brand); outline-offset: -3px; } .consent-sheet__icon { display: grid; width: 44px; height: 44px; margin-bottom: 12px; color: #fff; background: var(--brand); border-radius: 14px; place-items: center; } .consent-sheet h2 { margin: 4px 0 16px; font-size: 21px; line-height: 1.35; } .consent-details { display: grid; margin: 0; gap: 8px; } .consent-details div { display: grid; padding: 10px 12px; background: var(--surface-soft); border-radius: 11px; grid-template-columns: 52px minmax(0, 1fr); gap: 8px; } .consent-details dt { color: var(--muted); font-size: 11px; } .consent-details dd { margin: 0; font-size: 12px; font-weight: 700; } .consent-note { margin-top: 13px; color: var(--muted); font-size: 11px; line-height: 1.6; } .consent-note p { margin: 6px 0; } .consent-note strong { color: var(--fg); } .consent-actions { display: grid; margin-top: 16px; gap: 8px; } .command-sheet { max-height: min(720px, calc(100vh - 40px)); } .command-status { display: flex; width: fit-content; min-height: 44px; margin-bottom: 8px; padding: 8px 12px; color: var(--brand); background: var(--surface-soft); border-radius: 999px; align-items: center; gap: 7px; } .command-status svg { width: 18px; height: 18px; } .command-sheet--success .command-status { color: var(--success); background: #edfaf6; } .command-sheet--danger .command-status { color: var(--danger); background: #fff0f0; } .command-sheet--warning .command-status { color: #8a5913; background: #fff8e8; } .command-sheet h2 { margin: 4px 0 14px; font-size: 22px; } .command-details { display: grid; margin: 0; padding: 0; gap: 0; } .command-details div { display: grid; min-width: 0; padding: 11px 0; border-bottom: 1px solid var(--border); grid-template-columns: 88px minmax(0, 1fr); gap: 12px; } .command-details dt { color: var(--muted); font-size: 12px; } .command-details dd { min-width: 0; margin: 0; font-size: 13px; font-weight: 700; overflow-wrap: anywhere; } .command-guidance { margin: 14px 0 0; padding: 12px; color: var(--muted); background: var(--surface-soft); border-radius: 12px; font-size: 12px; line-height: 1.6; } .report-loading { min-height: 430px; text-align: center; align-content: center; justify-items: center; } .report-loading .report-view__back { position: absolute; align-self: start; justify-self: start; } .loading-orbit { display: grid; width: 72px; height: 72px; color: var(--brand); background: var(--surface-soft); border: 2px solid rgb(43 31 153 / 18%); border-radius: 50%; place-items: center; } .loading-orbit svg { width: 30px; height: 30px; } .report-loading h1 { margin: 0; font-size: 22px; } .report-loading > p:not(.section-eyebrow) { max-width: 330px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; } .loading-progress { width: min(100%, 280px); height: 7px; overflow: hidden; background: var(--border); border-radius: 999px; } .loading-progress span { display: block; width: 58%; height: 100%; background: linear-gradient(90deg, var(--brand), var(--ai)); border-radius: inherit; } .loading-step { display: flex; color: var(--muted); align-items: center; gap: 7px; font-size: 11px; } .loading-step svg { width: 16px; height: 16px; } .result-summary { padding: 20px; color: #fff; background: linear-gradient(135deg, #211477, var(--brand)); border-radius: var(--radius-lg); } .result-summary .section-eyebrow { color: #b8fbfb; } .result-summary h2 { margin: 8px 0 0; color: #b8fbfb; font-size: 13px; } .result-summary > p:not(.section-eyebrow) { color: rgb(255 255 255 / 76%); } .safety-callout { display: block; color: #255a4a; background: #edfaf6; border-color: #c8eadf; } .safety-callout strong { display: flex; margin-bottom: 5px; align-items: center; gap: 6px; font-size: 12px; } .safety-callout svg { width: 17px; height: 17px; } .result-card h2 { margin: 0 0 12px; font-size: 16px; } .result-card ul { display: grid; margin: 0; padding-left: 20px; gap: 8px; color: var(--muted); font-size: 12px; } .explanation-item + .explanation-item { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); } .explanation-item h3 { margin: 0 0 6px; font-size: 13px; } .explanation-item p { margin: 4px 0; color: var(--muted); font-size: 12px; line-height: 1.55; } .explanation-item strong { color: var(--fg); } .next-actions { display: grid; gap: 8px; } .result-evidence { background: var(--surface-soft); box-shadow: none; } .result-evidence > p, .report-feedback > p, .result-factors-note { margin: 12px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; } .result-service-notice, .report-feedback-confirmation { margin: 0 0 12px; padding: 11px 12px; color: #255a4a; background: #edfaf6; border-radius: 11px; font-size: 12px; line-height: 1.6; } .result-action-grid, .feedback-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .result-action-grid .button, .feedback-options .button { min-width: 0; min-height: var(--tap-size); padding: 10px 8px; white-space: normal; } .result-action-grid .result-revoke { color: var(--danger); border-color: #f0c4c4; } .report-feedback-confirmation { margin: 0; text-align: center; } .revoke-button { margin: 0 auto; color: var(--danger); } #scenarioPanel:empty, #overlayRoot:empty { display: none; } .queue-view { display: grid; gap: 16px; } .queue-hero { padding: 22px; color: #fff; background: linear-gradient(135deg, var(--brand), #5144c9); border-radius: var(--radius-lg); } .queue-hero h1, .queue-hero p { margin: 0; } .queue-hero h1 { margin-block: 6px; font-size: 26px; } .queue-delay { display: flex; min-height: var(--tap-size); padding: 12px 14px; color: #7b4a00; background: #fff4dd; border: 1px solid #f4d59d; border-radius: var(--radius-md); align-items: center; gap: 10px; } .queue-delay svg { width: 20px; flex: 0 0 auto; } .queue-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .queue-metrics article, .queue-detail { padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); } .queue-metrics span, .queue-detail span { color: var(--muted); font-size: 12px; } .queue-metrics strong { display: block; margin-top: 6px; font-size: 15px; } .queue-detail { display: grid; gap: 12px; } .queue-detail p { display: grid; margin: 0; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; } .queue-detail svg { width: 18px; color: var(--brand); } .queue-detail strong { font-size: 13px; text-align: right; } .queue-route { width: 100%; } .route-view { display: grid; gap: 16px; } .route-map { position: relative; display: grid; min-height: 230px; overflow: hidden; color: var(--brand); background: linear-gradient(90deg, transparent 49%, rgb(43 31 153 / 8%) 50%, transparent 51%), linear-gradient(transparent 49%, rgb(43 31 153 / 8%) 50%, transparent 51%), var(--surface-soft); background-size: 52px 52px; border: 1px solid var(--border); border-radius: var(--radius-lg); place-items: center; } .route-map > svg { z-index: 2; width: 42px; height: 42px; padding: 9px; background: #fff; border-radius: 14px; box-shadow: var(--shadow-card); } .route-map span { position: absolute; width: 12px; height: 12px; background: var(--ai); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 3px 10px rgb(43 31 153 / 20%); } .route-map span:nth-of-type(1) { top: 72%; left: 18%; } .route-map span:nth-of-type(2) { top: 54%; left: 40%; } .route-map span:nth-of-type(3) { top: 30%; right: 22%; } .journey-card { padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); } .journey-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .journey-card__heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; } .journey-steps { display: grid; margin: 16px 0 0; padding: 0; list-style: none; grid-template-columns: repeat(3, minmax(0, 1fr)); } .journey-steps li { position: relative; display: grid; color: var(--muted); font-size: 11px; gap: 4px; } .journey-steps li::before { width: 10px; height: 10px; margin-bottom: 4px; background: var(--border); border-radius: 50%; content: ""; } .journey-steps li:not(:last-child)::after { position: absolute; top: 4px; right: 8px; left: 14px; height: 2px; background: var(--border); content: ""; } .journey-steps li.is-current { color: var(--brand); font-weight: 700; } .journey-steps li.is-current::before { background: var(--ai); box-shadow: 0 0 0 4px rgb(58 212 216 / 18%); } .module-page { display: grid; gap: 18px; } .module-header h1, .module-header p { margin: 0; } .module-header h1 { margin-block: 4px 6px; font-size: 24px; } .module-header > p:last-child { color: var(--muted); font-size: 13px; line-height: 1.6; } .care-groups, .module-list { display: grid; gap: 12px; } .care-group { display: grid; gap: 8px; } .care-group .section-heading { margin: 0; } .care-group .section-heading span { display: grid; min-width: 24px; height: 24px; color: var(--brand); background: var(--surface-soft); border-radius: 999px; font-size: 11px; place-items: center; } .compact-row { display: grid; width: 100%; min-width: 0; min-height: var(--tap-size); padding: 13px 14px; color: var(--fg); text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-card); grid-template-columns: 36px minmax(0, 1fr) 18px; align-items: center; gap: 10px; } .compact-row--button { cursor: pointer; } .compact-row__icon { display: grid; width: 36px; height: 36px; color: var(--brand); background: var(--surface-soft); border-radius: 11px; place-items: center; } .compact-row svg { width: 18px; } .compact-row strong, .compact-row p { margin: 0; } .compact-row p { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; } .filter-tabs { display: flex; padding: 4px; background: #ebeef6; border-radius: 14px; gap: 4px; } .filter-tabs button { min-width: 0; min-height: var(--tap-size); color: var(--muted); background: transparent; border: 0; border-radius: 11px; flex: 1; } .filter-tabs button[aria-pressed="true"] { color: var(--brand); background: var(--surface); box-shadow: var(--shadow-card); font-weight: 700; } .message-categories { display: flex; overflow-x: auto; padding-bottom: 2px; gap: 8px; } .message-categories span { min-width: max-content; padding: 7px 12px; color: var(--muted); background: var(--surface); border: 1px solid var(--border); border-radius: 999px; font-size: 12px; } .report-unavailable { min-height: 100%; padding: 32px 18px; text-align: center; place-content: center; justify-items: center; } .report-unavailable__icon { display: grid; width: 64px; height: 64px; color: var(--brand); background: var(--surface-soft); border-radius: 20px; place-items: center; } .report-unavailable__icon svg { width: 28px; height: 28px; } .report-unavailable h1 { max-width: 310px; margin: 18px 0 8px; font-size: 22px; } .report-unavailable > p { max-width: 310px; margin: 0 0 20px; color: var(--muted); font-size: 13px; line-height: 1.65; } .report-unavailable .result-service-notice { color: #255a4a; } .report-unavailable__actions { display: grid; width: min(100%, 310px); gap: 10px; } .system-state { display: grid; min-height: 100%; padding: 32px 18px; text-align: center; place-content: center; justify-items: center; } .system-state > span { display: grid; width: 64px; height: 64px; color: var(--brand); background: var(--surface-soft); border-radius: 20px; place-items: center; } .system-state > span svg { width: 28px; height: 28px; } .system-state h1 { margin: 18px 0 8px; font-size: 20px; } .system-state p { max-width: 290px; margin: 0 0 20px; color: var(--muted); font-size: 13px; line-height: 1.65; } #scenarioPanel { position: fixed; z-index: 30; top: 50%; left: calc(50% + 239px); width: 320px; max-height: min(844px, calc(100vh - 48px)); overflow-y: auto; transform: translateY(-50%); } #scenarioPanel[hidden] { display: none; } .scenario-controller { padding: 18px; background: #17152b; border: 1px solid rgb(255 255 255 / 10%); border-radius: 22px; box-shadow: 0 24px 64px rgb(13 11 32 / 24%); color: #fff; } .scenario-controller__header, .scenario-actions, .viewport-switcher { display: flex; align-items: center; gap: 8px; } .scenario-controller__header { justify-content: space-between; } .scenario-controller__header p { margin: 0 0 3px; color: #aaa5c8; font-size: 11px; } .scenario-controller button { min-height: var(--tap-size); color: inherit; background: rgb(255 255 255 / 7%); border: 1px solid rgb(255 255 255 / 10%); border-radius: 10px; cursor: pointer; } .scenario-controller__header button { display: grid; width: var(--tap-size); padding: 0; place-items: center; } .scenario-actions { margin-top: 16px; } .scenario-actions button { display: flex; min-width: 0; padding: 0 9px; align-items: center; justify-content: center; flex: 1; gap: 5px; font-size: 11px; } .scenario-actions svg { width: 15px; } .scenario-groups { margin-top: 14px; } .scenario-group + .scenario-group { margin-top: 14px; } .scenario-group h2 { margin: 0 0 7px; color: #aaa5c8; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; } .scenario-list { display: grid; gap: 5px; } .scenario-list button { display: flex; padding: 0 11px; text-align: left; align-items: center; gap: 9px; } .scenario-list button span { color: #7f79a4; font-size: 10px; } .scenario-list button[aria-pressed="true"] { color: #15132a; background: var(--ai); border-color: var(--ai); font-weight: 700; } .viewport-switcher { margin-top: 14px; } .viewport-switcher button { padding-inline: 10px; flex: 1; font-size: 11px; } .projection-summary { display: grid; margin: 14px 0 0; padding: 12px; background: rgb(0 0 0 / 18%); border-radius: 12px; gap: 8px; } .projection-summary div { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; } .projection-summary dt, .projection-summary dd { margin: 0; overflow-wrap: anywhere; font-size: 10px; } .projection-summary dt { color: #aaa5c8; } .report-filter-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .report-filter-group--status { margin-top: 10px; } .report-filter-group button { min-width: 0; min-height: var(--tap-size); padding: 8px; color: var(--muted); background: var(--surface); border: 1px solid var(--border); border-radius: 12px; font: inherit; } .report-filter-group button[aria-pressed="true"] { color: var(--brand); background: var(--surface-soft); border-color: var(--brand); font-weight: 700; } .report-center__list { display: grid; margin-top: 14px; gap: 12px; } .report-center__patient { margin: 0 0 12px; color: var(--muted); font-size: 13px; } .report-list-card { display: grid; width: 100%; min-width: 0; min-height: var(--tap-size); padding: 16px; color: inherit; text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; gap: 7px; overflow-wrap: anywhere; } .report-list-card__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .report-list-card__top b, .report-list-card__top em, .report-list-card__status { color: var(--brand); font-size: 12px; font-style: normal; } .report-list-card > span, .report-list-card time { color: var(--muted); font-size: 13px; } .report-empty { display: grid; padding: 36px 18px; text-align: center; background: var(--surface); border-radius: 18px; place-items: center; gap: 8px; } .report-empty p { margin: 0; color: var(--muted); } .report-metric { min-width: 0; overflow-wrap: anywhere; } .report-metric em { color: var(--danger); font-size: 12px; font-style: normal; font-weight: 700; } .scenario-shortcuts { margin: 12px 0 0; color: #8f89ae; font-size: 10px; text-align: center; } @media (min-width: 478px) { .phone-shell[data-viewport="390"] { width: 390px; height: 844px; } .phone-shell[data-viewport="430"] { width: 430px; height: 932px; } } @media (max-width: 1120px) { #scenarioPanel { top: auto; left: auto; right: 12px; bottom: 12px; max-height: calc(100vh - 24px); transform: none; } } @media (max-width: 477px) { .prototype-stage { padding: 0; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }