@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@600;700&display=swap";
.procedure-list article{grid-template-columns:70px minmax(0,1fr) auto auto}.reference-actions{align-items:center;gap:5px;margin-left:auto;display:flex!important}.reference-actions button{border:1px solid var(--line);width:29px;height:29px;color:var(--green);cursor:pointer;background:#f8fbfa;border-radius:7px;place-items:center;display:grid}.inactive-reference{opacity:.55}.inactive-reference .resource-dot{box-shadow:none;background:#9aa9a5}.user-actions{gap:7px;padding-top:2px;display:flex}.user-actions .action-button{flex:1;justify-content:center}.billing-page{max-width:1500px}.confidential-badge{color:var(--green);white-space:nowrap;background:#eef8f5;border:1px solid #c7dfd8;border-radius:999px;align-items:center;gap:7px;padding:9px 12px;font-size:12px;font-weight:800;display:inline-flex}.billing-tabs{border:1px solid var(--line);background:#fff;border-radius:12px;gap:5px;margin-bottom:18px;padding:5px;display:inline-flex}.billing-tabs button{min-height:40px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:700;display:flex}.billing-tabs button.active{background:var(--green);color:#fff}.billing-tabs button>span{background:#fff3;border-radius:999px;min-width:22px;padding:2px 6px;font-size:10px}.billing-tabs button:not(.active)>span{color:var(--green);background:#edf3f1}.billing-workspace{grid-template-columns:minmax(320px,.82fr) minmax(380px,1.18fr);align-items:stretch;gap:16px;margin-bottom:18px;display:grid}.billing-form,.billing-preview{flex-direction:column;gap:15px;margin:0;display:flex}.billing-form>.button{justify-content:center;margin-top:auto}.billing-step{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding-bottom:12px;display:flex}.billing-step>span{width:30px;height:30px;color:var(--green);background:#def1eb;border-radius:9px;flex:0 0 30px;place-items:center;font-weight:900;display:grid}.billing-step>div{gap:2px;display:grid}.billing-step small,.billing-patient small,.payment-summary small{color:var(--muted)}.billing-preview-empty{color:#91a49f;text-align:center;place-content:center;justify-items:center;gap:7px;min-height:180px;display:grid}.billing-preview-empty p{max-width:310px;margin:0;font-size:13px}.billing-patient{background:#f5f9f8;border-radius:9px;gap:4px;padding:11px 13px;display:grid}.billing-lines{gap:9px;display:grid}.billing-lines>div,.billing-total{justify-content:space-between;gap:18px;display:flex}.billing-lines span{color:var(--muted);font-size:13px}.billing-lines b{white-space:nowrap;font-size:13px}.billing-total{border-top:1px solid var(--line);align-items:baseline;margin-top:auto;padding-top:13px}.billing-total b{color:var(--green);font-size:20px}.billing-table{margin-top:0}.billing-table .table{min-width:760px}.status-select{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:135px;padding:7px 9px}.access-denied{text-align:center;max-width:560px;color:var(--green);justify-items:center;gap:8px;margin:80px auto;padding:36px;display:grid}.access-denied h1,.access-denied p{margin:0}.access-denied p{color:var(--muted)}.payment-modal{width:min(620px,100vw - 32px)}.payment-summary{color:var(--green);background:#eef8f5;border:1px solid #c8e2da;border-radius:10px;align-items:center;gap:11px;margin-bottom:15px;padding:13px;display:flex}.payment-summary>div{gap:2px;display:grid}.action-button:disabled{opacity:.45;cursor:not-allowed}.table-wrap{overflow-x:auto}.performed-badge{color:var(--green);background:#e5f5f0;border:1px solid #c5e6dc;border-radius:7px;align-items:center;gap:6px;padding:6px 8px;font-size:11px;font-weight:700;display:inline-flex}.clinical-doc-grid{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:start;gap:16px;display:grid}.clinical-document-form h2,.clinical-document-list h2{margin-top:0}.prescription-lines{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.prescription-line{border-top:1px dashed #dfe8e5;grid-template-columns:28px minmax(160px,1.2fr) repeat(4,minmax(105px,1fr)) 34px;align-items:end;gap:8px;padding:11px 0;display:grid}.prescription-line .field{margin:0}.prescription-line .field label{font-size:10px}.line-number{width:25px;height:25px;color:var(--green);background:#e5f4f0;border-radius:50%;align-self:center;place-items:center;font-size:11px;font-weight:800;display:grid}.share-checkbox{border:1px solid var(--line);background:#f8fbfa;border-radius:10px;align-items:flex-start;gap:10px;margin:18px 0;padding:12px;display:flex}.share-checkbox input{margin-top:3px}.share-checkbox span{gap:3px;display:grid}.share-checkbox small{color:var(--muted)}.clinical-document-row{border-top:1px solid var(--line);grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 0;display:grid}.clinical-document-row>div:nth-child(2){gap:4px;min-width:0;display:grid}.clinical-document-row>div:nth-child(2) span{color:var(--muted);font-size:11px}.clinical-document-row .document-type{width:36px;height:36px;color:var(--green);background:#e5f4f0;border-radius:9px;place-items:center;display:grid}.mobile-menu-toggle,.mobile-nav-backdrop{display:none}@media (max-width:1100px){.clinical-doc-grid{grid-template-columns:1fr}.prescription-line{grid-template-columns:28px repeat(3,minmax(120px,1fr));overflow-x:auto}}@media (max-width:900px){.mobile-menu-toggle{border:1px solid var(--line);width:42px;height:42px;color:var(--green);background:#fff;border-radius:10px;flex:0 0 42px;place-items:center;display:grid}.mobile-nav-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c231e61;display:block;position:fixed;inset:0}.mobile-nav-drawer{color:#fff;background:#153b34;flex-direction:column;gap:20px;width:min(350px,88vw);padding:20px;display:flex;position:absolute;inset:0 auto 0 0;box-shadow:18px 0 45px #0c231e3d}.patient-mobile-drawer{color:var(--ink);background:#fff}.mobile-nav-head{justify-content:space-between;align-items:center;display:flex}.mobile-nav-head .icon-button{color:inherit;background:#ffffff1a}.mobile-nav-drawer nav{gap:6px;display:grid;overflow-y:auto}.mobile-nav-drawer nav a{border-radius:9px;align-items:center;gap:10px;min-height:46px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.mobile-nav-drawer nav a.active{background:#ffffff1f}.patient-mobile-drawer nav a.active{color:var(--green);background:#e5f4f0}.mobile-nav-drawer .logout{margin-top:auto}.topbar{gap:10px;min-height:72px}.topbar>div:first-of-type{min-width:0}.patient-nav{gap:10px;padding:12px 18px}.patient-nav>.mobile-menu-toggle{order:-1}.patient-nav>.person button{display:none}.patient-nav>.person{margin-left:auto}.section-head{align-items:flex-start;gap:12px}.settings-tabs{max-width:100%;overflow-x:auto}.settings-tabs button{white-space:nowrap;flex:none!important}.modal{width:min(94vw,680px);max-height:90dvh;overflow-y:auto}.clinical-document-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prescription-line{grid-template-columns:28px repeat(2,minmax(145px,1fr))}}@media (max-width:700px){.procedure-list article{grid-template-columns:62px minmax(0,1fr) auto}.procedure-duration{display:none}.reference-actions{grid-column:2/4;justify-content:flex-end}.page-title{font-size:27px}.section-head{flex-direction:column}.section-head>.actions,.section-head>.button{width:100%}.section-head>.actions .button{flex:1;justify-content:center}.clinical-document-form .form-grid{grid-template-columns:1fr}.prescription-line{grid-template-columns:28px minmax(0,1fr) 34px;gap:7px;padding:14px 0}.prescription-line .field{grid-column:2/4;width:100%}.prescription-line .line-number{grid-area:1/1}.prescription-line>.icon-action{grid-area:1/3}.clinical-document-row{grid-template-columns:38px minmax(0,1fr) auto}.clinical-document-row>.status{grid-column:2;justify-self:start}.clinical-document-row>.document-actions{grid-area:1/3/3}.patient-content .appointment{align-items:start;gap:10px;grid-template-columns:1fr!important}input,select,textarea{font-size:16px!important}.button,.action-button{min-height:44px}.tabs{flex-wrap:nowrap;max-width:100%;overflow-x:auto}.tabs button{white-space:nowrap;flex:none}.medication-settings .table{min-width:760px}.billing-workspace{grid-template-columns:1fr}.billing-tabs{width:100%;overflow-x:auto}.billing-tabs button{flex:1 0 auto;justify-content:center}}
:root{--ink:#18302b;--muted:#667a75;--line:#dfe8e5;--paper:#fff;--staff-bg:#f3f6f5;--patient-bg:#f7faf9;--green:#176b5b;--mint:#238c7c;--sky:#5aa9c9;--amber:#d99020;--red:#c44747;--shadow:0 12px 36px #18302b14}*{box-sizing:border-box}html,body{background:var(--staff-bg);min-height:100%;color:var(--ink);margin:0;font-family:Inter,system-ui,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}.brand{letter-spacing:-.04em;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:11px;place-items:center;width:34px;height:34px;font-size:18px;display:grid;box-shadow:0 7px 16px #176b5b38}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{color:#effaf7;background:#163d35;flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.sidebar .brand{padding:0 10px 28px}.nav{gap:5px;display:grid}.nav a{color:#bfd3ce;border-radius:9px;align-items:center;gap:11px;padding:11px 12px;font-size:14px;font-weight:500;display:flex}.nav a:hover,.nav a.active{color:#fff;background:#ffffff1a}.sidebar-foot{color:#a9c2bc;border-top:1px solid #ffffff1f;margin-top:auto;padding:16px 10px;font-size:12px}.main-area{min-width:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5;background:#ffffffe0;justify-content:space-between;align-items:center;height:72px;padding:0 32px;display:flex;position:sticky;top:0}.content{max-width:1440px;margin:auto;padding:30px 32px 50px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--mint);font-size:12px;font-weight:700}.page-title{letter-spacing:-.04em;margin:6px 0;font:700 28px/1.2 Manrope,sans-serif}.subtitle{color:var(--muted);margin:0}.grid{gap:18px;display:grid}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:26px 0}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 9px #18302b06}.stat-value{margin-top:14px;font:700 28px Manrope}.stat-label{color:var(--muted);font-size:13px}.split{grid-template-columns:minmax(0,1.55fr) minmax(280px,.7fr)}.section-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.section-head h2{margin:0;font:700 17px Manrope}.button{cursor:pointer;background:var(--green);color:#fff;border:0;border-radius:10px;align-items:center;gap:8px;padding:11px 16px;font-weight:700;display:inline-flex}.button.secondary{color:var(--green);background:#e8f2ef}.status{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex}.status.waiting{color:#98620e;background:#fff4d8}.status.confirmed,.status.paid{color:#176b5b;background:#def4ed}.status.cancelled,.status.unpaid{color:#a43d3b;background:#fbe6e4}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:10px;font-size:11px}.table td{border-bottom:1px solid #edf2f0;padding:14px 10px}.avatar{width:34px;height:34px;color:var(--green);background:#dceee9;border-radius:50%;place-items:center;font-weight:700;display:grid}.person{align-items:center;gap:10px;display:flex}.alert{background:#fff5f4;border-left:4px solid #d64545;border-radius:4px 11px 11px 4px;padding:15px}.timeline{gap:10px;display:grid}.appointment{border:1px solid var(--line);border-radius:11px;grid-template-columns:66px 1fr auto;align-items:center;gap:12px;padding:13px;display:grid}.appointment time{color:var(--green);font-weight:700}.patient-shell{background:var(--patient-bg);min-height:100vh}.patient-nav{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 max(24px,50vw - 590px);display:flex}.patient-links{color:var(--muted);gap:22px;font-size:13px;font-weight:600;display:flex}.patient-content{min-width:0;max-width:1180px;margin:auto;padding:42px 24px}.hero{color:#fff;background:linear-gradient(125deg,#164f44,#238c7c);border-radius:22px;justify-content:space-between;align-items:center;padding:34px;display:flex;position:relative;overflow:hidden}.hero:after{content:"";border:55px solid #ffffff14;border-radius:50%;width:260px;height:260px;position:absolute;top:-90px;right:-50px}.hero h1{margin:8px 0;font:700 32px Manrope}.patient-grid{grid-template-columns:1.1fr .9fr;margin-top:20px}.patient-dashboard-sections{gap:20px;min-width:0;margin-top:20px}.patient-dashboard-sections>*,.odontogram-card,.odontogram{min-width:0}.tooth-arc{justify-content:center;gap:5px;padding:26px 8px;display:flex}.tooth{background:#fff;border:2px solid #bed4ce;border-radius:14px 14px 10px 10px;width:30px;height:42px;position:relative;box-shadow:inset 0 -8px #eef5f3}.tooth.care{background:#fff9ea;border-color:#d99020}.tooth.done{background:#edf8fc;border-color:#5aa9c9}.login-page{background:#fff;grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-visual{color:#fff;background:linear-gradient(145deg,#123e35,#238c7c);flex-direction:column;justify-content:space-between;padding:54px;display:flex}.login-visual h1{letter-spacing:-.05em;max-width:560px;font:700 46px/1.08 Manrope}.login-panel{place-items:center;padding:32px;display:grid}.login-card{width:min(420px,100%)}.login-card h2{margin:12px 0 8px;font:700 30px Manrope}.field{gap:7px;margin:17px 0;display:grid}.field label{font-size:13px;font-weight:700}.field input{border:1px solid #cfdcd8;border-radius:10px;outline:none;height:46px;padding:0 13px}.field input:focus{border-color:var(--mint);box-shadow:0 0 0 3px #238c7c1f}.error{color:var(--red);font-size:13px}.empty{text-align:center;color:var(--muted);padding:42px}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.stats{grid-template-columns:repeat(2,1fr)}.split,.patient-grid{grid-template-columns:1fr}.patient-links{display:none}.login-page{grid-template-columns:1fr}.login-visual{display:none}}@media (max-width:560px){.content{padding:22px 16px}.topbar{padding:0 16px}.stats{grid-template-columns:1fr 1fr;gap:10px}.card{padding:16px}.hero{padding:24px}.hero h1{font-size:25px}.table-wrap{overflow:auto}.patient-content{padding:24px 15px}}.button.danger{color:#a43d3b;background:#fbe6e4}.button:disabled{opacity:.45;cursor:not-allowed}.actions{flex-wrap:wrap;gap:8px;display:flex}.logout{color:#c9ddd8;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;margin-top:auto;padding:11px 12px;display:flex}.logout:hover{color:#fff;background:#ffffff14;border-radius:9px}.modal-backdrop{z-index:20;background:#0a231e80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{width:min(720px,100%);max-height:90vh;box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:24px;overflow:auto}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.field input,.field select,.field textarea{background:#fff;border:1px solid #cfdcd8;border-radius:10px;width:100%;min-height:44px;padding:10px 12px}.field textarea{min-height:90px}.clickable{cursor:pointer}.clickable:hover{background:#f4faf8}.tabs{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.tabs button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:8px 13px}.tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.tooth-grid{grid-template-columns:repeat(16,minmax(38px,1fr));gap:6px;display:grid;overflow:auto}.tooth-button{cursor:pointer;background:#fff;border:2px solid #bed4ce;border-radius:12px;min-width:38px;padding:10px 4px;font-size:12px}.tooth-button.cariee{border-color:var(--red);background:#fff1f0}.tooth-button.obturee,.tooth-button.couronnee{border-color:var(--sky);background:#edf8fc}.tooth-button.extraite,.tooth-button.absente_agenesie{opacity:.45}.stack{gap:12px;display:grid}@media (max-width:700px){.form-grid{grid-template-columns:1fr}.tooth-grid{grid-template-columns:repeat(8,minmax(38px,1fr))}}.content.wide{max-width:1680px}.button.compact{border-radius:9px;width:auto;min-height:38px;padding:8px 12px;font-size:13px}.button.ghost{border:1px solid var(--line);color:var(--ink);background:0 0}.button.full{justify-content:center;width:100%}.form-actions,.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.modal-head{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.modal-head h2{margin:5px 0 0;font:700 22px Manrope}.icon-button{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);cursor:pointer;background:#fff;border-radius:9px;font-size:22px}.notice{color:var(--green);background:#effaf7;border:1px solid #bde1d7;border-radius:10px;margin:0 0 16px;padding:12px 15px;font-size:13px}.field-help{color:var(--muted);margin:-8px 0 14px;font-size:12px}.auth-switch{text-align:center;color:var(--muted);margin-top:18px;font-size:13px}.auth-switch a{color:var(--green);font-weight:700}.kanban{grid-template-columns:repeat(4,minmax(260px,1fr));align-items:start;gap:14px;padding-bottom:12px;display:grid;overflow-x:auto}.kanban-column{border:1px solid var(--line);background:#eaf0ee;border-radius:15px;min-height:440px;padding:12px}.kanban-column>header{justify-content:space-between;align-items:center;padding:6px 5px 14px;display:flex}.kanban-column h2{margin:0;font:700 14px Manrope}.kanban-column header span{color:var(--muted);font-size:11px}.count-badge{background:#fff;border-radius:8px;place-items:center;width:27px;height:27px;font-weight:800;color:var(--ink)!important;display:grid!important}.kanban-column.amber{border-top:3px solid #d99020}.kanban-column.green{border-top:3px solid var(--mint)}.kanban-column.blue{border-top:3px solid var(--sky)}.kanban-column.red{border-top:3px solid #c44747}.kanban-stack{gap:10px;display:grid}.kanban-empty{text-align:center;color:var(--muted);border:1px dashed #cad7d3;border-radius:11px;padding:40px 10px;font-size:12px}.appointment-card{background:#fff;border:1px solid #dbe5e2;border-radius:12px;padding:14px;box-shadow:0 4px 12px #18302b0a}.appointment-card h3{margin:12px 0 4px;font:700 14px Manrope}.appointment-card p{color:var(--muted);margin:0 0 12px;font-size:12px}.appointment-date,.practitioner-line{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.appointment-date b{color:var(--green);margin-left:auto}.practitioner-line{border-top:1px solid #edf2f0;justify-content:space-between;padding-top:10px}.card-actions{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.action-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#f8fbfa;border-radius:7px;align-items:center;gap:5px;padding:6px 8px;font-size:11px;font-weight:700;display:inline-flex}.action-button.success{color:var(--green);background:#e5f5f0;border-color:#c5e6dc}.danger-text{color:#ad3d3b!important}.odontogram-card{padding:24px}.odontogram{gap:18px;display:grid}.odontogram-toolbar{background:linear-gradient(135deg,#f0f8f5,#fbfdfc);border:1px solid #cee2dc;border-radius:13px;justify-content:space-between;align-items:center;gap:18px;padding:15px 17px;display:flex}.odontogram-toolbar>div:first-child{gap:3px;display:grid}.odontogram-toolbar b{color:var(--green);font-size:14px}.odontogram-toolbar small{color:var(--muted);font-size:11px}.tooth-family-legend{align-items:flex-end;gap:13px;display:flex}.tooth-family-legend span{color:var(--muted);justify-items:center;gap:2px;font-size:9px;font-weight:700;display:grid}.tooth-family-legend .tooth-shape.compact{width:22px;height:30px}.odontogram-legend{border:1px solid var(--line);background:#f7faf9;border-radius:11px;flex-wrap:wrap;gap:16px;padding:12px 16px;display:flex}.odontogram-legend span{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.odontogram-legend i{border:1px solid #bfcac7;border-radius:4px;width:12px;height:12px}.mouth-frame{border:1px solid var(--line);scrollbar-color:#aacbc2 transparent;background:radial-gradient(#fff 0,#f9fbfa 68%,#f0f5f3 100%);border-radius:80px;gap:13px;width:100%;min-width:0;max-width:100%;padding:30px 24px;display:grid;overflow-x:auto}.dental-arch{min-width:850px;position:relative}.dental-arch.temporary{min-width:570px;margin:auto}.arch-label{text-align:center;text-transform:uppercase;letter-spacing:.12em;color:#8b9d98;margin-bottom:6px;font-size:9px;display:block}.teeth-row{justify-content:center;align-items:end;gap:3px;display:flex}.clinical-tooth{cursor:pointer;color:#71827e;background:0 0;border:0;width:49px;padding:2px 1px 5px;position:relative}.clinical-tooth:disabled{cursor:default}.clinical-tooth .tooth-shape{width:45px;height:62px;margin:auto;transition:translate .15s,filter .15s;display:block;overflow:visible}.clinical-tooth.tooth-incisive .tooth-shape{width:34px}.clinical-tooth.tooth-canine .tooth-shape{width:38px}.clinical-tooth.tooth-premolaire .tooth-shape{width:42px}.clinical-tooth.tooth-molaire .tooth-shape{width:48px}.dental-arch.upper .tooth-shape:not(.compact){transform:rotate(180deg)}.clinical-tooth .tooth-body,.tooth-family-legend .tooth-body{fill:#fbfdfc;stroke:#aebdb9;stroke-width:1.5px;transition:all .15s}.clinical-tooth .tooth-detail,.tooth-family-legend .tooth-detail{fill:none;stroke:#d6e0dd;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.15px}.clinical-tooth>span{font-size:10px;font-weight:800}.clinical-tooth>i{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:15px;height:15px;font-size:9px;font-style:normal;display:grid;position:absolute;top:0;right:0}.clinical-tooth:not(:disabled):hover .tooth-shape{filter:drop-shadow(0 4px 3px #18302b26);translate:0 -2px}.odontogram.is-read-only .clinical-tooth{cursor:default}.odontogram.is-read-only .clinical-tooth:hover .tooth-shape{filter:none;translate:0}.clinical-tooth.quadrant-start{margin-left:15px}.state-cariee .tooth-body{fill:#ffe7e5;stroke:#ef6b65}.state-obturee .tooth-body,.state-couronnee .tooth-body,.state-sur_pivot .tooth-body{fill:#e7f5fa;stroke:#57a6c7}.state-implant .tooth-body,.state-bridge .tooth-body{fill:#f0ebfa;stroke:#8d79b8}.state-extraite .tooth-body,.state-absente_agenesie .tooth-body{fill:#edf0ef;stroke:#aab8b4;opacity:.45}.state-mobile .tooth-body{fill:#fff4d8;stroke:#d99020}.state-non_renseignee .tooth-body{fill:#f5f7f6;stroke-dasharray:3 3;opacity:.45}.face-grid{grid-template-columns:repeat(3,1fr);gap:0 12px;display:grid}.tooth-editor{width:min(600px,100%)}.search-box{border:1px solid var(--line);max-width:430px;color:var(--muted);background:#f8fbfa;border-radius:10px;align-items:center;gap:10px;margin-bottom:18px;padding:0 13px;display:flex}.search-box input{background:0 0;border:0;outline:none;width:100%;height:44px}.patient-list{display:grid}.patient-row{border-top:1px solid #edf2f0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:0;display:grid}.patient-row:hover{background:#f7fbfa}.patient-row-link{grid-template-columns:44px minmax(0,1fr) minmax(150px,auto);align-items:center;gap:12px;min-width:0;padding:14px 8px;display:grid}.patient-delete{margin-right:8px}.patient-avatar{width:38px;height:38px;color:var(--green);background:#e4f3ef;border-radius:12px;place-items:center;display:grid}.patient-main,.patient-meta{gap:4px;min-width:0;display:grid}.patient-main b,.patient-main span,.patient-meta span{overflow-wrap:anywhere}.patient-main span,.patient-meta>span:first-child{color:var(--muted);font-size:12px}.patient-meta{justify-items:end}.medical-checks{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;display:grid}.medical-checks label{border:1px solid var(--line);border-radius:9px;align-items:center;gap:8px;padding:9px;font-size:12px;display:flex}.medical-checks input{width:16px;height:16px}.history-entry{border-bottom:1px solid var(--line);padding:13px 0}.history-entry p{margin:6px 0}.history-entry span{color:var(--muted);font-size:11px}.upload-panel{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:end;gap:16px;margin:20px 0;padding:16px;display:grid}.upload-icon{width:46px;height:46px;color:var(--green);background:#e5f4f0;border-radius:12px;align-self:center;place-items:center;display:grid}.upload-fields{grid-template-columns:1fr 1fr 1.3fr;gap:12px;display:grid}.upload-fields .field{margin:0}.file-field input{padding:8px}.document-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.document-card{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:auto 1fr auto;gap:12px;padding:16px;display:grid}.document-type{width:42px;height:42px;color:var(--green);background:#eaf5f2;border-radius:11px;place-items:center;display:grid}.type-radiographie{color:#438bab;background:#eaf4f8}.type-consentement{color:#8468ad;background:#f4effa}.document-body h3{overflow-wrap:anywhere;margin:5px 0;font:700 13px Manrope}.document-body p,.document-body small{color:var(--muted);margin:0;font-size:11px}.document-kind{text-transform:uppercase;letter-spacing:.08em;color:var(--mint);font-size:9px;font-weight:800}.document-actions{gap:5px;display:flex}.icon-action{border:1px solid var(--line);width:32px;height:32px;color:var(--green);cursor:pointer;background:#fff;border-radius:8px;place-items:center;display:grid}.icon-action.danger{color:var(--red)}.user-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.user-stat{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.user-stat>span{width:38px;height:38px;color:var(--green);background:#e5f4f0;border-radius:10px;place-items:center;display:grid}.user-stat div{display:grid}.user-stat b{font:700 21px Manrope}.user-stat small{color:var(--muted)}.user-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.user-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:18px}.user-card.disabled{opacity:.65}.user-card-head{justify-content:space-between;align-items:flex-start;display:flex}.large-avatar{width:48px;height:48px;color:var(--green);background:linear-gradient(135deg,#d9eee8,#edf7f4);border-radius:14px;place-items:center;font:700 16px Manrope;display:grid}.user-card h3{margin:14px 0 4px;font:700 16px Manrope}.user-card p{color:var(--muted);margin:0 0 12px;font-size:12px}.role-pill{color:var(--green);background:#f0f6f4;border-radius:8px;align-items:center;gap:6px;padding:6px 9px;font-size:11px;font-weight:700;display:inline-flex}.permission-summary{color:var(--muted);padding:13px 0;font-size:11px}.settings-summary{background:var(--line);border:1px solid var(--line);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.settings-summary div{background:#fff;padding:17px;display:grid}.settings-summary b{font:700 22px Manrope}.settings-summary span{color:var(--muted);font-size:11px}.settings-layout{grid-template-columns:minmax(0,1.6fr) minmax(270px,.7fr);gap:16px;display:grid}.procedure-list{display:grid}.procedure-list article{border-top:1px solid #edf2f0;grid-template-columns:70px 1fr auto;align-items:center;gap:12px;padding:12px 0;display:grid}.procedure-code{color:var(--green);text-align:center;background:#edf5f2;border-radius:6px;padding:6px;font:700 11px monospace}.procedure-list article>div:nth-child(2){gap:3px;display:grid}.procedure-list span,.procedure-duration,.reference-row small{color:var(--muted);font-size:11px}.procedure-duration{align-items:center;gap:5px;display:flex}.reference-row{border-top:1px solid #edf2f0;align-items:center;gap:10px;padding:11px 0;display:flex}.reference-row>div:last-child{gap:3px;display:grid}.resource-dot{background:var(--mint);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 4px #e5f4f0}@media (max-width:1200px){.kanban{grid-template-columns:repeat(2,minmax(280px,1fr))}.document-grid,.user-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:800px){.kanban,.document-grid,.user-grid,.user-stats,.settings-summary,.upload-panel,.upload-fields,.settings-layout{grid-template-columns:1fr}.patient-row{grid-template-columns:minmax(0,1fr) 42px;gap:2px}.patient-row-link{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"avatar identity""avatar metadata";gap:7px 10px;padding:16px 6px}.patient-row-link .patient-avatar{grid-area:avatar;align-self:center}.patient-row-link .patient-main{grid-area:identity}.patient-row-link .patient-meta{flex-wrap:wrap;grid-area:metadata;justify-content:flex-start;align-items:center;gap:7px;display:flex}.patient-row-link .patient-main b{font-size:15px;line-height:1.25}.patient-row-link .patient-main span{line-height:1.45}.patient-delete{margin-right:4px}.face-grid{grid-template-columns:1fr 1fr}.odontogram-toolbar{flex-direction:column;align-items:flex-start}.tooth-family-legend{justify-content:space-between;width:100%}.mouth-frame{border-radius:28px;padding:24px 14px}}.daily-planning{padding-top:0}.daily-head{justify-content:space-between;align-items:end;margin-bottom:14px;display:flex}.daily-head h2{margin:5px 0;font:700 20px Manrope}.daily-head p{color:var(--muted);margin:0;font-size:13px}.date-control{border:1px solid var(--line);color:var(--green);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:flex}.date-control input{color:var(--ink);background:0 0;border:0;outline:0}.daily-table td{vertical-align:middle}.time-cell{color:var(--green);align-items:center;gap:6px;display:flex}.time-cell span{color:var(--muted);font-size:11px}.settings-tabs{background:#e8efed;border-radius:11px;gap:4px;width:max-content;margin-bottom:18px;padding:4px;display:flex}.settings-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:700;display:flex}.settings-tabs button.active{color:var(--green);background:#fff;box-shadow:0 2px 7px #18302b14}.availability-form{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:1.3fr .8fr .7fr .7fr auto;align-items:end;gap:12px;margin-bottom:18px;padding:16px;display:grid}.availability-form .field{margin:0}.week-grid{grid-template-columns:repeat(7,minmax(155px,1fr));gap:10px;padding-bottom:12px;display:grid;overflow-x:auto}.day-column{border:1px solid var(--line);background:#eef3f1;border-radius:13px;min-height:270px;padding:10px}.day-column>header{border-bottom:1px solid #d8e3e0;margin-bottom:9px;padding:4px 3px 12px;display:grid}.day-column>header>span{display:none}.day-column>header b{font:700 13px Manrope}.day-column>header small{color:var(--muted);margin-top:3px;font-size:10px}.day-column article{background:#fff;border:1px solid #dbe5e2;border-radius:10px;margin-bottom:8px;padding:10px;position:relative}.day-column article.inactive{opacity:.5}.slot-time{color:var(--green);align-items:center;gap:5px;font-size:11px;display:flex}.day-column article>span{color:var(--muted);margin-top:5px;padding-right:38px;font-size:10px;display:block}.slot-actions{gap:3px;display:flex;position:absolute;bottom:6px;right:6px}.slot-actions button{width:25px;height:25px;color:var(--green);cursor:pointer;background:#edf4f2;border:0;border-radius:6px;place-items:center;display:grid}.slot-actions button:last-child{color:var(--red);background:#fbefee}.day-empty{color:var(--muted);text-align:center;padding:28px 4px;font-size:10px}.sidebar .nav{overflow-y:auto}@media (max-width:1100px){.availability-form{grid-template-columns:repeat(2,1fr)}.week-grid{grid-template-columns:repeat(4,minmax(170px,1fr))}}@media (max-width:700px){.daily-head{flex-direction:column;align-items:flex-start;gap:12px}.availability-form,.week-grid{grid-template-columns:1fr}.settings-tabs{width:100%}.settings-tabs button{flex:1;justify-content:center}}
