:root{color-scheme:light;--bg:#f5f6fb;--bg-tint:radial-gradient(1200px 600px at 100% -10%,#eef0ff 0%,rgba(238,240,255,0) 55%);--surface:#ffffff;--surface-muted:#f8f9fc;--foreground:#1b2030;--muted:#6b7280;--line:#e7e9f2;--line-strong:#d6d9e8;--brand:#6366f1;--brand-strong:#4f46e5;--brand-contrast:#ffffff;--brand-soft:#eef0fe;--accent:#ff8a5b;--accent-soft:#fff0ea;--danger:#e23b54;--danger-soft:#fde7eb;--warning:#d98324;--warning-soft:#fdf0dd;--success:#0f9d72;--success-soft:#d9f5ec;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px rgba(27,32,48,0.06),0 1px 3px rgba(27,32,48,0.04);--shadow-md:0 6px 20px rgba(27,32,48,0.08);--shadow-lg:0 24px 60px rgba(27,32,48,0.18)}*{box-sizing:border-box}body,html{margin:0}html{scrollbar-gutter:stable}body{background:var(--bg);background-image:var(--bg-tint);background-attachment:fixed;color:var(--foreground);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--brand-strong);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em}.shell{min-height:100vh;display:grid;grid-template-columns:256px 1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;background:linear-gradient(185deg,#2b2a6b,#1d1c4a 60%,#181734);color:#e7e9ff;padding:22px 18px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:12px;padding:4px 6px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--brand) 0,var(--accent) 100%);color:#fff;font-weight:800;font-size:15px;letter-spacing:.02em;box-shadow:0 6px 16px rgba(99,102,241,.45)}.brand-name{font-size:19px;font-weight:700;color:#fff}.nav{display:grid;grid-gap:4px;gap:4px}.nav-divider{border:none;border-top:1px solid rgba(255,255,255,.16);margin:6px 10px}.nav a{display:flex;align-items:center;gap:10px;color:#c7c9ef;padding:11px 13px;border-radius:var(--radius-sm);font-weight:600;font-size:14.5px;transition:background .15s ease,color .15s ease}.nav a,.nav a:hover{text-decoration:none}.nav a:hover{background:rgba(255,255,255,.07);color:#fff}.nav a.active{background:linear-gradient(135deg,rgba(99,102,241,.95),rgba(99,102,241,.7));color:#fff;box-shadow:0 8px 20px rgba(79,70,229,.35)}.nav-footer{margin-bottom:4px}.nav-footer a{padding:8px 13px;font-size:14px}.app-topbar{display:none;position:-webkit-sticky;position:sticky;top:0;z-index:30;align-items:center;gap:12px;height:56px;padding:0 14px;background:#1d1c4a;color:#fff}.app-topbar-brand{font-size:17px;font-weight:700}.nav-close,.nav-toggle{display:inline-grid;place-items:center;padding:6px;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer}.nav-close:hover,.nav-toggle:hover{background:rgba(255,255,255,.12)}.nav-close{margin-left:auto;color:#c7c9ef}.nav-close,.sidebar-backdrop{display:none}.content{padding:36px 40px 56px;width:100%;min-width:0}.content,.content-wide{max-width:none}.email-copy{border:0;background:none;padding:0;margin:0;font:inherit;color:var(--brand-strong);cursor:pointer;text-align:left}.email-copy:hover{text-decoration:underline}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}.sidebar-user{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#c7c9ef;overflow:hidden}.sidebar-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout{border:1px solid rgba(255,255,255,.2);background:transparent;color:#e7e9ff;border-radius:var(--radius-sm);padding:9px 13px;font-weight:600;font-size:14px;cursor:pointer;transition:background .15s ease}.sidebar-logout:hover{background:rgba(255,255,255,.1)}.sidebar-logout:disabled{opacity:.6;cursor:not-allowed}.login-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden;isolation:isolate}.login-scene{position:absolute;inset:0;z-index:-1;background-image:repeating-linear-gradient(90deg,rgba(99,102,241,.055) 0 1px,transparent 1px 84px),repeating-linear-gradient(180deg,rgba(99,102,241,.045) 0 1px,transparent 1px 60px);-webkit-mask-image:radial-gradient(120% 90% at 50% 45%,#000 30%,transparent 78%);mask-image:radial-gradient(120% 90% at 50% 45%,#000 30%,transparent 78%)}.login-slot{position:absolute;height:46px;border-radius:10px;border-left:3px solid;box-shadow:var(--shadow-sm);animation:login-drift 14s ease-in-out infinite alternate}.slot-brand{background:var(--brand-soft);border-left-color:var(--brand)}.slot-accent{background:var(--accent-soft);border-left-color:var(--accent)}.slot-success{background:var(--success-soft);border-left-color:var(--success)}.slot-a{width:168px;top:16%;left:9%}.slot-b{width:132px;top:68%;left:14%;animation-delay:-4s;animation-duration:17s}.slot-c{width:148px;top:24%;right:10%;animation-delay:-8s;animation-duration:16s}.slot-d{width:116px;top:72%;right:15%;animation-delay:-11s;animation-duration:19s}@keyframes login-drift{0%{transform:translateY(-9px)}to{transform:translateY(9px)}}.login-panel{width:100%;max-width:400px;gap:24px}.login-hero,.login-panel{display:flex;flex-direction:column}.login-hero{align-items:center;gap:4px;text-align:center;animation:login-rise .5s ease-out both}.login-logo{width:60px;height:60px;margin-bottom:12px;border-radius:16px;box-shadow:0 10px 28px rgba(99,102,241,.35)}.login-wordmark{margin:0;font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.15}.login-tagline{margin:0;font-size:14px;color:var(--muted)}.login-card{display:flex;flex-direction:column;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow-md);animation:login-rise .5s ease-out .1s both}.login-card-head{display:grid;grid-gap:2px;gap:2px}.login-card-head h2{margin:0;font-size:20px;font-weight:800}.login-card-head p{margin:0;font-size:14px;color:var(--muted)}.login-help{margin:0;text-align:center;font-size:13px;color:var(--muted);animation:login-rise .5s ease-out .2s both}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.login-card,.login-help,.login-hero,.login-slot{animation:none}}@media (max-width:640px){.login-slot{display:none}}.login-card label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:14px}.login-card input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface)}.login-card input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.login-card .button.primary{justify-content:center}.login-error{margin:0;color:var(--danger);font-size:14px;font-weight:600}.account-grid{display:grid;grid-gap:20px;gap:20px;max-width:560px}.account-card{display:grid;grid-gap:16px;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}.account-card h2{margin:0;font-size:17px}.card-hint{margin:0;font-size:13px;color:var(--muted)}.avatar-circle{flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--brand-soft);color:var(--brand-strong);border:1px solid var(--line);font-weight:700}.avatar-circle img{width:100%;height:100%;object-fit:cover}.avatar-circle-lg{width:64px;height:64px;font-size:22px}.avatar-circle-sm{width:26px;height:26px;font-size:11px;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#c7c9ef}.account-avatar-row{display:flex;align-items:center;gap:16px}.account-avatar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.account-avatar-actions .card-hint{flex-basis:100%}.account-inline-form{display:flex;align-items:end;gap:10px}.account-inline-form label{flex:1 1;display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:14px}.account-inline-form .card-hint{flex-basis:100%;margin:0}.account-email-form{flex-wrap:wrap}.account-email-form label{min-width:180px}.account-facts{margin:0;display:grid;grid-gap:8px;gap:8px;font-size:14px}.account-facts>div{display:flex;justify-content:space-between;gap:16px}.account-facts dt{color:var(--muted);font-weight:600}.account-facts dd{margin:0;text-align:right}.session-list{margin:0;padding:0;list-style:none;display:grid;grid-gap:8px;gap:8px}.session-item{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.session-badge-current{color:var(--success);background:var(--success-soft);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}.account-form{display:flex;flex-direction:column;gap:16px}.account-form label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:14px}.account-form input,.account-inline-form input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface)}.account-form input:focus,.account-inline-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.account-feedback-ok{margin:0;color:var(--success);font-size:14px;font-weight:600}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-header h1{margin:0 0 6px;font-size:30px;font-weight:800}.page-header p{margin:0;color:var(--muted);max-width:70ch}.year-select{display:flex;flex-direction:column;gap:4px;flex-shrink:0;font-size:13px;font-weight:600;color:var(--muted)}.year-select select{font:inherit;font-size:14px;color:var(--foreground);padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer}.toolbar{display:flex;gap:10px}.button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:9px 16px;color:var(--foreground);font-size:14px;font-weight:600;cursor:pointer;transition:transform .05s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.button:hover{border-color:var(--brand);color:var(--brand-strong);text-decoration:none;box-shadow:var(--shadow-sm)}.button:active{transform:translateY(1px)}.button.primary{background:linear-gradient(135deg,var(--brand) 0,var(--brand-strong) 100%);border-color:transparent;color:var(--brand-contrast);box-shadow:0 3px 10px rgba(79,70,229,.22)}.button.primary:hover{color:#fff;filter:brightness(1.05)}.button.danger{border-color:var(--danger);color:var(--danger);background:var(--surface)}.button.danger:hover{background:var(--danger-soft);color:var(--danger)}.button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.stat{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 18px 22px;box-shadow:var(--shadow-sm);overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--brand),var(--accent))}.stat span{color:var(--muted);font-size:13px;font-weight:600}.stat strong{display:block;margin-top:8px;font-size:30px;font-weight:800;color:var(--foreground)}.acceptance{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.acceptance-title{margin:0 0 16px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.acceptance-list{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.acceptance-item{display:grid;grid-template-columns:minmax(120px,200px) 1fr 60px;align-items:center;grid-gap:14px;gap:14px}.acceptance-promo{font-weight:600}.acceptance-bar{height:10px;background:var(--surface-muted);border-radius:999px;overflow:hidden}.acceptance-fill{display:block;height:100%;border-radius:999px;transition:width .3s ease}.acceptance-pct{text-align:right;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.download-cards{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px;margin-bottom:24px}.download-cards .acceptance{margin-bottom:0}@media (min-width:901px){.download-cards{grid-template-columns:1fr 1fr;align-items:start}}.missioned-hint{margin:0 0 12px;font-size:13px;color:var(--muted)}.course-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-bottom:24px}.course-tools .add-toggle{margin-bottom:0}.course-tools .form-grid{flex:1 1 100%;margin-bottom:0}.duplicate-note{grid-column:1/-1;margin:0;font-size:13px;color:var(--muted)}.duplicate-list{grid-column:1/-1;margin:0;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:10px 18px;gap:10px 18px}.duplicate-list legend{font-size:13px;font-weight:700;color:var(--muted);padding:0 4px}.form-grid label.duplicate-item{display:flex;align-items:center;gap:8px;font-weight:400;font-size:14px;min-width:0;cursor:pointer}.duplicate-item input[type=checkbox]{flex:none;width:16px;height:16px;accent-color:var(--brand-strong);cursor:pointer}.duplicate-item-title{min-width:0;overflow-wrap:anywhere}.form-grid label.duplicate-item.exists{color:var(--muted);cursor:default}.duplicate-exists{margin-left:auto;font-size:12px;color:var(--warning);white-space:nowrap}.course-template{grid-column:1/-1}.course-template-hint{display:block;margin-top:4px;font-size:12px;color:var(--muted);font-weight:400}.copy-all-emails{margin:0 0 12px;font-size:13px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.copy-all-emails-link{background:none;border:none;padding:0;font:inherit;color:var(--brand-strong);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.copy-all-emails-link:focus-visible,.copy-all-emails-link:hover{color:var(--brand)}.copy-all-emails-note{color:var(--muted)}.copy-all-emails-error{color:var(--danger)}.missioned-list{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.missioned-chip{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--foreground);font:inherit;font-weight:600;font-size:14px;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease}.missioned-chip:hover{background:var(--brand-soft);border-color:var(--brand)}.missioned-chip:active{transform:translateY(1px)}.missioned-chip.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.missioned-chip.is-sent{border-color:var(--success);background:var(--success-soft);color:var(--success)}.missioned-chip.is-sent.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.missioned-chip.is-pending{border:2px solid #d97706;padding:7px 13px}.missioned-chip.is-pending.is-active{border-color:var(--brand)}.missioned-chip-icon{margin-left:8px;font-size:13px;line-height:1}.email-panel{margin-top:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-muted);padding:16px;overflow:hidden;animation:email-slide .18s ease}@keyframes email-slide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.email-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.email-panel-title{margin:0;font-size:15px;font-weight:700}.email-panel-identity{display:flex;flex-direction:column;gap:4px;min-width:0}.email-panel-name{border:0;background:none;padding:0;margin:0;font:inherit;color:var(--brand-strong);cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:3px}.email-panel-name:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid}.email-panel-noemail{font-size:13px;color:var(--muted)}.trainer-fiche{margin:0 0 4px;display:grid;grid-gap:14px;gap:14px}.trainer-fiche-row{min-width:0}.trainer-fiche dt{margin:0;font-weight:700;font-size:13px;color:var(--muted)}.trainer-fiche dd{margin:4px 0 0;word-break:break-word}.email-panel-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.mission-sent-toggle.is-sent{border-color:var(--success);background:var(--success-soft);color:var(--success)}.mission-sent-toggle:disabled{opacity:.6;cursor:progress}.email-panel-status{margin:0;color:var(--muted);font-size:14px}.email-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.email-toolbar button{min-width:34px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--foreground);font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.email-toolbar button:hover{background:var(--brand-soft);border-color:var(--brand)}.email-editor{min-height:280px;padding:16px 18px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:14px;line-height:1.6;outline:none}.email-editor:focus{border-color:var(--brand)}.email-editor p{margin:0 0 12px}.email-editor ul{margin:0 0 12px;padding-left:22px}.email-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.trainer-comment{max-width:220px;white-space:pre-wrap;word-break:break-word;color:var(--muted);font-size:13px}.planning{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.planning td,.planning th{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line)}.planning th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-muted);font-weight:700}.planning tbody tr:last-child td{border-bottom:none}.planning tbody tr:hover td{background:var(--brand-soft)}.cell-link{background:none;border:none;padding:0;font:inherit;color:var(--brand-strong);text-align:left;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:3px;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}.cell-link:focus-visible,.cell-link:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.trainer-modules{margin:0;padding-left:20px;display:grid;grid-gap:8px;gap:8px}.trainer-modules-promo{color:var(--muted);font-size:13px}.conflict-panel{display:grid;grid-template-columns:1fr 280px;grid-gap:16px;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.conflict-panel h2{margin:0 0 6px;font-size:18px}.conflict-panel p{margin:0;color:var(--muted)}.conflict-panel select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface)}.conflict-alert,.conflict-ok{grid-column:1/-1;border-radius:var(--radius-sm);padding:12px 14px;font-weight:700}.conflict-alert{background:var(--danger-soft);color:var(--danger)}.conflict-ok{background:var(--success-soft);color:var(--success)}.status{display:inline-flex;align-items:center;gap:6px;min-width:110px;justify-content:center;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.red{background:var(--danger-soft);color:var(--danger)}.status.orange{background:var(--warning-soft);color:var(--warning)}.status.green{background:var(--success-soft);color:var(--success)}.status.info{background:var(--brand-soft);color:var(--brand-strong)}.trainer-tip{position:relative;display:inline-flex}.trainer-info{display:inline-flex;align-items:center;justify-content:center;padding:0;background:none;border:none;cursor:pointer;font-size:12px;line-height:1}.trainer-tip-bubble{bottom:calc(100% + 8px);z-index:30;width:max-content;max-width:240px;padding:7px 11px;border-radius:8px;background:var(--foreground);color:var(--surface);font-size:12px;font-weight:600;line-height:1.35;text-align:center;white-space:normal;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}.trainer-tip-bubble,.trainer-tip-bubble:after{position:absolute;left:50%;transform:translateX(-50%)}.trainer-tip-bubble:after{content:"";top:100%;border:5px solid transparent;border-top:5px solid var(--foreground)}.trainer-info:focus-visible+.trainer-tip-bubble,.trainer-tip-bubble.open,.trainer-tip:hover .trainer-tip-bubble{opacity:1;visibility:visible}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px;max-width:980px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm)}.form-grid.wide{grid-template-columns:repeat(3,minmax(220px,1fr));max-width:none}.form-grid label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:14px}.form-grid label .optional{font-weight:400;color:var(--muted,#6b7280)}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.filters input:focus,.filters select:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.form-field{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:14px;align-content:start}.specialty-picker{position:relative;font-weight:400}.specialty-picker-box{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:5px 8px;background:var(--surface);cursor:text;transition:border-color .15s ease,box-shadow .15s ease}.specialty-picker:focus-within .specialty-picker-box{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.form-grid .specialty-picker-box input,.specialty-picker-box input,.trainer-edit .specialty-picker-box input{flex:1 1 120px;width:auto;min-width:0;border:none;padding:5px 4px;background:transparent}.form-grid .specialty-picker-box input:focus,.specialty-picker-box input:focus,.trainer-edit .specialty-picker-box input:focus{outline:none;border:none;box-shadow:none}.specialty-tag{display:inline-flex;align-items:center;gap:5px}.specialty-tag button{border:none;background:none;padding:0 2px;cursor:pointer;color:inherit;opacity:.6;font-size:14px;line-height:1}.specialty-tag button:hover{opacity:1}.specialty-panel{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:4px}.specialty-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;background:none;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px}.specialty-option.active,.specialty-option:hover{background:var(--brand-soft)}.specialty-option-category{font-size:12px;color:var(--muted);white-space:nowrap}.specialty-create{color:var(--brand-strong);font-weight:600;border-top:1px solid var(--line);border-radius:0 0 8px 8px}.specialty-create-panel{border-top:1px solid var(--line);padding:10px;display:grid;grid-gap:10px;gap:10px}.specialty-create-panel p{margin:0;font-size:13px;color:var(--muted)}.specialty-create-panel label{display:grid;grid-gap:4px;gap:4px;font-size:13px;font-weight:600}.specialty-create-panel input,.specialty-create-panel select{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;background:var(--surface);font-weight:400}.specialty-create-error{margin:0;font-size:13px;font-weight:600;color:var(--danger)}.specialty-create-actions{display:flex;gap:8px}.form-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px}.form-feedback{margin:-8px 0 24px;color:var(--brand-strong);font-weight:600}.empty-row{text-align:center;color:var(--muted);padding:22px}.row-actions{display:flex;gap:8px}.row-actions .button{padding:6px 12px;font-size:13px}.data-table-wrap{margin-top:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table td,.data-table th{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.data-table thead th{background:var(--surface-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-muted)}.data-table td:last-child,.data-table th:last-child{text-align:right}.data-table .row-actions{justify-content:flex-end}.data-table td code{background:var(--surface-muted);padding:2px 7px;border-radius:var(--radius-sm);font-size:12px;color:var(--muted)}.data-table select{padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:13px}.data-table .empty-row,.data-table td.empty-row{text-align:center}.cv-cell{display:inline-flex;align-items:center;gap:6px}.cv-add,.cv-link,.cv-mini{display:inline-grid;place-items:center;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;text-decoration:none;line-height:1}.cv-add,.cv-link{width:32px;height:30px;font-size:16px}.cv-add{opacity:.55}.cv-add:hover,.cv-link:hover{border-color:var(--brand);background:var(--brand-soft);text-decoration:none;opacity:1}.cv-mini{width:26px;height:26px;font-size:13px;color:var(--muted)}.cv-mini:hover{border-color:var(--brand);color:var(--foreground)}.cv-mini.danger:hover{border-color:var(--danger);color:var(--danger)}.cv-add:disabled,.cv-link:disabled,.cv-mini:disabled{opacity:.4;cursor:not-allowed}.export-actions{display:flex;flex-wrap:wrap;gap:12px}.filters{display:grid;grid-template-columns:260px 1fr;grid-gap:16px;gap:16px;margin-bottom:24px;max-width:720px}.filters label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:14px;min-width:0}.filters input,.filters select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);width:100%;min-width:0}.filters-trainers{grid-template-columns:1fr 200px 180px 170px;max-width:1040px}.filters-courses{grid-template-columns:repeat(5,minmax(150px,1fr));max-width:1200px}.filters-planning{grid-template-columns:repeat(4,minmax(150px,1fr));max-width:1040px}.filters-livrets{grid-template-columns:minmax(140px,180px) minmax(200px,1fr) minmax(150px,210px) minmax(170px,230px);max-width:960px}.trainer-edit{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));grid-gap:14px;gap:14px;padding:6px 0;align-items:end}.trainer-edit label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:13px}.trainer-edit input,.trainer-edit select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 11px;background:var(--surface);font:inherit}.trainer-edit-actions{grid-column:1/-1;display:flex;gap:10px}.row-editing td{background:var(--brand-soft)}.filters-programming{display:flex;flex-direction:column;gap:12px;max-width:none}.programming-selectors{display:flex;flex-wrap:wrap;gap:16px}.programming-selectors>label{flex:1 1;min-width:240px;max-width:320px}.filters-action{display:flex;gap:12px}.filters-action>.button{flex:1 1;justify-content:center}.planning td select{width:100%;min-width:160px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;background:var(--surface)}.planning td select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.schedule-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:7px 9px;background:var(--surface);font:inherit}.schedule-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.schedule-times{gap:6px}.saved-flag,.schedule-times{display:inline-flex;align-items:center;white-space:nowrap}.saved-flag{color:var(--success);font-size:12.5px;font-weight:700}.status-toggle{display:inline-flex;gap:4px;background:var(--surface-muted);border:1px solid var(--line);border-radius:999px;padding:3px}.status-emoji{border:none;background:none;cursor:pointer;font-size:17px;line-height:1;padding:4px 7px;border-radius:999px;filter:grayscale(1) opacity(.45);transition:filter .12s ease,background .12s ease,transform .05s ease}.status-emoji:hover{filter:grayscale(0) opacity(.85);background:rgba(99,102,241,.08)}.status-emoji.active{filter:none;background:var(--surface);box-shadow:var(--shadow-sm)}.status-emoji:active{transform:scale(.92)}.conflict-banner{background:var(--danger-soft);color:var(--danger);border:1px solid #f6c9d1;border-radius:var(--radius-sm);padding:12px 16px;margin:0 0 18px;font-weight:700}.planning select.needs-value{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger) inset}.planning tr.has-conflict>td{border-bottom:none}.planning tr.conflict-row>td{padding-top:0}.conflict-note{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--danger-soft);color:var(--danger);border:1px solid #f6c9d1;border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;font-weight:600}.conflict-note .button.forcing{margin-left:auto;background:var(--danger);color:#fff;border-color:var(--danger);padding:6px 14px;font-size:12px;white-space:nowrap}.conflict-note .button.forcing:hover{filter:brightness(.94)}.conflict-note.module-conflict{position:relative;display:block;margin:12px 0}.conflict-note.module-conflict p{margin:0 24px 8px 0}.conflict-note.module-conflict ul{margin:0;padding-left:18px;font-weight:500}.conflict-note.module-conflict .modal-close{position:absolute;top:8px;right:10px}.blacklist-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.blacklist-toggle input{width:16px;height:16px;accent-color:var(--danger);cursor:pointer}.row-blacklisted td{background:var(--danger-soft)}.row-blacklisted td:first-child{color:var(--danger);font-weight:700}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;background:var(--brand-soft);color:var(--brand-strong);border:1px solid #dfe1fb;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}.course-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:visible;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease}.course-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.course-row{justify-content:space-between;padding-right:20px}.course-head,.course-row{display:flex;align-items:center;gap:16px}.course-head{flex:1 1 auto;min-width:0;padding:16px 20px;background:none;border:none;border-top-left-radius:var(--radius);text-align:left;cursor:pointer}.course-head:hover{background:var(--surface-muted)}.course-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.course-title strong{font-size:16px}.course-group{background:var(--brand-soft);color:var(--brand-strong);font-weight:800;letter-spacing:.02em}.course-group,.course-year{display:inline-flex;align-items:center;border-radius:8px;padding:4px 10px;font-size:12px}.course-year{background:var(--accent-soft);color:#b4502b;font-weight:700}.course-spec{color:var(--muted);font-size:13px}.edit-row{display:grid;grid-template-columns:1fr 200px;grid-gap:14px;gap:14px}@media (max-width:720px){.edit-row{grid-template-columns:1fr}}.course-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.course-hours{font-weight:700;font-size:13px;color:var(--foreground);border:1px solid var(--line);border-radius:999px;padding:4px 12px}.course-detail,.course-hours{background:var(--surface-muted)}.course-detail{border-top:1px solid var(--line);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);padding:20px;display:grid;grid-gap:16px;gap:16px}.objective-block{border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px;background:var(--surface)}.objective-hours{display:inline-flex;background:linear-gradient(135deg,var(--brand),var(--brand-strong));color:#fff;border-radius:999px;padding:4px 14px;font-weight:700;font-size:13px;margin-bottom:14px}.objective-fields{margin:0;display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));grid-gap:14px;gap:14px}.objective-field dt{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--brand-strong);margin-bottom:4px}.objective-field dd{margin:0;white-space:pre-wrap;color:var(--foreground)}.objective-field dd.missing{color:var(--danger);font-style:italic;font-weight:600}.course-detail-actions{display:flex;justify-content:flex-end;gap:10px}.courses-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.courses-summary .course-hours{font-size:14px;background:linear-gradient(135deg,var(--brand),var(--brand-strong));color:#fff;border-color:transparent}.courses-summary-count{font-size:13px;color:var(--muted,var(--foreground))}.bulk-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.add-toggle{margin-bottom:20px}.course-add{border-color:var(--brand)}.edit-title{display:grid;grid-gap:6px;gap:6px;font-weight:700;font-size:14px}.edit-title input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface)}.edit-checkbox{display:flex;align-items:flex-start;gap:10px;margin:14px 0;font-weight:600;font-size:14px;line-height:1.4;cursor:pointer}.edit-checkbox input{margin-top:2px;flex:0 0 auto}.objective-field-edit{display:grid;grid-gap:6px;gap:6px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--brand-strong)}.objective-field-edit textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);font:inherit;text-transform:none;letter-spacing:normal;color:var(--foreground);font-weight:400}.edit-title input:focus,.objective-field-edit textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.modal-overlay{position:fixed;inset:0;background:rgba(24,23,52,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:var(--surface);border-radius:18px;width:min(560px,100%);max-height:90vh;overflow-y:auto;padding:26px;box-shadow:var(--shadow-lg)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.modal-head h2{margin:0;font-size:20px;font-weight:800}.modal-close{border:none;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--muted)}.modal-close:hover{color:var(--foreground)}.modal-desc{margin:0 0 12px;color:var(--muted)}.modal-columns{margin:0 0 16px;font-size:13px;color:var(--muted);background:var(--surface-muted);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.modal-steps{margin:0 0 16px;padding-left:20px;display:grid;grid-gap:12px;gap:12px}.modal-file{display:grid;grid-gap:6px;gap:6px;font-size:14px}.modal-file span{color:var(--muted);font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.module-info{display:grid;grid-gap:18px;gap:18px}.module-info-block{border-top:1px solid var(--line);padding-top:14px}.module-info-block:first-child{border-top:none;padding-top:0}.module-info-hours{margin:0 0 10px;font-weight:700;color:var(--muted)}.module-info dl{margin:0;display:grid;grid-gap:12px;gap:12px}.module-info dt{font-weight:700;font-size:13px;color:var(--muted)}.module-info dd{margin:4px 0 0;white-space:pre-wrap}.module-dates-promo{font-weight:700}.module-dates{list-style:none;margin:0;padding:0}.module-date{display:grid;grid-template-columns:auto minmax(150px,1fr) auto 1fr;grid-gap:12px;gap:12px;align-items:baseline;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}.module-date-index{font-size:12px;opacity:.75;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.module-date:last-child{border-bottom:none}.module-date-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.module-date-trainer{text-align:right}.module-date.past{color:var(--muted)}.module-date.current{color:var(--success);font-weight:700;background:var(--success-soft);border-radius:6px}.module-date.upcoming{color:var(--success)}@media (max-width:900px){.shell{grid-template-columns:1fr}.app-topbar{display:flex}.sidebar{position:fixed;top:0;left:0;height:100vh;width:264px;padding:18px;z-index:50;transform:translateX(-100%);transition:transform .22s ease}.sidebar.open{transform:translateX(0)}.nav-close{display:inline-grid}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:40;background:rgba(15,14,40,.5)}.nav{grid-template-columns:1fr}.content{padding:20px 16px 40px;overflow-x:auto}.page-header{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:repeat(2,minmax(140px,1fr))}.conflict-panel{grid-template-columns:1fr}.filters,.filters-courses,.filters-livrets,.filters-planning,.filters-trainers,.form-grid,.form-grid.wide,.objective-fields,.trainer-edit{grid-template-columns:1fr;max-width:none}.programming-selectors>label{max-width:none}.filters-action{flex-wrap:wrap}.course-row{flex-direction:column;align-items:flex-start;gap:0;padding-right:0}.course-badges{padding:0 20px 16px}}.emails-config{display:grid;grid-gap:28px;gap:28px}.emails-section{border:1px solid var(--line);border-radius:var(--radius-md,12px);background:var(--surface);padding:20px 22px}.emails-section h2{margin:0 0 14px;font-size:16px}.emails-hint{color:var(--text-muted,#666);font-size:13px;margin:6px 0 12px}.emails-hint code{background:var(--surface-muted,#f1f1f4);padding:1px 6px;border-radius:4px;font-size:12px}.emails-preview{margin-top:16px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:14px 16px;background:var(--surface-muted,#fafafb)}.emails-preview-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#888);margin-bottom:8px}.emails-preview-subject{font-weight:700;margin:0 0 10px}.emails-preview-body{font-size:14px;line-height:1.5}.emails-editor-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 8px}.emails-preview-frame{display:block;width:100%;height:620px;border:0;border-radius:var(--radius-sm);background:#f5f6fb}.emails-msg{font-size:13px;color:var(--text-muted,#555)}.emails-msg.is-error-text{color:var(--danger)}.emails-key-row{max-width:480px}.emails-test{display:flex;flex-direction:column;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.emails-test .edit-title{max-width:360px}.emails-test-cc{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin:0}.emails-test-cc legend{font-size:13px;font-weight:700;padding:0 6px}.emails-radio{display:inline-flex;align-items:center;gap:6px;margin:4px 16px 4px 0;font-size:14px;cursor:pointer}.emails-radio small{color:var(--text-muted,#888)}.emails-radio-empty{color:var(--text-muted,#aaa);font-style:italic;font-size:12px}.emails-test-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.emails-cc-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.emails-cc-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.emails-cc-promo{flex:0 0 140px;font-weight:700;font-size:14px}.emails-cc-promo small{display:block;font-weight:400;color:var(--text-muted,#888)}.emails-cc-row input{flex:1 1 320px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 12px;background:var(--surface)}.emails-log-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.emails-log-head h2{margin:0}.emails-log-table-wrap{overflow-x:auto}.emails-log-table{width:100%;border-collapse:collapse;font-size:13px}.emails-log-table td,.emails-log-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.emails-log-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted,#888)}.emails-status{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600}.emails-status.is-ok{background:#e3f7ea;color:#1c7a3f}.emails-status.is-pending{background:#e6effb;color:#1f5fbf}.emails-status.is-error{background:#fce6e6;color:#b42323}.emails-status.is-neutral{background:#eee;color:#555}.button.button-sm{padding:4px 10px;font-size:12px}.livrets-list{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-gap:10px;gap:10px}.livret-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:12px 16px}.livret-grade-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.livret-grade-toggle input{width:16px;height:16px;accent-color:var(--accent,#2563eb);cursor:pointer}.livret-grade-label{font-size:12px;font-weight:600;color:var(--text-muted,#666)}.livret-main{display:flex;flex-direction:column;gap:2px;min-width:240px;flex:1 1}.livret-module{font-weight:700}.livret-trainers{color:var(--text-muted,#666)}.livret-status{font-size:12px;font-weight:600;width:-moz-fit-content;width:fit-content}.livret-status.is-filled{color:#1c7a3f}.livret-status.is-empty{color:var(--text-muted,#999)}.livret-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.livret-public{min-height:100vh;display:flex;justify-content:center;padding:40px 16px;background:var(--bg);background-image:var(--bg-tint);background-attachment:fixed}.livret-card{width:100%;max-width:680px;height:-moz-fit-content;height:fit-content;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}.livret-banner{background:linear-gradient(135deg,var(--brand) 0,var(--brand-strong) 100%);color:var(--brand-contrast);padding:20px 32px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.livret-module-card{background:var(--brand-soft);padding:24px 32px;border-bottom:1px solid var(--line)}.livret-overline{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-strong)}.livret-module-card h1{margin:0 0 12px;font-size:21px;font-weight:700;line-height:1.3;color:var(--foreground)}.livret-module-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.livret-pill{background:var(--brand-strong);color:var(--brand-contrast);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600}.livret-trainers{font-size:13px;color:var(--muted)}.livret-trainers strong{color:var(--foreground)}.livret-body{padding:6px 32px 24px}.livret-invalid{text-align:center;padding:28px 32px 32px}.livret-invalid h1{font-size:21px;margin:0 0 10px}.livret-foot{background:var(--surface-muted);border-top:1px solid var(--line);padding:14px 32px;font-size:12px;line-height:1.5;color:var(--muted)}.livret-section{padding:18px 0;border-bottom:1px solid var(--line)}.livret-section h2{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-strong);margin:0 0 12px}.livret-list-row{display:flex;gap:8px;margin-bottom:8px}.livret-list-row input{flex:1 1;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 12px;background:var(--surface)}.livret-split{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.livret-split input[type=range]{flex:1 1 240px}.livret-split-values{display:flex;gap:18px;font-size:14px}.livret-toggle{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}.livret-hint{font-size:13px;color:var(--text-muted,#777);margin:-6px 0 10px}.livret-textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);font:inherit;resize:vertical}.livret-actions-bar{display:flex;align-items:center;gap:14px;padding-top:18px;flex-wrap:wrap}.livret-msg{font-size:13px;color:var(--muted)}@media (max-width:640px){.livret-public{padding:16px 10px}.livret-banner,.livret-foot,.livret-module-card{padding-left:20px;padding-right:20px}.livret-body{padding:4px 20px 20px}}.suivi-card{max-width:880px}.suivi-body{padding:20px 32px 24px}.view-toggle.suivi-promos{display:flex;flex-wrap:wrap;justify-content:center;width:-moz-fit-content;width:fit-content;margin-left:auto;margin-right:auto}.suivi-promos button small{font-weight:500;color:inherit;opacity:.75;margin-left:4px}.suivi-count{margin:0 0 12px;font-size:13px;color:var(--muted)}.suivi-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.suivi-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.suivi-item summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 16px;cursor:pointer;list-style:none}.suivi-item summary:before{content:"▸";color:var(--brand-strong);font-size:12px}.suivi-item[open] summary:before{content:"▾"}.suivi-item-title{font-weight:700}.suivi-item-date{font-size:12.5px;color:var(--muted)}.suivi-item summary .livret-status{margin-left:auto}.suivi-item-body{border-top:1px solid var(--line);padding:14px 16px 18px}.suivi-item-body .livret-overline{margin-top:14px}.suivi-line{margin:0;font-size:14px}.suivi-text{white-space:pre-wrap}.suivi-chapters{margin:0;padding-left:20px;font-size:14px;display:grid;grid-gap:3px;gap:3px}@media (max-width:640px){.suivi-body{padding:16px 20px 20px}}.review-link-card{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--brand-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:18px}.review-link-main{display:grid;grid-gap:4px;gap:4px;flex:1 1 340px}.review-link-title{font-weight:700}.review-link-hint{font-size:13px;color:var(--muted)}.review-link-card .livret-status{justify-self:start}.review-link-year{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.review-link-year select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;background:var(--surface)}.star-rating{display:inline-flex;gap:2px}.star-rating .star{background:none;border:none;padding:0 1px;font-size:18px;line-height:1;cursor:pointer;color:var(--line-strong,#cbd5e1);transition:color .1s ease}.star-rating .star.filled{color:#f5a623}.star-rating .star:disabled{cursor:default}.share-msg{font-size:12px;color:var(--text-muted,#555);white-space:nowrap}.fiche-head{background:#1f2937;color:#ffffff;padding:26px 32px 30px}.fiche-overline{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72)}.fiche-head h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.01em}.fiche-rows{margin:0;padding:26px 32px 6px;display:grid;grid-gap:22px;gap:22px}.fiche-row{display:flex;gap:12px;align-items:flex-start}.fiche-icon{width:18px;height:18px;flex:none;margin-top:1px;color:#1f2937}.fiche-row dt{margin:0 0 4px;font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.fiche-row dd{margin:0;font-size:15px;color:var(--foreground)}.fiche-actions{display:flex;gap:12px;flex-wrap:wrap;padding:20px 32px 28px}.nav-icon{width:18px;height:18px;flex-shrink:0;opacity:.75}.nav a.active .nav-icon,.nav a:hover .nav-icon{opacity:1}.help-search{position:relative;display:flex;align-items:center;margin-bottom:14px}.help-search-icon{position:absolute;left:16px;font-size:16px;pointer-events:none;opacity:.7}.help-search-input{width:100%;padding:14px 44px;font-size:15.5px;color:var(--foreground);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease}.help-search-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}.help-search-clear{position:absolute;right:12px;display:grid;place-items:center;width:26px;height:26px;border:none;border-radius:50%;color:var(--muted);background:var(--surface-muted);cursor:pointer;font-size:13px;line-height:1}.help-search-clear:hover{background:var(--line);color:var(--foreground)}.help-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.help-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;font-size:13.5px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:all .15s ease}.help-chip:hover{border-color:var(--line-strong);color:var(--foreground)}.help-chip.is-active{color:var(--brand-contrast);background:var(--brand);border-color:var(--brand);box-shadow:0 6px 16px rgba(79,70,229,.28)}.help-count{margin:0 0 16px;font-size:13px;color:var(--muted)}.help-groups{display:flex;flex-direction:column;gap:28px}.help-group-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:18px;font-weight:700;color:var(--foreground)}.help-group-blurb{margin:0 0 12px;font-size:13.5px;color:var(--muted)}.help-articles{display:flex;flex-direction:column;gap:10px}.help-article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden}.help-article[open]{border-color:var(--brand-soft)}.help-article-question{display:flex;align-items:center;gap:10px;padding:14px 16px;font-size:15px;font-weight:600;color:var(--foreground);cursor:pointer;list-style:none}.help-article-question::-webkit-details-marker{display:none}.help-article-question:before{content:"＋";flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;font-size:15px;font-weight:700;color:var(--brand);background:var(--brand-soft);border-radius:6px;transition:transform .15s ease}.help-article[open] .help-article-question:before{content:"−"}.help-article-question:hover{background:var(--surface-muted)}.help-article-answer{padding:0 16px 16px 48px;color:var(--foreground)}.help-article-answer p{margin:0 0 8px;font-size:14px;line-height:1.6;color:#3a4256}.help-article-answer p:last-child{margin-bottom:0}.help-empty{padding:40px 20px;text-align:center;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}.help-empty p{margin:0 0 6px;color:var(--foreground);font-weight:600}.help-empty-hint{font-weight:400!important;color:var(--muted)!important;font-size:14px}.help-link-button{padding:0;border:none;background:none;color:var(--brand-strong);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}@media (max-width:600px){.help-article-answer{padding-left:16px}}.nav-collapse{display:inline-grid;place-items:center;margin-left:auto;width:32px;height:32px;padding:0;border:0;border-radius:var(--radius-sm);background:rgba(255,255,255,.08);color:#c7c9ef;cursor:pointer;transition:background .15s ease,color .15s ease}.nav-collapse:hover{background:rgba(255,255,255,.18);color:#fff}.shell-reopen{display:none;position:fixed;top:16px;left:16px;z-index:45;width:40px;height:40px;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--foreground);box-shadow:var(--shadow-md);cursor:pointer;transition:background .15s ease,transform .15s ease}.shell-reopen:hover{background:var(--surface-muted);transform:translateY(-1px)}@media (min-width:901px){.shell{transition:grid-template-columns .2s ease}.shell[data-collapsed=true]{grid-template-columns:0 1fr}.sidebar{overflow:hidden;transition:opacity .15s ease,padding .2s ease}.shell[data-collapsed=true] .sidebar{padding-left:0;padding-right:0;opacity:0;pointer-events:none}.shell[data-collapsed=true] .shell-reopen{display:inline-grid}}@media (max-width:900px){.nav-collapse{display:none}.shell-reopen{display:none!important}}.table-scroll{width:100%;overflow-x:auto;overflow-y:hidden;border-radius:var(--radius);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.table-scroll .planning{border-radius:0}.planning-trainers{min-width:820px}.trainer-modal{width:min(680px,100%)}.trainer-details{display:grid;grid-gap:12px;gap:12px;margin:6px 0 20px}.trainer-details>div{display:grid;grid-template-columns:140px 1fr;grid-gap:12px;gap:12px;align-items:center}.trainer-details-comment{align-items:start!important}.trainer-details dt{color:var(--muted);font-size:13px;font-weight:600}.trainer-details dd{margin:0;color:var(--foreground)}.trainer-modal-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:4px}.trainer-edit-modal{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:560px){.trainer-details>div{gap:4px}.trainer-details>div,.trainer-edit-modal{grid-template-columns:1fr}}.planning-trainers td,.planning-trainers th{padding:10px 12px;vertical-align:middle}.planning-trainers th{white-space:nowrap}.planning-trainers tbody tr:nth-child(2n):not(.row-editing):not(.row-blacklisted) td{background:#fbfcff}.planning-trainers tbody tr:hover td{background:var(--brand-soft)}.planning-trainers td .email-copy,.planning-trainers td .status{white-space:nowrap}.planning-trainers .row-actions{flex-wrap:wrap;gap:6px}.view-toggle{display:inline-flex;gap:0;margin-bottom:16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}.view-toggle button{border:none;background:transparent;padding:9px 22px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}.view-toggle button+button{border-left:1px solid var(--line)}.view-toggle button:hover{color:var(--brand-strong)}.view-toggle button.active{background:var(--brand-soft);color:var(--brand-strong)}.calendar-grid.is-loading,.planning tbody.is-loading{opacity:.45;transition:opacity .15s ease}.pagination{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:14px;font-size:14px}.pagination-count{color:var(--muted)}.pagination-size{display:inline-flex;align-items:center;gap:8px;font-weight:600}.pagination-size select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:6px 10px;background:var(--surface)}.pagination-nav{display:inline-flex;align-items:center;gap:12px;margin-left:auto}.pagination-nav button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:7px 14px;font-size:13.5px;font-weight:600;cursor:pointer}.pagination-nav button:hover:not(:disabled){background:var(--brand-soft);color:var(--brand-strong)}.pagination-nav button:disabled{opacity:.45;cursor:default}.calendar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.calendar-title{font-size:18px;font-weight:700;text-transform:capitalize;margin:0}.calendar-nav{display:inline-flex;gap:8px}.calendar-nav button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:6px 12px;font-size:14px;font-weight:600;cursor:pointer}.calendar-nav button:hover{background:var(--brand-soft);color:var(--brand-strong)}.calendar-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.calendar-weekday{background:var(--surface-muted);padding:8px 10px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center}.calendar-day{background:var(--surface);min-height:108px;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0}.calendar-day.out{background:var(--surface-muted)}.calendar-day.out .calendar-day-number{opacity:.4}.calendar-day-number{font-size:12.5px;font-weight:700;color:var(--muted);align-self:flex-end;padding:1px 6px;border-radius:999px}.calendar-day.today .calendar-day-number{background:var(--brand-strong);color:#fff}.calendar-event{display:block;font-size:11.5px;line-height:1.3;padding:3px 7px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.calendar-event strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button.calendar-event{border:none;width:100%;font-family:inherit;text-align:left;cursor:pointer;transition:filter .15s ease}button.calendar-event:focus-visible,button.calendar-event:hover{filter:brightness(.93)}.calendar-event.green{background:var(--success-soft);color:var(--success)}.calendar-event.orange{background:var(--warning-soft);color:var(--warning)}.calendar-event.red{background:var(--danger-soft);color:var(--danger)}.calendar-more{border:none;background:none;font-family:inherit;font-size:11px;font-weight:600;color:var(--muted);padding:0 7px;text-align:left;cursor:pointer}.calendar-more:focus-visible,.calendar-more:hover{color:var(--brand-strong)}@media (max-width:900px){.calendar-day{min-height:76px}.calendar-event{font-size:10.5px}}