:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #eef2f6;--ink: #10192a;--ink-soft: #47536b;--ink-faint: #7a869c;--line: #dde3ea;--brand: #0b6b5b;--brand-ink: #063f36;--brand-soft: #e2f1ed;--accent: #c2410c;--danger: #b42318;--danger-soft: #fdecea;--warn: #b54708;--warn-soft: #fef4e6;--ok: #067647;--ok-soft: #e7f6ee;--info: #175cd3;--info-soft: #e8f0fe;--radius: 12px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--line-strong: rgba(16, 25, 42, .16);--surface-inset: #fbfcfe;--warn-ink: #7a3d06;--warn-line: rgba(180, 120, 20, .35);--shadow-sm: 0 1px 2px rgba(16, 25, 42, .06);--shadow: 0 1px 2px rgba(16, 25, 42, .05), 0 10px 28px -14px rgba(16, 25, 42, .22);--shadow-lg: 0 24px 60px -24px rgba(16, 25, 42, .35);--ring: 0 0 0 3px var(--brand-soft);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1rem}.app-shell{display:grid;grid-template-columns:256px 1fr;min-height:100vh}.sidebar{background:linear-gradient(185deg,#083b33,#052a24);color:#cfe6e0;padding:20px 14px;display:flex;flex-direction:column;gap:3px;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid rgba(255,255,255,.06)}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:16px}.sidebar-scroll::-webkit-scrollbar{width:8px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:999px}.sidebar .brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:1.05rem;padding:6px 8px 18px}.sidebar .brand .mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#16a085,#0b6b5b);display:grid;place-items:center;font-size:16px}.sidebar .nav-section{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:#6f9a90;margin:16px 10px 6px;font-weight:700}.sidebar a.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:#cfe6e0;font-size:.89rem;font-weight:500;position:relative;transition:background .13s ease,color .13s ease}.sidebar a.nav-item:hover{background:#ffffff14;text-decoration:none;color:#fff}.sidebar a.nav-item.active{background:linear-gradient(100deg,#0b6b5b,#0e8570);color:#fff;font-weight:600;box-shadow:0 6px 18px -10px #000000b3,inset 0 0 0 1px #ffffff12}.sidebar .nav-item .ico{width:18px;text-align:center;opacity:.95;font-size:15px}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 28px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;padding-top:max(13px,env(safe-area-inset-top))}.topbar .role-chip{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--brand-soft);color:var(--brand-ink);padding:4px 10px;border-radius:999px}.topbar .who{display:flex;align-items:center;gap:12px;color:var(--ink-soft);font-size:.88rem}.topbar .who .avatar{box-shadow:none}.topbar .who .who-name{font-weight:600;color:var(--ink)}.topbar .signout-ico{display:none}.dept-chip{display:inline-flex;align-items:center;gap:8px;padding:3px 10px 3px 4px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);max-width:260px}.dept-chip-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.dept-chip-name{font-size:.8rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dept-chip-sub{font-size:.68rem;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title{display:none;font-weight:700;letter-spacing:-.01em}.menu-btn{display:inline-grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}.menu-btn:hover{background:var(--surface-2);border-color:var(--brand);color:var(--brand-ink)}.menu-btn:focus-visible{outline:none;box-shadow:var(--ring);border-color:var(--brand)}.menu-btn svg{display:block}.drawer-close,.drawer-scrim,.tabbar{display:none}.content{padding:26px 28px 60px;max-width:1280px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0;color:var(--ink-faint);font-size:.9rem}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 1080px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.content{padding:18px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px;transition:box-shadow .15s ease;overflow-x:auto}.card .card-title{font-size:.95rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.card .card-title>span:first-child{display:inline-flex;align-items:center;gap:9px}.card .card-title>span:first-child:before{content:"";width:3px;height:16px;border-radius:2px;background:linear-gradient(180deg,var(--brand),#14a085)}.stat{display:flex;flex-direction:column;gap:2px}.stat .label{font-size:.76rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:650}.stat .value{font-size:1.75rem;font-weight:750;letter-spacing:-.025em;line-height:1.15}.stat .hint{font-size:.8rem;color:var(--ink-faint)}.stat-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow)}.stat-card .ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:19px;background:var(--brand-soft);color:var(--brand-ink);flex:0 0 auto}.stat-card .ico.warn{background:var(--warn-soft);color:var(--warn)}.stat-card .ico.danger{background:var(--danger-soft);color:var(--danger)}.stat-card .ico.info{background:var(--info-soft);color:var(--info)}.stat-card .ico.ok{background:var(--ok-soft);color:var(--ok)}.stat-card .body{min-width:0}.stat-card .body .value{font-size:1.55rem;font-weight:750;letter-spacing:-.025em;line-height:1.1}.stat-card .body .label{font-size:.78rem;color:var(--ink-faint);font-weight:600}.avatar{width:40px;height:40px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:700;font-size:.9rem;background:linear-gradient(140deg,#0b6b5b,#12907a);color:#fff;box-shadow:inset 0 0 0 1px #ffffff26}.avatar.lg{width:56px;height:56px;font-size:1.15rem}.avatar.sm{width:32px;height:32px;font-size:.76rem}.avatar.alt{background:linear-gradient(140deg,#175cd3,#3b82f6)}.avatar.warm{background:linear-gradient(140deg,#c2410c,#ea8a3c)}.stat-card.clickable{transition:transform .12s ease,box-shadow .12s ease}.stat-card.clickable:hover{transform:translateY(-1px);box-shadow:0 12px 30px -16px #10192a59}.stat-card.clickable:active{transform:translateY(0)}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);padding:8px 10px;border-bottom:1px solid var(--line);font-weight:650}table.data td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-2)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:650;padding:2px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.neutral{background:var(--surface-2);color:var(--ink-soft)}.badge.brand{background:var(--brand-soft);color:var(--brand-ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-weight:600;font-size:.88rem;padding:9px 15px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .13s,border-color .13s,box-shadow .13s,transform .08s;box-shadow:var(--shadow-sm)}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn.primary{background:linear-gradient(100deg,#0b6b5b,#0e8570);border-color:transparent;color:#fff;box-shadow:0 8px 20px -12px #0b6b5be6}.btn.primary:hover{filter:brightness(1.06);background:linear-gradient(100deg,#0b6b5b,#0e8570)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{filter:brightness(1.05)}.btn.ghost{background:transparent;border-color:transparent;color:var(--brand);box-shadow:none}.btn.ghost:hover{background:var(--brand-soft)}.btn.sm{padding:6px 11px;font-size:.8rem;border-radius:9px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 640px){.form-row{grid-template-columns:1fr}}.alert{padding:11px 14px;border-radius:var(--radius-sm);font-size:.88rem;margin-bottom:16px;border:1px solid transparent}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:#f4c7c3}.alert.info{background:var(--info-soft);color:var(--info);border-color:#cddffb}.alert.warn{background:var(--warn-soft);color:var(--warn);border-color:#f6dfb8}.muted{color:var(--ink-faint)}.mono{font-family:var(--mono);font-size:.85rem}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--ink-faint);padding:32px 20px;font-size:.9rem}.empty .empty-ico{font-size:26px;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2)}.coming-soon{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:36px 20px;color:var(--ink-soft)}.coming-soon-ico{font-size:28px;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);margin-bottom:4px}.coming-soon strong{font-size:.98rem;color:var(--ink)}.coming-soon-sub{font-size:.84rem;color:var(--ink-faint);max-width:34ch;line-height:1.5}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 20% -10%,#0e8a72,#063f36 45%,#041f1b);padding:24px}.login-card{width:100%;max-width:940px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface);border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -30px #0009}.login-hero{background:linear-gradient(160deg,#0b6b5b,#063f36);color:#d9efe9;padding:40px 36px;display:flex;flex-direction:column}.login-hero h1{color:#fff;font-size:1.65rem;margin-bottom:10px}.login-hero p{color:#a9cfc6;font-size:.92rem}.login-hero ul{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;font-size:.88rem}.login-hero li{display:flex;gap:10px;align-items:flex-start;color:#cfe6e0}.login-hero li span{color:#16a085}.login-form{padding:40px 36px}.login-form h2{margin-bottom:4px}.login-form .sub{color:var(--ink-faint);font-size:.88rem;margin-bottom:22px}.demo-creds{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.demo-creds .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.demo-creds button{font-size:.74rem;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;color:var(--ink-soft)}.demo-creds button:hover{border-color:var(--brand);color:var(--brand)}@media (max-width: 800px){.login-card{grid-template-columns:1fr}.login-hero{display:none}}.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:.9rem}.kv dt{color:var(--ink-faint)}.kv dd{margin:0}.pill-row{display:flex;flex-wrap:wrap;gap:6px}.blood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.blood-cell{background:var(--surface-2);border-radius:var(--radius-sm);padding:12px;text-align:center}.blood-cell .g{font-weight:700;font-size:1.1rem;color:var(--danger)}.blood-cell .n{font-size:1.4rem;font-weight:700}.blood-cell .l{font-size:.72rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.bed-cell{border-radius:var(--radius-sm);padding:10px;border:1px solid var(--line);font-size:.8rem}.bed-cell.AVAILABLE{background:var(--ok-soft);border-color:#bfe6d3}.bed-cell.OCCUPIED{background:var(--danger-soft);border-color:#f4c7c3}.bed-cell.RESERVED{background:var(--warn-soft);border-color:#f6dfb8}.bed-cell.CLEANING{background:var(--info-soft);border-color:#cddffb}.bed-cell.MAINTENANCE,.bed-cell.BLOCKED{background:var(--surface-2)}.loading{display:grid;place-items:center;min-height:100vh;color:var(--ink-faint)}.chip-row{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px}.chip{flex:0 0 auto;font:inherit;font-size:.82rem;font-weight:600;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;white-space:nowrap}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.chip .count{opacity:.65;margin-left:5px;font-weight:500}.seg{display:inline-flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:2px}.seg button{font:inherit;font-size:.84rem;font-weight:600;border:none;background:none;padding:7px 14px;border-radius:8px;cursor:pointer;color:var(--ink-soft)}.seg button.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow)}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:0 12px;min-height:42px}.search input{border:none;outline:none;background:none;font:inherit;flex:1;min-width:0;padding:9px 0}.search .ico{color:var(--ink-faint)}.tile-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;text-align:left;cursor:pointer;font:inherit;box-shadow:var(--shadow)}.tile .l{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.tile .v{font-size:1.4rem;font-weight:700}.tile.active{border-color:var(--brand);background:var(--brand-soft)}@media (max-width: 640px){.tile-row{grid-template-columns:repeat(2,1fr)}.tile .v{font-size:1.25rem}}.ward-card{border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.ward-card h3{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ward-card .meta{font-size:.8rem;color:var(--ink-faint);margin-bottom:10px}.room-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}.room-row .room-name{font-weight:650;min-width:62px}.bed-chips{display:flex;gap:6px;flex-wrap:wrap}.bed-chip{border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:.78rem;font-weight:600;cursor:pointer;background:var(--surface);font-family:inherit}.bed-chip.AVAILABLE{background:var(--ok-soft);border-color:#bfe6d3;color:var(--ok)}.bed-chip.OCCUPIED{background:var(--danger-soft);border-color:#f4c7c3;color:var(--danger)}.bed-chip.RESERVED{background:var(--warn-soft);border-color:#f6dfb8;color:var(--warn)}.bed-chip.CLEANING{background:var(--info-soft);border-color:#cddffb;color:var(--info)}.bed-chip.MAINTENANCE,.bed-chip.BLOCKED{background:var(--surface-2);color:var(--ink-soft)}.ico-chip{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:20px;flex:0 0 auto;background:linear-gradient(140deg,var(--brand-soft),#d2ebe4);box-shadow:inset 0 0 0 1px #0b6b5b1a}.dept-card{text-align:left;font:inherit;cursor:pointer;display:block;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.dept-card:hover{transform:translateY(-2px);border-color:#bcded5;box-shadow:0 16px 36px -20px #0b6b5b8c}.dept-card:focus-visible{outline:none;box-shadow:var(--ring)}.doctor-card{display:flex;flex-direction:column;gap:13px;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.2,.9,.3,1),box-shadow .2s ease,border-color .2s ease}.doctor-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 100% 0%,var(--brand-soft),transparent 55%);opacity:0;transition:opacity .28s ease;pointer-events:none}.doctor-card:hover{transform:translateY(-4px);border-color:#bcded5;box-shadow:0 22px 44px -24px #0b6b5b80}.doctor-card:hover:before{opacity:1}.doctor-card>*{position:relative;z-index:1}.doctor-card-top{display:flex;align-items:flex-start;gap:13px}.doctor-avatar{display:inline-block;transition:transform .28s cubic-bezier(.2,.9,.3,1)}.doctor-card:hover .doctor-avatar{transform:scale(1.06) rotate(-3deg)}.doctor-card-id{flex:1;min-width:0}.doctor-card-id h3{margin-bottom:2px}.doctor-card-spec{color:var(--brand-ink);font-size:.83rem;font-weight:600}.doctor-card-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.tag-soft{font-size:.72rem;font-weight:600;color:var(--ink-soft);background:var(--surface-2);border-radius:999px;padding:3px 9px}.doctor-card-qual{font-size:.8rem;color:var(--ink-faint);padding:8px 11px;border-radius:10px;background:var(--surface-2)}.doctor-card-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px dashed var(--line)}.doc-stat{display:flex;flex-direction:column;gap:1px;min-width:0}.doc-stat .k{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700}.doc-stat .v{font-size:.92rem;font-weight:700;overflow-wrap:anywhere}.doctor-book{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;position:relative;overflow:hidden}.doctor-book .arrow{transition:transform .22s cubic-bezier(.2,.9,.3,1)}.doctor-book:hover .arrow{transform:translate(4px)}.doctor-book:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-50%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);transform:skew(-18deg);pointer-events:none}.doctor-book:hover:after{animation:sheen .75s ease}@keyframes sheen{0%{left:-50%}to{left:130%}}.doctor-card{gap:12px}.doctor-card-top{align-items:center}.doctor-card-id h3{font-size:1.02rem}.dept-search{position:relative;margin-bottom:16px;max-width:460px;z-index:30}.search-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;max-height:60vh;overflow-y:auto;animation:drop-in .18s cubic-bezier(.2,.9,.3,1)}@keyframes drop-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.search-drop-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:700;padding:8px 10px 4px}.search-drop-empty{padding:14px 12px;color:var(--ink-faint);font-size:.86rem}.search-hit{display:flex;align-items:center;gap:11px;width:100%;padding:8px 10px;border:none;border-radius:10px;cursor:pointer;background:transparent;font:inherit;text-align:left;color:var(--ink);transition:background .12s ease}.search-hit:hover,.search-hit:focus-visible{background:var(--surface-2);outline:none}.search-hit-body{display:flex;flex-direction:column;min-width:0;flex:1}.search-hit-name{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hit-sub{font-size:.74rem;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hit .tag-soft{flex:0 0 auto}@media (max-width: 640px){.dept-search{max-width:none}.search-drop{max-height:52vh}}.doc-profile{background:linear-gradient(150deg,var(--brand-soft),var(--surface) 62%);border:1px solid #cfe7e0;border-radius:var(--radius);padding:14px;margin-bottom:16px;animation:profile-in .34s cubic-bezier(.2,.9,.3,1)}@keyframes profile-in{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:none}}.doc-profile-head{display:flex;align-items:flex-start;gap:13px}.doc-profile-id{flex:1;min-width:0}.doc-profile-id h3{margin-bottom:2px}.doc-profile .doctor-card-qual{background:#ffffffbf;margin-top:12px}.doc-profile .doctor-card-stats{border-top:1px dashed #c2ded7;margin-top:12px;padding-top:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.doc-profile .doc-stat .v{font-size:.86rem}.doc-profile .tag-soft{background:#fffc}@media (max-width: 640px){.doc-profile .doctor-card-stats{grid-template-columns:1fr;gap:7px}.doc-profile .doc-stat{flex-direction:row;align-items:baseline;gap:8px}.doc-profile .doc-stat .k{flex:0 0 46%}.doc-profile{padding:12px}}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:0 10px;min-height:42px;flex:1 1 240px}.search:focus-within{border-color:var(--brand);box-shadow:var(--ring)}.search .ico{color:var(--ink-faint);font-size:14px}.search input{flex:1;border:none;background:none;outline:none;font:inherit;font-size:.9rem;color:var(--ink);min-width:0;padding:10px 0}.search input::-webkit-search-cancel-button{display:none}.search-clear{border:none;background:var(--surface-2);color:var(--ink-faint);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:11px;display:grid;place-items:center;flex:0 0 auto}.search-clear:hover{background:var(--line);color:var(--ink)}.table-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.table-toolbar .table-count{font-size:.8rem;white-space:nowrap}.dept-logo{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;flex:0 0 auto;color:#fff;border-radius:14px;box-shadow:inset 0 0 0 1px #ffffff2e,0 6px 16px -10px #10192ab3;position:relative;overflow:hidden}.dept-logo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 80% at 20% 0%,rgba(255,255,255,.28),transparent 60%);pointer-events:none}.dept-logo.sm{width:32px;height:32px;border-radius:10px}.dept-logo.md{width:46px;height:46px}.dept-logo.lg{width:64px;height:64px;border-radius:18px}.dept-logo-ico{font-size:20px;line-height:1}.dept-logo.sm .dept-logo-ico{font-size:15px}.dept-logo.lg .dept-logo-ico{font-size:26px}.dept-logo-code{font-size:.56rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.95}.dept-logo.lg .dept-logo-code{font-size:.62rem}.dept-banner{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow);margin-bottom:16px}.dept-banner .dept-banner-text{min-width:0}.dept-banner .dept-banner-text h2{margin-bottom:2px}.dept-banner .dept-banner-text .muted{font-size:.86rem}.dept-banner .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.dept-layout{display:grid;grid-template-columns:268px minmax(0,1fr);gap:20px;align-items:start}.dept-tabs{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:8px;box-shadow:var(--shadow);position:sticky;top:84px;max-height:calc(100vh - 104px);overflow-y:auto}.dept-tab{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:none;border-radius:11px;cursor:pointer;background:transparent;font:inherit;text-align:left;color:var(--ink-soft);position:relative;transition:background .15s ease,color .15s ease,transform .12s ease}.dept-tab:hover{background:var(--surface-2);color:var(--ink)}.dept-tab:active{transform:scale(.985)}.dept-tab.active{background:linear-gradient(100deg,var(--brand-soft),#d9efe9);color:var(--brand-ink)}.dept-tab:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:0 3px 3px 0;background:var(--brand);transform:translateY(-50%);transition:height .22s cubic-bezier(.2,.9,.3,1)}.dept-tab.active:before{height:60%}.dept-tab-body{display:flex;flex-direction:column;min-width:0;flex:1}.dept-tab-name{font-size:.88rem;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dept-tab.active .dept-tab-name{font-weight:700}.dept-tab-sub{font-size:.72rem;color:var(--ink-faint)}.dept-tab-code{font-size:.6rem;font-weight:800;letter-spacing:.06em;color:var(--ink-faint);background:var(--surface-2);padding:2px 6px;border-radius:6px;flex:0 0 auto}.dept-tab.active .dept-tab-code{background:#0b6b5b24;color:var(--brand-ink)}.dept-tab-logo.all{width:32px;height:32px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;font-size:15px;background:linear-gradient(140deg,#64748b,#94a3b8);color:#fff}.dept-panel{animation:panel-in .32s cubic-bezier(.2,.9,.3,1);min-width:0}@keyframes panel-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.dept-panel-head{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow);margin-bottom:16px}.dept-panel-head h2{margin-bottom:2px}.dept-panel-logo.all{width:46px;height:46px;border-radius:14px;flex:0 0 auto;display:grid;place-items:center;font-size:21px;background:linear-gradient(140deg,#64748b,#94a3b8);color:#fff;box-shadow:inset 0 0 0 1px #ffffff2e}.dept-panel .stagger{animation:card-in .34s cubic-bezier(.2,.9,.3,1) backwards}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (max-width: 900px){.dept-layout{grid-template-columns:100px minmax(0,1fr);gap:10px;overflow-x:clip}.dept-tabs{flex-direction:column;flex-wrap:nowrap;gap:4px;position:sticky;top:72px;max-height:calc(100vh - 96px);overflow-y:auto;overscroll-behavior:contain;padding:6px;border-radius:20px;scrollbar-width:none}.dept-tabs::-webkit-scrollbar{display:none}.dept-tab{flex-direction:column;align-items:center;text-align:center;gap:6px;padding:10px 5px;border-radius:14px;width:100%}.dept-tab-body{align-items:center;flex:0 0 auto}.dept-tab-name{font-size:.68rem;font-weight:600;line-height:1.2;white-space:normal;overflow:visible;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dept-tab-sub,.dept-tab-code{display:none}.dept-tab-logo.all{width:36px;height:36px;border-radius:12px;font-size:16px}.dept-tab .dept-logo.sm{width:36px;height:36px;border-radius:12px}.dept-tab .dept-logo.sm .dept-logo-ico{font-size:17px}.dept-panel-head{padding:12px;gap:11px;border-radius:var(--radius)}.dept-panel-head h2{font-size:1rem}.dept-panel-head .muted{font-size:.78rem}.dept-panel-logo.all{width:40px;height:40px;border-radius:13px;font-size:18px}.dept-panel .doctor-card-stats{grid-template-columns:1fr;gap:7px}.dept-panel .doc-stat{flex-direction:row;align-items:baseline;gap:8px}.dept-panel .doc-stat .k{flex:0 0 44%}.dept-panel .doctor-card-top{gap:10px}.dept-panel .doctor-card-qual{font-size:.76rem;padding:7px 9px}}@media (max-width: 380px){.dept-layout{grid-template-columns:86px minmax(0,1fr);gap:8px}.dept-tab-name{font-size:.64rem}.dept-tab{padding:9px 4px}}@media (prefers-reduced-motion: reduce){.dept-panel,.dept-panel .stagger,.dept-tab,.dept-tab:before{animation:none!important;transition:none!important}}.day-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:2px 0 10px}.day-chip{padding:8px 4px;border-radius:11px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;text-align:center;color:var(--ink-soft);min-width:0}.day-chip .dow{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint)}.day-chip .dom{display:block;font-size:1rem;font-weight:700}.day-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.day-chip.active .dow{color:#fffc}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--ink-faint);margin-bottom:10px}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (max-width: 380px){.slot-grid{grid-template-columns:repeat(3,1fr)}}.slot{padding:11px 4px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:.88rem;font-weight:600;color:var(--ink);cursor:pointer;text-align:center;position:relative}.slot:disabled{cursor:not-allowed}.slot.available:hover{border-color:var(--brand);color:var(--brand)}.slot.selected{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 10px #0b6b5b4d}.slot.booked{background:var(--danger-soft);border-color:#f4c7c3;color:var(--danger);text-decoration:line-through}.slot.past{background:var(--surface-2);color:var(--ink-faint)}.slot .tag{display:block;font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-top:2px;opacity:.85}.period-label{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin:12px 0 8px}.detail-row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.detail-row .k{color:var(--ink-faint);font-size:.85rem;min-width:118px}.detail-row .v{flex:1;font-size:.9rem}@media (max-width: 1024px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;height:100vh;width:280px;z-index:60;transform:translate(-100%);transition:transform .22s ease;padding-top:max(20px,env(safe-area-inset-top))}.sidebar.open{transform:translate(0);box-shadow:0 0 60px #00000073}.drawer-close{display:inline-grid;place-items:center;margin-left:auto;width:32px;height:32px;border-radius:8px;border:none;background:#ffffff1f;color:#fff;font-size:15px;cursor:pointer}.drawer-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#041f1b80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.menu-btn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:17px;cursor:pointer;color:var(--ink)}.topbar{gap:12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));overflow-x:clip}.topbar-title{display:none}.topbar .role-chip{order:3}.content{padding:20px 16px 90px}}@media (max-width: 640px){.grid.cols-2,.grid.cols-3,.grid.cols-4,.form-row{grid-template-columns:1fr}.kv{grid-template-columns:120px 1fr}h1{font-size:1.28rem}h2{font-size:1.1rem}.page-head{align-items:stretch;gap:12px}.page-head>div{width:100%}.page-head>button,.page-head>input,.page-head>.btn{width:100%}.who-email,.who-name{display:none}.topbar{gap:8px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top))}.topbar-title{display:none}.topbar .role-chip{order:0;font-size:.66rem;padding:4px 9px}.topbar .who{gap:8px}.topbar .avatar{width:30px;height:30px;font-size:.72rem}.topbar .signout{padding:0;width:34px;height:34px;border-radius:10px}.topbar .signout-text{display:none}.topbar .signout-ico{display:inline;font-size:15px;line-height:1}.dept-chip{max-width:150px;padding:3px 9px 3px 3px}.dept-chip-sub{display:none}.dept-chip-name{font-size:.74rem}.tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 20px -14px #10192a80}.tabbar .tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 10px;border:none;background:none;cursor:pointer;color:var(--ink-faint);font-size:.64rem;font-weight:650;text-decoration:none;position:relative;transition:color .13s ease}.tabbar .tab.active{color:var(--brand)}.tabbar .tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}.tabbar .tab-ico{font-size:19px;line-height:1}.card{overflow-x:auto}table.data:not(.responsive){display:block;overflow-x:auto;min-width:0}table.data.responsive{min-width:0;display:block}table.data.responsive thead{display:none}table.data.responsive tbody{display:block}table.data.responsive tr{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 13px;margin-bottom:10px;box-shadow:var(--shadow-sm)}table.data.responsive tr.clickable{cursor:pointer}table.data.responsive tr.clickable:active{background:var(--surface-2)}table.data.responsive tr:hover{background:var(--surface)}table.data.responsive td{display:flex;gap:12px;align-items:baseline;padding:5px 0;border:none;text-align:right;font-size:.88rem}table.data.responsive td:before{content:attr(data-label);flex:0 0 40%;text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700}table.data.responsive td>*{margin-left:auto}table.data.responsive td.hide-mobile,table.data.responsive th.hide-mobile{display:none}table.data.responsive td:first-child{display:block;text-align:left;font-size:1rem;font-weight:700;padding:0 0 9px;border-bottom:1px solid var(--line);margin-bottom:7px}table.data.responsive td:first-child:before{display:none}table.data.responsive td.action{display:block;text-align:left;margin-top:10px;padding:0}table.data.responsive td.action:before{display:none}table.data.responsive td.action>*{display:block;width:100%;margin:0;text-align:center;min-height:42px;line-height:1.6}.card{padding:16px}.card .card-title{margin-bottom:12px}.bed-cell{padding:12px}.login-form,.login-hero{padding:26px 22px}.content{padding:16px 14px 96px}.chip-row{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.chip{font-size:.78rem;padding:6px 11px}.stat-card .body .value{font-size:1.4rem}.doctor-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-grid{gap:7px}.sheet{padding:8px 16px calc(20px + env(safe-area-inset-bottom))}}@media (max-width: 380px){.blood-grid{grid-template-columns:repeat(2,1fr)}.topbar .role-chip{display:none}}@media (max-width: 640px){.field input,.field select,.field textarea{font-size:16px}}.clinic{display:flex;flex-direction:column;gap:14px}.clinic-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.clinic-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.token-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.token-card.now{border-left-color:var(--accent);background:linear-gradient(90deg,#fff7ed,#fff)}.token-card .token-no{min-width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);font-size:1.35rem;font-weight:800}.token-card.now .token-no{background:#ffedd5;color:var(--accent)}.token-card .token-body{flex:1;min-width:0}.token-card .token-name{font-weight:650}.token-card .token-meta{font-size:.82rem;color:var(--ink-faint)}.token-actions{display:flex;gap:8px;flex-wrap:wrap}.token-actions .btn{min-height:42px}.clinic-actionbar{position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));display:none;gap:10px;padding:10px 14px;background:var(--surface);border-top:1px solid var(--line);z-index:35}@media (max-width: 640px){.clinic-actionbar{display:flex}.clinic-actionbar .btn{flex:1}}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#041f1b80;z-index:70;display:flex;align-items:flex-end}.sheet{width:100%;max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:var(--shadow-lg);padding:8px 20px calc(24px + env(safe-area-inset-bottom));animation:sheet-up .24s cubic-bezier(.2,.9,.3,1)}@media (min-width: 720px){.sheet-scrim{align-items:center;justify-content:center}.sheet{max-width:640px;border-radius:18px;max-height:84vh}.sheet.wide{max-width:880px}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}.sheet-grip{width:42px;height:4px;border-radius:999px;background:var(--line);margin:8px auto 14px}.sheet-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.sheet-body{min-height:60px}.sheet-footer{display:flex;gap:10px;margin-top:16px;padding-top:14px;padding-bottom:2px;border-top:1px solid var(--line);position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.85),var(--surface) 30%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sheet-footer .btn{flex:1;min-height:44px}@media (max-width: 640px){.sheet-head{position:sticky;top:-8px;z-index:2;background:var(--surface);padding-top:4px}.sheet-grip{margin-bottom:8px}}.sheet-section{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.sheet-section h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:8px}.allergy-chip{display:inline-block;background:var(--danger-soft);color:var(--danger);border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:650;margin:0 6px 6px 0}.odontogram{display:flex;flex-direction:column;gap:10px}.odontogram svg{max-width:100%}.odontogram g[role=button]:focus-visible{outline:none}.odontogram g[role=button]:focus-visible>circle{fill:var(--brand-soft)}.odontogram-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--ink-soft);padding-top:8px;border-top:1px dashed var(--line)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:13px;height:13px;border-radius:4px;border:1.5px solid var(--line);display:inline-block;flex:none}.tooth-summary{display:flex;flex-wrap:wrap;gap:8px}.tooth-summary .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft)}.tooth-summary .chip b{color:var(--ink)}.imaging-viewer{display:flex;flex-direction:column;gap:10px}.imaging-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.imaging-toolbar .btn{display:inline-flex;align-items:center;gap:6px}.imaging-toolbar .btn[aria-pressed=true]{background:var(--brand);color:#fff;border-color:var(--brand)}.imaging-label-input input{width:100%;padding:8px 12px;font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.imaging-label-input input:focus{outline:none;box-shadow:var(--ring);border-color:var(--brand)}.imaging-canvas{position:relative;width:100%;aspect-ratio:1 / 1;max-height:62vh;border-radius:var(--radius);overflow:hidden;background:#1a202c;border:1px solid var(--line)}.imaging-image{width:100%;height:100%;object-fit:contain;display:block}.imaging-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.imaging-findings{min-height:40px}.finding-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.finding-list li{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .14s ease,border-color .14s ease;font-size:.86rem}.finding-list li:hover{background:var(--surface-2)}.finding-list li.active{background:var(--brand-soft);border-color:var(--brand)}.finding-dot{width:9px;height:9px;border-radius:50%;flex:none}.finding-text{flex:1;min-width:0;color:var(--ink-soft)}.finding-text strong{color:var(--ink)}@media (prefers-reduced-motion: reduce){.odontogram g,.imaging-overlay g,.finding-list li,.odontogram-legend{transition:none!important;animation:none!important}}@media (max-width: 640px){.imaging-canvas{aspect-ratio:3 / 4;max-height:52vh}.imaging-toolbar .btn .hide-mobile{display:none}.odontogram-legend{font-size:.72rem}}.bed-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.bed-tile{display:flex;flex-direction:column;gap:2px;padding:10px;text-align:left;font:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;min-height:84px}.bed-tile:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.bed-tile:focus-visible{outline:none;box-shadow:var(--ring)}.bed-code{font-weight:700;font-size:.9rem}.bed-ward{font-size:.7rem;color:var(--ink-faint)}.bed-type{font-size:.7rem;color:var(--ink-soft)}.bed-occupant{font-size:.74rem;color:var(--ink);font-weight:600;margin-top:2px}.bed-note{font-size:.68rem;color:var(--ink-faint);font-style:italic}.bed-tile.available{border-color:var(--ok);background:var(--ok-soft)}.bed-tile.occupied{border-color:var(--danger);background:var(--danger-soft)}.bed-tile.reserved{border-color:var(--warn);background:var(--warn-soft)}.bed-tile.cleaning{border-color:var(--info);background:var(--info-soft)}.bed-tile.maintenance,.bed-tile.blocked,.bed-tile.out_of_service{border-color:var(--ink-faint);background:var(--surface-2)}.meter{display:inline-block;width:72px;height:7px;border-radius:999px;background:var(--surface-2);overflow:hidden;vertical-align:middle}.meter-fill{display:block;height:100%;background:var(--brand);transition:width .3s ease}.specialty-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.specialty-tile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;text-align:left;font:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:border-color .14s ease,box-shadow .14s ease}.specialty-tile:hover{box-shadow:var(--shadow)}.specialty-tile:focus-visible{outline:none;box-shadow:var(--ring)}.specialty-tile.enabled{border-color:var(--brand);background:var(--brand-soft)}.specialty-name{font-weight:600;font-size:.87rem}.specialty-code{font-size:.68rem;color:var(--ink-faint)}.specialty-state{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.specialty-state.on{color:var(--brand-ink)}.specialty-state.off{color:var(--ink-faint)}.queue-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.queue-tile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2)}.queue-tile.active{border-color:var(--warn);background:var(--warn-soft)}.queue-count{font-size:1.25rem;font-weight:700;color:var(--ink)}.queue-label{font-size:.72rem;color:var(--ink-soft)}@media (max-width: 640px){.bed-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.specialty-grid{grid-template-columns:1fr}.queue-grid{grid-template-columns:repeat(2,1fr)}}.dock{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;display:flex;align-items:center;pointer-events:none}.dock>*{pointer-events:auto}.dock-rail{display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:var(--radius-lg) 0 0 var(--radius-lg);background:var(--surface);border:1px solid var(--line);border-right:none;box-shadow:-6px 0 18px -8px #0000002e}.dock:has(.dock-panel) .dock-rail{border-radius:var(--radius-lg);border-right:1px solid var(--line)}.dock-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;width:52px;padding:8px 4px;font:inherit;cursor:pointer;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);transition:background .15s ease,color .15s ease,transform .12s ease}.dock-btn:hover{background:var(--surface-2);color:var(--ink);transform:translate(-2px)}.dock-btn:focus-visible{outline:none;box-shadow:var(--ring)}.dock-btn.active{background:var(--brand-soft);color:var(--brand-ink)}.dock-ico{font-size:1.05rem;line-height:1}.dock-label{font-size:.62rem;font-weight:650;text-transform:uppercase;letter-spacing:.03em}.dock-badge{position:absolute;top:2px;right:6px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:.6rem;font-weight:700}.dock-panel{width:min(360px,88vw);max-height:76vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 24px 60px -20px #00000059;margin-right:8px;animation:dockSlide .18s ease-out}@keyframes dockSlide{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.dock-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}.dock-panel-body{padding:12px 14px 16px}.dock-menu-section{margin-bottom:12px}.dock-menu-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-sm);color:var(--ink-soft);text-decoration:none;font-size:.86rem;transition:background .12s ease,color .12s ease}.dock-menu-item:hover{background:var(--surface-2);color:var(--ink)}.dock-menu-item.active{background:var(--brand-soft);color:var(--brand-ink);font-weight:650}.help-list{list-style:none;padding:0;margin:0}.help-list li{padding:10px 0;border-bottom:1px solid var(--line)}.help-list li:last-child{border-bottom:none}.help-title{font-weight:650;font-size:.88rem;margin-bottom:3px}.help-body{margin:0 0 7px;font-size:.82rem;color:var(--ink-soft);line-height:1.45}.notif-list{list-style:none;padding:0;margin:0}.notif-list li{padding:10px 0;border-bottom:1px solid var(--line)}.notif-list li.unread{border-left:3px solid var(--brand);padding-left:9px}.notif-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.notif-body{margin:3px 0;font-size:.82rem;color:var(--ink-soft)}.rx-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.rx-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:14px}.rx-item{border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:10px;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.rx-item.incomplete{border-color:var(--warn)}.rx-item-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.rx-item-no{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:.72rem;font-weight:700}.rx-item-name{flex:1;min-width:0}.rx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.rx-grid label,.rx-instructions{display:flex;flex-direction:column;gap:3px;font-size:.72rem;font-weight:650;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}.rx-grid input,.rx-grid select,.rx-instructions input{font-size:.88rem}.rx-instructions{margin-top:8px}.rx-item-flags{display:flex;flex-wrap:wrap;gap:12px;margin-top:9px;font-size:.82rem}.rx-prn{display:inline-flex;align-items:center;gap:5px;font-size:.8rem}.rx-prn input{width:62px}.rx-item-issue{margin:8px 0 0;font-size:.78rem;color:var(--warn);font-weight:650}.rx-allergies{margin-top:10px;padding:10px;border-radius:var(--radius-sm);background:var(--warn-soft)}.rx-allergy-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.rx-allergy-chip{padding:2px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--warn);font-size:.75rem;font-weight:650}.rx-check{padding:10px 12px;border-radius:var(--radius-sm);font-size:.84rem;margin-bottom:10px}.rx-check.ok{background:var(--ok-soft);color:var(--ok)}.rx-check.warn{background:var(--warn-soft);color:var(--ink)}.rx-check ul{margin:6px 0 0;padding-left:18px}.rx-check li{margin-bottom:3px}.rx-disclaimer{font-size:.75rem;color:var(--ink-faint);margin:8px 0 0;line-height:1.45}.rx-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}.rx-recent{list-style:none;padding:0;margin:0}.rx-recent li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.84rem}.rx-recent li:last-child{border-bottom:none}.rx-recent-meta{display:flex;align-items:center;gap:8px;margin-top:3px}.rx-picker{list-style:none;padding:0;margin:0}.rx-picker-row{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;margin-bottom:6px;transition:border-color .12s ease,background .12s ease}.rx-picker-row:hover{border-color:var(--brand);background:var(--brand-soft)}.rx-picker-name{font-weight:650;font-size:.88rem}.rx-picker-sub{font-size:.74rem;color:var(--ink-faint)}.rx-review-list{list-style:none;padding:0;margin:0}.rx-review-list li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.86rem}.specimen-timeline,.study-timeline{list-style:none;padding:0;margin:0}.specimen-timeline li{position:relative;padding:0 0 14px 20px;border-left:2px solid var(--line)}.specimen-timeline li:last-child{border-left-color:transparent;padding-bottom:0}.specimen-timeline .dot,.study-timeline .dot{position:absolute;left:-6px;top:3px;width:10px;height:10px;border-radius:999px;background:var(--brand)}.study-timeline{display:flex;margin:10px 0}.study-timeline li{flex:1;text-align:center;font-size:.7rem;color:var(--ink-faint);position:relative;padding-top:16px}.study-timeline li .dot{left:50%;top:0;transform:translate(-50%);background:var(--line);transition:background .2s ease,transform .2s ease}.study-timeline li.reached{color:var(--brand-ink);font-weight:650}.study-timeline li.reached .dot{background:var(--brand);transform:translate(-50%) scale(1.25)}.checklist-phase{margin-bottom:12px}.checklist-head{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:5px}.checklist-bar{height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-bottom:7px}.checklist-bar span{display:block;height:100%;background:var(--brand);transition:width .35s ease}.checklist-items{list-style:none;padding:0;margin:0}.checklist-items li{font-size:.82rem;padding:3px 0}.checklist-items li.done{color:var(--ok)}.checklist-items li.done label{text-decoration:line-through;opacity:.75}.hr-list{list-style:none;padding:0;margin:0;font-size:.84rem}.hr-list li{padding:6px 0;border-bottom:1px solid var(--line)}.hr-list li:last-child{border-bottom:none}.po-line{border:1px solid var(--line);border-radius:var(--radius);padding:11px;margin-bottom:10px}.po-line-name{margin-bottom:8px;font-size:.86rem}.po-total{margin-top:12px;font-size:.95rem}.inline-form{margin-top:10px;padding:11px;border-radius:var(--radius-sm);background:var(--surface-2)}.tag{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:999px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);color:var(--ink-soft)}.tag.emergency,.tag.danger{background:var(--danger-soft);color:var(--danger)}.tag.warn{background:var(--warn-soft);color:var(--warn)}@media (max-width: 1100px){.rx-layout{grid-template-columns:1fr}.rx-side{position:static}}.rx-layout>*,.rx-main>*,.rx-item,.rx-grid>*{min-width:0}.rx-item-name{width:100%}.rx-grid{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}@media (max-width: 900px){.dock{top:auto;bottom:74px;transform:none}.dock-btn{width:44px;padding:7px 2px}.dock-label{display:none}.dock-panel{width:min(320px,92vw);max-height:60vh}}@media (max-width: 640px){.rx-grid{grid-template-columns:repeat(2,1fr)}.study-timeline li{font-size:.62rem}}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:12px;font-size:.78rem;color:var(--ink-soft)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.linechart-wrap{width:100%;overflow-x:auto}.linechart{width:100%;min-width:520px;height:190px;display:block}.chart-foot{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:.78rem}.chart-note{margin:10px 0 0;font-size:.76rem;color:var(--ink-faint);line-height:1.5}.ring-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}.metric-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.metric-list li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.86rem}.metric-list li:last-child{border-bottom:none}.metric-list strong{font-size:1.05rem;font-variant-numeric:tabular-nums}table.data.compact td{padding:7px 0;font-size:.85rem}table.data.compact td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:650}table.data.compact tr.total td{border-top:2px solid var(--line);font-weight:750;padding-top:10px}.ring{position:relative;display:grid;place-items:center}.ring svg{position:absolute;top:0;right:0;bottom:0;left:0}.ring-centre{display:flex;flex-direction:column;align-items:center;gap:1px}.ring-value{font-size:1.35rem;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ring-label{font-size:.68rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:650}.spark{display:block;overflow:visible}.spark-empty{display:block;width:60px;height:20px}.rich-stat{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;display:flex;flex-direction:column;gap:7px;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.rich-stat:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand);opacity:.9}.rich-stat.tone-ok:before{background:var(--ok)}.rich-stat.tone-warn:before{background:var(--warn)}.rich-stat.tone-danger:before{background:var(--danger)}.rich-stat.tone-info:before{background:var(--info)}.rich-stat:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.rich-stat-top{display:flex;align-items:center;gap:8px}.rich-stat-icon{font-size:1.05rem}.rich-stat-label{font-size:.72rem;font-weight:650;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.045em}.rich-stat-value{font-size:1.65rem;font-weight:750;letter-spacing:-.025em;font-variant-numeric:tabular-nums;line-height:1.1}.rich-stat-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.76rem}.rich-stat-foot .spark{margin-left:auto}.trend{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}.trend.good{background:var(--ok-soft);color:var(--ok)}.trend.bad{background:var(--danger-soft);color:var(--danger)}.trend.flat{background:var(--surface-2);color:var(--ink-faint)}.bars{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.bars li{display:grid;grid-template-columns:minmax(90px,34%) 1fr auto;align-items:center;gap:10px}.bar-label{font-size:.8rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:999px;background:var(--brand);transition:width .5s cubic-bezier(.22,1,.36,1)}.bar-fill.ok{background:var(--ok)}.bar-fill.warn{background:var(--warn)}.bar-fill.danger{background:var(--danger)}.bar-fill.info{background:var(--info)}.bar-value{font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.columns{display:flex;align-items:flex-end;gap:4px}.column{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%}.column-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end}.column-bar{display:block;width:100%;border-radius:4px 4px 0 0;background:var(--brand);transition:height .5s cubic-bezier(.22,1,.36,1)}.column-bar.ok{background:var(--ok)}.column-bar.warn{background:var(--warn)}.column-bar.danger{background:var(--danger)}.column-bar.info{background:var(--info)}.column-label{font-size:.62rem;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.segmented{display:flex;flex-direction:column;gap:10px}.segmented-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.segmented-part{transition:width .5s cubic-bezier(.22,1,.36,1)}.segmented-part.brand{background:var(--brand)}.segmented-part.ok{background:var(--ok)}.segmented-part.warn{background:var(--warn)}.segmented-part.danger{background:var(--danger)}.segmented-part.info{background:var(--info)}.segmented-legend{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px}.segmented-legend li{display:flex;align-items:center;gap:6px;font-size:.78rem}.legend-dot{width:8px;height:8px;border-radius:999px;flex:none}.legend-dot.brand{background:var(--brand)}.legend-dot.ok{background:var(--ok)}.legend-dot.warn{background:var(--warn)}.legend-dot.danger{background:var(--danger)}.legend-dot.info{background:var(--info)}.legend-label{color:var(--ink-soft)}.legend-value{font-weight:700;font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){.bar-fill,.column-bar,.segmented-part,.rich-stat,.ring circle{transition:none}}@media (max-width: 640px){.bars li{grid-template-columns:minmax(70px,40%) 1fr auto;gap:7px}.rich-stat-value{font-size:1.4rem}}.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:16px}.doc-list{list-style:none;padding:0;margin:0}.doc-list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.doc-list li:last-child{border-bottom:none}.doc-list-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.doc-list-main strong{font-size:.88rem}.doc-list-main .muted{font-size:.76rem}.doc-ico{font-size:1.1rem;flex:none}.doc-time{flex:none;width:54px;font-size:.78rem;font-weight:700;color:var(--brand-ink);font-variant-numeric:tabular-nums}.token-chip{flex:none;min-width:30px;height:30px;display:grid;place-items:center;padding:0 6px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand-ink);font-weight:700;font-size:.82rem}.critical-banner{display:flex;flex-direction:column;gap:8px}.critical-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--radius-sm);background:var(--danger-soft);border-left:3px solid var(--danger)}.critical-value{font-weight:800;font-size:1rem;color:var(--danger)}.critical-detail{flex:1;min-width:0;font-size:.84rem}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.quick-action{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-decoration:none;font-size:.88rem;font-weight:650;transition:border-color .14s ease,background .14s ease,transform .12s ease}.quick-action:hover{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-1px)}.quick-action:focus-visible{outline:none;box-shadow:var(--ring)}.order-catalogue{list-style:none;padding:0;margin:0}.order-catalogue-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 12px;margin-bottom:6px;font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .12s ease,background .12s ease}.order-catalogue-row:hover,.order-catalogue li.chosen .order-catalogue-row{border-color:var(--brand);background:var(--brand-soft)}.order-test-name{flex:1;min-width:0;font-weight:650;font-size:.88rem}.order-test-meta{font-size:.74rem;color:var(--ink-faint)}.order-test-mark{font-weight:800;color:var(--brand-ink)}.order-basket{list-style:none;padding:0;margin:0 0 8px}.order-basket li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.86rem}@media (max-width: 640px){.doc-grid,.quick-actions{grid-template-columns:1fr}}.card-subtitle{display:block;margin-top:2px;font-size:.76rem;font-weight:500;color:var(--ink-faint);letter-spacing:0}.ward-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.ward-head{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 16px;font:inherit;cursor:pointer;background:transparent;border:none;border-bottom:1px solid transparent;transition:background .14s ease}.ward-head:hover{background:var(--surface-2)}.ward-head:focus-visible{outline:none;box-shadow:var(--ring)}.ward-block:has(.ward-body) .ward-head{border-bottom-color:var(--line)}.ward-caret{color:var(--ink-faint);font-size:.8rem;width:12px;flex:none}.ward-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ward-title strong{font-size:.98rem}.ward-meta{font-size:.75rem;color:var(--ink-faint)}.ward-counts{display:flex;gap:6px;flex-wrap:wrap}.ward-pill{font-size:.72rem;font-weight:650;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-soft);white-space:nowrap}.ward-pill.ok{background:var(--ok-soft);color:var(--ok)}.ward-pill.warn{background:var(--warn-soft);color:var(--warn)}.ward-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}.room-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--radius-sm)}.room-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px;background:var(--bg)}.room-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}.room-no{font-weight:700;font-size:.88rem}.bed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.bed-tile{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:9px 10px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink-faint);transition:transform .12s ease,box-shadow .12s ease}.bed-tile:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.bed-tile.ok{border-left-color:var(--ok)}.bed-tile.warn{border-left-color:var(--warn)}.bed-tile.info{border-left-color:var(--info)}.bed-tile.danger{border-left-color:var(--danger)}.bed-code{font-weight:750;font-size:.9rem;font-variant-numeric:tabular-nums}.bed-type{font-size:.68rem;color:var(--ink-faint);text-transform:capitalize}.bed-rate{font-size:.74rem;font-weight:650;color:var(--brand-ink)}.bed-tile .badge{margin-top:3px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-hint{margin:4px 0 0;font-size:.73rem;color:var(--ink-faint);line-height:1.45}.req{color:var(--danger)}@media (max-width: 640px){.field-row{grid-template-columns:1fr}.ward-head{flex-wrap:wrap}.ward-counts{width:100%}.bed-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}}.ss{position:relative;width:100%}.ss.disabled{opacity:.6}.ss-trigger{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:9px 11px;font:inherit;font-size:.9rem;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);transition:border-color .14s ease,box-shadow .14s ease}.ss-trigger:hover:not(:disabled){border-color:var(--brand)}.ss-trigger:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}.ss-trigger.open{border-color:var(--brand);box-shadow:var(--ring)}.ss-trigger.placeholder .ss-value{color:var(--ink-faint)}.ss-trigger:disabled{cursor:not-allowed}.ss-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-hint{margin-left:7px;font-size:.76rem;color:var(--ink-faint)}.ss-clear{flex:none;width:18px;height:18px;display:grid;place-items:center;border-radius:999px;color:var(--ink-faint);font-size:1rem;line-height:1}.ss-clear:hover{background:var(--surface-2);color:var(--ink)}.ss-arrow{flex:none;color:var(--ink-faint);font-size:.7rem}.ss-pop{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:7px;animation:ss-in .12s ease}@keyframes ss-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.ss-search{width:100%;padding:8px 10px;font:inherit;font-size:.87rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);margin-bottom:6px}.ss-search:focus{outline:none;border-color:var(--brand);background:var(--surface)}.ss-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}.ss-option{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:.87rem}.ss-option.active{background:var(--brand-soft)}.ss-option.chosen:before{content:"✓";color:var(--brand);font-size:.8rem}.ss-option.disabled{opacity:.45;cursor:not-allowed}.ss-option-label{flex:1;min-width:0}.ss-option-hint{font-size:.74rem;color:var(--ink-faint)}.ss-empty{margin:0;padding:14px 10px;text-align:center;font-size:.84rem;color:var(--ink-faint)}.ss-more{margin:6px 0 0;font-size:.72rem;color:var(--ink-faint);text-align:center}@media (max-width: 640px){.ss-pop{position:fixed;left:12px;right:12px;top:auto;bottom:12px}.ss-list{max-height:46vh}}.tab-row{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:0}.tab{padding:9px 15px;font:inherit;font-size:.87rem;font-weight:650;cursor:pointer;background:transparent;color:var(--ink-soft);border:none;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color .14s ease,background .14s ease,border-color .14s ease}.tab:hover{background:var(--surface-2);color:var(--ink)}.tab.active{color:var(--brand-ink);border-bottom-color:var(--brand);background:var(--brand-soft)}.tab:focus-visible{outline:none;box-shadow:var(--ring)}.tab-group{display:flex;flex-direction:column;gap:6px}.tab-group-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.tab-bar{gap:2px;align-items:stretch}.tab-bar .tab{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 13px 8px;line-height:1.15}.tab-eyebrow{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint)}.tab-bar .tab.active .tab-eyebrow{color:var(--brand-ink);opacity:.85}.recon{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);margin:0 0 12px;font-size:.86rem;line-height:1.5}.recon.ok{background:var(--ok-soft);color:var(--ok);border-left:3px solid var(--ok)}.recon.bad{background:var(--danger-soft);color:var(--danger);border-left:3px solid var(--danger)}.pl-headline{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:var(--radius-sm);margin-bottom:12px}.pl-headline.ok{background:var(--ok-soft)}.pl-headline.warn{background:var(--warn-soft)}.pl-label{font-size:.74rem;font-weight:650;text-transform:uppercase;letter-spacing:.045em;color:var(--ink-soft)}.pl-value{font-size:1.6rem;font-weight:750;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.pl-headline.ok .pl-value{color:var(--ok)}.pl-headline.warn .pl-value{color:var(--warn)}table.data.compact tr.section td{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);padding-top:14px;padding-bottom:4px}table.data.compact tr.subtotal td{font-weight:700;border-top:1px solid var(--line)}table.data.compact tr.total td{font-weight:750;border-top:2px solid var(--line);padding-top:10px}table.data.compact td.num{text-align:right;font-variant-numeric:tabular-nums}table.data.compact td.num.neg{color:var(--danger)}@media (max-width: 640px){.tab{padding:8px 11px;font-size:.8rem}.tab-row{overflow-x:auto;flex-wrap:nowrap}.tab-bar .tab{flex-direction:row;align-items:center}.tab-bar .tab-eyebrow{display:none}}.check-row{display:flex;align-items:center;gap:9px;padding:9px 0;font-size:.88rem;cursor:pointer}.check-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--brand);cursor:pointer;flex:none}.field-hint.warn-text{color:var(--warn);font-weight:600}.dialog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;background:#041f1b8c;padding:16px;animation:fade-in .14s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dialog{width:100%;max-width:460px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px 22px 18px;animation:dialog-in .16s cubic-bezier(.2,.9,.3,1)}@keyframes dialog-in{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:none}}.dialog-title{margin:0 0 8px;font-size:1.06rem;letter-spacing:-.01em}.dialog-body{color:var(--ink-soft);font-size:.89rem;line-height:1.55}.dialog-body strong{color:var(--ink)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.danger:hover:not(:disabled){filter:brightness(1.08)}.toast{position:fixed;right:16px;bottom:16px;z-index:95;display:flex;align-items:flex-start;gap:10px;max-width:min(420px,calc(100vw - 32px));padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lg);border-left:3px solid var(--brand);animation:toast-in .2s cubic-bezier(.2,.9,.3,1)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.toast.success{border-left-color:var(--ok)}.toast.error{border-left-color:var(--danger)}.toast-icon{flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:999px;font-size:.72rem;font-weight:800;color:#fff;background:var(--brand)}.toast.success .toast-icon{background:var(--ok)}.toast.error .toast-icon{background:var(--danger)}.toast-message{flex:1;font-size:.86rem;line-height:1.45}.toast-close{flex:none;background:none;border:none;cursor:pointer;color:var(--ink-faint);font-size:1.05rem;line-height:1;padding:0 2px}.toast-close:hover{color:var(--ink)}.progress-wrap{display:flex;flex-direction:column;gap:5px}.progress-head{display:flex;justify-content:space-between;font-size:.8rem;font-weight:600}.progress{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-fill{display:block;height:100%;border-radius:999px;background:var(--brand);transition:width .3s cubic-bezier(.2,.9,.3,1)}.progress-fill.ok{background:var(--ok)}.progress-fill.warn{background:var(--warn)}.progress-fill.danger{background:var(--danger)}.detail-list{margin:0;display:flex;flex-direction:column}.detail-row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.87rem}.detail-row:last-child{border-bottom:none}.detail-row dt{flex:0 0 42%;color:var(--ink-faint);font-weight:600}.detail-row dd{flex:1;margin:0;min-width:0}.pill-filter{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font:inherit;font-size:.82rem;font-weight:650;cursor:pointer;background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);transition:all .14s ease}.pill-filter:hover{border-color:var(--brand);color:var(--ink)}.pill-filter.active{background:var(--brand);border-color:var(--brand);color:#fff}.pill-filter:focus-visible{outline:none;box-shadow:var(--ring)}.pill-count{font-size:.72rem;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--ink-soft)}.pill-filter.active .pill-count{background:#ffffff3d;color:#fff}@media (max-width: 640px){.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{width:100%}.toast{left:16px;right:16px;bottom:16px}.detail-row{flex-direction:column;gap:2px}.detail-row dt{flex:none}}.app-shell.collapsed{grid-template-columns:68px 1fr}.app-shell.collapsed .sidebar{padding-left:8px;padding-right:8px}.app-shell.collapsed .brand-text{display:none}.app-shell.collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app-shell.collapsed .nav-section{font-size:0;height:1px;margin:10px 8px;padding:0;background:#ffffff24}.app-shell.collapsed a.nav-item{justify-content:center;padding:10px 0;gap:0}.app-shell.collapsed a.nav-item .nav-label{display:none}.app-shell.collapsed a.nav-item .ico{width:auto;font-size:17px}.app-shell.collapsed .sidebar-scroll{padding-bottom:12px}@media (max-width: 980px){.app-shell.collapsed{grid-template-columns:1fr}.app-shell.collapsed a.nav-item{justify-content:flex-start;padding:9px 12px;gap:10px}.app-shell.collapsed a.nav-item .nav-label,.app-shell.collapsed .brand-text{display:inline}.app-shell.collapsed .brand{justify-content:flex-start}.app-shell.collapsed .nav-section{font-size:.68rem;height:auto;margin:0;padding:14px 12px 6px;background:none}}.cpr-reader{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:14px;margin-bottom:16px}.cpr-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.cpr-badge{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--surface);font-size:17px;border:1px solid var(--line)}.cpr-head-text{flex:1;display:flex;flex-direction:column;min-width:0}.cpr-head-text strong{font-size:.9rem}.cpr-head-text .muted{font-size:.78rem}.cpr-reader .field{margin-bottom:0}.cpr-reader .field input{letter-spacing:.06em;font-variant-numeric:tabular-nums}.field-hint.ok-text{color:var(--ok)}@media (max-width: 560px){.cpr-head{flex-wrap:wrap}.cpr-head .btn{width:100%}}.chat-status-bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.chat-status-field{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:600;color:var(--ink-soft)}.chat-status-field select,.chat-status-field input{font:inherit;font-size:.86rem;font-weight:500;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.chat-status-field input{min-width:200px}.chat-status-bar .btn{margin-left:auto}.chat-layout{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:14px;height:calc(100vh - 300px);min-height:420px}.chat-list,.chat-thread{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column;min-height:0;overflow:hidden}.chat-list{padding:12px}.chat-rows{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.chat-row{display:flex;gap:10px;width:100%;text-align:left;padding:9px 10px;border:none;background:none;cursor:pointer;border-radius:9px;font:inherit;color:var(--ink);align-items:center}.chat-row:hover{background:var(--surface-2)}.chat-row.active{background:var(--brand-soft, var(--surface-2));box-shadow:inset 3px 0 0 var(--brand)}.chat-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-row-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.chat-row-top strong{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row-top .muted{font-size:.72rem;flex:none}.chat-row-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}.chat-preview{font-size:.78rem;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-unread{flex:none;min-width:19px;height:19px;padding:0 6px;border-radius:999px;background:var(--brand);color:#fff;font-size:.7rem;font-weight:800;display:grid;place-items:center}.chat-avatar{position:relative;flex:none;width:38px;height:38px;border-radius:999px;display:grid;place-items:center;font-size:.72rem;font-weight:800;background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.chat-avatar.small{width:32px;height:32px;font-size:.68rem}.chat-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:999px;background:var(--ok);border:2px solid var(--surface)}.chat-thread-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}.chat-thread-who{display:flex;flex-direction:column;min-width:0}.chat-thread-who strong{font-size:.94rem}.chat-thread-who .muted{font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-back{display:none}.chat-messages{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px}.chat-empty-note{color:var(--ink-faint);font-size:.85rem;text-align:center;margin:auto}.chat-msg{display:flex;flex-direction:column;gap:3px;max-width:74%}.chat-msg.mine{align-self:flex-end;align-items:flex-end}.chat-msg-who{font-size:.72rem;font-weight:700;color:var(--ink-faint)}.chat-bubble{padding:9px 12px;border-radius:13px;background:var(--surface-2);font-size:.88rem;line-height:1.5;word-break:break-word;white-space:pre-wrap}.chat-msg.mine .chat-bubble{background:var(--brand);color:#fff}.chat-bubble.deleted{font-style:italic;opacity:.6}.chat-attach{display:block;margin-top:5px;font-size:.78rem;opacity:.85}.chat-msg-time{font-size:.68rem;color:var(--ink-faint);display:flex;gap:8px;align-items:center}.chat-withdraw{background:none;border:none;padding:0;cursor:pointer;color:var(--ink-faint);font-size:.68rem;text-decoration:underline}.chat-withdraw:hover{color:var(--danger)}.chat-compose{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);flex:none;align-items:flex-end}.chat-compose textarea{flex:1;font:inherit;font-size:.88rem;padding:9px 11px;resize:none;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.chat-compose textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}.chat-group-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin:16px 0 6px}.chat-people{list-style:none;margin:0;padding:0}.chat-person{display:flex;gap:10px;width:100%;text-align:left;align-items:center;padding:9px 10px;border:none;background:none;cursor:pointer;border-radius:9px;font:inherit;color:var(--ink)}.chat-person:hover{background:var(--surface-2)}.chat-person-body{flex:1;min-width:0;display:flex;flex-direction:column}.chat-person-body strong{font-size:.86rem}.chat-person-body .muted{font-size:.76rem}@media (max-width: 860px){.chat-layout{grid-template-columns:1fr;height:auto}.chat-list{max-height:60vh}.chat-thread{display:none;min-height:60vh}.chat-layout.show-thread .chat-list{display:none}.chat-layout.show-thread .chat-thread{display:flex}.chat-back{display:inline-grid}.chat-msg{max-width:88%}.chat-status-bar .btn{margin-left:0;width:100%}.chat-status-field{flex:1 1 100%}.chat-status-field input{min-width:0;width:100%}}.demo-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}.demo-toggle{background:none;border:none;padding:0;cursor:pointer;color:var(--brand-ink);font:inherit;font-size:.78rem;font-weight:650;text-decoration:underline}.demo-group{margin-bottom:10px}.demo-group-head{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:5px}.dock-chat-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.dock-chat-head .muted{font-size:.76rem}.dock-chat-list{list-style:none;margin:0;padding:0}.dock-chat-row{display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:8px;text-decoration:none;color:var(--ink)}.dock-chat-row:hover{background:var(--surface-2)}.dock-chat-who{flex:1;min-width:0;display:flex;flex-direction:column}.dock-chat-who strong{font-size:.82rem}.dock-chat-who .muted{font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-badge.inline{position:static}.row-actions{display:flex;gap:4px;justify-content:flex-end}.icon-btn{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;border:1px solid transparent;background:none;cursor:pointer;font-size:.82rem;color:var(--ink-faint);transition:all .13s ease}.icon-btn:hover{background:var(--surface-2);border-color:var(--line);color:var(--ink)}.icon-btn.danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:var(--danger);color:var(--danger)}.icon-btn:focus-visible{outline:none;box-shadow:var(--ring)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.setup-steps{list-style:none;margin:14px 0 0;padding:0}.setup-steps li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.setup-steps li:last-child{border-bottom:none}.setup-mark{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--line);font-size:.78rem;color:var(--ink-faint);background:var(--surface-2)}.setup-steps li.done .setup-mark{background:var(--ok);border-color:var(--ok);color:#fff}.setup-body{flex:1;display:flex;flex-direction:column;min-width:0}.setup-body strong{font-size:.88rem}.setup-body .muted{font-size:.78rem;line-height:1.45}.setup-steps li.done .setup-body strong{color:var(--ink-soft)}.quick-add-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.quick-add{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:var(--ink);text-decoration:none;transition:border-color .14s ease,box-shadow .14s ease}.quick-add:hover:not(:disabled){border-color:var(--brand);box-shadow:var(--shadow-sm, 0 2px 8px rgba(0,0,0,.06))}.quick-add:disabled{opacity:.5;cursor:not-allowed}.quick-add-ico{font-size:20px}.quick-add strong{font-size:.9rem}.quick-add .muted{font-size:.76rem;line-height:1.4}.setup-links{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:.86rem}.setup-links a{font-weight:650}.ward-head.static{display:flex;align-items:center;gap:10px;padding:0}.ward-head-btn{flex:1;display:flex;align-items:center;gap:10px;padding:12px;border:none;background:none;cursor:pointer;font:inherit;color:inherit;text-align:left;min-width:0}.ward-head.static .row-actions{padding-right:12px}.sheet-inline-actions{display:flex;justify-content:flex-end;margin-top:14px}.attention-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.attention-list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.attention-list li:last-child{border-bottom:none}.attention-list li>span:nth-child(2){flex:1;display:flex;flex-direction:column;min-width:0}.attention-list strong{font-size:.86rem}.attention-list .muted{font-size:.76rem;line-height:1.4}.attention-count{flex:none;min-width:34px;height:34px;padding:0 8px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:.9rem;background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.attention-list li.warn .attention-count{background:color-mix(in srgb,var(--warn) 16%,transparent);border-color:var(--warn);color:var(--warn-ink, var(--ink))}.attention-list li.ok .attention-count{background:color-mix(in srgb,var(--ok) 14%,transparent);border-color:var(--ok);color:var(--ok)}.category-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.category-tile{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.category-tile.empty{opacity:.6}.category-tile strong{font-size:.84rem}.category-tile .muted{font-size:.76rem}.check-row{display:flex;gap:16px;flex-wrap:wrap;padding-top:6px}.check{display:flex;align-items:center;gap:7px;font-size:.86rem;font-weight:500;cursor:pointer}.check input{width:16px;height:16px}.total-row td{border-top:2px solid var(--line)}.kv{margin:0;display:flex;flex-direction:column;gap:8px}.kv>div{display:flex;gap:10px;align-items:baseline}.kv dt{flex:none;width:118px;font-size:.76rem;font-weight:650;color:var(--ink-faint)}.kv dd{margin:0;font-size:.85rem;min-width:0}.kv dd .badge+.badge{margin-left:4px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:100%}.muted.small,.small{font-size:.74rem}@media (max-width: 560px){.kv>div{flex-direction:column;gap:2px}.kv dt{width:auto}}.ss-group{padding:8px 10px 4px;font-size:.68rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);background:var(--surface);position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line);list-style:none}.ss-list{padding-bottom:4px}.ss-option{scroll-margin-top:26px}:root{--edge-light: rgba(255, 255, 255, .75);--edge-dark: rgba(16, 25, 42, .14);--depth-1: 0 1px 0 var(--edge-light) inset, 0 -1px 0 var(--edge-dark) inset, 0 2px 0 rgba(16, 25, 42, .07), 0 4px 10px -4px rgba(16, 25, 42, .18);--depth-2: 0 1px 0 var(--edge-light) inset, 0 -1px 0 var(--edge-dark) inset, 0 3px 0 rgba(16, 25, 42, .09), 0 8px 18px -6px rgba(16, 25, 42, .24);--depth-press: 0 1px 0 rgba(0, 0, 0, .08) inset, 0 1px 2px rgba(16, 25, 42, .2) inset;--ease-pop: cubic-bezier(.34, 1.56, .64, 1)}.btn{position:relative;border-radius:11px;border:1px solid rgba(16,25,42,.1);background:linear-gradient(180deg,#fff,#f2f5f9);box-shadow:var(--depth-1);transition:transform .09s var(--ease-pop),box-shadow .12s ease,background .14s ease,filter .14s ease;transform:translateZ(0)}.btn:hover:not(:disabled){background:linear-gradient(180deg,#fff,#e9eef5);box-shadow:var(--depth-2);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:var(--depth-press);background:linear-gradient(180deg,#e8edf4,#f4f7fa)}.btn:focus-visible{outline:none;box-shadow:var(--depth-1),var(--ring)}.btn:disabled{opacity:.5;box-shadow:none;transform:none;filter:grayscale(.25)}.btn.primary{background:linear-gradient(180deg,#12836f,#0b6b5b 55%,#085445);border-color:#0000002e;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.22);box-shadow:0 1px #ffffff47 inset,0 -2px #00000038 inset,0 3px #06412f,0 8px 18px -6px #0854458c}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#189a83,#0d7a68 55%,#096050);box-shadow:0 1px #ffffff52 inset,0 -2px #00000038 inset,0 4px #06412f,0 12px 24px -8px #08544599;transform:translateY(-1px)}.btn.primary:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 6px #0000004d inset,0 0 #06412f;background:linear-gradient(180deg,#0a6355,#085445)}.btn.danger{background:linear-gradient(180deg,#d0332a,#b42318 55%,#8f1c13);border-color:#0003;box-shadow:0 1px #ffffff3d inset,0 -2px #00000038 inset,0 3px #7a1710,0 8px 18px -6px #8f1c1380}.btn.danger:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 6px #0000004d inset}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none}.btn.ghost:hover:not(:disabled){background:var(--brand-soft);box-shadow:var(--depth-1);transform:translateY(-1px)}.btn.ghost:active:not(:disabled){transform:translateY(1px);box-shadow:var(--depth-press)}.btn.sm{padding:6px 12px;border-radius:9px}.icon-btn{border:1px solid rgba(16,25,42,.09);background:linear-gradient(180deg,#fff,#f1f5f9);box-shadow:var(--depth-1);transition:transform .09s var(--ease-pop),box-shadow .12s ease,color .12s ease}.icon-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--depth-2);color:var(--ink)}.icon-btn:active:not(:disabled){transform:translateY(2px);box-shadow:var(--depth-press)}.icon-btn.danger:hover:not(:disabled){background:linear-gradient(180deg,#fdecea,#f9d9d5);border-color:var(--danger)}.card,.stat,.quick-add,.category-tile,.bed-tile,.room-card,.chat-list,.chat-thread{box-shadow:var(--depth-1);transition:transform .16s var(--ease-pop),box-shadow .18s ease}.card{border:1px solid rgba(16,25,42,.08)}.quick-add:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--depth-2)}.stat:hover{transform:translateY(-2px);box-shadow:var(--depth-2)}.tab{border-radius:10px 10px 0 0;transition:transform .12s var(--ease-pop),box-shadow .14s ease,background .14s ease}.tab:hover{transform:translateY(-1px)}.tab.active{box-shadow:0 -2px 0 var(--brand) inset,0 -6px 14px -8px #0b6b5b80}.odontogram-tooth{transform:translateY(var(--reveal, 0px));transform-box:fill-box;transform-origin:center;transition:transform .16s var(--ease-pop),filter .16s ease}.odontogram-tooth.shown{transition:transform .18s var(--ease-pop),filter .16s ease}.odontogram-tooth:hover{transform:translateY(calc(var(--reveal, 0px) - 3px)) scale(1.08);filter:brightness(1.05) drop-shadow(0 6px 6px rgba(11,26,43,.28))}.odontogram-tooth:active{transform:translateY(var(--reveal, 0px)) scale(.96)}.odontogram-tooth.selected{transform:translateY(calc(var(--reveal, 0px) - 4px)) scale(1.12);filter:drop-shadow(0 9px 12px rgba(11,107,91,.45))}@keyframes depth-rise{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes depth-pop{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes depth-shine{0%{background-position:-140% 0}to{background-position:240% 0}}.card,.ward-block,.room-card,.setup-steps li,.attention-list li{animation:depth-rise .34s var(--ease-pop) both}.card:nth-child(2),.ward-block:nth-child(2){animation-delay:.04s}.card:nth-child(3),.ward-block:nth-child(3){animation-delay:.08s}.card:nth-child(4),.ward-block:nth-child(4){animation-delay:.12s}.card:nth-child(5),.ward-block:nth-child(5){animation-delay:.16s}.toast,.dialog{animation:depth-pop .26s var(--ease-pop) both}.btn.primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.34) 50%,transparent 70%);background-size:220% 100%;opacity:0;pointer-events:none;transition:opacity .2s ease}.btn.primary:hover:not(:disabled):after{opacity:1;animation:depth-shine .85s ease forwards}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.btn:hover:not(:disabled),.quick-add:hover:not(:disabled),.stat:hover,.odontogram-tooth:hover,.odontogram-tooth.selected{transform:none}}.ss-trigger{border-radius:10px;border:1px solid rgba(16,25,42,.14);background:linear-gradient(180deg,#f7f9fc,#fff 42%);box-shadow:0 1px #ffffffe6,0 1px 2px #10192a17 inset,0 -1px #ffffffb3 inset;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.ss-trigger:hover:not(:disabled){border-color:#0b6b5b8c;background:linear-gradient(180deg,#f2f7f5,#fff 45%)}.ss-trigger:focus-visible,.ss-trigger.open{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 1px 2px #10192a1a inset,0 0 0 3px #0b6b5b29}.ss-trigger.open .ss-arrow{color:var(--brand)}.ss-arrow{transition:transform .18s var(--ease-pop),color .14s ease;font-size:.72rem}.ss-trigger.open .ss-arrow{transform:rotate(180deg)}.ss-pop{border-radius:12px;border:1px solid rgba(16,25,42,.1);box-shadow:0 1px #ffffffe6 inset,0 4px #10192a0d,0 18px 40px -12px #10192a57,0 2px 8px #10192a14;padding:8px;animation:ss-drop .18s var(--ease-pop);transform-origin:top center}@keyframes ss-drop{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.ss-search{border-radius:9px;border:1px solid rgba(16,25,42,.14);background:linear-gradient(180deg,#f6f9fc,#fff 50%);box-shadow:0 1px 2px #10192a14 inset;transition:border-color .14s ease,box-shadow .14s ease}.ss-search:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 1px 2px #10192a0f inset,0 0 0 3px #0b6b5b24}.ss-list{max-height:268px;overscroll-behavior:contain}.ss-option{border-radius:8px;transition:background .11s ease,transform .11s var(--ease-pop),box-shadow .11s ease}.ss-option.active{background:var(--brand-soft);transform:translate(2px)}.ss-option.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.ss-option{position:relative}.ss-option.chosen{font-weight:700}.ss-option.chosen:after{content:"✓";margin-left:auto;color:var(--brand);font-weight:800;font-size:.82rem}.ss-option{display:flex;align-items:center;gap:8px}.ss-option-hint{margin-left:auto;font-size:.76rem;color:var(--ink-faint)}.ss-option.chosen .ss-option-hint{margin-left:8px}.ss-group{border-radius:6px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ss-more{margin:6px 2px 0;font-size:.73rem;color:var(--ink-faint)}.import-report{margin-top:14px}.import-stats{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));margin-bottom:12px}.import-stats>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);box-shadow:var(--depth-1)}.import-stats strong{font-size:1.15rem;line-height:1}.import-stats span{font-size:.72rem;color:var(--ink-faint)}.import-stats>div.ok{background:var(--ok-soft);border-color:var(--ok)}.import-stats>div.ok strong{color:var(--ok)}.import-stats>div.bad{background:var(--danger-soft);border-color:var(--danger)}.import-stats>div.bad strong{color:var(--danger)}.import-errors{margin-top:14px}.import-errors h4{margin:0 0 8px;font-size:.86rem}table.data.compact td,table.data.compact th{padding:5px 9px;font-size:.8rem}.import-errors{max-height:320px;overflow-y:auto}select,.field select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=time],input[type=search],input[type=tel],input[type=url],textarea,input:not([type]){font:inherit;color:var(--ink);border:1px solid rgba(16,25,42,.14);border-radius:10px;background-color:#fff;background-image:linear-gradient(180deg,#f7f9fc,#fff 44%);box-shadow:0 1px #ffffffe6,0 1px 2px #10192a17 inset;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:9px 34px 9px 11px;cursor:pointer;background-repeat:no-repeat;background-position:right 11px center;background-size:11px 7px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%237a869c' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E"),linear-gradient(180deg,#f7f9fc,#fff 44%)}select:hover:not(:disabled),input:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#0b6b5b80}select:focus,select:focus-visible,input:focus,input:focus-visible,textarea:focus,textarea:focus-visible{outline:none;border-color:var(--brand);background-color:#fff;box-shadow:0 1px 2px #10192a14 inset,0 0 0 3px #0b6b5b29}select:disabled,input:disabled,textarea:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.2)}select:invalid,select.placeholder{color:var(--ink-faint)}.row select,.row input[type=text],.row input[type=search],.row input[type=date]{min-height:36px}.card:has(.ss-pop),.card:has(.ss-pop) *{overflow:visible}.ss-pop{z-index:200;max-height:min(340px,60vh);overflow-y:auto;overscroll-behavior:contain}td .ss,.field .ss,.row .ss{position:relative}td:has(.ss-pop),tr:has(.ss-pop),.row:has(.ss-pop){overflow:visible}td:has(.ms-pop),tr:has(.ms-pop),.row:has(.ms-pop),.card:has(.ms-pop){overflow:visible}.ms-pop{z-index:60}.card:has(.ms-pop){position:relative;z-index:5}.table-scroll{overflow-x:auto;overflow-y:visible}.dialog .ss-pop,.sheet .ss-pop{z-index:260}.dialog:has(.ss-pop),.sheet:has(.ss-pop),.dialog:has(.ss-pop) *,.sheet:has(.ss-pop) *{overflow:visible}@media (max-width: 520px){.ss-pop{left:0;right:0;min-width:0}}.dept-name{display:inline-flex;align-items:center;gap:9px}.dept-icon{flex:none;width:30px;height:30px;display:grid;place-items:center;font-size:1rem;line-height:1;border-radius:9px;background:linear-gradient(180deg,#f4f7fb,#e8eef6);border:1px solid rgba(16,25,42,.08);box-shadow:var(--depth-1)}.link-btn{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--brand);font-weight:600;text-align:left}.link-btn:hover{text-decoration:underline}.link-btn:focus-visible{outline:none;box-shadow:var(--ring);border-radius:4px}.row-actions{display:inline-flex;gap:5px;justify-content:flex-end}.icon-btn{width:30px;height:30px;display:grid;place-items:center;font-size:.86rem;line-height:1;cursor:pointer;border-radius:9px;border:1px solid rgba(16,25,42,.1);background:linear-gradient(180deg,#fff,#f2f5f9);box-shadow:var(--depth-1);transition:transform .09s var(--ease-pop),box-shadow .12s ease,background .14s ease}.icon-btn:hover:not(:disabled){background:linear-gradient(180deg,#fff,#e9eef5);box-shadow:var(--depth-2);transform:translateY(-1px)}.icon-btn:active:not(:disabled){transform:translateY(1px);box-shadow:var(--depth-press)}.icon-btn:focus-visible{outline:none;box-shadow:var(--depth-1),var(--ring)}.icon-btn.danger{color:var(--danger);border-color:#b3261e47}.icon-btn.danger:hover:not(:disabled){background:var(--danger-soft)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.detail-list{margin:0 0 16px;display:grid;gap:10px}.detail-list>div{display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:baseline}.detail-list dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}.detail-list dd{margin:0}.detail-sub{margin:18px 0 8px;font-size:.86rem}textarea#rm-reason{min-height:84px;resize:vertical}.dock-toggle{position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);width:22px;height:46px;display:grid;place-items:center;cursor:pointer;border:1px solid var(--line);border-right:none;border-radius:10px 0 0 10px;background:var(--surface);color:var(--ink-soft);font-size:.9rem;line-height:1;box-shadow:-4px 0 12px -6px #00000038;transition:color .14s ease,background .14s ease,width .16s var(--ease-pop)}.dock-toggle:hover{color:var(--brand);background:var(--surface-2);width:26px}.dock-toggle:focus-visible{outline:none;box-shadow:var(--ring)}.dock-rail{transition:transform .22s var(--ease-pop),opacity .18s ease;transform-origin:right center}.dock-collapsed .dock-rail{transform:translate(110%);opacity:0;pointer-events:none;visibility:hidden}.dock-collapsed .dock-panel{display:none}.dock-collapsed .dock-toggle{right:0;border-radius:10px 0 0 10px}@media (max-width: 640px){.dock{top:42%}.dock-toggle{width:20px;height:40px}}@media (prefers-reduced-motion: reduce){.dock-rail,.dock-toggle{transition:none}}tr.row-clickable{cursor:pointer}tr.row-clickable:hover{background:var(--surface-2)}tr.row-clickable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand);background:var(--brand-soft)}@media (max-width: 640px){tr.row-clickable{cursor:default}}.row-actions .btn.sm{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;font-size:.76rem;white-space:nowrap}.dept-tab-add{flex:none;width:22px;height:22px;display:grid;place-items:center;margin-left:4px;border-radius:7px;border:1px solid rgba(16,25,42,.14);background:var(--surface);color:var(--ink-soft);font-size:.78rem;line-height:1;font-weight:700;cursor:pointer;opacity:.55;transition:opacity .14s ease,color .14s ease,background .14s ease,transform .1s var(--ease-pop)}.dept-tab:hover .dept-tab-add{opacity:1}.dept-tab-add:hover{color:var(--brand);background:var(--brand-soft);border-color:var(--brand);transform:scale(1.08)}.dept-tab-add:focus-visible{outline:none;box-shadow:var(--ring);opacity:1}.dept-panel-actions{display:flex;justify-content:flex-end;margin:0 0 12px}.dup-panel{border:1px solid var(--warn-line, rgba(180, 120, 20, .35));background:var(--warn-soft, #fdf8ec);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:16px}.dup-panel h4{margin:0 0 6px;font-size:.95rem}.dup-lead{margin:0 0 12px;font-size:.85rem;line-height:1.5}.dup-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.dup-hit{width:100%;text-align:left;cursor:pointer;font:inherit;display:grid;gap:3px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);transition:border-color .14s ease,box-shadow .14s ease,transform .1s var(--ease-pop)}.dup-hit:hover{border-color:var(--brand);box-shadow:var(--depth-2);transform:translateY(-1px)}.dup-hit:focus-visible{outline:none;box-shadow:var(--ring)}.dup-name{font-weight:650}.dup-meta{font-size:.78rem;color:var(--ink-soft)}.dup-reasons{font-size:.76rem;color:var(--ink-faint);font-style:italic}.dup-note{margin:12px 0 0;font-size:.78rem;color:var(--ink-soft)}.report-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.report-pick{text-align:left;cursor:pointer;font:inherit;display:grid;gap:5px;padding:13px 15px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);transition:border-color .14s ease,box-shadow .14s ease,transform .1s var(--ease-pop)}.report-pick:hover{border-color:var(--brand);box-shadow:var(--depth-2);transform:translateY(-1px)}.report-pick:focus-visible{outline:none;box-shadow:var(--ring)}.report-pick.active{border-color:var(--brand);background:var(--brand-soft);box-shadow:var(--depth-1)}.report-pick-title{font-weight:650}.report-pick-desc{font-size:.79rem;color:var(--ink-soft);line-height:1.45}.report-pick-meta{font-size:.72rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.report-filters{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.report-scroll{overflow-x:auto;max-width:100%}.report-table{min-width:640px}.report-table th{white-space:nowrap}.setup-grid{display:grid;gap:4px}.setup-row{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.setup-row:last-child{border-bottom:none}.setup-row.dirty{background:var(--brand-soft);border-radius:var(--radius-sm);padding:12px}.setup-control{flex:1;min-width:0}.setup-control .field{margin-bottom:4px}.setup-desc{margin:4px 0 0;font-size:.8rem;color:var(--ink-soft);line-height:1.45}.setup-source{margin:3px 0 0;font-size:.74rem;color:var(--ink-faint);font-style:italic}.setup-actions{flex:none;display:flex;gap:6px;align-items:center;padding-top:2px}.setup-toggle{display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:600}.setup-toggle input{width:17px;height:17px}@media (max-width: 640px){.setup-row{flex-direction:column;align-items:stretch}.setup-actions{justify-content:flex-end}}.sel{position:relative;width:100%}.sel-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:9px 12px;font:inherit;text-align:left;cursor:pointer;color:var(--ink);border-radius:var(--radius-sm);border:1px solid var(--line-strong, rgba(16, 25, 42, .16));background:var(--surface-inset, #fbfcfe);box-shadow:inset 0 1px 2px #10192a0f;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.sel-trigger:hover:not(:disabled){border-color:var(--brand)}.sel-trigger:focus-visible{outline:none;border-color:var(--brand);box-shadow:inset 0 1px 2px #10192a0f,var(--ring)}.sel-trigger.open{border-color:var(--brand);background:var(--surface)}.sel-trigger.placeholder .sel-value{color:var(--ink-faint)}.sel-trigger:disabled{opacity:.55;cursor:not-allowed}.sel-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-arrow{flex:none;color:var(--ink-soft);font-size:.7rem}.sel-clear{flex:none;width:18px;height:18px;display:grid;place-items:center;border-radius:999px;color:var(--ink-soft);font-size:.7rem}.sel-clear:hover{background:var(--surface-2);color:var(--ink)}.sel-clear:focus-visible{outline:none;box-shadow:var(--ring)}.sel-list{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 4px);max-height:260px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 18px 40px -16px #00000052;animation:selDrop .12s ease-out}@keyframes selDrop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sel-option{padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;line-height:1.35}.sel-option.active{background:var(--surface-2)}.sel-option.chosen{color:var(--brand);font-weight:600}.sel-option.chosen.active{background:var(--brand-soft)}.sel-option.disabled{opacity:.45;cursor:not-allowed}.sel-empty{padding:9px 10px;font-size:.85rem;color:var(--ink-faint)}@media (prefers-reduced-motion: reduce){.sel-list{animation:none}}.check-inline{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:500;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--depth-1);transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .1s var(--ease-pop)}.check-inline:hover{border-color:var(--brand);color:var(--ink);transform:translateY(-1px)}.check-inline:active{transform:translateY(1px);box-shadow:var(--depth-press)}.check-inline input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--brand);cursor:pointer}.check-inline:has(input:checked){background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink);font-weight:650}.check-inline:has(input:focus-visible){box-shadow:var(--depth-1),var(--ring)}.bed-actions,.ward-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.bed-actions .btn,.ward-actions .btn{min-height:32px}.detail-sub-row{display:flex;align-items:baseline;gap:10px;font-size:.82rem;color:var(--ink-faint);padding:4px 0 4px 12px;border-left:2px solid var(--line);margin:4px 0 8px}.detail-sub-row .k{font-weight:650;color:var(--ink-soft)}.tab-label{font-size:.64rem;font-weight:650;letter-spacing:.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tooth-hovercard{position:absolute;z-index:210;pointer-events:none;min-width:190px;max-width:260px;padding:10px 12px;border-radius:var(--radius);background:#fffffff7;border:1px solid var(--line);box-shadow:0 18px 40px -16px #10192a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:tooth-card-in .14s var(--ease-pop)}@keyframes tooth-card-in{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:none}}.tooth-hovercard .th-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.tooth-hovercard .th-num{font-family:var(--mono);font-size:1.05rem;font-weight:800;color:var(--ink)}.tooth-hovercard .th-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.78rem;padding:2px 0}.tooth-hovercard .th-row .k{color:var(--ink-faint)}.tooth-hovercard .th-row .v{color:var(--ink);font-weight:600;text-align:right}.tooth-hovercard .th-surfaces{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.tooth-hovercard .th-hint{margin-top:7px;padding-top:6px;border-top:1px dashed var(--line);font-size:.72rem;color:var(--ink-faint)}.tooth3d-scene{position:relative;width:100%;height:100%;min-height:260px;display:grid;place-items:center;perspective:900px;perspective-origin:50% 45%;cursor:grab;touch-action:none;background:radial-gradient(120% 80% at 50% 0%,#f8fbfd,#eef3f8 55%,#e3eaf2);border-radius:var(--radius);overflow:hidden}.tooth3d-scene.grabbing{cursor:grabbing}.tooth3d-stage{position:relative;transform-style:preserve-3d;transition:transform .12s ease-out;will-change:transform}.tooth3d-stage.animating{transition:transform .5s var(--ease-pop)}.tooth3d-body{position:relative;transform-style:preserve-3d}.tooth3d-layer{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden}.tooth3d-shadow{position:absolute;left:50%;bottom:-14px;transform:translate(-50%);width:70%;height:18px;border-radius:50%;background:radial-gradient(50% 50% at 50% 50%,rgba(16,25,42,.28),transparent 70%);filter:blur(2px)}.tooth3d-floor{position:absolute;left:50%;bottom:24px;transform:translate(-50%) rotateX(74deg);width:220px;height:220px;border-radius:50%;border:1px dashed rgba(16,25,42,.16);background:radial-gradient(50% 50% at 50% 50%,rgba(11,107,91,.1),transparent 72%)}.tooth3d-controls{position:absolute;top:10px;right:10px;z-index:3;display:flex;flex-direction:column;gap:6px}.tooth3d-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#fffffff0;color:var(--ink-soft);cursor:pointer;font-size:.95rem;line-height:1;box-shadow:var(--depth-1);transition:transform .1s var(--ease-pop),color .12s ease,border-color .12s ease}.tooth3d-btn:hover{color:var(--brand-ink);border-color:var(--brand);transform:translateY(-1px)}.tooth3d-btn:active{transform:translateY(1px);box-shadow:var(--depth-press)}.tooth3d-btn:focus-visible{outline:none;box-shadow:var(--depth-1),var(--ring)}.tooth3d-hint{position:absolute;left:10px;bottom:10px;z-index:3;display:flex;gap:6px;flex-wrap:wrap;font-size:.68rem;color:var(--ink-faint)}.tooth3d-hint span{background:#ffffffe6;border:1px solid var(--line);border-radius:999px;padding:2px 8px}.surface-picker{display:flex;flex-direction:column;gap:10px}.surface-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:stretch}.surface-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:62px;padding:8px 6px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:.72rem;font-weight:650;cursor:pointer;box-shadow:var(--depth-1);transition:transform .12s var(--ease-pop),background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.surface-btn .sv-face{font-size:1.15rem;line-height:1}.surface-btn:hover:not(:disabled){transform:translateY(-2px);border-color:var(--brand);color:var(--ink)}.surface-btn:active:not(:disabled){transform:translateY(1px);box-shadow:var(--depth-press)}.surface-btn:disabled{opacity:.4;cursor:not-allowed}.surface-btn.on{background:linear-gradient(180deg,var(--brand-soft),#d3ebe4);border-color:var(--brand);color:var(--brand-ink);box-shadow:var(--depth-2),0 0 0 3px #0b6b5b1f;animation:surface-pop .28s var(--ease-pop)}@keyframes surface-pop{0%{transform:scale(.94)}55%{transform:scale(1.04)}to{transform:scale(1)}}.surface-btn:focus-visible{outline:none;box-shadow:var(--depth-1),var(--ring)}.surface-summary{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.78rem;color:var(--ink-faint);min-height:24px}.surface-summary .tag{background:var(--brand-soft);color:var(--brand-ink);border-radius:999px;padding:2px 9px;font-weight:650;font-size:.74rem;animation:depth-pop .2s var(--ease-pop)}.tooth-sheet-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:18px;align-items:start}.tooth-sheet-form{min-width:0}.tooth-sheet-viewer{position:sticky;top:0;display:flex;flex-direction:column;gap:8px}.tooth-sheet-viewer-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.8rem;font-weight:700;color:var(--ink-soft)}@media (max-width: 760px){.tooth-sheet-grid{grid-template-columns:1fr;gap:14px}.tooth-sheet-viewer{order:-1;position:static}}.qmod{display:flex;flex-direction:column;gap:14px}.qmod-now{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:16px 18px;background:linear-gradient(135deg,#063f36,#0b6b5b 55%,#12907a);color:#eafff9;box-shadow:0 20px 44px -22px #063f36e6}.qmod-now:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 12% 0%,rgba(255,255,255,.22),transparent 60%);pointer-events:none}.qmod-now.ringing{animation:qmod-ring 1.1s ease-in-out 3}@keyframes qmod-ring{0%,to{box-shadow:0 20px 44px -22px #063f36e6}50%{box-shadow:0 0 0 6px #0b6b5b47,0 20px 44px -22px #063f36e6}}.qmod-now .lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;opacity:.82;font-weight:700}.qmod-now .num{font-size:3rem;font-weight:800;line-height:1.02;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.qmod-now .who{font-size:.95rem;font-weight:650;margin-top:2px}.qmod-now .meta{font-size:.78rem;opacity:.85}.qmod-now .actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.qmod-now .actions .btn{background:#ffffff24;border-color:#ffffff47;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.qmod-now .actions .btn:hover:not(:disabled){background:#ffffff3d}.qmod-now .actions .btn.primary{background:#fff;color:var(--brand-ink);border-color:transparent}.qmod-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width: 520px){.qmod-row{grid-template-columns:1fr}}.qmod-next{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--depth-1)}.qmod-next .tok{flex:none;width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn);font-weight:800;font-size:1.05rem}.qmod-next .body{flex:1;min-width:0}.qmod-next .nm{font-weight:650}.qmod-next .sub{font-size:.78rem;color:var(--ink-faint)}.qmod-waiting{display:flex;flex-direction:column;gap:8px}.qmod-waiting .wrow{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);animation:depth-rise .3s var(--ease-pop) both;transition:transform .12s var(--ease-pop),box-shadow .14s ease,border-color .14s ease}.qmod-waiting .wrow:hover{transform:translateY(-1px);box-shadow:var(--depth-1);border-color:var(--brand)}.qmod-waiting .wpos{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-soft);font-weight:700;font-size:.8rem}.qmod-waiting .wrow.up-next .wpos{background:var(--brand-soft);color:var(--brand-ink)}.qmod-waiting .wname{flex:1;min-width:0;font-weight:600}.qmod-waiting .weta{font-size:.76rem;color:var(--ink-faint);white-space:nowrap}.qmod-strip{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border-radius:var(--radius-lg);cursor:pointer;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);font:inherit;color:inherit;transition:transform .14s var(--ease-pop),box-shadow .16s ease,border-color .16s ease}.qmod-strip:hover{transform:translateY(-2px);box-shadow:var(--depth-2);border-color:var(--brand)}.qmod-strip:focus-visible{outline:none;box-shadow:var(--shadow),var(--ring)}.qmod-strip .big{flex:none;width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(140deg,#0b6b5b,#12907a);color:#fff;font-size:1.4rem;font-weight:800}.qmod-strip .txt{flex:1;min-width:0}.qmod-strip .t1{font-weight:700}.qmod-strip .t2{font-size:.8rem;color:var(--ink-faint)}.qmod-strip .go{flex:none;color:var(--brand);font-weight:700;font-size:.82rem}@media (prefers-reduced-motion: reduce){.tooth3d-stage,.tooth3d-stage.animating{transition:none}.qmod-now.ringing,.surface-btn.on,.tooth-hovercard{animation:none}}.edu-gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(158px,1fr))}.edu-card{position:relative;display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;cursor:pointer;padding:0;font:inherit;text-align:left;color:inherit;box-shadow:var(--shadow-sm);transition:transform .16s var(--ease-pop),box-shadow .18s ease,border-color .18s ease}.edu-card:hover{transform:translateY(-3px);box-shadow:var(--depth-2);border-color:var(--brand)}.edu-card:active{transform:translateY(0)}.edu-card:focus-visible{outline:none;box-shadow:var(--shadow),var(--ring)}.edu-card .thumb{position:relative;aspect-ratio:4 / 3;overflow:hidden}.edu-card .thumb svg{display:block;width:100%;height:100%}.edu-card .cap{padding:9px 11px 11px}.edu-card .cap .t{font-size:.84rem;font-weight:650;line-height:1.25}.edu-card .cap .s{font-size:.72rem;color:var(--ink-faint);margin-top:2px}.edu-card .zoom-hint{position:absolute;right:8px;top:8px;z-index:2;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#ffffffe6;border:1px solid var(--line);font-size:.8rem;color:var(--ink-soft);opacity:0;transition:opacity .16s ease}.edu-card:hover .zoom-hint,.edu-card:focus-visible .zoom-hint{opacity:1}.edu-viewer{position:relative;width:100%;height:min(62vh,520px);border-radius:var(--radius);overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#f8fbfd,#e6edf5);cursor:grab;touch-action:none}.edu-viewer.grabbing{cursor:grabbing}.edu-viewer .edu-canvas{position:absolute;left:50%;top:50%;transform-origin:center center;transition:transform .14s ease-out;will-change:transform}.edu-viewer .edu-canvas svg{display:block}.pending-pill{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:repeating-linear-gradient(135deg,#fff7ed,#fff7ed 6px,#ffedd5 6px,#ffedd5 12px);color:var(--warn);border:1px dashed var(--warn-line)}.pending-note{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:var(--radius);border:1px dashed var(--warn-line);background:#fffbf5;font-size:.82rem;color:var(--warn-ink);line-height:1.5}.pending-note .ico{flex:none}@media (max-width: 640px){.edu-gallery{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:10px}.tooth3d-scene{min-height:210px}}.print-only{display:none}@media print{@page{margin:14mm}.sidebar,.topbar,.tabbar,.dock,.drawer-scrim,.sheet-scrim,.dialog-scrim,.toast,.clinic-actionbar,.page-head .btn,.card .card-title .btn,.row .btn,button.btn{display:none!important}html,body,#root,.app-shell,.main,.content{display:block!important;height:auto!important;min-height:0!important;background:#fff!important;padding:0!important;margin:0!important;max-width:none!important}.print-only{display:block!important}.print-head{margin-bottom:14px;border-bottom:2px solid #10192a;padding-bottom:8px}.print-head h1{font-size:16pt;margin:0 0 4px}.print-head div{font-size:9.5pt;color:#47536b}.card{box-shadow:none!important;border:none!important;padding:0!important;margin:0 0 12px!important;break-inside:auto}.card .card-title{font-size:12pt;margin-bottom:8px}.report-scroll,.card{overflow:visible!important;max-height:none!important}table.data{width:100%;border-collapse:collapse;font-size:9pt}table.data th,table.data td{border-bottom:1px solid #dde3ea;padding:4px 6px}table.data thead{display:table-header-group}table.data tr{break-inside:avoid;page-break-inside:avoid}table.data.responsive thead{display:table-header-group!important}table.data.responsive td:before{display:none!important}.badge{border:1px solid #dde3ea;background:none!important;color:#10192a!important}a{color:#10192a;text-decoration:none}}.cam-wrap{display:flex;flex-direction:column;gap:12px}.cam-stage{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius);overflow:hidden;background:#0b1a2b;display:grid;place-items:center}.cam-stage video,.cam-stage img,.cam-stage canvas{width:100%;height:100%;object-fit:cover;display:block}.cam-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:#b8c4d4;font-size:.84rem;text-align:center;padding:20px}.cam-placeholder .ico{font-size:30px}.cam-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.cam-controls .btn{min-height:42px}.cam-error{font-size:.82rem;color:var(--warn)}.cam-thumb{width:84px;height:84px;border-radius:14px;object-fit:cover;border:2px solid var(--line);box-shadow:var(--shadow-sm)}.anatomy{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 820px){.anatomy{grid-template-columns:1fr}}.anatomy-stage-wrap{min-width:0}.anatomy-stage{position:relative;background:linear-gradient(160deg,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--line);border-radius:var(--radius-lg, var(--radius));overflow:hidden;touch-action:none;cursor:grab;min-height:300px;display:grid;place-items:center}.anatomy-stage.grabbing{cursor:grabbing}.anatomy-svg{width:100%;height:auto;max-height:380px;transition:transform .08s linear;-webkit-user-select:none;user-select:none}.anatomy-stage.grabbing .anatomy-svg{transition:none}.anatomy-part{cursor:pointer;outline:none}.anatomy-part>*{transition:opacity .16s ease,filter .16s ease,transform .16s ease}.anatomy-part:not(.active)>*{opacity:.62}.anatomy-part.active>*{opacity:1;filter:drop-shadow(0 3px 10px rgba(0,0,0,.28)) brightness(1.08)}.anatomy-part.selected>*{stroke-width:3.4}.anatomy-part:focus-visible>*{outline:none;filter:drop-shadow(0 0 0 var(--brand)) brightness(1.1)}.anatomy-tag{position:absolute;left:12px;bottom:12px;padding:5px 11px;border-radius:999px;background:#10192ad1;color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.01em;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.anatomy-zoom{position:absolute;right:10px;top:10px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.anatomy-side{min-width:0;display:flex;flex-direction:column;gap:12px}.anatomy-parts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.anatomy-part-btn{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.anatomy-part-btn:hover{border-color:var(--brand);transform:translate(2px)}.anatomy-part-btn.active{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.anatomy-part-btn .n{font-weight:650;font-size:.88rem;color:var(--ink)}.anatomy-part-btn .s{font-size:.78rem;color:var(--ink-3);line-height:1.35}.anatomy-detail{border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface);padding:12px 14px}.anatomy-detail h3{margin:0 0 4px;font-size:.95rem}.anatomy-detail .lead{margin:0 0 8px;font-weight:600;color:var(--brand-ink);font-size:.86rem}.anatomy-detail p{margin:0;font-size:.84rem;line-height:1.55;color:var(--ink-2)}@media (max-width: 640px){.anatomy-stage{min-height:240px}.anatomy-svg{max-height:260px}.anatomy-tag{font-size:.72rem;padding:4px 9px}}@media print{.anatomy-zoom,.anatomy-tag{display:none!important}.anatomy{grid-template-columns:1fr}.anatomy-part:not(.active)>*{opacity:1}}.field-label{display:block;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:5px}.radio-row{display:flex;gap:8px;flex-wrap:wrap}.radio-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer;font-size:.84rem;font-weight:600;color:var(--ink-2);transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.radio-chip:hover{border-color:var(--brand)}.radio-chip.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink);box-shadow:0 1px 0 var(--brand)}.radio-chip input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.radio-chip:focus-within{box-shadow:var(--ring)}.shade-dot{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--line);box-shadow:inset 0 -2px 3px #10192a24}.stock-alert{display:flex;align-items:flex-start;gap:9px;margin:6px 0 0;padding:8px 11px;border:1px solid var(--danger);border-left:4px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:.8rem;line-height:1.45}.stock-alert .ico{font-size:.95rem;line-height:1.2}.stock-alert strong{font-weight:700}.stock-alert .row-actions{margin-top:6px}.mark-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.mark-colours{display:flex;gap:5px;align-items:center}.mark-swatch{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);cursor:pointer;padding:0;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.mark-swatch:hover{transform:scale(1.12)}.mark-swatch.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--brand)}.mark-swatch:focus-visible{outline:none;box-shadow:var(--ring)}@media print{.mark-toolbar{display:none!important}}.table-scroll{overflow-x:auto}.stock-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap}tr.stock-ok td,.stock-pill.stock-ok{background:var(--ok-soft);color:var(--ok)}tr.stock-low td,.stock-pill.stock-low{background:var(--warn-soft);color:var(--warn-ink)}tr.stock-short td,.stock-pill.stock-short{background:#fdeed6;color:#8a4b00}tr.stock-out td,.stock-pill.stock-out{background:var(--danger-soft);color:var(--danger)}.stock-pill.stock-ok{background:var(--ok-soft)}.stock-pill.stock-low{background:var(--warn-soft)}.stock-pill.stock-short{background:#fdeed6}.stock-pill.stock-out{background:var(--danger-soft)}.summary-rows{display:flex;flex-direction:column;gap:6px;max-width:380px}.summary-rows>div{display:flex;justify-content:space-between}.summary-rows>div.total{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-weight:700;font-size:1.05rem}.plain-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.muted.small,.small{font-size:.8rem}.ms{position:relative;width:100%}.ms-control{position:relative;display:flex;align-items:center}.ms-input{width:100%;padding-right:56px}.ms-clear,.ms-arrow{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:.95rem;color:var(--ink-soft);line-height:1}.ms-clear{right:30px;cursor:pointer;border:none;background:none;padding:2px 4px;border-radius:6px;font-size:1.05rem}.ms-clear:hover{background:var(--surface-2, #eef2f7);color:var(--ink)}.ms-pop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid rgba(16,25,42,.14);border-radius:12px;box-shadow:0 12px 30px #10192a29;overflow:hidden;max-height:min(340px,60vh);display:flex;flex-direction:column}.ms-hint{margin:0;padding:8px 12px;font-size:.72rem;color:var(--ink-soft);background:var(--surface-2, #f5f8fb);border-bottom:1px solid rgba(16,25,42,.07)}.ms-empty{margin:0;padding:14px 12px;font-size:.85rem;color:var(--ink-soft)}.ms-list{list-style:none;margin:0;padding:4px;overflow-y:auto}.ms-option{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:8px;cursor:pointer}.ms-option.active{background:var(--surface-2, #eef2f7)}.ms-option.chosen{background:#0b6b5b1a}.ms-name{font-size:.9rem;font-weight:600;color:var(--ink)}.ms-sub{font-size:.75rem;color:var(--ink-soft)}.rx-allergy-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.rx-allergy-chip.sev-mild{border-color:var(--warn)}.rx-allergy-chip.sev-moderate{border-color:#d97706;background:#fff7ed}.rx-allergy-chip.sev-severe,.rx-allergy-chip.sev-life_threatening{border-color:var(--danger, #c0392b);background:#fef2f2;color:#b91c1c}.rx-allergy-form{margin-top:10px;padding:10px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid rgba(16,25,42,.1);display:grid;gap:8px}.rx-allergy-form label{display:flex;flex-direction:column;gap:3px;font-size:.72rem;font-weight:650;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}.rx-allergy-form-actions{display:flex;justify-content:flex-end;gap:8px}.rx-item-picker{flex:1;min-width:0}.hours-day{border-top:1px solid var(--line);padding:10px 0}.hours-day:first-of-type{border-top:none}.hours-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.hours-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.hours-row input[type=time]{width:auto}.booking-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.booking-filters .search{flex:1 1 220px;min-width:0}.booking-filters .select,.booking-filters select{flex:0 0 auto}.booking-doctor-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.booking-doctor-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;cursor:pointer}.booking-doctor-row:hover{border-color:var(--brand);background:var(--surface-2)}.booking-doctor-id{display:flex;flex-direction:column;flex:1;min-width:0}.booking-doctor-id strong{font-size:.95rem}.booking-doctor-id .muted{font-size:.8rem}.booking-doctor-fee{font-weight:600;white-space:nowrap}@media (max-width: 640px){.booking-filters{flex-direction:column;align-items:stretch}.booking-doctor-row{flex-wrap:wrap}}.doc-roster{margin:10px 0 12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.doc-roster.empty{background:var(--warn-soft, #fff8e6)}.doc-roster-none{font-size:.8rem;color:var(--ink-soft)}.doc-roster-days{display:flex;gap:6px;margin-bottom:8px}.roster-day{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1}.roster-day-name{font-size:.68rem;font-weight:600;color:var(--ink-faint);text-transform:uppercase}.roster-day-dot{width:100%;height:4px;border-radius:3px;background:var(--line)}.roster-day.on .roster-day-dot{background:var(--brand)}.roster-day.on .roster-day-name{color:var(--ink)}.roster-day.today .roster-day-name{color:var(--brand)}.roster-day.today .roster-day-dot{outline:2px solid var(--brand);outline-offset:1px}.doc-roster-hours{display:flex;flex-direction:column;gap:3px}.roster-line{display:flex;gap:8px;font-size:.8rem}.roster-line-day{flex:0 0 34px;font-weight:600;color:var(--ink-soft)}.roster-line-times{color:var(--ink)}.doc-roster-foot{margin-top:8px;padding-top:7px;border-top:1px dashed var(--line);font-size:.75rem;color:var(--ink-soft)}.booking-doctor-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.doc-roster-compact{font-size:.72rem;color:var(--ink-soft);white-space:nowrap}.doc-profile-roster{margin-top:10px}.doc-profile-roster>.k{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-bottom:2px}.mp-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.mp-filters .field{margin:0}.mp-filters select{width:100%}.mp-summary{margin:10px 0 8px}.mp-list{display:flex;flex-direction:column;gap:6px}.mp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;cursor:pointer}.mp-row:hover{border-color:var(--brand);background:var(--surface-2)}.mp-row-body{display:flex;flex-direction:column;min-width:0}.mp-row-add{color:var(--brand);font-weight:600;font-size:.82rem;white-space:nowrap}.rx-item-picker{display:flex;gap:8px;align-items:center}.rx-item-picker .ms{flex:1;min-width:0}.rx-browse{white-space:nowrap}@media (max-width: 640px){.mp-filters{grid-template-columns:1fr}.rx-item-picker{flex-wrap:wrap}}.pp-search{display:flex;gap:10px;align-items:center}.pp-search .search{flex:1;min-width:0}.pp-find{white-space:nowrap}.pp-summary{margin:10px 0 8px}.pp-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.pp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;cursor:pointer}.pp-row:hover{border-color:var(--brand);background:var(--surface-2)}.pp-row-body{display:flex;flex-direction:column;min-width:0}.pp-row-pick{color:var(--brand);font-weight:600;font-size:.82rem;white-space:nowrap}.pp-chosen{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--brand);border-radius:10px;background:var(--surface-2)}.pp-chosen-body{display:flex;flex-direction:column;min-width:0}@media (max-width: 640px){.pp-search{flex-direction:column;align-items:stretch}}.rx-cost-scroll{overflow-x:auto}.rx-cost-scroll table{width:100%}.rx-cost-scroll th.num,.rx-cost-scroll td.num{text-align:right;font-variant-numeric:tabular-nums}.rx-cost-total td{border-top:2px solid var(--line);padding-top:10px}.rx-cost-flag{color:var(--warn, #b26a00);font-size:.78rem}.sp{position:relative}.sp-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;cursor:pointer}.sp-trigger:hover{border-color:var(--brand)}.sp-trigger.open{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft, rgba(37,99,235,.12))}.sp-trigger.placeholder .sp-trigger-text strong{color:var(--ink-soft);font-weight:500}.sp-trigger-icon{font-size:1.1rem}.sp-trigger-text{display:flex;flex-direction:column;flex:1;min-width:0}.sp-arrow{color:var(--ink-faint)}.sp-clear{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--ink-soft);font-size:1rem;line-height:1}.sp-clear:hover{background:var(--surface-2);color:var(--ink)}.sp-pop{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 6px);padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px #0f172a29;max-height:60vh;overflow-y:auto}@media (max-width: 640px){.sp-pop{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-height:70vh}}.print-foot{margin-top:22px;border-top:1px solid #10192a;padding-top:10px;font-size:9pt}.print-sign{margin-top:40px;text-align:right}
