:root{
  --navy:#0f0d56;
  --navy2:#17116e;
  --blue:#2736d7;
  --blue2:#3546e8;
  --violet:#694eb7;
  --cyan:#25c9ef;
  --orange:#ffb44a;
  --orange2:#ffca72;
  --white:#fff;
  --ink:#10152d;
  --muted:#71789b;
  --panel:#ffffff;
  --soft:#f3f5ff;
  --line:#dfe4fa;
  --ok:#129b67;
  --warn:#d98a00;
  --danger:#cf3e57;
  --shadow:0 18px 50px rgba(13,18,67,.14);
  --radius:18px;
  --radius-sm:12px;
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--ink);background:#f5f6fd;line-height:1.45;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%}
.hidden{display:none!important}

/* public identity */
.public-body,.setup-body{min-height:100vh;background:
  radial-gradient(circle at 76% 15%,rgba(244,82,181,.38),transparent 26%),
  radial-gradient(circle at 12% 10%,rgba(0,220,255,.33),transparent 23%),
  linear-gradient(135deg,#1425b9 0%,#2c42dc 36%,#7657b6 72%,#343ad2 100%);color:#fff}
.public-shell{min-height:100vh}
.public-top{height:86px;display:flex;align-items:center;justify-content:center;padding:0 28px;background:rgba(11,9,70,.56);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.12)}
.public-brand{display:flex;align-items:center;gap:22px}
.public-brand img{width:330px;max-height:66px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}
.public-brand small{font-weight:800;letter-spacing:.22em;font-size:.75rem;color:#d8dcff}
.public-main{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:54px 0 70px}
.eyebrow{font-size:.74rem;font-weight:900;letter-spacing:.25em;color:var(--cyan);text-transform:uppercase;margin-bottom:12px}
.hero-title,.page-title{font-family:Impact,'Arial Narrow Bold',Arial,sans-serif;font-style:italic;text-transform:uppercase;letter-spacing:.02em;margin:0;color:#fff}
.hero-title{font-size:clamp(2.4rem,5vw,5.2rem);line-height:.96;max-width:850px}.page-title{font-size:clamp(2.2rem,4vw,4.1rem)}
.hero-copy{font-size:1.12rem;color:#e8eaff;max-width:720px;margin:22px 0 34px}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:38px}
.choice-card{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);border-radius:20px;padding:28px;min-height:260px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 20px 55px rgba(10,8,72,.2);transition:.2s transform,.2s background}
.choice-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.18)}
.choice-card h2{margin:0 0 10px;font-size:1.5rem}.choice-card p{color:#e7e9ff;margin:0 0 24px}
.choice-icon{width:52px;height:52px;border-radius:16px;background:rgba(37,201,239,.18);display:grid;place-items:center;font-size:1.55rem;margin-bottom:20px;border:1px solid rgba(37,201,239,.35)}
.public-panel{background:rgba(255,255,255,.95);color:var(--ink);border-radius:24px;padding:34px;box-shadow:0 28px 80px rgba(13,11,75,.28);margin-top:28px}
.public-panel .section-title{color:var(--navy)}
.public-back{display:inline-flex;align-items:center;gap:8px;color:#eff1ff;font-weight:800;margin-bottom:22px}
.portal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px}.portal-head h2{margin:0;font-size:1.8rem}.portal-meta{color:#666e96}

/* buttons */
.btn{border:0;border-radius:11px;min-height:48px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:900;letter-spacing:.04em;line-height:1.15;text-align:center;white-space:normal;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--orange);color:#fff;box-shadow:0 9px 24px rgba(255,180,74,.26)}
.btn.primary:hover{background:var(--orange2)}
.btn.secondary{background:#edf0ff;color:var(--navy)}
.btn.dark{background:var(--navy);color:#fff}
.btn.outline{background:transparent;color:var(--navy);border:1px solid #cdd4f5}
.btn.danger{background:#fff0f3;color:var(--danger);border:1px solid #ffd4dc}
.btn.small{min-height:38px;padding:0 14px;font-size:.83rem}.btn.wide{width:100%}
.button-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* forms */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-grid .full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:7px;font-size:.78rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#333a67}
label small{font-size:.72rem;font-weight:600;text-transform:none;letter-spacing:0;color:#7a81a2}
input,select,textarea{width:100%;border:1px solid #ced4ef;background:#fff;color:#141a36;border-radius:11px;min-height:50px;padding:11px 14px;outline:none;transition:.16s;border-color}
textarea{min-height:112px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#6371f0;box-shadow:0 0 0 3px rgba(61,75,226,.10)}
.section-title{grid-column:1/-1;font-size:1rem;font-weight:1000;letter-spacing:.05em;text-transform:uppercase;margin-top:12px;padding-bottom:10px;border-bottom:1px solid #e5e8f8}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-item{display:flex;flex-direction:row;align-items:center;gap:10px;text-transform:none;letter-spacing:0;background:#f5f6ff;border:1px solid #e4e8ff;border-radius:10px;padding:11px 12px;font-size:.9rem}.check-item input{width:18px;min-height:auto;height:18px}
.date-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.date-checks .check-item{align-items:flex-start}
.dropzone{border:2px dashed #b7c0ee;background:#f7f8ff;border-radius:14px;padding:24px;text-align:center;min-height:128px;display:grid;place-items:center;transition:.16s}.dropzone.is-dragover{border-color:var(--blue);background:#eef1ff}.dropzone strong{display:block;color:var(--navy);font-size:1rem}.dropzone span{font-size:.85rem;color:#7e85a7}.dropzone input[type=file]{position:absolute;opacity:0;pointer-events:none}
.file-chip{margin-top:9px;font-size:.85rem;color:#4e567b;font-weight:700}
.alert{padding:13px 15px;border-radius:11px;margin:0 0 18px;font-weight:700}.alert.success{background:#e8faf2;color:#08784d}.alert.error{background:#fff0f2;color:#aa233b}.alert.info{background:#eef2ff;color:#3244a2}

/* admin shell */
.admin-body{background:#f3f5fb;color:var(--ink)}
.admin-shell{display:grid;grid-template-columns:258px minmax(0,1fr);min-height:100vh}
.sidebar{background:linear-gradient(180deg,#0e0b55,#151271 62%,#1a176e);padding:22px 16px;color:#fff;position:sticky;top:0;height:100vh;overflow:auto}
.sidebar-logo{padding:5px 10px 22px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:18px}.sidebar-logo img{width:210px;height:58px;object-fit:contain}.sidebar-logo span{display:block;font-size:.67rem;letter-spacing:.22em;color:#aab4ff;font-weight:900;margin-top:4px}
.nav-group{margin:17px 0}.nav-title{font-size:.65rem;letter-spacing:.16em;color:#7886df;font-weight:900;padding:0 11px 6px;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:11px;min-height:45px;padding:9px 11px;border-radius:10px;color:#e5e8ff;font-weight:750;font-size:.91rem;margin:2px 0}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.11);color:#fff}.nav-link .ico{width:22px;text-align:center;font-size:1.04rem}
.main-column{min-width:0}.admin-top{height:72px;background:#fff;border-bottom:1px solid #e4e7f5;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.admin-top-left{display:flex;align-items:center;gap:14px}.admin-top h1{font-size:1.08rem;margin:0}.top-context{font-size:.79rem;color:#8289a9}.admin-user{display:flex;align-items:center;gap:12px}.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--violet));display:grid;place-items:center;color:#fff;font-weight:900}.admin-content{padding:28px;max-width:1500px;width:100%;margin:0 auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head h2{font-size:2rem;margin:0;letter-spacing:-.03em}.page-head p{margin:6px 0 0;color:#777f9f}.page-actions{display:flex;gap:10px;flex-wrap:wrap}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.metric{background:#fff;border:1px solid #e6e9f5;border-radius:16px;padding:19px;box-shadow:0 5px 20px rgba(34,44,103,.04)}.metric .label{font-size:.73rem;font-weight:900;letter-spacing:.08em;color:#8a91b0;text-transform:uppercase}.metric .value{font-size:2rem;font-weight:950;margin-top:5px;letter-spacing:-.03em}.metric .sub{font-size:.8rem;color:#8a91ac;margin-top:2px}
.panel{background:#fff;border:1px solid #e4e7f4;border-radius:17px;box-shadow:0 7px 26px rgba(31,39,94,.05)}.panel-head{padding:18px 20px;border-bottom:1px solid #e9ebf5;display:flex;justify-content:space-between;align-items:center;gap:14px}.panel-head h3{font-size:1rem;margin:0}.panel-body{padding:20px}.panel-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{text-align:left;padding:11px 13px;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#8890ac;border-bottom:1px solid #e8eaf3;background:#fbfcff}.data-table td{padding:13px;border-bottom:1px solid #edf0f7;vertical-align:middle;font-size:.9rem}.data-table tr:hover td{background:#fafbff}.data-table .name{font-weight:850;color:#1e254b}.subline{font-size:.78rem;color:#8a91ac;margin-top:2px}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:900;white-space:nowrap;background:#eef1ff;color:#4653b8}.badge.approved,.badge.paid,.badge.complete{background:#e8f8f1;color:#08794e}.badge.pending,.badge.to_pay,.badge.received{background:#fff4df;color:#a56600}.badge.rejected{background:#fff0f2;color:#ac3148}.badge.scheduled{background:#ebf5ff;color:#1e67a1}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.info-item{background:#f8f9fe;border:1px solid #e9ecf8;border-radius:12px;padding:13px}.info-item .k{font-size:.69rem;text-transform:uppercase;letter-spacing:.08em;color:#8e95b2;font-weight:900}.info-item .v{font-weight:800;margin-top:4px;word-break:break-word}.info-item.full{grid-column:1/-1}
.timeline{display:flex;flex-direction:column;gap:11px}.timeline-item{display:grid;grid-template-columns:12px 1fr;gap:11px}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);margin-top:5px}.timeline-copy{padding-bottom:12px;border-bottom:1px solid #edf0f6}.timeline-copy strong{font-size:.88rem}.timeline-copy div{font-size:.78rem;color:#8b92ac;margin-top:2px}
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.quick-card{padding:18px;border:1px solid #e4e8f6;border-radius:14px;background:#fff}.quick-card h4{margin:0 0 5px}.quick-card p{margin:0;color:#8188a5;font-size:.84rem}
.searchbar{display:flex;gap:10px;align-items:center}.searchbar input{min-width:260px;height:42px;min-height:42px}
.empty{padding:38px 20px;text-align:center;color:#858da9}.empty strong{display:block;color:#4f587c;margin-bottom:5px}

/* dashboard tour */
.tour-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.tour-date{border:1px solid #e3e7f5;background:#fff;border-radius:12px;padding:12px;min-height:86px}.tour-date .date{font-size:.72rem;color:#7f87a6;font-weight:900}.tour-date .city{font-size:.95rem;font-weight:950;margin-top:4px}.tour-date .venue{font-size:.72rem;color:#9399b1;margin-top:1px}.tour-date.today{border-color:#7783f4;box-shadow:0 0 0 2px rgba(80,96,236,.08)}

/* calendar */
.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.cal-head{text-align:center;font-size:.7rem;font-weight:900;color:#8a91ab;text-transform:uppercase;padding:7px}.cal-day{min-height:112px;border:1px solid #e5e8f4;border-radius:11px;background:#fff;padding:9px}.cal-day.muted{background:#f8f9fc;color:#b0b5c8}.cal-num{font-size:.76rem;font-weight:900}.cal-payment{margin-top:6px;background:#eef1ff;border-radius:8px;padding:6px;font-size:.68rem;color:#3646aa;font-weight:800}.cal-payment.paid{background:#e9f8f1;color:#0b7951}

/* setup */
.setup-shell{width:min(920px,calc(100% - 34px));margin:0 auto;padding:48px 0 70px}.brand-block{text-align:center;margin-bottom:24px}.brand-block img{width:330px;height:85px;object-fit:contain}.brand-block span{display:block;font-size:.73rem;letter-spacing:.22em;font-weight:900;color:#dde2ff}.setup-panel{padding:32px}.setup-panel h1{margin:0;font-size:2rem}.setup-panel .lead{color:#656d92;margin:8px 0 24px}.success-icon{width:58px;height:58px;border-radius:50%;background:#e8f8f1;color:#0b8b5d;display:grid;place-items:center;font-size:1.7rem;font-weight:900;margin-bottom:16px}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 70% 20%,rgba(238,70,183,.32),transparent 28%),linear-gradient(135deg,#10106a,#2438cc 46%,#6648ae)}.login-card{width:min(460px,100%);background:#fff;border-radius:22px;padding:30px;box-shadow:0 28px 90px rgba(8,8,58,.36)}.login-card .login-logo{text-align:center;margin-bottom:22px;background:var(--navy);border-radius:14px;padding:14px}.login-logo img{height:66px;width:280px;object-fit:contain}.login-card h1{margin:0 0 4px;text-align:center;font-size:1.7rem}.login-card .intro{text-align:center;color:#8087a6;margin-bottom:22px}

@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.choice-grid{grid-template-columns:1fr}.tour-strip{grid-template-columns:repeat(3,1fr)}.panel-grid{grid-template-columns:1fr}.date-checks{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.admin-shell{display:block}.sidebar{position:fixed;left:-270px;z-index:60;width:258px;transition:.2s}.sidebar.open{left:0}.admin-top{padding:0 16px}.admin-content{padding:18px}.mobile-menu{display:inline-flex!important}.public-top{height:74px}.public-brand img{width:250px}.public-brand small{display:none}.public-main{padding-top:34px}.form-grid,.two-col,.three-col{grid-template-columns:1fr}.form-grid .full{grid-column:1}.info-grid{grid-template-columns:1fr}.info-item.full{grid-column:1}.page-head{align-items:flex-start;flex-direction:column}.tour-strip{grid-template-columns:repeat(2,1fr)}.calendar{grid-template-columns:repeat(2,1fr)}.cal-head{display:none}.quick-grid{grid-template-columns:1fr}}
@media(min-width:861px){.mobile-menu{display:none!important}}
@media(max-width:580px){html{font-size:15px}.public-main{width:min(100% - 22px,1180px)}.public-panel{padding:20px;border-radius:17px}.choice-card{padding:22px;min-height:220px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:15px}.metric .value{font-size:1.65rem}.admin-content{padding:14px}.date-checks,.check-grid{grid-template-columns:1fr}.tour-strip{grid-template-columns:1fr 1fr}.button-row .btn{flex:1 1 auto}.searchbar{align-items:stretch;flex-direction:column}.searchbar input{min-width:0}.public-brand img{width:215px}.setup-panel{padding:20px}.calendar{grid-template-columns:1fr}.page-head h2{font-size:1.7rem}}

/* back office creation and import */
.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.info-callout{display:flex;flex-direction:column;gap:7px;background:#f2f5ff;border:1px solid #dfe5ff;border-radius:13px;padding:16px 18px;color:#515a82;font-size:.88rem;line-height:1.5}
.info-callout strong{color:var(--navy);font-size:.94rem}
.list-search{margin-bottom:16px;justify-content:flex-end}
.compact-field{width:auto;min-width:120px;min-height:38px;height:38px;padding:6px 9px;border-radius:9px}
.compact-field.date-field{min-width:145px}
.page-actions .btn{min-width:150px}
@media(max-width:860px){.form-actions{justify-content:stretch}.form-actions .btn{flex:1 1 180px}.list-search{width:100%;justify-content:stretch}.page-actions{width:100%}.page-actions .btn{flex:1 1 180px}}

.personnel-group{margin-bottom:18px}.personnel-group .panel-head{align-items:center}.category-count{font-size:.84rem;font-weight:800;color:#6f7798;background:#f0f2ff;border-radius:999px;padding:7px 11px;white-space:nowrap}

/* V4 · Pilotage tournée, logistique et finances */
.admin-top-tools{display:flex;align-items:center;gap:18px;min-width:0}
.top-search{display:flex;align-items:center;background:#f5f7ff;border:1px solid #e0e4f5;border-radius:11px;overflow:hidden;width:min(330px,32vw);height:42px}
.top-search input{border:0;background:transparent;min-height:40px;height:40px;padding:8px 12px;box-shadow:none}
.top-search input:focus{box-shadow:none}.top-search button{width:44px;height:42px;border:0;background:transparent;color:var(--navy);font-size:1.2rem;font-weight:900}
.metric-money{font-size:1.45rem!important;line-height:1.15}.danger-text{color:var(--danger)}
.todo-panel{margin-bottom:18px}.todo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:14px}.todo-card{min-height:92px;border-radius:13px;padding:14px;background:#f7f8ff;border:1px solid #e5e8f5;display:flex;flex-direction:column;justify-content:center;gap:4px;color:#596180;font-size:.8rem;font-weight:800;transition:.16s}.todo-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(26,34,86,.08)}.todo-card.warn{background:#fff9ed;border-color:#ffe6b6}.todo-card.danger{background:#fff3f5;border-color:#ffdbe2}.todo-card.info{background:#eff9ff;border-color:#d1f0ff}.todo-count{font-size:1.8rem;line-height:1;font-weight:950;color:var(--navy)}
.bulk-bar{position:sticky;top:82px;z-index:15;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #dfe3f5;border-radius:14px;padding:12px 14px;margin-bottom:14px;box-shadow:0 8px 28px rgba(25,34,89,.08)}.bulk-bar>div:first-child{margin-right:auto;min-width:160px}.bulk-bar .compact-field{max-width:220px}
.table-check{display:inline-flex!important;flex-direction:row!important;align-items:center!important;padding:0!important;background:none!important;border:0!important;min-width:20px}.table-check input{width:18px;height:18px;min-height:18px}.check-col{width:42px}
.person-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.person-summary>div{background:#fff;border:1px solid #e4e7f4;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:3px;justify-content:center}.person-summary strong{font-size:1.05rem}.person-summary span:not(.badge){font-size:.77rem;color:#838aa6}
.text-link{color:#3044c8;font-weight:850}.text-link:hover{text-decoration:underline}
.table-input{min-height:38px;height:38px;padding:6px 9px;border-radius:8px;min-width:125px}.time-input{min-width:92px}
.dropzone.mini{min-height:88px;padding:14px}.quick-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:16px}.quick-form:last-child{margin-bottom:0}.quick-form .btn{min-height:50px}
.supplier-health{border-radius:14px;padding:15px 17px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.supplier-health>div{display:flex;flex-direction:column;gap:3px}.supplier-health span:not(.badge){font-size:.82rem}.supplier-health.has-missing{background:#fff3f5;border:1px solid #ffd7df;color:#7f3343}.supplier-health.is-complete{background:#eaf9f3;border:1px solid #c8efdf;color:#116c4d}
.workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.workflow-grid>div{padding:20px;border-right:1px solid #ebedf6}.workflow-grid>div:last-child{border-right:0}.workflow-grid strong{display:block;margin-bottom:12px}.workflow-number{display:block;font-size:2rem;font-weight:950;color:var(--navy);line-height:1;margin-bottom:5px}.workflow-line{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #eff1f7;padding:9px 0;font-size:.8rem}
.filter-pills{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}.filter-pills a{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #e0e4f2;color:#626a8c;font-size:.78rem;font-weight:850}.filter-pills a.active{background:var(--navy);border-color:var(--navy);color:#fff}
.row-alert td{background:#fff8f3!important}.expense-review{display:flex;flex-direction:column;gap:7px;min-width:250px}.payment-edit{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:470px}
.two-metrics{grid-template-columns:repeat(2,minmax(0,1fr));max-width:650px}.three-metrics{grid-template-columns:repeat(3,minmax(0,1fr));max-width:900px}.six-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.tour-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tour-card{display:block}.tour-card-stats{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.tour-card-stats span{background:#f0f2ff;border-radius:999px;padding:5px 8px;font-size:.7rem;font-weight:850;color:#5962a6}.budget-mini{height:6px;border-radius:999px;background:#eceffc;overflow:hidden;margin-top:12px}.budget-mini span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--violet));border-radius:inherit}
.hotel-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf0f6}.hotel-card:last-child{border-bottom:0}.hotel-card>div{display:flex;flex-direction:column;gap:2px}.hotel-card span:not(.badge){font-size:.77rem;color:#838aa6}
.finance-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.finance-columns>div{padding:18px;border-right:1px solid #edf0f6}.finance-columns>div:last-child{border-right:0}.finance-columns h4{margin:0 0 10px;color:var(--navy)}.finance-line{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-top:1px solid #f0f2f7}.finance-line strong{font-size:.82rem}.finance-line span{font-size:.75rem;color:#858ca7}
.global-search-page{display:flex;gap:10px;margin-bottom:18px}.global-search-page input{font-size:1.05rem;min-height:54px}.search-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.search-result{display:flex;flex-direction:column;gap:2px;padding:11px 0;border-bottom:1px solid #edf0f7}.search-result:last-child{border-bottom:0}.search-result strong{font-size:.88rem;color:#20274d}.search-result span{font-size:.77rem;color:#838aa5}
.public-alert{background:#fff4e6;color:#7c531b;border:1px solid #ffdca8;border-radius:14px;padding:15px 17px;margin-top:24px;display:flex;flex-direction:column;gap:3px}.public-alert strong{font-size:1rem}.public-alert span{font-size:.85rem}
.portal-dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:28px}.travel-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.travel-card{border:1px solid #e4e8f6;background:#fafbff;border-radius:14px;padding:16px}.travel-route{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;font-size:1rem;font-weight:900;color:var(--navy)}.travel-route span:last-child{text-align:right}.travel-route strong{color:var(--orange);font-size:1.2rem}.travel-meta{font-size:.8rem;color:#727a9b;margin:9px 0 12px}

@media(max-width:1280px){.todo-grid{grid-template-columns:repeat(3,1fr)}.six-metrics{grid-template-columns:repeat(3,1fr)}.tour-grid{grid-template-columns:repeat(3,1fr)}.finance-columns{grid-template-columns:repeat(2,1fr)}.finance-columns>div:nth-child(2){border-right:0}.finance-columns>div{border-bottom:1px solid #edf0f6}}
@media(max-width:1000px){.admin-top-tools .top-search{display:none}.person-summary{grid-template-columns:repeat(3,1fr)}.workflow-grid{grid-template-columns:1fr}.workflow-grid>div{border-right:0;border-bottom:1px solid #ebedf6}.workflow-grid>div:last-child{border-bottom:0}.portal-dashboard-grid{grid-template-columns:1fr}.travel-cards{grid-template-columns:1fr}.tour-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.bulk-bar{top:76px;align-items:stretch}.bulk-bar .compact-field,.bulk-bar .btn{max-width:none;flex:1 1 170px}.six-metrics,.three-metrics,.two-metrics{grid-template-columns:repeat(2,1fr);max-width:none}.finance-columns,.search-results-grid{grid-template-columns:1fr}.finance-columns>div{border-right:0}.quick-form{grid-template-columns:1fr}.payment-edit{min-width:300px}.top-context{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:580px){.todo-grid{grid-template-columns:1fr 1fr}.person-summary{grid-template-columns:1fr 1fr}.six-metrics,.three-metrics,.two-metrics{grid-template-columns:1fr 1fr}.tour-grid{grid-template-columns:1fr}.global-search-page{flex-direction:column}.workflow-grid{display:block}.travel-route{font-size:.9rem}.supplier-health{align-items:flex-start;flex-direction:column}.bulk-bar{position:static}.payment-edit{min-width:0;flex-direction:column;align-items:stretch}.payment-edit .compact-field{width:100%}.expense-review{min-width:220px}}

/* V6 · fiches RH rétractables et logistique par date */
.form-section{border:1px solid #e4e7f4;border-radius:14px;background:#fbfcff;overflow:hidden;margin:0}.form-section>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;font-size:.98rem;font-weight:900;color:var(--navy);letter-spacing:.025em}.form-section>summary::-webkit-details-marker{display:none}.form-section>summary:after{content:'⌄';font-size:1.15rem;transition:transform .18s ease}.form-section[open]>summary:after{transform:rotate(180deg)}.form-section[open]>summary{border-bottom:1px solid #e6e9f5;background:#f6f7ff}.section-grid{padding:17px}.person-main-form{gap:12px}.sticky-form-actions{position:sticky;bottom:12px;z-index:8;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid #e4e7f4;border-radius:13px;padding:10px;box-shadow:0 8px 28px rgba(31,39,94,.11)}
.date-select-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.select-all-dates{background:#eef0ff;border-color:#ccd3ff;min-width:250px}.select-all-dates strong{color:var(--navy)}
.collapsible-group{overflow:hidden;margin-bottom:16px}.collapsible-group>summary{list-style:none;cursor:pointer}.collapsible-group>summary::-webkit-details-marker{display:none}.collapsible-group:not([open])>.panel-head{border-bottom:0}.group-summary-right{display:flex;align-items:center;gap:12px}.collapse-chevron{display:inline-flex;font-size:1.2rem;line-height:1;transition:transform .18s ease}.collapsible-group[open] .collapse-chevron,.archive-section[open] .collapse-chevron,.date-logistics-card[open] .collapse-chevron{transform:rotate(180deg)}
.date-logistics-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:28px 0 12px}.date-logistics-heading h3{margin:0;color:var(--navy);font-size:1.25rem}.date-logistics-heading p{margin:4px 0 0;color:#737a9b}.date-logistics-card{margin-bottom:13px;overflow:hidden}.date-logistics-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px}.date-logistics-summary::-webkit-details-marker{display:none}.date-logistics-summary>div:first-child{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:8px 12px}.date-logistics-summary strong{font-size:1.08rem;color:var(--navy)}.date-logistics-summary>div:first-child>span:last-child{color:#767d9d}.date-kicker{font-weight:800;color:#727aa4}.date-status-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.date-logistics-body{border-top:1px solid #e8eaf4;padding:18px;background:#fcfcff}.date-planning-form{padding-bottom:18px;border-bottom:1px solid #e8eaf4}.date-logistics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.mini-panel{border:1px solid #e4e7f4;border-radius:14px;background:white;overflow:hidden}.mini-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid #eceef7;background:#fafbff}.mini-panel-head h4{margin:0;color:var(--navy)}.mini-panel-head span{font-size:.82rem;color:#8187a6}.date-items{padding:4px 14px}.date-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #eef0f7}.date-item:last-child{border-bottom:0}.date-item>div:first-child{display:flex;flex-direction:column;gap:3px}.date-item span{font-size:.84rem;color:#777e9f}.inline-create{border-top:1px solid #eceef7}.inline-create>summary{cursor:pointer;list-style:none;padding:13px 15px;font-weight:800;color:#535ca8;background:#fbfbff}.inline-create>summary::-webkit-details-marker{display:none}.inline-create[open]>summary{border-bottom:1px solid #eceef7}.compact-form{padding:15px;gap:12px}.compact-empty{margin:14px}.compact-info{margin:14px}.archive-section{margin-top:18px;overflow:hidden}.archive-section>summary{list-style:none;cursor:pointer}.archive-section>summary::-webkit-details-marker{display:none}.archive-dates{padding:4px 20px 14px}.archived-date-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid #eceef6}.archived-date-row:last-child{border-bottom:0}.archived-date-row>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.archived-date-row>div:first-child{flex-direction:column;align-items:flex-start;gap:2px}.archived-date-row span{font-size:.85rem;color:#7c829f}
@media(max-width:860px){.date-logistics-grid{grid-template-columns:1fr}.date-logistics-summary{align-items:flex-start;flex-direction:column}.date-status-chips{justify-content:flex-start}.date-logistics-summary>div:first-child{grid-template-columns:1fr}.date-logistics-heading{align-items:flex-start;flex-direction:column}.archived-date-row{align-items:flex-start;flex-direction:column}.sticky-form-actions{position:static}.date-select-toolbar{align-items:stretch;flex-direction:column}.select-all-dates{min-width:0}}

/* V7 · interface plus moderne, sélection des dates et fiche RH repliable */
.alert.warning{background:#fff7e8;color:#8a5a08;border:1px solid #ffe0a6}

.collapsible-card{overflow:hidden}
.collapsible-card>summary{list-style:none;cursor:pointer}
.collapsible-card>summary::-webkit-details-marker{display:none}
.collapsible-card:not([open])>.panel-head{border-bottom:0}
.collapsible-card-summary>div{display:flex;flex-direction:column;gap:2px}

.form-section>summary:after{content:'';width:8px;height:8px;border-right:2px solid #5962a6;border-bottom:2px solid #5962a6;transform:rotate(45deg);transition:transform .18s ease;flex:0 0 auto;margin-right:3px}
.form-section[open]>summary:after{transform:rotate(225deg);margin-top:7px}
.collapse-chevron{width:10px;height:10px;border-right:2px solid #6670ad;border-bottom:2px solid #6670ad;transform:rotate(45deg);transition:transform .18s ease;display:inline-block;flex:0 0 auto;margin:0 4px 4px 8px}
.collapsible-group[open] .collapse-chevron,.archive-section[open] .collapse-chevron,.date-logistics-card[open] .collapse-chevron,.collapsible-card[open]>.collapsible-card-summary .collapse-chevron{transform:rotate(225deg);margin-bottom:-3px}

.date-select-toolbar{padding-bottom:2px}
.select-all-dates-btn{appearance:none;border:1px solid #cfd6fa;background:#f5f6ff;color:var(--navy);min-height:48px;border-radius:13px;padding:0 17px;display:inline-flex;align-items:center;gap:11px;font-weight:900;transition:.18s ease;box-shadow:0 3px 10px rgba(45,58,145,.04)}
.select-all-dates-btn:hover{background:#eef1ff;border-color:#aeb8f4;transform:translateY(-1px)}
.select-all-dates-btn.is-active{background:linear-gradient(135deg,#2837d7,#6250bb);border-color:transparent;color:#fff;box-shadow:0 9px 24px rgba(48,55,181,.2)}
.select-all-icon{width:21px;height:21px;border:2px solid #9da8e8;border-radius:7px;background:#fff;position:relative;display:inline-block;transition:.18s ease;flex:0 0 auto}
.select-all-dates-btn.is-active .select-all-icon{border-color:#fff;background:rgba(255,255,255,.16)}
.select-all-dates-btn.is-active .select-all-icon:after{content:'';position:absolute;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);left:5px;top:5px}

.date-checks .check-item{position:relative;cursor:pointer;min-height:108px;padding:19px 18px;background:#fafbff;border:1px solid #dfe4fa;border-radius:16px;transition:.16s ease;gap:14px}
.date-checks .check-item:hover{border-color:#b8c1f3;background:#f6f7ff;box-shadow:0 7px 20px rgba(44,55,133,.06)}
.date-checks .check-item:has(input:checked){border-color:#7b87ec;background:linear-gradient(135deg,#f1f3ff,#f8f6ff);box-shadow:0 7px 22px rgba(62,71,182,.09)}
.date-checks .check-item input[type="checkbox"],.email-send-choice input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:23px;height:23px;min-height:23px;border:2px solid #aab2d5;border-radius:7px;background:#fff;display:grid;place-items:center;flex:0 0 auto;margin:1px 0 0;transition:.15s ease;cursor:pointer}
.date-checks .check-item input[type="checkbox"]:checked,.email-send-choice input[type="checkbox"]:checked{border-color:#3343dd;background:linear-gradient(135deg,#2638d8,#6650bc)}
.date-checks .check-item input[type="checkbox"]:checked:after,.email-send-choice input[type="checkbox"]:checked:after{content:'';width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);margin-top:-2px}
.date-checks .check-item strong{font-size:.98rem;color:#252e68;line-height:1.3}
.date-checks .check-item small{font-size:.8rem;color:#858cac;font-weight:700}

.email-send-choice{align-items:flex-start;background:#f7f8ff;border-radius:13px;padding:14px 15px}
.email-send-choice>span{display:flex;flex-direction:column;gap:3px;text-transform:none;letter-spacing:0}
.email-send-choice strong{font-size:.9rem;color:var(--navy)}
.email-send-choice small{font-size:.78rem;color:#7a82a5}
.email-warning{margin:0}

@media(max-width:860px){.select-all-dates-btn{width:100%;justify-content:center}.date-checks .check-item{min-height:92px}}

/* V8 · compactage réel des panneaux + sélections modernes */
.rh-card{align-self:start;height:auto;min-height:0}
.rh-card:not([open]){height:auto!important;min-height:0!important}
.rh-card:not([open])>.panel-body{display:none!important}
.collapsible-card:not([open]){align-self:start}
.collapsible-card-summary{min-height:72px;padding:17px 20px}
.collapsible-card-summary .collapse-chevron{width:9px;height:9px;border-width:2px;margin-right:4px}

/* chevrons discrets et cohérents */
.collapse-chevron{width:9px;height:9px;border-right:2px solid #6570ae;border-bottom:2px solid #6570ae;transform:rotate(45deg);margin:0 5px 5px 10px}
.collapsible-group[open] .collapse-chevron,.archive-section[open] .collapse-chevron,.date-logistics-card[open] .collapse-chevron,.collapsible-card[open]>.collapsible-card-summary .collapse-chevron{transform:rotate(225deg);margin-bottom:-4px}
.form-section>summary:after{width:7px;height:7px;border-width:0 2px 2px 0;transform:rotate(45deg);margin:0 4px 4px 12px}
.form-section[open]>summary:after{transform:rotate(225deg);margin-top:6px;margin-bottom:-2px}

/* bouton global de sélection */
.select-all-dates-btn{min-height:42px;border:0;background:#eef1ff;border-radius:999px;padding:0 16px;color:#222b6e;box-shadow:none;gap:9px;font-size:.86rem;letter-spacing:0}
.select-all-dates-btn:hover{background:#e6eaff;transform:none}
.select-all-dates-btn.is-active{background:#202cbb;color:#fff;box-shadow:0 6px 18px rgba(32,44,187,.17)}
.select-all-icon{width:17px;height:17px;border:1.8px solid #9ca7df;border-radius:50%;background:#fff;position:relative}
.select-all-dates-btn.is-active .select-all-icon{background:rgba(255,255,255,.16);border-color:#fff}
.select-all-dates-btn.is-active .select-all-icon:after{content:'';position:absolute;left:4px;top:3px;width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}

/* cartes de dates compactes : la carte entière est le bouton */
.date-checks{gap:10px}
.date-checks .check-item{position:relative;min-height:78px;padding:13px 46px 13px 15px;border:1px solid #e2e6f5;border-radius:13px;background:#fff;box-shadow:none;display:flex;align-items:center;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.date-checks .check-item:hover{background:#fafbff;border-color:#c9d0ef;box-shadow:none}
.date-checks .check-item:has(input:checked),.date-checks .check-item.is-selected{background:#f1f3ff;border-color:#6b79e7;box-shadow:inset 3px 0 0 #3443d6}
.date-checks .check-item>span{display:block;min-width:0}
.date-checks .check-item strong{display:block;font-size:.91rem;line-height:1.25;color:#20285e;font-weight:850}
.date-checks .check-item small{display:block;margin-top:4px;font-size:.76rem;line-height:1.25;color:#858ca8;font-weight:650}
.date-checks .check-item input[type="checkbox"]{appearance:none;-webkit-appearance:none;position:absolute;right:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;min-height:20px;margin:0;border:1.8px solid #aeb6d8;border-radius:50%;background:#fff;cursor:pointer}
.date-checks .check-item input[type="checkbox"]:checked{border-color:#3443d6;background:#3443d6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M5.2 10.1 8.4 13.2 14.8 6.8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px 20px no-repeat}
.date-checks .check-item input[type="checkbox"]:checked:after{display:none!important}

/* checkbox email plus petit et coche parfaitement centrée */
.email-send-choice{position:relative;align-items:center;padding:13px 14px;gap:11px;background:#f8f9ff;border:1px solid #e2e6f6}
.email-send-choice input[type="checkbox"]{appearance:none;-webkit-appearance:none;position:relative;width:20px;height:20px;min-height:20px;margin:0;border:1.8px solid #aeb6d8;border-radius:6px;background:#fff;flex:0 0 20px}
.email-send-choice input[type="checkbox"]:checked{border-color:#3443d6;background:#3443d6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M5.2 10.1 8.4 13.2 14.8 6.8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px 20px no-repeat}
.email-send-choice input[type="checkbox"]:checked:after{display:none!important}
.email-send-choice strong{font-size:.88rem}.email-send-choice small{font-size:.76rem}

@media(max-width:860px){.date-checks{grid-template-columns:1fr}.date-checks .check-item{min-height:70px}}

/* V11 · feuille de route mobile + gestion des hébergements */
.hotel-card{padding:14px 0;align-items:center}
.hotel-card-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.hotel-card-main strong{font-size:.94rem;color:#20264f}
.hotel-card-main span{font-size:.77rem;color:#838aa6;line-height:1.4}
.hotel-card-actions{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;flex:0 0 auto}
.hotel-card-actions form{margin:0}
.hotel-delete-btn{appearance:none;border:0;background:#fff0f2;color:#b52d49;border-radius:9px;min-height:34px;padding:0 11px;font-size:.75rem;font-weight:900;transition:.15s ease}
.hotel-delete-btn:hover{background:#ffe3e8;color:#9e1733}

.crew-portal{max-width:1040px;margin:0 auto 28px;color:var(--ink)}
.crew-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;color:#fff}
.crew-welcome h1{font-size:clamp(2rem,4vw,3.15rem);line-height:1;margin:0 0 8px;letter-spacing:-.04em}
.crew-welcome p{margin:0;color:#e2e5ff;font-weight:700}
.crew-avatar{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);display:grid;place-items:center;font-size:1.25rem;font-weight:950;backdrop-filter:blur(10px);flex:0 0 auto}

.crew-next-day{background:#fff;border:1px solid rgba(255,255,255,.4);border-radius:26px;box-shadow:0 26px 70px rgba(12,13,84,.22);overflow:hidden;margin-bottom:18px}
.crew-next-heading{background:linear-gradient(135deg,#10115f 0%,#2739d5 60%,#654db2 100%);color:#fff;padding:24px 26px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.crew-next-heading>div:first-child{display:flex;flex-direction:column;gap:4px}
.crew-next-heading span{font-size:.69rem;text-transform:uppercase;letter-spacing:.16em;color:#bfc8ff;font-weight:900}
.crew-next-heading strong{font-size:1.05rem}
.crew-city{font-family:Impact,'Arial Narrow Bold',Arial,sans-serif;font-style:italic;text-transform:uppercase;font-size:clamp(2rem,5vw,3.4rem);line-height:.95;letter-spacing:.02em;text-align:right}
.crew-day-body{padding:22px 24px 26px}
.crew-day-body.compact{padding:18px 18px 20px;border-top:1px solid #eceffa}

.crew-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.crew-fact{background:#f4f6ff;border:1px solid #e7eafd;border-radius:14px;padding:13px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.crew-fact span{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:#838baa;font-weight:900}
.crew-fact strong{font-size:1.12rem;color:#1c2462;white-space:nowrap}

.crew-section-card{display:flex;gap:13px;align-items:flex-start;border:1px solid #e8eaf5;background:#fbfcff;border-radius:16px;padding:15px;margin:11px 0}
.crew-section-icon{width:36px;height:36px;border-radius:11px;background:#eef1ff;color:#2839d2;display:grid;place-items:center;font-size:.78rem;font-weight:950;flex:0 0 auto}
.crew-section-content{display:flex;flex-direction:column;gap:2px;min-width:0}
.crew-section-label,.crew-block-title{font-size:.67rem;text-transform:uppercase;letter-spacing:.11em;color:#888fab;font-weight:950}
.crew-section-content strong{font-size:.98rem;color:#1b224e}
.crew-section-content>span:not(.crew-section-label){font-size:.82rem;color:#747c9b;line-height:1.4;margin-top:2px}
.crew-inline-action{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-top:7px;color:#3144cc;font-size:.8rem;font-weight:900}
.crew-inline-action:after{content:'›';margin-left:5px;font-size:1.05rem;line-height:1}

.crew-block{margin-top:18px}
.crew-block-title{margin-bottom:8px;color:#646c94}
.crew-journey,.crew-hotel{border:1px solid #e7eaf5;background:#fff;border-radius:16px;padding:15px;margin:8px 0;position:relative}
.crew-journey-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.crew-journey-top strong{font-size:.96rem;color:#1c245a}
.crew-journey-top strong span{color:#8b91ae;padding:0 2px}
.crew-status-dot{width:9px;height:9px;border-radius:50%;background:#8790b5;box-shadow:0 0 0 4px #f0f2fa;flex:0 0 auto}
.crew-status-dot.sent,.crew-status-dot.ticket_ready{background:#19a36d}.crew-status-dot.booked{background:#f0a52c}
.crew-journey-meta{font-size:.78rem;color:#777f9e;margin-top:4px;line-height:1.4}
.crew-download{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;min-height:36px;padding:0 13px;border-radius:10px;background:#eef1ff;color:#2636c1;font-size:.78rem;font-weight:900}

.crew-hotel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.crew-hotel-top>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.crew-hotel-top strong{font-size:1rem;color:#1b224e}
.crew-hotel-top span{font-size:.78rem;color:#7d84a2;line-height:1.35}
.crew-room-pill{display:inline-flex;align-items:center;min-height:29px;padding:0 10px;border-radius:999px;background:#fff3df;color:#9b6100;font-size:.74rem!important;font-weight:950;white-space:nowrap}
.crew-hotel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.crew-hotel-grid>div{background:#f7f8fd;border-radius:10px;padding:9px 10px;display:flex;flex-direction:column;gap:1px}
.crew-hotel-grid span{font-size:.63rem;text-transform:uppercase;letter-spacing:.07em;color:#8d94af;font-weight:900}
.crew-hotel-grid strong{font-size:.82rem;color:#252c5d}
.crew-note{font-size:.79rem;color:#646c8c;margin-top:10px}
.crew-note-card{background:#fff9ec;border:1px solid #ffe1a7;color:#73501a;border-radius:14px;padding:13px 14px;font-size:.84rem;line-height:1.5}
.crew-main-action{width:100%;min-height:48px;border-radius:13px;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:950;margin-top:18px;box-shadow:0 9px 24px rgba(255,180,74,.22)}
.crew-empty-inline{background:#f7f8fc;color:#8b91a9;border-radius:13px;padding:14px;font-size:.83rem}
.crew-empty-state{padding:34px;display:flex;flex-direction:column;gap:5px;text-align:center}
.crew-empty-state strong{font-size:1.05rem}.crew-empty-state span{font-size:.83rem;color:#858ca7}

.crew-section{background:#fff;border:1px solid rgba(255,255,255,.45);border-radius:22px;box-shadow:0 16px 42px rgba(14,18,73,.13);padding:21px;margin:16px 0}
.crew-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:15px}
.crew-section-head>div{display:flex;flex-direction:column;gap:1px}.crew-section-head span{font-size:.66rem;text-transform:uppercase;letter-spacing:.11em;color:#8d94b0;font-weight:900}.crew-section-head h2{font-size:1.35rem;margin:0;color:#151c4a;letter-spacing:-.02em}.crew-count{background:#f0f2ff;color:#3542ba!important;border-radius:999px;padding:6px 10px;letter-spacing:0!important;text-transform:none!important;font-size:.73rem!important}
.crew-days-list{display:flex;flex-direction:column;gap:9px}
.crew-day-card{border:1px solid #e4e8f5;border-radius:15px;background:#fbfcff;overflow:hidden}
.crew-day-card>summary,.crew-past>summary,.crew-expense-form>summary{list-style:none;cursor:pointer}
.crew-day-card>summary::-webkit-details-marker,.crew-past>summary::-webkit-details-marker,.crew-expense-form>summary::-webkit-details-marker{display:none}
.crew-day-card>summary{display:grid;grid-template-columns:minmax(110px,.75fr) 1fr 18px;align-items:center;gap:12px;padding:14px 15px}
.crew-day-date{display:flex;flex-direction:column;gap:1px}.crew-day-date span{font-size:.71rem;color:#858ca8;font-weight:850}.crew-day-date strong{font-size:.97rem;color:#1e275f}.crew-day-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.crew-day-summary span{font-size:.8rem;color:#767e9c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-day-summary b{font-size:.78rem;color:#2535c0;background:#eef1ff;border-radius:999px;padding:5px 8px}
.crew-day-card>summary>i,.crew-past>summary>i,.crew-expense-form>summary>i{width:8px;height:8px;border-right:2px solid #7a83aa;border-bottom:2px solid #7a83aa;transform:rotate(45deg);transition:.15s ease;justify-self:end;margin-bottom:4px}
.crew-day-card[open]>summary>i,.crew-past[open]>summary>i,.crew-expense-form[open]>summary>i{transform:rotate(225deg);margin-top:5px;margin-bottom:0}
.crew-day-card.past{opacity:.82}
.crew-past{margin-top:13px;border-top:1px solid #edf0f8;padding-top:12px}.crew-past>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#727a99;font-size:.82rem;font-weight:850;padding:7px 2px 10px}.crew-days-list.past{margin-top:3px}

.crew-doc-list{display:flex;flex-direction:column;gap:8px}.crew-doc{display:grid;grid-template-columns:40px 1fr 18px;align-items:center;gap:11px;padding:12px;border:1px solid #e7eaf5;border-radius:13px;background:#fbfcff}.crew-doc-icon{width:40px;height:40px;border-radius:10px;background:#eef1ff;color:#3442c6;display:grid;place-items:center;font-size:.65rem;font-weight:950}.crew-doc>div:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}.crew-doc strong{font-size:.87rem;color:#20275b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-doc span{font-size:.73rem;color:#8b91aa}.crew-doc>b{font-size:1.1rem;color:#6570b0;text-align:center}
.crew-expense-form{border:1px solid #e4e8f6;border-radius:14px;overflow:hidden;background:#fafbff}.crew-expense-form>summary{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;color:#252f72;font-size:.86rem;font-weight:900}.crew-expense-form form{padding:16px;border-top:1px solid #e9ecf7}.crew-expense-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.crew-expense{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #eceef7;padding:11px 2px 2px}.crew-expense>div{display:flex;flex-direction:column;gap:2px}.crew-expense>div:last-child{align-items:flex-end}.crew-expense strong{font-size:.84rem}.crew-expense span:not(.badge){font-size:.72rem;color:#8b91aa}.crew-expense b{font-size:.86rem}
.crew-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.crew-mini-grid>div{background:#f7f8fc;border-radius:12px;padding:11px;display:flex;flex-direction:column;gap:2px}.crew-mini-grid span{font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;color:#8d93aa;font-weight:900}.crew-mini-grid strong{font-size:.82rem;color:#222957;word-break:break-word}
.crew-bottom-nav{display:none}

@media(max-width:760px){
  .public-body:has(.crew-portal){background:linear-gradient(180deg,#151262 0,#2738cf 260px,#eef1fb 520px,#eef1fb 100%)}
  .public-body:has(.crew-portal) .public-top{height:62px;padding:0 14px;background:#100d58;border-bottom:0;position:sticky;top:0;z-index:50}
  .public-body:has(.crew-portal) .public-brand img{width:205px;max-height:46px}
  .public-body:has(.crew-portal) .public-main{width:100%;padding:22px 12px calc(92px + env(safe-area-inset-bottom));}
  .crew-portal{margin:0 auto;max-width:680px}
  .crew-welcome{padding:0 6px;margin-bottom:18px;align-items:center}
  .crew-welcome .eyebrow{font-size:.61rem;margin-bottom:7px}.crew-welcome h1{font-size:1.8rem}.crew-welcome p{font-size:.8rem}.crew-avatar{width:48px;height:48px;border-radius:15px}
  .crew-next-day{border-radius:20px;margin-bottom:12px;box-shadow:0 18px 48px rgba(18,23,89,.18)}
  .crew-next-heading{padding:18px 18px 17px;align-items:center}.crew-next-heading strong{font-size:.9rem}.crew-city{font-size:2rem}
  .crew-day-body{padding:15px}.crew-day-body.compact{padding:14px}
  .crew-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.crew-fact{padding:10px 9px;border-radius:11px}.crew-fact span{font-size:.55rem;letter-spacing:.05em}.crew-fact strong{font-size:.89rem}
  .crew-section-card{padding:12px;border-radius:13px;gap:10px}.crew-section-icon{width:32px;height:32px;border-radius:9px}.crew-section-content strong{font-size:.9rem}.crew-section-content>span:not(.crew-section-label){font-size:.76rem}
  .crew-block{margin-top:15px}.crew-journey,.crew-hotel{padding:12px;border-radius:13px}.crew-journey-top strong{font-size:.88rem}.crew-journey-meta{font-size:.73rem}.crew-hotel-top strong{font-size:.9rem}.crew-hotel-top span{font-size:.72rem}.crew-hotel-grid{gap:6px;margin-top:10px}.crew-hotel-grid>div{padding:8px}.crew-hotel-grid strong{font-size:.75rem}
  .crew-section{padding:15px;border-radius:18px;margin:11px 0;box-shadow:0 8px 26px rgba(21,27,87,.08)}.crew-section-head{margin-bottom:11px}.crew-section-head h2{font-size:1.18rem}
  .crew-day-card>summary{grid-template-columns:104px 1fr 14px;padding:12px;gap:9px}.crew-day-date strong{font-size:.9rem}.crew-day-date span{font-size:.66rem}.crew-day-summary span{font-size:.73rem}.crew-day-summary b{font-size:.69rem;padding:4px 6px}
  .crew-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crew-expense-form .form-grid{grid-template-columns:1fr}
  .crew-expense-form .form-grid .full{grid-column:1}
  .crew-rh-mini{margin-bottom:4px}
  .crew-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:80;background:rgba(15,13,86,.94);border:1px solid rgba(255,255,255,.13);border-radius:18px;padding:7px;box-shadow:0 15px 42px rgba(11,12,65,.32);backdrop-filter:blur(16px)}
  .crew-bottom-nav a{min-height:49px;color:#dfe3ff;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.61rem;font-weight:850}.crew-bottom-nav a:active{background:rgba(255,255,255,.11)}.crew-bottom-nav span{font-size:.95rem;line-height:1}.crew-bottom-nav b{font-size:.61rem;font-weight:850}
  .hotel-card{align-items:flex-start;flex-direction:column}.hotel-card-actions{width:100%;justify-content:space-between}.hotel-delete-btn{min-height:36px}
}

@media(max-width:420px){
  .crew-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.crew-fact strong{font-size:.82rem}.crew-fact span{font-size:.51rem}
  .crew-city{font-size:1.72rem}.crew-next-heading{padding:16px}
  .crew-day-card>summary{grid-template-columns:94px 1fr 12px}.crew-day-summary b{display:none}
}

/* V12 · accès équipe sans création de fiche + profil RH dans l'espace tournée */
.crew-login-shell{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:32px 0 64px}
.crew-login-card{width:min(100%,620px);background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.65);border-radius:28px;padding:36px;box-shadow:0 28px 90px rgba(13,11,75,.28);color:var(--ink)}
.crew-login-card h1{margin:6px 0 10px;font-size:clamp(2rem,5vw,3.1rem);letter-spacing:-.04em;color:#15184b}
.crew-login-card>p{margin:0 0 24px;color:#6f7798;line-height:1.6;font-size:1rem}
.crew-login-form{display:grid;gap:16px}
.crew-login-form label{display:grid;gap:8px;font-size:.74rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#383f72}
.crew-login-form input{width:100%;min-height:56px;border:1px solid #d8ddf2;border-radius:15px;background:#fbfcff;padding:0 16px;font:inherit;color:#171b4e;outline:none;transition:.18s ease}
.crew-login-form input:focus{border-color:#4d5ce3;box-shadow:0 0 0 4px rgba(64,80,220,.1);background:#fff}
.crew-code-input{text-align:center;font-size:2rem!important;font-weight:950!important;letter-spacing:.28em!important;padding-left:calc(16px + .28em)!important}
.crew-login-help{margin-top:18px;padding:13px 14px;background:#f5f7ff;border-radius:13px;color:#7a82a2;font-size:.82rem;line-height:1.45}
.crew-login-link{display:block;margin-top:18px;text-align:center;color:#3545ca;font-size:.84rem;font-weight:850}

.crew-welcome-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.crew-logout{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border-radius:11px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.19);color:#fff;font-size:.72rem;font-weight:900;white-space:nowrap}
.crew-logout:hover{background:rgba(255,255,255,.18)}

.crew-profile-intro{margin:-2px 0 16px;padding:13px 14px;border-radius:13px;background:#f4f6ff;color:#6e7696;font-size:.82rem;line-height:1.5}
.crew-profile-form{gap:11px}
.crew-profile-fixed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.crew-profile-fixed>div{min-width:0;background:#f7f8fd;border:1px solid #eceef8;border-radius:12px;padding:11px 12px;display:flex;flex-direction:column;gap:2px}
.crew-profile-fixed span{font-size:.61rem;letter-spacing:.07em;text-transform:uppercase;color:#9298b1;font-weight:900}
.crew-profile-fixed strong{font-size:.82rem;color:#242b5c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crew-profile-group{border:1px solid #e5e8f5;border-radius:14px;background:#fbfcff;overflow:hidden}
.crew-profile-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;color:#242d6b;font-size:.88rem;font-weight:900}
.crew-profile-group>summary::-webkit-details-marker{display:none}
.crew-profile-group>summary i{width:8px;height:8px;border-right:2px solid #7b84aa;border-bottom:2px solid #7b84aa;transform:rotate(45deg);transition:.15s ease;margin-right:3px}
.crew-profile-group[open]>summary i{transform:rotate(225deg);margin-top:5px}
.crew-profile-group .section-grid{padding:0 15px 15px;border-top:1px solid #edf0f8;padding-top:15px}
.crew-profile .form-grid label{font-size:.69rem}
.crew-profile .form-grid input,.crew-profile .form-grid textarea,.crew-profile .form-grid select{min-height:46px;border-radius:11px}
.crew-profile .form-grid textarea{min-height:92px}

@media(max-width:760px){
  .crew-login-shell{min-height:calc(100vh - 90px);padding:18px 0 36px}
  .crew-login-card{border-radius:21px;padding:24px 18px;box-shadow:0 20px 58px rgba(13,11,75,.22)}
  .crew-login-card h1{font-size:2rem}
  .crew-login-card>p{font-size:.9rem;margin-bottom:20px}
  .crew-login-form input{min-height:52px}
  .crew-welcome-actions{flex-direction:column;align-items:flex-end;gap:6px}.crew-logout{min-height:31px;padding:0 9px;font-size:.62rem}
  .crew-profile-fixed{grid-template-columns:1fr}.crew-profile-fixed>div{padding:10px 11px}.crew-profile-fixed strong{white-space:normal}
  .crew-profile .form-grid,.crew-profile-group .section-grid{grid-template-columns:1fr}.crew-profile .form-grid .full,.crew-profile-group .section-grid .full{grid-column:1}
  .crew-bottom-nav{grid-template-columns:repeat(5,1fr)}
  .crew-bottom-nav a{min-width:0;padding:0 2px}.crew-bottom-nav b{font-size:.55rem}.crew-bottom-nav span{font-size:.9rem}
}

@media(max-width:420px){
  .crew-login-card{padding:22px 16px}.crew-code-input{font-size:1.7rem!important}
  .crew-bottom-nav{left:6px;right:6px;padding:6px}.crew-bottom-nav a{min-height:47px}.crew-bottom-nav b{font-size:.51rem}
}


/* V14 · Rooming list avancée */
.date-tabs{display:flex;gap:6px;margin:-2px 0 18px;padding:5px;background:#e9edfb;border:1px solid #dfe4f5;border-radius:14px;width:max-content;max-width:100%}
.date-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:0 16px;border-radius:10px;color:#66709a;font-size:.78rem;font-weight:900}
.date-tabs a.active{background:#fff;color:#1f2f98;box-shadow:0 3px 12px rgba(24,34,105,.10)}
.rooming-page-head{align-items:flex-end}
.rooming-source-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#171460,#283bd4);color:#fff;padding:18px 20px;border-radius:18px;margin-bottom:16px;box-shadow:0 14px 34px rgba(28,32,119,.18)}
.rooming-source-banner>div{display:flex;flex-direction:column;gap:4px}.rooming-source-banner strong{font-size:1rem}.rooming-source-banner span{font-size:.8rem;color:#dce1ff;line-height:1.45}
.rooming-filters{display:flex;gap:8px;overflow:auto;padding:2px 0 12px;scrollbar-width:thin}
.rooming-filters a{white-space:nowrap;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 13px;border:1px solid #dfe4f4;border-radius:999px;background:#fff;color:#596487;font-size:.75rem;font-weight:900}
.rooming-filters a.active{background:#202eaa;border-color:#202eaa;color:#fff}.rooming-filters span{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#eef1ff;color:#3441ba;font-size:.68rem}.rooming-filters a.active span{background:rgba(255,255,255,.18);color:#fff}
.rooming-night-summary{display:flex;gap:7px;overflow:auto;margin-bottom:16px;padding-bottom:2px}
.rooming-night-summary>div{min-width:68px;background:#fff;border:1px solid #e1e5f2;border-radius:13px;padding:9px 10px;text-align:center;box-shadow:0 5px 15px rgba(20,28,96,.04)}
.rooming-night-summary span{display:block;font-size:.65rem;color:#858dab;font-weight:900}.rooming-night-summary strong{display:inline-block;font-size:1.05rem;color:#18215c;margin-top:2px}.rooming-night-summary small{font-size:.6rem;color:#9399b1;margin-left:3px}
.rooming-panel{overflow:hidden}.rooming-add-person{display:flex;align-items:center;gap:8px}.rooming-add-person select{min-height:38px;min-width:240px;border:1px solid #d9def0;border-radius:10px;background:#fff;padding:0 10px;color:#29305f;font:inherit;font-size:.78rem}
.rooming-table-wrap{overflow:auto;max-width:100%;border-top:1px solid #edf0f7;max-height:68vh}
.rooming-table{border-collapse:separate;border-spacing:0;min-width:1900px;width:100%;font-size:.73rem;background:#fff}
.rooming-table th{position:sticky;top:0;z-index:6;background:#2539ad;color:#fff;text-align:left;padding:10px 9px;border-right:1px solid rgba(255,255,255,.12);font-size:.64rem;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}
.rooming-table td{padding:8px 9px;border-right:1px solid #e8ebf5;border-bottom:1px solid #e8ebf5;vertical-align:middle;color:#31385e;background:#fff}
.rooming-table tbody tr:nth-child(even) td{background:#f5f8ff}.rooming-table tbody tr:hover td{background:#eef3ff}
.rooming-table .sticky-col{position:sticky;z-index:4}.rooming-table th.sticky-col{z-index:8}.rooming-table .c-dept{left:0;min-width:72px}.rooming-table .c-job{left:72px;min-width:132px}.rooming-table .c-name{left:204px;min-width:130px}
.rooming-table td.sticky-col{box-shadow:1px 0 0 #e2e6f2}.rooming-table tbody tr:nth-child(even) td.sticky-col{background:#f5f8ff}.rooming-table tbody tr:hover td.sticky-col{background:#eef3ff}
.rooming-dept{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;border-radius:7px;background:#e8edff;color:#3345bc;font-weight:900}
.rooming-nowrap{white-space:nowrap}.night-head{text-align:center!important;min-width:48px}.night-head span{display:block}.night-cell{text-align:center;padding:6px!important}
.night-toggle{display:inline-grid;place-items:center;width:28px;height:28px;cursor:pointer}.night-toggle input{position:absolute;opacity:0;pointer-events:none}.night-toggle span{width:24px;height:24px;border-radius:7px;border:2px solid #c7cdea;background:#fff;transition:.12s ease;position:relative}.night-toggle input:checked+span{background:#3148d7;border-color:#3148d7;box-shadow:0 4px 10px rgba(49,72,215,.20)}.night-toggle input:checked+span:after{content:"";position:absolute;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);left:6px;top:6px}
.rooming-compact,.rooming-hotel-select,.rooming-comment{min-height:34px;border:1px solid #dbe0ef;border-radius:8px;background:#fff;color:#2d345e;padding:0 8px;font:inherit;font-size:.72rem}.rooming-compact{width:88px}.rooming-hotel-select{min-width:160px}.rooming-comment{min-width:290px}.room-number{width:86px}
.rooming-remove{width:31px;height:31px;border:0;border-radius:9px;background:#fff0f0;color:#b82f3a;font-size:1.15rem;cursor:pointer;font-weight:900}.rooming-remove:hover{background:#ffe4e5}
.rooming-savebar{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:rgba(255,255,255,.97);border-top:1px solid #e4e8f3;backdrop-filter:blur(12px)}.rooming-savebar span{font-size:.72rem;color:#8a91aa}
.rooming-delete-forms{display:none}.rooming-preview{background:linear-gradient(135deg,#fff 60%,#f4f6ff)}
@media(max-width:900px){.rooming-source-banner{align-items:flex-start;flex-direction:column}.rooming-add-person{width:100%;flex-wrap:wrap}.rooming-add-person select{flex:1;min-width:180px}.rooming-savebar{align-items:stretch;flex-direction:column}.rooming-savebar .btn{width:100%}.date-tabs{width:100%}.date-tabs a{flex:1}}
@media print{.admin-sidebar,.admin-top,.page-actions,.date-tabs,.rooming-source-banner,.rooming-filters,.rooming-add-person,.rooming-savebar,.rooming-remove{display:none!important}.admin-main{margin:0!important;padding:0!important}.rooming-table-wrap{max-height:none;overflow:visible}.rooming-table{min-width:0;font-size:7pt}.rooming-table th{position:static!important;background:#dbe7f7!important;color:#12235a!important}.rooming-table .sticky-col{position:static!important}.rooming-panel{box-shadow:none;border:0}.rooming-night-summary{display:none}}


/* V15 · la rooming list reste dans sa zone et ne décale plus toute la page */
html,body{max-width:100%;overflow-x:hidden}
.admin-shell,.main-column,.admin-content,.panel,.rooming-panel,.rooming-edit-form{min-width:0;max-width:100%}
.admin-shell{width:100%}
.main-column{width:100%;overflow-x:hidden}
.admin-content{overflow-x:hidden}
.rooming-panel{width:100%;overflow:hidden}
.rooming-edit-form{display:block;width:100%;overflow:hidden}
.rooming-table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;contain:inline-size}
.rooming-table{width:max-content;min-width:1900px;max-width:none}
.rooming-source-tools{width:max-content;max-width:100%;margin:0 0 14px auto;color:#697192;font-size:.73rem}
.rooming-source-tools>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid #dfe4f4;border-radius:9px;background:#fff;font-weight:850;color:#68709a}
.rooming-source-tools>summary::-webkit-details-marker{display:none}
.rooming-source-tools[open]>summary{background:#f4f6ff;color:#2938ad}
.rooming-source-tools>div{display:flex;align-items:center;gap:10px;margin-top:7px;padding:9px 10px;border:1px solid #e3e7f3;border-radius:10px;background:#fff}
.rooming-source-tools form{margin:0}
@media(max-width:900px){.rooming-source-tools{width:100%;margin-left:0}.rooming-source-tools>div{align-items:flex-start;flex-direction:column}.rooming-table-wrap{max-width:100vw}}


/* V17 · interface plus légère, sélections sans grosses cartes */
:root{
  --glass-light:rgba(255,255,255,.62);
  --glass-line:rgba(147,158,218,.28);
}

/* Boutons secondaires en verre, CTA principal conservé */
.btn.secondary{
  background:rgba(236,240,255,.68);
  color:var(--navy);
  border:1px solid rgba(161,172,226,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn.secondary:hover{background:rgba(226,232,255,.84)}
.btn.outline{
  background:rgba(255,255,255,.48);
  border:1px solid rgba(169,179,225,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.public-body .btn.secondary,
.public-body .btn.outline{
  color:#fff;
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.public-body .btn.secondary:hover,
.public-body .btn.outline:hover{background:rgba(255,255,255,.19)}
.public-panel{
  background:rgba(255,255,255,.91);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

/* Les choix de dates deviennent une liste compacte. Plus de "grosse box + rond bleu". */
.date-select-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:2px 0 8px;
}
.select-all-dates-btn{
  min-height:38px!important;
  border-radius:10px!important;
  padding:0 13px!important;
  border:1px solid rgba(116,130,210,.24)!important;
  background:rgba(238,241,255,.62)!important;
  color:#26306e!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68)!important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font-size:.80rem!important;
  font-weight:850!important;
}
.select-all-dates-btn:hover{background:rgba(228,233,255,.86)!important;transform:none!important}
.select-all-dates-btn.is-active{
  background:rgba(35,49,181,.90)!important;
  color:#fff!important;
  border-color:rgba(35,49,181,.12)!important;
}
.select-all-icon{
  width:17px!important;
  height:17px!important;
  border-radius:5px!important;
  border:1.6px solid #9da7d0!important;
  background:rgba(255,255,255,.75)!important;
  position:relative;
}
.select-all-dates-btn.is-active .select-all-icon{border-color:#fff!important;background:rgba(255,255,255,.14)!important}

.date-checks{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:0 26px!important;
  border-top:1px solid #e5e8f3;
  margin-top:2px;
}
.date-checks .check-item{
  min-height:56px!important;
  padding:11px 2px!important;
  border:0!important;
  border-bottom:1px solid #e7eaf4!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  transform:none!important;
}
.date-checks .check-item:hover{
  background:rgba(242,245,255,.54)!important;
  border-color:#e1e5f1!important;
  box-shadow:none!important;
}
.date-checks .check-item:has(input:checked),
.date-checks .check-item.is-selected{
  background:linear-gradient(90deg,rgba(50,67,211,.07),rgba(50,67,211,0))!important;
  border-color:#dfe4f2!important;
  box-shadow:none!important;
}
.date-checks .check-item input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  position:static!important;
  transform:none!important;
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:0!important;
  border:1.5px solid #aab3d3!important;
  border-radius:5px!important;
  background:rgba(255,255,255,.80)!important;
  display:grid!important;
  place-items:center!important;
}
.date-checks .check-item input[type="checkbox"]:checked{
  border-color:#3445d8!important;
  background:#3445d8!important;
}
.date-checks .check-item input[type="checkbox"]:checked:after{
  display:block!important;
  content:''!important;
  width:7px!important;
  height:4px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:rotate(-45deg)!important;
  margin-top:-1px!important;
}
.date-checks .check-item>span{min-width:0}
.date-checks .check-item strong{
  display:block;
  font-size:.89rem!important;
  line-height:1.2!important;
  color:#232b62!important;
  font-weight:850!important;
}
.date-checks .check-item small{
  display:block;
  margin-top:3px!important;
  font-size:.74rem!important;
  color:#858ba5!important;
  font-weight:650!important;
}

/* Les autres cases à cocher restent compactes et sans gros pavé */
.check-grid{gap:8px!important}
.check-grid .check-item{
  background:rgba(247,248,255,.62);
  border:1px solid rgba(205,211,236,.62);
  border-radius:10px;
  padding:10px 11px;
  box-shadow:none;
}
.check-grid .check-item input[type="checkbox"]{width:17px;height:17px}


/* Les cases isolées ne sont plus enfermées dans des pavés */
.form-grid > label.check-item{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:8px 2px;
}

/* Suppression de document plus discrète */
.document-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.document-delete{min-height:34px!important;padding:0 10px!important}

/* BDC */
.bdc-schedule-mini{display:grid;gap:3px;font-size:.78rem;color:#687092}
.bdc-schedule-mini strong{color:#252d62}

/* Favicon et liens propres ne demandent aucun style particulier */

@media(max-width:860px){
  .date-select-toolbar{align-items:stretch;flex-direction:column}
  .date-checks{grid-template-columns:1fr!important;gap:0!important}
  .date-checks .check-item{min-height:52px!important}
}


/* =========================================================
   V20 · Sélection des dates sobre et correctement alignée
   Pas de cartes, pas de traits entre les dates, pas de gros boutons.
   ========================================================= */

.date-select-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  margin:4px 0 16px!important;
  padding:0!important;
}

.select-all-dates-btn{
  appearance:none!important;
  -webkit-appearance:none!important;
  min-height:0!important;
  padding:5px 2px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#27306d!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  font-size:.84rem!important;
  font-weight:800!important;
  cursor:pointer!important;
  transform:none!important;
}

.select-all-dates-btn:hover{
  background:transparent!important;
  color:#3445d8!important;
  transform:none!important;
}

.select-all-dates-btn.is-active{
  background:transparent!important;
  color:#3445d8!important;
  border:0!important;
  box-shadow:none!important;
}

.select-all-icon{
  width:17px!important;
  height:17px!important;
  flex:0 0 17px!important;
  border:1.5px solid #a9b2d3!important;
  border-radius:5px!important;
  background:rgba(255,255,255,.72)!important;
  position:relative!important;
}

.select-all-dates-btn.is-active .select-all-icon{
  border-color:#3445d8!important;
  background:#3445d8!important;
}

.select-all-dates-btn.is-active .select-all-icon:after{
  content:''!important;
  position:absolute!important;
  left:4px!important;
  top:3px!important;
  width:7px!important;
  height:4px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:rotate(-45deg)!important;
}

/* Deux colonnes aérées, sans cadre ni séparateur */
.date-checks{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:54px!important;
  row-gap:6px!important;
  border:0!important;
  margin:0!important;
  padding:0!important;
}

/* Une date = checkbox alignée sur la première ligne + texte */
.date-checks .check-item{
  position:relative!important;
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr)!important;
  align-items:start!important;
  column-gap:12px!important;
  min-height:0!important;
  margin:0!important;
  padding:11px 8px!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  box-shadow:none!important;
  cursor:pointer!important;
  transition:background .14s ease!important;
  transform:none!important;
}

.date-checks .check-item:hover{
  background:rgba(239,242,255,.48)!important;
  border:0!important;
  box-shadow:none!important;
}

/* Sélection visible mais légère, sans grosse box */
.date-checks .check-item:has(input:checked),
.date-checks .check-item.is-selected{
  background:rgba(52,69,216,.065)!important;
  border:0!important;
  box-shadow:none!important;
}

.date-checks .check-item input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  position:static!important;
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  flex:0 0 18px!important;
  margin:2px 0 0!important;
  padding:0!important;
  border:1.5px solid #a7b0d1!important;
  border-radius:5px!important;
  background:rgba(255,255,255,.82)!important;
  display:grid!important;
  place-items:center!important;
  transform:none!important;
  cursor:pointer!important;
  box-shadow:none!important;
}

.date-checks .check-item input[type="checkbox"]:checked{
  border-color:#3445d8!important;
  background:#3445d8!important;
}

.date-checks .check-item input[type="checkbox"]:checked:after{
  content:''!important;
  display:block!important;
  width:7px!important;
  height:4px!important;
  margin-top:-1px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:rotate(-45deg)!important;
}

.date-checks .check-item>span{
  display:block!important;
  min-width:0!important;
  line-height:1.2!important;
}

.date-checks .check-item strong{
  display:block!important;
  margin:0!important;
  font-size:.91rem!important;
  line-height:1.22!important;
  font-weight:850!important;
  color:#222b64!important;
}

.date-checks .check-item br{
  display:none!important;
}

.date-checks .check-item small{
  display:block!important;
  margin:5px 0 0!important;
  font-size:.76rem!important;
  line-height:1.2!important;
  font-weight:650!important;
  color:#8a91ab!important;
}

/* Mobile : une colonne, même alignement */
@media(max-width:860px){
  .date-select-toolbar{
    align-items:flex-start!important;
    margin-bottom:12px!important;
  }

  .date-checks{
    grid-template-columns:1fr!important;
    column-gap:0!important;
    row-gap:3px!important;
  }

  .date-checks .check-item{
    padding:10px 4px!important;
  }
}


/* =========================================================
   V21 · Dates avec interrupteurs ON / OFF
   Alignement vertical strict du bloc date + lieu autour du toggle.
   Aucun trait, aucune carte, aucun cadre de ligne.
   ========================================================= */

.date-checks{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:56px!important;
  row-gap:2px!important;
  border:0!important;
  border-top:0!important;
  border-bottom:0!important;
  background:transparent!important;
  box-shadow:none!important;
  margin:0!important;
  padding:0!important;
}

.date-checks .check-item{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  column-gap:13px!important;
  align-items:center!important;
  min-height:58px!important;
  margin:0!important;
  padding:8px 4px!important;
  border:0!important;
  border-top:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-left:0!important;
  border-radius:10px!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  cursor:pointer!important;
  text-transform:none!important;
  letter-spacing:0!important;
  transform:none!important;
}

.date-checks .check-item:hover{
  border:0!important;
  background:rgba(239,242,255,.36)!important;
  box-shadow:none!important;
  transform:none!important;
}

.date-checks .check-item:has(input:checked),
.date-checks .check-item.is-selected{
  border:0!important;
  background:rgba(52,69,216,.045)!important;
  box-shadow:none!important;
}

/* Suppression forcée de tout séparateur hérité */
.date-checks .check-item::before,
.date-checks .check-item::after,
.date-checks .check-item>span::before,
.date-checks .check-item>span::after,
.date-checks .check-item strong::before,
.date-checks .check-item strong::after,
.date-checks .check-item small::before,
.date-checks .check-item small::after{
  content:none!important;
  display:none!important;
  border:0!important;
}

.date-checks .check-item>span{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  gap:4px!important;
  min-width:0!important;
  min-height:42px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  line-height:1!important;
}

.date-checks .check-item strong{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  font-size:.92rem!important;
  line-height:1.16!important;
  font-weight:850!important;
  letter-spacing:0!important;
  color:#222b64!important;
  text-transform:none!important;
}

.date-checks .check-item br{
  display:none!important;
}

.date-checks .check-item small{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  font-size:.76rem!important;
  line-height:1.16!important;
  font-weight:650!important;
  letter-spacing:0!important;
  color:#8990aa!important;
  text-transform:none!important;
}

/* Toggle OFF / ON */
.date-checks .check-item input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  position:relative!important;
  display:block!important;
  width:38px!important;
  min-width:38px!important;
  height:22px!important;
  min-height:22px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(126,138,190,.48)!important;
  border-radius:999px!important;
  background:rgba(211,217,237,.72)!important;
  box-shadow:inset 0 1px 2px rgba(32,42,100,.06)!important;
  transform:none!important;
  cursor:pointer!important;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease!important;
}

.date-checks .check-item input[type="checkbox"]::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  width:16px!important;
  height:16px!important;
  left:2px!important;
  top:2px!important;
  border:0!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 1px 4px rgba(26,34,92,.22)!important;
  transform:translateX(0)!important;
  transition:transform .16s ease!important;
}

.date-checks .check-item input[type="checkbox"]::after{
  content:none!important;
  display:none!important;
}

.date-checks .check-item input[type="checkbox"]:checked{
  border-color:rgba(51,68,216,.55)!important;
  background:linear-gradient(135deg,#3347dc,#5b50c8)!important;
  box-shadow:0 4px 12px rgba(51,68,216,.16),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.date-checks .check-item input[type="checkbox"]:checked::before{
  transform:translateX(16px)!important;
}

/* Le bouton "Cocher toutes les dates" devient lui aussi un toggle visuel */
.select-all-dates-btn{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  min-height:34px!important;
  padding:4px 7px 4px 2px!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#27306d!important;
  font-size:.82rem!important;
  font-weight:800!important;
  transform:none!important;
}

.select-all-dates-btn:hover{
  background:rgba(239,242,255,.46)!important;
  color:#3445d8!important;
  transform:none!important;
}

.select-all-icon{
  position:relative!important;
  display:block!important;
  width:34px!important;
  min-width:34px!important;
  height:20px!important;
  border:1px solid rgba(126,138,190,.48)!important;
  border-radius:999px!important;
  background:rgba(211,217,237,.72)!important;
  box-shadow:inset 0 1px 2px rgba(32,42,100,.06)!important;
}

.select-all-icon::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  width:14px!important;
  height:14px!important;
  left:2px!important;
  top:2px!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:0 1px 4px rgba(26,34,92,.22)!important;
  transition:transform .16s ease!important;
}

.select-all-icon::after{
  content:none!important;
  display:none!important;
}

.select-all-dates-btn.is-active{
  background:transparent!important;
  color:#3445d8!important;
  border:0!important;
  box-shadow:none!important;
}

.select-all-dates-btn.is-active .select-all-icon{
  border-color:rgba(51,68,216,.55)!important;
  background:linear-gradient(135deg,#3347dc,#5b50c8)!important;
}

.select-all-dates-btn.is-active .select-all-icon::before{
  transform:translateX(14px)!important;
}

/* Mobile */
@media(max-width:860px){
  .date-checks{
    grid-template-columns:1fr!important;
    column-gap:0!important;
    row-gap:2px!important;
  }

  .date-checks .check-item{
    grid-template-columns:42px minmax(0,1fr)!important;
    min-height:56px!important;
    padding:8px 2px!important;
  }

  .date-checks .check-item>span{
    min-height:40px!important;
  }
}
