.app-icon[data-v-bbea599f]{display:inline-block;vertical-align:middle;flex-shrink:0}.login-wrapper[data-v-4091e473]{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px}.login-content[data-v-4091e473]{text-align:center;width:100%;max-width:320px}.login-logo[data-v-4091e473]{font-size:56px;margin-bottom:16px}.login-title[data-v-4091e473]{font-size:26px;font-weight:700;color:var(--color-text);margin-bottom:6px}.login-subtitle[data-v-4091e473]{font-size:15px;color:var(--color-text-secondary);margin-bottom:8px}.login-error[data-v-4091e473]{color:var(--color-danger);font-size:14px;font-weight:500;margin-top:12px}.login-footer[data-v-4091e473]{margin-top:40px;text-align:center}.login-viewer-link[data-v-4091e473]{font-size:14px;color:var(--color-text-muted)}.login-viewer-link a[data-v-4091e473]{color:var(--color-primary);text-decoration:none;font-weight:500}.trend-chart[data-v-e64aa52b]{margin-top:28px}.trend-title[data-v-e64aa52b]{font-size:15px;font-weight:600;color:var(--color-text-secondary);margin-bottom:14px}.trend-section[data-v-e64aa52b]{margin-bottom:20px}.trend-section-title[data-v-e64aa52b]{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:8px}.trend-canvas-wrapper[data-v-e64aa52b]{height:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px}.trend-empty[data-v-e64aa52b]{text-align:center;color:var(--color-text-muted);font-size:13px;padding:24px 0}.trend-legend[data-v-e64aa52b]{display:flex;justify-content:center;gap:16px;margin-top:8px}.trend-legend-item[data-v-e64aa52b]{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-secondary)}.trend-legend-dot[data-v-e64aa52b]{width:10px;height:10px;border-radius:50%}.dot-red[data-v-e64aa52b]{background:#dc2626}.dot-blue[data-v-e64aa52b]{background:#2563eb}.pull-refresh[data-v-42fc56a9]{position:relative}.pull-refresh-indicator[data-v-42fc56a9]{display:flex;align-items:center;justify-content:center;overflow:hidden;transition:height .2s ease,opacity .2s ease}.pull-spinner[data-v-42fc56a9]{width:24px;height:24px;border-width:2.5px}.pull-arrow[data-v-42fc56a9]{font-size:20px;color:var(--color-primary);transition:transform .2s}.pull-arrow.flipped[data-v-42fc56a9]{transform:rotate(180deg)}.dashboard-cards[data-v-aacedf6d]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.dashboard-card[data-v-aacedf6d]{padding:16px;cursor:pointer;transition:transform .15s,box-shadow .15s}.dashboard-card[data-v-aacedf6d]:active{transform:scale(.97)}.dashboard-card-top[data-v-aacedf6d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dashboard-card-value[data-v-aacedf6d]{font-family:var(--font-mono);font-size:28px;font-weight:700;line-height:1.1;margin-bottom:4px}.dashboard-card-value.normal[data-v-aacedf6d]{color:var(--color-success)}.dashboard-card-value.warning[data-v-aacedf6d]{color:var(--color-warning)}.dashboard-card-value.danger[data-v-aacedf6d]{color:var(--color-danger)}.dashboard-card-value small[data-v-aacedf6d]{font-size:13px;font-weight:400;color:var(--color-text-muted)}.dashboard-card-label[data-v-aacedf6d]{font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:2px}.dashboard-card-time[data-v-aacedf6d]{font-size:12px;color:var(--color-text-muted)}.btn-back[data-v-8179400d]{background:none;border:none;color:var(--color-primary);font-size:15px;font-weight:500;cursor:pointer;padding:4px 0;font-family:var(--font-sans)}.step-label[data-v-8179400d]{font-size:15px;font-weight:500;color:var(--color-text-secondary);margin-bottom:14px}.input-header[data-v-8179400d]{display:flex;align-items:center;gap:14px;margin-bottom:24px}.input-header h2[data-v-8179400d]{font-size:20px;font-weight:600}.measurement-icon.large[data-v-8179400d]{width:52px;height:52px;font-size:26px}.notes-input[data-v-8179400d]{font-family:var(--font-sans);font-size:15px;text-align:left;resize:vertical;min-height:60px}.field-error[data-v-8179400d]{color:var(--color-danger);font-size:13px;margin-top:4px;text-align:center}.form-actions[data-v-8179400d]{display:flex;gap:12px;margin-top:24px}.form-actions .btn[data-v-8179400d]{flex:1}.success-state[data-v-8179400d]{text-align:center;padding:40px 0}.success-icon[data-v-8179400d]{font-size:56px;margin-bottom:12px}.success-state h2[data-v-8179400d]{font-size:24px;font-weight:700;margin-bottom:16px}.success-value[data-v-8179400d]{font-family:var(--font-mono);font-size:36px;font-weight:700;margin-bottom:8px}.success-value.normal[data-v-8179400d]{color:var(--color-success)}.success-value.warning[data-v-8179400d]{color:var(--color-warning)}.success-value.danger[data-v-8179400d]{color:var(--color-danger)}.success-value small[data-v-8179400d]{font-size:16px;color:var(--color-text-muted)}.success-status[data-v-8179400d]{margin-bottom:8px}.filter-bar[data-v-86d999cb]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filter-chip[data-v-86d999cb]{flex-shrink:0;padding:8px 14px;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:20px;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-chip.active[data-v-86d999cb]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.measurement-icon.small[data-v-86d999cb]{width:36px;height:36px;font-size:18px;border-radius:8px}.dashboard-cards[data-v-01065c1f]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.dashboard-card[data-v-01065c1f]{padding:16px;cursor:pointer;transition:transform .15s,box-shadow .15s}.dashboard-card[data-v-01065c1f]:active{transform:scale(.97)}.dashboard-card-top[data-v-01065c1f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dashboard-card-value[data-v-01065c1f]{font-family:var(--font-mono);font-size:28px;font-weight:700;line-height:1.1;margin-bottom:4px}.dashboard-card-value.normal[data-v-01065c1f]{color:var(--color-success)}.dashboard-card-value.warning[data-v-01065c1f]{color:var(--color-warning)}.dashboard-card-value.danger[data-v-01065c1f]{color:var(--color-danger)}.dashboard-card-value small[data-v-01065c1f]{font-size:13px;font-weight:400;color:var(--color-text-muted)}.dashboard-card-label[data-v-01065c1f]{font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:2px}.dashboard-card-time[data-v-01065c1f]{font-size:12px;color:var(--color-text-muted)}.filter-bar[data-v-01065c1f]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filter-chip[data-v-01065c1f]{flex-shrink:0;padding:8px 14px;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:20px;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-chip.active[data-v-01065c1f]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.measurement-icon.small[data-v-01065c1f]{width:36px;height:36px;font-size:18px;border-radius:8px}.trend-empty[data-v-01065c1f]{text-align:center;color:var(--color-text-muted);font-size:13px;padding:24px 0}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}:root{--color-bg: #f5f7fa;--color-surface: #ffffff;--color-surface-alt: #f0f3f8;--color-primary: #0d9488;--color-primary-light: #ccfbf1;--color-primary-dark: #0f766e;--color-success: #0d9488;--color-success-light: #ccfbf1;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-danger: #dc2626;--color-danger-light: #fee2e2;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 30px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.04);--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "DM Mono", "SF Mono", monospace;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);min-height:100dvh}.app-container{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(72px + var(--safe-bottom))}.app-header{padding:16px 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.app-header h1{font-size:18px;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:8px}.app-header h1 .icon{font-size:22px}.app-content{flex:1;padding:20px}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);overflow:hidden}.card-header{padding:16px 20px;border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between}.card-header h2{font-size:15px;font-weight:600;color:var(--color-text)}.card-body{padding:20px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.form-input{width:100%;padding:14px 16px;font-family:var(--font-mono);font-size:24px;font-weight:500;color:var(--color-text);background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color .2s,box-shadow .2s;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background:var(--color-surface)}.form-input::placeholder{color:var(--color-text-muted);font-size:16px;font-family:var(--font-sans)}.form-input.is-error{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-light)}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-unit{font-size:13px;color:var(--color-text-muted);text-align:center;margin-top:4px;font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font-family:var(--font-sans);font-size:15px;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-primary:disabled{background:var(--color-text-muted);cursor:not-allowed;transform:none}.btn-success{background:var(--color-success);color:#fff}.btn-outline{background:transparent;color:var(--color-text-secondary);border:2px solid var(--color-border)}.btn-outline:hover{border-color:var(--color-text-muted)}.btn-block{width:100%}.btn-lg{padding:16px 28px;font-size:17px;border-radius:var(--radius-lg)}.pin-container{display:flex;gap:12px;justify-content:center;margin:20px 0}.pin-digit{width:56px;height:64px;font-family:var(--font-mono);font-size:28px;font-weight:600;text-align:center;background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:all .2s;-webkit-appearance:none}.pin-digit:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background:var(--color-surface)}.measurement-type-card{padding:16px;border-radius:var(--radius-md);border:2px solid var(--color-border);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:14px;margin-bottom:10px;background:var(--color-surface)}.measurement-type-card:active{transform:scale(.98)}.measurement-type-card.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.measurement-icon{width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.measurement-icon.bp{background:#fee2e2}.measurement-icon.spo2{background:#ccfbf1}.measurement-icon.pulse{background:#fce7f3}.measurement-icon.temp{background:#fef3c7}.measurement-info h3{font-size:15px;font-weight:600;color:var(--color-text)}.measurement-info p{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.history-item{padding:14px 0;border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between}.history-item:last-child{border-bottom:none}.history-meta{display:flex;flex-direction:column;gap:2px}.history-date{font-size:13px;color:var(--color-text-secondary)}.history-ago{font-size:12px;color:var(--color-primary)}.history-carer{font-size:12px;color:var(--color-text-muted)}.history-value{font-family:var(--font-mono);font-size:20px;font-weight:600;color:var(--color-text)}.history-value.normal{color:var(--color-success)}.history-value.warning{color:var(--color-warning)}.history-value.danger{color:var(--color-danger)}.history-value small{font-size:12px;font-weight:400;color:var(--color-text-muted);margin-left:4px}.badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.bottom-nav{display:flex;background:var(--color-surface);border-top:1px solid var(--color-border);padding:8px 0;padding-bottom:calc(8px + var(--safe-bottom));position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;font-size:11px;font-weight:500;color:var(--color-text-muted);text-decoration:none;cursor:pointer;transition:color .2s;-webkit-tap-highlight-color:transparent;background:none;border:none}.nav-item.active{color:var(--color-primary)}.nav-item .nav-icon{font-size:22px}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);padding:12px 24px;background:var(--color-text);color:#fff;border-radius:var(--radius-xl);font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);z-index:1000;animation:toast-in .3s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;align-items:center;justify-content:center;padding:40px}.empty-state{text-align:center;padding:40px 20px}.empty-state .empty-icon{font-size:48px;margin-bottom:12px}.empty-state p{color:var(--color-text-secondary);font-size:15px}.text-center{text-align:center}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.gap-8{gap:8px}.gap-12{gap:12px}.viewer-banner{padding:10px 20px;background:linear-gradient(135deg,#0f766e,#0d9488);color:#ccfbf1;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.viewer-banner-pill{font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 8px;background:#fff3;border-radius:10px;color:#fff}.viewer-login-link{margin-left:auto;color:#fff;text-decoration:none;font-weight:600;font-size:12px;opacity:.85;transition:opacity .15s}.viewer-login-link:hover{opacity:1}
