:root{--brand: #1E5B4C;--brand-dark: #164439;--brand-light: #E8EFE9;--mint: #8FCB9B;--warn-orange: #F59E0B;--warn-orange-bg: #FFFBEB;--danger-red: #EF4444;--danger-red-bg: #FEF2F2;--ink: #1E2A2F;--ink-soft: #667085;--line: #E5E9E8;--bg: #F7F9F8;--radius-lg: 20px;--radius-md: 14px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 12px rgba(16, 24, 40, .06);--font-brand: "Prompt", "Noto Sans Thai", sans-serif;--font-body: "Noto Sans Thai", sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}#app{min-height:100vh;padding-bottom:32px}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-size:20px;color:var(--ink-soft)}.topbar{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;padding:20px 16px;font-size:20px;font-weight:600;font-family:var(--font-brand);display:flex;align-items:center;gap:8px;border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:0 4px 16px #1e5b4c40}.topbar .back-btn{background:#ffffff2e;border:none;color:#fff;font-size:20px;width:36px;height:36px;border-radius:10px;margin-right:4px;display:inline-flex;align-items:center;justify-content:center}.brand-topbar{gap:12px;padding:22px 16px}.brand-mark{width:42px;height:42px;flex-shrink:0}.brand-topbar-text{display:flex;flex-direction:column;line-height:1.15}.brand-wordmark{font-family:var(--font-brand);font-size:22px;font-weight:700;letter-spacing:-.3px}.brand-subtitle{font-family:var(--font-body);font-size:13px;font-weight:400;color:var(--mint)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:flex;align-items:flex-end;z-index:50;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{background:#fff;width:100%;border-radius:24px 24px 0 0;padding:12px 20px 24px;max-height:88vh;overflow-y:auto;box-shadow:0 -8px 30px #10182826;animation:slide-up .2s ease}@keyframes slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}.sheet:before{content:"";display:block;width:40px;height:4px;border-radius:999px;background:var(--line);margin:4px auto 16px}.sheet h2{margin:0 0 16px;font-size:21px;font-weight:700;font-family:var(--font-brand);display:flex;align-items:center;gap:10px}.sheet-icon{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:20px;background:var(--brand-light);border-radius:11px}.field{margin-bottom:14px}.field label{display:block;font-size:14px;margin-bottom:6px;color:var(--ink-soft);font-weight:500}.field input,.field select,.field textarea{width:100%;padding:12px 14px;font-size:17px;border:1.5px solid var(--line);border-radius:var(--radius-md);font-family:inherit;background:#fafafa;transition:border-color .15s ease,background .15s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);background:#fff}.vitals-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.performed-at-options{display:flex;gap:8px}.performed-at-options button{flex:1;padding:12px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:#fff;color:var(--ink-soft);font-size:15px;font-weight:500;transition:all .15s ease}.performed-at-options button.selected{background:var(--brand);border-color:var(--brand);color:#fff}.status-options{display:flex;gap:8px}.status-options button{flex:1;padding:12px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:#fff;font-size:15px;font-weight:500;color:var(--ink-soft);transition:all .15s ease}.status-options button.selected.normal{background:var(--brand);border-color:var(--brand);color:#fff}.status-options button.selected.concern{background:var(--danger-red);border-color:var(--danger-red);color:#fff}.submit-btn{width:100%;padding:16px;font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;border:none;border-radius:var(--radius-md);margin-top:10px;font-family:var(--font-brand);box-shadow:0 4px 14px #1e5b4c4d}.submit-btn:active{transform:scale(.98)}.cancel-btn{width:100%;padding:14px;font-size:15px;background:none;border:none;color:var(--ink-soft);margin-top:6px;font-weight:500}.error-banner{background:var(--danger-red-bg);color:var(--danger-red);padding:14px 16px;font-size:15px;margin:16px;border-radius:var(--radius-md);font-weight:500}.patient-strip{display:flex;gap:10px;padding:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.patient-strip::-webkit-scrollbar{display:none}.patient-chip{position:relative;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:78px;padding:12px 14px;background:#fff;border:2px solid transparent;border-radius:var(--radius-md);box-shadow:var(--shadow-card);font-family:inherit;transition:transform .15s ease}.patient-chip:active{transform:scale(.97)}.patient-chip.selected{border-color:var(--brand);background:var(--brand-light)}.chip-bed{font-size:20px;font-weight:700;color:var(--brand-dark);line-height:1.1}.chip-name{font-size:13px;color:var(--ink-soft);white-space:nowrap}.chip-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--warn-orange)}.patient-info{padding:4px 16px 12px}.patient-name{font-size:18px;font-weight:700}.patient-bed{font-size:14px;font-weight:500;color:var(--ink-soft);margin-left:6px}.patient-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{font-size:12.5px;padding:4px 10px;border-radius:999px;font-weight:500}.tag-disease{background:var(--brand-light);color:var(--brand-dark)}.tag-allergy{background:var(--danger-red-bg);color:var(--danger-red);font-weight:600}.tag-none{background:#eef1f0;color:var(--ink-soft)}.plan-header{display:flex;align-items:baseline;justify-content:space-between;padding:4px 16px 8px}.plan-header h3{font-size:15px;font-weight:700;margin:0}.plan-summary{font-size:13px;color:var(--ink-soft)}.plan-summary.has-overdue{color:var(--warn-orange);font-weight:600}.plan-board{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.plan-group{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.plan-group.due{box-shadow:inset 4px 0 0 var(--warn-orange),var(--shadow-card)}.plan-group.done{opacity:.72}.plan-group-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px}.plan-time{font-size:17px;font-weight:700;font-family:var(--font-brand)}.plan-overdue{flex:1;font-size:12px;font-weight:600;color:var(--warn-orange);margin-left:8px}.plan-count{font-size:13px;color:var(--ink-soft);margin-left:auto}.task-row{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:10px 14px;background:none;border:none;border-top:1px solid var(--line);font-family:inherit;text-align:left;transition:background .15s ease}.task-row:active{background:var(--brand-light)}.task-check{flex:0 0 24px;width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff}.task-row.done .task-check{background:var(--brand);border-color:var(--brand)}.task-row.due .task-check{border-color:var(--warn-orange)}.task-icon{font-size:22px;line-height:1}.task-label{flex:1;font-size:15px;color:var(--ink);line-height:1.3}.task-sub{display:block;font-size:12px;color:var(--ink-soft)}.task-state{font-size:12px;color:var(--ink-soft);white-space:nowrap}.task-row.done{background:#f1f7f2}.task-row.done .task-sub{color:var(--brand);font-weight:600}.task-row.flag-warn{background:var(--warn-orange-bg)}.task-row.flag-danger{background:var(--danger-red-bg)}.plan-empty{margin:4px 16px 16px;padding:20px 16px;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-card);text-align:center}.plan-empty-title{font-size:15px;font-weight:600;margin-bottom:4px}.plan-empty-hint{font-size:13px;color:var(--ink-soft);line-height:1.4}.unplanned-zone{padding:0 16px 16px}.unplanned-title{font-size:13px;color:var(--ink-soft);margin-bottom:8px}.unplanned-row{display:flex;flex-wrap:wrap;gap:8px}.unplanned-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;min-height:44px;background:#fff;border:1px solid var(--line);border-radius:999px;font-family:inherit;font-size:14px;color:var(--ink)}.unplanned-btn:active{background:var(--brand-light)}.emergency-zone{padding:0 16px 16px}.emergency-btn{width:100%;padding:16px;font-size:17px;font-weight:700;font-family:inherit;color:#fff;background:var(--danger-red);border:none;border-radius:var(--radius-md);box-shadow:0 4px 14px #ef44444d}.emergency-btn:active{transform:scale(.98)}.timeline-section{padding:0 16px 24px}.timeline-section h3{font-size:15px;font-weight:600;color:var(--ink-soft);margin:4px 0 10px}.timeline{display:flex;flex-direction:column;gap:8px}.timeline-item{display:flex;gap:12px;background:#fff;border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow-card);border-left:4px solid transparent}.timeline-item.flag-warn{border-left-color:var(--warn-orange);background:var(--warn-orange-bg)}.timeline-item.flag-danger{border-left-color:var(--danger-red);background:var(--danger-red-bg)}.timeline-time{font-size:14px;font-weight:700;color:var(--brand-dark);flex-shrink:0}.timeline-body{flex:1;min-width:0}.timeline-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.timeline-detail{font-size:13.5px;color:var(--ink-soft);margin-top:3px}.timeline-by{font-size:12px;color:var(--ink-soft);opacity:.8;margin-top:3px}.timeline-photo{margin-top:8px;width:100%;max-width:180px;border-radius:10px;display:block}.flag-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.flag-badge.warn{background:var(--warn-orange);color:#fff}.flag-badge.danger{background:var(--danger-red);color:#fff}.empty-hint{font-size:14px;color:var(--ink-soft);padding:10px 0}.hint-line{font-size:13px;color:var(--ink-soft);margin:-4px 0 12px}.sheet-patient{font-size:14px;color:var(--ink-soft);margin:-8px 0 16px}.sheet-error{color:var(--danger-red);font-size:14px;margin-bottom:8px;min-height:18px}.pill-group{display:flex;flex-wrap:wrap;gap:8px}.pill{flex:1 1 auto;min-width:72px;padding:12px 14px;font-size:15px;font-weight:500;font-family:inherit;color:var(--ink-soft);background:#fff;border:1.5px solid var(--line);border-radius:var(--radius-md);transition:all .15s ease}.pill.selected{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.stepper-field{margin-bottom:12px}.stepper-field label{display:block;font-size:13.5px;margin-bottom:6px;color:var(--ink-soft);font-weight:500}.stepper{display:flex;align-items:center;gap:6px;background:#fafafa;border:1.5px solid var(--line);border-radius:var(--radius-md);padding:4px}.stepper input{flex:1;min-width:0;border:none;background:transparent;text-align:center;font-size:19px;font-weight:600;font-family:inherit;padding:8px 0;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input:focus{outline:none}.stepper-suffix{font-size:13px;color:var(--ink-soft);padding-right:2px}.step-btn{flex-shrink:0;width:40px;height:40px;font-size:22px;font-weight:600;line-height:1;color:var(--brand-dark);background:#fff;border:1.5px solid var(--line);border-radius:10px}.step-btn:active{background:var(--brand-light)}.bp-warning{font-size:14px;font-weight:600;padding:10px 14px;border-radius:var(--radius-md);margin-bottom:14px}.bp-warning.warn{background:var(--warn-orange-bg);color:#92400e;border:1.5px solid var(--warn-orange)}.bp-warning.danger{background:var(--danger-red-bg);color:#991b1b;border:1.5px solid var(--danger-red)}.photo-row{display:flex;gap:8px}.photo-btn{flex:1;padding:12px;font-size:15px;font-weight:500;font-family:inherit;color:var(--brand-dark);background:var(--brand-light);border:none;border-radius:var(--radius-md)}.photo-btn:active{transform:scale(.98)}.photo-thumb{position:relative;display:inline-block;margin-top:10px}.photo-thumb img{width:110px;height:110px;object-fit:cover;border-radius:12px;display:block}.photo-remove{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;border:2px solid white;background:var(--danger-red);color:#fff;font-size:15px;line-height:1}.planned-hint{display:inline-block;font-size:12px;font-weight:600;color:var(--brand-dark);background:var(--brand-light);padding:2px 8px;border-radius:999px;margin-left:6px}.neuro-block{border:1.5px solid var(--line);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:14px;background:#fafbfa}.neuro-block summary{font-size:14.5px;font-weight:600;color:var(--brand-dark);cursor:pointer;padding:4px 0}.neuro-block[open] summary{margin-bottom:10px}.gcs-total{font-size:15px;font-weight:700;color:var(--brand-dark);margin-bottom:12px;min-height:20px}
