:root{--mobile-blue:#0054c7;--mobile-border:#e2e8f0;--mobile-ink:#111d30}body[data-page=mobile]{background:linear-gradient(110deg,#fff,#f8fafc);color:var(--mobile-ink);font:15px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;padding:0 0 calc(85px + env(safe-area-inset-bottom))}body[data-page=mobile] header{max-width:650px;margin:auto;background:transparent;color:var(--mobile-blue);padding:22px 20px 10px;display:flex;align-items:center;justify-content:space-between}body[data-page=mobile] header h1{font-size:22px;letter-spacing:-.7px;margin:0;font-weight:750}body[data-page=mobile] main{max-width:650px;margin:auto;padding:8px 16px}body[data-page=mobile] button{min-height:44px}body[data-page=mobile] #status{font-size:12px;background:#f3f6fa;min-height:0;padding:8px;overflow-wrap:anywhere}.mar-select{display:flex;flex-direction:row;align-items:center;background:#f0f3f7;border:1px solid #e6ebf1;border-radius:12px;margin:0 0 14px;padding:0 12px;gap:12px}.mar-select>span:first-child{font-size:27px}.mar-select select{flex:1;width:100%;min-width:0;min-height:44px;border:0;background:transparent;padding:8px 0;color:var(--mobile-ink)}.view-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#f5f7fa;border:1px solid var(--mobile-border);border-radius:12px;overflow:hidden;gap:1px}.view-tabs button{border:0;border-radius:10px;background:transparent;font-weight:600;font-size:14px}.view-tabs button[aria-pressed=true]{background:#0863d8;color:white;box-shadow:inset 0 0 8px #0057c822}.date-nav{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:3px;margin:16px 0 21px}.date-nav>button{font-size:35px;line-height:1;background:none;border:0;padding:0;color:var(--mobile-blue)}.date-picker{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;position:relative;margin:0;min-width:0;min-height:44px}.date-picker>span:first-child{font-size:24px;color:var(--mobile-blue)}#period-title{font-size:15px;font-weight:650;text-align:center}#period-title::first-letter{text-transform:uppercase}.date-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}body[data-page=mobile] section[data-panel=planning]{padding:0;border:0;margin:0;background:transparent}body[data-page=mobile] section:not([data-panel=planning]){padding:16px;margin:10px 0}.activity-badge{display:inline-flex;align-items:center;justify-content:center;min-width:65px;min-height:49px;border-radius:10px;padding:6px 10px;font-size:25px;font-weight:750;overflow-wrap:anywhere}.day-hero{border-radius:13px;background:linear-gradient(110deg,#edf8f0,#e8f6ef);padding:16px 18px;position:relative;border-left:7px solid #389550;margin-bottom:18px}.hero-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.hero-heading h2{font-size:18px;margin:0 0 10px;letter-spacing:-.3px}.hero-heading h2::first-letter{text-transform:uppercase}.hero-heading>span{color:#0068de;font-size:25px}.day-hero .activity-badge{font-size:31px;padding:5px 18px}.activity-description{font-weight:600;color:#205b23;margin:8px 0 0;font-size:16px}.modified-note{font-size:14px;margin:16px 0 0}.modified-note>span{color:#ecab00;margin-right:8px}.day-detail{border:1px solid var(--mobile-border);border-radius:14px;padding:15px 14px;background:#ffffff65}.day-detail h2{font-size:19px;margin:0 0 14px;letter-spacing:-.5px}dl{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);margin:0}dt,dd{padding:13px 0;border-top:1px solid #e8edf3;font-size:14px;overflow-wrap:anywhere}dt{display:flex;align-items:center;gap:12px}dt>span{min-width:18px;font-size:19px}dd{margin:0;padding-left:9px;font-weight:500}.validation-note{font-size:12px;color:#526781;margin:10px 0 0}.correction-comment{font-size:13px;line-height:1.5;margin:10px 0 0}.history-panel{border:1px solid var(--mobile-border);border-radius:13px;margin:18px 0;padding:0;background:#f0f3f8;color:var(--mobile-blue)}.history-panel>summary{display:flex;align-items:center;gap:14px;list-style:none;cursor:pointer;min-height:52px;padding:10px 16px;font-weight:600}.history-panel>summary>span:nth-child(2){margin-left:auto;font-size:26px}.history-entry{color:var(--mobile-ink);background:white;border-top:1px solid var(--mobile-border);padding:12px;line-height:1.5}.history-entry p{margin:4px 0}.week-list{display:grid;gap:10px}.week-day{display:grid;grid-template-columns:80px 70px minmax(0,1fr) 12px;align-items:center;gap:8px;text-align:left;width:100%;padding:15px 10px;border:1px solid #edf0f5;background:linear-gradient(110deg,#f6f8fa,#f4f6f9);border-radius:15px;min-height:83px!important}.week-day>span:first-child{font-weight:600;text-transform:capitalize;font-size:14px}.week-day small{display:block;font-weight:400;margin-top:6px;font-size:13px}.week-day .activity-badge{width:65px;min-width:0}.week-description{font-size:12px;line-height:1.35}.week-day>span:last-child{font-size:25px;color:#335a87}.year-calendars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.month-calendar{border:1px solid var(--mobile-border);border-radius:12px;overflow:hidden;background:#fafcff;padding-bottom:7px;min-width:0}.month-calendar h3{font-size:12px;text-align:center;background:#e6f0fd;margin:0 0 4px;padding:12px 2px;text-transform:capitalize}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:0 4px}.weekday{text-align:center;font-size:9px;color:#4773a6;padding:2px 0 5px}.month-grid button{position:relative;padding:0!important;min-width:0;min-height:20px!important;height:20px;border:0;background:transparent;display:grid;place-items:center;isolation:isolate;font-size:10px}.month-grid button>span:first-child{z-index:1;pointer-events:none}.month-grid .activity-badge{position:absolute;inset:0;min-width:0;min-height:0;padding:0;font-size:0;border-radius:3px;z-index:-1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #247caf;outline-offset:2px}@media(min-width:700px){.month-grid button{height:28px;min-height:28px!important;font-size:12px}.month-calendar h3{font-size:15px}.week-day{grid-template-columns:110px 80px 1fr 20px}.week-description{font-size:15px}}@media(max-width:350px){.week-day{grid-template-columns:67px 58px 1fr 10px;gap:5px;padding:12px 7px}.week-day .activity-badge{width:55px}.week-description{font-size:11px}.year-calendars{gap:10px 7px}#period-title{font-size:13px}}
.nav-icon svg{width:25px;height:28px}.mar-select>svg{width:23px;height:25px;flex-shrink:0}.date-picker>svg{width:22px;height:22px;flex-shrink:0;color:var(--mobile-blue)}

.week-day .activity-badge{font-size:22px;padding:6px 4px}
.activity-filter{display:flex;margin:14px 0 0;gap:7px;font-size:13px;color:#526781}.activity-filter select{min-height:44px;width:100%}.activity-filter:after{content:attr(data-result);font-size:12px}.month-grid button.activity-muted{opacity:.18}.calendar-panel{border:1px solid var(--mobile-border);border-radius:12px;padding:14px;margin:20px 0;color:#244668;font-size:14px}.calendar-panel summary{cursor:pointer;min-height:36px;font-weight:600}.calendar-panel input{width:100%;font-size:12px}.calendar-panel button{margin:5px 0;width:100%}.calendar-panel a{display:block;padding:14px;background:#0863d8;color:white;border-radius:8px;text-decoration:none}.login-card{margin-top:30px!important}.login-card form{display:grid;gap:12px}.login-card label{display:flex;margin:0}.login-card input{min-height:46px}.stat-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.stat-cards article{border:1px solid #e2e8f0;background:#f2f7ff;padding:12px;border-radius:12px;display:flex;flex-direction:column;gap:7px}.stat-cards article:last-child{grid-column:1/-1}.stat-cards strong{font-size:25px;color:#0054c7}.stat-cards span{font-size:12px;color:#526781}.vacation-chart{width:100%;height:auto;background:#fbfcff;border:1px solid #e2e8f0;border-radius:10px}.vacation-chart text{font:12px system-ui;fill:#526781}.daily-statistics>div{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #edf0f4;font-size:13px}

.mar-select select:disabled{opacity:1;appearance:none;color:var(--mobile-ink)}
.leave-warning{background:#fff0e3;border:2px solid #c64c12;border-left:7px solid #c64c12;border-radius:11px;padding:14px;margin:14px 0;color:#742702;line-height:1.5}.leave-warning strong{display:block;font-size:17px}.leave-warning li{margin:10px 0}.leave-warning ul{padding-left:19px}.leave-check{font-size:13px;background:#f0f5fc;border-radius:9px;padding:12px;margin:12px 0;color:#365476}.personal-leave{border:1px solid var(--mobile-border);border-radius:12px;padding:14px;margin:12px 0}.personal-leave small{color:#526781;font-size:11px}.personal-leave details{padding:8px 0}#vac-feedback{font-weight:600;line-height:1.5}
.day-hero.leave-approved{background:#f1e9fa;border-left-color:#9469bd}.leave-approved .activity-description{color:#6d428e}
.conditional-notice{background:#fff9dc;border:2px solid #bc8b12;border-radius:10px;padding:12px;margin:12px 0;line-height:1.5}.conditional-notice p{margin:8px 0}

.personal-leave.leave-disclosure{padding:0;margin:8px 0}.personal-leave-summary{display:flex;align-items:center;gap:7px;list-style:none;padding:12px 10px;min-height:48px;cursor:pointer;font-size:12px;white-space:nowrap}.personal-leave-summary::-webkit-details-marker{display:none}.personal-leave-summary>b{margin-left:auto;font-size:11px;background:#edf2f8;border-radius:20px;padding:4px 7px}.personal-leave-summary>b[data-status="acceptée"]{background:#ede1f8;color:#643b83}.personal-leave-summary>b[data-status="sous réserve"]{background:#fff1c2;color:#755100}.personal-leave-summary>b[data-status="refusée"]{background:#fde8e8;color:#9b3540}.leave-chevron{color:#0054c7;font-size:19px}.personal-leave[open]>.personal-leave-summary{border-bottom:1px solid #e2e8f0;background:#f5f8fc}.personal-leave[open] .leave-chevron{transform:rotate(180deg)}.personal-leave-content{padding:12px;font-size:13px;overflow-wrap:anywhere}@media(max-width:350px){.personal-leave-summary{font-size:11px;gap:4px;padding:12px 7px}.personal-leave-summary>b{font-size:10px;padding:4px 5px}}

/* Coins de modification et consultation tactile de l’historique. */
.activity-badge{position:relative}.mobile-change-marker{position:absolute;top:0;right:0;width:0;height:0;border-top:15px solid #ef8a16;border-left:15px solid transparent;pointer-events:none}.activity-badge>.mobile-change-marker{border-top-width:15px;border-left-width:15px}.month-grid .activity-badge>.mobile-change-marker{display:block;z-index:2;border-top-width:9px;border-left-width:9px}.month-grid button>.mobile-change-marker{z-index:2;border-top-width:9px;border-left-width:9px}.activity-badge[role=button]{cursor:pointer;min-height:44px;min-width:44px;touch-action:manipulation}.activity-badge[role=button]:focus-visible{outline:3px solid #247caf;outline-offset:3px}.vacation-change-detail{position:relative;overflow:hidden;color:#914300;border:1px solid #dfab71;background:#fff0dc;border-radius:6px;padding:8px 18px;font:inherit;cursor:pointer;min-height:44px}.daily-statistics>div{flex-wrap:wrap;gap:8px}
#mobile-change-dialog{box-sizing:border-box;width:calc(100% - 32px);max-width:560px;max-height:85vh;max-height:85dvh;border:1px solid #d9e2eb;border-radius:14px;padding:18px;color:#111d30;background:white;box-shadow:0 8px 32px #13234033;overflow:auto}#mobile-change-dialog::backdrop{background:transparent}#mobile-change-dialog h2{font-size:19px;margin:0 0 12px}#mobile-change-dialog .mobile-change-close{display:block;margin:0 0 14px auto;min-height:44px;min-width:80px;border:1px solid #a9bfd5;background:#edf3fa;color:#174f72;border-radius:7px;font:inherit;padding:8px 14px}#mobile-change-dialog .history-entry{overflow-wrap:anywhere}#mobile-change-dialog .history-entry:first-child{border-top:0}

.blue-day-flag{display:inline-block;font-weight:800;color:#0665c8;background:#e8f3ff;border:1px solid #7fb6eb;border-radius:4px;padding:1px 4px;margin-left:4px;font-size:14px}.blue-day-worked{background:linear-gradient(135deg,#ffb44c 0 40%,#e8f3ff 40%)}

/* The personal answer remains visible even when the proposal is folded. */
.staff-answer-badge{display:inline-block;padding:8px 12px;margin:8px 0 2px;border:2px solid #b6c5d1;border-radius:9px;font-size:14px;font-weight:750;background:#eef3f7;color:#314f65}.staff-answer-badge.answer-accepte{border-color:#278557;background:#d7f1e2;color:#165b36}.staff-answer-badge.answer-refuse{border-color:#bd4e53;background:#fce2e4;color:#8a2831}.staff-response-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:14px 0}.staff-response-actions button{width:100%;min-height:52px;padding:10px 8px;font-size:16px;font-weight:750;border-radius:10px;border:2px solid #aebecb;background:white;color:#294a60}.staff-response-actions .staff-response-accept[aria-pressed=true]{background:#d7f1e2;border:3px solid #278557;color:#165b36;box-shadow:0 0 0 2px #27855722}.staff-response-actions .staff-response-refuse[aria-pressed=true]{background:#fce2e4;border:3px solid #bd4e53;color:#8a2831;box-shadow:0 0 0 2px #bd4e5322}.staff-response-actions button:focus-visible{outline:3px solid #245d91;outline-offset:3px}
/* Keep the saved answer aligned with the right edge of each proposal. */
#staff-personal-offers>.personal-leave>summary{display:flex;align-items:center;gap:10px;list-style:none;width:100%;box-sizing:border-box;min-height:44px}
#staff-personal-offers>.personal-leave>summary::-webkit-details-marker{display:none}
#staff-personal-offers>.personal-leave>summary::before{content:'▸';flex:none;font-size:17px;color:#426276}
#staff-personal-offers>.personal-leave[open]>summary::before{content:'▾'}
#staff-personal-offers>.personal-leave>summary>b{flex:1;min-width:0;overflow-wrap:anywhere}
#staff-personal-offers .staff-answer-badge{flex:none;margin:0 0 0 auto;white-space:nowrap}
@media(max-width:380px){#staff-personal-offers>.personal-leave>summary{gap:6px}#staff-personal-offers .staff-answer-badge{font-size:12px;padding:7px 8px}}

.staff-answer-badge.answer-confirmed{border-color:#278557;background:#d7f1e2;color:#165b36}.staff-answer-badge.answer-cancelled{border-color:#aab8c2;background:#eef1f4;color:#46535f}

@media(max-width:600px){
 #staff-personal-offers>.personal-leave>summary{display:grid;grid-template-columns:12px minmax(0,1fr);gap:6px 10px}
 #staff-personal-offers>.personal-leave>summary>b{overflow-wrap:normal}
 #staff-personal-offers .staff-answer-badge{grid-column:2;margin:0;justify-self:start;max-width:100%;white-space:normal}
}

/* Selected month: readable activity labels; year retains its compact calendar. */
.month-view{grid-template-columns:1fr}.month-view .month-grid button{height:58px;min-height:58px!important;display:flex;flex-direction:column;gap:4px}.month-view .month-grid .activity-badge{position:relative;inset:auto;z-index:auto;min-height:23px;width:100%;font-size:10px;color:#183149!important;overflow:hidden}.month-view .month-grid .activity-badge>.mobile-change-marker{border-top-width:11px;border-left-width:11px}

/* Personal home: the same controls at each width, with the menu folded on touch layouts. */
body[data-page=mobile]{padding-bottom:env(safe-area-inset-bottom)}
body[data-page=mobile] header,body[data-page=mobile] main{max-width:1440px}
body[data-page=mobile] header{padding:4px 12px;gap:10px}
body[data-page=mobile] header h1{font-size:18px;min-width:0;overflow-wrap:anywhere}
#mobile-person:not(:empty)::before{content:" · "}
body[data-page=mobile] #publication-banner{position:static!important;text-align:center;padding:8px 12px!important;font-size:15px!important;min-height:0}
body[data-page=mobile] main{padding:8px 10px}
body[data-page=mobile] [hidden]{display:none!important}
.date-nav{margin:4px 0;grid-template-columns:44px minmax(0,1fr) 44px}
.mobile-quick{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px}
body[data-page=mobile] .mobile-quick button{padding:4px 9px;font-size:13px}
body[data-page=mobile] #tomorrow{color:#0054c7;font-weight:750}
body[data-page=mobile] #status{margin:0}
#mobile-own-assignments{margin:4px 0 8px;padding:7px 10px;border:1px solid var(--mobile-border);border-radius:8px;overflow-wrap:anywhere}
#mobile-planning>*{min-width:0}
#mobile-planning .day-hero{margin-bottom:8px;padding:10px 12px}
.tomorrow-heading{display:block;margin:0 0 4px;color:#314b67;font-size:13px}
.mobile-tools{margin-top:12px}
.mobile-tools input,.mobile-fold textarea{box-sizing:border-box;width:100%;min-width:0}
.mobile-fold{border:1px solid var(--mobile-border);border-radius:10px;margin:6px 0}
.mobile-fold>summary{display:list-item;box-sizing:border-box;min-height:44px;padding:12px;cursor:pointer;font-weight:700}
.mobile-fold-content{padding:8px 12px}
body[data-page=mobile] .mobile-fold>section{margin:0;padding:8px 12px;border:0}
.activity-badge.mobile-rtt{background:#e4d7f5;color:#502181;font-weight:750}
.activity-badge.mobile-blue-day{background:#164b9b;color:white}
.mobile-blue-day .blue-day-flag{color:white;background:transparent;border:0;margin:0;padding:0;font:750 1em/1 system-ui}
body[data-page=mobile] .month-grid button{min-height:44px!important;height:44px}
body[data-page=mobile] .month-grid .activity-badge{position:relative;inset:auto;min-width:0;min-height:17px;width:100%;font-size:10px;z-index:auto}
body[data-page=mobile] .month-grid .activity-badge.mobile-rtt{color:#502181!important}
body[data-page=mobile] .month-grid .activity-badge.mobile-blue-day{color:white!important}
.month-grid button{grid-template-rows:auto minmax(17px,auto);padding:2px!important;gap:2px}
.year-calendars{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.year-calendars.month-view{grid-template-columns:1fr}
.mobile-tools,.mobile-fold,.day-detail{overflow-wrap:anywhere}
@media(min-width:700px){
 body[data-page=mobile] header,body[data-page=mobile] main{padding-left:20px;padding-right:20px}
 .mobile-controls{display:grid;grid-template-columns:minmax(260px,1fr) minmax(270px,1fr);gap:8px;align-items:center;margin:0 0 8px}
 .mobile-controls .date-nav{margin:0}
 .mobile-controls .activity-filter{grid-column:1/-1;grid-row:2}
 #mobile-planning[data-view=jour]{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:12px}
 #mobile-planning[data-view=jour]>*{margin:0}
 #mobile-planning[data-view=jour]>.day-hero{grid-column:1;grid-row:1}
 #mobile-planning[data-view=jour]>.day-detail{grid-column:2}
 #mobile-planning[data-view=jour]>.history-panel{grid-column:1}
}
#mobile-menu-toggle{
 flex:none;min-width:44px;padding:0;font-size:21px;line-height:1;
 color:#124a73;background:#f2f7fc;border:1px solid #cbd9e6;border-radius:8px;
}
#mobile-secondary{
 display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,135px),1fr));
 gap:4px;margin:4px auto;padding:5px;max-width:630px;
 background:#fff;border:1px solid var(--mobile-border);border-radius:9px;
}
#mobile-secondary :is(button,a),.mobile-tabs button{
 display:flex;align-items:center;justify-content:center;
 min-height:44px;padding:4px 6px;border:0;border-radius:6px;
 color:#234b73;background:#f3f7fc;text-decoration:none;font:650 14px/1.2 system-ui;
}
.mobile-tabs{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;
 max-width:630px;padding:4px;margin:4px auto;
}
body[data-page=mobile] .mobile-tabs button[aria-pressed=true]{
 color:#104a86;background:#e3effc;box-shadow:inset 0 -2px #0054c7;
}
body[data-page=mobile] .simulation-notice{
 padding:3px 10px!important;border-width:1px!important;
 font:12px/1.25 system-ui;
}
body[data-page=mobile] .release-badge{
 display:block;width:fit-content;margin:12px 0 0;color:#4f647b;font-size:11px;
}
@media(max-width:1023px){
 body[data-page=mobile]{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
 body[data-page=mobile] header{
  padding-top:env(safe-area-inset-top);
  padding-left:max(10px,env(safe-area-inset-left));
  padding-right:max(10px,env(safe-area-inset-right));
 }
 body[data-page=mobile] #publication-banner{padding:5px 10px!important}
 .mobile-tabs{
  position:fixed;z-index:8;inset:auto 0 0;max-width:none;margin:0;
  padding:4px max(6px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));
  background:#fff;border-top:1px solid var(--mobile-border);
 }
 body[data-page=mobile] main{
  padding-left:max(10px,env(safe-area-inset-left));
  padding-right:max(10px,env(safe-area-inset-right));
 }
}
@media(max-width:480px){
 body[data-page=mobile] header h1{font-size:16px}
 body[data-page=mobile] .simulation-notice span{font-size:11px}
 .mobile-quick{margin-bottom:4px}
}
