:root{--navy:#132941;--navy2:#1c3955;--red:#c52f40;--red-light:#fff1f1;--beige:#f5f1e9;--beige2:#e9e2d5;--card:#fff;--ink:#1d3045;--muted:#718091;--line:#e6e5e1;--shadow:0 7px 24px rgba(21,39,55,.035);--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--beige);font:14px/1.5 Inter,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}svg{vertical-align:middle;flex-shrink:0}.dot,.red-text{color:var(--red)!important}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--navy);color:#e9eff6;width:242px;position:sticky;top:0;height:100vh;flex:none;display:flex;flex-direction:column;padding:28px 14px 18px;z-index:60}.logo{display:flex;align-items:center;gap:13px;padding:0 12px 30px}.logo-symbol,.brand-mark{background:var(--red);height:42px;min-width:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;letter-spacing:-.05em;color:white}.logo strong{display:block;font-size:22px;letter-spacing:-.07em;line-height:1.15}.logo small{display:block;font-size:10px;letter-spacing:.23em;color:#a8b8c9;margin-top:4px;font-weight:700}.nav-label{color:#748ba2;letter-spacing:.17em;font-size:10px;margin:11px 14px}.sidebar nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto;overflow-x:hidden;padding-right:2px}.nav-link{display:flex;align-items:center;gap:13px;padding:10px 13px;border-radius:10px;color:#b8c9da;font-size:13px;font-weight:600;white-space:nowrap}.nav-link:hover{background:#263e57;color:white}.nav-link.active{background:#f6f1eb;color:var(--navy)}.nav-link.active .nav-icon{color:var(--red)}.nav-icon{width:22px;display:flex}.sidebar-bottom{border-top:1px solid #395168;margin-top:auto;padding:19px 7px 0;display:flex;align-items:center;gap:9px}.account-avatar,.top-avatar{background:#c8d7e4;color:#172d42;border-radius:11px;width:33px;height:33px;display:grid;place-items:center;font-weight:800}.account-meta{min-width:0;flex:1}.account-meta strong{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-meta small{color:#92abc0;font-size:11px}.logout{background:none;color:#bacbda;border:0;padding:4px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,56px);border-bottom:1px solid var(--line)}.topbar-location{color:#84919d;font-size:13px}.topbar-location strong{color:var(--ink)}.slash{color:#cbd0d4;margin:0 10px}.topbar-actions{display:flex;align-items:center;gap:19px}.today-date{font-size:13px;color:#718091}.icon-button{border:0;background:#f6f7f9;color:var(--navy);height:37px;width:37px;display:inline-flex;justify-content:center;align-items:center;border-radius:11px}.top-avatar{background:#fbe8e9;color:var(--red)}.mobile-menu{display:none}.content{width:100%;max-width:1620px;margin:0 auto;padding:35px clamp(18px,3vw,49px) 60px;flex:1}.main-footer{display:flex;justify-content:space-between;padding:15px clamp(18px,3vw,49px) 24px;font-size:11px;color:#a1a7aa}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:800;color:var(--red)}h1{font-size:clamp(27px,3.1vw,38px);line-height:1.22;font-weight:800;letter-spacing:-.055em;margin:6px 0 7px}h2{font-size:17px;letter-spacing:-.03em;line-height:1.35;margin:0;font-weight:750}h3{font-size:17px}p{margin:0}.page-head p{color:var(--muted);font-size:13px;max-width:650px}.btn{border:1px solid transparent;border-radius:10px;padding:11px 15px;display:inline-flex;align-items:center;gap:9px;justify-content:center;font-size:12px;font-weight:750;white-space:nowrap}.btn.primary{background:var(--red);color:white}.btn.primary:hover{background:#ab2336}.btn.soft{background:#f6e6e4;color:var(--red)}.btn.outline{border:1px solid #dadddf;color:var(--navy);background:white}.btn.small{font-size:11px;padding:7px 11px}.btn svg{width:16px}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:19px}.summary-strip>div{background:var(--card);padding:19px 22px;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow)}.summary-strip span{font-size:11px;color:var(--muted)}.summary-strip strong{font-size:28px;letter-spacing:-.06em;font-weight:780;line-height:1.3}.two-col{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:18px;align-items:start}.main-grid{grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr)}.stack,.side-stack{display:flex;flex-direction:column;gap:18px;min-width:0}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-head{padding:21px 23px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head .eyebrow{display:block;margin-bottom:6px;color:#8e99a4}.link-small{color:var(--red);font-weight:700;font-size:11px;white-space:nowrap}.task-row{padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #f0efed}.task-row-main{display:flex;gap:12px;align-items:center;min-width:0}.task-circle{flex:none;width:18px;height:18px;border:2px solid #d8dfe4;border-radius:50%;display:inline-block}.task-circle.finished{background:#a5b9ab;border-color:#a5b9ab}.task-title{font-size:13px;font-weight:700;display:block}.task-title:hover{color:var(--red)}.task-sub{color:#8d98a1;font-size:11px;margin-top:4px}.task-sub span{padding:0 3px;color:#b9bec4}.task-row-end{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.task-row-end select,.status-form select{max-width:130px;font-size:11px;padding:5px 7px;border-radius:8px}.pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:7px;padding:5px 8px;font-size:10px;font-weight:750;background:#f0f2f4;color:#55687d}.pill.red{background:#fff0f0;color:#c52f40}.pill.blue{background:#eaf0f9;color:#325c86}.pill.neutral{background:#f1f2f1;color:#687883}.panel-foot{border-top:1px solid var(--line);padding:13px 22px}.inline-add{color:var(--red);font-weight:700;font-size:12px;display:inline-flex;align-items:center;gap:8px}.inline-add svg{width:16px}.agenda-line,.reminder-line{display:flex;gap:13px;align-items:center;padding:11px 21px;border-top:1px solid #f2f0ef}.date-tile{width:46px;flex:none;background:#f5f0e9;padding:6px;border-radius:10px;text-align:center}.date-tile b{display:block;font-size:18px;line-height:1.15}.date-tile small{font-size:9px;color:#7c8a94}.agenda-line strong,.reminder-line strong{display:block;font-size:12px}.agenda-line small,.reminder-line small{display:block;font-size:11px;color:#8895a0;margin-top:4px}.mini-dot{width:8px;height:8px;background:var(--red);border-radius:50%;flex:none}.empty{padding:24px;color:#8c99a1;font-size:12px}.empty.compact{padding:16px 23px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:19px}.quick-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:7px}.quick-card>span{color:var(--red)}.quick-card strong{font-size:14px}.quick-card small{font-size:11px;color:var(--muted)}.quick-card:hover{border-color:#c7cbd0;transform:translateY(-1px)}.form-panel{padding-bottom:20px}.stack-form{padding:0 22px;display:flex;flex-direction:column;gap:14px}.stack-form label,.login-card label{font-size:12px;font-weight:700;color:#435568;display:flex;flex-direction:column;gap:6px;min-width:0}.stack-form input,.stack-form textarea,.stack-form select,.login-card input{font-weight:450;width:100%;padding:11px 12px;border:1px solid #dfe3e6;background:#fff;border-radius:9px;color:#1e3145;outline:none;min-width:0}.stack-form input:focus,.stack-form textarea:focus,.stack-form select:focus,.login-card input:focus{border-color:#be7481;box-shadow:0 0 0 3px #c52f4015}.stack-form textarea{resize:vertical;min-height:55px}.stack-form>.btn{align-self:stretch}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.records{border-top:1px solid #f0efed}.records.slim{max-height:340px;overflow:auto}.record{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:13px 22px;border-bottom:1px solid #f1efec}.record:hover,.record.selected{background:#fbf7f2}.record strong{display:block;font-size:12px}.record small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.record>div:last-child{flex-shrink:0}.count{display:inline-block;font-size:11px;background:#f0f0ef;padding:4px 8px;border-radius:20px;margin-left:5px;color:#85909b}.calendar-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);gap:17px;align-items:start}.calendar-panel{padding:15px}.calendar-top{padding:10px 9px 22px;display:flex;align-items:center;justify-content:space-between}.calendar-top h2{font-size:23px;letter-spacing:-.04em}.month-actions{display:flex;align-items:center;gap:4px}.month-actions a{border:1px solid #e9e8e4;border-radius:9px;min-width:34px;height:32px;display:flex;align-items:center;justify-content:center;font-size:11px;padding:0 8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;background:#f0efeb;border:1px solid #f0efeb;border-radius:9px;overflow:hidden}.weekday{background:#f8f7f4;text-align:center;padding:12px 0;color:#89949c;font-size:11px;font-weight:700}.cal-day{display:block;background:#fff;min-height:105px;padding:8px;min-width:0}.cal-day:hover{background:#fbf8f3}.cal-day.outside{background:#fafaf9;color:#abb1b5}.cal-day.is-today .date-num{background:var(--red);color:white}.cal-day.chosen{box-shadow:inset 0 0 0 2px #cf9da3}.date-num{border-radius:9px;display:flex;align-items:center;justify-content:center;width:27px;height:27px;font-size:12px;font-weight:700}.cal-events{display:flex;flex-direction:column;gap:3px;margin-top:5px}.cal-chip{font-size:9px;background:#e8f0f5;color:#345b78;border-radius:4px;padding:2px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip.ris-chip{background:#f9e8e9;color:#a12a38}.cal-chip.task-chip{background:#eee9df;color:#736653}.more-events{font-size:9px;color:#8696a2}.day-event{display:flex;align-items:flex-start;gap:12px;padding:12px 22px;border-top:1px solid #f0efed}.event-time{color:var(--red);font-weight:800;font-size:12px;min-width:40px}.day-event strong{display:block;font-size:12px}.day-event small{color:#87939d;display:block;font-size:11px;margin-top:3px}.letters-grid{display:grid;grid-template-columns:minmax(340px,.95fr) minmax(440px,1.05fr);gap:19px;align-items:start}.letter-top{margin-bottom:17px}.letter-top .panel{max-width:100%}.preview-side{min-width:0}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.paper{position:relative;background:#fff;border:1px solid #e4e4e1;box-shadow:0 8px 30px #172d4210;min-height:760px;padding:45px 49px 35px;color:#202c39;font-family:Arial,sans-serif;font-size:12px;line-height:1.55;display:flex;flex-direction:column}.paper-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #c93043;padding-bottom:16px}.paper-logo{font-size:28px;color:#c52f40;font-weight:900;letter-spacing:-.08em}.paper-logo span{font-size:13px;letter-spacing:-.02em;color:#1f3248}.paper-meta{text-align:right;font-size:10px;line-height:1.5}.paper-meta small{font-size:9px;color:#9096a0}.letter-place{text-align:right;margin-top:26px}.letter-recipient{align-self:flex-end;text-align:left;margin:30px 0 36px;min-width:45%;min-height:28px}.letter-subject{margin-bottom:30px}.letter-body{white-space:normal;flex:1;min-height:210px;overflow-wrap:anywhere}.signature-row{display:flex;justify-content:flex-end;gap:25px;flex-wrap:wrap;padding:24px 0 18px}.signature-item{min-width:120px;max-width:160px;text-align:center}.signature-item strong{display:block;font-size:11px}.signature-item small{display:block;color:#8d8b91;font-size:9px}.signature-item img{width:auto;height:auto;max-width:115px;max-height:70px;object-fit:contain}.paper-footer{border-top:1px solid #d1d8dd;padding-top:8px;color:#9b9fa3;font-size:8px;display:flex;justify-content:space-between;gap:8px}.paper-placeholder{min-height:420px;align-items:center;justify-content:center;text-align:center;gap:12px;color:#9ba6ae}.paper-placeholder p{max-width:280px}.checks{display:flex;flex-wrap:wrap;gap:7px}.checks .check{display:flex;flex-direction:row;align-items:center;background:#f5f4f1;padding:8px 11px;border-radius:9px}.checks input,.school-check input{width:auto}.help,.hint,.small-copy{font-size:11px;color:#8896a1;line-height:1.5}.help{margin-top:14px}.hint{padding:12px;background:#f6f1e7;border-radius:9px}.school-list{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:10px}.school-check{display:flex!important;align-items:center!important;flex-direction:row!important;padding:10px 13px;gap:12px!important;border-bottom:1px solid var(--line)}.school-check span{display:flex;flex-direction:column}.school-check strong{font-weight:700}.school-check small{font-weight:400;color:var(--muted)}.reminder-record{border-bottom:1px solid var(--line);padding:16px 22px;display:flex;gap:12px;justify-content:space-between;align-items:center}.reminder-record strong{font-size:12px}.reminder-record small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.record-actions{display:flex;gap:7px;align-items:center}.mail-item{padding:18px 23px;border-bottom:1px solid var(--line)}.mail-from{font-size:11px;color:var(--muted)}.mail-subject{font-size:13px;font-weight:750;margin:4px 0}.mail-item p{font-size:11px;color:#8a969f}.mail-actions{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:10px}.mail-actions>a:first-child{color:var(--red);font-weight:700;font-size:11px}.note-panel{padding:28px}.note-panel h2{margin:8px 0}.note-panel p{margin:10px 0 16px;color:var(--muted)}hr{width:calc(100% - 44px);border:0;border-top:1px solid var(--line);margin:20px auto}.top-margin{margin-top:13px}.toast{background:#eef7ed;border:1px solid #bad2bc;border-radius:10px;padding:12px 16px;margin-bottom:20px;color:#3d6b48;font-size:12px;font-weight:650}.toast.error{background:#fff2f1;color:#a83041;border-color:#efbcc4}.login-body{background:var(--beige);min-height:100vh;display:grid;place-items:center;padding:18px}.login-card{width:min(100%,405px);background:white;padding:35px;border:1px solid var(--line);border-radius:20px;box-shadow:0 15px 60px rgba(20,40,55,.09)}.login-card .brand-mark{margin-bottom:28px}.login-card h1{font-size:37px;margin-bottom:8px}.login-card p{color:var(--muted);font-size:13px;margin-bottom:20px}.login-card form{display:grid;gap:16px}.login-card .btn{width:100%}.login-card small{display:block;margin-top:18px;color:#a0a7ad}.print-body{display:flex;flex-direction:column;align-items:center;gap:25px;background:#e3e5e7;padding:24px}.print-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.print-tools span{color:#7a848a;font-size:12px}.print-body .paper{width:210mm;min-height:297mm}.mobile-overlay{display:none}
@media(max-width:1240px){.sidebar{width:225px}.content{padding:30px 22px 55px}.two-col,.main-grid{grid-template-columns:minmax(0,1.1fr) minmax(280px,1fr)}.letters-grid{grid-template-columns:1fr}.calendar-layout{grid-template-columns:1fr}.cal-day{min-height:90px}}
@media(max-width:900px){.sidebar{position:fixed;left:-255px;transition:left .2s ease}.menu-open .sidebar{left:0}.mobile-overlay{display:none;position:fixed;inset:0;background:#1329416d;z-index:50}.menu-open .mobile-overlay{display:block}.mobile-menu{display:inline-flex;margin-right:10px}.topbar{height:64px;padding:0 20px}.two-col,.main-grid{grid-template-columns:1fr}.summary-strip{grid-template-columns:repeat(4,1fr)}.content{padding:24px 18px 55px}.today-date{display:none}.page-head{align-items:flex-start}}
@media(max-width:620px){h1{font-size:30px}.page-head{flex-direction:column;align-items:stretch}.page-head .btn{align-self:flex-start}.topbar-location{font-size:11px}.summary-strip{grid-template-columns:repeat(2,1fr)}.summary-strip>div{padding:16px}.quick-grid{grid-template-columns:1fr}.content{padding:21px 12px 46px}.panel-head{padding:18px 15px 13px}.task-row,.record,.reminder-record{padding:13px 14px}.task-row{align-items:flex-start}.task-row-end{max-width:130px;justify-content:end}.task-row-end select{max-width:112px}.stack-form{padding:0 15px}.field-row{grid-template-columns:1fr}.calendar-panel{padding:6px}.calendar-top{padding:13px 8px}.calendar-top h2{font-size:17px}.cal-day{min-height:61px;padding:3px}.date-num{width:23px;height:23px;font-size:11px}.weekday{font-size:10px;padding:8px 0}.cal-chip{font-size:8px;max-width:100%;padding:1px 2px}.cal-events{margin-top:1px}.more-events{font-size:8px}.paper{padding:24px 18px;min-height:575px;font-size:10px}.paper-meta{font-size:9px}.letters-grid{display:block}.preview-side{margin-top:15px}.letter-recipient{margin:23px 0}.paper-header{gap:12px}.paper-logo{font-size:21px}.paper-logo span{font-size:10px}.letter-body{min-height:100px}.main-footer span{display:none}.print-body{padding:0}.print-body .paper{width:100%;min-height:100vh}.print-tools{padding:15px}.day-event{padding:12px 14px}.record-actions{flex-direction:column}.mail-actions{align-items:flex-start}.letter-top{margin-bottom:15px}}
@media print{@page{size:A4;margin:0}html,body{width:210mm;min-height:297mm;background:white!important}.print-body{padding:0;margin:0;display:block}.print-tools,.signature-item form{display:none!important}.print-body .paper{margin:0;border:0;box-shadow:none;width:210mm;min-height:297mm;padding:19mm 19mm 16mm;break-inside:avoid}.paper{font-size:11pt}}
/* Finitions, navigation tactile et accessibilite */
:root{--shadow:0 8px 30px rgba(21,39,55,.055)}
.content{background:radial-gradient(ellipse at top right,#eadfd355,transparent 65%)}
.panel,.quick-card{transition:box-shadow .18s ease,border-color .18s ease}
.quick-card:hover{box-shadow:0 12px 28px #13294110;border-color:#c52f4066}
.nav-link.active{box-shadow:inset 3px 0 var(--red)}
:focus-visible{outline:3px solid #c52f40;outline-offset:3px}
.template-panel{margin-bottom:20px;padding:18px 0}
.template-panel summary{cursor:pointer;font-weight:750;padding:0 22px;color:var(--navy)}
.template-panel details[open] summary{margin-bottom:18px}
.template-list{margin-bottom:18px}
.record,.task-row,.day-event{overflow-wrap:anywhere}
@media(max-width:620px){.btn{min-height:42px}.topbar-actions{gap:8px}.record{flex-wrap:wrap}.calendar-grid{gap:1px}.cal-day{min-height:78px}.template-panel summary{padding:0 15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.access-form{display:flex;gap:8px;padding:0 22px 16px;flex-wrap:wrap}.access-form select{padding:8px;border:1px solid var(--line);border-radius:8px;background:white;flex:1}
