:root{--bg:#f5f5f2;--panel:#fff;--ink:#171717;--muted:#717171;--line:#deded8;--accent:#b3261e;--dark:#202020;--soft:#ecece7;--green:#2e7d32;--orange:#d97706;--blue:#2563eb;--red:#b91c1c;--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#191919;color:white;padding:22px 16px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--accent);display:grid;place-items:center;font-weight:800;font-size:22px}.brand strong{display:block;font-size:18px}.brand small{color:#aaa}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{padding:11px 12px;border-radius:10px;color:#cfcfcf;display:flex;gap:10px;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:#2a2a2a;color:#fff}.nav-sep{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#777;margin:18px 12px 5px}.sidebar-user{margin-top:auto;border-top:1px solid #333;padding:14px 8px 0}.sidebar-user strong,.sidebar-user small,.sidebar-user a{display:block}.sidebar-user small{color:#999;margin:3px 0 10px}.sidebar-user a{font-size:13px;color:#ddd}.main{min-width:0}.topbar{padding:28px 32px 8px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;color:var(--muted)}.content{padding:18px 32px 40px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stats article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px #00000008}.stats article{padding:18px}.stats span{display:block;color:var(--muted);font-size:13px}.stats strong{font-size:30px;margin-top:8px;display:block}.grid{display:grid;gap:18px}.grid.two,.project-grid{grid-template-columns:1fr 1fr}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.panel h2,.panel h3{margin:0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.count,.pill{background:var(--soft);padding:5px 9px;border-radius:999px;font-size:12px}.project-list{display:flex;flex-direction:column}.project-list a{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.project-list a:last-child{border:0}.project-list small{display:block;color:var(--muted);margin-top:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid.compact{grid-template-columns:repeat(4,1fr)}.span2{grid-column:span 2}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#555}input,select,textarea{width:100%;border:1px solid #cecec7;border-radius:9px;background:#fff;padding:10px 11px;color:#111}textarea{resize:vertical}.btn{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:650}.btn.primary{background:var(--dark);color:#fff}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px}.flash.success{background:#e8f5e9;color:#1b5e20}.flash.error{background:#fdecec;color:#8a1c1c}.roadmap-stack{display:grid;gap:18px}.roadmap h3{font-size:14px;color:var(--muted);margin:8px 0 14px}.roadmap-projects,.roadmap-gpro_projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.roadmap-card{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:7px;background:#fafaf8}.roadmap-card span{font-size:12px;color:var(--accent)}.roadmap-card small{color:var(--muted)}.project-switch{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.project-switch form{display:flex;gap:10px;flex-wrap:wrap}.project-switch select{min-width:260px}.meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}.meta span{background:var(--soft);padding:8px 10px;border-radius:9px;font-size:12px}.raci-box{border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}.raci-box legend{padding:0 6px;color:#444}.raci-box select{min-height:85px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:#666;font-size:11px;text-transform:uppercase;letter-spacing:.06em}td small{display:block;color:var(--muted);max-width:460px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.type,.status{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px}.type-user_story{background:#ede9fe;color:#5b21b6}.type-task{background:#e0f2fe;color:#075985}.type-note{background:#fef3c7;color:#92400e}.s-backlog{background:#eee;color:#555}.s-planned{background:#dbeafe;color:#1d4ed8}.s-in_progress{background:#ffedd5;color:#c2410c}.s-blocked{background:#fee2e2;color:#b91c1c}.s-done{background:#dcfce7;color:#166534}.kanban{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow:auto;padding-bottom:8px}.kanban-col{background:#ecece8;border-radius:14px;padding:10px;min-height:520px}.kanban-col header{display:flex;justify-content:space-between;padding:6px 5px 12px}.kanban-col header span{background:#fff;border-radius:999px;padding:2px 7px;font-size:11px}.kanban-drop{display:flex;flex-direction:column;gap:9px;min-height:470px}.kanban-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px;cursor:grab;display:flex;flex-direction:column;gap:8px}.kanban-card.dragging{opacity:.45}.kanban-card small{color:var(--muted)}.legend{display:flex;gap:22px;color:var(--muted);font-size:12px;margin-top:8px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.admin-tabs a{background:white;border:1px solid var(--line);padding:8px 11px;border-radius:999px;font-size:12px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.chips span{background:var(--soft);padding:7px 9px;border-radius:999px;font-size:12px}.inline{display:flex;gap:10px;margin-bottom:14px}.sprint-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px}.sprint-grid article{background:#f8f8f5;border:1px solid var(--line);border-radius:10px;padding:10px}.sprint-grid small{display:block;color:var(--muted);margin-top:4px}.empty{color:var(--muted)}.login-body{min-height:100vh;display:grid;place-items:center;background:#efefeb;padding:24px}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 50px #0000000d}.login-card h1{margin:24px 0 18px}.login-card form{display:grid;gap:14px}.login-card .btn{margin-top:4px}@media(max-width:1050px){.app-shell{grid-template-columns:82px 1fr}.sidebar{padding:18px 10px}.brand div,.sidebar nav a:not(.active){font-size:0}.sidebar nav a{justify-content:center}.sidebar nav a span{font-size:18px}.sidebar-user strong,.sidebar-user small{display:none}.stats{grid-template-columns:repeat(2,1fr)}.grid.two,.project-grid{grid-template-columns:1fr}.form-grid.compact{grid-template-columns:1fr 1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:static;height:auto}.sidebar nav{flex-direction:row;overflow:auto}.sidebar nav a{font-size:0;min-width:45px}.sidebar-user{display:none}.content,.topbar{padding-left:16px;padding-right:16px}.stats{grid-template-columns:1fr 1fr}.form-grid,.form-grid.compact{grid-template-columns:1fr}.span2{grid-column:span 1}.raci-box{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(5,260px)}}

.roadmap-subprojects{display:flex;flex-direction:column;gap:4px;margin-top:5px;padding-top:7px;border-top:1px dashed var(--line)}.roadmap-subprojects em{font-style:normal;font-size:12px;color:#555}.subproject-list{display:grid;gap:10px;margin-top:16px}.subproject-list article{border:1px solid var(--line);border-radius:12px;padding:13px 14px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:#fafaf8}.subproject-list article small{display:block;color:var(--muted);margin-top:4px}.subproject-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.btn.danger{background:#fee2e2;color:#991b1b;padding:7px 10px}.subproject-form{padding-bottom:14px;border-bottom:1px solid var(--line)}@media(max-width:700px){.subproject-list article{flex-direction:column}.subproject-meta{justify-content:flex-start}}
/* GPro v1.2 — ergonomie 3 clics */
.head-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--ink);padding:8px 11px}.create-menu,.action-menu{position:relative}.create-menu>summary,.action-menu>summary{list-style:none}.create-menu>summary::-webkit-details-marker,.action-menu>summary::-webkit-details-marker{display:none}.create-pop,.action-pop{position:absolute;right:0;top:calc(100% + 7px);z-index:40;min-width:180px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #0002;padding:6px;display:grid;gap:2px}.create-pop a,.action-pop a,.action-pop button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:8px;color:var(--ink);cursor:pointer;font:inherit;font-size:13px}.create-pop a:hover,.action-pop a:hover,.action-pop button:hover{background:var(--soft)}.action-pop button{color:var(--red)}.action-menu>summary{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;background:#fff;cursor:pointer;font-size:20px;line-height:1}.action-menu form{margin:0}.roadmap-card-wrap{position:relative}.roadmap-card-wrap>.action-menu{position:absolute;right:9px;top:9px}.roadmap-card-wrap>.roadmap-card{padding-right:50px;height:100%}.compact-list article{padding:0;align-items:stretch;position:relative}.compact-list .object-main{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex:1;padding:13px 14px}.compact-list article>.action-menu{margin:10px 10px 10px 0}.title-link{display:block}.title-link:hover strong{text-decoration:underline}.row-actions{width:48px}.project-summary .panel-head{align-items:center}.quick-dialog{position:fixed;z-index:101;border:0;border-radius:18px;width:min(760px,calc(100vw - 32px));max-height:88vh;overflow:auto;padding:0;box-shadow:0 26px 90px #0005;background:#fff;top:50%;left:50%;transform:translate(-50%,-50%);margin:0}.dialog-backdrop{position:fixed;inset:0;background:#0006;z-index:100}.quick-dialog .dialog-head{position:sticky;top:0;z-index:2;background:#fff;display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px 14px;border-bottom:1px solid var(--line)}.quick-dialog .dialog-head h2{margin:2px 0 0}.dialog-close{width:36px;height:36px;border-radius:10px;background:var(--soft);display:grid;place-items:center;font-size:25px}.modal-form{padding:20px 22px 24px}.quick-dialog>.empty{padding:22px}.kanban-card{position:relative}.kanban-card .card-edit{display:block}.kanban-card .card-edit:hover strong{text-decoration:underline}.kanban-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}
@media(max-width:700px){.create-pop,.action-pop{position:fixed;left:16px;right:16px;top:auto;bottom:18px;min-width:0}.quick-dialog{width:calc(100vw - 18px);max-height:94vh}.modal-form{grid-template-columns:1fr}.modal-form .span2{grid-column:span 1}.compact-list .object-main{flex-direction:column}}

/* v1.2.1 - actions explicites sur les sous-projets */
.subproject-actions{display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:10px}
.btn-small{padding:7px 10px;font-size:.82rem;white-space:nowrap}
.subproject-list article{display:flex;align-items:center}
.subproject-list .object-main{flex:1;min-width:0}
@media(max-width:760px){.subproject-list article{align-items:flex-start}.subproject-actions{padding-left:6px}.subproject-actions .btn-small{font-size:0;padding:0;width:36px;height:36px;display:grid;place-items:center}.subproject-actions .btn-small::after{content:'✎';font-size:16px}}

/* Journal annuel */
.journal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.journal-summary{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:#fff}.journal-summary strong{font-size:1.35rem}.journal-summary span{color:var(--muted,#64748b);font-size:.9rem}.journal-sections{display:grid;gap:18px}.journal-list{display:grid;gap:0}.journal-entry{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px;align-items:start;padding:16px 0;border-top:1px solid var(--border,#e5e7eb)}.journal-entry:first-child{border-top:0}.journal-date{display:flex;flex-direction:column}.journal-date strong{font-size:1rem}.journal-date small,.journal-path{color:var(--muted,#64748b);font-size:.78rem}.journal-body>strong{display:block;margin-top:3px}.journal-body p{margin:6px 0 0;color:var(--muted,#64748b);line-height:1.45}.journal-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:720px){.journal-toolbar{align-items:stretch;flex-direction:column}.journal-entry{grid-template-columns:56px minmax(0,1fr)}.journal-entry>.status{grid-column:2;justify-self:start}}

/* GPro v1.4 — fiches de pilotage Projet / Sous-projet */
.workspace-switch{margin-bottom:18px}.detail-hero{padding:0;overflow:hidden}.detail-hero-main{display:flex;justify-content:space-between;gap:24px;padding:24px 26px 18px}.detail-hero-main h2{font-size:1.65rem;margin:4px 0 8px}.detail-hero-main p{max-width:820px;margin:0;color:var(--muted);line-height:1.55}.detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafaf8}.detail-meta span{padding:14px 18px;border-right:1px solid var(--line);display:grid;gap:3px}.detail-meta span:last-child{border-right:0}.detail-meta small{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem}.mini-stats{display:grid;grid-template-columns:repeat(5,1fr);padding:14px 18px;gap:10px}.mini-stats article{display:flex;align-items:baseline;gap:7px;padding:9px 11px;border-radius:12px;background:var(--soft)}.mini-stats strong{font-size:1.22rem}.mini-stats span{font-size:.78rem;color:var(--muted)}.workspace-panel{margin-top:18px}.subproject-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subproject-cards article{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;position:relative}.subproject-card-main{display:block;padding:16px 16px 12px}.subproject-card-main strong{display:block;font-size:1rem;margin:9px 0 5px}.subproject-card-main small{display:block;color:var(--muted);line-height:1.4}.subproject-card-foot{display:flex;justify-content:space-between;gap:10px;margin-top:14px;padding-top:10px;border-top:1px dashed var(--line);font-size:.76rem;color:var(--muted)}.subproject-card-actions{display:flex;align-items:center;gap:7px;padding:0 12px 12px;justify-content:flex-end}.text-link{font-size:.82rem;color:var(--muted)}.compact-kanban{grid-template-columns:repeat(5,minmax(190px,1fr));gap:10px;overflow:auto;padding-bottom:4px}.compact-kanban .kanban-col{min-width:190px}.compact-kanban .kanban-col header{padding:10px 11px}.compact-kanban .kanban-card{margin-bottom:8px}.compact-kanban .kanban-card a{padding:10px}.compact-kanban .kanban-card strong{font-size:.84rem}.burndown-panel canvas{width:100%;display:block;max-height:300px}.sprint-picker select{min-width:190px}.breadcrumb{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.9rem}.breadcrumb a{color:var(--ink)}.subproject-hero{border-left:4px solid #888}
@media(max-width:900px){.subproject-cards{grid-template-columns:1fr}.mini-stats{grid-template-columns:repeat(3,1fr)}.detail-meta{grid-template-columns:1fr}.detail-meta span{border-right:0;border-bottom:1px solid var(--line)}.detail-meta span:last-child{border-bottom:0}}
@media(max-width:620px){.detail-hero-main{padding:18px;flex-direction:column}.mini-stats{grid-template-columns:repeat(2,1fr);padding:12px}.subproject-card-foot{flex-direction:column}.workspace-switch{align-items:stretch;gap:10px}.breadcrumb{flex-wrap:wrap}.sprint-picker select{min-width:0;width:100%}}

/* v1.4.1 — dates du sprint automatiques */
.sprint-derived-date[readonly]{background:#f4f4f0;color:#555;cursor:not-allowed;border-style:dashed}

.kanban-owner{display:block;margin-top:8px;font-size:.78rem;font-weight:600;opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.raci-help{grid-column:1/-1;margin:0 0 4px;color:#666;font-size:.82rem}
.raci-none-option{font-style:italic}

/* v1.4.6 — cartes Kanban plus lisibles */
.kanban-card .card-edit{display:block;text-decoration:none}
.kanban-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.kanban-title{display:block;line-height:1.28;margin-bottom:10px;font-size:.96rem}
.kanban-meta{display:grid;gap:7px}
.kanban-meta span{display:grid;grid-template-columns:84px 1fr;gap:8px;align-items:start;padding-top:6px;border-top:1px solid rgba(0,0,0,.07)}
.kanban-meta b{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.56}
.kanban-meta em{font-style:normal;font-size:.8rem;line-height:1.25;overflow-wrap:anywhere}
.compact-kanban .kanban-meta span{grid-template-columns:74px 1fr}

/* v1.4.7 — Mon Kanban */
.my-kanban-panel{overflow:hidden}
.personal-kanban{overflow-x:auto;padding-bottom:8px}
.personal-kanban .kanban-col{min-width:240px}
.my-kanban-stats{margin-bottom:18px}

/* v1.4.9 — correction alignement des métadonnées Kanban */
.kanban-meta{
  display:grid;
  gap:8px;
}
.kanban-meta span{
  display:block;
  padding-top:7px;
  border-top:1px solid rgba(0,0,0,.07);
  min-width:0;
}
.kanban-meta b{
  display:block;
  margin-bottom:3px;
  font-size:.69rem;
  line-height:1.15;
  text-transform:uppercase;
  letter-spacing:.04em;
  opacity:.56;
  white-space:normal;
}
.kanban-meta em{
  display:block;
  min-width:0;
  font-style:normal;
  font-size:.81rem;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.compact-kanban .kanban-meta span{
  display:block;
}

/* v1.5.1 — sauvegarde / restauration */
.backup-intro{max-width:850px;color:#666;line-height:1.55}
.backup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.backup-card{display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:20px;border:1px solid rgba(0,0,0,.09);border-radius:14px;background:#fff}
.backup-card h3{margin:8px 0 6px}
.backup-card p{margin:0;color:#666;line-height:1.45}
.backup-card form{display:grid;gap:10px}
.backup-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#f2f2f2;font-size:1.15rem;font-weight:700}
.danger-soft{background:#fffdfb}
@media(max-width:760px){.backup-actions{grid-template-columns:1fr}}

/* v1.5.3 — services */
.service-portfolios{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px;border:1px solid rgba(0,0,0,.09);border-radius:10px}
.service-portfolios legend{padding:0 5px;font-size:.8rem;font-weight:700}
.check-line{display:flex!important;align-items:center;gap:7px;margin:0!important}
.check-line input{width:auto!important}
.service-admin-list{display:grid;gap:12px;margin-top:18px}
.service-admin-card{padding:16px;border:1px solid rgba(0,0,0,.09);border-radius:12px}
.service-actions{display:flex;align-items:center;gap:8px}
.user-service-form select{min-width:150px}

/* v1.5.4 — rattachement transversal multi-services */
.user-services-field{padding:12px;border:1px solid rgba(0,0,0,.09);border-radius:10px}
.user-services-field legend{padding:0 5px;font-size:.8rem;font-weight:700}
.field-help{grid-column:1/-1;margin:0 0 8px;color:#666;font-size:.82rem}
.service-checkbox-grid{display:flex;flex-wrap:wrap;gap:8px 16px}
.user-services-inline{margin:0}
.multi-service-picker{position:relative;min-width:200px}
.multi-service-picker summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border:1px solid rgba(0,0,0,.1);border-radius:9px;background:#fff}
.multi-service-picker summary::-webkit-details-marker{display:none}
.multi-service-picker summary span{font-size:.72rem;opacity:.6}
.multi-service-pop{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:230px;max-width:320px;padding:12px;display:grid;gap:9px;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.12)}

/* v1.5.5 — Administration réorganisée */
.admin-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:22px;padding:24px;border:1px solid rgba(0,0,0,.08);border-radius:18px;background:linear-gradient(180deg,#fff,#fafafa)}
.admin-hero h2{margin:4px 0 8px;font-size:1.55rem}
.admin-hero p{margin:0;color:#666;max-width:650px}
.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:10px}
.admin-kpis article{padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;text-align:center}
.admin-kpis span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;opacity:.58}
.admin-kpis strong{display:block;margin-top:5px;font-size:1.35rem}
.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}
.admin-nav{position:sticky;top:18px;display:grid;gap:16px;padding:14px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff}
.admin-nav-group{display:grid;gap:5px}
.admin-nav-group small{padding:4px 8px 6px;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;opacity:.5;font-weight:700}
.admin-nav a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;text-decoration:none;color:inherit;font-size:.86rem}
.admin-nav a:hover{background:#f3f3f3}
.admin-nav a span{width:18px;text-align:center;opacity:.7}
.admin-content{display:grid;gap:18px;min-width:0}
.admin-section{scroll-margin-top:18px}
.admin-section .panel-head{align-items:flex-start}
.section-help{margin:5px 0 0;color:#707070;font-size:.84rem;line-height:1.45}
.admin-section form.form-grid{margin-top:4px}
.admin-section + .admin-section{margin-top:0}
@media(max-width:1050px){
  .admin-hero{grid-template-columns:1fr}
  .admin-kpis{grid-template-columns:repeat(4,1fr)}
  .admin-layout{grid-template-columns:1fr}
  .admin-nav{position:static;display:flex;overflow-x:auto;gap:10px}
  .admin-nav-group{display:flex;align-items:center;gap:4px;min-width:max-content}
  .admin-nav-group small{display:none}
}
@media(max-width:700px){
  .admin-kpis{grid-template-columns:repeat(2,1fr)}
  .admin-hero{padding:18px}
}

/* v1.5.7 — sélection administrateur dans Mon Kanban */
.my-kanban-user-switch{margin-bottom:18px}
.my-kanban-user-switch .inline{margin:0}
.my-kanban-user-switch select{min-width:240px}

/* v1.5.8 — suppression utilisateur */
.user-delete-form{margin-top:16px;padding-top:16px;border-top:1px solid rgba(0,0,0,.09)}
.user-self-delete-note{margin-top:16px;padding:10px 12px;border-radius:9px;background:#f6f6f6;color:#666;font-size:.82rem}

/* v1.5.9 — administration services compacte */
.admin-kpis{grid-template-columns:repeat(3,minmax(105px,1fr))}
.service-create-box{margin:4px 0 14px}
.service-create-box>summary{display:inline-flex;cursor:pointer;list-style:none}
.service-create-box>summary::-webkit-details-marker{display:none}
.service-create-form{margin-top:14px;padding:14px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fafafa}
.compact-portfolios{padding:9px 10px}
.compact-service-list{border:1px solid rgba(0,0,0,.08);border-radius:12px;overflow:visible}
.compact-service-head,.compact-service-row>summary{display:grid;grid-template-columns:minmax(160px,1.15fr) minmax(220px,1.8fr) 90px 70px;gap:14px;align-items:center}
.compact-service-head{padding:9px 12px;background:#f6f6f6;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;opacity:.65}
.compact-service-row{border-top:1px solid rgba(0,0,0,.07)}
.compact-service-row:first-of-type{border-top:0}
.compact-service-row>summary{padding:10px 12px;cursor:pointer;list-style:none}
.compact-service-row>summary::-webkit-details-marker{display:none}
.compact-service-row>summary:hover{background:#fafafa}
.compact-service-row strong{display:block}
.compact-service-row small{display:block;margin-top:2px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}
.service-portfolio-summary{font-size:.82rem;line-height:1.25;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:#aaa}
.status-dot.is-active{background:#3f8b54}
.status-dot.is-inactive{background:#999}
.row-action{font-size:.76rem;font-weight:700;text-align:right;opacity:.62}
.compact-service-editor{padding:14px 12px 16px;background:#fbfbfb;border-top:1px solid rgba(0,0,0,.07)}
.service-inline-actions{display:flex;gap:8px;align-items:center}
@media(max-width:850px){
  .compact-service-head{display:none}
  .compact-service-row>summary{grid-template-columns:1fr auto}
  .compact-service-row>summary>*:nth-child(2),.compact-service-row>summary>*:nth-child(3){grid-column:1/-1}
  .row-action{grid-column:2;grid-row:1}
}

/* v1.6.1 — transformation US / tâche / note rapide */
.item-transform-banner{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(0,0,0,.08);border-radius:10px;background:#f7f7f7;font-size:.82rem}
.item-transform-banner span{color:#666}
.field-hint{display:block;margin-top:5px;color:#777;font-size:.72rem;line-height:1.35}
@media(max-width:650px){.item-transform-banner{align-items:flex-start;flex-direction:column;gap:4px}}

/* v1.6.2 — Journal par responsable */
.journal-toolbar-filters form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.journal-toolbar-filters select{min-width:190px}
.journal-responsible{display:flex;align-items:baseline;gap:8px;margin-top:5px;font-size:.8rem}
.journal-responsible span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;opacity:.55}
.journal-responsible b{font-weight:650}

/* v1.6.3 — dates de création et de dernière modification */
.item-audit-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 12px;border:1px solid rgba(0,0,0,.08);border-radius:10px;background:#fafafa}
.item-audit-dates div{display:flex;flex-direction:column;gap:3px}
.item-audit-dates span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#777}
.item-audit-dates strong{font-size:.84rem}
@media(max-width:650px){.item-audit-dates{grid-template-columns:1fr}}

/* v1.7.0 — Roadmap tableau de pilotage */
.roadmap-dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:20px;padding:20px 22px;border:1px solid rgba(0,0,0,.08);border-radius:16px;background:#fff}
.roadmap-dashboard-head h2{margin:3px 0 6px;font-size:1.55rem}
.roadmap-dashboard-head p{margin:0;max-width:760px;color:#69707a;line-height:1.45}
.roadmap-filter{min-width:230px}
.roadmap-filter label{display:grid;gap:5px}
.roadmap-dashboard{display:grid;gap:24px}
.roadmap-portfolio-section{display:grid;gap:14px}
.roadmap-portfolio-head{display:flex;justify-content:space-between;align-items:end;gap:16px;padding:0 2px}
.roadmap-portfolio-head h2{margin:2px 0 0}
.roadmap-portfolio-head small{color:#777}
.roadmap-project-dashboard{border:1px solid #dfe4ea;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 3px 14px rgba(27,39,51,.045)}
.roadmap-project-titlebar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid #e9edf1;background:linear-gradient(180deg,#fff,#fcfdfe)}
.roadmap-project-title{display:flex;gap:10px;align-items:flex-start;min-width:0}
.roadmap-project-title h3{margin:0 0 4px;font-size:1.08rem}
.roadmap-project-title p{margin:0;color:#69707a;font-size:.84rem;line-height:1.35;max-width:720px}
.roadmap-risk-dot{width:9px;height:9px;border-radius:50%;margin-top:6px;flex:0 0 auto}
.risk-ok{background:#73b832}.risk-watch{background:#f0a11a}.risk-danger{background:#df4337}.risk-done{background:#2f7fc1}
.roadmap-project-status{display:flex;gap:10px;align-items:center;white-space:nowrap}
.project-status-badge{padding:5px 9px;border-radius:8px;background:#eef4ff;color:#2864a6;font-size:.75rem;font-weight:700}
.risk-label,.deadline-state{font-size:.76rem;font-weight:700}
.risk-text-ok{color:#5d9c2b}.risk-text-watch{color:#d78400}.risk-text-danger{color:#d33d32}.risk-text-done{color:#2d73b7}
.roadmap-project-grid{display:grid;grid-template-columns:1.15fr .86fr 1.35fr .88fr .95fr;gap:12px;padding:14px 16px}
.roadmap-project-info{display:flex;flex-direction:column;gap:10px;padding:10px 6px}
.roadmap-info-row{display:flex;gap:8px;align-items:flex-start}
.roadmap-info-row>span{width:18px;text-align:center;opacity:.65}
.roadmap-info-row div{display:grid;gap:1px}
.roadmap-info-row small{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#7a8189}
.roadmap-info-row strong{font-size:.82rem;font-weight:650}
.roadmap-open-project{margin-top:auto;align-self:flex-start}
.roadmap-kpi-card{position:relative;min-height:175px;padding:12px;border:1px solid #e0e5ea;border-radius:10px;background:#fff}
.roadmap-kpi-card h4{margin:0 0 10px;font-size:.78rem;text-align:center;color:#26313d}
.roadmap-gauge{--value:0;display:grid;place-items:center;width:112px;height:112px;margin:4px auto 8px;border-radius:50%;background:conic-gradient(#72b532 calc(var(--value)*1%),#e8edf2 0);position:relative}
.roadmap-gauge:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff}
.roadmap-gauge>div{position:relative;z-index:1;display:grid;text-align:center}
.roadmap-gauge strong{font-size:1.45rem;color:#5b9e2c}
.roadmap-gauge small{font-size:.68rem;color:#727980}
.roadmap-kpi-foot{text-align:center;color:#6f767d;font-size:.7rem}
.roadmap-donut-wrap{position:relative;width:108px;height:108px;margin:2px auto}
.roadmap-donut{position:absolute;inset:0;border-radius:50%;background:conic-gradient(
 #78b83b 0 calc(var(--done)*1%),
 #3479bd calc(var(--done)*1%) calc((var(--done) + var(--doing))*1%),
 #a9b4c2 calc((var(--done) + var(--doing))*1%) calc((var(--done) + var(--doing) + var(--planned))*1%),
 #df493d calc((var(--done) + var(--doing) + var(--planned))*1%) 100%
)}
.roadmap-donut:after{content:"";position:absolute;inset:17px;background:#fff;border-radius:50%}
.roadmap-donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:1}
.roadmap-donut-center strong{font-size:1.25rem}
.roadmap-donut-center small{font-size:.66rem;color:#777}
.roadmap-distribution-card{display:grid;grid-template-columns:118px 1fr;grid-template-rows:auto 1fr;column-gap:8px}
.roadmap-distribution-card h4{grid-column:1/-1}
.roadmap-legend{display:grid;align-content:center;gap:7px}
.roadmap-legend span{display:grid;grid-template-columns:8px 1fr auto;gap:6px;align-items:center;font-size:.7rem}
.roadmap-legend i{width:7px;height:7px;border-radius:2px}
.lg-done{background:#78b83b}.lg-doing{background:#3479bd}.lg-planned{background:#a9b4c2}.lg-blocked{background:#df493d}
.roadmap-number-kpi{display:grid;text-align:center;margin:25px 0 17px}
.roadmap-number-kpi strong{font-size:1.65rem;color:#286cae}
.roadmap-number-kpi span{font-size:.72rem;color:#727980}
.roadmap-progress-track,.mini-progress{height:7px;border-radius:999px;background:#e9edf1;overflow:hidden}
.roadmap-progress-track i,.mini-progress i{display:block;height:100%;border-radius:inherit;background:#75b636}
.roadmap-deadline-card .roadmap-number-kpi{margin-bottom:8px}
.deadline-state{display:block;text-align:center;margin-top:8px}
.roadmap-subproject-table{margin:0 16px 16px;border:1px solid #e1e6eb;border-radius:9px;overflow:hidden}
.roadmap-sub-head,.roadmap-sub-row{display:grid;grid-template-columns:minmax(200px,1.8fr) 1.1fr .7fr .7fr .9fr .9fr;gap:12px;align-items:center}
.roadmap-sub-head{padding:7px 12px;background:#f7f9fb;color:#616a73;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.roadmap-sub-row{padding:8px 12px;border-top:1px solid #edf0f3;text-decoration:none;color:inherit;font-size:.76rem}
.roadmap-sub-row:hover{background:#fbfcfd}
.roadmap-sub-name{display:grid;min-width:0}
.roadmap-sub-name strong{font-size:.78rem}
.roadmap-sub-name small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#81878e}
.roadmap-sub-row>span:nth-child(2){display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.roadmap-sub-row b{font-size:.72rem}
@media(max-width:1250px){
 .roadmap-project-grid{grid-template-columns:1fr 1fr 1fr}
 .roadmap-project-info{grid-row:span 2}
}
@media(max-width:900px){
 .roadmap-dashboard-head{align-items:stretch;flex-direction:column}
 .roadmap-filter{min-width:0}
 .roadmap-project-grid{grid-template-columns:1fr 1fr}
 .roadmap-project-info{grid-row:auto}
 .roadmap-sub-head{display:none}
 .roadmap-sub-row{grid-template-columns:1fr 1fr}
 .roadmap-sub-row>*{min-width:0}
 .roadmap-sub-name{grid-column:1/-1}
}
@media(max-width:620px){
 .roadmap-project-titlebar{flex-direction:column}
 .roadmap-project-status{flex-wrap:wrap}
 .roadmap-project-grid{grid-template-columns:1fr}
 .roadmap-distribution-card{grid-template-columns:118px 1fr}
 .roadmap-sub-row{grid-template-columns:1fr}
 .roadmap-sub-name{grid-column:auto}
}

/* v1.7.3 — ajout rapide depuis Mon Kanban */
.my-kanban-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.quick-create-group{display:flex;gap:7px;flex-wrap:wrap}
.quick-create-group .btn{padding:7px 10px;font-size:.76rem}
@media(max-width:720px){.my-kanban-panel .panel-head{align-items:flex-start;flex-direction:column}.my-kanban-head-actions{justify-content:flex-start}}
