:root{--bleu:#000091;--rouge:#e1000f;--or:#B68D40;--vert:#18753c;--bg:#f6f6f6;--card:#fff;--text:#161616;--muted:#666;--border:#e5e5e5;--shadow:0 2px 6px rgba(0,0,0,.06);--radius:4px;--transition:.2s ease;--cat-rh:#2563eb;--cat-medical:#dc2626;--cat-admin:#7c3aed;--cat-perso:#0891b2;--cat-autre:#666;}
[data-theme="dark"]{--bg:#1e1e1e;--card:#2a2a2a;--text:#e5e5e5;--muted:#999;--border:#3a3a3a;--shadow:0 2px 6px rgba(0,0,0,.3);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{font-family:'Source Sans 3',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;transition:background var(--transition),color var(--transition);}
header{background:var(--bleu);color:#fff;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:56px;position:sticky;top:0;z-index:200;}
.header-left{display:flex;align-items:center;gap:.8rem;}
.flag{width:36px;height:24px;overflow:hidden;display:flex;flex-shrink:0;}
.flag span{flex:1;}.flag .f-bl{background:#002395;}.flag .f-wh{background:#fff;}.flag .f-rd{background:#ED2939;}
.header-title h1{font-size:.88rem;font-weight:700;}
.header-title p{font-size:.62rem;opacity:.5;letter-spacing:.06em;}
.motto{font-size:.68rem;opacity:.4;display:none;}
@media(min-width:700px){.motto{display:block;}}
.header-right{display:flex;align-items:center;gap:.3rem;}
.hdr-btn{background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:2px;padding:4px 10px;cursor:pointer;font-size:.72rem;color:#fff;transition:background var(--transition);}
.hdr-btn:hover{background:rgba(255,255,255,.1);}
.tricolor-bar{height:2px;background:linear-gradient(90deg,#002395 33.3%,#fff 33.3% 66.6%,#ED2939 66.6%);}
.paie-banner{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--or);border-radius:var(--radius);padding:.6rem .9rem;margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem;font-size:.8rem;}
.paie-banner-icon{font-size:1rem;}.paie-banner-text{flex:1;}
.paie-banner-days{font-size:1.3rem;font-weight:700;color:var(--or);line-height:1;}
.paie-banner-label{font-size:.58rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;}
.search-bar{position:relative;margin-bottom:.8rem;}
.search-input{width:100%;padding:.5rem .8rem .5rem 2rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);color:var(--text);font-family:inherit;font-size:.82rem;outline:none;transition:border-color var(--transition);}
.search-input:focus{border-color:var(--bleu);}
.search-icon{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-size:.8rem;color:var(--muted);pointer-events:none;}
.search-results{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:100;max-height:220px;overflow-y:auto;display:none;margin-top:2px;}
.search-results.visible{display:block;}
.sr-item{padding:.45rem .7rem;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;border-bottom:1px solid var(--border);}
.sr-item:last-child{border-bottom:none;}.sr-item:hover{background:rgba(0,0,145,.03);}
.sr-date{font-size:.65rem;color:var(--muted);}.sr-title{font-weight:600;flex:1;}
.sr-cat{font-size:.56rem;padding:1px 5px;border-radius:2px;font-weight:700;color:#fff;}
.docs-grid{display:flex;flex-direction:column;gap:.35rem;}
.doc-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:all var(--transition);}
.doc-item:hover{border-color:var(--bleu);}
.doc-icon{font-size:1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);flex-shrink:0;}
.doc-icon.red{background:rgba(225,0,15,.05);}.doc-icon.blue{background:rgba(0,0,145,.04);}
.doc-icon.green{background:rgba(24,117,60,.05);}.doc-icon.orange{background:rgba(182,141,64,.06);}
.doc-label{font-size:.75rem;font-weight:600;}.doc-sub{font-size:.62rem;color:var(--muted);}
.doc-badge{font-size:.54rem;font-weight:700;padding:1px 5px;border-radius:2px;color:#fff;flex-shrink:0;text-transform:uppercase;}
.doc-badge.pdf{background:var(--rouge);}.doc-badge.web{background:var(--bleu);}
.voice-fab{position:fixed;bottom:1.2rem;right:1.2rem;z-index:600;width:48px;height:48px;border-radius:50%;border:none;background:var(--bleu);color:#fff;font-size:1.1rem;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,145,.2);display:flex;align-items:center;justify-content:center;transition:all .2s;}
.voice-fab:hover{box-shadow:0 4px 18px rgba(0,0,145,.3);}
.voice-fab.recording{background:var(--rouge);animation:pulse-ring 1.5s ease infinite;}
.voice-fab.processing{background:var(--or);pointer-events:none;}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(225,0,15,.35);}70%{box-shadow:0 0 0 12px rgba(225,0,15,0);}100%{box-shadow:0 0 0 0 rgba(225,0,15,0);}}
.voice-preview{position:fixed;bottom:4.5rem;right:.8rem;left:.8rem;max-width:400px;margin:0 0 0 auto;background:var(--card);border:1px solid var(--border);border-left:3px solid var(--bleu);border-radius:var(--radius);padding:.8rem 1rem;box-shadow:0 6px 24px rgba(0,0,0,.1);z-index:601;display:none;animation:slideUp .2s ease;}
.voice-preview.visible{display:block;}.voice-preview.recording-state{border-left-color:var(--rouge);}
.vp-status{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rouge);margin-bottom:.3rem;display:flex;align-items:center;gap:.3rem;}
.vp-status .rec-dot{width:6px;height:6px;border-radius:50%;background:var(--rouge);animation:blink 1s ease infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.2;}}
.vp-transcript{font-size:.82rem;line-height:1.4;color:var(--text);min-height:1.2rem;opacity:.75;}
.vp-parsed{margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--border);display:none;}.vp-parsed.visible{display:block;}
.vp-parsed-items{display:flex;flex-direction:column;gap:.2rem;}
.vp-item{font-size:.75rem;padding:.25rem .4rem;border-radius:var(--radius);}
.vp-item.note-item{background:rgba(24,117,60,.05);color:var(--vert);}
.vp-item.alarm-item{background:rgba(225,0,15,.04);color:var(--rouge);}
.vp-actions{display:flex;gap:.3rem;margin-top:.4rem;}
.vp-btn{flex:1;padding:.4rem;border-radius:var(--radius);font-size:.75rem;font-weight:700;cursor:pointer;border:none;}
.vp-btn-confirm{background:var(--bleu);color:#fff;}.vp-btn-cancel{background:var(--bg);color:var(--muted);border:1px solid var(--border);}
main{max-width:1060px;margin:0 auto;padding:1.2rem 1.2rem 3.5rem;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start;}
@media(max-width:860px){main{grid-template-columns:1fr;}}
.section-title{font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bleu);margin-bottom:.6rem;padding-bottom:.35rem;border-bottom:1px solid var(--border);}
[data-theme="dark"] .section-title{color:#8b9cf7;}
.card{background:var(--card);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow);border:1px solid var(--border);}
.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;}
@media(max-width:400px){.services-grid{grid-template-columns:1fr;}}
.service-btn{display:flex;align-items:flex-end;justify-content:space-between;padding:.9rem 1rem .8rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);cursor:pointer;text-decoration:none;color:var(--text);transition:all var(--transition);position:relative;overflow:hidden;min-height:88px;}
.service-btn:hover{border-color:var(--bleu);background:rgba(0,0,145,.02);}
.service-btn:hover .svc-illus{opacity:.2;transform:scale(1.05);}
.svc-left{display:flex;flex-direction:column;gap:2px;z-index:1;flex:1;min-width:0;}
.svc-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:rgba(0,0,145,.06);margin-bottom:4px;font-size:.75rem;}
[data-theme="dark"] .svc-icon{background:rgba(139,156,247,.1);}
.svc-label{font-size:.8rem;font-weight:700;line-height:1.2;}
.svc-sub{font-size:.62rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.svc-illus{width:56px;height:56px;flex-shrink:0;opacity:.12;transition:all var(--transition);color:var(--bleu);}
[data-theme="dark"] .svc-illus{color:#8b9cf7;}
.svc-illus svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.svc-edit-bar{margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--border);text-align:right;}
.svc-edit-btn{font-size:.65rem;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline;}.svc-edit-btn:hover{color:var(--bleu);}
.filter-tabs{display:flex;gap:.2rem;margin-bottom:.5rem;flex-wrap:wrap;}
.filter-tab{font-size:.62rem;font-weight:700;padding:3px 7px;border-radius:2px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;transition:all var(--transition);text-transform:uppercase;letter-spacing:.05em;}
.filter-tab.active{border-color:var(--bleu);background:var(--bleu);color:#fff;}
.upcoming-list{display:flex;flex-direction:column;gap:.35rem;}
.upcoming-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);transition:all var(--transition);cursor:pointer;}
.upcoming-item:hover{border-color:var(--bleu);}
.upcoming-date-box{width:34px;height:34px;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;}
.upcoming-date-box.type-paie{background:rgba(182,141,64,.08);}.upcoming-date-box.type-ferie{background:rgba(225,0,15,.05);}
.upcoming-date-box.type-note{background:rgba(24,117,60,.05);}.upcoming-date-box.type-alarm{background:rgba(225,0,15,.05);}
.ud-day{font-size:.9rem;font-weight:700;line-height:1;}
.type-paie .ud-day{color:var(--or);}.type-ferie .ud-day{color:var(--rouge);}.type-note .ud-day{color:var(--vert);}.type-alarm .ud-day{color:var(--rouge);}
.ud-month{font-size:.52rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.upcoming-info{flex:1;min-width:0;}.upcoming-title{font-size:.76rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.upcoming-sub{font-size:.64rem;color:var(--muted);}
.upcoming-tag{font-size:.56rem;font-weight:700;padding:2px 5px;border-radius:2px;letter-spacing:.04em;flex-shrink:0;text-transform:uppercase;}
.tag-paie{background:rgba(182,141,64,.08);color:var(--or);}.tag-ferie{background:rgba(225,0,15,.05);color:var(--rouge);}
.tag-note{background:rgba(24,117,60,.05);color:var(--vert);}.tag-alarm{background:rgba(225,0,15,.05);color:var(--rouge);}
.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;}
.cal-nav{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;color:var(--text);transition:all var(--transition);}
.cal-nav:hover{background:var(--bleu);color:#fff;border-color:var(--bleu);}
.cal-month-year{font-size:.9rem;font-weight:700;text-transform:capitalize;}
.cal-today-btn{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:2px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;margin-top:2px;}
.cal-today-btn:hover{border-color:var(--bleu);color:var(--bleu);}
.view-toggle{display:flex;gap:.2rem;margin-bottom:.6rem;}
.view-btn{font-size:.62rem;font-weight:700;padding:3px 8px;border-radius:2px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;}
.view-btn.active{background:var(--bleu);color:#fff;border-color:var(--bleu);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;}
.cal-dow{text-align:center;font-size:.58rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.2rem 0;}
.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:2px;font-size:.8rem;font-weight:500;cursor:pointer;position:relative;transition:all var(--transition);min-height:32px;border:1px solid transparent;}
.cal-day:not(.empty):hover{background:rgba(0,0,145,.04);border-color:rgba(0,0,145,.12);}
.cal-day.empty{opacity:0;pointer-events:none;}
.cal-day.today{background:var(--bleu);color:#fff;font-weight:700;}
.cal-day.ferie{background:rgba(225,0,15,.05);color:var(--rouge);font-weight:700;}
.cal-day.paie{background:rgba(182,141,64,.08);font-weight:700;color:var(--or);}
.cal-day.weekend{opacity:.35;}
.cal-day.has-note{box-shadow:inset 0 -2px 0 var(--vert);}.cal-day.has-alarm{box-shadow:inset 0 -2px 0 var(--rouge);}
.cal-day.has-note.has-alarm{box-shadow:inset 0 -2px 0 var(--or);}
.day-dots{position:absolute;bottom:1px;display:flex;gap:1px;}.day-dot{width:3px;height:3px;border-radius:50%;}
.cal-day.sel{border-color:var(--bleu)!important;background:rgba(0,0,145,.04);}
.cal-day.voice-highlight{animation:voicePop .4s ease;}
@keyframes voicePop{0%{transform:scale(1);}50%{transform:scale(1.15);}100%{transform:scale(1);}}
@media(max-width:380px){.cal-day{font-size:.7rem;min-height:26px;}}
.cal-day.drag-over{background:rgba(24,117,60,.08)!important;border-color:var(--vert)!important;}
.dd-event.draggable{cursor:grab;}.dd-event.dragging{opacity:.3;}
.drag-ghost{position:fixed;pointer-events:none;z-index:9000;background:var(--card);border:1px solid var(--vert);border-radius:var(--radius);padding:.35rem .6rem;font-size:.72rem;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.12);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.agenda-view{display:none;}.agenda-view.visible{display:block;}
.agenda-day{margin-bottom:.4rem;padding:.4rem .6rem;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);}
.agenda-day-header{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.25rem;display:flex;align-items:center;justify-content:space-between;}
.agenda-day-header.is-today{color:var(--bleu);}
.agenda-event{font-size:.75rem;padding:.25rem .4rem;border-radius:var(--radius);margin-bottom:.15rem;display:flex;align-items:center;gap:.35rem;}
.annual-view{display:none;margin-top:.6rem;}.annual-view.visible{display:block;}
.annual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem;}
@media(max-width:500px){.annual-grid{grid-template-columns:repeat(3,1fr);}}
.annual-item{padding:.35rem;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);text-align:center;font-size:.72rem;cursor:pointer;}
.annual-item:hover{border-color:var(--or);}
.annual-item .ai-month{font-weight:700;color:var(--or);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;}
.annual-item .ai-date{font-weight:700;font-size:.88rem;}.annual-item .ai-dow{font-size:.58rem;color:var(--muted);}
.day-detail{margin-top:.6rem;padding:.7rem;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);display:none;animation:slideDown .15s ease;}
.day-detail.visible{display:block;}
.dd-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;}
.dd-date{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);}
.dd-add-btn{background:var(--bleu);color:#fff;border:none;border-radius:var(--radius);padding:3px 8px;font-size:.68rem;font-weight:700;cursor:pointer;}
.dd-add-btn:hover{background:#000070;}
.dd-events{display:flex;flex-direction:column;gap:.25rem;}
.dd-event{display:flex;align-items:flex-start;gap:.35rem;font-size:.76rem;font-weight:500;padding:.35rem .5rem;border-radius:var(--radius);line-height:1.35;}
.ev-today{background:rgba(0,0,145,.04);color:var(--bleu);}.ev-ferie{background:rgba(225,0,15,.03);color:var(--rouge);}
.ev-paie{background:rgba(182,141,64,.06);color:var(--or);}
.ev-note{background:rgba(24,117,60,.03);color:var(--vert);flex-direction:column;align-items:stretch;}
.ev-alarm{background:rgba(225,0,15,.03);color:var(--rouge);flex-direction:column;align-items:stretch;}
.ev-row{display:flex;align-items:flex-start;gap:.35rem;}
.ev-actions{display:flex;gap:.25rem;margin-top:.2rem;padding-top:.2rem;border-top:1px solid rgba(0,0,0,.04);}
[data-theme="dark"] .ev-actions{border-top:1px solid rgba(255,255,255,.04);}
.ev-action-btn{font-size:.62rem;font-weight:700;padding:2px 5px;border-radius:2px;border:none;cursor:pointer;}
.btn-edit{background:rgba(0,0,145,.05);color:var(--bleu);}.btn-delete{background:rgba(225,0,15,.05);color:var(--rouge);}
.dd-empty{font-size:.74rem;color:var(--muted);font-style:italic;}
.drag-handle{cursor:grab;opacity:.3;font-size:.68rem;}.drag-handle:hover{opacity:.6;}
.legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border);}
.legend-item{display:flex;align-items:center;gap:.25rem;font-size:.64rem;color:var(--muted);}
.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.data-bar{display:flex;gap:.25rem;margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--border);flex-wrap:wrap;}
.data-btn{font-size:.64rem;font-weight:700;padding:3px 8px;border-radius:2px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:3px;}
.data-btn:hover{border-color:var(--bleu);color:var(--bleu);}.data-btn.danger{color:var(--rouge);}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:500;display:none;align-items:center;justify-content:center;padding:1rem;}
.modal-backdrop.open{display:flex;}
.modal{background:var(--card);border-radius:var(--radius);padding:1.2rem;width:100%;max-width:420px;box-shadow:0 8px 32px rgba(0,0,0,.15);animation:slideUp .2s ease;border:1px solid var(--border);}
.modal-title{font-size:.9rem;font-weight:700;margin-bottom:.1rem;}
.modal-date-label{font-size:.68rem;color:var(--muted);margin-bottom:.7rem;}
.modal-tabs{display:flex;gap:.25rem;margin-bottom:.7rem;}
.m-tab{flex:1;padding:.4rem;border-radius:2px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:.72rem;font-weight:700;cursor:pointer;text-align:center;}
.m-tab.active{border-color:var(--bleu);background:var(--bleu);color:#fff;}
.m-tab.tab-alarm.active{border-color:var(--rouge);background:var(--rouge);}
.tab-panel{display:none;flex-direction:column;gap:.5rem;}.tab-panel.active{display:flex;}
label.field-label{font-size:.68rem;font-weight:700;color:var(--muted);display:block;margin-bottom:.15rem;letter-spacing:.06em;text-transform:uppercase;}
textarea.field-input,input.field-input,select.field-input{width:100%;padding:.45rem .65rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit;font-size:.8rem;outline:none;}
textarea.field-input{resize:vertical;min-height:50px;}
textarea.field-input:focus,input.field-input:focus,select.field-input:focus{border-color:var(--bleu);}
[data-theme="dark"] textarea.field-input,[data-theme="dark"] input.field-input,[data-theme="dark"] select.field-input{background:#333;}
.priority-row{display:flex;gap:.25rem;}
.priority-btn{flex:1;padding:.25rem;border-radius:2px;border:1px solid var(--border);background:var(--bg);cursor:pointer;font-size:.66rem;font-weight:700;text-align:center;}
.priority-btn.active-low{border-color:var(--vert);color:var(--vert);background:rgba(24,117,60,.04);}
.priority-btn.active-med{border-color:var(--or);color:var(--or);background:rgba(182,141,64,.04);}
.priority-btn.active-high{border-color:var(--rouge);color:var(--rouge);background:rgba(225,0,15,.04);}
.cat-row{display:flex;gap:.2rem;flex-wrap:wrap;}
.cat-btn{padding:.2rem .45rem;border-radius:2px;border:1px solid var(--border);background:var(--bg);cursor:pointer;font-size:.64rem;font-weight:700;}
.cat-btn.active{color:#fff;}
.modal-footer{display:flex;gap:.4rem;margin-top:.7rem;}
.btn-cancel{flex:1;padding:.45rem;border-radius:2px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer;}
.btn-save{flex:2;padding:.45rem;border-radius:2px;border:none;background:var(--bleu);color:#fff;font-size:.8rem;font-weight:700;cursor:pointer;}
.btn-save.alarm-mode{background:var(--rouge);}
.undo-bar{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) translateY(50px);background:var(--text);color:var(--bg);padding:.45rem .9rem;border-radius:2px;font-size:.78rem;box-shadow:0 3px 12px rgba(0,0,0,.15);transition:transform .25s,opacity .25s;opacity:0;z-index:9999;display:flex;align-items:center;gap:.5rem;white-space:nowrap;}
.undo-bar.show{transform:translateX(-50%) translateY(0);opacity:1;}
.undo-btn{background:var(--or);color:#fff;border:none;border-radius:2px;padding:2px 8px;font-size:.72rem;font-weight:700;cursor:pointer;}
.notif-banner{position:fixed;top:60px;right:.8rem;z-index:999;display:flex;flex-direction:column;gap:.4rem;pointer-events:none;}
.notif-card{background:var(--card);border-left:3px solid var(--rouge);border-radius:var(--radius);padding:.6rem .8rem;box-shadow:0 3px 12px rgba(0,0,0,.08);min-width:220px;max-width:280px;animation:slideInRight .25s ease;pointer-events:auto;border:1px solid var(--border);position:relative;}
.notif-card.notif-note{border-left-color:var(--vert);}
.notif-title{font-size:.75rem;font-weight:700;}.notif-body{font-size:.68rem;color:var(--muted);}
.notif-close{position:absolute;top:3px;right:5px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:.75rem;}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) translateY(50px);background:var(--text);color:var(--bg);padding:.45rem 1rem;border-radius:2px;font-size:.78rem;box-shadow:0 3px 12px rgba(0,0,0,.15);transition:transform .25s,opacity .25s;opacity:0;z-index:9998;}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1;}
footer{text-align:center;padding:1rem;font-size:.65rem;color:var(--muted);border-top:1px solid var(--border);}
footer strong{color:var(--bleu);}[data-theme="dark"] footer strong{color:#8b9cf7;}
@media print{header,.tricolor-bar,.voice-fab,.voice-preview,.notif-banner,.toast,.undo-bar,.data-bar,.dd-add-btn,.ev-actions,.filter-tabs,.view-toggle,.search-bar,.svc-edit-bar,.paie-banner,footer,.drag-handle{display:none!important;}body{background:#fff!important;color:#000!important;}.card{box-shadow:none!important;border:1px solid #ccc!important;}main{display:block!important;padding:.5rem!important;}}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
