@import "https://fonts.googleapis.com/css2?family=Geist:wght@300;400;450;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap";
:root{--paper:#faf8f3;--surface:#fff;--surface-2:#f4f1ea;--surface-3:#ece8dd;--line:#e7e2d6;--line-2:#dad3c3;--ink:#1c1b17;--ink-2:#5c574c;--ink-3:#938c7c;--ink-4:#b6af9f;--accent:#3c7a5c;--accent-deep:#2e5f48;--accent-soft:#eaf1ec;--accent-line:#cfe0d5;--on-accent:#fff;--ok:#3c7a5c;--ok-soft:#eaf1ec;--ok-line:#cfe0d5;--warn:#9a6b1e;--warn-soft:#f6efdf;--warn-line:#e6d7b6;--crit:#b0432e;--crit-soft:#f7e9e4;--crit-line:#ecccc0;--info:#45617a;--info-soft:#e9eef3;--info-line:#cdd8e2;--mute:#6e685b;--mute-soft:#f0ede4;--mute-line:#ded7c8;--font-ui:"Geist",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;--row-h:46px;--pad-y:13px;--pad-x:16px;--gap:16px;--gap-lg:22px;--card-pad:20px;--fs:13.5px;--r-xs:5px;--r-sm:7px;--r:10px;--r-lg:14px;--r-xl:18px;--sh-1:0 1px 2px #2823190d,0 1px 1px #2823190a;--sh-2:0 2px 6px #2823190f,0 1px 2px #2823190d;--sh-pop:0 18px 50px -12px #1e1a1247,0 6px 16px -8px #1e1a122e;--rail:#1a1a17;--rail-2:#232320;--rail-ink:#c9c4b8;--rail-ink-2:#7e796d;--agenda-hour:72px}*{box-sizing:border-box}html,body{height:100%;min-height:100%;margin:0}body{color:var(--ink);background:var(--paper);font-family:var(--font-ui);font-size:var(--fs);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}html[data-capture=marketing] *,html[data-capture=marketing] :before,html[data-capture=marketing] :after{caret-color:#0000!important;transition:none!important;animation:none!important}button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d8d2c4 padding-box content-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-track{background:0 0}.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.app-shell{background:var(--paper);height:100dvh;min-height:100vh;display:flex;overflow:hidden}.workspace{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.page{flex:auto;min-height:0;padding:22px;overflow:hidden auto}.page-inner{max-width:1520px;margin:0 auto}.page-title-row{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px;display:flex}.page-kicker{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:11.5px;font-weight:600}.page-title{letter-spacing:-.025em;margin:4px 0 0;font-size:23px;font-weight:650;line-height:1.1}.page-subtitle{color:var(--ink-2);margin-top:6px;font-size:13px}.rail{background:var(--rail);z-index:20;flex-direction:column;flex:none;align-items:center;gap:5px;width:68px;padding:18px 0;display:flex}.brand-mark{width:30px;height:30px;color:var(--accent);background:#fff;border-radius:8px;place-items:center;margin-bottom:14px;display:grid;overflow:hidden;box-shadow:0 1px 3px #00000047,inset 0 0 0 1px #3c7a5c29}.brand-mark-image{object-fit:contain;width:25px;height:25px;display:block}.rail-item{cursor:pointer;width:44px;height:42px;color:var(--rail-ink);background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:relative}.rail-item:hover{color:#fff;background:#ffffff0f}.rail-item.active{color:#fff;background:#ffffff1a}.rail-item.active:before{content:"";background:var(--accent);border-radius:3px;width:3px;position:absolute;top:11px;bottom:11px;left:0}.rail-spacer{flex:1}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:18;flex:none;align-items:center;gap:12px;height:58px;padding:0 18px 0 20px;display:flex}.topbar-context{flex:none;align-items:center;gap:8px;min-width:0;display:flex}.topbar-search{border:1px solid var(--line-2);background:var(--surface-2);width:300px;height:36px;color:var(--ink-3);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:0 12px;display:flex}.topbar-search span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar-date{color:var(--ink-3);text-transform:capitalize;font-size:12.5px}.kbd{font-family:var(--font-mono);color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line-2);border-radius:5px;padding:1px 5px;font-size:10.5px;line-height:1.5}.centre-switch{position:relative}.centre-menu{border:1px solid var(--line-2);background:var(--surface);width:250px;box-shadow:var(--sh-pop);z-index:40;border-radius:12px;padding:6px;animation:.14s popIn;position:absolute;top:42px;left:0}.centre-option{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.centre-option:hover,.centre-option.active{background:var(--surface-2)}.centre-code{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);font-family:var(--font-mono);border-radius:7px;flex:none;place-items:center;font-size:11px;font-weight:700;line-height:1;display:grid}.centre-trigger{justify-content:flex-start;gap:9px;min-width:210px;height:36px;padding:0 10px 0 8px}.centre-trigger-code{border-radius:7px;width:28px;height:28px;font-size:10.5px}.centre-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;font-weight:650;overflow:hidden}.practitioner-trigger{min-width:190px;max-width:220px}.practitioner-trigger-code,.practitioner-option-code{background:var(--info-soft);color:var(--info)}.practitioner-menu{width:270px}.btn{border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surface);height:34px;color:var(--ink);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:550;line-height:1;transition:background .14s,border-color .14s,transform 60ms;display:inline-flex}.btn svg{flex:none}.btn:hover{background:var(--surface-2);border-color:var(--ink-4)}.btn:active{transform:translateY(.5px)}.btn:disabled{cursor:not-allowed;opacity:.48;transform:none}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn-danger{color:var(--crit);border-color:var(--crit-line);background:var(--crit-soft)}.btn-danger:hover{border-color:var(--crit);background:color-mix(in srgb,var(--crit-soft)72%,#fff)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-icon{width:34px;padding:0}.btn-sm{height:28px;padding:0 10px;font-size:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.card-head{padding:14px var(--card-pad);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;display:flex}.card-title{white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:650;display:flex}.card-body{padding:var(--card-pad)}.grid{gap:var(--gap);display:grid}.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.55fr) minmax(360px,1fr);align-items:start}.two-col.with-sidebar{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.main-detail{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(280px,330px);align-items:start;display:grid}.devis-layout{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(420px,1fr);align-items:start}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;height:21px;padding:0 8px;font-size:11.5px;font-weight:550;line-height:1;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.b-ok{color:var(--ok);background:var(--ok-soft)}.b-warn{color:var(--warn);background:var(--warn-soft)}.b-crit{color:var(--crit);background:var(--crit-soft)}.b-info{color:var(--info);background:var(--info-soft)}.b-mute{color:var(--mute);background:var(--mute-soft)}.b-accent{color:var(--accent);background:var(--accent-soft)}.tag{background:var(--surface-2);height:20px;color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:0 7px;font-size:11px;font-weight:550;display:inline-flex}.avatar{background:var(--surface-3);width:30px;height:30px;color:var(--ink-2);border:1px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11.5px;font-weight:700;display:inline-flex}.input{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);height:34px;color:var(--ink);padding:0 11px;font-size:13px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.textarea{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);width:100%;min-height:92px;color:var(--ink);resize:vertical;padding:10px 11px;font-size:13px;line-height:1.42}.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.tbl-wrap{overflow:auto}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl thead th{text-align:left;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;padding:9px var(--pad-x);border-bottom:1px solid var(--line);background:var(--surface);z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}.tbl tbody td{padding:var(--pad-y)var(--pad-x);vertical-align:middle;border-bottom:1px solid #f1ede3}.tbl tbody tr{cursor:pointer;transition:background .1s}.tbl tbody tr:hover{background:var(--surface-2)}.meter{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.meter>span{background:var(--accent);border-radius:inherit;height:100%;display:block}.list{flex-direction:column;gap:8px;display:flex}.list-item{width:100%;min-height:var(--row-h);color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.list-item:hover{background:var(--surface-2);border-color:var(--line)}.list-main{flex:1;min-width:0}.list-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:650;overflow:hidden}.list-meta{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12px;overflow:hidden}.drawer,.support-sidebar{align-self:start;min-width:0;position:sticky;top:0}.drawer .card-head,.support-sidebar .card-head{padding:12px 14px}.drawer .card-body,.support-sidebar .card-body{padding:14px}.drawer .list-item,.support-sidebar .list-item{border-radius:8px;padding:8px 10px}.drawer .btn,.support-sidebar .btn{min-width:0}.patient-side-slot{align-self:start;min-width:0;height:calc(100dvh - 78px);max-height:calc(100dvh - 78px);position:sticky;top:-12px}.patient-side-panel{grid-template-rows:repeat(3,minmax(0,1fr));gap:10px;min-width:0;height:100%}.patient-side-panel>.card{flex-direction:column;min-height:0;display:flex}.patient-side-panel .card-head{padding:10px 12px}.patient-side-panel .card-body{flex-direction:column;flex:1;min-height:0;padding:13px;display:flex}.patient-side-actions,.patient-side-info{flex:1;align-content:center;gap:8px}.patient-side-actions .btn{height:32px}.patient-side-info .list-item{border-radius:8px;min-height:34px;padding:7px 9px}.patient-side-info .btn{height:34px}.agenda-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;margin-bottom:10px;display:grid;overflow:hidden}.agenda-optim-pills{scrollbar-width:thin;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;padding-bottom:2px;display:flex;overflow:auto hidden}.agenda-optim-pills .badge{white-space:nowrap;flex:none}.agenda-toolbar-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;min-width:max-content;margin-left:auto;display:flex}.agenda-toolbar-actions .btn{white-space:nowrap;flex:none}.agenda-navigation{flex:none;align-items:center;gap:6px;display:inline-flex}.agenda-current-range{min-width:190px;color:var(--ink-2);text-align:center;white-space:nowrap;font-size:12.5px;font-weight:650}.agenda-view-tabs{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;align-items:center;gap:3px;padding:3px;display:inline-flex}.agenda-view-btn{height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 9px;font-size:12px;font-weight:650}.agenda-view-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.agenda-grid{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:860px;box-shadow:var(--sh-1);overflow:hidden}.agenda-week-grid,.agenda-week-grid.all-prats{min-width:1180px}.agenda-full{width:100%}.agenda-viewport{overflow:auto visible}.agenda-header-row,.agenda-body{grid-template-columns:62px repeat(4,minmax(170px,1fr));display:grid}.agenda-body{overscroll-behavior:contain;align-items:start;max-height:calc(100dvh - 166px);overflow-y:auto}.agenda-week-grid .agenda-header-row,.agenda-week-grid .agenda-body,.agenda-week-grid.all-prats .agenda-header-row,.agenda-week-grid.all-prats .agenda-body{grid-template-columns:62px repeat(7,minmax(150px,1fr))}.agenda-head{background:var(--surface-2);border-bottom:1px solid var(--line);border-left:1px solid var(--line);flex-direction:column;justify-content:center;gap:1px;height:34px;padding:0 10px;display:flex}.agenda-head strong{font-size:12.5px;line-height:1.1}.agenda-head .faint{font-size:10.8px!important}.agenda-prat-heading{align-items:center;gap:7px;min-width:0;display:flex}.agenda-prat-heading strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.agenda-week-head{align-items:flex-start}.agenda-week-head.muted{background:color-mix(in srgb,var(--surface-2)76%,var(--ink-4))}.agenda-week-head strong{white-space:nowrap}.agenda-week-prats{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--ink-3);font-family:var(--font-mono);align-items:center;gap:5px;font-size:9.5px;font-weight:650;line-height:1.05;display:flex;overflow:hidden}.agenda-week-prats.full{font-family:var(--font-ui);font-size:10.5px;font-weight:650}.agenda-week-avatar-row{min-height:16px;color:var(--ink-3);align-items:center;gap:3px;font-size:10px;display:flex}.agenda-week-prat-head-grid{place-items:center;gap:0;width:100%;min-height:16px;padding-top:1px;display:grid}.prat-avatar{--prat-color:var(--info);border:1px solid color-mix(in srgb,var(--prat-color)46%,#fff);background:color-mix(in srgb,var(--prat-color)15%,#fff);width:22px;height:22px;color:var(--prat-color);font-family:var(--font-mono);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:8.5px;font-weight:800;line-height:1;display:inline-flex;overflow:hidden}.prat-avatar.has-image{color:#0000;background-position:50%;background-size:cover}.prat-avatar img{object-fit:cover;width:100%;height:100%;display:block}.prat-avatar.compact{border-width:1px;width:16px;height:16px;font-size:6.8px}.centre-avatar{letter-spacing:0;font-size:7.4px}.agenda-time-head{background:var(--surface-2);border-bottom:1px solid var(--line)}.agenda-time-col{border-right:1px solid var(--line);background:#fbf9f4;position:relative}.agenda-time{height:var(--agenda-hour);text-align:right;color:var(--ink-3);border-bottom:1px solid var(--line);background:#fbf9f4;padding:6px 8px 0 0;font-size:10.5px}.agenda-time-marker{color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);white-space:nowrap;font-weight:500;position:absolute;right:8px;transform:translateY(-50%)}.agenda-time-marker.minor{background:var(--line-2);width:8px;height:1px;right:0}.agenda-col{border-left:1px solid var(--line);background-image:linear-gradient(to bottom,transparent calc(var(--agenda-hour) - 1px),var(--line)var(--agenda-hour)),linear-gradient(to bottom,transparent calc(var(--agenda-hour)/2 - 1px),color-mix(in srgb,var(--line)45%,transparent)calc(var(--agenda-hour)/2),transparent calc(var(--agenda-hour)/2 + 1px));background-size:100% var(--agenda-hour),100% var(--agenda-hour);min-height:0;position:relative}.agenda-free-slot{width:54px;color:var(--ink-4);font-family:var(--font-mono);text-align:center;pointer-events:none;z-index:0;justify-content:center;align-items:center;font-size:9px;font-weight:600;display:flex;position:absolute;left:50%;transform:translate(-50%)}.agenda-free-slot:before,.agenda-free-slot:after{content:"";background:color-mix(in srgb,var(--ink-4)46%,transparent);width:1px;position:absolute;left:50%;transform:translate(-50%)}.agenda-free-slot:before{top:1px;bottom:calc(50% + 7px)}.agenda-free-slot:after{top:calc(50% + 7px);bottom:1px}.agenda-free-slot span{z-index:1;background:color-mix(in srgb,var(--surface)86%,transparent);white-space:nowrap;border-radius:999px;padding:1px 4px;position:relative}.week-split-free-slot{width:34px;font-size:8px}.week-split-free-slot span{padding:1px 3px}.agenda-week-prat-day-split{min-width:0;min-height:0;display:grid;position:absolute;inset:0;overflow:hidden}.agenda-week-prat-day-column{border-left:1px solid color-mix(in srgb,var(--line)76%,transparent);min-width:0;height:100%;position:relative}.agenda-week-prat-day-column:first-child{border-left:0}.rdv-block{z-index:1;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--sh-1);text-align:left;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:1px;padding:3px 6px;display:flex;position:absolute;left:6px;right:6px;overflow:hidden}.rdv-headline{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.rdv-time{color:var(--ink-2);font-family:var(--font-mono);white-space:nowrap;text-align:right;flex:none;font-size:9.6px;font-weight:700;line-height:1}.rdv-time-separator{background:var(--ink);vertical-align:1px;border-radius:999px;width:4px;height:4px;margin:0 5px;display:inline-block}.rdv-status-dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 0 1px #ffffffad}.rdv-status-dot.confirmed{background:var(--ok)}.rdv-status-dot.needs_confirmation{background:var(--warn)}.rdv-status-dot.waiting_room{background:var(--info)}.rdv-status-dot.seen{background:var(--ink-4)}.rdv-status-dot.no_show{background:var(--crit)}.rdv-patient{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:11.6px;font-weight:700;line-height:1.08;display:inline-flex;overflow:hidden}.rdv-comment{color:var(--ink-2);white-space:normal;overflow-wrap:anywhere;flex:auto;min-height:0;font-size:10.3px;font-weight:500;line-height:1.12;overflow:hidden}.rdv-block.confirmed{border-color:var(--ok-line);background:var(--ok-soft)}.rdv-block.waiting_room{border-color:var(--info-line);background:var(--info-soft)}.rdv-block.seen{background:var(--mute-soft)}.rdv-block.no_show{border-color:var(--crit-line);background:var(--crit-soft)}.rdv-block.needs_confirmation{border-color:var(--warn-line);background:var(--warn-soft)}.rdv-block.rdv-theme-restoration{--rdv-theme-bg:var(--ok-soft);--rdv-theme-border:var(--ok-line)}.rdv-block.rdv-theme-prosthetic{--rdv-theme-bg:#eee8f7;--rdv-theme-border:#d7c9ec}.rdv-block.rdv-theme-surgery{--rdv-theme-bg:var(--crit-soft);--rdv-theme-border:var(--crit-line)}.rdv-block.rdv-theme-first-consult{--rdv-theme-bg:var(--accent-soft);--rdv-theme-border:var(--accent-line)}.rdv-block.rdv-theme-ortho{--rdv-theme-bg:var(--info-soft);--rdv-theme-border:var(--info-line)}.rdv-block.rdv-theme-paro{--rdv-theme-bg:#f0e8f2;--rdv-theme-border:#dccbdf}.rdv-block.rdv-theme-followup{--rdv-theme-bg:var(--warn-soft);--rdv-theme-border:var(--warn-line)}.rdv-block.rdv-theme-other{--rdv-theme-bg:var(--mute-soft);--rdv-theme-border:var(--mute-line)}.rdv-block.rdv-theme2-restoration{--rdv-theme2-bg:var(--ok-soft)}.rdv-block.rdv-theme2-prosthetic{--rdv-theme2-bg:#eee8f7}.rdv-block.rdv-theme2-surgery{--rdv-theme2-bg:var(--crit-soft)}.rdv-block.rdv-theme2-first-consult{--rdv-theme2-bg:var(--accent-soft)}.rdv-block.rdv-theme2-ortho{--rdv-theme2-bg:var(--info-soft)}.rdv-block.rdv-theme2-paro{--rdv-theme2-bg:#f0e8f2}.rdv-block.rdv-theme2-followup{--rdv-theme2-bg:var(--warn-soft)}.rdv-block.rdv-theme2-other{--rdv-theme2-bg:var(--mute-soft)}.rdv-block[class*=rdv-theme-]{border-color:var(--rdv-theme-border,var(--line-2));background:var(--rdv-theme-bg,var(--surface))}.rdv-block.dual-theme{background:linear-gradient(90deg,var(--rdv-theme-bg,var(--surface))0 50%,var(--rdv-theme2-bg,var(--surface-2))50% 100%)}.rdv-block.selected{outline:2px solid var(--accent);box-shadow:0 0 0 4px var(--accent-soft),var(--sh-2)}.rdv-block.moving-source{opacity:.32;outline:1px dashed var(--accent);box-shadow:none}.rdv-block.move-preview{z-index:4;pointer-events:none;opacity:.98;outline:2px solid var(--accent);box-shadow:0 0 0 3px #3c7a5c21,var(--sh-2);animation:1.05s ease-in-out infinite moveTargetPulse}.rdv-block.move-origin{opacity:.48;outline:1px dashed color-mix(in srgb,var(--ink-3)70%,transparent);background-image:repeating-linear-gradient(135deg,#ffffff6b 0 5px,#1c1b1709 5px 10px)}.week-rdv{border-radius:7px;padding:3px 5px}.week-rdv .rdv-patient{gap:3px;font-size:10.4px}.week-rdv .rdv-time{font-size:8.7px}.week-rdv .rdv-time-separator{width:3px;height:3px;margin:0 4px}.week-rdv .rdv-comment{font-size:9.4px}.week-rdv .rdv-status-dot{width:5px;height:5px}.week-split-rdv{border-radius:6px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:1px;padding:3px 5px;display:flex;left:4px;right:4px;box-shadow:0 2px 6px #1f1b120f}.week-split-rdv .num{width:100%;color:var(--ink);font-family:var(--font-mono);white-space:nowrap;font-size:8.8px;font-weight:850;line-height:1.02}.week-split-rdv span:last-child{width:100%;min-width:0;color:var(--ink-2);white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:8.3px;font-weight:650;line-height:1.04;overflow:hidden}.row-active,.item-active{background:var(--accent-soft)!important}.agenda-drawer-backdrop{z-index:70;cursor:pointer;background:#1c181047;border:0;animation:.14s overlayIn;position:fixed;inset:0}.agenda-drawer{z-index:71;background:var(--surface-2);border-left:1px solid var(--line);width:410px;max-width:92vw;box-shadow:var(--sh-pop);flex-direction:column;animation:.22s cubic-bezier(.2,.8,.2,1) drawerIn;display:flex;position:fixed;top:0;bottom:0;right:0}.agenda-drawer-head{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.agenda-drawer-body{flex:1;align-content:start;gap:12px;padding:14px;display:grid;overflow:auto}.agenda-drawer-alert{border:1px solid var(--warn-line);background:var(--warn-soft);color:var(--warn);border-radius:10px;gap:9px;margin-top:16px;padding:12px;font-size:12.5px;line-height:1.4;display:flex}.agenda-drawer-alert span{color:var(--ink)}.agenda-drawer-foot{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:14px;display:grid}.agenda-drawer-primary-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.agenda-drawer-primary-actions .btn-accent{flex:1;grid-column:auto;min-width:0}.agenda-drawer-section{border:1px solid var(--line);background:var(--surface);box-shadow:var(--sh-1);border-radius:12px;gap:12px;padding:13px;display:grid}.agenda-drawer-patient-card{background:var(--surface)}.agenda-drawer-section-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.agenda-drawer-patient-meta{color:var(--ink-3);align-items:center;gap:7px;margin-top:4px;font-size:12px;display:flex}.agenda-drawer-patient-meta span+span:before{content:"";background:var(--ink-4);vertical-align:2px;border-radius:999px;width:3px;height:3px;margin-right:7px;display:inline-block}.agenda-drawer-contact-grid{gap:7px;display:grid}.agenda-contact-pill{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:32px;color:var(--ink-2);border-radius:9px;align-items:center;gap:8px;padding:8px 9px;font-weight:650;text-decoration:none;display:flex}.agenda-contact-pill span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.agenda-contact-pill:hover{border-color:var(--accent-line);color:var(--accent)}.agenda-contact-line{justify-content:space-between;gap:12px}.agenda-contact-link{min-width:0;color:var(--accent);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-weight:700;text-decoration:none;overflow:hidden}.agenda-contact-link:hover{text-underline-offset:3px;text-decoration:underline}.agenda-rdv-hero{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:6px;display:grid}.agenda-rdv-hero>*{min-width:0}.agenda-rdv-time-card{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:10px;gap:3px;min-width:0;padding:9px 8px;display:grid}.agenda-rdv-time-card.editing{background:var(--surface);gap:8px}.agenda-rdv-time-card span,.agenda-current-status>span,.agenda-rdv-meta-grid span{color:var(--ink-3);font-size:11px;font-weight:650}.agenda-rdv-time-card strong{color:var(--ink);font-size:22px;line-height:1}.agenda-rdv-time-card small{color:var(--ink-2);font-size:12px;font-weight:650}.agenda-rdv-tile-control{cursor:default}.agenda-rdv-inline-input{width:100%;min-width:0;height:28px;color:var(--ink);background:0 0;border:0;border-radius:7px;outline:0;font-size:17px;font-weight:800;line-height:1}.agenda-rdv-inline-input:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent)18%,transparent)}.agenda-rdv-select-wrap{min-width:0;height:28px;position:relative}.agenda-rdv-duration-select{appearance:none;cursor:pointer;padding:0 20px 0 0;position:absolute;inset:0}.agenda-rdv-chevron{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;right:0;transform:translateY(-50%)}.agenda-rdv-static-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;height:28px;color:var(--ink);align-items:center;font-size:17px;font-weight:800;line-height:1;display:flex;overflow:hidden}.agenda-current-status-wrap{min-width:0;position:relative}.agenda-current-status{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;text-align:left;border-radius:10px;align-content:center;justify-items:start;gap:3px;width:100%;min-width:0;min-height:100%;padding:9px 8px;display:grid}.agenda-current-status>span{color:var(--ink-3)!important}.agenda-current-status strong{min-width:0;max-width:100%;color:var(--ink);white-space:nowrap;align-items:center;gap:4px;font-size:17px;font-weight:800;line-height:1;display:inline-flex;overflow:hidden}.agenda-current-status strong span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.agenda-current-status strong svg{color:currentColor;opacity:.68;flex:none}.agenda-current-status small{color:var(--ink-3);font-size:11px;font-weight:650;line-height:1.1}.agenda-current-status:disabled{cursor:default;opacity:.82}.agenda-current-status.b-ok{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}.agenda-current-status.b-warn{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-line)}.agenda-current-status.b-crit{color:var(--crit);background:var(--crit-soft);border-color:var(--crit-line)}.agenda-current-status.b-info{color:var(--info);background:var(--info-soft);border-color:var(--info-line)}.agenda-current-status.b-mute{color:var(--mute);background:var(--mute-soft);border-color:var(--mute-line)}.agenda-current-status[class*=b-] strong{color:currentColor}.agenda-status-dropdown{z-index:4;border:1px solid var(--line-2);background:var(--surface);min-width:190px;box-shadow:var(--sh-pop);border-radius:10px;gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.agenda-status-dropdown button{cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:30px;padding:4px 6px;display:flex}.agenda-status-dropdown button:hover,.agenda-status-dropdown button.active{background:var(--surface-2)}.agenda-rdv-field{gap:7px;display:grid}.agenda-rdv-field p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.35}.agenda-rdv-type-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.agenda-rdv-type-picker{align-items:flex-start}.agenda-rdv-empty{color:var(--ink-4);font-size:11px}.agenda-rdv-comment-input{resize:vertical;min-height:92px;max-height:138px;font-size:12.5px}.agenda-rdv-meta-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.agenda-rdv-meta-grid>div{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;gap:3px;min-width:0;padding:9px 10px;display:grid}.agenda-rdv-meta-grid strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:12.5px;overflow:hidden}.agenda-rdv-prat-value{align-items:center;gap:6px;min-width:0;display:flex}.agenda-rdv-prat-value strong{min-width:0}.agenda-delete-modal{width:430px}.agenda-delete-body{gap:12px;display:grid}.agenda-delete-body p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.45}.agenda-context-backdrop{z-index:83;cursor:default;background:0 0;border:0;position:fixed;inset:0}.agenda-context-menu{z-index:84;border:1px solid var(--line-2);background:var(--surface);width:210px;box-shadow:var(--sh-pop);border-radius:11px;padding:6px;animation:.12s popIn;position:fixed}.agenda-context-head{border-bottom:1px solid var(--line);gap:2px;padding:7px 8px 8px;display:grid}.agenda-context-head span{color:var(--ink-3);text-transform:uppercase;font-size:10.5px;font-weight:700}.agenda-context-head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:12px;overflow:hidden}.agenda-context-options{gap:4px;padding-top:6px;display:grid}.agenda-context-options button{width:100%;min-height:30px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;display:flex}.agenda-context-options button:hover,.agenda-context-options button.active{background:var(--surface-2)}.agenda-move-ghost{z-index:95;pointer-events:none;border:1px solid var(--accent-line);background:var(--accent-soft);width:176px;box-shadow:var(--sh-pop);color:var(--ink);border-radius:9px;gap:2px;padding:8px 9px;display:grid;position:fixed;transform:translate(10px,8px)}.agenda-move-ghost .num{font-size:10px;font-weight:850}.agenda-move-ghost strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.1;overflow:hidden}.agenda-move-ghost small{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);font-size:10px;overflow:hidden}.agenda-period-grid{gap:10px;display:grid}.agenda-period-grid.weekly{grid-template-columns:repeat(7,minmax(0,1fr))}.agenda-period-grid.monthly{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.agenda-period-cell{border:1px solid var(--line);background:var(--surface);min-height:126px;box-shadow:var(--sh-1);color:inherit;text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:7px;padding:10px;display:flex}.agenda-period-grid.monthly .agenda-period-cell{border-radius:10px;min-height:112px;padding:8px;overflow:hidden}.agenda-period-cell.muted{opacity:.48}.agenda-period-cell.selected{border-color:var(--accent-line);background:var(--accent-soft);box-shadow:0 0 0 2px #3c7a5c14,var(--sh-1)}.agenda-period-cell.move-target,.agenda-month-prat-type-column.move-target{border-color:var(--accent-line);background:var(--accent-soft);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent)26%,transparent);animation:1.05s ease-in-out infinite moveTargetPulse}.agenda-period-head{justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.month-rdv-count-pill{background:color-mix(in srgb,var(--mute-soft)70%,transparent);height:17px;color:var(--ink-4);white-space:nowrap;border-radius:999px;align-items:center;padding:0 6px;font-size:9.5px;font-weight:600;line-height:1;display:inline-flex}.agenda-month-type-list{flex-wrap:wrap;align-content:flex-start;gap:5px;min-height:48px;display:flex;overflow:hidden}.agenda-month-type-list.compact{place-content:flex-start center;gap:3px;width:100%;min-height:0}.agenda-month-type-list.mono-compact{align-content:flex-start;gap:4px;min-height:0}.agenda-month-prat-type-columns{flex:1;gap:3px;min-height:0;display:grid;overflow:hidden}.agenda-month-prat-type-column{border-left:1px solid color-mix(in srgb,var(--line)72%,transparent);flex-direction:column;align-items:center;gap:4px;min-width:0;padding:1px 2px 0;display:flex;overflow:hidden}.agenda-month-prat-type-column:first-child{border-left:0}.agenda-month-prat-type-column.selected{background:color-mix(in srgb,var(--accent-soft)70%,transparent);box-shadow:inset 0 0 0 1px var(--accent-line);border-radius:8px}.agenda-month-prat-type-column.move-target{border-radius:8px}.month-type-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;max-width:100%;height:20px;padding:0 7px;font-size:10.6px;font-weight:700;line-height:1;display:inline-flex}.month-type-badge.mini{height:18px;padding:0 5px;font-size:9.2px}.month-type-dot{background:currentColor;border-radius:999px;flex:none;width:6px;height:6px}.month-type-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.month-type-count{background:color-mix(in srgb,currentColor 12%,#fff);color:currentColor;min-width:12px;height:14px;font-family:var(--font-mono);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:8.8px;font-weight:850;line-height:1;display:inline-flex}.month-type-badge.restoration{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}.month-type-badge.prosthetic{color:#5e3f91;background:#eee8f7;border-color:#d7c9ec}.month-type-badge.surgery{color:var(--crit);background:var(--crit-soft);border-color:var(--crit-line)}.month-type-badge.ortho{color:var(--info);background:var(--info-soft);border-color:var(--info-line)}.month-type-badge.paro{color:#6d527a;background:#f0e8f2;border-color:#dccbdf}.month-type-badge.first-consult{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.month-type-badge.followup{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-line)}.month-type-badge.other{color:var(--mute);background:var(--mute-soft);border-color:var(--mute-line)}.month-empty{color:var(--ink-4);font-size:11px;font-weight:650}.agenda-month-drawer .agenda-drawer-foot .btn-accent{grid-column:auto}.agenda-month-drawer-subtitle{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.agenda-month-drawer-prat{color:var(--ink-2);align-items:center;gap:5px;font-weight:650;display:inline-flex}.agenda-month-drawer-types{flex-wrap:wrap;gap:6px;display:flex}.agenda-month-detail-types{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;max-width:120px;display:flex}.agenda-month-detail-row{align-items:flex-start}.agenda-month-detail-row .list-title,.agenda-month-detail-row .list-meta{white-space:normal}.appointment-create-modal{width:min(620px,92vw);max-height:88vh;overflow:hidden}.appointment-create-body{gap:14px;display:grid}.appointment-create-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.appointment-create-grid .billing-field:first-child,.appointment-create-grid .billing-field:nth-child(2),.appointment-create-grid .billing-field:nth-child(3){grid-column:1/-1}.appointment-patient-search{width:100%;min-width:0;position:relative}.appointment-patient-search .input{width:100%;min-width:0}.appointment-patient-results{z-index:8;border:1px solid var(--line-2);background:var(--surface);max-height:214px;box-shadow:var(--sh-pop);border-radius:10px;gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.appointment-patient-result{width:100%;min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:8px;display:grid}.appointment-patient-result:hover,.appointment-patient-result.active{border-color:var(--accent-line);background:var(--accent-soft)}.appointment-patient-result span{gap:2px;min-width:0;display:grid}.appointment-patient-result strong,.appointment-patient-result small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appointment-patient-result strong{font-size:13px;font-weight:750}.appointment-patient-result small{color:var(--ink-3);font-size:11px}.appointment-patient-empty{color:var(--ink-3);padding:8px;font-size:12px}.appointment-patient-selected{color:var(--ok);font-size:11.5px;font-weight:650}.appointment-patient-selected.warning{color:var(--warn)}.appointment-type-field{gap:8px}.appointment-type-picker{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.appointment-type-chip{cursor:pointer;opacity:.72;height:24px;transition:opacity .14s,box-shadow .14s,transform .14s}.appointment-type-chip:hover{opacity:1}.appointment-type-chip.active{opacity:1;border-color:currentColor;box-shadow:0 0 0 .75px}.appointment-type-chip:disabled{opacity:.32;cursor:not-allowed}.appointment-type-hint{color:var(--ink-4);font-size:11px}.appointment-practitioner-select{margin-right:6px}.appointment-create-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;padding-top:12px;display:flex}.appointment-move-float{z-index:82;width:min(640px,100vw - 28px);position:fixed}.appointment-move-modal{border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--sh-pop);border-radius:12px;overflow:hidden}.appointment-move-modal .card-head{padding:11px 13px}.appointment-move-modal .card-body{padding:13px}.appointment-move-body{gap:10px;display:grid}.appointment-move-summary{grid-template-columns:1fr;gap:9px;display:grid}.appointment-move-patient{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;align-items:center;gap:9px;padding:9px;display:flex}.appointment-move-patient>div{min-width:0}.appointment-move-patient .list-title,.appointment-move-patient .list-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appointment-move-flow{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;display:grid}.appointment-move-slot{border:1px solid var(--line);background:var(--surface);border-radius:9px;gap:3px;min-width:0;padding:9px 8px;display:grid}.appointment-move-slot span{color:var(--ink-3);font-size:11px;font-weight:650}.appointment-move-slot strong{color:var(--ink);white-space:nowrap;font-size:13px;line-height:1.1}.appointment-move-slot small{color:var(--ink-2);white-space:nowrap;font-size:11px}.appointment-move-slot.next{border-color:var(--accent-line);background:var(--accent-soft)}.appointment-move-arrow{background:var(--surface-2);width:28px;height:28px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;place-items:center;display:grid}.appointment-move-message{resize:none;min-height:72px;max-height:92px;font-size:12px;line-height:1.35}.appointment-move-modal .appointment-create-foot{flex-wrap:nowrap}.appointment-move-modal .appointment-create-foot .btn{white-space:nowrap}.patient-header{grid-template-columns:1fr auto;align-items:start;gap:16px;display:grid}.patient-identity{align-items:center;gap:14px;display:flex}.patient-identity.compact{gap:9px}.patient-avatar{background:var(--ink);color:#fff;border-color:var(--ink);width:54px;height:54px;font-size:20px}.migration-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.migration-toolbar{margin-bottom:var(--gap);grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:center;gap:12px;display:grid}.migration-filter-block{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.migration-filter-block .tabs{flex:0 auto;min-width:0}.migration-search{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);align-items:center;gap:8px;height:36px;padding:0 11px;display:flex}.migration-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:13px}.migration-alert{margin-bottom:var(--gap);border-radius:var(--r-sm);border:1px solid var(--line);padding:10px 12px;font-size:12.5px;font-weight:600}.migration-alert.error{color:var(--crit);background:var(--crit-soft);border-color:var(--crit-line)}.migration-alert.success{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}.migration-bulk-card{margin-bottom:var(--gap)}.migration-bulk{grid-template-columns:minmax(250px,1.1fr) minmax(0,1.4fr) minmax(230px,.9fr) auto;align-items:center;gap:12px;display:grid}.migration-bulk-scope{align-items:center;gap:10px;min-width:0;display:flex}.migration-bulk-scope>div{gap:3px;min-width:0;display:grid}.migration-bulk-scope strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.migration-bulk-scope span{min-width:0;color:var(--ink-3);white-space:nowrap;font-size:11.5px}.migration-check{border:1px solid var(--line);background:var(--surface-2);height:28px;color:var(--ink-2);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 8px;font-size:11.5px;font-weight:650;display:inline-flex}.migration-check input{width:13px;height:13px;accent-color:var(--accent)}.migration-bulk-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.migration-bulk-stat{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;gap:3px;min-width:0;padding:8px 9px;display:grid}.migration-bulk-stat span{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.8px;font-weight:650;overflow:hidden}.migration-bulk-stat strong{font-size:15px;line-height:1}.migration-bulk-stat.accent{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.migration-bulk-job{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;gap:6px;min-width:0;padding:8px 9px;display:grid}.migration-bulk-job-head,.migration-bulk-job-counts{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.migration-bulk-job-head span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-3);font-size:11px;overflow:hidden}.migration-bulk-job-head strong{font-size:12.5px}.migration-bulk-job-counts{justify-content:flex-start;overflow:hidden}.migration-bulk-job-counts .badge{flex:none}.migration-bulk-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.migration-bulk-actions .btn{flex:none}.migration-layout{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(330px,380px);align-items:start;display:grid}.migration-table-wrap{min-height:360px;max-height:calc(100dvh - 318px)}.migration-data-badges{flex-wrap:nowrap;align-items:center;gap:5px;display:flex;overflow:hidden}.migration-status-cell{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.migration-detail{top:0}.migration-detail-stack{gap:16px;display:grid}.migration-detail-section{border-top:1px solid var(--line);gap:9px;padding-top:14px;display:grid}.migration-key-values{grid-template-columns:86px minmax(0,1fr);align-items:baseline;gap:7px 10px;display:grid}.migration-key-values.compact{grid-template-columns:108px minmax(0,1fr)}.migration-key-values span{color:var(--ink-3);font-size:11.5px;font-weight:650}.migration-key-values strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12.5px;overflow:hidden}.migration-key-values strong.migration-practitioner-source{white-space:normal;gap:2px;line-height:1.15;display:grid}.migration-practitioner-source>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:12.5px;font-weight:700;overflow:hidden}.migration-practitioner-source small{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-3);font-family:var(--font-mono);font-size:10.5px;font-weight:500;overflow:hidden}.migration-detail-actions{border-top:1px solid var(--line);gap:8px;padding-top:14px;display:grid}.migration-detail-actions .btn{width:100%}.migration-empty{color:var(--ink-3);text-align:center;padding:18px 8px;font-size:12.5px}.migration-match-list{gap:9px;display:grid}.migration-match-row{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;gap:8px;padding:10px;display:grid}.migration-match-row .list-title,.migration-match-row .list-meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.migration-score{color:var(--accent);flex:none;font-size:13px;font-weight:750}.migration-reasons{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.migration-reasons .tag,.migration-reasons .badge{max-width:100%}.migration-match-actions{grid-template-columns:1fr 1fr;gap:7px;display:grid}.tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;align-items:center;gap:4px;width:fit-content;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.tab{cursor:pointer;height:30px;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;padding:0 12px;font-size:12.5px;font-weight:600;line-height:1;display:inline-flex}.tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.module-tabs .tab{height:32px;padding:0 14px}.patient-tabs{background:0 0;border:0;border-radius:0;gap:4px;width:auto;padding:0;display:flex;overflow:visible}.patient-tabs .tab{height:40px;color:var(--ink-3);box-shadow:none;background:0 0;border-radius:0;padding:0 14px;font-size:13.5px;font-weight:550;position:relative}.patient-tabs .tab.active{color:var(--ink);box-shadow:none;background:0 0;font-weight:650}.patient-tabs .tab.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:0;left:8px;right:8px}.info-grid{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.admin-editable-line{cursor:default;justify-content:space-between;gap:12px}.admin-editable-value{min-width:0;max-width:62%;color:var(--ink);text-align:right;cursor:text;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;padding:0;font-weight:650;overflow:hidden}.admin-editable-value:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.admin-edit-input{text-align:right;width:min(240px,62%);font-weight:650}.admin-appointment-groups{gap:14px;display:grid}.admin-appointment-section{gap:8px;min-width:0;display:grid}.admin-appointment-head{justify-content:space-between;align-items:center;gap:12px;padding:0 2px;display:flex}.admin-appointment-list{gap:8px;display:grid}.admin-appointment-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:132px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:grid}.admin-appointment-date{min-width:0;color:var(--ink-3);gap:3px;font-size:11.5px;display:grid}.admin-appointment-date strong{color:var(--ink);font-size:13px}.communication-list{gap:10px;display:grid}.communication-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:flex-start;gap:12px;padding:12px;display:flex}.communication-icon{background:var(--surface-2);width:32px;height:32px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.communication-main{flex:1;min-width:0}.communication-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.communication-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.communication-preview{color:var(--ink-2);margin-top:8px;line-height:1.42}.comment-list{gap:7px;min-width:0;max-height:382px;padding-right:3px;display:grid;overflow:hidden auto}.comment-month-separator{color:var(--ink-3);text-align:center;white-space:nowrap;justify-content:center;align-items:center;gap:10px;margin:9px 0 3px;font-size:11.5px;font-weight:750;display:flex}.comment-month-separator:before,.comment-month-separator:after{content:"";background:var(--line);flex:1;min-width:24px;height:1px}.comment-row{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:9px;min-width:0;padding:8px 10px;display:grid}.comment-main{gap:5px;min-width:0;display:grid}.comment-row-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.comment-row-author{min-width:0}.comment-row-author .list-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.comment-row-meta{color:var(--ink-3);white-space:nowrap;flex:none;align-items:center;gap:7px;font-size:11.5px;font-weight:650;display:inline-flex}.comment-row-meta svg{color:var(--ink-3)}.comment-action-btn{border:1px solid var(--line);background:var(--surface);width:24px;height:24px;color:var(--ink-3);cursor:pointer;border-radius:7px;place-items:center;padding:0;display:inline-grid}.comment-action-btn:hover{border-color:var(--accent-line);color:var(--ink);background:var(--surface-2)}.comment-action-btn.danger:hover{border-color:var(--crit-line);color:var(--crit);background:var(--crit-soft)}.comment-bubble{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;padding:8px 9px}.comment-text{color:var(--ink-2);font-size:12.5px;line-height:1.34}.comment-row .assoc-row{gap:5px;margin-top:6px}.linked-file-strip{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;margin-top:7px;display:flex}.linked-file-chip{border:1px solid var(--line);background:var(--surface-2);min-width:0;max-width:185px;height:24px;color:var(--ink-2);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:650;display:inline-flex}.linked-file-chip span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.linked-file-chip svg{color:var(--accent);flex:none}.linked-file-chip:hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.linked-file-more{background:var(--surface-2);height:24px;color:var(--ink-3);border-radius:999px;align-items:center;padding:0 7px;font-size:11.5px;font-weight:700;display:inline-flex}.audit-list{gap:8px;max-height:430px;padding-right:3px;display:grid;overflow:hidden auto}.audit-row{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:10px;min-width:0;padding:9px 10px;display:grid}.audit-main{gap:6px;min-width:0;display:grid}.audit-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.audit-title{align-items:center;gap:7px;min-width:0;display:flex}.audit-title .list-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audit-date{color:var(--ink-3);white-space:nowrap;flex:none;font-size:11.5px;font-weight:650}.audit-meta{color:var(--ink-3);flex-wrap:wrap;gap:8px;font-size:11.5px;display:flex}.audit-meta span+span:before{content:"";vertical-align:2px;background:var(--ink-3);opacity:.45;border-radius:50%;width:4px;height:4px;margin-right:8px;display:inline-block}.audit-diff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.audit-diff-row{border:1px solid var(--line);background:var(--surface-2);min-width:0;color:var(--ink-3);border-radius:7px;grid-template-columns:minmax(58px,.8fr) minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;padding:5px 7px;font-size:11px;display:grid}.audit-diff-row strong{min-width:0;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.audit-diff-row svg{color:var(--ink-3)}.clinical-comment-modal{width:620px}.clinical-comment-input{min-height:160px}.clinical-comment-foot{flex-wrap:wrap;justify-content:space-between}.clinical-comment-links,.clinical-comment-submit{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.clinical-comment-links{border-right:1px solid var(--line);justify-content:flex-start;padding-right:14px}.clinical-comment-submit{justify-content:flex-end;margin-left:auto}.field-stack{gap:6px;min-width:0;display:grid}.nested-overlay{z-index:92;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#1c181033}.link-picker-modal{width:620px;max-height:72vh}.message-composer-modal{width:620px}.message-channel-row{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;gap:5px;padding:4px;display:inline-flex}.channel-pill{height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:0 12px;font-weight:650;display:inline-flex}.channel-pill.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.compose-target{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;align-items:center;gap:11px;margin-top:14px;padding:11px 12px;display:flex}.message-body-input{min-height:170px;margin-top:12px}.composer-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.photo-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.photo-card{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;min-width:0;padding:0;overflow:hidden}.photo-card:hover{border-color:var(--accent-line);box-shadow:var(--sh-2)}.photo-preview{background:radial-gradient(circle at 50% 45%,#fff 0 18%,#f1eee6 72%);place-items:center;height:132px;display:grid;overflow:hidden}.photo-preview.large{background:radial-gradient(circle at 50% 45%,#fff 0 22%,#e7e2d6 82%);height:470px}.patient-file-img{object-fit:cover;width:100%;height:100%;display:block}.photo-preview.large .patient-file-img{object-fit:contain;background:#111}.photo-preview-arch{opacity:.92;filter:drop-shadow(0 5px 8px #1e1a1229);justify-content:center;align-items:center;gap:2px;display:flex}.photo-preview-arch img{object-fit:contain;width:38px;max-height:86px}.photo-preview.large .photo-preview-arch img{width:72px;max-height:170px}.photo-card-meta{padding:10px}.photo-card-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:9px;display:flex}.document-source-strip{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;align-items:center;gap:12px;margin-bottom:12px;padding:11px 12px;display:flex}.document-library{gap:9px;display:grid}.document-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto auto auto auto;align-items:center;gap:11px;padding:11px 12px;display:grid}.patient-file-edit-modal{width:min(860px,92vw);max-height:86vh;overflow:hidden}.patient-file-edit-modal .card-body{max-height:calc(86vh - 55px);overflow:auto}.patient-file-edit-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;display:grid}.patient-file-note-input{resize:vertical;min-height:74px}.tag-button{border:1px solid var(--line);cursor:pointer;align-items:center;gap:5px;display:inline-flex}.tag-button:hover{border-color:var(--accent-line);color:var(--accent)}.patient-file-selected-links{padding:9px 0 3px}.patient-file-link-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.patient-file-link-section{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;min-width:0;overflow:hidden}.patient-file-link-head{border-bottom:1px solid var(--line);color:var(--ink-2);justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:12px;font-weight:750;display:flex}.patient-file-link-head span{align-items:center;gap:7px;min-width:0;display:inline-flex}.patient-file-link-list{gap:6px;max-height:178px;padding:8px;display:grid;overflow:auto}.patient-file-link-list.teeth{grid-template-columns:repeat(4,minmax(0,1fr))}.patient-file-link-option{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink-2);text-align:left;cursor:pointer;border-radius:8px;gap:2px;padding:7px 8px;display:grid}.patient-file-link-option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:700;overflow:hidden}.patient-file-link-option small{min-width:0;color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.patient-file-link-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.photo-spotlight-overlay{padding:18px}.photo-spotlight{width:900px;max-height:88vh;position:relative;overflow:hidden}.photo-spotlight-close{z-index:2;background:#ffffffe6;position:absolute;top:12px;right:12px}.photo-spotlight-info{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:18px;display:flex}.photo-spotlight-note{color:var(--ink-2);padding:0 18px 18px;line-height:1.45}.quote-steps{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:0;padding:6px 0 2px;display:grid}.quote-step{min-width:0;color:var(--ink-3);text-align:center;grid-template-rows:26px auto;justify-items:center;gap:7px;display:grid;position:relative}.quote-step:not(:last-child):after{content:"";background:var(--line-2);height:1px;position:absolute;top:13px;left:calc(50% + 17px);right:calc(17px - 50%)}.quote-step.done:not(:last-child):after{background:var(--accent-line)}.quote-step span{background:var(--surface-2);border:1px solid var(--line);width:26px;height:26px;font-size:11px;font-family:var(--font-mono);z-index:1;border-radius:8px;place-items:center;display:grid}.quote-step strong{white-space:normal;max-width:88px;font-size:11.5px;font-weight:650;line-height:1.2}.quote-step.done span{background:var(--accent);border-color:var(--accent);color:#fff}.quote-step.current{color:var(--ink)}.quote-step.current span{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.coverage-stack{gap:8px;display:grid}.coverage-stack>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.coverage-stack span{color:var(--ink-3)}.bar-chart{border-bottom:1px solid var(--line);grid-template-columns:repeat(6,1fr);align-items:end;gap:16px;height:270px;padding:18px 8px 0;display:grid}.chart-month{text-align:center;grid-template-rows:1fr 24px;align-items:end;gap:8px;height:100%;display:grid}.chart-bars{justify-content:center;align-items:end;gap:5px;height:100%;display:flex}.chart-bars span{border-radius:7px 7px 0 0;width:13px;min-height:14px}.legend{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin-top:14px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:50%;width:8px;height:8px;display:inline-block}.line-chart{border-bottom:1px solid var(--line);width:100%;min-height:250px}.line-chart svg{width:100%;height:auto;display:block;overflow:visible}.line-grid{stroke:var(--line);stroke-width:1px}.line-axis{fill:var(--ink-3);font-family:var(--font-mono);font-size:10.5px}.line-series{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.line-series.accent,.line-dot.accent{stroke:var(--accent);fill:var(--accent)}.line-series.info,.line-dot.info{stroke:var(--info);fill:var(--info)}.line-series.warn,.line-dot.warn{stroke:var(--warn);fill:var(--warn)}.line-dot{stroke-width:2px;paint-order:stroke;stroke:var(--surface)}.imaging-stack{gap:var(--gap);display:grid}.imaging-combined-card{flex-direction:column;height:326px;display:flex}.imaging-combined-card .card-body{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex}.imaging-overview{gap:var(--gap);grid-template-columns:minmax(190px,.32fr) minmax(0,1fr);align-items:stretch;display:grid}.imaging-combined-card .imaging-overview{flex:1;min-height:0}.imaging-exam-panel{border-right:1px solid var(--line);min-height:0;padding-right:12px}.imaging-radio-panel{flex-direction:column;min-width:0;min-height:0;display:flex}.imaging-exam-list{gap:7px;min-height:0;padding-right:2px;display:grid;overflow:auto}.imaging-exam-row{border:1px solid var(--line);background:var(--surface);min-width:0;height:42px;color:inherit;text-align:left;cursor:pointer;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.imaging-exam-row .list-main{min-width:0;overflow:hidden}.imaging-exam-row .list-title,.imaging-exam-row .list-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.imaging-exam-row .list-title{font-size:12px}.imaging-exam-row .list-meta{margin-top:1px;font-size:10.8px}.imaging-exam-row .badge{text-overflow:ellipsis;justify-self:end;max-width:62px;height:18px;padding:0 6px;font-size:10px;overflow:hidden}.imaging-exam-row:hover,.imaging-exam-row.item-active{border-color:var(--accent-line);background:var(--accent-soft)}.imaging-radio-shell{flex:1;min-height:0;position:relative}.imaging-analyze-btn{z-index:2;box-shadow:var(--sh-1);position:absolute;top:9px;left:9px}.imaging-scan-viewer{width:100%;height:100%;color:inherit;cursor:zoom-in;text-align:left;padding:0}.imaging-scan-viewer:hover{border-color:var(--accent-line)}.imaging-zoom-cue{color:#eaf1ec;background:#00000073;border:1px solid #ffffff24;border-radius:7px;align-items:center;gap:6px;padding:6px 8px;font-size:11.5px;display:inline-flex;position:absolute;bottom:10px;right:10px}.imaging-radio-meta{justify-content:space-between;align-items:center;gap:10px;padding-top:10px;display:flex}.imaging-status-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.imaging-radio-empty{border:1px dashed var(--line-2);background:var(--surface-2);min-height:0;color:var(--ink-2);border-radius:12px;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.scan-viewer{background:radial-gradient(circle at 50% 54%,#303239,#111215 72%);border:1px solid #111;border-radius:12px;justify-content:center;align-items:center;height:310px;display:flex;position:relative;overflow:hidden}.scan-viewer.imaging-scan-viewer{height:100%;min-height:0}.imaging-scan-viewer .scan-arch{justify-content:center;width:min(78%,620px);transform:translateY(8px)}.imaging-scan-viewer .scan-arch img{object-fit:contain;width:clamp(22px,4.2vw,38px);min-width:0;max-height:72px}.scan-arch{opacity:.38;filter:grayscale()contrast(1.25)brightness(1.25);align-items:center;gap:1px;display:flex;transform:translateY(12px)}.scan-arch img{object-fit:contain;width:42px;max-height:82px}.scan-arch.large img{width:58px;max-height:118px}.scan-crosshair{border:1px solid #eaf1ece6;border-radius:50%;width:72px;height:72px;position:absolute;top:48%;left:58%;box-shadow:0 0 0 999px #00000014}.scan-crosshair:before,.scan-crosshair:after{content:"";background:#eaf1ece6;position:absolute}.scan-crosshair:before{width:1px;top:-18px;bottom:-18px;left:50%}.scan-crosshair:after{height:1px;top:50%;left:-18px;right:-18px}.scan-label{color:#eaf1ec;background:#00000073;border:1px solid #ffffff26;border-radius:7px;padding:6px 9px;font-size:12px;position:absolute;bottom:16px;left:16px}.imaging-spotlight{width:960px;max-height:88vh;position:relative;overflow:hidden}.imaging-spotlight-viewer{border:0;border-radius:0;height:560px}.imaging-analysis-modal{width:min(1180px,78vw);max-width:78vw;max-height:88vh;overflow:hidden}.imaging-analysis-modal .card-body{max-height:calc(88vh - 58px);padding:14px;overflow:hidden}.imaging-analysis-loading{justify-content:center;align-items:center;gap:14px;min-height:330px;display:flex}.analysis-spinner{border:3px solid var(--line-2);border-top-color:var(--accent);border-radius:999px;width:34px;height:34px;animation:.82s linear infinite spin}.imaging-analysis-grid{grid-template-columns:minmax(0,1fr) minmax(330px,.72fr);align-items:stretch;gap:14px;height:min(500px,88vh - 100px);min-height:420px;display:grid;overflow:hidden}.imaging-analysis-viewer{height:100%;min-height:0;padding:0 20px}.imaging-analysis-viewer .scan-arch.large{justify-content:center;width:100%;max-width:720px}.imaging-analysis-viewer .scan-arch.large img{width:clamp(20px,2.4vw,36px);min-width:0;max-height:94px}.imaging-annotation-layer{pointer-events:none;position:absolute;inset:0}.imaging-finding-marker{background:color-mix(in srgb,currentColor 16%,transparent);border:2px solid;border-radius:999px;width:54px;height:36px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffff73,0 10px 18px #0000002e}.imaging-finding-marker.root-line{border-radius:999px;width:18px;height:72px}.imaging-finding-marker>span{color:#fff;min-width:28px;font-family:var(--font-mono);text-align:center;background:currentColor;border-radius:999px;padding:2px 6px;font-size:10px;position:absolute;top:-21px;left:50%;transform:translate(-50%)}.imaging-findings-panel{flex-direction:column;gap:9px;min-width:0;min-height:0;display:flex}.imaging-findings-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.imaging-finding-list{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:7px;min-height:0;max-height:none;padding-right:2px;display:grid;overflow:auto}.imaging-finding-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:7px;min-width:0;padding:7px;display:grid}.imaging-finding-dot{border-radius:999px;flex:none;width:9px;height:9px}.imaging-finding-control{grid-template-columns:9px minmax(0,1fr);align-items:center;gap:6px;min-width:0;display:grid}.imaging-finding-subcontrol{grid-template-columns:42px minmax(54px,1fr) 28px;align-items:center;gap:6px;min-width:0;display:grid}.imaging-finding-control .input,.imaging-finding-subcontrol .input{min-width:0;height:27px;padding:0 7px;font-size:11.5px}.imaging-finding-subcontrol .badge{justify-content:center;min-width:0;padding:0 5px}.imaging-finding-subcontrol .btn-icon{width:28px;height:27px}.imaging-analysis-actions{border-top:1px solid var(--line);gap:8px;margin-top:auto;padding-top:9px;display:grid}.imaging-analysis-actions>.btn{width:100%;min-width:0}.imaging-ia-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.imaging-ia-actions .btn{white-space:normal;width:100%;min-width:0;height:36px;padding:0 8px;font-size:12px;line-height:1.1}.imaging-action-note{font-size:11.5px;line-height:1.35}.ptt-card{margin-top:0}.phase-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:11px 12px;display:flex}.phase-row-draft{border-color:var(--accent-line);background:var(--accent-soft)}.odontogram-editor-frame{min-width:0;height:330px}.odontogram-edit-panel{min-width:0;overflow:hidden}.odontogram-edit-panel.open{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);grid-template-rows:minmax(0,1fr) auto auto;gap:9px;padding:10px;display:grid}.odontogram-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:100%;min-width:0;min-height:0;display:grid}.odontogram-tool-column{grid-template-rows:auto minmax(0,1fr);gap:7px;min-height:0;display:grid}.odontogram-tool-heading{color:var(--ink-3);text-transform:uppercase;font-size:10.5px;font-weight:700}.odontogram-tool-list{scrollbar-width:thin;grid-auto-rows:34px;align-content:start;gap:7px;min-height:0;padding-right:2px;display:grid;overflow:hidden auto}.odontogram-tool-grid .btn{border-color:color-mix(in srgb,var(--tool-color,var(--line-2))34%,var(--line-2));background:color-mix(in srgb,var(--tool-color,var(--surface-2))13%,var(--surface));width:100%;min-width:0;height:34px;min-height:34px;color:color-mix(in srgb,var(--tool-color,var(--ink))72%,var(--ink));justify-content:flex-start;gap:6px;padding:0 8px}.odontogram-tool-grid .btn:hover{background:color-mix(in srgb,var(--tool-color,var(--surface-2))20%,var(--surface));border-color:color-mix(in srgb,var(--tool-color,var(--ink-4))48%,var(--line-2))}.odontogram-tool-grid .btn span{white-space:nowrap;min-width:0}.odontogram-tool-grid .active{background:var(--tool-color,var(--ink));color:#fff;border-color:var(--tool-color,var(--ink))}.odontogram-edit-actions{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-top:9px;display:grid}.odontogram-edit-actions .btn{border-color:color-mix(in srgb,var(--tool-color,var(--line-2))34%,var(--line-2));background:color-mix(in srgb,var(--tool-color,var(--surface-2))11%,var(--surface));width:100%;min-width:0;color:color-mix(in srgb,var(--tool-color,var(--ink))72%,var(--ink));justify-content:flex-start;gap:6px;padding:0 8px}.odontogram-edit-actions .btn:disabled{opacity:.38}.odontogram-edit-actions .btn span{white-space:nowrap;min-width:0}.odontogram-edit-actions .active{background:var(--tool-color,var(--ink));color:#fff;border-color:var(--tool-color,var(--ink))}.tool-carie{--tool-color:#0f0f0e}.tool-parodontite{--tool-color:#b0432e}.tool-racines_extraire,.tool-extraire{--tool-color:#8f2f21}.tool-amalgame{--tool-color:#64707a}.tool-absent{--tool-color:#6e685b}.tool-resto{--tool-color:#3c7a5c}.tool-inlay_onlay{--tool-color:#2d7f73}.tool-couronne,.tool-implant{--tool-color:#5b2e74}.tool-devit{--tool-color:#cd731e}.tool-bridge{--tool-color:#4e2a62}.tool-stellite{--tool-color:#6e685b}.tool-appareil_complet{--tool-color:#45617a}.tool-facette{--tool-color:#6f5fa8}.tool-clear,.tool-undo{--tool-color:#7e796d}.odontogram-face-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;display:grid}.odontogram-face-picker .page-kicker{grid-column:1/-1}.odontogram-face-picker .face-pill{width:100%;padding:0 6px}.odontogram-layout{grid-template-columns:0 minmax(0,1fr) 0;align-items:stretch;gap:0;height:100%;min-height:0;transition:grid-template-columns .22s cubic-bezier(.2,.8,.2,1),gap .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden}.odontogram-layout.panel-open{grid-template-columns:0 minmax(0,1fr) 220px;gap:12px}.odontogram-layout.edit-mode{grid-template-columns:380px minmax(0,1fr) 0;gap:12px}.tooth-board{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(#fff,#fbf9f4);justify-content:center;align-items:center;height:394px;padding:8px 12px;transition:justify-content .18s;display:flex;overflow:hidden}.odontogram-editor-frame .tooth-board{height:100%;min-height:0}.odontogram-editor-frame.editing .tooth-board,.odontogram-editor-frame.panel-open .tooth-board{padding:10px 12px}.odontogram-layout.panel-open .tooth-board,.odontogram-layout.edit-mode .tooth-board{justify-content:center}.tooth-grid{width:640px;min-width:640px;max-width:100%;margin:0;transition:width .2s cubic-bezier(.2,.8,.2,1),min-width .2s cubic-bezier(.2,.8,.2,1)}.tooth-row{justify-content:center;align-items:center;gap:0;display:flex}.tooth-row.upper-teeth{align-items:flex-end}.tooth-row.lower-teeth{align-items:flex-start}.tooth-mid-gap{flex:none;justify-content:center;align-self:stretch;width:20px;display:flex}.odontogram-layout.panel-open .tooth-mid-gap,.odontogram-layout.edit-mode .tooth-mid-gap{width:14px}.tooth-mid-gap.line:before{content:"";background:var(--accent-line);width:1.5px}.tooth-num{height:18px;font-family:var(--font-mono);color:var(--ink-3);justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex}.odontogram-layout.panel-open .tooth-num,.odontogram-layout.edit-mode .tooth-num{height:16px;font-size:9.5px}.tooth{cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:end;padding:0;display:flex;position:relative;overflow:visible}.tooth img{object-fit:contain;filter:drop-shadow(0 2px 2px #1e1a1229);display:block}.tooth-treatment-img{pointer-events:none;opacity:.9;position:absolute;inset:0}.tooth-treatment-img.ceramic{opacity:.46;mix-blend-mode:multiply}.tooth-overlay-svg{pointer-events:none;filter:drop-shadow(0 1px 1px #1e1a121f);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tooth-bridge-connector-svg,.tooth-complete-connector-svg{filter:none;z-index:auto}.tooth.lower{align-items:start}.tooth.active:after{content:"";border:1px solid var(--accent);box-shadow:0 0 0 3px var(--accent-soft);pointer-events:none;border-radius:9px;position:absolute;inset:0 3px}.tooth-missing{border:1px dashed var(--line-2);width:72%;height:48%;color:var(--ink-4);font-family:var(--font-mono);background:#f4f1ea9e;border-radius:14px;place-items:center;font-size:10px;display:grid}.tooth-missing.prosthesis{color:var(--ink-2);background:#6e685b24;border-color:#6e685b61}.tooth-missing.complete{color:var(--info);background:#45617a24;border-color:#45617a66}.tooth-absent-shape{opacity:.78;background-color:#6e685b14;background-image:radial-gradient(circle,#6e685b61 0 1px,#0000 1.15px);background-position:50%;background-size:7px 7px;flex:none;display:block}.tooth-absent-shape.prosthesis{background-color:#6e685b1a;background-image:radial-gradient(circle,#6e685b73 0 1px,#0000 1.15px)}.tooth-absent-shape.complete{background-color:#45617a17;background-image:radial-gradient(circle,#45617a6b 0 1px,#0000 1.15px)}.tooth-badges{pointer-events:none;z-index:3;justify-content:center;align-items:center;gap:3px;display:flex;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.tooth-note-icon,.tooth-radio-icon,.tooth-file-icon{color:#fff;border:2px solid var(--surface);border-radius:999px;place-items:center;width:22px;height:22px;padding:3px;display:grid;box-shadow:0 2px 5px #28231924}.tooth-note-icon{background:var(--info)}.tooth-radio-icon{color:#eaf1ec;background:#1a1a17}.tooth-file-icon{background:var(--accent);color:#fff}.tooth-note-icon svg,.tooth-radio-icon svg,.tooth-file-icon svg{display:block}.tooth.lower .tooth-badges{top:auto;bottom:-6px}.occ-row{border-top:1px solid var(--accent-line);border-bottom:1px solid var(--accent-line);justify-content:center;align-items:center;gap:0;margin:3px 0;padding:4px 0;display:flex}.occ{flex:none;justify-content:center;align-items:center;height:22px;display:flex;position:relative}.occ img{opacity:.9;max-width:88%;max-height:20px}.odontogram-layout.panel-open .occ-row,.odontogram-layout.edit-mode .occ-row{margin:2px 0;padding:3px 0}.odontogram-layout.panel-open .occ,.odontogram-layout.edit-mode .occ{height:19px}.odontogram-layout.panel-open .occ img,.odontogram-layout.edit-mode .occ img{max-height:17px}.occ.marked{background:#b0432e47;border-radius:6px}.occ.empty{border:1px dashed var(--line-2);background:var(--surface-2);border-radius:6px}.occ.roots-only{background:#8f2f211a;border:1px dashed #8f2f215c;border-radius:6px}.occ.bridge-pontic{background:#5b2e7438;border-radius:6px;box-shadow:inset 0 0 0 1px #5b2e7457}.occ-mark{pointer-events:none;border:1px solid #ffffffd1;border-radius:999px;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #2a22161a}.occ-mark.carie{background:#0f0f0e}.occ-mark.resto{background:#3c7a5c}.palette{scrollbar-width:thin;flex-wrap:wrap;flex:1;gap:7px;min-width:0;padding-bottom:0;display:flex;overflow:visible}.palette .btn{flex:none}.palette .active{background:var(--ink);color:#fff;border-color:var(--ink)}.face-palette{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:7px;width:fit-content;padding:8px;display:flex}.face-pill{height:27px;color:var(--ink-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:0 9px;font-size:12px;font-weight:650}.face-pill:hover{background:var(--surface);border-color:var(--line);color:var(--ink)}.face-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.tooth-selection-tile{border:1px solid var(--line);background:var(--surface);opacity:0;pointer-events:none;border-radius:10px;align-self:stretch;width:220px;min-width:0;padding:12px;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s;transform:translate(24px)}.tooth-selection-tile.open{opacity:1;pointer-events:auto;transform:none}.tooth-selection-tile.commenting{border-color:var(--accent-line);background:var(--accent-soft)}.tooth-panel-content{flex-direction:column;justify-content:flex-start;gap:15px;min-width:0;height:100%;display:flex}.tooth-panel-head{gap:4px;display:grid}.tooth-panel-title{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.tooth-panel-title .num{font-size:20px;font-weight:650;line-height:1}.tooth-panel-title strong{min-width:0;color:var(--ink);font-size:12.5px;font-weight:650;line-height:1.18}.tooth-panel-section{border-top:1px solid var(--line);gap:8px;min-width:0;padding-top:12px;display:grid}.tooth-panel-head+.tooth-panel-section{border-top:0;padding-top:0}.tooth-panel-label{color:var(--ink-3);letter-spacing:0;text-transform:uppercase;font-size:10.5px;font-weight:700}.tooth-state-list{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.tooth-state-tag{color:#fff;border-color:#0000}.tooth-state-carie{background:#0f0f0e}.tooth-state-resto{background:#3c7a5c}.tooth-state-inlay_onlay{background:#2d7f73}.tooth-state-devit{background:#cd731e}.tooth-state-couronne,.tooth-state-implant{background:#5b2e74}.tooth-state-extraire,.tooth-state-racines_extraire{background:#8f2f21}.tooth-state-amalgame{background:#64707a}.tooth-state-parodontite{background:#b0432e}.tooth-state-bridge{background:#4e2a62}.tooth-state-stellite{background:#6e685b}.tooth-state-appareil_complet{background:#45617a}.tooth-state-facette{background:#6f5fa8}.tooth-state-absent{background:var(--ink-3)}.tooth-note-input{resize:none;background:#ffffffbd;height:82px;min-height:82px;max-height:82px;margin-top:0;overflow-y:auto}.tooth-note-read{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);border-radius:8px;margin-top:12px;padding:10px 11px;font-size:12.5px;line-height:1.42}.tooth-info-card{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);border-radius:8px;padding:8px 9px;font-size:11.5px;line-height:1.25}.tooth-info-card.muted-card{color:var(--ink-3)}.tooth-info-title{color:var(--ink);font-weight:650}.tooth-info-meta{color:var(--ink-3);font-family:var(--font-mono);margin-top:2px;font-size:10.5px}.tooth-info-text{margin-top:3px}.tooth-radio-card{border:1px solid var(--line);background:var(--surface-2);width:100%;min-width:0;color:var(--ink-2);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:7px;padding:7px;display:flex;overflow:hidden}.tooth-radio-card:hover{border-color:var(--accent-line);background:var(--surface)}.tooth-radio-thumb{color:#eaf1ec;background:#1a1a17;border-radius:7px;flex:none;place-items:center;width:28px;height:28px;display:grid}.tooth-file-list{gap:6px;max-height:112px;padding-right:2px;display:grid;overflow:auto}.tooth-file-card{border:1px solid var(--line);background:var(--surface-2);width:100%;min-width:0;color:var(--ink-2);text-align:left;border-radius:8px;align-items:center;gap:7px;padding:7px;display:flex;overflow:hidden}.tooth-file-card.clickable{cursor:pointer;font:inherit}.tooth-file-card.clickable:hover{border-color:var(--accent-line);background:var(--surface)}.tooth-file-thumb{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:7px;flex:none;place-items:center;display:grid}.tooth-file-thumb.photo{background:var(--info-soft);color:var(--info)}.tooth-radio-main{gap:1px;min-width:0;display:grid;overflow:hidden}.tooth-radio-main span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.tooth-radio-empty{color:var(--ink-3);margin:0;font-size:11.5px;line-height:1.35}.tooth-radio-spotlight{width:760px;max-height:86vh;position:relative;overflow:hidden}.tooth-radio-viewer{background:radial-gradient(circle at 50% 54%,#303239,#111215 72%);border:0;border-radius:0;justify-content:center;align-items:center;height:460px;display:flex;position:relative;overflow:hidden}.reset-modal{width:440px}.reset-modal-copy{color:var(--ink-2);margin:0;font-size:13px;line-height:1.45}.btn-saved,.btn-saved:hover{background:var(--surface-3);border-color:var(--line-2);color:var(--ink-3);cursor:default}.assoc-row{flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;display:flex}.acts-grid{gap:var(--gap);grid-template-columns:minmax(0,2.15fr) minmax(220px,.75fr);align-items:stretch;height:320px;min-height:320px;display:grid;overflow:hidden}.acts-grid.billed-expanded{grid-template-columns:minmax(180px,.62fr) minmax(0,2.38fr)}.act-section{border:1px solid var(--line);border-radius:var(--r);background:#fff;flex-direction:column;min-width:0;min-height:0;padding:14px;display:flex;overflow:hidden}.act-section .tbl-wrap{flex:auto;min-width:0;min-height:0;max-height:286px;overflow:hidden auto}.act-section .tbl{table-layout:fixed;width:100%;min-width:0}.act-section .tbl th,.act-section .tbl td{min-width:0;overflow:hidden}.act-section-to-bill{min-height:320px}.act-section-to-bill .tbl-wrap{min-height:190px;max-height:286px}.act-section-condensed .tbl-wrap{min-height:0}.act-section-expanded .tbl-wrap{max-height:286px;overflow:hidden auto}.act-summary{border-top:1px solid var(--line);white-space:nowrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:auto;padding-top:12px;font-size:12.5px;font-weight:650;display:flex}.act-summary-totals{gap:5px;min-width:0;display:grid}.act-summary-totals div{grid-template-columns:42px auto;align-items:baseline;gap:10px;display:grid}.act-summary-totals span{color:var(--ink-3);font-weight:600}.act-summary-actions{gap:7px;min-width:136px;display:grid}.act-section-expanded .act-summary{justify-content:flex-end;align-items:center;padding-top:8px}.act-section-expanded .act-summary-totals{justify-content:flex-end;align-items:center;gap:14px;display:flex}.act-section-expanded .act-summary-totals div{align-items:baseline;gap:5px;display:flex}.act-select-col{text-align:center;width:24px;padding-left:3px!important;padding-right:0!important}.act-select-button{border:1px solid var(--line-2);background:var(--surface);color:#fff;cursor:pointer;vertical-align:middle;border-radius:999px;place-items:center;width:18px;height:18px;padding:0;display:inline-grid}.act-select-button.active{background:var(--accent);border-color:var(--accent)}.act-table-wide{table-layout:fixed;font-size:12px}.act-table-wide thead th{padding-top:7px;padding-bottom:7px;font-size:10px}.act-table-wide th,.act-table-wide td{padding-left:10px;padding-right:10px}.act-table-wide tbody td{padding-top:8px;padding-bottom:8px}.act-label-cell{min-width:0}.act-label-cell>div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.act-table-wide .act-label-cell>div{font-size:12px;line-height:1.22}.act-table-wide .num{font-size:11.5px}.act-table-compact thead th{padding-left:9px;padding-right:9px}.act-table-compact tbody td{padding:8px 9px}.act-table-compact .act-label-cell{width:100%}.act-table-compact .act-label-cell>div{max-width:100%;font-size:12px;line-height:1.2}.act-code-col{width:92px}.act-tooth-col{width:62px}.act-money-col{width:94px;text-align:right!important}.act-money-edit-button{width:100%;color:inherit;cursor:text;text-align:right;background:0 0;border:0;border-radius:6px;padding:2px 4px}.act-money-edit-button:hover{background:var(--surface-2)}.act-money-input{border:1px solid var(--accent-line);width:100%;height:25px;color:var(--ink);text-align:right;box-shadow:0 0 0 2px var(--accent-soft);background:#fff;border-radius:6px;outline:none;padding:0 5px}.act-section-compact{gap:12px}.act-compact-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.act-compact-total{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;gap:8px;padding:12px;display:grid}.act-compact-total span{color:var(--ink-3);font-size:11.5px;font-weight:650}.act-compact-total strong{font-size:18px}.act-compact-total>div:first-child{gap:4px;display:grid}.act-compact-split{border-top:1px solid var(--line);white-space:nowrap;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;display:flex}.act-compact-lines{flex:1;align-content:start;gap:7px;min-height:0;display:grid}.act-compact-line{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px;min-width:0;font-size:12px;display:grid}.act-compact-line span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);overflow:hidden}.act-section-compact>.btn{width:100%;margin-top:auto}.modal.billing-modal{flex-direction:column;width:min(1080px,94vw);max-width:94vw;max-height:90vh;display:flex;overflow:hidden}.billing-stepper{border-bottom:1px solid var(--line);background:var(--surface-2);align-items:flex-start;gap:0;padding:12px 18px 10px;display:flex;position:relative;overflow:hidden}.billing-stepper:before{content:"";background:var(--line-2);border-radius:999px;height:2px;position:absolute;top:26px;left:48px;right:48px}.billing-step{z-index:1;min-width:0;height:42px;color:var(--ink-3);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:0;flex:1 1 0;grid-template-rows:22px 1fr;place-items:start center;gap:4px;padding:0 4px;font-size:11px;font-weight:650;line-height:1.1;display:grid;position:relative;overflow:hidden}.billing-step:disabled{cursor:default;opacity:.78}.billing-step span{background:var(--surface);width:22px;height:22px;color:var(--ink-2);border:1px solid var(--line-2);box-shadow:0 0 0 4px var(--surface-2);font-family:var(--font-mono);border-radius:999px;place-items:center;font-size:10.5px;display:grid}.billing-step.active{color:var(--ink)}.billing-step.done{color:var(--accent)}.billing-step.done span,.billing-step.active span{background:var(--accent);color:#fff}.billing-body{flex:0 auto;min-height:0;max-height:calc(90vh - 142px);padding:16px;overflow:auto}.billing-grid{gap:var(--gap);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;display:grid}.billing-grid.payment{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.billing-panel{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:12px;min-width:0;padding:13px;display:flex}.billing-panel-head{align-items:flex-start;gap:10px;display:flex}.billing-panel-head>svg{color:var(--accent);flex:none;margin-top:1px}.billing-panel-head .list-title,.billing-panel-head .list-meta{white-space:normal;text-overflow:clip;overflow:visible}.billing-identity,.billing-mode-summary,.billing-close-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.billing-identity div,.billing-mode-summary div,.billing-close-grid div{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;gap:4px;min-width:0;padding:10px;display:grid}.billing-identity span,.billing-mode-summary span,.billing-close-grid span{color:var(--ink-3);font-size:11.5px;font-weight:650}.billing-identity strong,.billing-mode-summary strong,.billing-close-grid strong{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;min-width:0;font-size:13px;overflow:visible}.billing-act-wrap{max-height:250px}.billing-act-table{table-layout:fixed;font-size:12px}.billing-act-table th,.billing-act-table td{padding-left:9px;padding-right:9px}.billing-act-table th:first-child,.billing-act-table td:first-child{white-space:normal;overflow-wrap:anywhere;width:34%}.billing-act-table .num{white-space:nowrap}.billing-options,.billing-checklist{gap:9px;display:grid}.billing-option{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;align-items:flex-start;gap:11px;padding:11px;display:flex}.billing-option.active{border-color:var(--accent-line);background:var(--accent-soft)}.billing-option div{gap:4px;min-width:0;display:grid}.billing-option strong{font-size:13px}.billing-option span:not(.centre-code){color:var(--ink-2);font-size:12px;line-height:1.35}.billing-check{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:var(--ink-2);text-align:left;cursor:pointer;white-space:normal;border-radius:10px;align-items:center;gap:10px;padding:10px 11px;font-weight:650;line-height:1.25;display:flex}.billing-check>span{border:1px solid var(--line-2);color:#fff;background:#fff;border-radius:999px;flex:none;place-items:center;width:20px;height:20px;display:grid}.billing-check.active{color:var(--ink);border-color:var(--accent-line);background:var(--accent-soft)}.billing-check.active>span{background:var(--accent);border-color:var(--accent)}.billing-warning{border:1px solid var(--warn-soft);background:var(--warn-soft);color:var(--warn);border-radius:10px;align-items:flex-start;gap:9px;padding:10px 11px;font-size:12.5px;font-weight:650;display:flex}.billing-warning.muted{border-color:var(--line);background:var(--surface-2);color:var(--ink-2)}.billing-close-grid.single{grid-template-columns:1fr}.billing-payment-methods{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:4px;display:flex}.billing-field{gap:5px;display:grid}.billing-field span{color:var(--ink-3);font-size:11.5px;font-weight:650}.billing-cheques,.billing-cheque-list,.invoice-editor,.invoice-fields{gap:9px;display:grid}.billing-cheque-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.billing-field.compact .input{width:100%}.invoice-step-grid{gap:var(--gap);grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);align-items:start;display:grid}.invoice-success-panel{gap:14px}.billing-success{background:var(--ok-soft);color:var(--ink);border-radius:12px;align-items:center;gap:13px;padding:13px;display:flex}.billing-success-ring{background:var(--ok);color:#fff;border-radius:999px;flex:none;place-items:center;width:48px;height:48px;animation:.85s ease-out both successPulse;display:grid;box-shadow:0 0 #3c7a5c3d}.invoice-editor-panel{gap:11px}.invoice-editor{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.invoice-fields{grid-template-columns:minmax(120px,.75fr) minmax(0,1fr)}.invoice-address{grid-column:1/-1}.invoice-address .textarea{resize:none;min-height:74px;max-height:96px;font-size:12px}.invoice-preview{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;gap:8px;padding:11px;display:grid}.invoice-preview-head,.invoice-preview-lines div,.invoice-preview-total{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.invoice-preview-lines{gap:5px;font-size:12px;display:grid}.invoice-preview-lines span{text-overflow:clip;white-space:normal;min-width:0;color:var(--ink-2);overflow:visible}.invoice-preview-total{border-top:1px solid var(--line);padding-top:8px;font-weight:650}.invoice-actions,.invoice-status-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.billing-foot{border-top:1px solid var(--line);background:var(--surface);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.billing-foot-main{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.modal.catalog-modal{width:820px;max-height:82vh}.catalog-body{grid-template-columns:190px 1fr;min-height:420px;max-height:58vh;display:grid}.catalog-cats{border-right:1px solid var(--line);background:var(--surface-2);padding:8px;overflow:auto}.catalog-list{padding:10px;overflow:auto}.modal.act-picker-modal{flex-direction:column;width:min(1160px,95vw);max-height:88vh;display:flex;overflow:hidden}.act-picker-body{grid-template-columns:176px minmax(0,1fr);min-height:510px;max-height:calc(86vh - 102px)}.act-picker-results{grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);min-width:0;min-height:0;display:grid}.act-picker-list{border-right:1px solid var(--line);align-content:start;gap:8px;min-width:0;min-height:0;padding:10px;display:grid;overflow:auto}.act-picker-row{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.act-picker-row:hover,.act-picker-row.active{border-color:var(--accent-line);background:var(--accent-soft)}.act-picker-row-main{gap:3px;min-width:0;display:grid}.act-picker-row-main .list-meta{align-items:center;gap:8px;min-width:0;display:flex}.act-picker-row-side{color:var(--ink-3);justify-items:end;gap:5px;font-size:11.5px;display:grid}.act-picker-detail{flex-direction:column;gap:13px;min-width:0;min-height:0;padding:14px;display:flex;overflow:auto}.act-picker-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.act-picker-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.act-picker-metrics>div,.act-picker-total{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:10px}.act-picker-metrics span,.act-picker-total span{color:var(--ink-3);margin-bottom:5px;font-size:11px;font-weight:650;display:block}.act-picker-metrics strong{font-size:15px}.act-picker-official{border:1px solid var(--line);max-height:76px;color:var(--ink-2);background:var(--surface);border-radius:10px;padding:10px;font-size:12.5px;line-height:1.35;overflow:auto}.act-picker-fields{grid-template-columns:minmax(0,1fr) 126px 116px;gap:9px;display:grid}.act-picker-total{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}.act-picker-total strong{font-size:18px}.act-picker-warning{border:1px solid var(--warn-line);color:var(--warn);background:var(--warn-soft);border-radius:10px;padding:9px 10px;font-size:12px;line-height:1.35}.act-picker-body--veasy{grid-template-columns:216px minmax(0,1fr)}.act-picker-body--veasy .act-picker-results{grid-template-columns:minmax(0,.82fr) minmax(458px,1.05fr)}.act-picker-body--veasy .act-picker-detail{gap:12px;padding:16px}.act-picker-body--veasy .act-picker-detail-head .card-title{font-size:14px;font-weight:650}.act-picker-body--veasy .act-picker-row .list-title{font-size:12.5px;line-height:1.3}.act-picker-body--veasy .act-picker-row{padding:8px 10px}.act-picker-body--veasy .act-picker-fields{grid-template-columns:minmax(0,1fr) 150px}.act-picker-body--veasy .act-picker-official{max-height:60px;font-size:12px}.veasy-tree{flex-direction:column;gap:2px;padding:8px 6px;display:flex}.veasy-fam{flex-direction:column;display:flex}.veasy-fam-head{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:7px 8px;font-size:12.5px;font-weight:650;display:flex}.veasy-fam-head:hover{background:var(--surface)}.veasy-fam-head.open{color:var(--accent)}.veasy-fam-head svg{color:var(--ink-3);flex:none}.veasy-cat{width:100%;color:var(--ink-2);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-left:18px;padding:6px 9px;font-size:12px;display:flex}.veasy-cat:hover{background:var(--surface)}.veasy-cat.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--ink);font-weight:600}.veasy-cat-count{font-family:var(--font-mono);color:var(--ink-3);flex:none;font-size:10.5px}.veasy-group-head{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);padding:9px 6px 3px;font-size:11px;font-weight:700}.veasy-list-hint{color:var(--ink-3);padding:2px 4px 6px;font-size:11.5px}.rac-panel{flex-direction:column;gap:10px;display:flex}.rac-zone-tabs{flex-wrap:wrap;gap:6px;display:flex}.rac-zone-tab{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:5px 11px;font-size:12px}.rac-zone-tab.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--ink);font-weight:600}.rac-panier-group{flex-direction:column;gap:5px;display:flex}.rac-panier-head{color:var(--ink);align-items:center;gap:7px;font-size:12px;font-weight:650;display:flex}.rac-dot{border-radius:50%;flex:none;width:9px;height:9px}.rac-variant-row{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:4px 9px;display:flex}.rac-variant-row:hover,.rac-variant-row.active{border-color:var(--accent-line);background:var(--accent-soft)}.rac-variant-main{gap:1px;min-width:0;display:grid}.rac-variant-mat{white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:550;overflow:hidden}.rac-variant-main .list-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:1px 8px;font-size:9px;display:flex}.rac-variant-row>strong{flex:none;font-size:13px}.veasy-tooth{flex-direction:column;gap:8px;display:flex}.veasy-tooth-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.veasy-tooth-head>span{color:var(--ink-3);font-size:11px;font-weight:650}.veasy-tooth-mode{gap:6px;display:flex}.veasy-tooth-mode button{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:3px 9px;font-size:11px}.veasy-tooth-mode button.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--ink);font-weight:600}.act-picker-detail .act-tooth-picker{gap:5px}.act-picker-detail .act-tooth-row{gap:3px}.act-picker-detail .act-tooth-cell{border-radius:7px;height:30px;font-size:11px}.act-tooth-cell.range-preview{border-color:var(--accent-line);background:var(--accent-soft);opacity:.6}.veasy-sextants{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.veasy-sextant{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;text-align:center;border-radius:9px;padding:9px 8px;font-size:11.5px}.veasy-sextant.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--ink);font-weight:600}.veasy-sextant small{color:var(--ink-3);margin-top:2px;font-size:10px;display:block}.act-entry{gap:var(--gap-lg);grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);align-items:stretch;height:calc(100vh - 308px);min-height:460px;display:grid}.act-entry-catalog{border:1px solid var(--line);border-radius:var(--r-lg);height:100%;min-height:0;box-shadow:var(--sh-1);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.act-entry-cat-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;display:flex}.act-entry-catalog .cmd-input{border-bottom:1px solid var(--line);flex:none}.act-entry-cat-body{flex:auto;grid-template-columns:190px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.act-entry-cat-body .catalog-cats{border-right:1px solid var(--line)}.act-entry-cat-body .veasy-cat{margin-left:10px;padding:5px 8px;font-size:11.5px}.act-entry-cat-body .veasy-fam-head{padding:6px 8px;font-size:11.5px}.veasy-fam-solo{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:11.5px;font-weight:650;display:flex}.veasy-fam-solo:hover{background:var(--surface-2)}.veasy-fam-solo.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--ink)}.act-entry-cat-body .act-picker-list{align-content:start;gap:5px;padding:8px;display:grid;overflow:auto}.act-entry-cat-body .act-picker-row{padding:5px 9px}.act-entry-cat-body .act-picker-row .list-title{font-size:11px;line-height:1.22}.act-entry-cat-body .act-picker-row .list-meta{font-size:9.5px}.rac-variant-row .rac-variant-mat{flex:auto;min-width:0}.rac-variant-ccam{font-family:var(--font-mono);color:var(--ink-3);flex:none;font-size:11px}.act-entry-detail-view{flex-direction:column;flex:auto;min-height:0;display:flex}.act-entry-back{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:8px;flex:none;align-self:flex-start;align-items:center;gap:4px;margin:10px 12px 0;padding:5px 10px;font-size:12px;display:flex}.act-entry-back:hover{background:var(--surface-2);color:var(--ink)}.act-entry-detail-title{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 14px;display:flex}.act-entry-detail-title .card-title{font-size:14px}.act-entry-detail-scroll{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:12px 14px;display:flex;overflow:auto}.act-entry-instruction{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12px;line-height:1.4}.act-entry-detail-foot{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;flex:none;align-items:flex-end;gap:12px;padding:11px 14px;display:flex}.act-entry-main{gap:var(--gap-lg);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.act-entry-main>.card{flex-direction:column;min-height:0;display:flex;overflow:hidden}.act-entry-bill{height:100%}.act-entry-bill>.card-head{flex:none}.act-entry-bill-body{flex-direction:column;flex:auto;gap:6px;min-height:0;padding:10px;display:flex;overflow:hidden auto}.act-entry-bill-row{border:1px solid var(--line);background:var(--surface);border-radius:9px;align-items:center;gap:10px;padding:7px 10px;display:flex}.act-entry-bill-row.billed{opacity:.65}.act-entry-bill-main{flex:auto;gap:1px;min-width:0;display:grid}.act-entry-bill-label{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.act-entry-bill-meta{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.act-entry-bill-row>strong{flex:none;font-size:13px}.act-entry-includes{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;flex-wrap:wrap;gap:8px 16px;padding:8px 11px;display:flex}.act-entry-include{color:var(--ink);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:550;display:flex}.act-entry-include input{accent-color:var(--accent);width:15px;height:15px}.act-entry-detail-foot .act-entry-includes{flex-flow:wrap;align-self:flex-end;gap:6px 16px;margin-left:10px;padding:7px 11px}.act-entry-detail-foot .act-entry-include{white-space:nowrap;font-size:11.5px}.act-entry-foot-recap{flex-direction:column;align-items:flex-end;gap:1px;margin-left:auto;display:flex}.act-entry-foot-recap>span{color:var(--ink-3);font-size:11px;font-weight:650}.act-entry-foot-amounts{align-items:baseline;gap:8px;display:flex}.act-entry-foot-recap strong{font-size:18px}.act-entry-foot-recap em{color:var(--ink-2);font-size:11px;font-style:normal}.act-del-col{text-align:center;width:38px}.act-del-btn{border:1px solid var(--line);background:var(--surface);width:26px;height:26px;color:var(--ink-3);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.act-del-btn:hover{border-color:var(--crit);color:var(--crit)}.act-entry-main .odontogram-editor-frame,.act-entry-main .odontogram-layout{height:auto}.act-entry-teeth{border:1px dashed var(--line-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;min-height:34px;padding:7px 10px;display:flex}.act-entry-teeth.pick{border-color:var(--accent-line);background:var(--accent-soft)}.tooth-chip{border:1px solid var(--accent-line);background:var(--surface);color:var(--ink);font-family:var(--font-mono);cursor:pointer;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:650}.act-entry-variants{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 16px;display:grid}.act-entry-variants .rac-panier-group{min-width:0}.act-entry-config-foot{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:12px;display:flex}.act-entry-config-total{text-align:right;margin-left:auto}.act-entry-config-total span{color:var(--ink-3);font-size:11px;font-weight:650;display:block}.act-entry-config-total strong{font-size:18px}.act-tooth-picker{-webkit-user-select:none;user-select:none;touch-action:none;gap:10px;display:grid}.act-tooth-row{grid-template-columns:repeat(16,minmax(0,1fr));gap:5px;display:grid}.act-tooth-cell{border:1px solid var(--line-2);background:var(--surface);height:34px;color:var(--ink-2);cursor:pointer;font-family:var(--font-mono);touch-action:none;border-radius:8px;font-size:12px;font-weight:650}.act-tooth-cell:hover{background:var(--surface-2)}.act-tooth-cell.active{background:var(--accent);border-color:var(--accent);color:#fff}.act-draft{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.vision-row{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;display:flex}.check-cell{border:1px solid var(--line-2);background:var(--surface);color:#fff;cursor:pointer;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.check-cell.active{background:var(--accent);border-color:var(--accent)}.timeline{padding-left:18px;position:relative}.timeline:before{content:"";background:var(--line-2);width:1px;position:absolute;top:8px;bottom:8px;left:5px}.timeline-item{padding:0 0 16px 12px;position:relative}.timeline-dot{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-16px}.overlay{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1c181057;justify-content:center;align-items:center;padding:18px;animation:.12s overlayIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line-2);width:640px;max-width:92vw;max-height:78vh;box-shadow:var(--sh-pop);border-radius:16px;animation:.16s cubic-bezier(.2,.8,.2,1) popIn;overflow:auto}.cmd-modal{width:760px}.cmd-input{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:15px 18px;display:flex}.cmd-input input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:15px}.cmd-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:12px;display:grid}.cmd-column{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-width:0;padding:6px}.cmd-column:first-child{background:var(--surface-2)}.cmd-row{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;padding:9px 12px;display:flex}.cmd-row:hover,.cmd-row.active{background:var(--surface-2)}.cmd-column:first-child .cmd-row:hover,.cmd-column:first-child .cmd-row.active{background:var(--surface)}.cmd-empty{color:var(--ink-3);padding:10px 4px;font-size:12px}@keyframes popIn{0%{opacity:0;transform:translateY(-6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes drawerIn{0%{transform:translate(24px)}to{transform:none}}@keyframes routeIn{0%{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes successPulse{0%{transform:scale(.82);box-shadow:0 0 #3c7a5c52}70%{transform:scale(1.04);box-shadow:0 0 0 14px #3c7a5c00}to{transform:scale(1);box-shadow:0 0 #3c7a5c00}}@keyframes moveTargetPulse{0%,to{outline-color:color-mix(in srgb,var(--accent)72%,#fff)}50%{outline-color:var(--accent);box-shadow:0 0 0 5px #3c7a5c1c,var(--sh-2)}}@keyframes spin{to{transform:rotate(360deg)}}.route-in{animation:.18s routeIn}@media (max-width:1180px){.kpi-grid,.migration-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.main-detail,.devis-layout,.three-col,.acts-grid,.imaging-overview,.migration-layout{grid-template-columns:1fr}.acts-grid{height:auto;min-height:0;overflow:visible}.drawer,.support-sidebar{max-height:none;padding-right:0;position:static;overflow:visible}.patient-side-slot{height:auto;max-height:none;position:static}.patient-side-panel{grid-template-rows:auto;height:auto}.topbar-search{width:220px}.imaging-combined-card{height:auto;min-height:520px}.imaging-exam-panel{border-right:0;border-bottom:1px solid var(--line);padding-bottom:12px;padding-right:0}}@media (max-width:980px){.imaging-analysis-modal{width:94vw;max-width:94vw}.imaging-analysis-modal .card-body{overflow:auto}.imaging-analysis-grid{grid-template-columns:1fr;height:auto;min-height:0;overflow:visible}.imaging-analysis-viewer{height:340px}.imaging-finding-list{max-height:260px}}@media (max-width:760px){.app-shell{display:flex}.rail{display:none}.topbar{padding:0 12px;overflow-x:auto}.page{padding:14px}.topbar-date,.topbar-search{display:none}.patient-header,.kpi-grid{grid-template-columns:1fr}.agenda-grid{min-width:860px}.agenda-week-grid{min-width:1100px}.agenda-toolbar{grid-template-columns:minmax(160px,1fr) max-content;align-items:center;overflow-x:auto}.migration-kpi-grid,.migration-toolbar{grid-template-columns:1fr}.migration-filter-block{flex-direction:column;align-items:flex-start}.agenda-toolbar-actions{justify-content:flex-end;margin-left:auto}.agenda-period-grid.weekly,.agenda-period-grid.monthly{grid-template-columns:repeat(2,minmax(0,1fr))}.info-grid,.catalog-body,.cmd-grid{grid-template-columns:1fr}.admin-editable-value,.admin-edit-input{width:58%;max-width:58%}.admin-appointment-row{grid-template-columns:1fr;align-items:stretch;gap:8px}.admin-appointment-row .badge{justify-self:start}.appointment-create-grid,.appointment-move-summary{grid-template-columns:1fr}.appointment-create-foot{flex-direction:column;align-items:stretch}.odontogram-layout,.photo-gallery,.document-row{grid-template-columns:1fr}.photo-preview.large{height:320px}.composer-foot,.communication-head,.document-source-strip{flex-direction:column;align-items:flex-start}.catalog-cats{border-right:0;border-bottom:1px solid var(--line);gap:6px;display:flex}.catalog-cats .centre-option{white-space:nowrap;width:auto}.odontogram-foot{align-items:stretch}.act-summary{flex-wrap:wrap;justify-content:flex-start}}
