:root{--font-ui:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display:"Instrument Serif", "Iowan Old Style", Georgia, serif;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--dur:.18s;--header-h:56px;--ruler-h:44px;--dock-h:64px}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f3ef;--bg-grid:#10141809;--surface:#fff;--surface-2:#fafaf8;--surface-3:#f0efea;--sunken:#ebe9e3;--line:#e4e2dc;--line-strong:#d3d0c7;--ink:#101418;--ink-2:#4d535a;--ink-3:#868b91;--ink-inv:#f7f6f2;--accent:#4b32e0;--accent-2:#6d58f2;--accent-ink:#fff;--accent-soft:#ecebff;--accent-line:#c9c2ff;--focus:#4b32e059;--ok:#12805c;--ok-soft:#e3f4ec;--warn:#b26a00;--warn-soft:#fbf0dc;--danger:#c8322a;--danger-soft:#fbe6e3;--info:#0b78a3;--info-soft:#e1f2f8;--neutral-soft:#eeede8;--shadow-1:0 1px 0 #10141808, 0 1px 2px #1014180d;--shadow-2:0 2px 4px #1014180a, 0 8px 24px -6px #1014181a;--shadow-3:0 24px 64px -12px #10141847, 0 4px 12px #10141814;--scrim:#10141861;--t-first_visit:#4b32e0;--t-check:#5a6b7d;--t-hygiene:#0b8fb3;--t-treatment:#2f6fde;--t-endo:#b0458f;--t-surgery:#c8322a;--t-implant:#8a5a14;--t-prosthesis:#7a4fd0;--t-ortho:#0f8f74;--t-aesthetic:#d0607a;--t-urgent:#e04b1a;--t-consult:#6b7280;--tooth-enamel:#fbfaf6;--tooth-edge:#b9b5aa;--tooth-root:#ece6d6;--c-caries:#d0412f;--c-filling:#2f6fde;--c-crown:#c9a227;--c-implant:#5c6773;--c-missing:#b9b5aa;--c-endo:#b0458f;--c-planned:#e07b12;--c-completed:#12805c;--c-lesion:#8f2d1f;--c-veneer:#7fb6d8;--c-bridge:#a07d1c;--c-prosthesis:#7a4fd0}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0d11;--bg-grid:#e8eaed08;--surface:#11151b;--surface-2:#151a21;--surface-3:#1a2029;--sunken:#0d1015;--line:#222934;--line-strong:#2f3845;--ink:#e9ebee;--ink-2:#a3aab4;--ink-3:#6d7581;--ink-inv:#0a0d11;--accent:#8b7cff;--accent-2:#a597ff;--accent-ink:#0b0820;--accent-soft:#1d1a3a;--accent-line:#3a3375;--focus:#8b7cff73;--ok:#3cc496;--ok-soft:#0f2a21;--warn:#f0ae3c;--warn-soft:#2d2210;--danger:#ff6b5e;--danger-soft:#34140f;--info:#4cc0ea;--info-soft:#0d2633;--neutral-soft:#1a2029;--shadow-1:0 1px 0 #0000004d;--shadow-2:0 8px 24px -6px #0000008c;--shadow-3:0 30px 80px -10px #000000bf, 0 0 0 1px #ffffff0a;--scrim:#030508a8;--t-first_visit:#8b7cff;--t-check:#8b9bad;--t-hygiene:#3fc0e3;--t-treatment:#5e97ff;--t-endo:#e073c1;--t-surgery:#ff6b5e;--t-implant:#d9a650;--t-prosthesis:#a98bff;--t-ortho:#34c8a5;--t-aesthetic:#ff8fa8;--t-urgent:#ff7a45;--t-consult:#9aa1ab;--tooth-enamel:#e9e6dc;--tooth-edge:#8d887c;--tooth-root:#57524a;--c-caries:#ff6b5e;--c-filling:#5e97ff;--c-crown:#e8c24a;--c-implant:#9aa6b3;--c-missing:#4a4a44;--c-endo:#e073c1;--c-planned:#ffa040;--c-completed:#3cc496;--c-lesion:#ff8a6a;--c-veneer:#8fd0f5;--c-bridge:#d9b44a;--c-prosthesis:#a98bff}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;padding:0}body{font-family:var(--font-ui);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01", "cv11";font-size:14px;line-height:1.45;overflow-x:hidden}#root{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img,svg{display:block}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.num{font-variant-numeric:tabular-nums}.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.danger-t{color:var(--danger)}.ok-t{color:var(--ok)}.warn-t{color:var(--warn)}.accent-t{color:var(--accent)}.nowrap{white-space:nowrap}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:padding-box;border:3px solid #0000;border-radius:10px}.row{align-items:center;gap:8px;min-width:0;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.top{align-items:flex-start}.col{flex-direction:column;gap:8px;min-width:0;display:flex}.gap-4{gap:4px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.grow{flex:auto;min-width:0}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1100px){.g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:none}}@keyframes slide-l{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.rise{animation:rise .32s var(--ease) both}.stagger>*{animation:rise .36s var(--ease) both}.stagger>:nth-child(2){animation-delay:30ms}.stagger>:nth-child(3){animation-delay:60ms}.stagger>:nth-child(4){animation-delay:90ms}.stagger>:nth-child(5){animation-delay:.12s}.stagger>:nth-child(6){animation-delay:.15s}.stagger>:nth-child(n+7){animation-delay:.18s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}@media print{body{background:#fff}.no-print{display:none!important}}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:500}.eyebrow b{color:var(--ink-2);font-weight:500}.h-page{font-family:var(--font-display);letter-spacing:-.02em;font-size:40px;font-weight:400;line-height:1.02}.h-section{letter-spacing:-.01em;font-size:15px;font-weight:600}@media (max-width:720px){.h-page{font-size:32px}}.page{max-width:1680px;animation:fade-in .22s var(--ease);margin:0 auto;padding:24px 28px 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head .col{gap:6px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:900px){.page{padding:18px 16px calc(var(--dock-h) + 32px)}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);min-width:0}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:46px;padding:12px 16px;display:flex}.panel-head .eyebrow{align-items:center;gap:8px;display:inline-flex}.panel-body{padding:16px}.panel-body.tight{padding:8px}.panel-body.flush{padding:0}.panel.inset{background:var(--surface-2);box-shadow:none}.panel-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:10px 16px;display:flex}.count-badge{font-family:var(--font-mono);background:var(--surface-3);color:var(--ink-2);letter-spacing:0;border-radius:99px;padding:1px 6px;font-size:10.5px}.btn{--b-bg:var(--surface);--b-ink:var(--ink);--b-line:var(--line-strong);border-radius:var(--r-sm);background:var(--b-bg);height:34px;color:var(--b-ink);border:1px solid var(--b-line);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform 90ms var(--ease), box-shadow var(--dur) var(--ease);box-shadow:var(--shadow-1);justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.45;pointer-events:none}.btn svg{flex:none;width:15px;height:15px}.btn.primary{--b-bg:var(--ink);--b-ink:var(--ink-inv);--b-line:var(--ink)}.btn.primary:hover{background:color-mix(in srgb, var(--ink) 86%, var(--accent))}.btn.accent{--b-bg:var(--accent);--b-ink:var(--accent-ink);--b-line:var(--accent);box-shadow:0 1px 0 #fff3 inset, 0 6px 16px -6px var(--focus)}.btn.accent:hover{background:var(--accent-2)}.btn.ghost{--b-bg:transparent;--b-line:transparent;box-shadow:none}.btn.ghost:hover{background:var(--surface-3)}.btn.danger{--b-ink:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{height:28px;padding:0 10px;font-size:12.5px}.btn.xs{border-radius:5px;gap:5px;height:24px;padding:0 8px;font-size:12px}.btn.xs svg{width:13px;height:13px}.btn.lg{border-radius:var(--r-md);height:42px;padding:0 18px;font-size:14px}.btn.icon{width:34px;padding:0}.btn.icon.sm{width:28px}.btn.icon.xs{width:24px}.btn.block{width:100%}.btn .spin{animation:.8s linear infinite spin}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>label,.field-label{color:var(--ink-2);justify-content:space-between;gap:8px;font-size:12px;font-weight:500;display:flex}.field-hint{color:var(--ink-3);font-size:11.5px}.field-error{color:var(--danger);font-size:11.5px}.input,.select,.textarea{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);width:100%;height:36px;color:var(--ink);transition:border-color var(--dur), box-shadow var(--dur), background var(--dur);min-width:0;padding:0 11px;font-size:13.5px}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:hover,.select:hover,.textarea:hover{border-color:color-mix(in srgb, var(--line-strong) 60%, var(--ink-3))}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus);outline:none}.textarea{resize:vertical;height:auto;min-height:84px;padding:9px 11px;line-height:1.45}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}.input.sm,.select.sm{height:30px;font-size:12.5px}.input.mono{font-family:var(--font-mono)}.input-group{align-items:center;display:flex;position:relative}.input-group>svg{width:15px;height:15px;color:var(--ink-3);pointer-events:none;position:absolute;left:10px}.input-group>.input{padding-left:32px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid .span-2{grid-column:span 2}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.three .span-3{grid-column:span 3}@media (max-width:640px){.form-grid,.form-grid.three{grid-template-columns:minmax(0,1fr)}.form-grid .span-2,.form-grid.three .span-3{grid-column:auto}}.form-section{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border-top:1px dashed var(--line);grid-column:1/-1;margin-top:4px;padding-top:6px;font-size:10.5px}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.check input{appearance:none;border:1px solid var(--line-strong);background:var(--surface);width:16px;height:16px;transition:all var(--dur);border-radius:4px;place-content:center;margin:0;display:grid}.check input:checked{background:var(--accent);border-color:var(--accent)}.check input:checked:after{content:"";border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);width:8px;height:4px;transform:rotate(-45deg)translate(1px,-1px)}.switch{appearance:none;background:var(--line-strong);width:34px;height:20px;transition:background var(--dur);cursor:pointer;border-radius:99px;flex:none;margin:0;position:relative}.switch:after{content:"";width:16px;height:16px;transition:transform .22s var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(14px)}.seg{background:var(--surface-3);border:1px solid var(--line);border-radius:9px;gap:2px;padding:3px;display:inline-flex;position:relative}.seg button{height:28px;color:var(--ink-2);transition:all var(--dur) var(--ease);white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;font-weight:500;display:inline-flex}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1), 0 0 0 1px var(--line)}.seg button svg{width:14px;height:14px}.seg.sm button{height:24px;padding:0 8px;font-size:12px}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:2px;display:flex;position:relative;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--ink-2);white-space:nowrap;transition:color var(--dur);background:0 0;border:0;align-items:center;gap:7px;padding:10px 12px 11px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.tab:hover,.tab[aria-selected=true]{color:var(--ink)}.tab[aria-selected=true]:after{content:"";background:var(--accent);border-radius:2px;height:2px;animation:.2s fade-in;position:absolute;bottom:-1px;left:10px;right:10px}.tab .count-badge{font-size:10px}.tab svg{opacity:.8;width:14px;height:14px}.pill{--p:var(--ink-3);--p-bg:var(--neutral-soft);height:22px;color:var(--p);background:var(--p-bg);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:0 9px 0 8px;font-size:11.5px;font-weight:500;line-height:1;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.pill.nodot:before{display:none}.pill.live:before{animation:1.4s infinite pulse}.pill.ok{--p:var(--ok);--p-bg:var(--ok-soft)}.pill.warn{--p:var(--warn);--p-bg:var(--warn-soft)}.pill.danger{--p:var(--danger);--p-bg:var(--danger-soft)}.pill.info{--p:var(--info);--p-bg:var(--info-soft)}.pill.accent{--p:var(--accent);--p-bg:var(--accent-soft)}.pill.neutral{--p:var(--ink-2);--p-bg:var(--neutral-soft)}.pill.lg{height:26px;padding:0 11px 0 10px;font-size:12.5px}.tag{border:1px solid var(--line);background:var(--surface-2);height:22px;color:var(--ink-2);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;display:inline-flex}.tag.tooth{font-family:var(--font-mono);height:20px;color:var(--ink);border-color:var(--line-strong);padding:0 6px;font-size:11px}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.alert-strip{border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);letter-spacing:.02em;border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;font-weight:600;display:flex}.alert-strip.warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb, var(--warn) 25%, transparent)}.alert-strip.info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb, var(--info) 25%, transparent)}.alert-strip svg{flex:none;width:16px;height:16px}.table-wrap{min-width:0;overflow:auto}table.table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.table th{z-index:1;text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:500;font-family:var(--font-mono);padding:9px 12px;position:sticky;top:0}.table th.sortable{cursor:pointer}.table th.sortable:hover{color:var(--ink)}.table th .sort{opacity:.8;margin-left:4px;display:inline-block}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.table tbody tr{transition:background .12s}.table tbody tr.clickable{cursor:pointer}.table tbody tr:hover{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:0}.table td.r,.table th.r{text-align:right}.table td.c,.table th.c{text-align:center}.table .sub{color:var(--ink-3);font-size:12px}.table-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.table-foot{border-top:1px solid var(--line);color:var(--ink-3);justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.avatar{--a:var(--accent);width:32px;height:32px;color:var(--a);background:color-mix(in srgb, var(--a) 13%, var(--surface));border:1px solid color-mix(in srgb, var(--a) 24%, transparent);letter-spacing:0;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.sm{width:24px;height:24px;font-size:10px}.avatar.lg{width:56px;height:56px;font-size:18px}.avatar.xl{border-radius:22px;width:88px;height:88px;font-size:28px}.avatar-stack{display:inline-flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface);margin-left:-6px}.avatar-stack .avatar:first-child{margin-left:0}.progress{background:var(--surface-3);border-radius:99px;height:6px;position:relative;overflow:hidden}.progress>span{background:var(--accent);border-radius:inherit;transition:width .6s var(--ease);position:absolute;inset:0 auto 0 0}.progress.ok>span{background:var(--ok)}.progress.warn>span{background:var(--warn)}.progress.lg{height:10px}.ticks{gap:2px;display:flex}.ticks>i{background:var(--surface-3);border-radius:2px;flex:1;height:14px;transition:background .3s}.ticks>i.on{background:var(--accent)}.ticks>i.now{background:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);transform:scaleY(1.25)}.scrim{background:var(--scrim);-webkit-backdrop-filter:blur(3px);z-index:80;animation:fade-in .16s var(--ease);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:min(640px,100%);max-height:min(88dvh,920px);box-shadow:var(--shadow-3);animation:pop .24s var(--ease) both;flex-direction:column;display:flex;overflow:hidden}.modal.wide{width:min(920px,100%)}.modal.xwide{width:min(1180px,100%)}.modal.narrow{width:min(440px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px 14px;display:flex}.modal-head h2{font-size:18px;font-weight:600}.modal-head .eyebrow{margin-bottom:4px;display:block}.modal-body{flex:1;padding:18px 22px 22px;overflow:auto}.modal-foot{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 22px;display:flex}.modal-foot .left{align-items:center;gap:8px;margin-right:auto;display:flex}@media (max-width:640px){.scrim{place-items:end stretch;padding:0}.modal,.modal.wide,.modal.xwide,.modal.narrow{width:100%;max-height:94dvh;animation:slide-up .28s var(--ease) both;border-radius:20px 20px 0 0}}.drawer-scrim{place-items:stretch end;padding:0}.drawer{background:var(--surface);border-left:1px solid var(--line);width:min(560px,100vw);height:100dvh;box-shadow:var(--shadow-3);animation:slide-l .26s var(--ease) both;flex-direction:column;display:flex}.drawer.wide{width:min(820px,100vw)}.toasts{z-index:120;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{pointer-events:auto;background:var(--ink);min-width:260px;max-width:420px;color:var(--ink-inv);box-shadow:var(--shadow-3);animation:pop .26s var(--ease-spring) both;border-radius:12px;align-items:flex-start;gap:10px;padding:11px 14px;font-size:13px;display:flex}.toast svg{flex:none;width:16px;height:16px;margin-top:1px}.toast.ok svg{color:#4ad8a5}.toast.error svg{color:#ff8a80}.toast.warn svg{color:#ffc35e}@media (max-width:900px){.toasts{bottom:calc(var(--dock-h) + 16px);left:12px;right:12px}.toast{max-width:none}}.menu{z-index:100;background:var(--surface);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow-3);animation:pop .14s var(--ease) both;border-radius:12px;max-height:70vh;padding:5px;position:fixed;overflow:auto}.menu-item{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;padding:7px 9px;font-size:13px;display:flex}.menu-item:hover,.menu-item[data-active=true]{background:var(--surface-3)}.menu-item svg{width:15px;height:15px;color:var(--ink-3)}.menu-item.danger{color:var(--danger)}.menu-sep{background:var(--line);height:1px;margin:5px 2px}.menu-label{padding:6px 9px 3px}.empty{text-align:center;color:var(--ink-3);flex-direction:column;align-items:center;gap:8px;padding:36px 16px;font-size:13px;display:flex}.empty svg{opacity:.6;width:28px;height:28px}.empty b{color:var(--ink-2);font-size:14px;font-weight:500}.skeleton{background:linear-gradient(90deg, var(--surface-3) 0%, var(--surface-2) 50%, var(--surface-3) 100%);background-size:200% 100%;border-radius:6px;animation:1.4s linear infinite shimmer}.kbd{font-family:var(--font-mono);border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:10.5px;line-height:1.4}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:10px 16px;transition:background .12s;display:flex}.list-item:last-child{border-bottom:0}.list-item.clickable{cursor:pointer}.list-item.clickable:hover{background:var(--surface-2)}.list-item .title{font-size:13.5px;font-weight:500}.list-item .meta{color:var(--ink-3);font-size:12px}.figure{flex-direction:column;gap:2px;display:flex}.figure .n{font-family:var(--font-display);letter-spacing:-.03em;font-size:44px;line-height:.95}.figure .l{color:var(--ink-2);font-size:12px}.figure.sm .n{font-size:30px}.kv{grid-template-columns:minmax(110px,38%) 1fr;gap:8px 14px;font-size:13px;display:grid}.kv dt{color:var(--ink-3)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.divider{background:var(--line);height:1px;margin:12px 0}.hairline-grid{background-image:linear-gradient(var(--bg-grid) 1px, transparent 1px), linear-gradient(90deg, var(--bg-grid) 1px, transparent 1px);background-size:24px 24px}.chip-select{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);height:28px;color:var(--ink-2);transition:all var(--dur) var(--ease);border-radius:99px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;display:inline-flex}.chip:hover{color:var(--ink);border-color:var(--ink-3)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--ink-inv)}.chip svg{width:13px;height:13px}.tooltip{z-index:140;pointer-events:none;background:var(--ink);color:var(--ink-inv);box-shadow:var(--shadow-2);border-radius:7px;max-width:280px;padding:6px 9px;font-size:12px;animation:.12s fade-in;position:fixed}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;color:var(--ink-3);transition:all var(--dur);background:var(--surface-2);cursor:pointer;padding:26px}.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone svg{width:26px;height:26px;margin:0 auto 8px}.notice{color:var(--ink-3);border-left:2px solid var(--line-strong);padding:4px 0 4px 10px;font-size:12px}.row>.progress{flex:auto;min-width:60px}.shell{flex-direction:column;min-height:100dvh;display:flex}.hdr{z-index:60;height:var(--header-h);background:var(--bg);-webkit-backdrop-filter:saturate(1.4)blur(14px);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:0 18px 0 16px;display:grid;position:sticky;top:0}.hdr-left{align-items:center;gap:14px;min-width:0;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:9px;font-size:16px;font-weight:600;display:flex}.brand-mark{background:var(--ink);border-radius:9px;place-items:center;width:30px;height:30px;display:grid;box-shadow:inset 0 0 0 1px #ffffff0f}.brand-mark svg{width:20px;height:20px}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:23px;font-weight:400}.brand-name i{color:var(--accent);font-style:italic}.clinic-switch{border:1px solid var(--line-strong);background:var(--surface);border-radius:99px;align-items:center;gap:8px;max-width:220px;height:32px;padding:0 10px 0 9px;font-size:12.5px;font-weight:500;display:inline-flex}.clinic-switch .dot{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent)}.clinic-switch:hover{border-color:var(--ink-3)}.search-trigger{border:1px solid var(--line);background:var(--surface);width:min(520px,100%);height:36px;color:var(--ink-3);box-shadow:var(--shadow-1);transition:border-color var(--dur), box-shadow var(--dur);border-radius:10px;justify-self:center;align-items:center;gap:9px;padding:0 8px 0 12px;font-size:13px;display:flex}.search-trigger:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}.search-trigger svg{width:15px;height:15px}.search-trigger .grow{text-align:left}.hdr-right{align-items:center;gap:6px;display:flex}.clock{font-family:var(--font-mono);color:var(--ink-2);border-right:1px solid var(--line);white-space:nowrap;align-items:center;gap:8px;margin-right:4px;padding:0 10px;font-size:12px;display:flex}.clock b{color:var(--ink);font-size:13px;font-weight:500}.user-chip{background:0 0;border:0;border-radius:99px;align-items:center;gap:8px;height:36px;padding:0 4px;display:flex}.user-chip:hover{background:var(--surface-3)}.user-chip .who{text-align:left;flex-direction:column;line-height:1.15;display:flex}.user-chip .who b{font-size:12.5px;font-weight:500}.user-chip .who span{color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.ruler{top:var(--header-h);z-index:59;height:var(--ruler-h);background:var(--bg);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--line);position:sticky;box-shadow:0 6px 12px -10px #1014182e}.ruler:before{content:"";pointer-events:none;background-image:repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px 8px);opacity:.7;height:5px;position:absolute;top:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.ruler-track{scrollbar-width:none;align-items:stretch;gap:0;height:100%;padding:0 12px;display:flex;position:relative;overflow-x:auto}.ruler-track::-webkit-scrollbar{display:none}.ruler a{height:100%;color:var(--ink-2);white-space:nowrap;transition:color var(--dur);align-items:center;gap:7px;padding:0 11px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.ruler a .ix{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:0;transition:color var(--dur);font-size:10px}.ruler a svg{opacity:.75;width:15px;height:15px}.ruler a:hover,.ruler a.active{color:var(--ink)}.ruler a.active .ix{color:var(--accent)}.ruler a.active svg{opacity:1;color:var(--accent)}.ruler .sep{background:var(--line-strong);flex:none;width:1px;margin:12px 6px}.ruler .ink{background:var(--accent);height:2px;transition:left .32s var(--ease), width .32s var(--ease);box-shadow:0 0 12px var(--focus);border-radius:2px;position:absolute;bottom:-1px}.ruler .badge{min-width:16px;height:16px;font-size:10px;font-family:var(--font-mono);background:var(--danger);color:#fff;border-radius:99px;place-items:center;padding:0 4px;display:inline-grid}.main{flex:1;min-width:0}.dock{display:none}@media (max-width:900px){.hdr{grid-template-columns:auto 1fr auto;gap:10px;padding:0 12px}.search-trigger{width:100%}.search-trigger .grow,.search-trigger .kbd{display:none}.search-trigger{justify-content:center;justify-self:end;width:36px;padding:0}.clock,.user-chip .who,.hdr-right .hide-m{display:none}.clinic-switch{max-width:150px}.ruler{display:none}.dock{z-index:45;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:var(--dock-h);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:var(--shadow-3);border-radius:22px;grid-template-columns:repeat(5,1fr);padding:6px;display:grid;position:fixed}.dock a,.dock button{color:var(--ink-3);background:0 0;border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:500;display:flex}.dock a.active{color:var(--accent);background:var(--accent-soft)}.dock svg{width:20px;height:20px}}@media (max-width:520px){.brand-name{display:none}}.sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.sheet-grid a{border:1px solid var(--line);background:var(--surface-2);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;font-size:12px;display:flex}.sheet-grid a svg{width:20px;height:20px;color:var(--accent)}.cmdk-scrim{place-items:start center;padding-top:11vh}.cmdk{background:var(--surface);border:1px solid var(--line);width:min(680px,100%);box-shadow:var(--shadow-3);animation:pop .2s var(--ease) both;border-radius:18px;flex-direction:column;max-height:70vh;display:flex;overflow:hidden}.cmdk-input{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:0 16px;display:flex}.cmdk-input svg{width:18px;height:18px;color:var(--ink-3)}.cmdk-input input{background:0 0;border:0;outline:0;flex:1;height:56px;font-size:16px}.cmdk-list{padding:6px;overflow:auto}.cmdk-group{padding:10px 10px 4px}.cmdk-item{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;min-height:42px;padding:8px 10px;font-size:13.5px;display:flex}.cmdk-item[data-active=true]{background:var(--surface-3)}.cmdk-item[data-active=true] .go{opacity:1}.cmdk-item .ic{background:var(--surface-3);width:28px;height:28px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.cmdk-item .ic svg{width:15px;height:15px}.cmdk-item .t{flex-direction:column;flex:1;min-width:0;display:flex}.cmdk-item .t span{color:var(--ink-3);font-size:12px}.cmdk-item .go{opacity:0;color:var(--ink-3);width:14px;height:14px}.cmdk-item mark{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 1px}.cmdk-foot{border-top:1px solid var(--line);color:var(--ink-3);background:var(--surface-2);gap:14px;padding:8px 14px;font-size:11.5px;display:flex}@media (max-width:640px){.cmdk-scrim{place-items:start stretch;padding:10px}.cmdk{max-height:86dvh}}.lock{z-index:200;background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(22px)saturate(.6);place-items:center;padding:16px;animation:.3s fade-in;display:grid;position:fixed;inset:0}.lock-card{background:var(--surface);border:1px solid var(--line);width:min(380px,100%);box-shadow:var(--shadow-3);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:14px;padding:26px;display:flex}.boot{place-items:center;min-height:100dvh;display:grid}.boot-mark{background:var(--ink);border-radius:16px;place-items:center;width:54px;height:54px;animation:1.6s infinite pulse;display:grid}.boot-mark svg{width:34px;height:34px}@media (max-width:1680px){.ruler a{gap:5px;padding:0 8px;font-size:12.5px}.ruler a svg{display:none}.ruler .sep{margin:12px 3px}}@media (max-width:1320px){.ruler a .ix{display:none}}.ruler-track{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.app-foot{border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1680px;margin:0 auto;padding:18px 28px 28px;font-size:11.5px;display:flex}.app-foot>span{max-width:720px}@media (max-width:900px){.app-foot{padding-bottom:calc(var(--dock-h) + 30px)}}.login{grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);min-height:100dvh;display:grid}.login-art{color:#e9ebee;--line-strong:#2f3845;--ink-3:#6d7581;--accent:#8b7cff;--bg-grid:#e8eaed09;background-color:#0b0e12;flex-direction:column;padding:28px 36px;display:flex;position:relative;overflow:hidden}.login-art:after{content:"";pointer-events:none;background:radial-gradient(closest-side,#8b7cff38,#0000);height:70%;position:absolute;inset:auto -20% -40%}.login-art .brand-mark{background:#1a1f28}.login-art-body{z-index:1;flex-direction:column;flex:1;justify-content:center;gap:18px;max-width:640px;display:flex;position:relative}.login-art h1{letter-spacing:-.025em;font-size:clamp(40px,4.4vw,64px);line-height:1}.login-art h1 i{color:#a597ff}.arch{width:100%;max-width:560px;margin:4px 0 0 -10px}.arch .occl{fill:none;stroke:#8b7cff;stroke-width:1px;stroke-dasharray:700;stroke-dashoffset:700px;animation:draw 1.6s var(--ease) forwards;opacity:.55}.arch .arch-tooth{opacity:0;animation:rise .5s var(--ease) forwards}.arch .arch-tooth rect{fill:#e9e6dc0f;stroke:#e9e6dc;stroke-width:1px}.arch .arch-tooth text{fill:#6d7581;font:9px var(--font-mono)}.arch .arch-tooth:nth-child(7n) rect{stroke:#8b7cff;fill:#8b7cff2e}@keyframes draw{to{stroke-dashoffset:0}}.login-points{color:#a3aab4;flex-direction:column;gap:8px;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.login-points li{align-items:baseline;gap:12px;display:flex}.login-points .mono{color:#8b7cff;letter-spacing:.08em;flex:none;width:40px;font-size:10.5px}.login-art-foot{z-index:1;position:relative}.login-form-wrap{background:var(--bg);place-items:center;padding:40px 28px;display:grid;position:relative}.login-lang{position:absolute;top:18px;right:18px}.login-form{width:min(400px,100%);animation:rise .5s var(--ease) both;flex-direction:column;gap:16px;display:flex}.demo-box{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.demo-list{grid-template-columns:1fr 1fr;gap:6px;display:grid}.demo-acc{text-align:left;border:1px solid var(--line);background:var(--surface-2);transition:all var(--dur) var(--ease);border-radius:9px;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:0 6px;padding:8px 10px;display:grid}.demo-acc:hover{border-color:var(--accent-line);background:var(--accent-soft)}.demo-acc .r{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:9.5px}.demo-acc .n{grid-row:2;font-size:12.5px;font-weight:500}.demo-acc svg{color:var(--ink-3);grid-area:1/2/span 2}.nexus-sign{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:inline-flex}.nexus-sign .nx{color:#fff;background:linear-gradient(135deg,#6d58f2,#b0458f);border-radius:7px;place-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:grid}.nexus-sign b{background:linear-gradient(90deg,#a597ff,#e073c1);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:600}.nexus-sign em{font-family:var(--font-display);color:var(--ink-2);font-size:14px}.nexus-sign:hover em{color:var(--accent)}@media (max-width:960px){.login{grid-template-columns:1fr}.login-art{min-height:auto;padding:20px}.login-art-body{gap:10px}.login-art h1{font-size:34px}.arch{max-width:360px}.login-points,.login-art-foot{display:none}.login-form-wrap{padding:24px 16px 40px}}@media (max-width:420px){.demo-list{grid-template-columns:1fr}}
