:root{--bg-primary:var(--tg-theme-bg-color,#f4f6f9);--bg-card:var(--tg-theme-secondary-bg-color,#fff);--text-primary:var(--tg-theme-text-color,#1e293b);--text-secondary:var(--tg-theme-hint-color,#64748b);--accent-color:var(--tg-theme-button-color,#2563eb);--accent-text:var(--tg-theme-button-text-color,#fff);--border-color:#e2e8f0;--status-valid-bg:#dcfce7;--status-valid-text:#15803d;--status-valid-dot:#22c55e;--status-warning-bg:#fef3c7;--status-warning-text:#b45309;--status-warning-dot:#f59e0b;--status-expired-bg:#fee2e2;--status-expired-text:#b91c1c;--status-expired-dot:#ef4444;--status-notfound-bg:#f1f5f9;--status-notfound-text:#64748b;--status-notfound-dot:#94a3b8}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-user-select:none;user-select:none;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.45}.mobile-app{width:100%;max-width:480px;min-height:100vh;padding-bottom:calc(85px + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex-direction:column;margin:0 auto;display:flex;position:relative;overflow-x:hidden}.app-header{background-color:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:30;box-sizing:border-box;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 14px;display:flex;position:sticky;top:0}.brand-badge{color:var(--accent-color);white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.app-header-title{color:var(--text-secondary);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.back-btn{color:var(--accent-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;align-items:center;gap:6px;padding:6px 0;font-size:15px;font-weight:500;display:flex}.content-area{box-sizing:border-box;flex-direction:column;gap:12px;width:100%;padding:12px 14px;display:flex;overflow-x:hidden}.patient-card{background:var(--bg-card);box-sizing:border-box;border-radius:16px;align-items:center;gap:10px;width:100%;padding:12px;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000d}.avatar-circle{color:#64748b;background-color:#e2e8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:600;display:flex}.patient-info{flex:1;min-width:0;overflow:hidden}.patient-name{color:var(--text-primary);word-break:break-word;overflow-wrap:break-word;font-size:16px;font-weight:700;line-height:1.25}.patient-sub{color:var(--text-secondary);word-break:break-word;overflow-wrap:break-word;margin-top:2px;font-size:12px}.operation-card{background:var(--bg-card);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:12px;width:100%;padding:12px 14px;display:flex;box-shadow:0 1px 3px #0000000d}.field-group{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}.field-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.select-input,.date-input,.text-input{box-sizing:border-box;border:1px solid var(--border-color);width:100%;max-width:100%;color:var(--text-primary);background-color:#f8fafc;border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px}.select-input:focus,.date-input:focus,.text-input:focus{border-color:var(--accent-color);background-color:#fff}.summary-card{background:var(--bg-card);box-sizing:border-box;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 14px;display:flex;box-shadow:0 1px 3px #0000000d}.progress-donut-container{flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative}.donut-svg{width:72px;height:72px;transform:rotate(-90deg)}.donut-center-text{color:var(--text-primary);font-size:16px;font-weight:800;position:absolute}.summary-counters{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.counter-row{justify-content:space-between;align-items:center;gap:4px;font-size:12px;display:flex}.counter-tag{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.valid{background:var(--status-valid-dot)}.dot.warning{background:var(--status-warning-dot)}.dot.expired{background:var(--status-expired-dot)}.counter-val{color:var(--text-primary);flex-shrink:0;font-weight:700}.alert-banner{box-sizing:border-box;background:#fffbeb;border:1px solid #fde68a;border-radius:14px;align-items:flex-start;gap:10px;width:100%;padding:12px 14px;display:flex}.alert-banner.warning{color:#b45309}.alert-title{word-break:break-word;margin-bottom:2px;font-size:13px;font-weight:700}.alert-desc{color:#92400e;word-break:break-word;font-size:12px;line-height:1.35}.section-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-top:6px;margin-bottom:2px;font-size:13px;font-weight:700;display:flex}.items-group{flex-direction:column;gap:10px;width:100%;display:flex}.analysis-card{background:var(--bg-card);border:1px solid var(--border-color);box-sizing:border-box;border-radius:14px;flex-direction:column;gap:8px;width:100%;padding:12px 14px;display:flex;box-shadow:0 1px 2px #0000000a}.analysis-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.analysis-name{color:var(--text-primary);word-break:break-word;overflow-wrap:break-word;flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.3}.status-pill{white-space:nowrap;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex}.status-pill.valid{background-color:var(--status-valid-bg);color:var(--status-valid-text)}.status-pill.warning{background-color:var(--status-warning-bg);color:var(--status-warning-text)}.status-pill.expired{background-color:var(--status-expired-bg);color:var(--status-expired-text)}.status-pill.not_found{background-color:var(--status-notfound-bg);color:var(--status-notfound-text)}.analysis-details-row{color:var(--text-secondary);border-top:1px dashed #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding-top:4px;font-size:12px;display:flex}.validity-info{align-items:center;gap:4px;display:flex}.validity-info.warning{color:#d97706;font-weight:600}.result-badge{color:var(--text-primary);background-color:#f1f5f9;border-radius:6px;padding:2px 6px;font-size:12px;font-weight:500}.card-action-btn{color:var(--accent-color);cursor:pointer;background-color:#eff6ff;border:none;border-radius:8px;flex-shrink:0;align-self:flex-start;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.bottom-dock{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border-color);width:100%;max-width:480px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));z-index:40;box-sizing:border-box;background:#fffffff2;gap:8px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.primary-btn{background-color:var(--accent-color);min-width:0;color:var(--accent-text);cursor:pointer;white-space:nowrap;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px 14px;font-size:14px;font-weight:600;display:flex;box-shadow:0 2px 8px #2563eb40}.primary-btn:active{transform:scale(.98)}.secondary-btn{color:var(--accent-color);cursor:pointer;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-sizing:border-box;background:#00000073;flex-direction:column;justify-content:flex-end;width:100%;max-width:100vw;display:flex;position:fixed;inset:0;overflow-x:hidden}.modal-sheet{background:var(--bg-card);padding:20px 14px calc(24px + env(safe-area-inset-bottom,0px));box-sizing:border-box;border-top-left-radius:24px;border-top-right-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:480px;max-height:85vh;margin:0 auto;animation:.25s ease-out slideUp;display:flex;overflow:hidden auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{background-color:#cbd5e1;border-radius:2px;align-self:center;width:40px;height:4px;margin-bottom:-6px}.sheet-title{color:var(--text-primary);font-size:18px;font-weight:700}.search-box{box-sizing:border-box;background:#f1f5f9;border-radius:12px;align-items:center;gap:8px;width:100%;padding:8px 12px;display:flex}.search-input{background:0 0;border:none;outline:none;flex:1;width:100%;min-width:0;font-size:15px}@media (width<=360px){.content-area{gap:10px;padding:10px}.app-header{gap:6px;padding:10px}.brand-badge{gap:6px;font-size:14px}.app-header-title{font-size:12px}.patient-card{gap:8px;padding:10px}.avatar-circle{width:38px;height:38px;font-size:15px}.patient-name{font-size:15px}.summary-card{gap:8px;padding:10px}.progress-donut-container,.donut-svg{width:64px;height:64px}.donut-center-text{font-size:14px}.counter-row,.counter-tag{font-size:11px}.bottom-dock{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));gap:6px}.primary-btn{padding:10px;font-size:13px}}
