:root{--primary:#e2187a;--primary-dark:#b81262;--primary-light:#fce8f2;--primary-soft:#f4b6d4;--secondary:#00aeef;--secondary-dark:#0089bc;--secondary-light:#e5f7fd;--accent:#00aeef;--background:#f7f5f8;--surface:#fff;--surface-elevated:#fff;--text-primary:#1a1520;--text-secondary:#5c5663;--text-muted:#8a8490;--border:#ebe6ed;--border-strong:#d4ccd8;--success:#0f8a5f;--success-light:#e8f7f0;--warning:#c47a12;--warning-light:#fff6e8;--error:#c0392b;--error-light:#fdecea;--info:#00aeef;--info-light:#e5f7fd;--emergency:#c0392b;--emergency-soft:#fdf0ef;--brand-dark:#0a0a0a;--shadow-sm:0 1px 2px #14242c0a;--shadow-md:0 4px 16px #14242c14;--shadow-lg:0 12px 32px #14242c1f;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--nav-height:68px;--header-height:56px;--safe-bottom:env(safe-area-inset-bottom,0px);--font:"Plus Jakarta Sans", system-ui, sans-serif;--transition:.18s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#e4dee6;line-height:1.45;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-shell{background:var(--background);flex-direction:column;width:100%;max-width:430px;height:100%;min-height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #1a15200f,0 18px 50px #1a15201f}.app-content{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);flex:1;overflow:hidden auto}.app-content.no-nav{padding-bottom:calc(16px + var(--safe-bottom))}.app-content.has-fab{padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 72px)}.h1{letter-spacing:-.02em;font-size:1.625rem;font-weight:800;line-height:1.2}.h2{letter-spacing:-.015em;font-size:1.25rem;font-weight:700;line-height:1.25}.h3{font-size:1.05rem;font-weight:700;line-height:1.3}.body{color:var(--text-primary);font-size:.9375rem}.secondary{color:var(--text-secondary);font-size:.875rem}.caption{color:var(--text-muted);font-size:.75rem;font-weight:500}.btn{min-height:48px;transition:transform var(--transition), background var(--transition), opacity var(--transition);white-space:nowrap;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.9375rem;font-weight:650;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--primary-light);color:var(--primary-dark)}.btn-outline{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary-soft)}.btn-ghost{color:var(--primary);background:0 0}.btn-danger{background:var(--emergency);color:#fff}.btn-block{width:100%}.btn-sm{border-radius:12px;min-height:40px;padding:0 14px;font-size:.8125rem}.card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:16px}.card-pressable{transition:transform var(--transition), box-shadow var(--transition)}.card-pressable:active{transform:scale(.985)}.field{flex-direction:column;gap:8px;display:flex}.field label{color:var(--text-secondary);font-size:.8125rem;font-weight:600}.field input,.field select,.field textarea{border:1.5px solid var(--border);background:var(--surface);width:100%;max-width:100%;min-height:52px;transition:border-color var(--transition), box-shadow var(--transition);border-radius:14px;padding:0 16px}.field textarea{resize:vertical;min-height:100px;padding:14px 16px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #e2187a26}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;min-height:36px;transition:all var(--transition);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.8125rem;font-weight:600;display:inline-flex}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.chip-row{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 10px;font-size:.6875rem;font-weight:700;display:inline-flex}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-error{background:var(--error-light);color:var(--error)}.badge-info{background:var(--info-light);color:var(--info)}.badge-primary{background:var(--primary-light);color:var(--primary-dark)}.section{margin-bottom:24px}.section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-header h2{font-size:1.05rem;font-weight:700}.link-btn{color:var(--primary);font-size:.8125rem;font-weight:700}.h-scroll{scrollbar-width:none;gap:12px;margin:0 -16px;padding:2px 16px 4px;display:flex;overflow-x:auto}.h-scroll::-webkit-scrollbar{display:none}.page{padding:16px;animation:.24s fadeSlideIn}.page-tight{padding:12px 16px 16px}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.55}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes successPop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#e8eef0 25%,#f5f8f8 50%,#e8eef0 75%) 0 0/200% 100%;border-radius:10px;animation:1.4s infinite shimmer}.toast-host{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.toast{background:var(--brand-dark);color:#fff;box-shadow:var(--shadow-md);pointer-events:auto;border-radius:14px;padding:12px 16px;font-size:.875rem;font-weight:600;animation:.2s fadeSlideIn}.toast.success{background:var(--success)}.toast.error{background:var(--error)}.overlay{z-index:60;background:#0a181e73;animation:.18s fadeIn;position:absolute;inset:0}.drawer{background:var(--surface);z-index:70;width:min(86%,320px);box-shadow:var(--shadow-lg);flex-direction:column;animation:.22s slideInLeft;display:flex;position:absolute;top:0;bottom:0;left:0}.bottom-sheet{background:var(--surface);z-index:70;padding:12px 16px calc(20px + var(--safe-bottom));max-height:85%;box-shadow:var(--shadow-lg);border-radius:24px 24px 0 0;animation:.24s slideUp;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.sheet-handle{background:var(--border-strong);border-radius:999px;width:40px;height:4px;margin:4px auto 16px}.empty-state{text-align:center;color:var(--text-secondary);padding:40px 20px}.empty-state .icon-wrap{background:var(--primary-light);width:64px;height:64px;color:var(--primary);border-radius:20px;place-items:center;margin:0 auto 16px;display:grid}.demo-banner{background:var(--warning-light);color:var(--warning);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.6875rem;font-weight:700;display:inline-flex}.brand-logo{flex-shrink:0;display:block}.brand-logo-icon,.brand-logo-full{object-fit:contain}.avatar{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:.875rem;font-weight:700;display:grid}.avatar.lg{width:64px;height:64px;font-size:1.25rem}.avatar.sm{width:32px;height:32px;font-size:.75rem}.status-dot{background:var(--success);border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.live{animation:1.4s infinite pulseSoft}.divider{background:var(--border);height:1px;margin:16px 0}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:12px;display:flex}.spacer{flex:1}.icon-btn{width:44px;height:44px;color:var(--text-primary);transition:background var(--transition);background:0 0;border-radius:12px;place-items:center;display:grid}.icon-btn:active{background:var(--border)}.icon-btn.surface{background:var(--surface);border:1px solid var(--border)}.fab{right:16px;bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);z-index:40;background:linear-gradient(135deg, var(--primary), #c4126a);color:#fff;min-height:48px;box-shadow:var(--shadow-md);transition:transform var(--transition);border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:.8125rem;font-weight:700;display:inline-flex;position:absolute}.fab:active{transform:scale(.96)}.timeline{flex-direction:column;gap:0;padding-left:8px;display:flex}.timeline-item{grid-template-columns:24px 1fr;gap:12px;padding-bottom:20px;display:grid;position:relative}.timeline-item:not(:last-child):before{content:"";background:var(--border);width:2px;position:absolute;top:22px;bottom:0;left:11px}.timeline-item.done:not(:last-child):before{background:var(--primary-soft)}.timeline-dot{border:2px solid var(--border-strong);background:var(--surface);z-index:1;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.timeline-item.done .timeline-dot{background:var(--primary);border-color:var(--primary);color:#fff}.timeline-item.current .timeline-dot{border-color:var(--primary);background:var(--primary-light);color:var(--primary);box-shadow:0 0 0 4px #e2187a26}.queue-token{letter-spacing:-.03em;color:var(--primary);font-size:2.75rem;font-weight:800;line-height:1}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.muted-box{background:var(--primary-light);border-radius:var(--radius-md);padding:14px}.disclaimer{color:var(--text-muted);background:var(--background);border-radius:12px;padding:10px 12px;font-size:.75rem;line-height:1.4}.dashboard-shell{background:var(--background);grid-template-columns:248px minmax(0,1fr);height:100%;min-height:100%;display:grid}.dashboard-side{background:var(--brand-dark);color:#fff;flex-direction:column;padding:18px 12px 12px;display:flex;overflow-y:auto}.dashboard-nav{flex-direction:column;gap:4px;margin-top:18px;display:flex}.dashboard-nav a{color:#ffffffc7;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:.92rem;font-weight:650;text-decoration:none;display:flex}.dashboard-nav a.active{background:var(--primary);color:#fff}.dashboard-main{flex-direction:column;min-width:0;max-width:100%;min-height:0;display:flex}.dashboard-top{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.dashboard-top-logo{flex:none;display:none}.dashboard-top-person{flex:1;min-width:0}.dashboard-top-person .h3,.dashboard-top-person .caption{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-tabs{min-width:0;max-width:100%;display:none}.dashboard-content{-webkit-overflow-scrolling:touch;flex:1;padding:24px;overflow:hidden auto}.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.dash-split{grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);align-items:start;gap:16px;display:grid}.dash-row{text-align:left;width:100%}.dash-row.selected{border-color:var(--primary);box-shadow:0 0 0 2px #e2187a26}.dash-input{border:1.5px solid var(--border);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:12px}@media (width<=960px){.dashboard-shell{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr;max-width:100%}.dashboard-side{display:none}.dashboard-top{padding:12px 14px}.dashboard-top-logo{display:block}.dashboard-tabs{background:var(--brand-dark);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;margin:0;padding:8px 12px;display:flex;overflow-x:auto}.dashboard-tabs::-webkit-scrollbar{display:none}.dashboard-tabs a{color:#ffffffc7;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;font-weight:650;text-decoration:none;display:inline-flex}.dashboard-tabs a.active{background:var(--primary);color:#fff}.dashboard-content{padding:16px 14px calc(20px + var(--safe-bottom))}.dashboard-content .row{flex-wrap:wrap;align-items:flex-start;min-width:0;max-width:100%}.dash-split>*,.dashboard-content .card,.dashboard-content .stack,.dashboard-content .grid-2,.dashboard-content .chip-row{min-width:0;max-width:100%}.dashboard-content .chip-row{flex-wrap:wrap;overflow:visible}.dashboard-content .btn{white-space:normal;text-align:center}.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-split,.dashboard-content .grid-4{grid-template-columns:1fr}}.report-backdrop{z-index:80;background:#0a0a0a9e;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.report-sheet{background:#efeae8;flex-direction:column;width:100%;min-width:0;height:100%;max-height:100%;display:flex}.report-sheet-bar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.report-paper-scroll{-webkit-overflow-scrolling:touch;flex:1;padding:12px;overflow:auto}.report-paper{color:#1c1c1c;background:#fff;border:1px solid #d9d3d6;padding:18px 16px 22px;font-family:Times New Roman,Times,serif;box-shadow:0 8px 28px #1410161f}.report-letterhead{border-bottom:2px solid #111;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:12px;display:grid}.report-hospital{font-family:var(--font);letter-spacing:-.01em;font-size:.95rem;font-weight:800;line-height:1.2}.report-dept,.report-loc{color:#444;font-size:.78rem}.report-final{font-family:var(--font);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1px solid #111;padding:4px 6px;font-size:.68rem;font-weight:800}.report-title{text-align:center;letter-spacing:.04em;text-transform:uppercase;margin:14px 0 10px;font-size:1.15rem}.report-meta{border-bottom:1px solid #111;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0 0 14px;padding-bottom:12px;display:grid}.report-meta dt{letter-spacing:.04em;text-transform:uppercase;color:#666;font-size:.68rem}.report-meta dd{margin:0;font-size:.92rem;font-weight:700}.report-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:14px;font-size:.92rem}.report-table th,.report-table td{text-align:left;vertical-align:top;border-bottom:1px solid #cfc8cc;padding:7px 8px 7px 0}.report-table th{letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #111;font-size:.68rem}.report-table th:first-child,.report-table td:first-child{width:46%}.report-table td:nth-child(2),.report-table th:nth-child(2){text-align:right;width:22%;padding-right:10px}.report-table td:nth-child(3),.report-table th:nth-child(3){border-left:1px solid #e6e1e4;width:32%;padding-left:10px}.report-unit{color:#666;font-size:.75rem;font-weight:400;display:block}.report-abnormal{font-weight:700}.report-block h3,.report-impression h3{font-family:var(--font);letter-spacing:.06em;text-transform:uppercase;margin:12px 0 4px;font-size:.78rem}.report-block p,.report-impression p{margin:0 0 4px;line-height:1.45}.report-impression{border-top:1px solid #111;margin-top:8px;padding-top:8px}.report-sign{text-align:right;flex-direction:column;align-items:flex-end;gap:16px;margin-top:28px;font-size:.86rem;display:flex}.report-sign-line{border-top:1px solid #111;width:140px;margin:0 0 6px auto}.report-footnote{text-align:left;color:#666;border-top:1px solid #ddd;width:100%;padding-top:8px;font-size:.72rem}@media (width>=720px){.report-backdrop{align-items:center;padding:24px}.report-sheet{border-radius:16px;max-width:760px;height:auto;max-height:min(92vh,920px);overflow:hidden}.report-paper{padding:28px 32px 32px}}@media (width<=520px){.dashboard-signout span{display:none}.dashboard-content>*>.row:first-child>.btn,.dashboard-content>*>.row:first-child>.row{width:100%}.dashboard-content>*>.row:first-child>.row{display:flex}.dashboard-content>*>.row:first-child>.row .btn{flex:1 1 0}.dashboard-content .grid-2{grid-template-columns:1fr}.h1{font-size:1.4rem}}
