:root{
  --bg:#eef2f7;--panel:#f6f8fb;--card:#f5f7fa;--ink:#192235;--muted:#6d778a;--line:#dfe5ee;
  --violet:#7157ff;--teal:#20b7a5;--orange:#f2a43a;--red:#ef5f68;--shadow:12px 12px 28px #cfd6df,-12px -12px 28px #ffffff;
  --shadow-sm:7px 7px 18px #d5dbe4,-7px -7px 18px #ffffff;--inset:inset 4px 4px 9px #d8dee7,inset -4px -4px 9px #ffffff;
  --radius:24px;--radius-sm:16px;--sidebar:248px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
body{min-height:100vh}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:#edf1f6;border-right:1px solid rgba(255,255,255,.7);display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px}.brand img{width:44px;height:44px}.brand strong{font-size:18px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.nav{display:flex;flex-direction:column;gap:8px}.nav-btn{border:0;background:transparent;color:#596477;border-radius:16px;padding:12px 14px;text-align:left;display:flex;align-items:center;gap:12px;font-weight:650}.nav-btn:hover,.nav-btn.active{background:var(--panel);box-shadow:var(--shadow-sm);color:var(--ink)}.nav-ico{width:24px;text-align:center}.side-bottom{margin-top:auto}.user-chip{background:var(--panel);box-shadow:var(--shadow-sm);border-radius:18px;padding:13px;display:flex;gap:10px;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--violet),var(--teal));color:white;font-weight:800}.user-chip small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px}
.main{min-width:0;padding:28px 30px 48px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.title h1{margin:0;font-size:30px;letter-spacing:-.8px}.title p{margin:6px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.btn{border:0;border-radius:15px;padding:11px 15px;font-weight:750;transition:.15s;display:inline-flex;align-items:center;gap:8px;justify-content:center}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--violet),#8b72ff);color:#fff;box-shadow:0 8px 20px rgba(113,87,255,.22)}.btn-soft{background:var(--panel);box-shadow:var(--shadow-sm);color:var(--ink)}.btn-danger{background:#fff0f1;color:#c63e49}.btn-ghost{background:transparent;color:var(--muted)}.btn-sm{padding:8px 11px;border-radius:12px;font-size:13px}.icon-btn{width:42px;height:42px;padding:0;border-radius:14px}
.grid{display:grid;gap:18px}.kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.card{background:var(--panel);border:1px solid rgba(255,255,255,.78);box-shadow:var(--shadow-sm);border-radius:var(--radius);padding:20px}.kpi{position:relative;overflow:hidden;min-height:132px}.kpi .value{font-size:30px;font-weight:850;margin-top:12px;letter-spacing:-1px}.kpi .label{color:var(--muted);font-size:13px;font-weight:650}.kpi .meta{font-size:12px;color:var(--muted);margin-top:8px}.kpi .dot{position:absolute;right:16px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 7px rgba(113,87,255,.11)}
.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,.9fr)}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-title h2{margin:0;font-size:18px}.section-title small{color:var(--muted)}.funnel{display:flex;flex-direction:column;gap:11px}.funnel-row{display:grid;grid-template-columns:140px 1fr 48px;align-items:center;gap:12px;font-size:13px}.bar{height:12px;background:#e4e9f0;border-radius:999px;overflow:hidden;box-shadow:var(--inset)}.bar>i{height:100%;display:block;border-radius:999px;background:linear-gradient(90deg,var(--violet),var(--teal))}.recent-list,.task-list{display:flex;flex-direction:column;gap:10px}.recent-item,.task-item{background:#f0f3f8;border:1px solid rgba(255,255,255,.8);border-radius:16px;padding:12px 13px;display:flex;gap:11px;align-items:center}.recent-item:hover{box-shadow:var(--shadow-sm)}.grow{flex:1;min-width:0}.name{font-weight:780}.sub{font-size:12px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:750;background:#e8edf4;color:#576174;white-space:nowrap}.empty{padding:36px 18px;text-align:center;color:var(--muted)}
.toolbar{display:flex;gap:10px;margin-bottom:18px;align-items:center;flex-wrap:wrap}.field,.select{border:0;outline:0;background:#f4f6f9;box-shadow:var(--inset);border-radius:14px;padding:11px 13px;color:var(--ink)}.field{min-width:220px;flex:1}.select{min-width:150px}.prospect-table{width:100%;border-collapse:separate;border-spacing:0 8px}.prospect-table th{font-size:12px;color:var(--muted);font-weight:750;text-align:left;padding:0 12px 5px}.prospect-table td{padding:13px 12px;background:#f1f4f8;border-top:1px solid rgba(255,255,255,.9);border-bottom:1px solid rgba(220,226,235,.6);font-size:13px}.prospect-table td:first-child{border-radius:15px 0 0 15px}.prospect-table td:last-child{border-radius:0 15px 15px 0}.row-click{cursor:pointer}.row-click:hover td{background:#f8faff}.contact{display:flex;align-items:center;gap:10px}.mini-avatar{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:800;background:linear-gradient(135deg,#7b61ff,#3fc9b9)}
.kanban-wrap{overflow-x:auto;padding:4px 2px 20px}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:280px;gap:14px;min-height:550px}.kanban-col{background:rgba(242,245,249,.75);border-radius:22px;padding:12px;border:1px solid rgba(255,255,255,.7)}.kanban-head{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 12px;font-weight:800}.kanban-count{font-size:11px;color:var(--muted);background:#e7ebf2;padding:4px 7px;border-radius:999px}.kanban-list{min-height:480px;display:flex;flex-direction:column;gap:10px}.kanban-card{background:var(--panel);border-radius:17px;padding:13px;box-shadow:4px 4px 12px #d4dae3,-4px -4px 12px #fff;cursor:grab}.kanban-card.dragging{opacity:.45}.kanban-card .source{font-size:11px;color:var(--muted);margin-top:8px}.kanban-col.dragover{outline:2px dashed rgba(113,87,255,.45)}
.detail-grid{grid-template-columns:minmax(280px,.7fr) minmax(0,1.5fr)}.profile-card .big-avatar{width:76px;height:76px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,var(--violet),var(--teal));color:white;font-size:24px;font-weight:850;margin-bottom:14px}.profile-card h2{margin:0}.profile-data{display:grid;gap:10px;margin-top:18px}.info-row{padding:12px 13px;border-radius:15px;background:#f0f3f7}.info-row label{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.timeline{position:relative;display:flex;flex-direction:column;gap:12px}.timeline-item{display:grid;grid-template-columns:38px 1fr;gap:11px}.timeline-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#e8edf4;font-size:15px}.timeline-body{background:#f0f3f7;border-radius:16px;padding:11px 13px}.timeline-body .time{font-size:11px;color:var(--muted);margin-top:5px}.timeline-body.done{opacity:.55;text-decoration:line-through}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tab{border:0;background:#e9edf3;color:var(--muted);padding:9px 12px;border-radius:12px;font-weight:750}.tab.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--ink)}.tab small{opacity:.6;font-weight:700}
.calendar-card{padding:16px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-head h2{margin:0;font-size:18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.cal-dow{text-align:center;color:var(--muted);font-size:11px;font-weight:800;padding:5px}.cal-day{min-height:104px;border-radius:15px;background:#f0f3f7;padding:8px;border:1px solid rgba(255,255,255,.9)}.cal-day.muted{opacity:.35}.cal-day.today{outline:2px solid rgba(113,87,255,.35)}.cal-num{font-size:12px;font-weight:800}.cal-event{margin-top:6px;border-left:3px solid var(--violet);background:#fff;border-radius:8px;padding:5px 6px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda{margin-top:10px;display:grid;gap:9px}.agenda-item{display:flex;gap:10px;align-items:center;padding:11px;border-radius:14px;background:#f0f3f7}.time-pill{font-weight:800;font-size:12px;color:var(--violet);min-width:48px}.agenda-days{display:flex;flex-direction:column;gap:16px;margin-top:14px}.agenda-day-group .agenda-day-head{font-weight:800;font-size:13px;text-transform:capitalize;color:var(--ink);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.category-list{display:flex;flex-direction:column;gap:8px}.category-row{display:flex;align-items:center;gap:11px;padding:10px 12px;background:#f0f3f7;border-radius:14px}.swatch{width:16px;height:16px;border-radius:6px;flex:none;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.step-card{background:#f0f3f7;border-radius:14px;padding:11px 13px;margin-bottom:9px}.step-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.step-card .form-control{width:100%}.step-head .form-control{width:auto}
.status-switch{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;background:#f0f3f7;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:650;cursor:pointer}
code{background:#e8edf4;border-radius:6px;padding:1px 6px;font-size:12px}
.day-range-block{background:#f0f3f7;border-radius:14px;padding:11px 13px;margin-bottom:8px}.day-range-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.day-range-row{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:8px;margin-bottom:6px}.day-range-row span{color:var(--muted);font-size:12px}
.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.source-row{display:grid;grid-template-columns:120px 1fr 58px 70px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.source-row:last-child{border-bottom:0}.source-bar{height:9px;background:#e5eaf0;border-radius:99px;overflow:hidden}.source-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--violet));border-radius:99px}
.modal-backdrop{position:fixed;inset:0;background:rgba(30,39,55,.35);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px;z-index:50}.modal{width:min(680px,100%);max-height:92vh;overflow:auto;background:var(--bg);border-radius:28px;box-shadow:0 28px 90px rgba(33,44,65,.25);padding:22px}.modal h2{margin:0 0 17px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full{grid-column:1/-1}.form-group label{font-size:12px;color:var(--muted);font-weight:750}.form-control{border:0;outline:0;background:#f4f6f9;box-shadow:var(--inset);border-radius:14px;padding:11px 12px;color:var(--ink);width:100%}.form-control:focus{box-shadow:inset 0 0 0 2px rgba(113,87,255,.25)}textarea.form-control{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(480px,100%);background:var(--panel);border-radius:32px;box-shadow:var(--shadow);padding:30px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.auth-brand img{width:56px;height:56px}.auth-card h1{font-size:26px;margin:0}.auth-card p{color:var(--muted);line-height:1.5}.auth-form{display:grid;gap:13px}.error{background:#fff0f1;color:#b63d48;border-radius:13px;padding:10px 12px;font-size:13px}.toast{position:fixed;right:22px;bottom:22px;background:#1f2937;color:white;border-radius:14px;padding:11px 14px;box-shadow:0 16px 50px rgba(0,0,0,.22);z-index:90;animation:toastIn .2s ease}@keyframes toastIn{from{transform:translateY(8px);opacity:0}}
.mobile-nav{display:none}.mobile-menu{display:none}
@media(max-width:1180px){.kpis{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr}}
@media(max-width:820px){.app-shell{display:block}.sidebar{display:none}.main{padding:18px 14px 94px}.topbar{align-items:center}.title h1{font-size:25px}.title p{font-size:13px}.top-actions .desktop-only{display:none}.kpis{grid-template-columns:repeat(2,1fr)}.kpi{min-height:112px;padding:16px}.kpi .value{font-size:25px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;height:76px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:5px;background:rgba(238,242,247,.9);backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.75);z-index:40}.mobile-nav button{border:0;background:transparent;border-radius:12px;color:var(--muted);font-size:10px;font-weight:700;display:grid;place-items:center;gap:2px}.mobile-nav button span{font-size:20px}.mobile-nav button.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--ink)}.prospect-table{min-width:820px}.table-scroll{overflow-x:auto}.calendar-grid{gap:4px}.cal-day{min-height:82px;padding:6px}.cal-event{font-size:0;width:7px;height:7px;padding:0;border:0;border-radius:50%;background:var(--violet)}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.source-row{grid-template-columns:100px 1fr 46px}.source-row .clients-col{display:none}}
@media(max-width:520px){.kpis{grid-template-columns:1fr 1fr;gap:12px}.kpi:nth-child(5){grid-column:1/-1}.card{padding:16px;border-radius:20px}.topbar{margin-bottom:18px}.top-actions{gap:6px}.btn{padding:10px 12px}.field{min-width:100%}.select{flex:1}.calendar-card{padding:10px}.cal-dow{font-size:9px}.cal-day{min-height:68px}.modal{padding:17px;border-radius:22px}.funnel-row{grid-template-columns:100px 1fr 40px}}
.pil-table{width:100%;border-collapse:collapse;font-size:12px;min-width:980px}.pil-table th{font-size:11px;color:var(--muted);text-align:right;padding:6px 6px;font-weight:750}.pil-table th:first-child,.pil-label{text-align:left}.pil-table td{padding:5px 6px;text-align:right;border-top:1px solid var(--line)}.pil-label strong{display:block;font-size:12px}.pil-label small{color:var(--muted);font-size:10px}.pil-annual{font-weight:800;background:#eef1f7}.pil-cell{width:78px;border:0;background:#fff;box-shadow:var(--inset);border-radius:8px;padding:5px 6px;text-align:right;font:inherit;font-size:12px}tr.pil-input td:not(.pil-label):not(.pil-annual){background:#fbfcfe}
@media(max-width:820px){.grid.kpis[style*="repeat(6"]{grid-template-columns:repeat(2,1fr)!important}.grid.kpis[style*="repeat(4"]{grid-template-columns:repeat(2,1fr)!important}.step-head .form-control{width:100%!important}}
.side-bottom{position:relative}.user-chip{width:100%;border:0;text-align:left;color:var(--ink);padding:9px 11px;min-width:0;cursor:pointer;transition:.15s}.user-chip:hover{transform:translateY(-1px)}.user-chip .grow{min-width:0}.user-chip .name{font-size:13px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip .avatar{flex:none;width:34px;height:34px}
.role-pill{display:inline-block;margin-top:2px;font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:#6a56e8;background:rgba(113,87,255,.12);border-radius:999px;padding:2px 8px}.chev{flex:none;color:var(--muted);font-size:13px}
.user-menu{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:var(--panel);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);border-radius:18px;padding:8px;z-index:30}.um-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;min-width:0}.um-head .name,.um-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.um-head small{color:var(--muted);font-size:11px;margin-top:2px}.um-item{width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:12px;font-weight:650;color:var(--ink);font-size:13px}.um-item:hover{background:#eceff6}
.auto-switch{border:0;display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;background:var(--panel);box-shadow:var(--shadow-sm);color:var(--ink);font-size:13px;font-weight:700;white-space:nowrap}
.auto-switch .dot{width:9px;height:9px;border-radius:50%;background:#aab2c0;flex:none}
.auto-switch b{font-size:11px;letter-spacing:.4px;padding:3px 8px;border-radius:999px;background:#e4e8ef;color:var(--muted)}
.auto-switch.on .dot{background:var(--teal);box-shadow:0 0 0 4px rgba(32,183,165,.18)}
.auto-switch.on b{background:rgba(32,183,165,.16);color:#14877a}
.auto-switch.off .dot{background:var(--orange);box-shadow:0 0 0 4px rgba(242,164,58,.18)}
.auto-switch.off b{background:rgba(242,164,58,.18);color:#a8691a}
.auto-switch:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
@media(max-width:820px){.auto-switch span{display:none}}
/* Activités : nom en gros, tâche dessous, date et heure à côté */
.task-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:var(--panel);box-shadow:var(--shadow-sm);margin-bottom:10px}
.task-main{min-width:0;cursor:pointer}
.task-name{font-size:18px;font-weight:800;letter-spacing:-.3px;line-height:1.2}
.task-what{margin-top:4px;font-size:14px;font-weight:600;color:#475065;display:flex;gap:6px;align-items:flex-start;white-space:pre-line}
.task-what .ti{flex:none}
.task-main .sub{margin-top:6px;font-size:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.task-when{display:flex;flex-direction:column;align-items:flex-end;min-width:96px;text-align:right}
.task-when strong{font-size:14px}
.task-when span{font-size:20px;font-weight:800;color:var(--violet);line-height:1.1}
.task-when.late strong,.task-when.late span{color:#c63e49}
.task-when em{font-style:normal;font-size:11px;font-weight:700;color:#c63e49;background:#ffe9ea;border-radius:999px;padding:2px 8px;margin-top:3px}
.task-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.task-item.is-done .task-name,.task-item.is-done .task-what{opacity:.6}
@media(max-width:820px){.task-item{flex-wrap:wrap;gap:10px}.task-main{flex:1 1 60%}.task-when{flex-direction:row;gap:8px;align-items:baseline;min-width:0;order:2;flex-wrap:wrap;justify-content:flex-start}.task-when span{font-size:16px}.task-actions{order:3;width:100%;justify-content:flex-start}}
/* Fiche prospect */
.fiche-top{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.fiche-title{min-width:0;flex:1}.fiche-title h1{margin:0;font-size:26px;letter-spacing:-.6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiche-menu{position:relative}.fiche-menu .user-menu{position:absolute;right:0;top:48px;bottom:auto;width:230px;z-index:30}
.um-item.danger{color:#c63e49}
.fiche-grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:18px;align-items:start}
.fiche-main,.fiche-side{display:grid;gap:18px;min-width:0}
.fiche-id{display:flex;gap:14px;align-items:center;margin-bottom:14px}.status-select{width:100%;font-weight:700}
.contact-rows{display:grid;gap:8px;margin-bottom:14px}
.contact-row{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:#f0f3f7;box-shadow:var(--inset);color:inherit;text-decoration:none}
.contact-row span{font-size:20px}.contact-row small{display:block;color:var(--muted);font-size:11px}.contact-row b{font-size:15px;word-break:break-all}
.contact-row.missing{opacity:.6}
.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.act{border:0;border-radius:14px;padding:12px 6px;font-weight:700;font-size:13px;background:var(--panel);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer}
.act.primary{background:linear-gradient(135deg,var(--violet),#8b72ff);color:#fff;grid-column:span 2}
.act:disabled{opacity:.4;cursor:default}
.todo-row{display:flex;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.todo-ico{font-size:20px}.todo-what{font-weight:700;white-space:pre-line}
.todo-act{display:flex;gap:6px;flex-wrap:wrap;width:100%}
.appt-next{margin-top:10px;padding:10px 12px;background:#eef7f5;border-radius:12px;font-size:13px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.chip{border:0;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;background:#e9edf3;color:var(--muted);cursor:pointer}.chip.on{background:var(--violet);color:#fff}
@media(max-width:820px){.fiche-grid{grid-template-columns:1fr}.fiche-title h1{font-size:21px}.topbar{flex-wrap:wrap}.top-actions{flex-wrap:wrap;justify-content:flex-end}.action-grid{grid-template-columns:repeat(2,1fr)}}
/* Planning : grille horaire */
.wg-wrap{overflow:auto;max-height:72vh;border-radius:16px;background:#fff;box-shadow:var(--shadow-sm);border:1px solid var(--line)}
.wg{min-width:calc(56px + var(--cols)*112px)}
.wg-head{display:grid;grid-template-columns:56px repeat(var(--cols),1fr);position:sticky;top:0;background:#fff;z-index:4;border-bottom:1px solid var(--line)}
.wg-dh{text-align:center;padding:8px 0;border-left:1px solid var(--line)}
.wg-dh small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:700}
.wg-dh b{font-size:18px}.wg-dh.today b{background:var(--violet);color:#fff;border-radius:999px;padding:1px 9px}
.wg-body{display:grid;grid-template-columns:56px repeat(var(--cols),1fr)}
.wg-times div{border-top:1px solid var(--line);box-sizing:border-box}
.wg-times span{display:block;font-size:11px;color:var(--muted);transform:translateY(-8px);text-align:right;padding-right:8px}
.wg-col{position:relative;border-left:1px solid var(--line);background-image:linear-gradient(var(--line) 1px,transparent 1px);background-size:100% 57px}
.wg-col.today{background-color:#faf8ff}
.wg-ev{position:absolute;border:0;border-left:3px solid #3b82f6;border-radius:8px;padding:3px 6px;font-size:11px;text-align:left;overflow:hidden;cursor:pointer;line-height:1.25;display:flex;flex-direction:column;background:#dbeafe;color:#12304f;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.wg-ev b{font-size:10.5px;font-weight:700}.wg-ev span{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wg-ev small{opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wg-ev.st-ok{background:#dcfce7;border-left-color:#22c55e}.wg-ev.st-no{background:#fee2e2;border-left-color:#ef4444}.wg-ev.st-off{background:#eceff3;border-left-color:#9ca3af;text-decoration:line-through;opacity:.75}
.wg-ev:hover{filter:brightness(.97);z-index:3}
.wg-now{position:absolute;left:0;right:0;height:2px;background:#ef4444;z-index:2}.wg-now:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#ef4444}
@media(max-width:820px){.fiche-grid{display:flex;flex-direction:column;gap:18px}.fiche-main,.fiche-side{display:contents}.fiche-card{order:1}.fiche-todo{order:2}.fiche-note{order:3}.fiche-details{order:4}.fiche-hist{order:5}}
@media(max-width:1100px){.fiche-grid{display:flex;flex-direction:column;gap:18px}.fiche-main,.fiche-side{display:contents}.fiche-card{order:1}.fiche-todo{order:2}.fiche-note{order:3}.fiche-details{order:4}.fiche-hist{order:5}.fiche-grid>*{min-width:0;max-width:100%}}
@media(max-width:1100px){.fiche-grid{align-items:stretch}.fiche-grid .card{width:100%;box-sizing:border-box}}
