:root{--bg:#f4f7f8;--card:#fff;--ink:#24323c;--muted:#687782;--line:#dbe2e6;--primary:#176b87;--primary2:#0f566f;--soft:#eef4f6;--radius:14px;--shadow:0 5px 20px rgba(28,48,61,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.45}.topbar{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px 20px;position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--primary);color:#fff}.main-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.main-nav a{text-decoration:none;color:#40515c;padding:8px 10px;border-radius:8px}.main-nav a:hover,.main-nav a.active{background:#eef4f6;color:#234651}.main-nav .logout{color:#7a5960}.nav-user{font-size:12px;color:var(--muted);padding:0 6px}.container{max-width:1500px;margin:0 auto;padding:22px}h1{font-size:30px;margin:0 0 8px}h2{font-size:20px}h3{font-size:16px}.lead{color:var(--muted);margin-top:0}.muted{color:var(--muted)}.block{display:block}.contextbar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 14px;margin-bottom:20px;box-shadow:var(--shadow)}.contextbar form{display:flex;gap:14px;flex-wrap:wrap}.contextbar label{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}select,input,textarea{font:inherit;border:1px solid #cbd5db;border-radius:9px;background:#fff;padding:9px 10px;color:var(--ink);width:100%}textarea{resize:vertical}.contextbar select{width:auto;padding:6px 28px 6px 8px}.context-static{display:inline-block;background:#eef4f6;color:#2f4b56;border-radius:8px;padding:6px 9px}.heading-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.export-actions{display:flex;gap:8px}.btn{display:inline-block;border:0;border-radius:9px;padding:9px 13px;text-decoration:none;cursor:pointer;font:inherit;font-weight:700}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary2)}.btn.subtle{background:#edf3f5;color:#36525e}.btn.quiet{background:#fff;border:1px solid var(--line);color:#52646e}.text-link{color:var(--primary);text-decoration:none;font-weight:700}.icon-link{color:var(--primary);text-decoration:none;font-size:13px;font-weight:700}.panel,.card,.period-action,.hero{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:18px;margin:20px 0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;margin:18px 0}.card{padding:18px}.highlight-card{border-top:5px solid var(--primary)}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.flash{padding:12px 14px;border-radius:10px;margin-bottom:15px}.flash-success{background:#e8f6ea;border:1px solid #9ed1a5}.flash-error{background:#fdeaea;border:1px solid #e4a3a3}.notice{padding:14px 16px;background:#fff7d6;border:1px solid #ead47f;border-radius:12px;margin:18px 0}
/* Dashboard */
.objective-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.objective-summary{display:grid;gap:8px;background:#fff;border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:14px;padding:16px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow)}.objective-summary:hover{transform:translateY(-1px)}.objective-summary>strong{font-size:18px}.summary-number{font-size:24px;font-weight:800}.progress{height:7px;background:#e7ecef;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent)}.objective-summary small{color:var(--muted)}.annual-matrix{display:grid;gap:0}.matrix-objective{border-left:7px solid var(--accent);padding:10px 12px;background:#f7f9fa;margin-top:18px;border-radius:8px}.matrix-strategy{font-weight:700;color:#53656f;padding:10px 12px 5px}.matrix-row{display:grid;grid-template-columns:minmax(360px,1fr) 330px;gap:14px;align-items:center;border-top:1px solid var(--line);padding:9px 10px}.matrix-action{display:flex;gap:10px;align-items:flex-start}.matrix-action strong{min-width:75px}.matrix-action span{color:#596a74}.matrix-periods{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.period-dot{display:grid;place-items:center;min-height:35px;border-radius:9px;text-decoration:none;font-size:12px;font-weight:700;border:1px solid var(--line)}.period-dot.empty{background:#f5f7f8;color:#89959c}.period-dot.covered{background:#dff1e3;color:#315d3a}.period-dot.status-blocked{background:#fff0cf;color:#7b5b1a}.period-dot.status-not_done{background:#f8dddd;color:#7a3a3a}.period-dot.status-in_progress{background:#dceef5;color:#245a6c}.multi-section{margin-top:22px}.multi-section h3{display:inline-block;margin:0 0 8px;background:var(--soft);padding:6px 10px;border-radius:8px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{border-bottom:1px solid var(--line);padding:9px;text-align:left;vertical-align:top}th{font-size:12px;color:#52626d;background:#f5f7f8}.heat{display:inline-block;padding:5px 8px;border-radius:8px;font-weight:700;min-width:42px;text-align:center}.heat-0{background:#f1f3f4;color:#77848c}.heat-1{background:#fff0d6}.heat-2{background:#ffe3ad}.heat-3{background:#d8eedb}.heat-4,.heat-5{background:#b6dfbc}
/* Period workspace */
.objective-tabs{display:flex;gap:7px;flex-wrap:wrap;position:sticky;top:57px;z-index:18;background:rgba(244,247,248,.96);padding:7px 0 10px;margin-bottom:6px}.objective-tabs button,.filter-chips button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 11px;cursor:pointer;color:#4f616b;font-weight:700}.objective-tabs button.active,.filter-chips button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.objective-title{border-left:7px solid var(--accent);padding-left:12px;margin:26px 0 10px}.strategy-heading{display:flex;gap:10px;align-items:flex-start;background:#eaf0f3;border-radius:9px;padding:10px 12px;margin:15px 0 8px}.strategy-heading strong{white-space:nowrap}.period-action{margin:9px 0;padding:14px;scroll-margin-top:120px}.period-action:target{outline:3px solid rgba(23,107,135,.22)}.action-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.action-head h3{font-size:15px;font-weight:600;margin:3px 0 0;max-width:1050px}.action-code{font-weight:800;color:var(--primary);text-decoration:none}.status-select{width:145px;flex:0 0 145px;padding:7px 8px}.suggestion-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0}.suggestion-label{font-size:12px;color:var(--muted);font-weight:700}.activity-pill,.action-tags span{display:inline-block;background:#edf3f5;color:#36525e;border-radius:99px;padding:4px 8px;font-size:11px;font-weight:700}.action-tags span.neutral{background:#f1f2f3;color:#69777f}.main-entry{display:block;font-size:12px;color:var(--muted);font-weight:700}.main-entry textarea{margin-top:5px;background:#fcfdfd}.secondary-fields{margin-top:10px;border-top:1px dashed var(--line);padding-top:7px}.secondary-fields summary,.activity-details summary{cursor:pointer;color:#54707c;font-size:12px;font-weight:700}.secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}.secondary-grid label{font-size:12px;color:var(--muted);font-weight:700}.secondary-grid textarea{margin-top:5px}.sticky-save{position:sticky;bottom:12px;z-index:15;display:flex;justify-content:flex-end;padding:10px;pointer-events:none}.sticky-save .btn{pointer-events:auto;box-shadow:0 6px 20px rgba(0,0,0,.16)}.routine-list{display:grid;gap:7px;margin:12px 0}.routine-row{display:grid;grid-template-columns:minmax(260px,1fr) 150px 2fr;gap:9px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fbfcfc}.routine-title{display:flex;flex-direction:column}.routine-title span{font-size:12px;color:var(--muted)}
/* Library */
.library-tools{display:flex;gap:12px;align-items:center;margin:16px 0}.library-tools>input{max-width:420px}.filter-chips{display:flex;gap:6px;flex-wrap:wrap}.activity-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:14px}.activity-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:9px}.activity-card[hidden]{display:none}.activity-card header{display:flex;justify-content:space-between;gap:12px}.activity-card h2{font-size:18px;margin:3px 0}.action-tags{display:flex;gap:5px;flex-wrap:wrap}.activity-description{margin:0;color:#4e6069}.activity-section{background:#f5f8f9;border-radius:10px;padding:10px 12px}.activity-section p{margin:4px 0 0}.activity-details{border-top:1px dashed var(--line);padding-top:8px}.activity-details p{margin:8px 0}.evidence{background:#f8fafb;border-radius:8px;padding:8px}.planning-toggle{margin-top:auto;padding-top:7px}.btn.quiet{font-weight:600}.activity-form .form-grid{padding:0}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px;margin:10px 0 18px}.check{display:flex;gap:8px;background:#f7f9fa;border:1px solid var(--line);border-radius:9px;padding:10px;font-weight:400!important}.check input{width:auto}
/* History/admin/forms */
.hero{border-left:8px solid var(--accent);padding:20px}.back{display:inline-block;margin-bottom:13px;text-decoration:none;color:var(--primary)}.timeline{border-left:3px solid #d9e1e5;margin-left:8px;padding-left:20px}.timeline article{background:#f9fbfb;border:1px solid var(--line);border-radius:10px;padding:14px;margin:14px 0}.timeline-meta{display:flex;justify-content:space-between;gap:10px}.reflection{background:#eef5f7;padding:9px;border-radius:8px}.badge{display:inline-block;padding:4px 8px;border-radius:99px;background:#eef1f3;font-size:12px}.status-done{background:#dff1e3}.status-blocked{background:#fff0cf}.status-not_done{background:#f8dddd}.status-planned{background:#e9edf0}.status-in_progress{background:#dceef5}.form-grid{display:grid;grid-template-columns:2fr 3fr 2fr 150px;gap:12px;padding:14px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid label{font-size:12px;color:var(--muted);font-weight:700}.form-grid label>*{margin-top:5px}.span2{grid-column:1/-1}.legacy-card{margin:16px 0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.legacy-card>header{display:flex;justify-content:space-between;padding:12px 15px;background:#f6f8f9;border-bottom:1px solid var(--line)}.legacy-columns{display:grid;grid-template-columns:1fr 1fr}.legacy-columns>div,.legacy-columns>form{padding:15px}.legacy-columns>div{border-right:1px solid var(--line);background:#fbfcfc}.auth-card{max-width:440px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;margin:8vh auto}.auth-card.wide{max-width:560px}.auth-card label{display:block;margin:13px 0;font-weight:700;font-size:13px}
@media(max-width:1000px){.objective-summary-grid{grid-template-columns:1fr}.matrix-row{grid-template-columns:1fr}.matrix-periods{max-width:420px}.routine-row{grid-template-columns:1fr}.secondary-grid{grid-template-columns:1fr}.activity-library{grid-template-columns:1fr}.library-tools{align-items:stretch;flex-direction:column}.topbar{align-items:flex-start;gap:8px;flex-direction:column}.objective-tabs{top:94px}}
@media(max-width:650px){.container{padding:14px}.heading-row{flex-direction:column}.main-nav{gap:1px}.main-nav a{padding:6px 7px;font-size:13px}.matrix-action{flex-direction:column;gap:2px}.matrix-periods{grid-template-columns:repeat(5,1fr)}.period-dot{min-height:32px}.action-head{flex-direction:column}.status-select{width:100%;flex:auto}.form-grid.two{grid-template-columns:1fr}.span2{grid-column:auto}}
/* v0.4 – saisie rapide par activités liées */
.quick-help{background:#eef7fa;border:1px solid #c8e2ea;border-left:5px solid var(--primary);border-radius:12px;padding:11px 14px;margin:12px 0 16px;color:#405761}.period-action.has-content{border-color:#cbdde4}.activity-picker{margin:12px 0}.picker-label{display:flex;gap:8px;align-items:baseline;margin-bottom:7px}.picker-label span{font-size:12px;color:var(--muted)}.activity-choice-list{display:flex;gap:7px;flex-wrap:wrap}.activity-choice{position:relative;display:flex;align-items:center;gap:8px;max-width:430px;border:1px solid var(--line);background:#f8fafb;border-radius:11px;padding:8px 10px;cursor:pointer;transition:.15s ease}.activity-choice:hover{border-color:#a9c8d3;background:#f2f8fa}.activity-choice.selected{border-color:#67a6b9;background:#e9f5f8;box-shadow:inset 0 0 0 1px #67a6b9}.activity-choice input{width:auto;margin:0;accent-color:var(--primary)}.choice-main{display:flex;flex-direction:column;line-height:1.25}.choice-main strong{font-size:13px}.choice-main small{font-size:11px;color:var(--muted);margin-top:2px}.choice-badge{font-size:10px;text-transform:uppercase;letter-spacing:.04em;background:#d9edf3;color:#2f6576;padding:3px 5px;border-radius:99px;white-space:nowrap}.main-entry small{font-weight:400;color:#8b979d}.period-heading{align-items:center}
.focus-panel{border-top:4px solid var(--primary)}.todo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:9px;margin-top:12px}.todo-card{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:var(--ink);background:#f8fafb;border:1px solid var(--line);border-radius:11px;padding:10px 12px}.todo-card:hover{background:#eef6f8;border-color:#b6d4dd}.todo-card>div{display:flex;gap:8px;align-items:flex-start}.todo-card strong{color:var(--primary);min-width:73px}.todo-card span{font-size:13px}.todo-card small{color:var(--muted);padding-left:81px}.small-note{font-size:12px}
/* v0.5 – synchronisation globale des activités et validation par période */
.sync-note{background:#eef7fa;border:1px solid #c9e3eb;border-left:5px solid var(--primary);border-radius:10px;padding:10px 12px;margin:0 0 14px;color:#3f5c67;font-size:13px}
.period-validation{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;margin:2px 0 3px}.period-validation-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}.period-validation-head>div{display:flex;flex-direction:column}.period-validation-head small{color:var(--muted);font-weight:400;margin-top:2px}.period-checks{display:flex;gap:7px;flex-wrap:wrap}.period-check{display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:#f7f9fa;border-radius:9px;padding:6px 9px;cursor:pointer;font-size:12px;font-weight:800;color:#596a74}.period-check input{width:auto;margin:0;accent-color:var(--primary)}.period-check.selected{background:#dff1e3;border-color:#9ac9a4;color:#315d3a}.autosave-state{font-size:11px;font-weight:700;min-height:17px}.autosave-state.saving{color:#6d7b84}.autosave-state.saved{color:#397047}.autosave-state.error{color:#9a3f3f}
.utility-nav{display:flex;gap:3px;margin-left:3px;padding-left:6px;border-left:1px solid var(--line)}.utility-nav a{font-size:13px}
@media(max-width:1000px){.utility-nav{margin-left:0;padding-left:0;border-left:0}}
/* v0.6 – création/modification d'activités et échange IA */
.activity-edit-heading{margin-bottom:12px}.ai-panel{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:20px;padding:18px;margin-bottom:16px;background:linear-gradient(135deg,#f3f9fb 0%,#fff 70%);border-color:#c7dde5}.ai-panel h2{margin:3px 0 7px}.ai-panel p{margin:0 0 12px;color:var(--muted);max-width:760px}.ai-panel-copy .eyebrow{color:var(--primary);font-weight:800}.button-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ai-import-form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px;display:flex;flex-direction:column;gap:8px}.ai-import-form label{font-size:12px;font-weight:800;color:var(--ink)}.ai-import-form input[type=file]{display:block;width:100%;margin-top:7px;border:1px dashed #b8c9cf;background:#f8fafb;padding:9px;border-radius:9px}.ai-import-form small{color:var(--muted);line-height:1.4}.activity-form{display:flex;flex-direction:column;gap:14px}.activity-edit-section{overflow:hidden}.section-heading{padding:14px 16px 4px}.section-heading>div{display:flex;gap:11px;align-items:flex-start}.section-heading h2{margin:0 0 2px}.section-heading p{margin:0;color:var(--muted);font-size:13px}.step-badge{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--primary);color:#fff;font-size:13px;font-weight:900;flex:0 0 auto}.activity-action-grid .check span{display:flex;flex-direction:column;gap:2px}.activity-action-grid .check small{color:var(--muted);font-weight:400;font-size:11px}.sticky-save-bar{position:sticky;bottom:10px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid #cfdde2;border-radius:13px;box-shadow:0 8px 30px rgba(29,50,59,.14);padding:12px 14px}.sticky-save-bar>div{display:flex;flex-direction:column}.sticky-save-bar small{color:var(--muted);font-weight:400;margin-top:2px}.activity-card-actions{display:flex;gap:10px;align-items:center}.activity-card-actions .icon-link:first-child{color:#4c7c8c}.activity-card-actions .icon-link:hover{text-decoration:underline}
@media(max-width:850px){.ai-panel{grid-template-columns:1fr}.sticky-save-bar{bottom:5px;align-items:stretch;flex-direction:column}.sticky-save-bar .btn{width:100%}}
/* v0.8 – contrats successifs et éditeur institutionnel */
.framework-objective{border:1px solid var(--line);border-left-width:6px;border-radius:12px;margin:14px 0;padding:10px;background:#fff}.framework-strategy{margin:10px 0 10px 20px;border-left:3px solid #d7e1e5;padding-left:10px}.framework-action{background:#f8fafb;border-radius:9px;margin:7px 0}.framework-add{display:grid;grid-template-columns:150px minmax(260px,1fr) 90px auto;gap:8px;align-items:center;margin:8px 0;padding:8px;border:1px dashed var(--line);border-radius:9px;background:#fbfcfc}.objective-add{grid-template-columns:110px minmax(300px,1fr) 70px 80px auto}.framework-add input{margin:0}.admin-cards .highlight-card+.card{min-height:0}
@media(max-width:850px){.framework-add,.objective-add{grid-template-columns:1fr}.framework-strategy{margin-left:6px}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}}
.year-add{grid-template-columns:150px minmax(260px,1fr) auto}.framework-objective h3{margin:4px 0 10px}.framework-strategy h4{margin:7px 0}.framework-strategy ul{margin:6px 0 10px;padding-left:22px}
@media(max-width:850px){.year-add{grid-template-columns:1fr}}

/* v0.9 – refonte ergonomique, contrastes et navigation structurée */
:root{
  --bg:#f1f5f7;
  --card:#ffffff;
  --ink:#172630;
  --muted:#5b6b75;
  --line:#cdd8de;
  --line-strong:#aebdc5;
  --primary:#0b6078;
  --primary2:#084b5f;
  --primary-soft:#e5f2f6;
  --nav:#173743;
  --nav-2:#102c36;
  --success:#267348;
  --success-soft:#e4f3e9;
  --warning:#9a5a08;
  --warning-soft:#fff1d6;
  --danger:#9d3746;
  --danger-soft:#fbe7ea;
  --soft:#edf3f5;
  --radius:14px;
  --shadow:0 8px 28px rgba(22,45,57,.08);
  --shadow-strong:0 14px 36px rgba(15,39,50,.16)
}
body{background:var(--bg);color:var(--ink);font-size:15px}
a,button,input,select,textarea,summary{outline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #65b7d0}

/* En-tête : 3 entrées principales, outils regroupés */
.topbar{background:linear-gradient(90deg,var(--nav-2),var(--nav));border-bottom:0;padding:0;box-shadow:0 3px 14px rgba(10,35,44,.22)}
.topbar-shell{width:100%;max-width:1540px;margin:0 auto;padding:8px 18px;display:flex;align-items:center;gap:22px;min-height:62px}
.brand{color:#fff;min-width:max-content;gap:11px}
.brand:hover{color:#fff}
.brand-mark{width:38px;height:38px;border-radius:11px;background:#fff;color:var(--nav);box-shadow:0 2px 10px rgba(0,0,0,.14);font-size:13px;font-weight:900;letter-spacing:.04em}
.brand-copy{display:flex;flex-direction:column;line-height:1.13}
.brand-copy strong{font-size:14px;letter-spacing:.01em}
.brand-copy small{font-size:11px;color:#bed0d7;font-weight:500;margin-top:3px}
.primary-nav{display:flex;align-items:center;gap:4px;margin-right:auto}
.primary-nav a{color:#d8e5ea;text-decoration:none;font-weight:700;padding:10px 13px;border-radius:9px;white-space:nowrap}
.primary-nav a:hover{background:rgba(255,255,255,.10);color:#fff}
.primary-nav a.active{background:#fff;color:var(--nav);box-shadow:0 3px 12px rgba(0,0,0,.12)}
.topbar-tools{display:flex;align-items:center;gap:7px;margin-left:auto}
.nav-menu{position:relative}
.nav-menu>summary{list-style:none}
.nav-menu>summary::-webkit-details-marker{display:none}
.nav-menu-trigger,.user-trigger{display:flex;align-items:center;gap:7px;min-height:40px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#e6f0f3;border-radius:9px;padding:8px 10px;cursor:pointer;font:inherit;font-size:13px;font-weight:700}
.nav-menu-trigger:hover,.user-trigger:hover,.nav-menu[open]>.nav-menu-trigger,.nav-menu[open]>.user-trigger{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}
.nav-menu-trigger.active{background:#dceef3;color:#173743;border-color:#dceef3}
.nav-dropdown{position:absolute;top:calc(100% + 9px);left:0;z-index:80;min-width:270px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-strong);padding:7px}
.nav-dropdown-right{left:auto;right:0}
.nav-dropdown-wide{min-width:320px}
.nav-dropdown:before{content:"";position:absolute;top:-6px;left:18px;width:11px;height:11px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.nav-dropdown-right:before{left:auto;right:18px}
.nav-dropdown a{position:relative;display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);border-radius:9px;padding:10px 11px}
.nav-dropdown a:hover{background:var(--primary-soft)}
.nav-dropdown a>span:last-child{display:flex;flex-direction:column;min-width:0}
.nav-dropdown a strong{font-size:13px}
.nav-dropdown a small{font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}
.nav-item-mark{display:grid!important;place-items:center;width:29px;height:29px;min-width:29px;border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:900}
.nav-meta{display:flex;flex-direction:column;gap:2px;padding:9px 11px 10px;border-bottom:1px solid var(--line);margin-bottom:5px}
.nav-meta span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.nav-meta strong{font-size:12px}
.logout-item{color:var(--danger)!important}
.user-trigger{padding:6px 9px}
.user-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#d9edf3;color:var(--nav);font-size:12px;font-weight:900}
.user-name{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.container{max-width:1500px;padding:24px 24px 40px}
h1{font-size:31px;line-height:1.15;letter-spacing:-.02em}
h2{font-size:20px;line-height:1.25}
h3{line-height:1.3}.lead{font-size:15px;color:#60727d;max-width:920px}

/* Contexte : compact, stable et plus lisible */
.contextbar{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:12px;padding:10px 12px;margin-bottom:24px;box-shadow:0 3px 12px rgba(25,49,62,.05)}
.contextbar-title{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--primary);white-space:nowrap}
.contextbar form{display:flex;align-items:center;gap:10px;flex:1}
.contextbar label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:#73838c}
.contextbar label>span{line-height:1}
.contextbar select{min-height:34px;width:auto;padding:5px 30px 5px 9px;border-color:#b9c7ce;background:#f9fbfc;color:#20343f;font-size:13px;font-weight:700}
.context-static{display:inline-flex;align-items:center;min-height:34px;background:#f0f5f7;border:1px solid #d7e1e5;color:#29434e;border-radius:8px;padding:5px 9px;font-size:13px;text-transform:none;letter-spacing:0;white-space:nowrap}
.context-contract{margin-left:auto}

/* Hiérarchie et actions de page */
.heading-row{align-items:center;margin-bottom:16px}.heading-row>div:first-child{min-width:0}.heading-row h1{margin-bottom:7px}.export-actions,.button-row{gap:8px}
.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;padding:9px 14px;border:1px solid transparent;transition:.14s ease;box-shadow:none}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(11,96,120,.20)}
.btn.primary:hover{background:var(--primary2);border-color:var(--primary2)}
.btn.subtle{background:var(--primary-soft);border-color:#bad7e0;color:#174f61}
.btn.subtle:hover{background:#d5eaf0;border-color:#92c2d0}
.btn.quiet{background:#fff;border-color:var(--line-strong);color:#40545e}
.btn.quiet:hover{background:#f5f8f9;border-color:#8fa4ae;color:#203942}
.btn.danger{background:var(--danger-soft);border-color:#e6aab3;color:#812c39}
.btn.small{min-height:34px;padding:6px 10px;font-size:12px}
.text-link,.icon-link{color:#075d76;text-decoration:none;font-weight:800}.text-link:hover,.icon-link:hover{text-decoration:underline}

.panel,.card,.period-action,.hero,.activity-card{border-color:#cbd7dd;box-shadow:0 5px 20px rgba(28,48,61,.065)}
.panel{padding:20px;margin:20px 0}.card{padding:19px}.panel-heading h2,.card h2{margin-top:0}.panel-heading p{margin-bottom:0}
.highlight-card{border-top:0;border-left:5px solid var(--primary)}
.eyebrow{color:#5d6d76;font-size:11px;font-weight:900}
.flash{border-left-width:5px;border-left-style:solid;padding:13px 15px}.flash-success{background:var(--success-soft);border-color:#8bc5a0;color:#23583a}.flash-error{background:var(--danger-soft);border-color:#e0a3ad;color:#71323c}
.notice{background:var(--warning-soft);border-color:#e7c377;color:#6f4a0d}

/* Tableau de bord : priorité à l'action */
.dashboard-heading .export-actions{display:flex}
.objective-summary{border:1px solid #c7d4da;border-top:0;border-left:6px solid var(--accent);padding:17px 18px;transition:.15s ease}
.objective-summary:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(28,48,61,.11);border-color:#aabdc6}
.objective-summary>strong{font-size:17px}.summary-number{font-size:27px;color:#223640}.progress{height:8px}
.focus-panel{border-top:0;border-left:6px solid #b66a0d;background:#fffdf8}.focus-panel .panel-heading h2{color:#6e430d}
.todo-card{background:#fff;border-color:#d2dde2;padding:12px 13px}.todo-card:hover{background:#f1f8fa;border-color:#87b7c6;box-shadow:0 5px 16px rgba(28,48,61,.07)}
.todo-card strong{background:var(--primary-soft);border-radius:6px;padding:3px 5px;min-width:auto;color:#155368}
.matrix-objective{border-left-width:6px;background:#edf2f4;padding:11px 13px;margin-top:21px}.matrix-strategy{color:#344d58;padding-top:12px}.matrix-row{background:#fff;padding:10px 11px;border-top:1px solid #d7e0e4}.matrix-row:hover{background:#fbfdfd}.matrix-action strong{color:#183d4c}.period-dot{border-color:#c7d3d8}.period-dot.empty{background:#f5f7f8;color:#718088}.period-dot.covered{background:#dcefe3;color:#255d39;border-color:#a8cfb5}.period-dot:hover{box-shadow:inset 0 0 0 2px rgba(11,96,120,.18)}
.heat{border:1px solid rgba(40,70,80,.08)}

/* Suivi : repères visuels plus nets */
.quick-help,.sync-note{background:#eaf5f8;border-color:#b9dce6;border-left-color:var(--primary);color:#314f5b}
.objective-tabs{top:62px;padding:10px 0;background:rgba(241,245,247,.96);backdrop-filter:blur(6px)}
.objective-tabs button,.filter-chips button{min-height:35px;border-color:#bccbd2;background:#fff;color:#38505b}
.objective-tabs button:hover,.filter-chips button:hover{border-color:#72a9ba;background:#eef7f9}
.objective-tabs button.active,.filter-chips button.active{box-shadow:0 3px 10px rgba(11,96,120,.16)}
.objective-title{background:#fff;border:1px solid #d2dde2;border-left:7px solid var(--accent);border-radius:10px;padding:11px 13px;margin-top:28px}
.strategy-heading{background:#dfe8ec;border:1px solid #cbd8de;color:#29434e;padding:10px 12px}.strategy-heading strong{background:#fff;border:1px solid #c7d4da;border-radius:6px;padding:2px 6px;color:#1a5063}
.period-action{border-left:4px solid #d4dfe3;padding:15px 16px;margin:10px 0}.period-action.has-content{border-left-color:#4b9a67;border-color:#bcd5c5}.period-action:hover{border-color:#aebfc7;box-shadow:0 8px 22px rgba(28,48,61,.08)}
.action-code{display:inline-flex;background:var(--primary-soft);border-radius:6px;padding:3px 6px;color:#15556b}.action-head h3{font-size:15px;color:#243b46;margin-top:6px}
.status-select{border-width:2px;font-weight:700}.activity-choice{border-color:#c9d5db;background:#fbfcfd}.activity-choice:hover{border-color:#73adbe;background:#f1f8fa}.activity-choice.selected{border-color:#4f9bb1;background:#e4f2f6;box-shadow:inset 0 0 0 1px #4f9bb1}.choice-badge{background:#cfe8ef;color:#205b6d}
.main-entry span{color:#425862}.main-entry textarea,.secondary-grid textarea{background:#fff;border-color:#becbd2}.secondary-fields{border-top-color:#cbd7dd}.secondary-fields summary{padding:4px 0;color:#245f72}.sticky-save{bottom:16px}.sticky-save .btn{min-height:46px;padding:11px 18px;box-shadow:0 8px 24px rgba(11,96,120,.28)}
.routines-panel{border-left:5px solid #657a84}.routine-row{background:#fff;border-color:#cdd8de}

/* Bibliothèque : actions hiérarchisées */
.library-tools{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:15px 0 18px;box-shadow:0 3px 12px rgba(25,49,62,.04)}
.library-tools>input{min-height:39px;border-color:#b9c8cf;background:#f9fbfc}
.activity-library{gap:16px}.activity-card{border-top:4px solid #b5c6ce;padding:17px 18px;transition:.15s ease}.activity-card:hover{border-color:#9eb6c0;box-shadow:0 10px 26px rgba(28,48,61,.10)}
.activity-card header{align-items:flex-start}.activity-card h2{font-size:19px;line-height:1.25;color:#173541}
.activity-card-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.activity-card-actions .btn{white-space:nowrap}
.activity-section{background:#eef5f7;border:1px solid #dce8ec}.evidence{background:#f2f7f4;border-left:4px solid #69a67d}.period-validation{border-color:#d4dee3;background:#fbfcfd;border-radius:10px;padding:10px 11px}.period-check{border-color:#bfcdd3;background:#fff}.period-check.selected{background:#dff1e5;border-color:#87bd99;color:#245c39}.planning-toggle{border-top:1px solid #dde5e9;padding-top:11px}
.action-menu{position:relative}.action-menu>summary{list-style:none}.action-menu>summary::-webkit-details-marker{display:none}.action-menu-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:25;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-strong);padding:6px}.action-menu-popover a{display:block;padding:8px 9px;border-radius:7px;color:#29434e;text-decoration:none;font-size:12px;font-weight:700}.action-menu-popover a:hover{background:var(--primary-soft);color:#174f61}

/* Formulaires : sections lisibles et zones actives */
.ai-panel{border-left:5px solid #4e94aa;background:linear-gradient(135deg,#eaf6f9 0%,#fff 72%)}
.ai-import-form{border-color:#bdcdd4}.activity-edit-section{border-top:4px solid #d2dde2}.section-heading{background:#f8fafb;padding:14px 16px 11px;border-bottom:1px solid #e0e7ea}.step-badge{box-shadow:0 3px 8px rgba(11,96,120,.18)}
.check{background:#fff;border-color:#cbd7dd}.check:hover{background:#f4f9fa;border-color:#8ab6c3}.check:has(input:checked){background:#eaf5f8;border-color:#62a3b5}.check input{accent-color:var(--primary)}
.sticky-save-bar{border-color:#9fb9c4;box-shadow:0 10px 32px rgba(18,45,56,.18)}

/* Administration : distinguer gestion courante et maintenance */
.admin-section{margin:24px 0}.admin-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}.admin-section-heading h2{margin:0}.admin-section-heading p{margin:3px 0 0;color:var(--muted)}
.admin-card-primary{border-left:5px solid var(--primary)}.admin-card-maintenance{border-left:5px solid #9c7a38}.admin-card-muted{background:#fafcfc}
.admin-card-label{display:inline-flex;padding:4px 7px;border-radius:6px;background:#edf3f5;color:#52656f;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px}

/* Petits écrans */
@media(max-width:1150px){
  .topbar-shell{flex-wrap:wrap;gap:8px 14px}.primary-nav{order:3;width:100%;overflow:auto;padding-bottom:2px}.topbar-tools{margin-left:auto}.context-contract{margin-left:0}
}
@media(max-width:850px){
  .topbar-shell{padding:8px 12px}.brand-copy small{display:none}.primary-nav a{padding:9px 10px;font-size:13px}.user-name{display:none}.nav-menu-trigger{font-size:12px;padding:7px 8px}.nav-dropdown{position:fixed;left:12px!important;right:12px!important;top:66px;min-width:0}.nav-dropdown:before{display:none}.container{padding:16px 14px 32px}.contextbar{align-items:flex-start;flex-direction:column;gap:8px}.contextbar form{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.contextbar label,.contextbar select,.context-static{width:100%}.heading-row{align-items:stretch}.heading-row .button-row,.heading-row .export-actions{width:100%}.heading-row .button-row .btn,.heading-row .export-actions .btn{flex:1}.activity-card header{flex-direction:column}.activity-card-actions{justify-content:flex-start}.objective-tabs{top:100px}
}
@media(max-width:560px){
  .primary-nav{gap:2px}.primary-nav a{flex:1;text-align:center}.topbar-tools{width:100%;justify-content:flex-end}.contextbar form{grid-template-columns:1fr}.objective-summary-grid{grid-template-columns:1fr}.activity-card-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.activity-card-actions .btn,.activity-card-actions .action-menu{width:100%}.action-menu>summary{width:100%}.action-menu-popover{right:auto;left:0}.panel{padding:15px}.cards{grid-template-columns:1fr}.btn{width:auto}
}
/* Bouton neutre par défaut : aucune action ne doit devenir invisible faute de variante */
.btn{background:#e9eff2;border-color:#c5d2d8;color:#2f4651}
.btn:hover{background:#dde7eb;border-color:#aabcc5;color:#1f3944}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.subtle{background:var(--primary-soft);border-color:#bad7e0;color:#174f61}
.btn.quiet{background:#fff;border-color:var(--line-strong);color:#40545e}
.btn.danger{background:var(--danger-soft);border-color:#e6aab3;color:#812c39}

/* ==========================================================================\n   v0.10 — Interface plus chaleureuse, lisible et pédagogique\n   ========================================================================== */
:root{
  --page-glow:rgba(23,107,135,.075);
  --success:#12834a;
  --success-strong:#0d6b3b;
  --success-soft:#e3f7eb;
  --success-line:#75c492;
  --math:#2f78a8;
  --math-soft:#eaf4fb;
  --french:#7a5aa6;
  --french-soft:#f2edf8;
  --wellbeing:#3d8b68;
  --wellbeing-soft:#eaf6f0;
}
body{
  background:
    radial-gradient(circle at 10% 0%,var(--page-glow),transparent 27rem),
    linear-gradient(180deg,#f7fafb 0,#f2f6f7 34rem,#f4f7f8 100%);
}
.container{padding-top:26px}

/* En-têtes de pages : donner un vrai point d'entrée visuel aux écrans. */
.heading-row{
  position:relative;
  background:linear-gradient(125deg,#ffffff 0%,#f7fbfc 72%,#edf6f8 100%);
  border:1px solid #cbdbe2;
  border-left:6px solid var(--primary);
  border-radius:16px;
  padding:18px 20px;
  box-shadow:0 8px 24px rgba(28,48,61,.075);
  overflow:visible;
}
.heading-row:after{
  content:"";
  position:absolute;
  right:24px;top:-34px;
  width:150px;height:150px;border-radius:999px;
  background:rgba(23,107,135,.045);
  pointer-events:none;
}
.heading-row>div{position:relative;z-index:1}
.heading-row h1{color:#173947}
.heading-row .lead{margin-bottom:0;color:#5b6f79}

/* Panneaux et cartes : plus de profondeur sans effet décoratif excessif. */
.panel,.card,.period-action,.hero,.activity-card{
  background:rgba(255,255,255,.98);
  border-color:#c9d7dd;
  box-shadow:0 8px 24px rgba(30,55,67,.07);
}
.panel,.card{border-radius:16px}
.panel-heading h2,.card h2{color:#203e4b}

/* Mon suivi : une activité validée doit être immédiatement identifiable en vert. */
.activity-choice.selected{
  border-color:var(--success-line)!important;
  background:linear-gradient(135deg,#edf9f0 0%,var(--success-soft) 100%)!important;
  box-shadow:inset 0 0 0 1px var(--success-line),0 3px 10px rgba(46,125,74,.08)!important;
  color:#214f32;
}
.activity-choice.selected .choice-main strong{color:var(--success-strong)}
.activity-choice.selected .choice-main small{color:#52705d}
.activity-choice.selected input{accent-color:var(--success)}
.activity-choice.selected .choice-badge{background:#caead3;color:#245f39}
.activity-choice.selected:after{
  content:"✓";
  display:grid;place-items:center;
  width:21px;height:21px;
  margin-left:auto;
  border-radius:999px;
  background:var(--success);
  color:#fff;font-size:12px;font-weight:900;
  flex:0 0 auto;
}
.period-action.has-content{
  border-left:5px solid #64a97b;
  background:linear-gradient(90deg,rgba(229,245,233,.42),#fff 9%);
}

/* Bibliothèque : cartes plus riches, moins administratives. */
.library-tools{
  background:linear-gradient(135deg,#fff,#f5fafb);
  border-left:5px solid #85b7c7;
  padding:13px 14px;
  box-shadow:0 7px 20px rgba(29,52,64,.055);
}
.activity-library{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px}
.activity-card{
  --activity-accent:#78909c;
  --activity-soft:#f2f5f6;
  position:relative;
  overflow:visible;
  border:1px solid #cad8de;
  border-top:0;
  border-left:6px solid var(--activity-accent);
  border-radius:16px;
  padding:19px 20px 17px;
  gap:12px;
  background:linear-gradient(145deg,#fff 0%,#fff 72%,var(--activity-soft) 165%);
}
.activity-card:before{
  content:"";
  position:absolute;
  left:-6px;right:-1px;top:0;height:5px;
  border-radius:16px 16px 0 0;
  background:var(--activity-accent);
}
.activity-card.domain-o1{--activity-accent:var(--math);--activity-soft:var(--math-soft)}
.activity-card.domain-o2{--activity-accent:var(--french);--activity-soft:var(--french-soft)}
.activity-card.domain-o3{--activity-accent:var(--wellbeing);--activity-soft:var(--wellbeing-soft)}
.activity-card.domain-transverse{--activity-accent:#73838c;--activity-soft:#f1f4f5}
.activity-card:hover{
  transform:translateY(-2px);
  border-color:#a9c0ca;
  box-shadow:0 14px 34px rgba(28,48,61,.12);
}
.activity-card.planned-card{
  box-shadow:0 10px 28px rgba(28,48,61,.10),inset 0 0 0 1px rgba(46,125,74,.08);
}
.activity-card header{gap:16px}
.activity-card h2{font-size:20px;margin:5px 0 7px;color:#183a48}
.activity-meta-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.year-badge{
  display:inline-flex;align-items:center;gap:4px;
  background:#e5f5e9;border:1px solid #a5d2b2;color:#28613d;
  border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900;
  text-transform:uppercase;letter-spacing:.045em;
}
.activity-domains{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.domain-badge{
  display:inline-flex;align-items:center;
  border-radius:7px;padding:4px 7px;font-size:10px;font-weight:900;
  letter-spacing:.025em;border:1px solid transparent;
}
.domain-badge-o1{background:var(--math-soft);border-color:#b8d8ed;color:#28658c}
.domain-badge-o2{background:var(--french-soft);border-color:#d2c3e5;color:#67458f}
.domain-badge-o3{background:var(--wellbeing-soft);border-color:#b8d9c9;color:#337555}
.activity-card .action-tags{padding:7px 0 1px}
.activity-card .action-tags span{
  background:#f4f7f8;border:1px solid #d5e0e4;color:#536871;
  padding:4px 7px;
}
.activity-section{
  position:relative;
  background:linear-gradient(135deg,var(--activity-soft),#fff 125%);
  border:1px solid color-mix(in srgb,var(--activity-accent) 23%,#dfe8eb);
  border-left:4px solid var(--activity-accent);
  border-radius:12px;
  padding:12px 13px;
}
.activity-section>strong{display:block;color:#294853;font-size:12px;text-transform:uppercase;letter-spacing:.045em}
.activity-section p{line-height:1.52;color:#344f5a}
.activity-description{line-height:1.55;color:#52656e!important;padding:0 2px}
.activity-details{
  border:1px solid #d9e3e7;
  border-radius:10px;
  padding:0;
  background:#fbfcfd;
  overflow:hidden;
}
.activity-details summary{
  padding:9px 11px;
  color:#315969;
  background:#f4f8f9;
  list-style:none;
}
.activity-details summary:before{content:"＋";font-weight:900;margin-right:6px;color:var(--activity-accent)}
.activity-details[open] summary:before{content:"−"}
.activity-details p{padding:0 11px}.activity-details .evidence{margin:9px 11px 11px}
.period-validation{
  background:linear-gradient(135deg,#fbfdfd,#f4f8f9)!important;
  border:1px solid #d2e0e5!important;
  border-radius:12px!important;
  padding:11px 12px!important;
}
.period-validation-head strong{color:#284b58}
.period-check{
  min-width:48px;justify-content:center;
  border-radius:10px;padding:7px 9px;
  transition:.14s ease;
}
.period-check:hover{transform:translateY(-1px);border-color:#8fb5c1;background:#f1f8fa}
.period-check.selected{
  background:linear-gradient(135deg,#eaf8ee,#dff1e5)!important;
  border-color:#83bd96!important;
  color:#245d3a!important;
  box-shadow:0 2px 8px rgba(46,125,74,.10);
}
.period-check.selected span:after{content:" ✓";font-weight:900}
.planning-toggle{
  display:flex;justify-content:flex-end;
  border-top:1px solid #dde7ea!important;
  padding-top:12px!important;
}
.activity-card.planned-card .planning-toggle .btn.quiet{
  background:#edf8f0;border-color:#a5cfb1;color:#29613e;
}

/* Boutons : un peu plus tactiles sur les pages, tout en gardant la hiérarchie. */
.btn{font-weight:800;letter-spacing:.005em}
.btn.primary{box-shadow:0 5px 14px rgba(11,96,120,.20)}

@media(max-width:850px){
  .activity-library{grid-template-columns:1fr}
  .heading-row{padding:16px}
}

/* Création / modification d'activité : étapes visuelles plutôt qu'un long formulaire gris. */
.activity-edit-section{overflow:hidden;border-top:0}
.activity-edit-section .section-heading{padding:15px 17px 13px}
.activity-edit-section .form-grid{background:#fff;padding:18px}
.activity-edit-section .form-grid label{color:#455d68}
.activity-edit-section input,.activity-edit-section textarea,.activity-edit-section select{border-color:#bdcdd4;background:#fcfefe}
.activity-edit-section input:focus,.activity-edit-section textarea:focus,.activity-edit-section select:focus{outline:3px solid rgba(23,107,135,.12);border-color:#69a8ba;background:#fff}
.activity-action-grid{padding:16px 18px 18px;margin:0}
.activity-action-grid .check{border-left:4px solid #cad9df;transition:.14s ease}
.activity-action-grid .check:has(input:checked){border-left-color:#4c9a69;background:linear-gradient(135deg,#edf8f0,#fff)}

/* Les détails secondaires restent visibles mais ne concurrencent plus les actions principales. */
.secondary-fields{background:#fafcfd;border:1px solid #dce5e9;border-radius:10px;padding:8px 10px;margin-top:12px}
.secondary-fields summary{font-weight:800}

/* ==========================================================================\n   v0.11 — Couleurs sémantiques : objectif = identité, vert = validation\n   ========================================================================== */

/* Une couleur = une fonction : les couleurs des objectifs viennent désormais
   du canevas actif. Le vert d'état reste réservé à "réalisé / validé / suivi". */
.visual-legend{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin:13px 0 2px;padding:9px 11px;
  background:rgba(255,255,255,.82);border:1px solid #d3e0e5;border-radius:12px;
  color:#536670;font-size:11px;
}
.legend-title{font-weight:900;color:#344e59;text-transform:uppercase;letter-spacing:.045em;margin-right:2px}
.legend-item{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #dbe4e8;border-radius:999px;padding:4px 8px;font-weight:800}
.legend-item i{width:10px;height:10px;border-radius:999px;background:var(--legend-color,#73838c);box-shadow:0 0 0 2px color-mix(in srgb,var(--legend-color,#73838c) 16%,white)}
.legend-item.validation i{background:var(--success)}

/* Filtres : chaque objectif garde sa propre couleur ; "Toutes" et
   "Transversales" restent neutres. */
.filter-chips button.objective-filter{
  color:color-mix(in srgb,var(--filter-accent) 82%,#1d2d35);
  border-color:color-mix(in srgb,var(--filter-accent) 35%,#d9e2e6);
  background:color-mix(in srgb,var(--filter-accent) 7%,white);
}
.filter-chips button.objective-filter:hover{
  background:color-mix(in srgb,var(--filter-accent) 13%,white);
  border-color:color-mix(in srgb,var(--filter-accent) 55%,#d9e2e6);
}
.filter-chips button.objective-filter.active{
  background:var(--filter-accent);border-color:var(--filter-accent);color:#fff;
  box-shadow:0 4px 12px color-mix(in srgb,var(--filter-accent) 24%,transparent);
}

/* Bibliothèque : le cadre et les blocs pédagogiques reprennent strictement
   la couleur du ou des objectifs liés. Une activité multi-objectifs reçoit
   un liseré supérieur segmenté. */
.activity-card{
  --activity-accent:#73838c;
  --activity-stripe:var(--activity-accent);
  --activity-soft:color-mix(in srgb,var(--activity-accent) 8%,white);
  border-left-color:var(--activity-accent)!important;
  background:linear-gradient(145deg,#fff 0%,#fff 72%,var(--activity-soft) 170%)!important;
}
.activity-card:before{background:var(--activity-stripe)!important}
.activity-card:hover{
  border-color:color-mix(in srgb,var(--activity-accent) 42%,#cbd8de)!important;
  border-left-color:var(--activity-accent)!important;
  box-shadow:0 14px 34px rgba(28,48,61,.12),0 0 0 1px color-mix(in srgb,var(--activity-accent) 11%,transparent);
}
.activity-card h2{color:color-mix(in srgb,var(--activity-accent) 42%,#173947)}

/* Les badges d'objectif sont eux aussi alimentés par le canevas et non par
   des couleurs codées en dur. */
.objective-badge{
  --objective-color:#73838c;
  display:inline-flex;align-items:center;gap:4px;
  border-radius:8px;padding:4px 7px;font-size:10px;font-weight:900;
  letter-spacing:.025em;
  color:color-mix(in srgb,var(--objective-color) 86%,#1f2f36);
  background:color-mix(in srgb,var(--objective-color) 9%,white);
  border:1px solid color-mix(in srgb,var(--objective-color) 34%,#d9e3e7);
}
.objective-action-tag{
  --tag-color:#73838c;
  background:color-mix(in srgb,var(--tag-color) 7%,white)!important;
  border-color:color-mix(in srgb,var(--tag-color) 27%,#d9e3e7)!important;
  color:color-mix(in srgb,var(--tag-color) 72%,#324650)!important;
}
.activity-section{
  background:linear-gradient(135deg,color-mix(in srgb,var(--activity-accent) 9%,white),#fff 125%);
  border-color:color-mix(in srgb,var(--activity-accent) 25%,#dfe8eb);
  border-left-color:var(--activity-accent);
}
.activity-section>strong,.activity-details summary:before{
  color:color-mix(in srgb,var(--activity-accent) 76%,#243f49);
}
.activity-details summary{
  background:linear-gradient(90deg,color-mix(in srgb,var(--activity-accent) 6%,white),#f8fafb 70%);
}

/* Validation : le vert est le seul repère de statut positif. Il ne change
   jamais selon l'objectif. */
.year-badge{
  background:var(--success-soft)!important;border-color:#a5d2b2!important;color:#28613d!important;
}
.period-check.selected{
  background:linear-gradient(135deg,#eaf8ee,#dff1e5)!important;
  border-color:#83bd96!important;color:#245d3a!important;
}
.activity-card.planned-card{
  box-shadow:0 10px 28px rgba(28,48,61,.10),inset 0 0 0 1px rgba(46,125,74,.08)!important;
}

/* Mon suivi : l'objectif colore la structure ; une activité sélectionnée
   reste verte afin de signifier sans ambiguïté "réalisée". */
.period-objective{--accent:#73838c}
.period-objective .objective-title{
  border-left-color:var(--accent)!important;
  color:color-mix(in srgb,var(--accent) 55%,#203d49);
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,white),transparent 72%);
  border-radius:0 10px 10px 0;padding-top:7px;padding-bottom:7px;
}
.period-objective .strategy-heading{
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,white),#f5f8f9 78%);
  border:1px solid color-mix(in srgb,var(--accent) 20%,#dce5e9);
  border-left:4px solid var(--accent);
}
.period-objective .strategy-heading strong{
  display:inline-flex;align-items:center;
  background:var(--accent);color:#fff;border-radius:7px;padding:3px 7px;
  box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 20%,transparent);
}
.period-objective .action-code{color:color-mix(in srgb,var(--accent) 82%,#203944)}
.period-objective .period-action:not(.has-content){
  border-left:4px solid color-mix(in srgb,var(--accent) 32%,#d9e2e6);
}
.period-objective .activity-choice:not(.selected){
  border-left:3px solid color-mix(in srgb,var(--accent) 35%,#d9e2e6);
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 4%,white),#fff 35%);
}
.period-objective .activity-choice:not(.selected):hover{
  border-color:color-mix(in srgb,var(--accent) 48%,#cbd7dc);
  border-left-color:var(--accent);
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,white),#fff 42%);
}
.period-action.has-content{
  border-left-color:var(--success)!important;
  background:linear-gradient(90deg,rgba(229,245,233,.46),#fff 10%)!important;
}
.activity-choice.selected{
  border-left-color:var(--success)!important;
}

/* Onglets d'objectif : lorsqu'un objectif est choisi, sa couleur devient
   l'accent de l'onglet. */
.objective-tabs button.objective-tab{
  color:color-mix(in srgb,var(--accent) 78%,#314b56);
  border-color:color-mix(in srgb,var(--accent) 30%,#d8e1e5);
  background:color-mix(in srgb,var(--accent) 6%,white);
}
.objective-tabs button.objective-tab:hover{
  background:color-mix(in srgb,var(--accent) 12%,white);
  border-color:color-mix(in srgb,var(--accent) 52%,#d8e1e5);
}
.objective-tabs button.objective-tab.active{
  background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 22%,transparent);
}

/* Les actions conservent les couleurs de leur objectif. */
.activity-action-grid .check{
  --objective-accent:#73838c;
  border-left:4px solid var(--objective-accent)!important;
  background:linear-gradient(90deg,color-mix(in srgb,var(--objective-accent) 5%,white),#fff 34%)!important;
}
.activity-action-grid .check strong{color:color-mix(in srgb,var(--objective-accent) 78%,#263d47)}
.activity-action-grid .check:has(input:checked){
  border-color:color-mix(in srgb,var(--objective-accent) 38%,#d6e0e4)!important;
  border-left-color:var(--objective-accent)!important;
  background:linear-gradient(90deg,color-mix(in srgb,var(--objective-accent) 12%,white),#fff 58%)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--objective-accent) 12%,transparent);
}
.activity-action-grid .check input{accent-color:var(--objective-accent)}

@media(max-width:700px){
  .visual-legend{align-items:flex-start}
  .legend-title{width:100%}
}

/* v0.12 – éditeur d'activité : type explicite, hiérarchie et saisie plus guidée */
.activity-edit-heading .title-kicker{display:inline-flex;align-items:center;gap:6px;margin-bottom:5px;color:var(--primary);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.edit-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.edit-steps a{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 11px;color:var(--ink);box-shadow:0 2px 8px rgba(22,45,57,.04)}
.edit-steps a:hover{border-color:#8eb9c6;background:#f7fbfc;transform:translateY(-1px)}
.edit-steps a>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-weight:900}
.edit-steps a strong{font-size:12px;line-height:1.2}.edit-steps a small{font-size:10px;color:var(--muted);margin-top:2px}

.ai-workbench{padding:0!important;overflow:hidden;margin-bottom:14px;border-color:#bfd4dc;background:#fff}
.ai-workbench>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:11px 14px;background:linear-gradient(90deg,#eef7fa,#fff);user-select:none}
.ai-workbench>summary::-webkit-details-marker{display:none}.ai-workbench>summary:hover{background:linear-gradient(90deg,#e5f2f6,#fff)}
.ai-workbench>summary>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.ai-workbench>summary strong{font-size:13px}.ai-workbench>summary small{font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}
.ai-workbench-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--primary);color:#fff;font-size:16px;font-weight:900}
.ai-workbench-chevron{margin-left:auto;color:var(--muted);font-size:18px;transition:transform .15s ease}.ai-workbench[open] .ai-workbench-chevron{transform:rotate(180deg)}
.ai-workbench-body{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.8fr);gap:16px;padding:15px;border-top:1px solid #dbe6ea}.ai-workbench-body h2{margin:0 0 6px;font-size:17px}.ai-workbench-body p{margin:0 0 10px;color:var(--muted)}

.activity-form{gap:16px}.activity-edit-section{scroll-margin-top:92px;border:1px solid var(--line);border-left:0;border-radius:14px;box-shadow:var(--shadow)}
.activity-edit-section .section-heading{padding:15px 17px 13px;background:linear-gradient(135deg,var(--primary-soft),#fff);border-bottom:1px solid #dce7eb}
.activity-edit-body{padding:18px;background:#fff}.activity-edit-body>label,.choice-fieldset{margin-bottom:16px}
.choice-fieldset{border:0;padding:0;margin-inline:0}.choice-fieldset legend{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:8px;color:#29434e;font-size:12px;font-weight:900}
.required-mark{display:inline-flex;align-items:center;border-radius:99px;background:#fff1d6;color:#89520a;padding:2px 7px;font-size:9px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}

.type-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.type-choice{position:relative;display:grid;grid-template-columns:40px 1fr 24px;gap:10px;align-items:center;border:2px solid #d4dfe4;border-radius:13px;padding:13px;background:#fbfcfd;cursor:pointer;transition:.14s ease;min-height:82px}
.type-choice:hover{border-color:#89b5c2;background:#f6fbfc}.type-choice.selected{border-color:var(--primary);background:linear-gradient(135deg,#eaf6f9,#fff);box-shadow:0 5px 16px rgba(11,96,120,.10)}
.type-choice input{position:absolute;opacity:0;pointer-events:none}.type-choice-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#eaf1f4;color:#48616d;font-size:21px;font-weight:900}.type-choice.selected .type-choice-icon{background:var(--primary);color:#fff}
.type-choice-copy{display:flex;flex-direction:column}.type-choice-copy strong{font-size:15px;color:#173743}.type-choice-copy small{font-size:11px;line-height:1.4;color:var(--muted);margin-top:3px}.type-choice-check{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:#dce7eb;color:#fff;font-size:12px;font-weight:900}.type-choice.selected .type-choice-check{background:var(--success)}

.frequency-box{display:grid;grid-template-columns:minmax(240px,1fr) minmax(210px,.55fr);gap:10px 16px;align-items:end;margin:4px 0 18px;padding:13px 14px;background:#f2f8fa;border:1px solid #c6dde5;border-left:5px solid var(--primary);border-radius:11px}.frequency-box[hidden]{display:none!important}.frequency-box-copy{display:flex;flex-direction:column;align-self:center}.frequency-box-copy strong{font-size:13px;color:#21434f}.frequency-box-copy small{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}.frequency-input-label{font-size:11px;font-weight:800;color:#3f5661}.frequency-input-label input{margin-top:5px}.frequency-presets{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.frequency-presets button{border:1px solid #b7cbd3;background:#fff;color:#35505c;border-radius:99px;padding:6px 9px;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.frequency-presets button:hover,.frequency-presets button.active{border-color:var(--primary);background:var(--primary);color:#fff}

.activity-main-fields{margin-bottom:4px}.activity-edit-body .form-grid{padding:0;background:transparent}.field-emphasis input{font-size:16px;font-weight:700}.activity-edit-body label{display:flex;flex-direction:column;gap:5px;color:#405660;font-size:12px;font-weight:800}.activity-edit-body label small{color:var(--muted);font-weight:400;font-size:10px;line-height:1.35}.activity-edit-body input,.activity-edit-body textarea,.activity-edit-body select{border-color:#b9cbd2;background:#fcfefe}.activity-edit-body textarea{line-height:1.5}

.visibility-fieldset{margin-top:14px}.visibility-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.visibility-choice{position:relative;display:flex;gap:8px;align-items:flex-start;border:1px solid #cbd9df;border-radius:10px;padding:10px;background:#fbfcfd;cursor:pointer}.visibility-choice:hover{border-color:#8cb5c2;background:#f7fbfc}.visibility-choice.selected{border-color:var(--primary);background:#eaf5f8;box-shadow:inset 0 0 0 1px rgba(11,96,120,.08)}.visibility-choice input{width:auto;margin:2px 0 0;accent-color:var(--primary)}.visibility-choice span{display:flex;flex-direction:column}.visibility-choice strong{font-size:11px;color:#28434e}.visibility-choice small{font-size:9px;color:var(--muted);font-weight:400;margin-top:2px}.tags-field{margin-bottom:0!important}

.pedagogical-fields{display:grid;gap:12px}.field-card{margin:0!important;border:1px solid #d1dde2;border-radius:11px;padding:12px;background:#fbfcfd}.field-card-goal{border-left:5px solid var(--primary);background:linear-gradient(135deg,#f0f8fa,#fff 70%)}.compact-support-fields{margin-top:0}

.contract-section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.link-count{display:flex;align-items:center;gap:4px;white-space:nowrap;background:#fff;border:1px solid #bfd4dc;color:#38535e;border-radius:99px;padding:6px 10px;font-size:10px;font-weight:800}.link-count strong{font-size:13px;color:var(--primary)}
.contract-groups{display:grid;gap:12px}.contract-objective-group{border:1px solid color-mix(in srgb,var(--objective-accent) 28%,#dce5e9);border-left:6px solid var(--objective-accent);border-radius:12px;overflow:hidden;background:#fff}.contract-objective-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:linear-gradient(90deg,color-mix(in srgb,var(--objective-accent) 9%,white),#fff 72%);border-bottom:1px solid color-mix(in srgb,var(--objective-accent) 17%,#e1e8eb)}.objective-chip{display:flex;align-items:center;gap:8px;min-width:0}.objective-chip>span{display:inline-flex;align-items:center;justify-content:center;min-width:31px;height:27px;border-radius:8px;background:var(--objective-accent);color:#fff;font-size:11px;font-weight:900}.objective-chip strong{font-size:13px;color:color-mix(in srgb,var(--objective-accent) 52%,#203a45)}.contract-objective-head>small{font-size:10px;color:var(--muted)}
.contract-strategies{padding:10px 11px}.contract-strategy-block+.contract-strategy-block{border-top:1px dashed #dce5e9;margin-top:11px;padding-top:11px}.contract-strategy-title{display:flex;gap:8px;align-items:flex-start;margin-bottom:7px}.contract-strategy-title strong{display:inline-flex;align-items:center;border-radius:7px;background:color-mix(in srgb,var(--objective-accent) 12%,white);color:color-mix(in srgb,var(--objective-accent) 82%,#29404a);padding:3px 6px;font-size:10px}.contract-strategy-title span{font-size:11px;font-weight:700;color:#4c616b;line-height:1.4}
.activity-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:7px;margin:0}.action-choice{position:relative!important;display:grid!important;grid-template-columns:18px 1fr 20px;align-items:start;gap:8px!important;margin:0!important;padding:9px 10px!important;border:1px solid #d6e0e4!important;border-left:3px solid color-mix(in srgb,var(--objective-accent) 45%,#d6e0e4)!important;background:#fff!important;cursor:pointer;transition:.12s ease}.action-choice:hover{border-color:color-mix(in srgb,var(--objective-accent) 45%,#ccd8dd)!important;background:color-mix(in srgb,var(--objective-accent) 4%,white)!important}.action-choice input{margin:2px 0 0!important;accent-color:var(--objective-accent)}.action-choice>span:nth-of-type(1){display:flex;flex-direction:column;gap:2px}.action-choice>span:nth-of-type(1)>strong{font-size:10px!important;color:color-mix(in srgb,var(--objective-accent) 82%,#29404a)!important}.action-choice>span:nth-of-type(1)>span{font-size:10px;line-height:1.4;color:#4f616b}.action-choice-check{display:grid;place-items:center;width:19px;height:19px;border-radius:999px;background:#e5ecef;color:#fff;font-size:10px;font-weight:900}.action-choice.selected,.action-choice:has(input:checked){border-color:color-mix(in srgb,var(--objective-accent) 42%,#cdd9de)!important;border-left-color:var(--objective-accent)!important;background:linear-gradient(90deg,color-mix(in srgb,var(--objective-accent) 11%,white),#fff 70%)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--objective-accent) 8%,transparent)}.action-choice.selected .action-choice-check,.action-choice:has(input:checked) .action-choice-check{background:var(--objective-accent)}

.activity-editor-save{border-top:4px solid var(--primary);padding:11px 13px}.activity-editor-save [data-editor-summary]{color:#203a45}

@media(max-width:850px){
  .edit-steps{grid-template-columns:1fr}.edit-steps a{grid-template-columns:26px 1fr;min-height:0}
  .ai-workbench-body{grid-template-columns:1fr}
  .type-choice-grid,.visibility-choice-grid{grid-template-columns:1fr}
  .frequency-box{grid-template-columns:1fr}.frequency-presets{grid-column:1}
  .contract-section-heading{align-items:flex-start}.link-count{margin-top:2px}
}

/* v0.13 – Vue d'ensemble pilotable : une perspective à la fois, filtres et signaux visuels. */
.dashboard-viewbar{display:flex;align-items:stretch;gap:14px;margin:4px 0 18px;padding:12px;background:#fff;border:1px solid #cbd8de;border-radius:16px;box-shadow:var(--shadow)}
.dashboard-viewbar-label{display:flex;flex-direction:column;justify-content:center;min-width:130px;padding:4px 12px;border-right:1px solid #dce5e9}.dashboard-viewbar-label span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.dashboard-viewbar-label strong{font-size:14px;color:#213b46;margin-top:3px}
.dashboard-view-tabs{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:7px;flex:1}.dashboard-view-tabs button{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;text-align:left;border:1px solid #d4dfe4;background:#f9fbfc;border-radius:11px;padding:9px 10px;color:#445b66;cursor:pointer;transition:.14s ease}.dashboard-view-tabs button:hover{border-color:#95b5c1;background:#f3f8fa}.dashboard-view-tabs button.active{background:linear-gradient(135deg,var(--primary),#174e61);border-color:var(--primary);color:#fff;box-shadow:0 5px 14px rgba(11,96,120,.18)}.dashboard-view-tabs button span:nth-child(2){display:flex;flex-direction:column;min-width:0}.dashboard-view-tabs button strong{font-size:11px}.dashboard-view-tabs button small{font-size:9px;color:#71838c;margin-top:2px;line-height:1.25}.dashboard-view-tabs button.active small{color:#d9edf3}.view-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e8f0f3;color:#45616d;font-size:15px;font-weight:900}.dashboard-view-tabs button.active .view-icon{background:rgba(255,255,255,.15);color:#fff}
.dashboard-view[hidden]{display:none!important}.dashboard-view{animation:dashboardFade .16s ease}@keyframes dashboardFade{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}

.dashboard-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.dashboard-kpis article{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:105px;padding:14px 15px;background:#fff;border:1px solid #ccd9de;border-radius:13px;box-shadow:0 3px 12px rgba(31,50,61,.05)}.dashboard-kpis article:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#3b8da8}.dashboard-kpis article>span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#687a84;font-weight:900}.dashboard-kpis article>strong{font-size:25px;color:#203945;margin:5px 0 2px}.dashboard-kpis article>small{font-size:10px;line-height:1.35;color:var(--muted)}.dashboard-kpis .kpi-alert:before{background:#c86b45}.dashboard-kpis .kpi-warn:before{background:#d69b28}.dashboard-kpis .kpi-good:before{background:#409567}.compact-kpis article{min-height:92px}

.dashboard-filter-panel{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;margin:0 0 13px;padding:11px 13px;background:linear-gradient(135deg,#eef4f6,#f9fbfc);border:1px solid #cddae0;border-radius:13px}.dashboard-filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dashboard-filter-group>span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#667983;font-weight:900}.dashboard-filter-chips{display:flex;gap:5px;flex-wrap:wrap}.dashboard-filter-chips button{border:1px solid #c6d4da;background:#fff;color:#4b606a;border-radius:99px;padding:6px 9px;font:inherit;font-size:10px;font-weight:800;cursor:pointer;transition:.12s ease}.dashboard-filter-chips button:hover{border-color:#8eb2bf;background:#f7fbfc}.dashboard-filter-chips button.active{background:#244a59;border-color:#244a59;color:#fff}.dashboard-filter-chips button[style].active{background:var(--chip-accent);border-color:var(--chip-accent);color:#fff}.filter-result-count{display:inline-flex;align-items:center;border:1px solid #cbd8dd;border-radius:99px;background:#f7fafb;color:#586b74;padding:5px 8px;font-size:10px;font-weight:800;white-space:nowrap}.dashboard-empty-filter{margin:12px 0 0;padding:18px;text-align:center;background:#f7f9fa;border:1px dashed #c9d4d9;border-radius:10px;color:#718089;font-size:12px}.dashboard-focus-panel{border-top:4px solid #3b8da8}

.dashboard-annual-matrix .matrix-action{position:relative;padding-right:54px}.annual-level{position:absolute;right:0;top:0;display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:4px 6px;border-radius:99px;font-size:10px;font-style:normal;font-weight:900}.annual-level-missing{background:#f4dfdb;color:#8a463b}.annual-level-fragile{background:#fff0d2;color:#826018}.annual-level-regular{background:#dfeef4;color:#315d6e}.annual-level-strong{background:#dcefe1;color:#30623d}.dashboard-filter-heading[hidden],.dashboard-filter-item[hidden]{display:none!important}

.period-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.period-overview-card{position:relative;display:flex;flex-direction:column;gap:7px;min-height:128px;padding:12px 13px;border:1px solid #d1dce1;border-left:5px solid var(--accent);border-radius:11px;background:#fff;text-decoration:none;color:var(--ink);transition:.13s ease}.period-overview-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(29,50,61,.09);border-color:#afc2ca}.period-overview-card p{margin:0;font-size:11px;line-height:1.45;color:#425760}.period-overview-card small{margin-top:auto;color:#6d7e87;font-size:9px;line-height:1.35}.period-overview-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.period-overview-top>strong{font-size:11px;color:color-mix(in srgb,var(--accent) 72%,#263d47)}.period-state-label{border-radius:99px;padding:4px 7px;background:#eef2f4;color:#65747c;font-size:9px;font-weight:900}.period-overview-card.state-covered{background:linear-gradient(135deg,#f5fbf6,#fff);border-left-color:#4a9b67}.period-overview-card.state-covered .period-state-label{background:#dcefe1;color:#316341}.period-overview-card.state-blocked{background:#fffaf0}.period-overview-card.state-blocked .period-state-label{background:#fff0d2;color:#7c5a13}.period-overview-card.state-not_done{background:#fff8f7}.period-overview-card.state-not_done .period-state-label{background:#f4dfdb;color:#8a463b}

.attention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.attention-card{border:1px solid #d1dce1;border-left:5px solid var(--accent);border-radius:11px;background:#fff;padding:12px 13px}.attention-card p{margin:9px 0;font-size:11px;line-height:1.45;color:#425760}.attention-head{display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center}.attention-score{display:grid;place-items:center;width:42px;height:36px;border-radius:9px;background:#eef3f5;color:#526873;font-size:11px;font-weight:900}.attention-head>div{display:flex;flex-direction:column}.attention-head>div strong{font-size:11px}.attention-head>div small{font-size:9px;color:var(--muted);margin-top:1px}.attention-label{font-size:9px;font-weight:900;border-radius:99px;padding:4px 7px;background:#edf2f4;color:#61717a}.attention-card.level-missing{background:#fff9f8}.attention-card.level-missing .attention-score,.attention-card.level-missing .attention-label{background:#f4dfdb;color:#88453b}.attention-card.level-fragile{background:#fffdf7}.attention-card.level-fragile .attention-score,.attention-card.level-fragile .attention-label{background:#fff0d2;color:#806017}.attention-card.level-regular .attention-score,.attention-card.level-regular .attention-label{background:#dfeef4;color:#315d6e}.attention-card.level-strong{background:#f7fcf8}.attention-card.level-strong .attention-score,.attention-card.level-strong .attention-label{background:#dcefe1;color:#30623d}.attention-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.attention-meta span{font-size:9px;border-radius:99px;background:#eef3f5;color:#60727b;padding:4px 7px}.attention-meta .meta-warning{background:#fff0d2;color:#806017}

.dashboard-activity-list{display:grid;gap:7px}.dashboard-activity-row{display:grid;grid-template-columns:minmax(250px,1.5fr) minmax(130px,.55fr) 260px 70px;gap:10px;align-items:center;border:1px solid #d1dce1;border-radius:10px;padding:9px 11px;background:#fff}.dashboard-activity-main{display:grid;grid-template-columns:auto 1fr;gap:3px 7px;align-items:center;min-width:0}.dashboard-activity-main>strong{font-size:11px;color:#263f4a}.dashboard-activity-main>small{grid-column:2;font-size:9px;color:var(--muted)}.activity-type-mini{grid-row:1/3;align-self:center;border-radius:7px;padding:4px 6px;background:#edf2f4;color:#5d6f78;font-size:8px;text-transform:uppercase;font-weight:900}.dashboard-activity-objectives{display:flex;gap:4px;flex-wrap:wrap}.dashboard-activity-objectives span{display:inline-flex;align-items:center;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,white);border-radius:6px;padding:4px 6px;color:color-mix(in srgb,var(--accent) 75%,#334b55);font-size:9px;font-weight:900}.dashboard-activity-objectives .neutral{border-left-color:#87949b;background:#f0f2f3;color:#6c787e}.dashboard-activity-periods{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.mini-period{display:grid;place-items:center;min-height:28px;border:1px solid #d5dfe3;border-radius:7px;background:#f7f9fa;color:#89959b;font-size:9px;font-weight:900}.mini-period.used{border-color:#88bd98;background:#dff1e4;color:#2f6840}.dashboard-activity-score{text-align:center;display:flex;flex-direction:column}.dashboard-activity-score strong{font-size:14px;color:#29434e}.dashboard-activity-score small{font-size:8px;color:var(--muted)}

.dashboard-multi-objective{border-left:5px solid var(--accent);padding-left:11px}.dashboard-multi-objective h3{background:color-mix(in srgb,var(--accent) 9%,white);color:color-mix(in srgb,var(--accent) 70%,#314751)}.trend-badge{display:inline-flex;border-radius:99px;padding:4px 7px;background:#edf2f4;color:#64747c;font-size:9px;font-weight:900;white-space:nowrap}.trend-never{background:#f4dfdb;color:#88453b}.trend-discontinuous{background:#fff0d2;color:#806017}.trend-continuous{background:#dfeef4;color:#315d6e}.trend-strong{background:#dcefe1;color:#30623d}.dashboard-legacy-notice{margin-top:14px}

@media(max-width:1180px){.dashboard-viewbar{flex-direction:column}.dashboard-viewbar-label{border-right:0;border-bottom:1px solid #dce5e9;padding:0 0 8px}.dashboard-view-tabs{grid-template-columns:repeat(3,1fr)}.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.period-overview-grid{grid-template-columns:repeat(2,1fr)}.dashboard-activity-row{grid-template-columns:minmax(220px,1.4fr) minmax(120px,.5fr) 230px 60px}}
@media(max-width:760px){.dashboard-view-tabs{grid-template-columns:1fr 1fr}.dashboard-view-tabs button{grid-template-columns:25px 1fr}.dashboard-kpis{grid-template-columns:1fr 1fr}.dashboard-filter-panel{gap:10px}.dashboard-filter-group{align-items:flex-start;flex-direction:column}.period-overview-grid,.attention-grid{grid-template-columns:1fr}.dashboard-activity-row{grid-template-columns:1fr}.dashboard-activity-main{grid-template-columns:auto 1fr}.dashboard-activity-periods{max-width:360px}.dashboard-activity-score{text-align:left;flex-direction:row;gap:5px;align-items:baseline}.multi-table{min-width:700px}}
@media(max-width:520px){.dashboard-view-tabs{grid-template-columns:1fr}.dashboard-kpis{grid-template-columns:1fr}.dashboard-viewbar{padding:9px}.dashboard-filter-chips button{padding:6px 8px}.attention-head{grid-template-columns:38px 1fr}.attention-label{grid-column:2;justify-self:start}.matrix-action{flex-wrap:wrap}.annual-level{position:static!important;margin-left:auto}}
.dashboard-objective-summaries{margin-bottom:14px}.static-summary{cursor:default}.static-summary:hover{transform:none;box-shadow:var(--shadow)}

/* v0.14 – comptes par invitation, rôles, cycles et pilotage direction */
.auth-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,#0f657e,#184350);color:#fff;font-weight:900;margin:-4px 0 16px}.auth-card h1{margin-bottom:8px}.auth-card p{color:#5e717b}.auth-card .btn.primary{width:100%;text-align:center;margin-top:4px}.auth-footer{text-align:center;margin:18px 0 0!important}.auth-footer a{color:var(--primary);font-weight:700;text-decoration:none}.invite-summary{display:grid;grid-template-columns:1fr;gap:7px;background:#eef6f8;border:1px solid #c8dfe6;border-left:5px solid var(--primary);border-radius:12px;padding:13px 15px;margin:16px 0}.invite-summary div{display:grid;grid-template-columns:120px 1fr;gap:10px}.invite-summary span{color:var(--muted);font-size:12px}.invite-name-grid{padding:0!important}
.invite-user-panel{border-left:6px solid var(--primary);background:linear-gradient(135deg,#f4fbfd,#fff 55%)}.invite-user-form{display:grid;grid-template-columns:minmax(280px,1.2fr) 220px;gap:13px;align-items:start;margin-top:14px}.invite-user-form>label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:800;color:#47606b}.invite-user-form .invite-cycles{grid-column:1/-1;background:#f7fafb;border:1px solid #d2dfe4;border-radius:12px;padding:12px 14px}.invite-user-form .invite-cycles>span{display:block;font-size:12px;font-weight:800;margin-bottom:4px}.invite-user-form .invite-cycles>small{display:block;color:var(--muted);font-size:11px;margin-top:-7px}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:8px 0 12px}.invite-user-form>.btn{justify-self:start}.muted-disabled{opacity:.5}.muted-disabled::after{content:'La direction accède automatiquement à tous les suivis.';display:block;color:#41616d;font-size:11px;font-weight:700;margin-top:7px}.pending-invites-list{display:grid;gap:8px;margin-top:12px}.pending-invite{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 14px;border:1px solid #d4dfe4;border-radius:11px;background:#fbfdfd}.pending-invite>div:first-child{display:flex;flex-direction:column}.pending-invite span,.pending-invite small{color:var(--muted);font-size:12px}.pending-invite.expired{border-color:#e2c48e;background:#fffaf0}.pending-invite.expired small{color:#9a5c17;font-weight:700}.pending-invite form{margin:0}.users-table .role-badge{display:inline-flex;border-radius:99px;padding:5px 9px;font-size:11px;font-weight:800}.role-titulaire{background:#e9f4f8;color:#1d6179}.role-intervenant{background:#f0ebfa;color:#66508d}.role-direction{background:#fff0d5;color:#845816}.role-admin{background:#e8edf0;color:#435963}.status-pill{display:inline-flex;border-radius:99px;padding:5px 8px;font-size:11px;font-weight:800}.status-pill.active{background:#dff1e3;color:#35633f}.status-pill.inactive{background:#edf0f2;color:#6c787e}.user-edit-panel{border-left:5px solid var(--primary)}.user-cycle-edit{margin:8px 14px 18px;padding:14px;border-radius:12px;background:#f7fafb;border:1px solid #d4dfe4}.user-cycle-edit h3{margin:0 0 3px}.muted-optional{border-style:dashed;opacity:.82}
.cycle-edit-list{display:grid;gap:9px}.cycle-edit-row{display:grid;grid-template-columns:100px minmax(280px,1fr) 110px 100px auto;gap:10px;align-items:end;background:#f8fbfc;border:1px solid #d4dfe4;border-radius:12px;padding:12px}.cycle-edit-row label{font-size:11px;font-weight:800;color:#526a75}.cycle-code{display:flex;flex-direction:column}.cycle-code span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.compact-check{align-self:end;margin:0!important;min-height:42px}
.viewing-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(90deg,#fff6dc,#fffaf0);border:1px solid #e2c984;border-left:6px solid #b77715;border-radius:13px;padding:10px 13px;margin-bottom:12px;box-shadow:0 4px 14px rgba(106,78,23,.08)}.viewing-banner>div{display:flex;align-items:center;gap:10px}.viewing-banner>div>div{display:flex;flex-direction:column}.viewing-banner small{color:#806a42}.viewing-eye{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff0bd;color:#82540e;font-size:22px}.readonly-badge{display:inline-flex;border-radius:99px;background:#fff;color:#7d591c;border:1px solid #dec47e;padding:5px 9px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.person-switcher{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:700}.person-switcher select{width:auto;min-width:220px;padding:6px 28px 6px 8px}.readonly-notice{background:#fff7df;border:1px solid #e7ce8d;border-left:5px solid #b67a17;border-radius:11px;padding:10px 13px;margin:12px 0;color:#695228}.readonly-fieldset{border:0;padding:0;margin:0;min-width:0}.readonly-fieldset[disabled]{opacity:.92}.readonly-fieldset[disabled] textarea,.readonly-fieldset[disabled] select,.readonly-fieldset[disabled] input{background:#f5f7f8;color:#5e6a70}.readonly-fieldset[disabled] .activity-choice{cursor:default}.readonly-fieldset[disabled] .sticky-save{display:none}
.leadership-heading{margin-bottom:10px}.leadership-filterbar{margin-top:0;border-left:6px solid #a86c15;background:linear-gradient(135deg,#fffaf0,#fff 65%)}.leadership-filters{display:grid;grid-template-columns:160px 200px 190px 150px minmax(240px,1fr);gap:10px;align-items:end}.leadership-filters label{font-size:11px;font-weight:800;color:#566b75}.leadership-filters label>*{margin-top:5px}.leadership-status-filter{margin-top:12px}.leadership-status-filter button.active{background:#244a59;color:#fff;border-color:#244a59}.leadership-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.leadership-kpis article{background:#fff;border:1px solid #cdd9de;border-radius:14px;padding:15px;box-shadow:var(--shadow);display:flex;flex-direction:column;border-top:4px solid #3e8499}.leadership-kpis article.kpi-alert{border-top-color:#b67513}.leadership-kpis article.kpi-good{border-top-color:#3d8a5a}.leadership-kpis span{font-size:11px;font-weight:800;color:#677983;text-transform:uppercase;letter-spacing:.04em}.leadership-kpis strong{font-size:28px;color:#1d3b47}.leadership-kpis small{color:var(--muted)}.leadership-table-panel{border-top:4px solid #264f5f}.leadership-table tr[hidden]{display:none}.person-cell{display:flex;align-items:center;gap:10px;min-width:220px}.person-cell>div{display:flex;flex-direction:column}.person-cell small{font-size:11px;color:var(--muted)}.person-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#e5f1f5;color:#1b6178;font-weight:900}.cycle-badges{display:flex;flex-wrap:wrap;gap:4px}.cycle-badges span{display:inline-flex;background:#edf3f5;border-radius:99px;padding:4px 7px;font-size:10px;font-weight:800;color:#4b626c}.lead-progress{display:grid;grid-template-columns:minmax(100px,1fr) 48px;gap:8px;align-items:center;min-width:160px}.lead-progress>div{height:8px;background:#e6ecef;border-radius:99px;overflow:hidden}.lead-progress>div span{display:block;height:100%;background:linear-gradient(90deg,#3b879f,#50a46a);border-radius:99px}.lead-progress strong{font-size:12px}.attention-number{display:grid;place-items:center;width:35px;height:30px;border-radius:9px;font-weight:900}.attention-number.has{background:#fff0d6;color:#8a5b13}.attention-number.none{background:#e1f1e5;color:#35643f}.leadership-table td{vertical-align:middle}.leadership-table .btn{white-space:nowrap}
@media(max-width:1050px){.invite-user-form{grid-template-columns:1fr}.leadership-filters{grid-template-columns:1fr 1fr}.leadership-kpis{grid-template-columns:1fr 1fr}.cycle-edit-row{grid-template-columns:90px 1fr 100px}.cycle-edit-row .compact-check,.cycle-edit-row .btn{grid-column:auto}.person-switcher select{min-width:170px}}
@media(max-width:700px){.leadership-filters,.leadership-kpis{grid-template-columns:1fr}.cycle-edit-row{grid-template-columns:1fr}.viewing-banner{align-items:flex-start;flex-direction:column}.invite-summary div{grid-template-columns:1fr}.pending-invite{align-items:flex-start;flex-direction:column}.person-switcher{width:100%;align-items:flex-start;flex-direction:column}.person-switcher select{width:100%}}

/* v0.15 — navigation Direction : éviter les liens qui semblent inactifs */
.nav-unavailable{display:inline-flex;align-items:center;padding:.72rem .9rem;border-radius:12px;color:rgba(255,255,255,.45);font-weight:700;cursor:not-allowed;user-select:none;white-space:nowrap}
.direction-person-picker{display:flex;align-items:center;gap:.45rem;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);padding:.35rem .45rem .35rem .65rem;border-radius:12px;color:#fff}
.direction-person-picker span{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.7)}
.direction-person-picker select{max-width:220px;background:#fff;color:#183947;border:0;border-radius:8px;padding:.45rem .6rem;font-weight:700}
.leadership-empty-state{margin:1rem 0 0;padding:1.1rem 1.2rem;border:1px dashed #9fb4be;background:#f6fafb;border-radius:14px;color:#35525e}
.leadership-empty-state strong{display:block;color:#173b49;margin-bottom:.3rem}
.leadership-empty-state p{margin:0}
@media(max-width:1100px){.direction-person-picker span{display:none}.direction-person-picker select{max-width:170px}}

/* v0.16 — collaboration de cycle, référentiel commun et navigation Direction */
.nav-needs-person{display:inline-flex;align-items:center;padding:.72rem .9rem;border-radius:12px;color:rgba(255,255,255,.72);font-weight:700;white-space:nowrap;text-decoration:none;border:1px dashed rgba(255,255,255,.18)}
.nav-needs-person:hover{background:rgba(255,255,255,.1);color:#fff;border-style:solid}.direction-choice-callout{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:11px 14px;border-radius:13px;background:#fff7df;border:1px solid #e5c879;border-left:6px solid #b97714}.direction-choice-callout>div{display:flex;flex-direction:column}.direction-choice-callout span{color:#735d35;font-size:12px;margin-top:2px}.leadership-row-actions{display:flex;gap:6px;flex-wrap:wrap}.activity-count-link{display:flex;flex-direction:column;text-decoration:none;color:#1d5367}.activity-count-link strong{font-size:18px}.activity-count-link small{font-size:10px;color:var(--muted)}

.library-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px;margin:0 0 14px;max-width:760px}.library-view-tabs a{display:flex;flex-direction:column;padding:11px 14px;border:1px solid #cbd9de;border-radius:13px;background:#fff;color:#405a66;text-decoration:none;box-shadow:0 3px 10px rgba(30,65,78,.04)}.library-view-tabs a small{color:var(--muted);margin-top:2px}.library-view-tabs a.active{border-color:var(--primary);background:linear-gradient(135deg,#eaf6f9,#fff);color:#143f4f;box-shadow:0 5px 15px rgba(11,96,120,.1)}
.activity-author-line{display:flex;align-items:center;gap:8px;margin:9px 0 7px}.activity-author-line>span:last-child{display:flex;flex-direction:column}.activity-author-line strong{font-size:11px;color:#37515c}.activity-author-line small{font-size:10px;color:var(--muted);margin-top:1px}.activity-author-line a{color:var(--primary);font-weight:800}.author-avatar{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:color-mix(in srgb,var(--activity-accent,#527382) 12%,white);color:var(--activity-accent,#527382);font-size:11px;font-weight:900}.adopted-badge{display:inline-flex;border-radius:99px;background:#edf5ff;color:#35618a;border:1px solid #c6d9ed;padding:4px 8px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}.colleague-activity-card{background:linear-gradient(180deg,#fff,#fbfdfe)}.colleague-reuse-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:13px 0;padding:11px 12px;border-radius:11px;background:#f4f8fa;border:1px solid #cfdee4}.colleague-reuse-panel>div:first-child{display:flex;flex-direction:column}.colleague-reuse-panel small{color:var(--muted);font-size:10px;margin-top:2px}.colleague-reuse-panel form{margin:0}.activity-bottom-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}.activity-bottom-actions form{margin:0}.btn.link-danger{background:transparent;border:0;color:#9b4a45;box-shadow:none;padding-inline:5px}.library-empty{margin-bottom:14px;border-left:5px solid #9ab0ba}
.activity-origin-strip{margin:0 0 14px;padding:10px 12px;background:#f7fafb;border:1px solid #d2e0e5;border-radius:12px}.activity-origin-strip>div{display:flex;align-items:center;gap:9px}.activity-origin-strip>div>span:last-child{display:flex;flex-direction:column}.activity-origin-strip small{color:var(--muted);font-size:10px}.activity-detail-author{display:flex;align-items:center;gap:10px;border-left:5px solid var(--primary)}.activity-detail-author>div{display:flex;flex-direction:column}.activity-detail-author>div>span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}.activity-detail-author small{margin-top:3px;color:var(--muted)}.activity-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.activity-detail-grid .detail-feature{border-left:5px solid var(--primary)}.activity-detail-grid h2{margin:4px 0 8px}.activity-facts{display:grid;gap:7px;margin:8px 0 0}.activity-facts>div{display:grid;grid-template-columns:100px 1fr;gap:10px}.activity-facts dt{color:var(--muted);font-size:11px}.activity-facts dd{margin:0;font-weight:700}.activity-detail-contract{border-top:4px solid var(--primary)}.detail-objective{border:1px solid color-mix(in srgb,var(--objective-color) 25%,#d9e3e7);border-left:6px solid var(--objective-color);border-radius:12px;margin:10px 0;overflow:hidden}.detail-objective>header{display:flex;gap:9px;align-items:center;padding:9px 11px;background:color-mix(in srgb,var(--objective-color) 8%,white)}.detail-objective>header strong{background:var(--objective-color);color:#fff;border-radius:7px;padding:3px 7px}.detail-strategy{padding:10px 12px}.detail-strategy+.detail-strategy{border-top:1px dashed #d8e2e6}.detail-strategy ul{margin:7px 0 0;padding-left:20px}

.structure-heading{align-items:center}.edit-permission-badge{display:inline-flex;border-radius:99px;background:#e4f3e7;color:#356742;padding:6px 10px;font-size:10px;font-weight:900;text-transform:uppercase}.structure-summary{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:8px;margin-bottom:14px;border-top:4px solid var(--primary)}.structure-summary>div{display:flex;flex-direction:column;padding:4px 9px;border-left:1px solid #e1e8eb}.structure-summary>div:first-child{border-left:0}.structure-summary span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:900}.structure-summary strong{font-size:14px;color:#243f4a;margin-top:3px}.school-structure-list{display:grid;gap:16px}.school-domain-card{background:#fff;border:1px solid color-mix(in srgb,var(--domain-color) 26%,#d5e0e4);border-left:7px solid var(--domain-color);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.school-domain-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px;background:linear-gradient(90deg,color-mix(in srgb,var(--domain-color) 9%,white),#fff 70%)}.domain-code{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--domain-color);color:#fff;font-weight:900}.domain-copy>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}.domain-copy h2{margin:2px 0 6px}.domain-objective{margin:0;color:#405963}.domain-objective.missing{color:#9c6419}.school-strategies{padding:0 16px 16px}.school-strategy{border:1px solid #d6e1e5;border-radius:12px;overflow:hidden;margin-top:10px}.school-strategy>header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:11px 12px;background:#f7fafb}.school-strategy>header>div{display:flex;gap:8px;align-items:flex-start}.school-strategy h3{margin:0;font-size:13px}.strategy-code,.action-code{display:inline-flex;white-space:nowrap;border-radius:7px;background:color-mix(in srgb,var(--domain-color) 11%,white);color:color-mix(in srgb,var(--domain-color) 75%,#304a55);padding:3px 6px;font-size:10px;font-weight:900}.school-actions{display:grid}.school-action{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start;padding:10px 12px;border-top:1px solid #e2e9ec}.school-action p{margin:1px 0;color:#465d67}.school-action.inactive{opacity:.55;background:#f2f4f5}.structure-edit summary,.structure-add summary{cursor:pointer;color:var(--primary);font-size:10px;font-weight:900}.structure-edit[open],.structure-add[open]{position:relative}.structure-edit form,.structure-add form{display:grid;gap:8px;min-width:290px;padding:11px;margin-top:7px;background:#fff;border:1px solid #cbd9de;border-radius:10px;box-shadow:0 8px 24px rgba(27,58,70,.12);z-index:3}.structure-edit.compact form{min-width:320px}.structure-edit label,.structure-add label{font-size:10px;font-weight:800;color:#516872}.structure-add{margin:9px 12px 12px}.add-strategy{margin:0 16px 16px}.structure-new-domain{margin-top:16px;border-left:5px solid var(--primary)}.sheet-author{margin:8px 0 4px;font-size:11px;color:#50656f}

@media(max-width:900px){.library-view-tabs{grid-template-columns:1fr}.colleague-reuse-panel{align-items:flex-start;flex-direction:column}.activity-detail-grid{grid-template-columns:1fr}.structure-summary{grid-template-columns:1fr 1fr}.school-domain-head{grid-template-columns:42px 1fr}.school-domain-head>.structure-edit{grid-column:2}.school-action{grid-template-columns:auto 1fr}.school-action>.structure-edit{grid-column:2}.leadership-row-actions{flex-direction:column}}
@media(max-width:600px){.structure-summary{grid-template-columns:1fr}.school-domain-head{grid-template-columns:1fr}.domain-code{width:36px;height:36px}.school-domain-head>.structure-edit{grid-column:auto}.activity-facts>div{grid-template-columns:1fr}}
/* v0.16.1 — auteur visible aussi dans le suivi */
.choice-author{color:#59717c!important;font-weight:800;margin-top:2px}.routine-title span{line-height:1.35}
/* v0.16.2 — la navigation Direction reste manifestement cliquable avant le choix d'une personne */
.nav-needs-person{color:#fff;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14)}
.nav-needs-person::after{content:'›';margin-left:.4rem;font-size:1rem;opacity:.7}.nav-needs-person:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);transform:translateY(-1px)}

/* v0.17 — direction & référentiel */
.structure-heading-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}
.structure-edit-notice{display:flex;align-items:flex-start;gap:.75rem;margin:0 0 1rem;padding:.9rem 1rem;border-radius:14px;background:#fff7df;border:1px solid #ead19a;border-left:6px solid #b97714;color:#604b21}
.structure-edit-notice strong{white-space:nowrap}.structure-edit-notice span{color:#725f39}
.structure-edit>summary,.structure-add>summary{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #aac8d4;background:#f5fbfd;color:#165b70;border-radius:10px;padding:.45rem .7rem;font-weight:800;cursor:pointer;list-style:none}
.structure-edit>summary::-webkit-details-marker,.structure-add>summary::-webkit-details-marker{display:none}
.structure-edit[open]>summary,.structure-add[open]>summary{background:#e4f3f8;border-color:#6ea6b8}
.structure-edit form,.structure-add form{margin-top:.65rem;padding:.85rem;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 25px rgba(17,56,71,.08)}
.nav-needs-person{opacity:1!important;color:#fff!important;display:inline-grid!important;grid-template-columns:auto auto;column-gap:.35rem;align-items:center!important}
.nav-needs-person small{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .28rem;border-radius:99px;background:rgba(255,255,255,.16);color:#fff}
.nav-needs-person::after{display:none!important}
.direction-person-picker{display:flex!important}
@media(max-width:900px){.structure-heading-actions{justify-content:flex-start}.structure-edit-notice{flex-direction:column;gap:.25rem}}

/* v0.23 — bibliothèque compacte : cartes alignées par ligne */
.compact-library{gap:16px;align-items:stretch}
.activity-library{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px;align-items:stretch}
.compact-activity-card{
  padding:0!important;
  gap:0!important;
  overflow:hidden!important;
  min-height:0;
  height:100%;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdfe 100%);
  border-radius:20px;
}
.compact-activity-card:hover{transform:none!important;box-shadow:0 12px 30px rgba(28,48,61,.11)}
.activity-compact-shell{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:18px 18px 16px 18px;
  flex:1 1 auto;
  height:100%;
}
.activity-drawer-toggle{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  width:100%;
  min-width:0;
  padding:0 36px 0 0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.activity-drawer-toggle:hover .activity-compact-title{color:var(--activity-accent)}
.activity-compact-title{
  display:block;
  width:100%;
  color:#163845;
  font-size:20px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.018em;
  transition:color .14s ease;
  white-space:normal;
  overflow:visible;
  text-wrap:balance;
}
.activity-compact-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  width:100%;
  color:#61737d;
  font-size:12px;
  font-weight:700;
}
.activity-compact-meta .meta-chip,
.activity-compact-meta .year-badge,
.activity-compact-meta .adopted-badge{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  min-height:30px;
  padding:5px 10px;
  border-radius:10px;
  border:1px solid #d2dde2;
  background:#f7fafb;
  font-size:12px;
  font-weight:800;
  line-height:1.25;
  text-transform:none;
  letter-spacing:0;
}
.activity-compact-meta .type-chip{
  background:color-mix(in srgb,var(--activity-accent) 8%,white);
  border-color:color-mix(in srgb,var(--activity-accent) 20%,#d5e0e5);
  color:color-mix(in srgb,var(--activity-accent) 78%,#374e58);
}
.activity-compact-meta .frequency-chip{background:#fff;border-color:#d7e0e4;color:#5b6f78}
.activity-compact-meta .author-chip{background:#f7fafb;border-color:#d7e0e4;color:#49616c}
.activity-compact-meta .author-chip strong{color:#203f4b}
.activity-drawer-chevron{
  position:absolute;
  top:2px;
  right:0;
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:9px;
  background:color-mix(in srgb,var(--activity-accent) 10%,white);
  color:var(--activity-accent);
  font-size:16px;
  font-weight:900;
  transition:transform .18s ease,background .18s ease;
}
.compact-activity-card.drawer-open .activity-drawer-chevron{transform:rotate(180deg);background:color-mix(in srgb,var(--activity-accent) 17%,white)}
.activity-compact-periods,
.activity-compact-reuse{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  min-width:0;
  padding:12px 13px;
  border:1px solid #dbe5e9;
  border-radius:15px;
  background:linear-gradient(180deg,#fbfdfe,#f5f9fa);
}
.compact-period-label{
  color:#5a707b;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin:0;
}
.activity-compact-periods .period-checks{
  display:flex;
  gap:7px;
  flex-wrap:nowrap;
  justify-content:space-between;
}
.activity-compact-periods .period-check{
  flex:1 1 0;
  min-width:0;
  justify-content:center;
  padding:7px 6px;
  border-radius:10px;
  font-size:12px;
}
.activity-compact-periods .period-check input{width:13px;height:13px}
.activity-compact-periods .autosave-state{min-height:16px;font-size:11px;color:#6c7d86}
.activity-compact-reuse .reuse-actions{display:flex;gap:8px;flex-wrap:wrap}
.activity-compact-reuse form{margin:0}
.activity-compact-reuse .btn{padding:8px 11px;font-size:12px}
.activity-compact-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  margin-top:auto;
  padding-top:10px;
  border-top:1px solid #edf3f5;
}
.activity-compact-actions .btn{
  min-height:34px;
  padding:6px 10px;
  font-size:12px;
  border-radius:10px;
  white-space:nowrap;
}
.activity-card-drawer{
  border-top:1px solid color-mix(in srgb,var(--activity-accent) 18%,#dce5e8);
  padding:15px 18px 17px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--activity-accent) 4%,white),#fff 42%);
}
.activity-card-drawer[hidden]{display:none!important}
.activity-card-drawer>*:first-child{margin-top:0}
.activity-drawer-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}
.activity-drawer-topline>div{display:flex;flex-direction:column;gap:4px}
.activity-drawer-kicker{color:#5e727d;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.055em}
.activity-origin-inline{font-size:12px;color:#526873}
.activity-origin-inline a{font-weight:800;color:var(--primary)}
.drawer-close{border:0;background:#eef4f6;color:#45616c;border-radius:10px;padding:7px 10px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.drawer-close:hover{background:#e3eef2;color:#173f4e}
.activity-card-drawer .activity-domains{margin:6px 0 9px}
.activity-card-drawer .action-tags{padding:0 0 10px!important}
.activity-card-drawer .activity-section{margin:4px 0 11px;padding:12px 13px}
.activity-card-drawer .activity-description{margin:8px 0 11px}
.activity-drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid #e2eaed}
.activity-drawer-footer .activity-bottom-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.activity-drawer-footer .planning-toggle{margin:0!important;padding:0!important;border:0!important}
.activity-drawer-footer form{margin:0}
.compact-activity-card.drawer-open{box-shadow:0 14px 34px rgba(28,48,61,.14)}
.compact-activity-card.drawer-open .activity-compact-shell{background:linear-gradient(90deg,color-mix(in srgb,var(--activity-accent) 5%,white),#fff 58%)}
@media(max-width:980px){
  .activity-library{grid-template-columns:1fr}
}
@media(max-width:760px){
  .activity-compact-shell{padding:14px 14px 12px}
  .activity-compact-title{font-size:18px;text-wrap:pretty}
  .activity-compact-meta{font-size:11px}
  .activity-compact-meta .meta-chip,
  .activity-compact-meta .year-badge,
  .activity-compact-meta .adopted-badge{min-height:28px;padding:5px 9px;font-size:11px}
  .activity-compact-periods .period-checks{flex-wrap:wrap;justify-content:flex-start}
  .activity-compact-periods .period-check{flex:0 0 calc(33.333% - 5px);min-width:78px}
  .activity-compact-actions{justify-content:flex-start}
  .activity-drawer-footer{align-items:stretch;flex-direction:column}
  .activity-drawer-footer .activity-bottom-actions{margin-left:0}
}
@media(max-width:560px){
  .activity-compact-periods .period-check{flex:0 0 calc(50% - 5px)}
}

/* v0.24 — import des suivis Excel révisés */
.import-heading{margin-bottom:18px}.import-destination-panel,.import-upload-panel,.import-preview-panel,.import-history-panel{margin-top:14px}.import-destination-panel{border-left:6px solid #2f7b96}.import-upload-panel{border-left:6px solid #7a5aa6}.import-preview-panel{border-left:6px solid #3e8c60}.import-history-panel{border-left:6px solid #71848e}.import-destination-panel .panel-heading>div,.import-upload-panel .panel-heading>div,.import-preview-panel .panel-heading>div{display:flex;align-items:flex-start;gap:12px}.step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e4f1f5;color:#195d75;font-weight:900;flex:0 0 auto}.step-number.success{background:#e3f3e8;color:#2f7047}.panel-heading h2{margin:0 0 2px}.panel-heading p{margin:0}.import-context-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-top:14px}.import-context-form label{display:flex;flex-direction:column;gap:5px;color:#536a74;font-size:12px;font-weight:800}.import-context-form select{background:#fff}.import-upload-form{display:flex;align-items:stretch;gap:12px;margin-top:14px}.file-drop{position:relative;display:flex;align-items:center;gap:12px;flex:1;border:1px dashed #a9c0ca;background:linear-gradient(135deg,#fbfdfe,#f4f8fa);border-radius:13px;padding:12px 14px;cursor:pointer}.file-drop:hover{border-color:#6d9fb1;background:#f0f7f9}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-drop-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e4f1f5;color:#1a647d;font-size:11px;font-weight:900;letter-spacing:.04em}.file-drop>span:nth-child(2){display:flex;flex-direction:column}.file-drop small{color:var(--muted);margin-top:2px}.import-scope-note{margin-top:11px;padding:10px 12px;border-radius:10px;background:#f7f4fb;border:1px solid #ddd2ec;color:#5d536c;font-size:12px}.import-file-summary{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:8px;margin:15px 0}.import-file-summary>div{display:flex;flex-direction:column;background:#f7fafb;border:1px solid #d7e2e6;border-radius:11px;padding:10px 12px}.import-file-summary span{font-size:10px;color:#687b84;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.import-file-summary strong{margin-top:3px;color:#243f4a}.import-warning{margin:10px 0;background:#fff8e7;border-color:#e8c987}.import-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0}.import-kpis article{background:#fff;border:1px solid #d3dfe4;border-top:4px solid #56879a;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.import-kpis article.good{border-top-color:#3e8c60}.import-kpis article.update{border-top-color:#3b7fb0}.import-kpis article.neutral{border-top-color:#83919a}.import-kpis article.alert{border-top-color:#c0771d}.import-kpis span{font-size:10px;font-weight:900;color:#6a7d86;text-transform:uppercase}.import-kpis strong{font-size:24px;color:#203d49}.period-import-summary{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 16px}.period-import-summary span{display:inline-flex;align-items:center;gap:6px;background:#f5f9fa;border:1px solid #d6e2e6;border-radius:9px;padding:6px 9px;color:#536a74;font-size:11px}.period-import-summary strong{color:#204554}.import-detail-list{border-top:1px solid #dbe5e9;padding-top:10px}.import-detail-list summary{cursor:pointer;color:#2a6174;font-weight:800}.import-detail-list[open] summary{margin-bottom:10px}.import-table td{vertical-align:top}.import-table code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#edf3f5;border-radius:6px;padding:2px 5px}.import-result{display:inline-flex;padding:4px 7px;border-radius:99px;font-size:10px;font-weight:900;white-space:nowrap}.import-new{background:#e4f4e9;color:#306a45}.import-update{background:#e7f1f8;color:#2a6588}.import-same{background:#eef1f3;color:#64717a}.import-conflict{background:#fff0d8;color:#8a5a12}.import-unknown{background:#f7e9eb;color:#8a3a46}.import-confirm-form{margin-top:16px;padding-top:13px;border-top:1px solid #dce5e9}.confirm-warning,.replace-conflicts{display:flex;gap:9px;align-items:flex-start;border-radius:11px;padding:10px 12px;margin-bottom:10px}.confirm-warning{background:#fff7e3;border:1px solid #e8cc8a}.replace-conflicts{background:#f8fafb;border:1px solid #d7e2e6}.confirm-warning input,.replace-conflicts input{width:auto;margin-top:3px}.replace-conflicts span{display:flex;flex-direction:column}.replace-conflicts small{font-weight:400;color:var(--muted);margin-top:2px}.import-confirm-form .button-row{justify-content:flex-end;margin-top:12px}.import-history-panel table td{vertical-align:middle}
@media(max-width:1000px){.import-file-summary{grid-template-columns:1fr 1fr}.import-kpis{grid-template-columns:repeat(3,1fr)}.import-context-form{grid-template-columns:1fr 1fr}.import-upload-form{flex-direction:column}.import-upload-form .btn{align-self:flex-start}}
@media(max-width:650px){.import-file-summary,.import-context-form{grid-template-columns:1fr}.import-kpis{grid-template-columns:1fr 1fr}.import-confirm-form .button-row{flex-direction:column}.import-confirm-form .button-row .btn{width:100%}}

/* v0.25 — import Excel : disposition détectée et validations simples */
.import-layout-summary{display:flex;gap:8px;flex-wrap:wrap;margin:-3px 0 12px}.import-layout-summary span{display:inline-flex;align-items:center;gap:5px;background:#eef6f8;border:1px solid #cfe0e6;border-radius:9px;padding:6px 9px;color:#49636e;font-size:11px}.import-layout-summary strong{color:#234956}.import-kpis{grid-template-columns:repeat(6,1fr)}.import-kpis article.marker{border-top-color:#7d6aa6}.import-marker{display:inline-flex;padding:4px 7px;border-radius:8px;background:#f1ecf8;border:1px solid #d9ccea;color:#655184;font-size:10px;font-weight:900;white-space:nowrap}.import-table .muted{font-size:11px}.import-table td:nth-child(5){min-width:130px}
@media(max-width:1180px){.import-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.import-kpis{grid-template-columns:1fr 1fr}.import-layout-summary{flex-direction:column}.import-layout-summary span{align-items:flex-start}}


/* ===== Domaine des activités répétitives (ajout v0.30) ===== */
.domain-box{margin:1rem 0;padding:1rem;border:1px solid var(--line,#e2e8ec);border-radius:12px;background:#fafcfd}
.domain-box-copy{margin-bottom:.6rem;display:block}
.domain-box-copy small{display:block;color:#5b6b73;margin-top:.2rem}
.domain-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem}
.domain-choice{position:relative;display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:1.5px solid var(--line,#e2e8ec);border-radius:10px;cursor:pointer;background:#fff}
.domain-choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.domain-choice .domain-choice-dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--domain-accent,#9aa7ad);flex:0 0 auto}
.domain-choice.selected{border-color:var(--domain-accent,#0b6078);box-shadow:inset 0 0 0 1px var(--domain-accent,#0b6078)}
.domain-choice-copy{display:flex;flex-direction:column;line-height:1.15}
.domain-choice-copy small{color:#5b6b73}
.domain-choice-none .domain-choice-dot{background:transparent;border:1.5px dashed #9aa7ad}

/* Regroupement des routines par domaine (suivi de période) */
.routine-domain-group{margin-bottom:1rem}
.routine-domain-heading{border-left:4px solid var(--accent,#9aa7ad);padding-left:.6rem}
.routine-domain-tags{display:inline-flex;gap:.35rem;margin-left:.5rem;flex-wrap:wrap}
.routine-domain-tag{font-size:.72rem;padding:.05rem .4rem;border-radius:999px;background:color-mix(in srgb,var(--tag,#9aa7ad) 16%,transparent);color:var(--tag,#5b6b73);border:1px solid color-mix(in srgb,var(--tag,#9aa7ad) 40%,transparent)}

/* Sous-titre de domaine dans l'impression des activités répétitives */
.print-routine-domain th{background:#f2f5f7;border-left:4px solid var(--accent,#9aa7ad);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;padding:.3rem .5rem;text-align:left}

/* Bibliothèque : liste annuelle commune, associations personnelles et archives. */
.library-main-tabs{max-width:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:24px}
.library-main-tabs a{padding:16px;border-width:2px;min-height:84px;justify-content:center}
.library-main-tabs a.active{border-bottom-width:5px;background:#e9f4f7}
.library-main-tabs a strong{font-size:16px}.library-main-tabs a small{font-size:12px;line-height:1.4}
.recurring-intro{background:#eaf4f7;border:1px solid #c2dfe7;border-left:5px solid var(--primary);border-radius:14px;padding:20px 24px;margin-bottom:22px;color:#294f5d}
.recurring-intro>strong{font-size:19px}.recurring-intro p{margin:8px 0 0;max-width:100ch;line-height:1.65}
.recurring-create>summary{font-weight:750;color:var(--primary);cursor:pointer}
.recurring-count{display:inline-block;margin-left:14px;font-size:12px;font-weight:600;opacity:.8;white-space:nowrap}
.recurring-action{padding:22px;margin-bottom:14px;overflow-wrap:anywhere}
.recurring-action .action-head{margin-bottom:12px}.recurring-action h3{font-size:18px;line-height:1.5;margin:0}
.recurring-frequency{margin:12px 0 0;padding:9px 12px;background:color-mix(in srgb,var(--accent) 9%,white);border-radius:8px;font-size:14px;line-height:1.6}
.recurring-frequency strong{margin-right:8px}.recurring-implementations h4{font-size:14px;margin:0 0 10px}
.recurring-linked-activity{padding:12px 0;border-top:1px solid #e3eaed;display:grid;grid-template-columns:minmax(200px,1fr) auto;gap:8px 20px;align-items:center}
.recurring-linked-activity>div:first-child{display:flex;flex-direction:column;gap:4px}.recurring-linked-activity a{font-weight:650}
.recurring-linked-activity small{font-size:12px;color:var(--muted)}.recurring-linked-activity .autosave-state{grid-column:1/-1;min-height:0}
.recurring-association{margin-top:12px;border-top:1px solid #e3eaed;padding-top:12px}
.recurring-association>summary,.recurring-management summary{cursor:pointer;color:var(--primary);font-weight:600;font-size:14px}
.recurring-management{margin-top:16px;padding-top:12px;border-top:1px solid #e3eaed;display:grid;gap:12px}
.recurring-edit-form{max-width:850px;display:grid;gap:14px;padding-top:18px}.recurring-edit-form>button{justify-self:start}
.recurring-agreement{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:14px;line-height:1.6;margin:12px 0}
.recurring-agreement input,.recurring-choices input{width:18px;height:18px;margin:3px 0 0;flex:0 0 18px;accent-color:var(--primary)}
.recurring-choices{display:grid;gap:8px;max-height:380px;overflow:auto;margin:16px 0;padding:2px}
.recurring-choices>label{display:flex;gap:10px;padding:11px 13px;border:1px solid #d5e1e6;border-radius:9px;align-items:flex-start;cursor:pointer;background:#fff;font-weight:500}
.recurring-choices>label:has(input:checked){background:#eef7fa;border-color:#76a7b7}.recurring-choices span{min-width:0;overflow-wrap:anywhere}
.recurring-choices small{display:block;color:var(--muted);font-size:12px;margin-top:3px;font-weight:400}
.activity-recurring-fields h2,.activity-relations h2{font-size:20px}.activity-relations>p{max-width:105ch;line-height:1.65}
.relation-row{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 0;border-top:1px solid #e3eaed}
.relation-add{display:flex;align-items:flex-end;gap:12px;margin-top:16px}.relation-add>label{flex:1;min-width:0}
.activity-lifecycle-controls{display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid #e0e9ed;padding-top:16px;margin-top:12px}
.activity-delete{flex:1;min-width:220px}.activity-delete summary{padding:8px 0;font-size:13px;cursor:pointer}
.activity-delete form{padding:14px;background:#fff6f3;border:1px solid #edc9c0;border-radius:9px;max-width:850px}
.danger-text{color:#993e35!important}.recurring-statistics .panel-heading{align-items:flex-start;gap:20px}
.recurring-statistics .panel-heading p{max-width:90ch;line-height:1.6}.recurring-stat-table{overflow:auto;margin-top:16px}
.recurring-stat-table table{width:100%;border-collapse:collapse;text-align:center}.recurring-stat-table th,.recurring-stat-table td{padding:14px 12px;border-bottom:1px solid #e0e8ed;white-space:nowrap}
.recurring-stat-table thead th{background:#f2f6f8;color:#4a606b;font-size:12px}.recurring-stat-table th:first-child{text-align:left}
.recurring-stat-domain{display:inline-block;border-left:4px solid var(--accent);padding-left:10px;font-size:14px}
.recurring-common-stat{margin:16px 0 0;padding-top:14px;border-top:1px solid #e0e8ed;color:#466371;font-size:14px}
.type-choice-grid:has(input[value="cycle_recurring"]){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.library-main-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.recurring-linked-activity{grid-template-columns:1fr}.type-choice-grid:has(input[value="cycle_recurring"]){grid-template-columns:1fr}}
@media(max-width:600px){.library-main-tabs{gap:7px}.library-main-tabs a{padding:11px;min-height:90px}.library-main-tabs a strong{font-size:14px}.library-main-tabs a small{font-size:11px}.recurring-intro,.recurring-action{padding:16px}.recurring-count{display:block;margin:5px 0 0}.recurring-action h3{font-size:16px}.relation-add,.relation-row{flex-direction:column;align-items:stretch}.activity-lifecycle-controls{display:block}.recurring-statistics .panel-heading{display:block}.recurring-stat-table th,.recurring-stat-table td{padding:10px}.recurring-choices{max-height:320px}}

/* Formations and recurring library refinements */
[data-recurring-domain][hidden], [data-recurring-filter-empty][hidden], [data-recurring-type-fields][hidden], [data-training-cycles][hidden], [data-training-exclusions][hidden] { display:none!important; }
.recurring-domain-filter,.training-year-choices { display:flex;flex-wrap:wrap;gap:12px 24px; }
.recurring-domain-filter legend { font-weight:700;padding:0 8px; }
/* Archive and delete participate in the same button row as edit and print. */
.activity-lifecycle-controls { display:contents; }
.activity-delete { position:relative;flex:0 0 auto;min-width:0; }
.activity-delete[open] { flex:1 1 100%;max-width:620px; }
.activity-delete>summary { cursor:pointer;list-style:none; }
.activity-delete>form { margin-top:12px;padding:16px;border:1px solid #e8c8c8;border-radius:12px;background:#fff8f6; }
.training-list { display:grid;gap:20px; }
.training-card { border-top:4px solid #528b89;min-width:0; }
.training-card .heading-row { align-items:flex-start;gap:20px; }
.training-card h2 { margin-top:4px; }
.training-facts { display:flex;flex-wrap:wrap;gap:20px 40px;margin:18px 0; }
.training-facts dt { font-size:.8rem;color:#576e78;font-weight:700; }
.training-facts dd { margin:5px 0; }
.training-facts dd span { display:block; }
.training-form { max-width:1050px;margin:auto; }
.training-form .panel { margin-bottom:20px; }
.training-year-choices { margin:14px 0 22px; }
.training-audience { max-width:440px; }
.training-badge { display:inline-flex;background:#e8f4f1;border:1px solid #b8d9ce;color:#235e52;padding:5px 10px;border-radius:999px;font-size:.82rem;white-space:nowrap; }
.training-flag-form { display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0; }
.training-flag-form .check { margin:0; }
.school-action .training-flag-form { flex:0 1 260px; }
.training-proposals article { display:flex;align-items:center;gap:16px;border-bottom:1px solid #dce5e8;padding:14px 0; }
.training-proposals article>div { flex:1; }
.training-proposals small { display:block;color:#647b85; }
.training-attendees,.training-attendance-preview { margin:16px 0; }
.training-completion-notice { background:#e9f5ed;border-left:4px solid #548c65;padding:12px 16px;border-radius:8px; }
.training-card p,.training-form p { overflow-wrap:anywhere; }
@media(max-width:650px) {
  .training-card .heading-row,.training-proposals article { flex-direction:column;align-items:flex-start; }
  .training-form .form-grid.two { grid-template-columns:1fr; }
  .training-form .span2 { grid-column:auto; }
  .training-facts { display:grid;gap:15px; }
}
.training-card .heading-row { padding:0;margin:0;background:none;border:0;border-radius:0;box-shadow:none; }
.training-card .heading-row::before,.training-card .heading-row::after { display:none; }
[data-attendance-reset][hidden] { display:none!important; }
@media(max-width:650px) {
  .school-structure-list .school-action { grid-template-columns:minmax(0,1fr); }
  .school-structure-list .school-action>.action-code { width:max-content; }
  .school-structure-list .school-action>.training-flag-form { width:100%; }
}
@media(min-width:901px) {
  .school-structure-list .school-action { grid-template-columns:auto minmax(0,1fr) auto auto; }
}
@media(max-width:650px) {
  .school-structure-list .school-action>* { grid-column:1;grid-row:auto; }
  .school-structure-list .structure-edit form,.school-structure-list .structure-add form { min-width:0;width:100%; }
}
