*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--app-height: 100vh;--color-primary: #2563eb;--color-primary-light: #3b82f6;--color-primary-lighter: #60a5fa;--color-primary-bg: #eff6ff;--color-primary-dark: #1d4ed8;--color-white: #ffffff;--color-bg: #f1f5f9;--color-card: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-light: #94a3b8;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #6366f1;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05), 0 2px 4px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .06), 0 4px 10px rgba(0, 0, 0, .03);--touch-min: 48px;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px}@supports (height: 100dvh){:root{--app-height: 100dvh}}.route-loading,.auth-unavailable{min-height:var(--app-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;color:var(--color-text-secondary)}.auth-unavailable h1{font-size:var(--text-2xl);color:var(--color-text)}.auth-unavailable button{background:var(--color-primary);color:#fff}.auth-unavailable button:last-child{background:#fff;color:var(--color-primary)}.chat-transcript{display:flex;flex:1;min-height:0;position:relative}.chat-messages{overscroll-behavior:contain;overflow-anchor:none}.chat-jump-latest{position:absolute;bottom:16px;left:50%;transform:translate(-50%);white-space:nowrap;background:#fff;border:1px solid var(--color-primary-lighter);color:var(--color-primary);box-shadow:var(--shadow-md);z-index:2}.chat-jump-latest:active{transform:translate(-50%)}.chat-action-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;background:#fef2f2;color:#b91c1c;flex-shrink:0}button:focus-visible,a:focus-visible{outline:3px solid var(--color-primary-lighter);outline-offset:3px}@media (max-width: 600px){.chat-input{padding:10px 12px calc(12px + env(safe-area-inset-bottom))!important}.chat-input>div:first-child{gap:8px!important}.chat-input button{padding-left:12px;padding-right:12px}.chat-messages{padding:16px 12px!important}.app-header{padding-left:12px!important;padding-right:12px!important}.app-header h1{font-size:var(--text-lg)}}@media (max-height: 540px) and (orientation: landscape){.app-header{padding-top:calc(8px + env(safe-area-inset-top))!important;padding-bottom:8px!important;min-height:48px!important}.chat-input{padding-top:8px!important;padding-bottom:calc(8px + env(safe-area-inset-bottom))!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}html{font-size:var(--text-base);-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;color:var(--color-text);background-color:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-primary);text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit;min-height:var(--touch-min);min-width:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:var(--radius-md);transition:all .2s ease}button:active{transform:scale(.97)}input,textarea{font:inherit;color:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease;min-height:var(--touch-min);font-size:var(--text-lg)}input:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.loading-dots{display:inline-flex;gap:4px;align-items:center}.loading-dots span{width:8px;height:8px;border-radius:50%;background-color:var(--color-text-light);animation:pulse 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--color-text-secondary);text-align:center;min-height:200px}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.6}.empty-state-text{font-size:var(--text-lg);line-height:1.6}.triage-page{display:flex;flex-direction:column;height:100vh;height:100dvh;background:linear-gradient(180deg,#f8fafc,#eef3f9);overflow:hidden;color:var(--color-text)}.triage-topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;padding-top:calc(10px + env(safe-area-inset-top));background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);flex-shrink:0}.triage-topbar-title{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}.triage-topbar-title h1{font-size:17px;font-weight:700;color:#0f172a;letter-spacing:.5px}.triage-topbar-title span{font-size:12px;color:var(--color-text-light)}.triage-back-btn{min-height:44px;min-width:44px;padding:0 14px;gap:6px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:15px;font-weight:500}.triage-back-btn:hover{background:var(--color-primary-bg);border-color:#bfdbfe;color:var(--color-primary)}.triage-logout-btn{min-height:44px;padding:0 16px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:14px}.triage-logout-btn:hover{background:#fef2f2;border-color:#fecaca;color:var(--color-danger)}.triage-body{flex:1;overflow-y:auto;display:flex;overscroll-behavior:contain}.triage-container{width:100%;max-width:820px;margin:0 auto;display:flex;flex-direction:column;padding:0 20px}.triage-hero{display:flex;align-items:center;justify-content:center;gap:clamp(24px,5vw,48px);padding:clamp(28px,7vh,64px) 8px 20px}.triage-hero-img{width:clamp(112px,20vw,160px);height:clamp(112px,20vw,160px);object-fit:cover;border-radius:var(--radius-xl);flex-shrink:0;background:#fdf6ec;border:1px solid #f0e4d0;box-shadow:0 10px 24px #b4783c1f;animation:fadeInUp .5s ease both}.triage-hero-text{animation:fadeInUp .5s .1s ease both}.triage-hero-text h2{font-size:clamp(24px,4vw,34px);font-weight:700;color:#0f172a;line-height:1.25}.triage-hero-text>p{margin-top:10px;font-size:16px;color:var(--color-text-secondary)}.triage-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.triage-chip{min-height:44px;padding:0 18px;border-radius:var(--radius-full);background:#fff;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:15px;box-shadow:var(--shadow-sm)}.triage-chip:hover{border-color:var(--color-primary-lighter);color:var(--color-primary);background:var(--color-primary-bg)}.triage-chip:active{transform:scale(.96)}.triage-hero-greeting{display:flex;gap:10px;align-items:flex-start;margin:4px 0 28px;animation:fadeInUp .5s .2s ease both}.triage-messages{flex:1;padding:20px 0 28px;display:flex;flex-direction:column}.triage-round-hint{align-self:center;margin-bottom:16px;font-size:12px;color:var(--color-text-light);background:#fff;border:1px solid var(--color-border);padding:4px 14px;border-radius:var(--radius-full)}.triage-row{display:flex;gap:10px;margin-bottom:14px;align-items:flex-end;animation:fadeInUp .28s ease both}.triage-row-patient{justify-content:flex-end}.triage-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#fdf6ec;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--color-border)}.triage-col{display:flex;flex-direction:column;gap:6px;max-width:78%;align-items:flex-start}.triage-col-patient{align-items:flex-end;margin-left:auto}.triage-bubble{padding:12px 16px;border-radius:4px 16px 16px;font-size:16px;line-height:1.65;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.triage-bubble-nurse{background:#fff;border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text)}.triage-bubble-patient{background:var(--color-primary);color:#fff;border-radius:16px 4px 16px 16px;box-shadow:0 4px 12px #2563eb40}.triage-bubble-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.triage-typing{display:flex;align-items:center;gap:10px;color:var(--color-text-light);font-size:14px}.triage-result{align-self:center;width:100%;max-width:420px;margin-top:12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:28px 24px;text-align:center;animation:fadeInUp .35s ease both}.triage-result-badge{display:inline-flex;align-items:center;gap:6px;background:var(--color-success-bg);color:#047857;font-size:13px;font-weight:600;padding:6px 14px;border-radius:var(--radius-full)}.triage-result-dept{font-size:26px;font-weight:800;color:var(--color-primary-dark);margin:14px 0 6px}.triage-result-note{font-size:13px;color:var(--color-text-light);margin-bottom:18px}.triage-result-btn{width:100%;max-width:280px;min-height:52px;border-radius:var(--radius-lg);background:var(--color-primary);color:#fff;font-size:17px;font-weight:600;box-shadow:0 6px 16px #2563eb47}.triage-result-btn:hover{background:var(--color-primary-dark)}.triage-result-btn:active{transform:scale(.97)}@media (max-width: 640px){.triage-hero{flex-direction:column;gap:16px;text-align:center;padding-top:24px}.triage-chips{justify-content:center}.triage-col{max-width:86%}.triage-topbar{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top))}.triage-container{padding:0 14px}}@media (max-height: 620px) and (orientation: landscape){.triage-hero{padding:12px 8px 8px;gap:24px}.triage-hero-img{width:96px}.triage-chips{margin-top:12px}.triage-hero-greeting{margin-bottom:12px}}@media (min-width: 900px){.triage-col{max-width:70%}.triage-messages{padding-top:28px}}
