:root{color-scheme:dark;--bg:#090f1d;--panel:#121c2f;--panel2:#17233a;--border:#25334d;--text:#e9f1ff;--muted:#96a9c7;--accent:#427ef9;--accent2:#62a5ff;--green:#24c9a4;--shadow:0 16px 48px rgba(0,0,0,.24);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#f4f7fc;--panel:#fff;--panel2:#edf2f9;--border:#dae3f1;--text:#162339;--muted:#61738d;--accent:#2868df;--accent2:#5294ef;--green:#0b9974;--shadow:0 12px 32px rgba(25,54,90,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.48}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:800;color:var(--accent2)}.stack{display:flex;flex-direction:column;gap:15px}.stack label,.field{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px;font-weight:600}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:11px 13px;max-width:100%;min-height:42px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(66,126,249,.12)}textarea{resize:vertical;min-height:80px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:11px 15px;font-weight:700;border:1px solid var(--border);background:var(--panel2);color:var(--text);white-space:nowrap}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.danger{color:#ff8b97;border-color:rgba(251,94,104,.45)}.btn.small{font-size:12px;padding:8px 11px}.icon-btn{border:0;background:transparent;color:var(--text);height:36px;min-width:36px;border-radius:9px;font-size:20px}.icon-btn:hover{background:var(--panel2)}.auth-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:26px;background:radial-gradient(ellipse at 50% 0,rgba(57,103,202,.24),transparent 63%),var(--bg)}.auth-brand{display:flex;align-items:center;gap:10px;font-size:19px;letter-spacing:1px;font-weight:400;margin-bottom:35px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--accent);color:white;font-size:26px;border-radius:11px;flex-shrink:0}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:32px;width:100%;max-width:420px;box-shadow:var(--shadow)}.auth-title{font-size:25px;font-weight:800;letter-spacing:-.7px}.auth-card p{margin:6px 0 25px}.auth-foot{margin-top:22px;color:var(--muted);font-size:11px;text-align:center}.tabs{display:flex;background:var(--panel2);padding:4px;border-radius:11px;margin-bottom:23px}.tab{flex:1;border:0;color:var(--muted);background:transparent;border-radius:8px;padding:9px 6px;font-size:12px;font-weight:650}.tab.active{color:var(--text);background:var(--panel);box-shadow:0 2px 8px #0002}.alert{background:rgba(226,77,87,.1);color:#ff9da8;border:1px solid rgba(226,77,87,.25);border-radius:10px;padding:11px;margin-top:15px}.app-shell{display:flex;min-height:100vh}.sidebar{width:245px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:25px 13px;z-index:9}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 10px 29px;font-size:14px;letter-spacing:1px;line-height:1.25}.nav-section-title{font-size:10px;letter-spacing:1.4px;color:var(--muted);font-weight:800;padding:17px 13px 10px}.nav-link{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:transparent;color:var(--muted);border:0;border-radius:10px;padding:12px 14px;margin-bottom:3px;font-size:13px;font-weight:650}.nav-link>span:first-child{font-size:19px;width:19px;text-align:center}.nav-link.active,.nav-link:hover{background:var(--panel2);color:var(--text)}.nav-link.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-bottom{margin-top:auto;padding:15px 12px;color:var(--muted);font-size:11px}.mini-status{display:flex;align-items:center;gap:8px;margin-bottom:8px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.status-dot.warn{background:#f4bd63}.sidebar-version{font-size:10px;opacity:.65}.workspace{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:76px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:14px;position:sticky;top:0;z-index:8}.breadcrumbs{font-size:13px;color:var(--muted)}.breadcrumbs span{padding:0 10px;color:var(--border)}.top-actions{display:flex;align-items:center;gap:12px}.pill{border:1px solid var(--border);background:var(--panel2);border-radius:100px;padding:6px 10px;color:var(--green);font-weight:700}.profile-chip{display:grid;place-items:center;width:36px;height:36px;border:1px solid #5b7bd0;border-radius:50%;background:var(--panel2);color:var(--accent2);font-weight:800}.page-content{padding:29px 32px;max-width:1600px;width:100%;margin:0 auto;flex:1}.app-footer{font-size:11px;color:var(--muted);text-align:center;padding:12px 20px 25px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:26px;flex-wrap:wrap}.page-head h1{font-size:27px;line-height:1.2;margin:4px 0;font-weight:800;letter-spacing:-.8px}.page-head p{color:var(--muted);margin:5px 0}.grid{display:grid;gap:17px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--border);border-radius:15px;box-shadow:0 1px 2px rgba(0,0,0,.02);min-width:0}.card-pad{padding:22px}.stat-card{padding:20px 22px;position:relative}.stat-card .caption{color:var(--muted);font-size:12px;font-weight:650}.stat-card .big{font-size:32px;font-weight:800;letter-spacing:-1.5px;margin-top:9px}.stat-card .unit{font-size:12px;color:var(--muted);font-weight:500}.stat-card .meta{color:var(--muted);font-size:11px;margin-top:9px}.stat-card .mini-icon{position:absolute;right:18px;top:18px;font-size:19px;color:var(--accent2)}.chart-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:17px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.card-title h2{font-size:16px;margin:0}.subtle{font-size:11px;color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.toolbar select{min-height:34px;padding:6px 9px;font-size:12px}.legend{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted);font-size:12px;margin:18px 0 0}.swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.data-table th{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);background:var(--panel2);font-weight:750}.data-table td,.data-table th{padding:13px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td.notes-cell{white-space:normal;min-width:120px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:rgba(110,150,225,.05)}.value{font-weight:800;font-size:13px}.value.sys{color:#66a9ff}.value.dia{color:#ac98fa}.value.pul{color:#29cdb6}.badge{display:inline-flex;align-items:center;font-size:11px;padding:4px 8px;border-radius:9px;background:var(--panel2);color:var(--muted)}.badge.good{background:rgba(40,204,167,.12);color:var(--green)}.empty{text-align:center;padding:28px 10px;color:var(--muted)}.empty>div{font-size:35px;margin-bottom:10px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.modal-layer{position:fixed;inset:0;background:rgba(2,7,16,.72);display:flex;justify-content:center;align-items:center;padding:17px;z-index:100;backdrop-filter:blur(5px)}.modal{width:100%;max-width:680px;background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);max-height:92vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding:17px 24px}.modal-head h2{margin:0;font-size:18px}#modal-content{padding:24px}.form-section{margin-top:15px;border-top:1px solid var(--border);padding-top:17px}.form-section h3{font-size:13px;margin:0 0 13px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.filters input,.filters select{min-height:35px;padding:7px 10px;font-size:12px}.filters input{flex:1;min-width:130px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.cal-day{border:1px solid var(--border);min-height:76px;background:var(--panel2);border-radius:9px;text-align:left;color:var(--text);padding:10px;font-weight:700}.cal-day.muted-day{opacity:.45}.cal-day.today{outline:2px solid var(--accent)}.cal-day.selected{background:rgba(65,125,249,.19);border-color:var(--accent)}.cal-day .count{color:var(--green);font-size:11px;margin-top:8px;display:block}.weekday{color:var(--muted);text-align:center;font-size:11px;font-weight:800;padding:8px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.settings-grid .card{padding:22px}.settings-grid h2{margin:0 0 18px;font-size:16px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:13px 0}.setting-row label{color:var(--muted);font-size:12px}.setting-row select,.setting-row input{width:185px;max-width:56%}.widget{position:relative}.widget[draggable=true]{cursor:grab}.widget-tools{display:flex;gap:4px}.widget-tools button{border:1px solid var(--border);color:var(--muted);background:var(--panel2);border-radius:7px;font-size:10px;padding:4px 7px}.widget-hidden{display:none}.widget.dragging{opacity:.5}.chart-area{height:300px;display:flex;align-items:end;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(0deg,transparent,rgba(48,88,153,.02));border-radius:10px}.plot-2d{height:260px;width:100%;display:flex;align-items:end;justify-content:space-evenly;gap:5px;padding:14px 8px 31px;border-bottom:1px solid var(--border);background:repeating-linear-gradient(to top,transparent 0,transparent 51px,var(--border) 52px)}.bar-group{flex:1;max-width:68px;min-width:14px;display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%;position:relative}.bar-2d{min-width:4px;flex:1;max-width:17px;border-radius:4px 4px 0 0;transition:height .4s ease;cursor:pointer}.bar-2d:hover{filter:brightness(1.35)}.axis-date{position:absolute;bottom:-24px;width:88px;left:50%;transform:translateX(-50%);font-size:10px;text-align:center;color:var(--muted);white-space:nowrap}.bar-3d-scene{position:relative;width:100%;height:290px;transform-style:preserve-3d;perspective:900px;overflow:hidden}.bar-3d-rig{position:absolute;left:50%;top:53%;width:620px;height:300px;margin-left:-310px;margin-top:-150px;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(-24deg) scale(.88);transition:transform .18s ease-out;cursor:grab}.bar-3d-floor{position:absolute;width:580px;height:260px;left:20px;bottom:-12px;transform:rotateX(90deg) translateZ(-8px);background:linear-gradient(90deg,rgba(54,103,191,.1),rgba(54,103,191,.015));border:1px solid var(--border)}.cube{position:absolute;width:18px;transform-style:preserve-3d}.cube .front,.cube .side,.cube .top{position:absolute;display:block}.cube .front{height:100%;width:18px;background:var(--bar);transform:translateZ(9px);border-radius:2px 2px 0 0}.cube .side{height:100%;width:18px;background:var(--bar);filter:brightness(.67);transform:rotateY(90deg) translateZ(9px)}.cube .top{height:18px;width:18px;background:var(--bar);filter:brightness(1.4);transform:rotateX(90deg) translateZ(9px)}.cube .front:hover{filter:brightness(1.35)}.chart-hint{text-align:center;font-size:10px;color:var(--muted);margin-top:6px}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:11px;color:var(--muted);margin:5px 0}.chart-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.back-top{position:fixed;right:25px;bottom:25px;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--accent);color:white;font-size:19px;z-index:10}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#253a56;color:#fff;padding:13px 22px;border-radius:11px;box-shadow:var(--shadow);z-index:150;font-weight:600;max-width:90vw;text-align:center}.notice{background:var(--panel2);padding:13px 15px;border:1px solid var(--border);border-radius:11px;color:var(--muted);margin-bottom:16px;font-size:12px}.notice.warn{border-color:rgba(245,185,95,.4);color:#e4bd80}.separator{height:1px;background:var(--border);margin:20px 0}.inset{padding:15px;background:var(--panel2);border-radius:11px}.color-field{width:60px!important;padding:4px!important;height:40px}.page-subtitle{font-size:12px;color:var(--muted)}.chip-list{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text)}.chip.active{border-color:var(--accent);background:rgba(66,126,249,.1)}.help{font-size:11px;color:var(--muted)}.checkrow{display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important}.checkrow input{min-height:0;width:16px;height:16px}.menu-toggle{display:none}.line-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.line-head h2{margin:0;font-size:16px}.soft-panel{background:var(--panel2);border-radius:11px;padding:14px}.modal-wide{max-width:850px}
@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-row{grid-template-columns:minmax(0,1fr)}.sidebar{width:222px}.page-content{padding:24px}}
@media(max-width:760px){.sidebar{position:fixed;left:-265px;top:0;height:100%;transition:left .2s;box-shadow:var(--shadow)}.sidebar.open{left:0}.menu-toggle{display:inline-grid;place-items:center}.topbar{padding:0 15px;height:64px}.breadcrumbs{display:none}.top-actions{gap:6px}.top-actions .pill{display:none}.page-content{padding:18px 13px}.stats-grid{gap:9px}.stat-card{padding:15px}.stat-card .big{font-size:26px}.stat-card .mini-icon{display:none}.card-pad{padding:17px}.settings-grid{grid-template-columns:1fr}.form-grid,.form-grid.two{grid-template-columns:1fr 1fr}.page-head h1{font-size:23px}.calendar-grid{gap:3px}.cal-day{min-height:58px;padding:5px;font-size:12px}.cal-day .count{font-size:9px}.bar-3d-rig{transform:rotateX(-18deg) rotateY(-24deg) scale(.52)}.modal{max-height:95vh}.modal-head,#modal-content{padding:16px}.btn.small{padding:8px}.auth-card{padding:23px}}
@media(max-width:390px){.form-grid,.form-grid.two{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.top-actions #theme-toggle{display:none}.top-actions #quick-add{font-size:11px}.calendar-grid{gap:2px}.cal-day{min-height:52px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Correctif interface UI-01 — Courbes 2D & confirmation des dates personnelles. */
.chart-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:18px;width:100%}
.curve-panel{min-width:0;width:100%}
.chart-section-label{font-weight:700;margin-bottom:8px}
.chart-area-2d{height:auto;min-height:290px;display:block;overflow:visible;background:transparent}
.line-chart{width:100%;position:relative;min-height:285px}
.curve-svg{display:block;width:100%;height:auto;overflow:visible}
.curve-grid{stroke:var(--border);stroke-width:1}
.curve-axis{stroke:var(--muted);stroke-width:1;opacity:.5}
.curve-tick{font-size:12px;fill:var(--muted);font-family:inherit}
.curve-line{fill:none;stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:0;animation:curve-show .65s ease-out both}
.curve-halo{opacity:.13;pointer-events:none}
.curve-dot{stroke:var(--panel);stroke-width:2;pointer-events:none}
.curve-hit{cursor:crosshair;outline:none}
.curve-hit:focus{stroke:var(--text);stroke-width:1.5}
.curve-caption{text-align:center;color:var(--muted);font-size:11px;margin:-10px auto 10px;max-width:90%}
.curve-tooltip{position:absolute;z-index:6;transform:translate(-50%,-105%);display:grid;gap:5px;min-width:205px;max-width:270px;padding:11px 13px;background:var(--panel);color:var(--text);border:1px solid var(--accent);border-radius:10px;box-shadow:var(--shadow);pointer-events:none;font-size:12px;white-space:nowrap}
.curve-tooltip strong{font-weight:800;color:var(--text);margin-bottom:3px}
.curve-tooltip span{display:flex;justify-content:space-between;gap:12px}
.curve-tooltip.hidden{display:none}
.profile-save-status{display:block;margin-top:5px;color:var(--muted);font-size:11px}
@keyframes curve-show{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.curve-line{animation:none}}
@media(max-width:800px){.chart-panels{grid-template-columns:1fr}.line-chart{min-height:230px}.curve-tooltip{font-size:11px;min-width:180px}}

/* UI-02 : fiche profil séparée, lecture et édition (noyau serveur inchangé) */
.profile-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.profile-hero{grid-column:1/-1}
.profile-hero-header{display:flex;gap:23px;align-items:center}
.profile-hero-header h2{font-size:23px;margin:8px 0 3px}
.profile-hero-header p{margin:0 0 5px}
.profile-avatar{width:104px;height:104px;flex:0 0 104px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--border);border-radius:23px;overflow:hidden}
.avatar-image{display:block;width:100%;height:100%;object-fit:cover}
.avatar-placeholder{font-size:56px;line-height:1;color:var(--muted)}
.profile-chip-image{width:100%;height:100%;object-fit:cover;border-radius:50%}
.profile-note{margin:18px 0 0}
.profile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0 0}
.profile-field{min-width:0}
.profile-field dt{font-size:12px;color:var(--muted);margin-bottom:4px}
.profile-field dd{font-size:15px;font-weight:650;margin:0;overflow-wrap:anywhere}
.profile-editor{display:flex;flex-direction:column;gap:18px;max-width:1050px}
.profile-editor .card h2,.profile-layout .card h2{font-size:17px;margin:0 0 16px}
.profile-photo-edit{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.profile-photo-controls{display:flex;flex-wrap:wrap;gap:9px;align-items:center;flex:1}
.profile-photo-controls p{width:100%;margin:0}
.profile-upload{position:relative;cursor:pointer}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.profile-actions{position:sticky;bottom:12px;display:flex;justify-content:flex-end;gap:10px;background:var(--panel);border:1px solid var(--border);padding:12px;border-radius:13px;box-shadow:var(--shadow);z-index:4}
.profile-editor label{min-width:0}
.profile-editor label input[readonly]{opacity:.7}
@media(max-width:850px){.profile-layout{grid-template-columns:1fr}.profile-details{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.profile-hero-header{align-items:flex-start;gap:14px}.profile-avatar{width:80px;height:80px;flex-basis:80px;border-radius:18px}.profile-details{grid-template-columns:1fr}.profile-actions{bottom:4px}.profile-actions .btn{white-space:normal}}

/* TABAC-01 : gestion tabac locale, boutons et courbes communs */
.tobacco-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0 18px}
.tobacco-metric{border:1px solid var(--border);background:var(--panel2);border-radius:12px;padding:15px;min-width:0;display:flex;flex-direction:column;gap:7px}
.tobacco-metric strong{font-size:31px;line-height:1.15;letter-spacing:-.6px}
.tobacco-metric .caption{font-size:11px}.tobacco-metric .help{font-size:11px;line-height:1.5}
.tobacco-trend.up{color:#ef6060}.tobacco-trend.down{color:#22ad72}.tobacco-trend.none{color:var(--muted)}
.tobacco-dashboard{margin-top:18px}.tobacco-dashboard .toolbar{justify-content:flex-start}
.tobacco-sections{display:grid;gap:18px;margin:18px 0}.tobacco-sections h3{font-size:14px;margin:18px 0 5px}
.tobacco-plot{width:100%;overflow:hidden}.tobacco-plot svg{display:block;width:100%;height:auto;max-height:260px}
.tobacco-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.tobacco-point{cursor:crosshair;stroke:var(--panel);stroke-width:2}
.tobacco-point.tobacco-highlight,.tobacco-point:focus{stroke:var(--text);stroke-width:4;outline:none}
.tobacco-hover{font-size:12px;padding:8px 12px;border:1px solid var(--border);background:var(--panel2);color:var(--muted);min-height:36px;border-radius:8px}
.tobacco-observation{border-top:1px solid var(--border);padding:15px 0}.tobacco-observation strong{font-size:13px}.tobacco-observation p{font-size:12px;line-height:1.7;color:var(--muted);margin:5px 0 0}
.cal-day .count{line-height:1.35}
@media(max-width:1120px){.tobacco-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.tobacco-metric{padding:10px}.tobacco-metric strong{font-size:22px}.top-actions #quick-add-tobacco{display:none}}

.tobacco-legend{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:3px 0 8px}
.tobacco-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}
.tobacco-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.tobacco-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* TABAC-02 : repères chronologiques, légende explicite et observations dans les graphiques 2D. */
.smoke-marker-line{stroke:#e65364;stroke-width:1.7;stroke-dasharray:5 5;opacity:.82;pointer-events:none}
.smoke-marker-cap{fill:#e65364;stroke:var(--panel);stroke-width:1.4;pointer-events:none}
.smoke-marker-hit{cursor:crosshair;outline:none}
.smoke-marker-hit:focus{stroke:#e65364;stroke-width:1.4;stroke-dasharray:4 5}
.smoke-marker-count{font-size:10px;fill:#e65364;font-weight:750;pointer-events:none}
.chart-legend-clear{gap:13px 19px;margin:9px 0 14px;font-size:12px;line-height:1.7}
.chart-legend-clear span{display:inline-flex;align-items:center;gap:6px;white-space:normal}
.chart-legend-clear i{margin:0;width:11px;height:11px;flex:0 0 11px}
.chart-legend-clear .smoke-legend-line{width:3px;height:15px;flex-basis:3px;background:#e65364;border-radius:2px}
.chart-note{text-align:center;color:var(--muted);font-size:11px;margin:0 0 9px}
.chart-observations{border-top:1px solid var(--border);margin-top:10px;padding:15px 2px 2px}
.chart-observations h3{font-size:13px;margin:0 0 7px}
.chart-observations>.help{margin:0 0 8px}
.chart-observations .tobacco-observation{padding:9px 0}
.chart-observations .tobacco-observation p{margin:3px 0 0}
@media (max-width:760px){.chart-legend-clear{justify-content:flex-start}}

/* Cohérence des couleurs valeurs / graphiques. */
.value.dia{color:#22c6ad}.value.pul{color:#a78bfa}

/* TABAC-03 — Graphique professionnel, frise d'événements distincte */
.tobacco-pro-card{overflow:hidden}
.tp-controls,.tp-secondary-actions{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.tp-controls>.btn[aria-pressed="true"]{box-shadow:0 0 0 2px rgba(96,165,250,.17)}
.tp-zoom{display:flex;align-items:center;gap:8px;margin-left:auto}
.tp-secondary-actions{align-items:center;margin-bottom:10px}
.tp-secondary-actions>.field{min-width:150px}
.tp-secondary-actions>.field input{min-width:145px}
.tp-graphic{background:var(--panel2);border:1px solid var(--border);border-radius:17px;padding:16px 17px 14px;overflow:hidden}
.tp-chart-subtitle{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:750;color:var(--text);font-size:13px;margin:0 0 6px}
.tp-graphic{position:relative}
.tp-graphic svg.tp-svg{display:block;width:100%;height:auto;max-height:none;overflow:visible;aspect-ratio:1280 / 460}
.tp-grid{stroke:var(--border);stroke-width:1.2}
.tp-axis-title{fill:var(--muted);font-size:12px;font-family:inherit;font-weight:650}
.tp-tick{fill:var(--muted);font-size:12px;font-family:inherit}
.tp-line{fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:3.4;opacity:.95}
.tp-point-hit,.tp-event-hit{cursor:pointer;outline:none}
.tp-point-hit:focus,.tp-event-hit:focus{stroke:var(--text);stroke-width:2.6}
.tp-smoke-dot{fill:#e65364;stroke:var(--panel);stroke-width:2.6}
.tp-cluster-text{fill:#fff;pointer-events:none;font-size:11px;font-weight:800;font-family:inherit}
.tp-event-rail{stroke:#e65364;stroke-width:1.3;opacity:.38;stroke-dasharray:4 5}
.tp-cursor{stroke:var(--accent);stroke-dasharray:5 5;stroke-width:1.8;opacity:.7;pointer-events:none}
.tp-hint{background:var(--panel);border:1px solid var(--border);padding:12px 15px;min-height:46px;border-radius:11px;color:var(--text);font-size:12px;line-height:1.65}
.tp-legend{display:flex;flex-wrap:wrap;gap:9px 23px;align-items:center;padding:15px 0 10px;color:var(--muted);font-size:12px}
.tp-legend span{display:inline-flex;align-items:center;gap:9px}
.tp-legend i{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none}
.tobacco-pro-trend{border-radius:11px;border:1px solid var(--border);padding:14px 18px;background:var(--panel2);margin-bottom:12px}
.tobacco-pro-trend .caption{display:block;color:var(--muted);font-size:12px}
.tobacco-pro-trend strong{display:block;font-size:23px;margin:4px 0}
.tp-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:15px 0}
.tp-insight{background:var(--panel2);border:1px solid var(--border);border-radius:13px;padding:17px;min-width:0}
.tp-insight .caption{font-size:12px;display:block;color:var(--muted)}
.tp-insight strong{display:block;font-size:19px;margin:9px 0;overflow-wrap:anywhere}
.tp-insight p{margin:0;font-size:12px;line-height:1.7;color:var(--muted)}
.tp-cluster-list{display:flex;flex-direction:column;gap:10px;margin-top:12px;max-height:60vh;overflow:auto}
.tp-cluster-row{display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--panel2);padding:12px;border-radius:10px}
.tp-cluster-row p{margin:5px 0 0}
@media(max-width:900px){.tp-insights{grid-template-columns:1fr}.tp-graphic{padding:9px}.tp-controls{gap:6px}.tp-zoom{margin-left:0;width:100%;justify-content:flex-end}}
@media(max-width:590px){.tp-graphic{overflow-x:auto}.tp-graphic svg{min-width:620px}.tp-legend{gap:7px 14px}.tp-chart-subtitle{font-size:11px}.tp-controls .btn{white-space:normal}.tp-cluster-row{flex-direction:column;align-items:start}}
.tp-event-hit{fill:transparent;pointer-events:all}
.tp-dashboard-tools{display:flex;justify-content:end;padding:0 0 10px}
.tp-dashboard-widget{display:block;min-width:0}
.tp-dashboard-widget .tobacco-pro-card{margin-bottom:15px}

/* TABAC-03A — tracé adaptatif pleine largeur, légende lisible et infobulles précises */
.tp-graphic{position:relative}
.tp-legend{padding:13px 0;gap:9px 12px;align-items:stretch}
.tp-legend .tp-legend-key{display:inline-flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:9px 12px;color:var(--text);font-size:12px;line-height:1.3}
.tp-legend .tp-legend-key strong{font-weight:750}
.tp-legend .tp-legend-key small{color:var(--muted);font-size:11px}
.tp-legend .tp-legend-dot{display:inline-block;flex:0 0 13px;width:13px;height:13px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--border)}
.tp-legend .tp-legend-cigarette{border-radius:4px}
.tp-tooltip{position:absolute;left:15px;top:40px;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:9px;width:max-content;min-width:240px;max-width:min(395px,calc(100% - 20px));padding:13px 16px;background:var(--panel);color:var(--text);border:1px solid var(--accent);border-radius:12px;box-shadow:0 13px 35px rgba(2,15,37,.23);font-size:12px;line-height:1.45}
.tp-tooltip-title{font-size:13px;font-weight:800;white-space:normal}
.tp-tooltip-rows{display:flex;flex-direction:column;gap:5px;border-block:1px solid var(--border);padding:8px 0}
.tp-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.tp-tooltip-row>span{display:inline-flex;gap:7px;align-items:center;color:var(--muted)}
.tp-tooltip-row>b{font-weight:750;white-space:nowrap}
.tp-tooltip-swatch{width:9px;height:9px;display:inline-block;border-radius:50%;flex:none}
.tp-tooltip p{margin:0;color:var(--muted);line-height:1.55;white-space:normal}
.tp-point-hit:hover,.tp-event-hit:hover{stroke:var(--accent);stroke-opacity:.4;stroke-width:1.5}
@media(max-width:760px){.tp-tooltip{min-width:180px;max-width:min(340px,calc(100% - 15px));padding:10px 12px}.tp-legend .tp-legend-key{padding:7px 9px;gap:6px}}

/* TABAC-04 — filtre médical par jours civils locaux et synthèse de la période */
.tp-med-filter{border:1px solid var(--border);background:var(--panel2);border-radius:13px;padding:15px 17px;margin:13px 0 16px}
.tp-med-filter-head,.tp-med-range-note{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.tp-med-filter-head strong{font-size:14px}.tp-med-filter-head p{margin:4px 0 0}
.tp-med-modes,.tp-med-presets{display:flex;gap:6px;flex-wrap:wrap}
.tp-med-presets,.tp-med-fields{margin-top:13px}
.tp-med-fields{display:flex;gap:12px;flex-wrap:wrap}.tp-med-fields label{flex:1;min-width:180px}
.tp-med-range-note{margin-top:13px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
.tp-med-range-note b{color:var(--text)}
.tp-med-summary{margin-bottom:17px}.tp-med-summary-title{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px}
.tp-med-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tp-med-stat{display:flex;flex-direction:column;gap:5px;border:1px solid var(--border);background:var(--panel2);border-radius:11px;padding:14px;min-width:0}
.tp-med-stat .caption{font-size:12px;color:var(--muted)}.tp-med-stat strong{font-size:22px;font-variant-numeric:tabular-nums;color:var(--text)}.tp-med-stat small{font-size:11px;color:var(--muted)}
.tp-med-summary>p{margin:9px 0 0}
@media(max-width:800px){.tp-med-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){.tp-med-stats{grid-template-columns:1fr 1fr}.tp-med-stat{padding:10px}.tp-med-stat strong{font-size:18px}}

/* V1-01 : tableau de bord unique espace transversal, parcours par métier. */
.dash-widgets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.dash-widgets>.widget{min-width:0;width:100%;margin:0}
.dash-widget .card-title{gap:14px;flex-wrap:wrap}
.dash-widget .card-title .toolbar{margin-left:auto;flex-wrap:wrap}
.dash-widget .stats-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.dash-widget .stat-card{box-shadow:none;background:var(--panel2);border-color:var(--border);padding:14px}
.dash-widget .stat-card .big{font-size:29px}
.dash-widget .stat-card .meta{font-size:12px}
.dash-widget .stat-card .caption{font-size:12px}
.dash-widget .stat-card .mini-icon{display:none}
.dash-widgets>[data-widget="chart"]{grid-column:1/-1}
.dash-widgets>[data-widget="recent"]{grid-column:1/-1}
.dash-intro{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.dash-intro>span{flex:1;min-width:220px}
.dash-trend-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.dash-mini-chart{max-width:100%;min-height:170px}
.dashboard-spark-svg{width:100%;height:auto;display:block;max-height:265px}
.dash-spark-tick{fill:var(--muted);font-size:13px;font-family:inherit}
.dash-spark-key{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin:5px 0 8px}
.dash-spark-key>span{display:inline-flex;align-items:center;gap:6px}
.dash-spark-key i{height:10px;width:10px;border-radius:50%;display:inline-block}
.dash-chart-empty{padding:35px 12px;text-align:center;color:var(--muted)}
.dash-summary-row{display:flex;gap:20px;align-items:start;margin:9px 0 16px;flex-wrap:wrap}
.dash-summary-row>div{display:flex;flex-direction:column;gap:7px;flex:1;min-width:130px}
.dash-summary-row strong{font-size:30px;line-height:1.2}
.dash-summary-row .dash-date{font-size:16px;overflow-wrap:anywhere}
.dash-domain-link{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin:18px 0}
.dash-domain-link h2{margin:0 0 7px}
.nav-sub-link{font-size:13px;padding-left:30px!important;opacity:.92}
@media(max-width:1100px){.dash-widgets{grid-template-columns:1fr}.dash-widgets>[data-widget="chart"],.dash-widgets>[data-widget="recent"]{grid-column:auto}}
@media(max-width:700px){.dash-widget .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-widget .stat-card .big{font-size:24px}.dash-widgets{gap:12px}.dash-intro>span{min-width:0}}

/* V1-02B — Liens PHP de navigation, style visuel conservé */
a.nav-link{text-decoration:none;}a.nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
/* Médicaments : présentation du widget existant et des prises par moment. */
.med-dash-group{margin-top:1rem;border-top:1px solid var(--border);padding-top:.7rem}
.med-dash-group h3{font-size:1rem;margin:0 0 .5rem}
.med-dash-item{display:flex;align-items:center;gap:.7rem;padding:.45rem 0;flex-wrap:wrap}
.med-dash-item span{flex:1;min-width:10rem}
.med-dash-item small{opacity:.7}
.med-dash-item strong{font-size:.85rem;font-weight:600}

/* Médicaments : bannière horaire persistante tant que la session est ouverte */
.medication-alert-banner{position:sticky;top:0;z-index:25;padding:12px 18px;background:#fff7d6;color:#292318;border:2px solid #ad7500;border-radius:10px;margin:8px 0 15px;box-shadow:0 4px 12px #0002}.medication-alert-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:7px;flex-wrap:wrap}.weight-weight-chart svg,.weight-imc-chart svg{display:block;width:100%;height:auto;max-height:330px}.weight-imc-chart{margin-top:16px}@media print{.medication-alert-banner{display:none!important}}

/* Poids & IMC : légende clinique et cartouches SVG interactifs. */
.weight-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:9px 14px;margin:16px 0 4px}
.weight-legend-item{display:flex;align-items:center;gap:9px;min-height:42px;padding:9px 11px;border:1px solid var(--border,#dce2e8);border-radius:10px;background:var(--panel,#fff);font-size:12px;line-height:1.4}
.weight-legend-swatch{display:block;flex:0 0 14px;width:14px;height:14px;border:1px solid #64748b55;border-radius:5px}
.weight-legend-swatch-0{background:#dbeafe}.weight-legend-swatch-1{background:#dcfce7}.weight-legend-swatch-2{background:#fef9c3}.weight-legend-swatch-3{background:#fed7aa}.weight-legend-swatch-4{background:#fdba74}.weight-legend-swatch-5{background:#fecaca}
.weight-legend-range{font-weight:750;white-space:nowrap}.weight-legend-name{color:var(--text,#182333)}
.weight-chart-point{cursor:crosshair;outline:none}
.weight-chart-point:focus circle{stroke:#2563eb;stroke-width:3}
.weight-chart-popup{opacity:0;visibility:hidden;pointer-events:none;overflow:visible;transition:opacity .12s ease}
.weight-chart-point:hover .weight-chart-popup,.weight-chart-point:focus .weight-chart-popup{opacity:1;visibility:visible}
.weight-tooltip{box-sizing:border-box;width:218px;padding:10px 12px;border:1px solid #dbe1e9;border-radius:10px;background:#fff;color:#172033;box-shadow:0 8px 24px rgba(19,35,58,.16);font-family:system-ui,-apple-system,sans-serif;font-size:12px;line-height:1.3}
.weight-tooltip strong{display:block;padding-bottom:6px;margin-bottom:5px;border-bottom:1px solid #e5eaf0;font-size:12px;color:#172033}
.weight-tooltip div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:4px}
.weight-tooltip span{color:#475569}.weight-tooltip b{font-weight:700;color:#172033;text-align:right}
@media(max-width:600px){.weight-legend{grid-template-columns:1fr}.weight-legend-item{min-height:36px}}

/* Agenda */
.agenda-filters{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.agenda-filters select{min-width:135px;max-width:100%;padding:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px}.agenda-row{padding:12px 0;border-bottom:1px solid var(--border)}.agenda-row:last-child{border-bottom:0}.agenda-pill,.agenda-day-badge{display:inline-block;background:var(--accent);color:#fff;border-radius:6px;padding:2px 6px;font-size:.75rem}.agenda-day-badge{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.agenda-form{display:grid;gap:12px}.agenda-form label{display:grid;gap:5px}.agenda-form input,.agenda-form select,.agenda-form textarea{max-width:100%;padding:9px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text)}
/* Agenda premium — présentation uniquement, sans changement métier. */
.premium-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:6px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:15px;margin:20px 0;color:#334155}
.premium-tab{appearance:none;border:0;background:transparent;border-radius:11px;padding:13px 17px;font:inherit;font-weight:650;color:#475569;cursor:pointer;transition:background .15s,box-shadow .15s}
.premium-tab:hover{background:#e2e8f0}.premium-tab.is-active{background:#fff;color:#164e83;box-shadow:0 1px 5px rgba(15,23,42,.1)}.premium-tab:focus-visible,.premium-day:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
.premium-calendar-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,2fr);gap:18px;align-items:start}
.premium-panel{background:#fff!important;color:#172033!important;border:1px solid #e2e8f0;border-radius:16px;padding:22px;box-shadow:0 8px 30px rgba(15,23,42,.045);min-width:0}
.premium-panel h2,.premium-panel h3{color:#0f172a}.premium-panel h3{font-size:14px;margin:18px 0 10px}.premium-panel .help{color:#64748b}
.premium-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.premium-heading h2{margin:0;font-size:19px;line-height:1.4}.premium-eyebrow{display:block;font-size:10px;font-weight:750;letter-spacing:.12em;color:#64748b;margin-bottom:4px}
.premium-calendar-grid{gap:5px}.premium-calendar-grid .weekday{text-align:center;font-size:12px;font-weight:700;color:#64748b}.premium-calendar-grid .premium-day{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:91px;border:1px solid #e2e8f0;border-radius:11px;background:#fff;color:#0f172a;padding:7px;text-align:left;overflow:hidden;cursor:pointer}.premium-day:hover{border-color:#93c5fd;background:#f8fbff}.premium-calendar-grid .premium-day.selected{border:2px solid #2563eb;background:#eff6ff}.premium-day-number{font-size:13px;font-weight:700}.premium-day-events{display:flex;flex-direction:column;gap:3px;min-width:0}.premium-day .agenda-day-badge{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#e0f2fe;color:#075985;border-radius:99px;padding:3px 6px;font-size:10px;font-weight:650}.premium-day-marker{width:6px;height:6px;border-radius:50%;background:#0891b2;margin-top:auto}.premium-day small{font-size:10px;color:#64748b}
.premium-day-details{position:sticky;top:14px}.premium-details-scroll{max-height:620px;overflow-y:auto;padding-right:3px}.premium-day-details .card{background:#f8fafc!important;color:#0f172a!important;border:1px solid #e2e8f0!important;box-shadow:none!important;padding:12px!important;border-radius:12px!important}.premium-day-details .agenda-row{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important;padding:10px!important;color:#0f172a!important;margin:7px 0!important}.premium-day-details .agenda-row .help{color:#475569!important}
.premium-metric-list{display:grid;gap:8px}.premium-metric{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 13px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#334155;font-size:13px}.premium-metric strong{color:#0f172a;font-size:14px}.premium-pill,.premium-event-grid .agenda-pill{display:inline-flex;align-items:center;max-width:100%;border-radius:99px;padding:4px 9px;background:#e0f2fe;color:#075985;font-size:11px;font-weight:700}
.premium-directory-tools{margin:0 0 18px}.premium-directory-tools input{width:100%;max-width:510px;background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:11px;padding:12px}.premium-contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:15px}.premium-contact-card{border:1px solid #e2e8f0;background:#fff;color:#334155;border-radius:15px;padding:18px;box-shadow:0 5px 18px rgba(15,23,42,.045);display:flex;flex-direction:column;gap:16px;min-width:0}.premium-contact-head{display:flex;gap:12px;align-items:center}.premium-contact-head h3{margin:0 0 5px;color:#0f172a;font-size:16px}.premium-avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:14px;background:#e0f2fe;color:#075985;font-weight:750;font-size:18px}.premium-contact-lines{display:grid;gap:7px;font-size:13px;overflow-wrap:anywhere}.premium-contact-lines a{color:#0369a1;text-decoration:none}.premium-contact-lines a:hover{text-decoration:underline}.premium-contact-lines p{margin:0;color:#64748b}.premium-contact-actions{display:flex;gap:8px;margin-top:auto;border-top:1px solid #e2e8f0;padding-top:12px}.premium-event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:13px}.premium-event-grid .agenda-row{border:1px solid #e2e8f0!important;background:#fff!important;color:#0f172a!important;border-radius:13px!important;padding:16px!important;margin:0!important}.premium-event-grid .agenda-row .help{color:#64748b!important}
@media(max-width:1080px){.premium-calendar-layout{grid-template-columns:1fr}.premium-day-details{position:static}.premium-details-scroll{max-height:none}}
@media(max-width:600px){.premium-panel{padding:13px}.premium-tabs{display:grid;grid-template-columns:1fr}.premium-tab{text-align:left}.premium-calendar-grid{gap:2px}.premium-calendar-grid .premium-day{padding:3px;min-height:69px;border-radius:6px}.premium-day .agenda-day-badge{font-size:9px;padding:2px}.premium-heading h2{font-size:16px}}

/* Design system unifié — modules cliniques premium v1.3.2 */
.premium-panel,.dash-widget,.widget.card,.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 5px 24px rgba(15,23,42,.045)}
.premium-weight-overview{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:16px;align-items:stretch;margin-bottom:16px}
.premium-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.premium-metric{display:flex;flex-direction:column;gap:7px;min-width:0;padding:15px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
.premium-metric strong{font-size:clamp(19px,2vw,26px);font-variant-numeric:tabular-nums;color:#0f172a}
.premium-metric-icon{font-size:19px;color:#2563eb}.premium-status{display:inline-flex;align-items:center;border-radius:999px;background:#edf4ff;color:#214f88;padding:5px 10px;font-size:12px;font-weight:600;line-height:1.25;max-width:100%}
.dash-weight-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:2px 0 14px}
.dash-weight-metric{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}
.dash-weight-metric strong{font-size:22px;line-height:1.2;color:var(--text);font-variant-numeric:tabular-nums}
.dash-weight-metric .help{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.bmi-pill{display:inline-flex;align-items:center;align-self:flex-start;max-width:100%;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.25;border:1px solid transparent}
.bmi-pill-low{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.bmi-pill-normal{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.bmi-pill-warning{background:#fef9c3;color:#854d0e;border-color:#fde68a}
.bmi-pill-risk-1{background:#fed7aa;color:#9a3412;border-color:#fdba74}
.bmi-pill-risk-2{background:#fdba74;color:#7c2d12;border-color:#fb923c}
.bmi-pill-risk-3{background:#fecaca;color:#991b1b;border-color:#fca5a5}
.bmi-pill-neutral{background:#e2e8f0;color:#334155;border-color:#cbd5e1}
.premium-goal-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.premium-goal-form label{flex:1 1 140px;min-width:130px;max-width:240px}.premium-goal-form input{width:100%;box-sizing:border-box}.premium-goal-form .premium-compact-btn{flex:0 0 auto;width:auto;align-self:flex-end;white-space:nowrap;padding:10px 15px}.premium-goal-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:17px}.premium-goal-summary strong{font-size:13px;color:#334155}
.premium-intake-grid,.premium-treatment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin-top:16px}.premium-intake-card,.premium-treatment-card{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:17px;box-shadow:0 4px 15px rgba(15,23,42,.035);min-width:0}.premium-intake-header,.premium-treatment-head,.premium-intake-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.premium-intake-card>strong,.premium-treatment-head strong{font-size:16px;color:#0f172a}.premium-med-subtitle{font-size:13px;color:#64748b}.premium-intake-footer{margin-top:auto;padding-top:12px;border-top:1px solid #e2e8f0}.premium-inline-check{display:inline-flex;align-items:center;gap:8px;font-weight:600}.premium-moments,.premium-treatment-actions{display:flex;flex-wrap:wrap;gap:7px}.premium-treatment-actions{margin-top:auto;padding-top:12px;border-top:1px solid #e2e8f0}.premium-dose{border-radius:999px;padding:5px 11px;background:#e9f7ef;color:#166534;font-size:12px;font-weight:700}.premium-day-selector{max-width:230px}.premium-treatment-actions .btn,.premium-intake-footer .btn,.dash-widget .btn.small{width:auto;flex:0 0 auto}.dash-widget .card-title{gap:12px;align-items:center}.dash-widget .toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.dash-widget .med-dash-item{border:1px solid #e2e8f0;border-radius:10px;padding:10px;margin:7px 0;background:#f8fafc}.dash-widget .med-dash-item strong{border-radius:999px;background:#e9f7ef;color:#166534;padding:4px 9px}.stats-grid .stat-card{min-width:0}
@media(max-width:950px){.premium-weight-overview{grid-template-columns:1fr}}
@media(max-width:620px){.premium-metrics{grid-template-columns:1fr 1fr}.premium-goal-form{align-items:stretch}.premium-goal-form .premium-compact-btn{align-self:flex-end}.dash-weight-overview{grid-template-columns:1fr}}
@media(max-width:390px){.premium-metrics{grid-template-columns:1fr}}

/* Thèmes unifiés — composants Premium, graphiques et modales. */
:root[data-theme="dark"]{color-scheme:dark;--bg:#0f172a;--panel:#1e293b;--panel2:#334155;--border:#334155;--text:#f8fafc;--muted:#cbd5e1;--premium-hover:#26374b;--premium-strong:#f8fafc;--premium-link:#93c5fd;--shadow:0 8px 28px rgba(2,6,23,.25)}
:root[data-theme="light"]{color-scheme:light;--bg:#f4f7fb;--panel:#ffffff;--panel2:#f1f5f9;--border:#e2e8f0;--text:#0f172a;--muted:#475569;--premium-hover:#f1f5f9;--premium-strong:#0f172a;--premium-link:#0369a1;--shadow:0 5px 20px rgba(15,23,42,.05)}
.premium-panel,.dash-widget,.widget.card,.stat-card,.premium-contact-card,.premium-event-grid .agenda-row,.premium-intake-card,.premium-treatment-card,.premium-calendar-grid .premium-day,.premium-day-details .card,.premium-day-details .agenda-row,.premium-metric,.dash-widget .med-dash-item,.premium-directory-tools input,.agenda-form input,.agenda-form select,.agenda-form textarea{background:var(--panel)!important;color:var(--text)!important;border-color:var(--border)!important;box-shadow:var(--shadow)!important}
.premium-treatment-head strong,.premium-intake-card>strong,.premium-contact-head h3,.premium-calendar-grid .premium-day,.premium-tab.is-active{color:var(--text)!important}
.premium-contact-lines p,.premium-med-subtitle,.premium-day small,.premium-calendar-grid .weekday,.premium-event-grid .agenda-row .help,.premium-day-details .agenda-row .help{color:var(--muted)!important}
.premium-contact-lines a{color:var(--premium-link)!important}
.premium-tabs,.premium-tab,.premium-tab.is-active{background:var(--panel2)!important;color:var(--text)!important;border-color:var(--border)!important}
.premium-tab.is-active{background:var(--panel)!important;box-shadow:0 2px 8px rgba(0,0,0,.12)!important}
.premium-tab:hover,.premium-day:hover,.premium-calendar-grid .premium-day.selected{background:var(--premium-hover)!important}
.premium-day-details .agenda-row,.premium-contact-actions,.premium-treatment-actions,.premium-intake-footer{border-color:var(--border)!important}
.premium-metric-list .premium-metric,.premium-day-details .premium-metric{background:var(--panel2)!important}
.weight-tooltip{background:var(--panel)!important;color:var(--text)!important;border-color:var(--border)!important;box-shadow:var(--shadow)!important}
.weight-legend-item{background:var(--panel)!important;color:var(--text)!important;border-color:var(--border)!important}
.medication-alert-banner{background:var(--panel2);color:var(--text);border-color:var(--border)}
.export-choice{border:1px solid var(--border);border-radius:12px;padding:14px;display:grid;gap:10px;color:var(--text);background:var(--panel)}
.export-choice legend{font-weight:700;padding:0 8px}.export-choice label{display:flex;align-items:center;gap:9px}.export-choice input{width:auto;min-width:16px}

/* v1.4.1 — Sélection de destination compacte, indépendante des styles génériques de formulaires */
.export-choice{display:flex!important;flex-direction:column!important;gap:8px!important;align-items:stretch!important}
.export-choice label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;margin:0 0 8px!important;padding:6px 8px!important;width:100%!important;text-align:left!important;cursor:pointer}
.export-choice input[type="radio"]{display:inline-block!important;position:static!important;flex:0 0 16px!important;width:16px!important;height:16px!important;min-width:16px!important;margin:0!important;vertical-align:middle!important}

.export-choice label{min-height:0!important;height:auto!important;line-height:1.35!important;padding:5px 8px!important}.export-choice{gap:2px!important}

/* À propos : deux colonnes institutionnelles, sans cartes imbriquées. */
.about-premium-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:stretch;width:100%}
.about-premium-card{min-width:0;display:flex;flex-direction:column;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:clamp(25px,3vw,44px)}
.about-premium-card h1,.about-premium-card h2{color:var(--text);letter-spacing:-.025em}
.about-premium-card h1{font-size:clamp(26px,2.4vw,36px);line-height:1.18;margin:0 0 16px}
.about-premium-card h2{font-size:clamp(19px,1.5vw,23px);line-height:1.3;margin:0 0 16px}
.about-premium-card p{color:var(--muted);font-size:14px;line-height:1.85;margin:0 0 20px;overflow-wrap:anywhere}
.about-premium-top{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-bottom:28px}
.about-status{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--panel2);color:var(--muted);padding:7px 13px;font-size:12px;font-weight:650}
.about-premium-card .about-lead{font-size:15px;color:var(--text)}
.about-section-separator{border-top:1px solid var(--border);margin:10px 0 30px}
.about-overline{color:var(--accent2);font-size:11px;letter-spacing:.11em;font-weight:800;margin:4px 0 18px}
.about-premium-card .about-author{font-size:clamp(23px,2vw,31px);margin:0 0 5px}
.about-premium-card .about-initiative{color:var(--text);margin-bottom:32px}
.about-initiative strong{color:var(--accent2)}
.about-premium-card .about-guideline{margin-top:10px;color:var(--text)}
.about-guideline strong{font-weight:700}
.about-external-link{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;gap:10px;margin-top:auto;border:1px solid var(--border);border-radius:10px;padding:11px 17px;background:var(--panel2);color:var(--text);font-weight:700;font-size:13px;text-decoration:none;transition:background .15s ease,border-color .15s ease}
.about-external-link:hover,.about-external-link:focus-visible{background:var(--premium-hover);border-color:var(--accent2)}
@media(max-width:880px){.about-premium-grid{grid-template-columns:1fr}.about-premium-card{padding:26px}.about-external-link{margin-top:20px}}

/* Gestion centralisée des widgets v1.5.0 */
.widget-manager{display:grid;gap:10px;margin-top:18px}
.widget-manager-row{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);background:var(--panel2);border-radius:13px;flex-wrap:wrap}
.widget-position{font-weight:700;color:var(--muted);min-width:25px;text-align:center}
.widget-manager-name{display:flex;flex-direction:column;gap:2px;flex:1 1 190px;min-width:0}
.widget-manager-actions{display:flex;gap:6px;align-items:center}
.widget-switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}
.widget-switch input{width:18px;height:18px;accent-color:var(--accent,#427ef9)}
.widget-tools{display:inline-flex;align-items:center;gap:7px}
.widget-collapsed-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;flex-wrap:wrap}
.widget-collapsed-heading h2{margin:0}
.widget-control-bar{display:flex;justify-content:flex-end;margin-bottom:8px}
.widget-organizing{align-items:stretch}
.widget-organizer{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow);cursor:grab}
.widget-organizer.dragging{opacity:.55}
.widget-organizer-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.widget-organizer-head strong{flex:1}
.drag-handle{font-size:24px;line-height:1;color:var(--muted);cursor:grab}
.widget-organizer-footer{display:flex;justify-content:flex-end;margin-top:16px}
@media(max-width:700px){.widget-manager-row{gap:9px}.widget-manager-actions{width:100%;justify-content:flex-end}.widget-manager-row .btn{font-size:12px}}

/* v1.5.1 — Grille du tableau de bord réorganisable sans masquer les widgets */
.dash-widgets>.dash-widget[data-placement="full"]{grid-column:1/-1}
.dash-widgets>.dash-widget[data-placement="left"]{grid-column:1}
.dash-widgets>.dash-widget[data-placement="right"]{grid-column:2}
.widget-organizing>.dash-widget{outline:1px dashed var(--border);outline-offset:2px}
.widget-drag-toolbar{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:var(--muted);font-size:12px}
.widget-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:33px;height:30px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);font-size:21px;cursor:grab;user-select:none}
.widget-drag-handle:active{cursor:grabbing}.widget-drag-handle:focus-visible{outline:2px solid var(--premium-link);outline-offset:2px}
.widget-organizing>.dash-widget.dragging{opacity:.65}
.widget-placement-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.widget-placement-label select{width:auto;min-width:130px;max-width:170px;margin:0;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px}
@media(max-width:1100px){.dash-widgets>.dash-widget[data-placement="left"],.dash-widgets>.dash-widget[data-placement="right"],.dash-widgets>.dash-widget[data-placement="full"]{grid-column:1/-1}}

/* Tableau de bord v1.5.2 : grille explicite sur douze colonnes */
.dash-widgets{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.5rem;align-items:start;grid-auto-flow:row dense}
.dash-widgets>.dash-widget{grid-column:span 6;min-width:0;width:100%;margin:0;align-self:start}
.dash-widgets>.dash-widget[data-placement="full"],.dash-widgets>.dash-widget[data-widget="recent"],.dash-widgets>.dash-widget[data-widget="chart"]{grid-column:span 12}
.dash-widgets>.dash-widget[data-placement="left"]{grid-column:1/span 6}
.dash-widgets>.dash-widget[data-placement="right"]{grid-column:7/span 6}
.dash-widgets>.dash-widget[data-placement="full"]{grid-column:span 12}
.widget-drag-toolbar{position:absolute;left:10px;top:13px;margin:0;z-index:2}
.widget-organizing>.dash-widget>.card-title{padding-left:35px}
.widget-drag-handle{width:26px;height:28px;font-size:18px;border:0;background:transparent;color:var(--muted)}
.widget-tools{margin-left:auto;gap:5px}
.widget-tools .btn.small{padding:5px 8px;font-size:11px}
@media(max-width:1100px){.dash-widgets{grid-template-columns:repeat(12,minmax(0,1fr))}.dash-widgets>.dash-widget[data-placement="left"],.dash-widgets>.dash-widget[data-placement="right"],.dash-widgets>.dash-widget[data-placement="full"]{grid-column:span 12}}

/* v1.5.3 — Postbox : colonnes indépendantes et cartes intactes pendant le déplacement. */
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start}
.dashboard-column{display:flex;flex-direction:column;gap:1.5rem;min-width:0;min-height:60px}
.dashboard-full{grid-column:1/-1}
.dashboard-column>.dash-widget{position:relative;display:block;width:100%;min-width:0;margin:0;grid-column:auto!important}
.dashboard-column>.dash-widget.is-collapsed>:not(.card-title):not(.widget-control-bar):not(.widget-drag-toolbar){display:none!important}
.dashboard-column>.dash-widget.is-collapsed>.widget-control-bar~*{display:none!important}
.dashboard-column>.dash-widget.is-collapsed{min-height:0}
.widget-organizing .dash-widget{outline:0;transition:box-shadow .16s ease}
.widget-organizing .dash-widget:hover{box-shadow:0 8px 28px rgba(15,23,42,.13)!important}
.widget-drag-toolbar{position:absolute;left:10px;top:13px;z-index:3;margin:0}
.widget-organizing .dash-widget>.card-title{padding-left:35px}
.widget-drag-handle{display:inline-grid;place-items:center;width:26px;height:27px;padding:0;cursor:grab;color:var(--muted);background:transparent;border:0;font-size:19px;user-select:none}
.widget-drag-handle:active{cursor:grabbing}
.widget-drag-handle:focus-visible{outline:2px solid var(--premium-link);outline-offset:2px}
.dashboard-column>.dash-widget.dragging{opacity:.48}
.drop-placeholder{box-sizing:border-box;min-height:95px;border:2px dashed var(--premium-link,#64748b);border-radius:14px;background:var(--panel2);opacity:.8;pointer-events:none}
@media(max-width:1100px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}.dashboard-full{grid-column:1}.dashboard-column{min-height:30px}}

/* Mes mesures : barre d’exploitation clinique et tri interactif. */
.measure-tools{display:grid;grid-template-columns:minmax(230px,2fr) repeat(2,minmax(150px,1fr));gap:12px;align-items:end;margin:18px 0 12px}.measure-tools label{display:grid;gap:6px;min-width:0;font-weight:600;font-size:12px}.measure-tools input{width:100%;min-width:0;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text)}.measure-tool-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.measure-display{display:flex;justify-content:flex-end;margin:8px 0 14px}.measure-display label{display:flex;align-items:center;gap:8px}.measure-display select{padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text)}.measure-sort{border:0;background:transparent;font:inherit;font-weight:700;color:inherit;cursor:pointer;padding:5px 0;text-align:left;white-space:nowrap}.measure-sort:hover{text-decoration:underline}.measure-result-count{color:var(--muted);font-size:13px;margin:8px 0}.measure-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px 0 4px}@media(max-width:720px){.measure-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.measure-tools label:first-child{grid-column:1/-1}.measure-tool-actions{grid-column:1/-1}}

/* Contrôles cliniques v1.5.7 */
.tp-graphic svg.tp-svg{cursor:grab;touch-action:pan-y}
.tp-graphic svg.tp-svg.is-panning{cursor:grabbing;touch-action:none}
.tp-med-filter-head .btn{width:auto;flex-shrink:0}
.tp-med-fields{display:flex;gap:12px;flex-wrap:wrap}
.tp-med-fields input[type="date"]{max-width:240px}
.tp-graphic:focus-visible{outline:2px solid var(--premium-link,#2563eb);outline-offset:2px}

/* v1.5.8 — Identité Contrôle Health, accès À propos et versionnement. */
.sidebar-about-premium{display:flex;align-items:center;gap:12px;margin:15px 12px 20px;padding:15px 13px;border:1px solid #66d5d8;border-radius:14px;background:linear-gradient(125deg,#0c5269,#137a8a 65%,#0b587d);color:#fff;text-decoration:none;box-shadow:0 8px 25px rgba(9,105,133,.23);transition:transform .18s ease,box-shadow .18s ease}
.sidebar-about-premium:hover,.sidebar-about-premium:focus-visible{transform:translateY(-2px);box-shadow:0 11px 28px rgba(9,105,133,.35);outline:2px solid transparent}
.sidebar-about-premium.active{outline:2px solid #7de8e6;outline-offset:2px}
.sidebar-about-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.18);font-size:21px}
.sidebar-about-premium strong{display:block;font-size:14px;line-height:1.4}.sidebar-about-premium small{display:block;color:#e0faff;font-size:10px;line-height:1.4}.sidebar-about-arrow{margin-left:auto;font-size:19px}
.about-subtitle{color:var(--muted);font-size:14px;letter-spacing:.025em;margin:0 0 17px!important}
.about-version-trigger{appearance:none;cursor:pointer;text-align:left;display:flex;flex-wrap:wrap;gap:9px;align-items:center;border:1px solid #6c9fc4;border-radius:12px;background:linear-gradient(115deg,#e7f2ff,#e5fbf8);color:#133d62;box-shadow:0 4px 15px rgba(28,99,148,.12);font-size:13px;padding:12px 15px;transition:transform .18s ease,box-shadow .18s ease}
.about-version-trigger:hover,.about-version-trigger:focus-visible{transform:translateY(-2px);box-shadow:0 8px 24px rgba(28,99,148,.2);outline:2px solid var(--premium-link);outline-offset:2px}
.about-version-dot{width:9px;height:9px;border-radius:100%;background:#0891b2;box-shadow:0 0 0 4px rgba(8,145,178,.13)}
.about-version-cta{font-size:12px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.about-history-content{display:grid;gap:18px;max-width:720px}.about-phase{border-left:3px solid var(--premium-link);background:var(--panel2);color:var(--text);padding:14px 18px;border-radius:0 10px 10px 0;line-height:1.65;margin:0}
.about-timeline{list-style:none;margin:0 0 8px;padding:0 0 0 21px;border-left:2px solid var(--border)}
.about-timeline li{position:relative;padding:0 0 19px 21px}.about-timeline li:before{content:'';position:absolute;left:-27px;top:5px;width:10px;height:10px;border-radius:100%;background:var(--premium-link);border:3px solid var(--panel)}
.about-timeline strong{display:block;color:var(--text);font-size:14px}.about-timeline span{display:block;color:var(--premium-link);font-size:12px;font-weight:750;margin-top:2px}.about-timeline p{color:var(--muted);font-size:13px;line-height:1.6;margin:5px 0 0}.about-roadmap{padding-bottom:0!important}
:root[data-theme="dark"] .about-version-trigger{background:linear-gradient(115deg,#183d60,#114f55);border-color:#39869d;color:#e5f6ff}
:root[data-theme="dark"] .sidebar-about-premium{background:linear-gradient(115deg,#124760,#146578)}

/* v1.5.9 — Centre de sauvegarde local */
.backup-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.backup-page>.card:first-child{grid-column:1/-1}.backup-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.backup-status>div{display:grid;gap:6px;background:var(--panel2);border:1px solid var(--border);padding:15px;border-radius:12px}.backup-status span{color:var(--muted);font-size:12px}.backup-status strong{color:var(--text);overflow-wrap:anywhere}.backup-groups{display:grid;gap:8px;border:1px solid var(--border);border-radius:12px;padding:12px}.backup-groups:disabled{opacity:.5}.backup-file-zone{display:grid;gap:12px;padding:20px;border:2px dashed var(--border);border-radius:12px;background:var(--panel2)}.backup-file-zone input{max-width:100%}.backup-preview{margin-top:18px;padding:17px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}.backup-preview ul{margin:12px 0 18px;padding-left:24px}.backup-preview fieldset{border:1px solid var(--border);border-radius:10px;padding:12px}.backup-preview .filters{margin-top:12px}@media(max-width:900px){.backup-page{grid-template-columns:1fr}.backup-status{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.backup-status{grid-template-columns:1fr}}

/* v1.6.0 — Centre premium, trois onglets et NAS WebDAV. */
.backup-premium{display:grid;gap:18px}.backup-status-panel{border-color:var(--border)!important}.backup-tabs{display:flex;flex-wrap:wrap;gap:7px;padding:7px;background:var(--panel2);border:1px solid var(--border);border-radius:15px}.backup-tab{border:0;border-radius:11px;padding:12px 17px;cursor:pointer;font:inherit;font-weight:650;color:var(--muted);background:transparent}.backup-tab.active{color:var(--text);background:var(--panel);box-shadow:var(--shadow)}.backup-tab:focus-visible{outline:2px solid var(--premium-link)}.backup-premium .backup-page>.card:first-child{grid-column:auto}.backup-remote{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);gap:20px;align-items:start}.backup-guide .card{max-width:1100px}.backup-guide h3{margin:24px 0 10px}.backup-guide p{line-height:1.7}.backup-guide ol{padding-left:26px;line-height:2}.backup-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.backup-guide-grid>div{border:1px solid var(--border);background:var(--panel2);border-radius:12px;padding:17px}.backup-guide-grid p{margin-bottom:0}.backup-premium .hidden{display:none!important}@media(max-width:1000px){.backup-remote,.backup-guide-grid{grid-template-columns:1fr}}@media(max-width:600px){.backup-tabs{display:grid}.backup-tab{text-align:left}.backup-premium .backup-page{grid-template-columns:1fr}}

/* v1.6.1 — Connecteurs personnels */
.backup-cloud-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.backup-cloud-card{padding:20px;min-width:0;border:1px solid var(--border);border-radius:16px;background:var(--panel2);display:flex;flex-direction:column;gap:10px}
.backup-cloud-card h3{margin:0;color:var(--text)}.backup-cloud-card .stack{margin-top:auto;gap:10px}
.backup-cloud-card input{width:100%;min-width:0;box-sizing:border-box}.backup-cloud-card details,.backup-cloud-guide{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--panel)}
.backup-cloud-card summary,.backup-cloud-guide summary{cursor:pointer;font-weight:700}.backup-cloud-guide{margin:20px 0}.backup-cloud-guide ol{line-height:1.8}
@media(max-width:850px){.backup-cloud-grid{grid-template-columns:1fr}}

/* v1.6.2 — Cloud de bureau prioritaire, configuration avancée repliée. */
.backup-cloud-simple{display:grid;gap:14px;background:var(--panel2);border:1px solid var(--border);border-radius:14px;padding:18px;margin:16px 0}
.backup-desktop-options{display:flex;gap:16px;flex-wrap:wrap;border:0;padding:0;margin:0}
.backup-desktop-options legend{font-weight:700;margin-bottom:9px}
.backup-cloud-advanced{border:1px solid var(--border);border-radius:14px;padding:14px;margin-top:16px;background:var(--panel)}
.backup-cloud-advanced>summary{font-weight:700;cursor:pointer;color:var(--text)}
.backup-cloud-advanced[open]>summary{margin-bottom:16px}
.backup-cloud-advanced .backup-cloud-grid{margin-top:14px}
.backup-cloud-card [hidden]{display:none!important}
@media(max-width:650px){.backup-desktop-options{display:grid;gap:9px}}

/* v1.6.4 — Sélecteur unifié de répertoires */
.storage-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.storage-card{min-width:0;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--panel2);display:grid;align-content:start;gap:12px}.storage-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.storage-state{font-size:12px;color:var(--muted);border:1px solid var(--border);padding:4px 8px;border-radius:50px}.storage-state.is-connected{color:#15803d;border-color:#86efac}.storage-folder-picker{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.storage-breadcrumb{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:8px}.storage-folder-list{display:grid;gap:6px;max-height:230px;overflow-y:auto;margin-bottom:12px}.storage-folder-list button{text-align:left;border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:7px;padding:9px;cursor:pointer}.storage-folder-list button:hover{border-color:var(--premium-link)}.storage-folder-picker [data-storage-new]{max-width:170px;min-width:100px}.storage-folder-picker [hidden],.storage-card [hidden]{display:none!important}@media(max-width:950px){.storage-cards{grid-template-columns:1fr}}
