.login{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 600px at 50% -10%,#ccfbf1 0%,transparent 60%),var(--color-bg)}.login__card{width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem}.login__brand{display:flex;align-items:center;gap:.875rem;margin-bottom:1.75rem}.login__logo{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--color-primary);color:var(--color-primary-contrast);font-size:1.5rem;font-weight:700}.login__title{margin:0;font-size:1.25rem;line-height:1.2}.login__subtitle{margin:.15rem 0 0;color:var(--color-text-muted);font-size:.875rem}.login__form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.375rem}.field label{font-size:.875rem;font-weight:600;color:var(--color-text)}.field input{padding:.75rem .875rem;font-size:1rem;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-text);transition:border-color .15s ease}.field input:focus{border-color:var(--color-primary);outline:none}.login__submit{margin-top:.25rem;padding:.8rem 1rem;font-size:1rem;font-weight:600;color:var(--color-primary-contrast);background:var(--color-primary);border:none;border-radius:10px;cursor:pointer;transition:background-color .15s ease}.login__submit:hover:not(:disabled){background:var(--color-primary-hover)}.login__submit:disabled{opacity:.6;cursor:not-allowed}.login__error{padding:.75rem .875rem;font-size:.875rem;color:var(--color-danger);background:var(--color-danger-bg);border:1px solid #fecaca;border-radius:10px}.login__hint{margin:1.5rem 0 0;text-align:center;font-size:.8rem;color:var(--color-text-muted)}.shell{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.shell__body{flex:1;display:flex;min-height:0}.shell__main{flex:1;overflow-y:auto;padding:20px 24px 40px}.topnav{height:54px;flex:none;display:flex;align-items:center;gap:16px;padding:0 22px;background:#fff;border-bottom:1px solid rgba(37,99,235,.1);box-shadow:0 1px #2563eb0f,0 2px 10px #2563eb0d;z-index:20}.topnav__title{font-size:16px;font-weight:700;color:#0f172a;letter-spacing:-.3px;margin:0}.topnav__search{position:relative;margin-left:8px}.topnav__search-ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-text-faint);pointer-events:none}.topnav__search input{width:290px;height:36px;padding:0 12px 0 32px;border:1.5px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-family:inherit;font-size:13px;color:var(--color-text);outline:none}.topnav__search input:focus{border-color:var(--color-primary);background:#fff}.search-drop{position:absolute;top:42px;left:0;right:0;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;z-index:30}.search-drop__item{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;background:none;cursor:pointer;text-align:left;font-family:inherit}.search-drop__item:hover{background:#f8fafc}.search-drop__name{font-size:13px;font-weight:600;color:var(--color-text)}.search-drop__meta{font-size:11px;color:var(--color-text-faint)}.topnav__bell{position:relative;margin-left:auto;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:#f1f5f9;color:#475569;cursor:pointer}.topnav__bell:hover{background:#e2e8f0}.topnav__badge{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:9px;background:var(--color-red);color:#fff;font-size:10px;font-weight:700;border:2px solid #fff}.topnav__user{position:relative}.avatar{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px #2563eb52}.avatar--sm{width:30px;height:30px;font-size:11px;cursor:default}.user-menu{position:absolute;top:44px;right:0;width:200px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:30}.user-menu__head{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-bottom:1px solid var(--color-border-soft)}.user-menu__head strong{font-size:13px}.user-menu__head span{font-size:11.5px;color:var(--color-text-muted)}.user-menu__logout{width:100%;padding:10px 14px;border:0;background:none;text-align:left;font-family:inherit;font-size:13px;color:var(--color-danger);cursor:pointer}.user-menu__logout:hover{background:#fef2f2}.sidebar{width:180px;flex:none;background:#fff;border-right:1px solid #f1f5f9;display:flex;flex-direction:column;overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:8px;padding:14px 14px 12px}.sidebar__logo{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--color-primary);color:#fff;font-weight:700;font-size:17px;flex:none}.sidebar__brand-txt{display:flex;flex-direction:column;line-height:1.2;overflow:hidden}.sidebar__brand-txt strong{font-weight:800;font-size:12.5px;white-space:nowrap}.sidebar__brand-txt small{color:#94a3b8;font-size:10px}.sidebar__nav{flex:1;padding:4px 10px 10px}.sidebar__group{margin-bottom:12px}.sidebar__group-title{margin:8px 8px 4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8}.navitem{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;text-decoration:none;color:#64748b;font-size:12.5px;font-weight:500}.navitem svg{flex:none;color:#94a3b8}.navitem:hover{background:#f8fafc;color:#1e293b}.navitem--active{background:#eff6ff;color:var(--color-primary);font-weight:600}.navitem--active svg{color:var(--color-primary)}.navitem__badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:9px;background:var(--color-primary);color:#fff;font-size:10px;font-weight:700}.sidebar__profile{display:flex;align-items:center;gap:8px;padding:12px;border-top:1px solid #f1f5f9}.sidebar__profile-txt{display:flex;flex-direction:column;line-height:1.25;overflow:hidden}.sidebar__profile-txt strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__profile-txt small{color:#94a3b8;font-size:10.5px}.alerts-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a4d;z-index:40;animation:alerts-fade .18s ease}.alerts-panel{position:fixed;top:0;right:0;bottom:0;width:324px;background:#fff;box-shadow:-16px 0 48px #00000029;z-index:50;display:flex;flex-direction:column;animation:alerts-slide .22s ease}@keyframes alerts-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes alerts-fade{0%{opacity:0}to{opacity:1}}.alerts-panel__head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--color-border-soft)}.alerts-panel__head strong{font-size:15px;font-weight:700}.alerts-panel__head button{border:0;background:none;font-size:22px;line-height:1;color:var(--color-text-muted);cursor:pointer}.alerts-panel__body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.alerts-panel__empty{color:var(--color-text-muted);font-size:13px;text-align:center;margin-top:24px}.alertcard{display:flex;gap:10px;padding:12px;border-radius:12px;border:1px solid}.alertcard__ic{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;color:#fff;font-weight:700;font-size:14px}.alertcard__body strong{font-size:13px;display:block}.alertcard__body p{margin:2px 0 0;font-size:12px;color:var(--color-text-muted)}.alertcard__action{margin-top:6px;border:0;background:none;padding:0;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;color:inherit}.alertcard--urgent{background:#fff1f2;border-color:#fecdd3;color:#dc2626}.alertcard--urgent .alertcard__ic{background:var(--color-red)}.alertcard--attention{background:#fffbeb;border-color:#fed7aa;color:#d97706}.alertcard--attention .alertcard__ic{background:var(--color-amber)}.alertcard--info{background:#eff6ff;border-color:#bfdbfe;color:#2563eb}.alertcard--info .alertcard__ic{background:#2563eb}.alertcard--nouveau{background:#f0fdf4;border-color:#d1fae5;color:#059669}.alertcard--nouveau .alertcard__ic{background:#059669}@media (max-width: 720px){.sidebar{width:60px}.sidebar__brand-txt,.sidebar__group-title,.navitem span,.navitem__badge,.sidebar__profile-txt{display:none}.navitem{justify-content:center}.topnav__search input{width:160px}.topnav__title{display:none}}.hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:linear-gradient(135deg,#1e3a5f,#1d4ed8 52%,#4338ca);border-radius:18px;padding:22px 28px;color:#fff}.hero__deco{position:absolute;border-radius:50%;background:#ffffff14;pointer-events:none}.hero__deco--1{width:180px;height:180px;top:-70px;right:60px}.hero__deco--2{width:120px;height:120px;top:-30px;right:-30px;background:#ffffff0f}.hero__left{position:relative;z-index:1}.hero__date{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.55}.hero__hello{margin:4px 0 2px;font-size:24px;font-weight:800;letter-spacing:-.5px}.hero__role{margin:0;font-size:12px;opacity:.6;text-transform:capitalize}.hero__stats{position:relative;z-index:1;display:flex;gap:22px}.hero__stat{display:flex;flex-direction:column;padding-left:22px;border-left:1px solid rgba(255,255,255,.15)}.hero__stat:first-child{border-left:0;padding-left:0}.hero__stat-n{font-size:38px;font-weight:800;letter-spacing:-2px;line-height:1}.hero__stat-l{font-size:11px;opacity:.6;margin-top:4px}.hero__actions{position:relative;z-index:1;display:flex;gap:10px}.hero__btn{border:0;border-radius:10px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.hero__btn--primary{background:#fff;color:#1e3a5f}.hero__btn--ghost{background:#ffffff1f;color:#fff}.hero__btn--ghost:hover{background:#fff3}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:16px}.kpi{background:#fff;border-radius:13px;border-left:3px solid #2563eb;padding:15px;box-shadow:0 1px 3px #0000000a,0 4px 14px var(--kpi-glow, rgba(37, 99, 235, .08))}.kpi__label{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;font-weight:700}.kpi__value{font-size:28px;font-weight:800;letter-spacing:-1px;color:#0f172a;margin:4px 0 2px}.kpi__sub{font-size:10px;color:#94a3b8}.kpi__spark{margin-top:8px}.card{background:#fff;border-radius:15px;padding:18px;box-shadow:0 1px 3px #0000000a,0 4px 14px #2563eb0f}.card__title{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:13.5px;font-weight:700;color:#0f172a}.card__pill{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:10px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:700}.card__divider{height:1px;background:var(--color-border-soft);margin:14px 0}.dash-row{display:grid;gap:14px;margin-top:14px}.dash-row--2-1{grid-template-columns:2fr 1fr}.dash-row--1-1{grid-template-columns:1fr 1fr}.dash-alert{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--color-danger-bg);color:var(--color-danger);font-size:13px}.dash-empty{color:var(--color-text-muted);font-size:13px;margin:8px 0}.histo__axis{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:#cbd5e1}.reparts{display:flex;flex-direction:column;gap:12px}.repart__head{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;margin-bottom:5px;color:var(--color-text)}.repart__head strong{font-weight:700}.repart__pct{color:#94a3b8;font-weight:500}.repart__track{height:9px;background:#f1f5f9;border-radius:5px;overflow:hidden}.repart__fill{height:100%;border-radius:5px;min-width:4px}.ptable{display:flex;flex-direction:column;gap:3px}.ptable__head,.ptable__row{display:grid;grid-template-columns:2fr 1.5fr 1.5fr 1fr 1fr;gap:8px;align-items:center}.ptable__head{background:#f8fafc;border-radius:9px;padding:7px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:700}.ptable__row{padding:8px 10px;border-radius:9px;font-size:12.5px}.ptable__row:hover{background:#f8fafc}.ptable__row--encours{background:#fffbeb}.ptable__row--encours:hover{background:#fef3c7}.ptable__patient{display:flex;align-items:center;gap:8px;font-weight:600;color:#0f172a}.ptable__avatar{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700}.ptable__diag,.ptable__doc,.ptable__date{color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statut{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}.statut--termine{background:#f0fdf4;color:#059669}.statut--encours{background:#fef3c7;color:#d97706}.statut--avenir{background:#f1f5f9;color:#64748b}.timeline{position:relative;padding-left:6px}.timeline:before{content:"";position:absolute;left:42px;top:6px;bottom:6px;width:1px;background:#e2e8f0}.tl__item{position:relative;display:grid;grid-template-columns:42px 18px 1fr;align-items:center;gap:2px;margin-bottom:10px}.tl__time{font-size:11px;color:var(--color-text-muted);text-align:right;padding-right:6px}.tl__dot{width:10px;height:10px;border-radius:50%;justify-self:center;z-index:1}.tl__dot--termine{background:#059669}.tl__dot--encours{background:#f59e0b;animation:pulse-amber 2s infinite}.tl__dot--avenir{background:#fff;border:2px solid #94a3b8}@keyframes pulse-amber{0%{box-shadow:0 0 #f59e0b80}to{box-shadow:0 0 0 7px #f59e0b00}}.tl__card{padding:8px 12px;border-radius:10px;border:1px solid;display:flex;flex-direction:column;gap:2px}.tl__card strong{font-size:12.5px;color:#0f172a}.tl__meta{font-size:11px;color:var(--color-text-muted)}.tl__card--termine{background:#f0fdf4;border-color:#d1fae5}.tl__card--encours{background:#fffbeb;border-color:#fed7aa}.tl__card--avenir{background:#f8fafc;border-color:#e2e8f0}@media (max-width: 1100px){.kpis{grid-template-columns:repeat(3,1fr)}}@media (max-width: 900px){.dash-row--2-1,.dash-row--1-1{grid-template-columns:1fr}}@media (max-width: 620px){.kpis{grid-template-columns:repeat(2,1fr)}.hero__stats{order:3;width:100%}}.modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:100%;max-width:640px;max-height:90vh;overflow:auto;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow)}.modal__head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-surface)}.modal__head h2{margin:0;font-size:1.15rem}.modal__close{border:none;background:transparent;font-size:1.1rem;cursor:pointer;color:var(--color-text-muted);padding:.25rem .5rem;border-radius:6px}.modal__close:hover{background:var(--color-bg)}.modal__body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.field2{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--color-text)}.field2 input,.field2 select,.field2 textarea{font:inherit;font-weight:400;padding:.6rem .7rem;border:1px solid var(--color-border);border-radius:9px;background:#fff}.field2 input:focus,.field2 select:focus,.field2 textarea:focus{outline:none;border-color:var(--color-primary)}.mineur{background:#f8fafc;border:1px dashed var(--color-border);border-radius:10px;padding:.85rem}.mineur__hint{grid-column:1 / -1;margin:0;font-size:.85rem;color:var(--color-primary-hover);font-weight:600}.modal__actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.btn{padding:.65rem 1.1rem;border-radius:9px;font-weight:600;font-size:.95rem;cursor:pointer;border:1px solid transparent}.btn--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--primary:disabled{opacity:.6;cursor:not-allowed}.btn--ghost{background:#fff;border-color:var(--color-border);color:var(--color-text)}.btn--ghost:hover{background:var(--color-bg)}.alert{padding:.7rem .85rem;border-radius:9px;font-size:.9rem}.alert--error{color:var(--color-danger);background:var(--color-danger-bg);border:1px solid #fecaca}.alert--warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.doublons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.doublons li{padding:.6rem .75rem;background:var(--color-bg);border-radius:9px;font-size:.9rem}.picked{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;background:#ccfbf1;border-radius:9px;font-weight:400}.picked button{border:none;background:transparent;color:var(--color-primary-hover);font-weight:600;cursor:pointer}.pick-btn{width:100%;text-align:left;border:none;background:transparent;cursor:pointer;font:inherit;color:var(--color-text)}.ligne{display:grid;grid-template-columns:1fr 80px 36px;gap:.5rem;margin-bottom:.5rem}.ligne select,.ligne input{padding:.55rem .6rem;border:1px solid var(--color-border);border-radius:9px;background:#fff;font:inherit}.ligne__del{border:1px solid var(--color-border);background:#fff;border-radius:9px;cursor:pointer;color:var(--color-danger)}.total-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem .9rem;background:#f8fafc;border-radius:10px;font-size:1.05rem}@media (max-width: 560px){.grid2{grid-template-columns:1fr}}.dossier__meta{margin:0;color:var(--color-text-muted);font-size:.9rem;display:flex;align-items:center;gap:.5rem}.dossier__title{margin:.25rem 0 0;font-size:1rem}.dossier__tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border, #e5e7eb);margin:.5rem 0 .75rem}.dossier__tab{background:none;border:none;padding:.5rem .9rem;font-size:.92rem;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.dossier__tab--actif{color:var(--color-primary, #0f766e);font-weight:600;border-bottom-color:var(--color-primary, #0f766e)}.parcours{list-style:none;margin:0;padding:0}.parcours__item{display:flex;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--color-border, #eef0f2)}.parcours__item:last-child{border-bottom:none}.parcours__badge{flex:0 0 auto;width:2rem;height:2rem;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:1rem;background:#f1f5f9}.parcours__corps{flex:1 1 auto;min-width:0}.parcours__ligne1{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem;color:var(--color-text-muted)}.parcours__type{text-transform:uppercase;letter-spacing:.02em;font-weight:600}.parcours__libelle{font-size:.95rem;display:flex;align-items:center;gap:.5rem}.parcours__statut{font-size:.72rem;padding:.05rem .4rem;border-radius:999px;background:#e2e8f0;color:#334155}.parcours__resume{font-size:.85rem;color:var(--color-text-muted);margin-top:.1rem}.examens{margin-top:.75rem}.examens__liste{list-style:none;margin:0 0 .5rem;padding:0}.examens__item{padding:.5rem 0;border-top:1px solid var(--color-border, #eef0f2)}.examens__ligne{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.examens__type{font-size:.75rem;color:var(--color-text-muted);text-transform:capitalize}.examens__statut{font-size:.72rem;padding:.05rem .45rem;border-radius:999px;background:#e2e8f0;color:#334155}.examens__statut--resultat_disponible{background:#dcfce7;color:#166534}.examens__statut--annule{background:#fee2e2;color:#991b1b}.examens__resultat{margin:.3rem 0;font-size:.88rem;white-space:pre-wrap;background:#f8fafc;padding:.4rem .6rem;border-radius:6px}.examens__form{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.examens__form textarea,.examens__form input,.examens__form select{font:inherit;padding:.35rem .5rem;border:1px solid var(--color-border, #d1d5db);border-radius:6px}.examens__form-actions{display:flex;gap:.5rem}.examens__demande{flex-direction:row;flex-wrap:wrap;align-items:center;margin-top:.6rem}.examens__demande input{flex:1 1 180px}.btn--sm{padding:.3rem .7rem;font-size:.85rem}.dossier__empty{color:var(--color-text-muted);font-size:.9rem;margin:.25rem 0}.dossier__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.dossier__item{border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.dossier__row{width:100%;text-align:left;border:none;background:#fff;cursor:pointer;padding:.75rem .85rem;display:grid;grid-template-columns:1fr auto;grid-template-areas:"main chevron" "sub chevron";gap:.15rem .5rem;align-items:center;font:inherit}.dossier__row:hover{background:var(--color-bg)}.dossier__row-main{grid-area:main;color:var(--color-text);font-size:.95rem}.dossier__row-sub{grid-area:sub;color:var(--color-text-muted);font-size:.82rem}.dossier__chevron{grid-area:chevron;color:var(--color-text-muted);font-size:.7rem}.dossier__detail{padding:.85rem;border-top:1px solid var(--color-border);background:#f8fafc;display:flex;flex-direction:column;gap:.4rem}.dossier__ligne{margin:0;font-size:.9rem;color:var(--color-text)}.dossier__ligne-label{display:block;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em}.dossier__constantes{display:flex;flex-wrap:wrap;gap:.5rem}.dossier__constante{background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:.35rem .6rem;font-size:.85rem}.dossier__constante-label{color:var(--color-text-muted);margin-right:.35rem;font-size:.75rem}.dossier__presc-title{margin:.5rem 0 .1rem;font-size:.9rem}.dossier__presc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.dossier__presc li{background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:.5rem .65rem;font-size:.9rem;display:flex;flex-direction:column;gap:.15rem}.dossier__presc-meta{color:var(--color-text-muted);font-size:.82rem}.dossier__presc-instr{color:var(--color-text);font-size:.82rem;font-style:italic}.soin__retard{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:999px;padding:.05rem .5rem;font-size:.72rem;font-weight:600}.soin__planifie{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;color:var(--color-text-muted);white-space:nowrap}.presc-section{margin-top:.5rem}.presc-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:.6rem 0}.presc-form input{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:13px}.presc-ac{position:relative;grid-column:1 / -1}.presc-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow);max-height:240px;overflow-y:auto}.presc-suggestion{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 12px;border:0;border-bottom:1px solid var(--color-border-soft);background:none;text-align:left;cursor:pointer;font-family:inherit}.presc-suggestion:last-child{border-bottom:0}.presc-suggestion:hover{background:#eff6ff}.presc-sugg-nom{font-size:13px;font-weight:600;color:var(--color-text)}.presc-sugg-dose{color:var(--color-primary);font-weight:600}.presc-sugg-meta{font-size:11px;color:var(--color-text-faint)}.patients__top{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.patients__title{margin:0;font-size:1.5rem}.patients__count{margin:.2rem 0 0;color:var(--color-text-muted);font-size:.9rem}.patients__search{margin-bottom:1rem}.patients__search input{width:100%;padding:.75rem .9rem;font-size:1rem;border:1px solid var(--color-border);border-radius:10px;background:#fff}.patients__search input:focus{outline:none;border-color:var(--color-primary)}.patients__table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.patients__table{width:100%;border-collapse:collapse;font-size:.925rem}.patients__table th,.patients__table td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--color-border)}.patients__table th{background:#f8fafc;color:var(--color-text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.patients__table tbody tr:last-child td{border-bottom:none}.patients__table tbody tr:hover{background:#f8fafc}.patients__row{cursor:pointer}.patients__row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.patients__state{text-align:center;color:var(--color-text-muted);padding:2.5rem 1rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--color-primary-hover)}.tag{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;font-size:.7rem;font-weight:700;border-radius:999px;background:#ccfbf1;color:var(--color-primary-hover);vertical-align:middle}.patients__pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.25rem;color:var(--color-text-muted);font-size:.9rem}.agenda__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.agenda__title{margin:0;font-size:1.5rem}.agenda__filters{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.agenda__datenav{display:flex;align-items:center;gap:.5rem}.agenda__datenav input,.agenda__filters select{padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:9px;background:#fff;font:inherit}.agenda__state{text-align:center;color:var(--color-text-muted);padding:2.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.agenda__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.agenda__row{display:grid;grid-template-columns:72px 1fr auto;grid-template-areas:"time info statut" "time actions actions";align-items:center;gap:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.85rem 1rem}.agenda__time{grid-area:time;font-weight:700;font-size:1.05rem;display:flex;flex-direction:column}.agenda__dur{font-size:.7rem;font-weight:500;color:var(--color-text-muted)}.agenda__info{grid-area:info;display:flex;flex-direction:column}.agenda__meta{font-size:.85rem;color:var(--color-text-muted)}.statut{grid-area:statut;justify-self:end;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.statut--programme{background:#e0f2fe;color:#075985}.statut--confirme{background:#ccfbf1;color:var(--color-primary-hover)}.statut--termine{background:#dcfce7;color:#166534}.statut--annule{background:#f1f5f9;color:#64748b;text-decoration:line-through}.statut--absent{background:#fef2f2;color:var(--color-danger)}.agenda__actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:.4rem}.chip{padding:.3rem .6rem;border-radius:8px;border:1px solid var(--color-border);background:#fff;font-size:.8rem;cursor:pointer}.chip:hover{background:var(--color-bg);border-color:var(--color-primary)}.fac__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.fac__title{margin:0;font-size:1.5rem}.fac__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.fac__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.4rem}.fac__card-label{font-size:.8rem;color:var(--color-text-muted)}.fac__card-value{font-size:1.4rem;color:var(--color-primary-hover)}.fac__sub{font-size:1.05rem;margin:0 0 .75rem}.apercu{margin-top:.5rem;padding:.85rem 1rem;background:#f8fafc;border-radius:10px;font-size:.9rem}.apercu ul{margin:.5rem 0 0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.25rem}.presence__grid{display:grid;grid-template-columns:280px 1fr;gap:1rem;margin-bottom:1.75rem}.presence__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.85rem}.presence__card h2{margin:0;font-size:1.05rem}.presence__qr{align-items:center;text-align:center}.presence__qrbox{padding:1rem;background:#fff;border:1px solid var(--color-border);border-radius:12px}.presence__hint{font-size:.8rem;color:var(--color-text-muted);margin:0}.presence__check{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;color:var(--color-text)}.presence__check input{margin-top:.15rem}.presence__report{margin-top:1rem}.presence__report-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.85rem}.presence__report-head h2{margin:0;font-size:1.15rem}.presence__dates{display:flex;align-items:center;gap:.5rem}.presence__dates input{padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:9px;background:#fff;font:inherit}.alert--ok{padding:.6rem .8rem;border-radius:9px;font-size:.85rem;color:#166534;background:#dcfce7;border:1px solid #bbf7d0}@media (max-width: 720px){.presence__grid{grid-template-columns:1fr}}.audit__action{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.audit__action--POST{background:#dcfce7;color:#166534}.audit__action--PUT,.audit__action--PATCH{background:#dbeafe;color:#1e40af}.audit__action--DELETE{background:#fee2e2;color:#991b1b}.audit__chemin{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit__muted{color:var(--color-text-muted)}.audit__pagination{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;color:var(--color-text-muted);font-size:.9rem}.audit__pagination div{display:flex;gap:.5rem}.pharma__alertes{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;padding:.6rem .9rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;line-height:1.4}.pharma__dci{color:var(--color-text-muted);font-size:.85rem}.pharma__stock{font-weight:600}.pharma__stock--alerte{color:#b91c1c}.pharma__detail{background:#f8fafc;padding:.75rem 1rem!important}.pharma__form{margin-bottom:.75rem}.pharma__form h4{margin:0 0 .4rem;font-size:.95rem}.pharma__form-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.pharma__form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;align-items:center}.pharma__form input,.pharma__form select{font:inherit;padding:.35rem .5rem;border:1px solid var(--color-border, #d1d5db);border-radius:6px}.pharma__form-actions{display:flex;gap:.5rem;margin-top:.5rem}.pharma__actif{display:flex;align-items:center;gap:.35rem;font-size:.9rem}.pharma__mvts h4{margin:.5rem 0 .3rem;font-size:.95rem}.pharma__mvts ul{margin:0;padding-left:1rem;font-size:.85rem;line-height:1.5}.pharma__pos{color:#166534;font-weight:600}.pharma__neg{color:#b91c1c;font-weight:600}.pharma__form-hint{margin:0 0 .6rem;font-size:.82rem;color:var(--color-text-muted)}.pharma__autocomplete{position:relative}.pharma__autocomplete>input{width:100%}.pharma__suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow);max-height:260px;overflow-y:auto}.pharma__suggestion{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 12px;border:0;border-bottom:1px solid var(--color-border-soft);background:none;text-align:left;cursor:pointer;font-family:inherit}.pharma__suggestion:last-child{border-bottom:0}.pharma__suggestion:hover{background:#eff6ff}.pharma__sugg-nom{font-size:13px;font-weight:600;color:var(--color-text)}.pharma__sugg-dose{color:var(--color-primary);font-weight:600}.pharma__sugg-meta{font-size:11px;color:var(--color-text-faint)}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-contrast: #ffffff;--color-violet: #7c3aed;--color-amber: #f59e0b;--color-red: #ef4444;--color-green: #059669;--color-bg: #eef2ff;--color-surface: #ffffff;--color-text: #0f172a;--color-text-strong: #0f172a;--color-text-muted: #64748b;--color-text-faint: #94a3b8;--color-border: #e2e8f0;--color-border-soft: #f1f5f9;--color-danger: #dc2626;--color-danger-bg: #fef2f2;--radius: 12px;--radius-sm: 8px;--radius-lg: 15px;--shadow: 0 10px 30px -12px rgba(15, 23, 42, .25);--shadow-card: 0 1px 3px rgba(0, 0, 0, .04), 0 4px 14px rgba(37, 99, 235, .06);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased}button{font-family:inherit}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
