/* app.css */
@font-face{font-family:DM;src:url('/assets/fonts/dmsans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#f4f7fb;--white:#fff;--ink:#18344e;--muted:#60758b;--line:#dfe8f1;--action:#1764b5;--blue:#235a87;--soft:#edf3fb;--ok:#14543e;--ok-bg:#e5f3eb;--warn:#75480d;--warn-bg:#fcf0d7;--bad:#972e22;--bad-bg:#fdece8;--nav:#0f2230;--radius:13px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.55 DM,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--action)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #91b9e4;outline-offset:3px}svg{height:19px;width:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:31px;line-height:1.2;letter-spacing:-1px;font-weight:650}h2{font-size:20px;letter-spacing:-.4px;font-weight:650}h3{font-size:15px}p+p{margin-top:10px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.num{font-variant-numeric:tabular-nums}.stack{display:grid;gap:20px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}.mt{margin-top:20px}.gap{gap:8px}.primary,.secondary,.danger{min-height:42px;border-radius:9px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;text-decoration:none}.primary{background:var(--action);color:white}.primary:hover{background:#11508f}.secondary{background:white;border:1px solid #d4e1ee;color:#345e81}.secondary:hover{background:#f3f7fc}.danger{color:var(--bad);border:1px solid #e5b8b2;background:white}.text-btn{color:var(--action);font-weight:600;font-size:13px;padding:8px 0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9px;background:var(--soft)}.tag{display:inline-flex;gap:5px;align-items:center;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;background:var(--soft);color:#345e81;max-width:100%}.tag.ok{color:var(--ok);background:var(--ok-bg)}.tag.warn{color:var(--warn);background:var(--warn-bg)}.tag.bad{color:var(--bad);background:var(--bad-bg)}.badge{display:inline-flex;align-items:center;justify-content:center;font-size:10px;min-width:19px;height:19px;padding:0 5px;background:#eaf2fd;color:var(--action);border-radius:5px;font-weight:700}.avatar{width:39px;height:39px;border-radius:12px;background:#e9f1fa;color:#235a87;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:700}.v2-menu{position:fixed;inset:0 auto 0 0;width:272px;background:var(--nav);color:#d7e6ef;padding:22px 18px;display:flex;flex-direction:column;z-index:30;overflow:auto}.brand{display:flex;align-items:center;gap:10px;padding:8px 8px 28px;font-size:20px;letter-spacing:-.6px;font-weight:650;color:white}.brand-mark{background:var(--action);border-radius:10px;color:white;padding:8px;font-size:14px;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:1px;color:#8fb0c4;font-weight:400}.v2-grp-t{font-size:9px;font-weight:700;letter-spacing:1.3px;color:#8da7b9;padding:18px 10px 9px}.v2-it{width:100%;text-align:left;display:flex;align-items:center;gap:11px;color:#d7e6ef;border-radius:8px;padding:11px 10px;font-size:12px;line-height:1.4}.v2-it.on{color:white;background:#ffffff1f}.v2-it:hover{background:#ffffff12}.nav-user{margin-top:auto;border-top:1px solid #ffffff16;padding-top:20px;display:flex;gap:10px;align-items:center}.nav-user small{color:#9cb1c0}.nav-user .avatar{background:#25465e;color:#d9eafa}.app-body{margin-left:272px}.masthead{height:78px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 32px;background:white;border-bottom:1px solid var(--line)}.main-nav{display:flex;gap:5px}.main-nav button{padding:10px 15px;display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;font-weight:600}.mast-right{display:flex;align-items:center;gap:14px}.v2-ouvrir{display:none}.module-nav{background:white;border-bottom:1px solid var(--line);padding:15px 32px 0}.module-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.module-title b{font-size:15px}.group-switch{display:flex;gap:4px;background:var(--paper);border-radius:8px;padding:3px}.group-switch button{font-size:12px;padding:6px 12px;border-radius:6px}.group-switch button.on{background:var(--action);color:white}.mjp-rail{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.mjp-rail a{padding:11px 10px;text-decoration:none;color:var(--muted);font-size:12px;font-weight:600;border-bottom:3px solid transparent;display:flex;align-items:center;gap:7px}.mjp-rail a.on{color:var(--action);border-bottom-color:var(--action)}.mjp-rail a:hover{background:var(--paper)}main{max-width:1600px;margin:auto;padding:32px 32px 48px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:25px}.page-head p{color:var(--muted);margin-top:8px;max-width:650px;font-size:13px}.date-mark{font-size:12px;color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 4px 15px #1b405d05;overflow:clip;min-width:0}.panel-head{background:var(--blue);color:white;padding:17px 23px;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:64px}.panel-head h2{font-size:18px;font-weight:600;letter-spacing:-.3px}.panel-head small{color:#d0e2f3}.panel-head .text-btn{color:white}.panel-body{padding:24px}.soft-panel{background:#f8fafd;border-radius:10px;padding:20px}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(275px,1fr);gap:22px;align-items:start}.equal-col{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.banner{display:flex;align-items:flex-start;gap:11px;background:#edf3fb;padding:15px 18px;border-radius:10px;font-size:12px;color:#345e81}.banner strong{display:block;font-size:13px}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.ok{background:var(--ok-bg);color:var(--ok)}.banner.bad{background:var(--bad-bg);color:var(--bad)}.segment{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--paper);border:1px solid var(--line);border-radius:9px}.segment button{padding:8px 12px;font-size:12px;font-weight:600;color:var(--muted);border-radius:6px}.segment button.active{background:white;box-shadow:0 2px 6px #1a457014;color:var(--action)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .wide{grid-column:1/-1}label{display:grid;gap:7px;font-size:12px;font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea{min-height:43px;padding:10px 12px;background:white;border:1px solid #ccdbe9;border-radius:9px;min-width:0;width:100%;font-size:13px;font-weight:400}textarea{resize:vertical;min-height:85px}.check{display:flex;gap:9px;align-items:center;font-weight:400}.check input{accent-color:var(--action);width:17px;height:17px}.form-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:13px;border-top:1px solid var(--line);padding-top:20px;margin-top:23px}.form-footer small{color:var(--muted);max-width:380px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:white;border:1px solid var(--line);border-radius:13px;margin-bottom:24px;overflow:hidden}.metric{padding:21px 23px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric label{font-size:11px;color:var(--muted)}.metric b{display:block;font-size:27px;font-weight:650;letter-spacing:-1px;margin:7px 0 1px;font-variant-numeric:tabular-nums}.metric small{font-size:11px;color:var(--muted)}.metric .tiny{margin-top:10px;font-size:10px;color:var(--muted)}.progress{height:5px;border-radius:4px;background:#e6eef7;overflow:hidden;margin-top:10px}.progress i{display:block;height:100%;background:var(--action);width:var(--pct,75%)}.week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 0 18px}.week-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.day-col{border:1px solid var(--line);border-radius:11px;background:#f8fafd;min-width:0}.day-head{padding:13px 10px;border-bottom:1px solid var(--line);display:grid;gap:5px}.day-head strong{font-size:12px}.day-head span{font-size:11px;color:var(--muted)}.day-head button{font-size:10px;padding:3px 0;color:var(--action);text-align:left}.day-slots{display:grid;gap:10px;padding:10px;align-content:start;min-height:220px}.slot{display:block;width:100%;padding:12px 9px;text-align:left;border:1px solid #c9dcef;border-left:3px solid var(--action);border-radius:8px;background:#eaf3fe;min-width:0;color:#174d79}.slot b{display:block;font-size:11px;white-space:nowrap}.slot small{display:block;font-size:10px;margin-top:4px}.slot .slot-duration{margin-top:12px;font-weight:600}.slot.alt{background:#eef3f7;border-color:#d8e1ec;border-left-color:#638298}.slot-add{border:1px dashed #c5d6e7;border-radius:7px;padding:9px;color:var(--action);font-size:11px}.off-day{background:repeating-linear-gradient(135deg,#f8fafd,#f8fafd 6px,#f0f4f8 6px,#f0f4f8 7px)}.off-label{font-size:11px;color:var(--muted);text-align:center;margin-top:70px}.week-summary{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:22px;padding:20px;background:var(--soft);border-radius:10px}.week-summary .big{font-size:25px;font-weight:650;letter-spacing:-.7px}.week-summary .progress{width:180px}.site-dot{display:inline-block;width:8px;height:8px;background:var(--action);border-radius:50%;margin-right:5px}.site-dot.alt{background:#638298}.day-picker{display:none}.data-table{width:100%;border-collapse:collapse;text-align:left}.data-table th{font-size:10px;color:var(--muted);font-weight:600;background:#f7f9fc;letter-spacing:.5px;padding:12px}.data-table td{padding:15px 12px;border-bottom:1px solid #e9eff6;font-size:12px;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table td b{display:block}.data-table td small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.table-wrap{overflow:auto}.item{display:flex;gap:15px;align-items:center;padding:18px 0;border-bottom:1px solid #e9eff6}.item:last-child{border:0}.item p{color:var(--muted);font-size:12px;margin-top:4px}.item .actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px}.item-icon{display:grid;place-items:center;width:42px;height:46px;border-radius:10px;background:#edf3fb;color:var(--action);flex-shrink:0}.empty{text-align:center;padding:48px 20px;color:var(--muted);display:grid;gap:10px;justify-items:center}.empty svg{width:34px;height:34px;stroke-width:1}.empty b{color:var(--ink);font-size:16px}.month{min-width:0}.month h3{text-align:center;margin:0 0 12px;font-size:13px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.month-grid span{text-align:center;font-size:10px;color:var(--muted);padding:5px}.month-grid button{min-height:31px;border-radius:6px;font-size:11px;position:relative}.month-grid button:hover{background:var(--soft)}.month-grid button.we{color:#7b8c9f;background:#f7f9fc}.month-grid button.sel{background:var(--action);color:white}.month-grid button.pris{background:var(--ok-bg);color:var(--ok)}.month-grid button.att{box-shadow:inset 0 -3px #e6ac50}.month-grid button.fe{background:var(--warn-bg);color:var(--warn)}.months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:15px;font-size:10px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.legend i{height:7px;width:7px;border-radius:2px;background:#dce7f3}.legend .ok{background:#a7d3bc}.legend .warn{background:#e6ac50}.legend .blue{background:var(--action)}.decision{display:grid;grid-template-columns:43px 1fr auto;gap:17px;padding:23px 0;border-bottom:1px solid var(--line)}.decision:last-child{border:0}.decision h3{font-size:16px}.decision p{margin:5px 0 12px;color:var(--muted);font-size:12px}.decision .actions{display:grid;align-content:center;gap:7px}.decision-foot{display:flex;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:10px}.employee-hero{background:#173e62;color:white;padding:25px;border-radius:13px;display:flex;gap:18px;align-items:center;margin-bottom:24px}.employee-hero .avatar{width:60px;height:60px;font-size:20px;background:#ffffff15;color:white}.employee-hero p{color:#ccdfee;margin-top:6px}.employee-hero .secondary{margin-left:auto}.month-pills{display:flex;flex-wrap:wrap;gap:5px;margin:18px 0}.month-pills button{border-radius:7px;padding:7px 10px;font-size:11px;color:var(--muted)}.month-pills .active{background:var(--action);color:white}.team-year{display:grid;grid-template-columns:180px repeat(12,minmax(30px,1fr)) 90px;min-width:720px;gap:0}.team-year>div{padding:12px 5px;border-bottom:1px solid var(--line);min-height:60px;align-content:center;font-size:11px}.team-year .year-head{min-height:35px;background:#f7f9fc;color:var(--muted);text-align:center;font-size:9px}.team-year .year-person{padding:10px;font-size:12px}.year-cell button{width:100%;min-height:30px;border-radius:5px;background:#f4f7fb}.year-cell button.absent{background:#c4d5e6}.year-cell button.pending{background:repeating-linear-gradient(135deg,#eaf0f8,#eaf0f8 4px,#c7d7e8 4px,#c7d7e8 5px)}.team-month{min-width:700px;display:grid;grid-template-columns:180px repeat(31,minmax(13px,1fr));font-size:9px}.team-month>div{border-bottom:1px solid var(--line);padding:8px 1px;min-height:55px}.team-month .person-cell{padding:8px 12px;grid-column:1}.team-month .day-cell{background:#fafbfd;border-left:1px solid #eef2f7;text-align:center}.team-month .we{background:#edf1f6}.team-month .bar-cell{grid-column:2/-1;display:grid;grid-template-columns:repeat(31,1fr);grid-auto-rows:26px;gap:4px 0;background:repeating-linear-gradient(90deg,transparent,transparent calc(100%/31 - 1px),#eef2f7 calc(100%/31 - 1px),#eef2f7 calc(100%/31));padding:8px 0}.team-bar{grid-column:var(--start)/span var(--span);padding:3px 6px;background:#e3edf8;border-left:2px solid var(--action);border-radius:4px;text-align:left;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.calendar-mobile{display:none}.person-card{background:#f8fafd;border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:12px}.document-year{font-size:12px;letter-spacing:1px;color:var(--muted);margin-bottom:8px}.upload{border:1px dashed #9dbbd8;border-radius:10px;background:#f8fbff;padding:18px}.upload input{border:0!important;background:transparent!important;padding:5px 0!important}.notice-surface{margin:24px 32px 0}.cl-notice-banner{display:flex;justify-content:space-between;gap:15px;align-items:center;color:#7a2318;font-size:11px}.cl-notice-body{margin-top:12px;border:1px solid #e9d4cf;border-radius:10px;padding:18px;background:#fffaf8}.notice-controls{display:flex;flex-wrap:wrap;gap:16px}.notice-controls label{min-width:140px;flex:1}.notice-controls select{font-size:12px}.notice-controls .check{align-self:end}.cl-box{padding:14px 16px;border-radius:9px;font-size:12px;margin-top:14px;border:1px solid}.cl-box-red{border-color:#e6b9b0;background:#fff2ef;color:#7a2318}.cl-box-green{border-color:#badfc8;background:#eef8f1;color:#145530}.cl-box strong{display:block;margin-bottom:6px}.choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.choices button{font-size:11px;border:1px solid currentColor;padding:7px 10px;border-radius:6px}.choices button.active{background:#7a2318;color:white;border-color:#7a2318}.review-off .cl-box{display:none}.notice-surface details>summary{cursor:pointer;list-style:none}.help-row{display:flex;gap:14px;align-items:flex-start}.help-row p{font-size:12px;color:var(--muted)}footer{padding:24px 32px;color:var(--muted);font-size:11px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#23364e;color:white;padding:15px 22px;border-radius:10px;box-shadow:0 7px 30px #18253330;max-width:min(550px,calc(100vw - 32px));z-index:110;font-size:13px}.toast[hidden]{display:none}dialog{padding:0;border:1px solid #dbe6f1;border-radius:18px;box-shadow:0 25px 90px #132d4b45;max-width:calc(100vw - 36px);width:660px;max-height:90vh;color:var(--ink)}dialog::backdrop{background:#102f4c6e;backdrop-filter:blur(3px)}.dialog-head{padding:24px 28px;background:#f8fafd;display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head h2{font-size:24px;line-height:1.2}.dialog-body{padding:26px 28px}.dialog-body .error{color:var(--bad);font-size:12px;margin-top:12px}.dialog-body .error:empty{display:none}.audit-row{display:grid;grid-template-columns:100px 1fr;gap:12px;margin:12px 0;font-size:12px}.audit-row span{color:var(--muted)}.restricted .masthead{justify-content:flex-end}.restricted .module-nav{padding-bottom:12px}.checks{display:grid;gap:15px}.compact{padding:14px 20px}.loading{padding:35px;text-align:center}.skeleton{height:14px;background:#e8eff6;border-radius:4px;margin:14px 0}.hero-desk{display:grid;grid-template-columns:1.4fr 1fr;gap:25px}.hero-desk h2{font-size:26px;margin:8px 0 18px}.holiday-list{display:flex;gap:8px;flex-wrap:wrap}.long-labels button,.long-labels a{overflow-wrap:anywhere}.nav-alt .mjp-rail{padding-bottom:12px;gap:8px}.nav-alt .mjp-rail a{border:1px solid var(--line);border-radius:8px;padding:8px 12px}.nav-alt .mjp-rail a.on{background:var(--soft)}[hidden]{display:none!important}
@media(min-width:1600px){.week-board{gap:14px}.day-slots{padding:14px}.slot b{font-size:13px}.slot small{font-size:11px}}
@media(max-width:1250px){.v2-menu{width:230px}.app-body{margin-left:230px}.masthead{padding:0 24px}.main-nav button{padding:10px}.module-nav{padding-left:24px;padding-right:24px}main{padding:26px 24px}.notice-surface{margin:20px 24px 0}.two-col{grid-template-columns:1fr}.week-board{gap:6px}.day-slots{padding:6px}.slot{padding:10px 6px}.slot b{font-size:10px}.metric{padding:18px}.metrics .metric b{font-size:24px}}
@media(max-width:1050px){.v2-menu{width:205px;padding:20px 12px}.app-body{margin-left:205px}.main-nav button svg{display:none}.main-nav button{font-size:11px;padding:8px}.mast-right .date-mark{display:none}.equal-col{grid-template-columns:1fr}.day-picker{display:flex;gap:5px;margin-bottom:12px;flex-wrap:wrap}.day-picker button{padding:8px 12px;border-radius:7px;background:#f1f5fa;font-size:12px}.day-picker .active{background:var(--action);color:white}.week-board{grid-template-columns:1fr}.day-col:not(.chosen){display:none}.day-head{display:flex;align-items:center;gap:20px;padding:15px}.day-head button{margin-left:auto}.day-slots{grid-template-columns:repeat(2,minmax(0,1fr));min-height:150px;padding:14px}.slot b{font-size:14px}.slot small{font-size:12px}.slot-add{min-height:44px}.off-label{margin:20px 0}.months{gap:12px}.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.hero-desk{grid-template-columns:1fr}}
@media(max-width:800px){.months{grid-template-columns:1fr}.months .month:not(:first-child){display:none}.team-desktop{display:none}.calendar-mobile{display:block}.decision{grid-template-columns:39px minmax(0,1fr);gap:12px}.decision .actions{grid-column:2;display:flex;flex-wrap:wrap}.page-head{flex-wrap:wrap}.masthead{height:65px}.panel-body{padding:20px}.panel-head{padding:16px 20px}.mjp-rail a{font-size:11px;padding:10px 7px}.module-title{flex-wrap:wrap}.data-table.responsive thead{display:none}.data-table.responsive tbody,.data-table.responsive tr,.data-table.responsive td{display:block}.data-table.responsive tr{padding:12px 0;border-bottom:1px solid var(--line)}.data-table.responsive td{padding:5px 10px;border:0}.data-table.responsive td:before{content:attr(data-label);font-size:10px;color:var(--muted);display:block}.item{flex-wrap:wrap}.item .actions{margin-left:54px}.calendar-mobile .item .actions{margin-left:0}}
@media(max-width:650px){.v2-menu{display:none;width:100%;max-width:320px;box-shadow:10px 0 80px #102a4377}.menu-open .v2-menu{display:flex}.app-body{margin-left:0}.v2-ouvrir{display:inline-flex}.masthead{padding:0 16px}.mast-right{gap:6px}.main-nav{display:none}.mobile-title{font-weight:650}.module-nav{padding:15px 16px 0}.module-title>b{font-size:14px}.notice-surface{margin:16px 16px 0}main{padding:24px 16px 36px}.mjp-rail{gap:1px}.mjp-rail a{padding:10px 7px;font-size:11px}h1{font-size:28px}.page-head p{font-size:12px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.metrics{margin-bottom:20px}.metric{padding:16px 13px}.metric b{font-size:24px}.metric .tiny{font-size:9px}.panel-body{padding:19px 17px}.panel-head{padding:16px 17px}.panel-head h2{font-size:17px}.panel-head small{font-size:10px}.week-toolbar>.row{width:100%}.week-summary{gap:12px;padding:16px}.week-summary .progress{width:130px}.week-summary .big{font-size:22px}.form-footer{align-items:stretch}.form-footer>.row{width:100%;display:grid;grid-template-columns:1fr}.form-footer>.primary{width:100%}.form-footer label{width:100%}.form-footer small{max-width:none}.dialog-head{padding:20px}.dialog-head h2{font-size:22px}.dialog-body{padding:20px}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}.day-slots{grid-template-columns:1fr}.day-picker{justify-content:space-between;gap:2px}.day-picker button{padding:8px 9px}.employee-hero{flex-wrap:wrap;padding:20px}.employee-hero .secondary{margin-left:0}.employee-hero h1{font-size:24px}.cl-notice-banner{font-size:10px}.notice-controls{gap:12px}.notice-controls label{min-width:115px}.item .grow{min-width:150px}.page-head .row{width:100%}footer{padding:22px 16px}.header-extra{display:none}.module-title .group-switch button{padding:6px 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* directions.css */
/* Four work structures; identity tokens deliberately remain shared. */
.core-chain{display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr;align-items:center;background:white;border:1px solid var(--line);border-radius:13px;margin-bottom:25px;padding:18px 22px;gap:12px}.core-chain>div{min-width:0}.core-chain small{display:block;color:var(--muted);font-size:10px}.core-chain b{display:block;font-size:13px;margin:4px 0}.core-chain .chain-step{color:var(--action);font-size:10px;font-weight:650;letter-spacing:.8px}.core-chain>svg{color:#92aac0}.mini-week{display:flex;gap:9px;align-items:end;height:120px;margin-top:25px}.mini-week button{flex:1;display:flex;flex-direction:column;gap:8px;align-items:center;font-size:11px;color:var(--muted)}.mini-week i{display:block;width:100%;height:50px;border-radius:6px;background:linear-gradient(to top,#bed6f1,var(--soft))}.mini-week button:nth-child(3) i{height:27px}.mini-week button:nth-child(5) i{height:15px}.mini-week b{font-size:11px;color:var(--ink)}.overview-glyph{display:grid;place-items:center;width:70px;height:70px;border-radius:20px;background:#edf3fb;color:var(--action)}.overview-glyph svg{width:36px;height:36px}.contract-kpi{font-size:42px;letter-spacing:-1.7px;font-weight:600;line-height:1.1;margin:20px 0 8px}.contract-kpi small{font-size:15px;letter-spacing:0;font-weight:400}.contract-details{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.contract-details b{display:block;font-size:19px}.contract-details span{font-size:11px;color:var(--muted)}.timeline{border-left:1px solid #d2e2f2;margin:5px 0 0 11px;padding-left:28px}.timeline .agenda-event{position:relative;padding:0 0 28px}.agenda-event:before{content:'';position:absolute;left:-34px;top:5px;width:9px;height:9px;background:var(--action);border:3px solid white;box-shadow:0 0 0 1px #bed2e9;border-radius:50%}.agenda-event .time{font-size:11px;color:var(--muted)}.agenda-event h3{font-size:18px;margin:5px 0}.agenda-event p{font-size:12px;color:var(--muted)}.workflow-links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.workflow-links button{border:1px solid var(--line);border-radius:11px;background:white;text-align:left;padding:19px;display:flex;gap:12px;align-items:center}.workflow-links b{display:block;font-size:13px}.workflow-links small{display:block;color:var(--muted);margin-top:3px}.planner-hub{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px}.planner-hub .contract-panel{background:#173e62;color:white;padding:27px;border-radius:13px;align-self:start}.contract-panel .eyebrow,.contract-panel .muted,.contract-panel .contract-details span{color:#c0d4e6}.contract-panel .text-btn{color:white}.contract-panel .secondary{background:#ffffff15;border-color:#ffffff35;color:white}.priority-card{background:white;padding:24px;border-radius:13px;border:1px solid var(--line);margin-bottom:17px;display:flex;gap:20px;align-items:center}.priority-card .priority-number{font-size:32px;letter-spacing:-1px;font-weight:400;color:#b7cce0}.priority-card h3{font-size:17px;margin-bottom:6px}.priority-card p{color:var(--muted);font-size:12px}.priority-card .primary{margin-left:auto}.direction-B .panel-head{background:white;color:var(--ink);border-bottom:1px solid var(--line)}.direction-B .panel-head h2:before{content:'';display:inline-block;height:15px;width:4px;background:var(--action);border-radius:2px;margin-right:10px;vertical-align:-1px}.direction-B .panel-head small{color:var(--muted)}.direction-B .week-board{grid-template-columns:1fr}.direction-B .day-col{display:grid;grid-template-columns:140px 1fr;background:white}.direction-B .day-head{border-bottom:0;border-right:1px solid var(--line);align-content:center}.direction-B .day-slots{min-height:0;display:flex;align-items:center;padding:15px;flex-wrap:wrap}.direction-B .slot{width:auto;min-width:190px;display:grid;grid-template-columns:auto auto;gap:4px 22px}.direction-B .slot .slot-duration{margin-top:0}.direction-B .slot b{font-size:13px}.direction-B .slot small{margin:0}.direction-B .off-label{margin:0}.direction-B .day-picker{display:none}.direction-B .off-day{background:#f7f9fc}.direction-B .day-col:not(.chosen){display:grid}.team-status-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:25px;border-bottom:1px solid var(--line);padding-bottom:25px}.team-status-strip>div{display:flex;gap:15px;align-items:center}.team-status-strip b{font-size:36px;letter-spacing:-1px}.team-status-strip p{font-size:12px;color:var(--muted)}.workforce{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.workforce-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.workforce-card header{padding:22px;display:flex;align-items:center;gap:13px}.workforce-card h3{font-size:16px}.workforce-card header small{display:block;color:var(--muted);margin-top:4px}.workforce-card .workload{display:flex;justify-content:space-between;gap:15px;margin:0 22px 20px;border-top:1px solid var(--line);padding-top:18px}.workload b{display:block;font-size:22px;letter-spacing:-.5px}.workload span{font-size:10px;color:var(--muted)}.workforce-days{display:flex;gap:6px;padding:0 22px 22px}.workforce-days span{flex:1;background:var(--soft);color:var(--action);text-align:center;border-radius:6px;padding:9px 3px;font-size:11px}.workforce-card footer{padding:14px 22px;background:#f8fafd}.direction-C .module-nav{padding-top:20px}.direction-C .mjp-rail a{display:grid;justify-items:center;gap:8px;padding:13px 16px;font-size:11px;border:0;min-width:85px;border-radius:10px 10px 0 0}.direction-C .mjp-rail a.on{background:var(--soft)}.direction-C .page-head{padding:8px 0 10px}.direction-C .panel-head{background:#edf3fb;color:#174d79}.direction-C .panel-head small{color:var(--muted)}.editorial-hero{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;padding:22px 0 40px;margin-bottom:20px;border-bottom:1px solid var(--line)}.editorial-hero>span{font-size:50px;line-height:1.13;letter-spacing:-2px;font-weight:450;color:#153f65}.editorial-hero>p{font-size:14px;color:var(--muted);line-height:1.8;max-width:240px}.direction-D .v2-menu{display:none}.direction-D .app-body{margin-left:0}.direction-D .masthead{padding:0 max(28px,calc((100vw - 1250px)/2));background:#173e62;color:white;height:75px}.direction-D .main-nav button{color:#d7e6ef}.direction-D .mast-right .date-mark{color:#d7e6ef}.direction-D .module-nav{padding-left:max(28px,calc((100vw - 1250px)/2));padding-right:max(28px,calc((100vw - 1250px)/2));background:#fff}.direction-D main{max-width:1306px;padding-top:35px}.direction-D .notice-surface{max-width:1250px;margin:22px auto 0;padding:0 4px}.direction-D .panel-head{background:white;color:var(--ink);padding:23px 27px 0}.direction-D .panel-head h2{font-size:22px;font-weight:500}.direction-D .panel-head small{color:var(--muted)}.direction-D .panel{border:0;box-shadow:0 8px 35px #153f6506}.direction-D .panel-body{padding:27px}.direction-D .core-chain{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 28px;gap:30px}.direction-D .core-chain b{font-size:17px}.direction-D .core-chain small{font-size:12px}.direction-D .week-board{grid-template-columns:repeat(5,1fr)}.direction-D .week-board .day-col:nth-child(n+6){display:none}.direction-D .day-col{background:white;border-color:#e8eff6}.direction-D .day-slots{min-height:235px}.direction-D .slot{background:#edf4fc;border:0;border-radius:8px;padding:16px 11px}.direction-D .slot b{font-size:13px}.direction-D .day-head{padding:17px 12px}.direction-D .day-head strong{font-size:13px}.direction-D .day-picker{display:flex;gap:5px}.direction-D .day-picker button{font-size:12px;padding:7px 13px;border-radius:8px}.direction-D .day-picker button.active{background:var(--action);color:white}.journey{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.journey-card{background:white;border-radius:15px;padding:28px;display:flex;flex-direction:column;min-height:280px}.journey-card .step-num{color:#7b9ab7;font-size:11px;letter-spacing:2px}.journey-card h2{font-size:25px;margin:25px 0 13px;font-weight:500}.journey-card p{color:var(--muted);font-size:13px}.journey-card .primary,.journey-card .secondary{margin-top:auto;align-self:flex-start}.journey-card.primary-chapter{background:#173e62;color:white}.primary-chapter p,.primary-chapter .step-num{color:#c4d9eb}.primary-chapter .primary{background:white;color:#174d79}.direction-D .metrics{background:transparent;border:0;margin-top:30px}.direction-D .metric{padding-left:0;border:0}.direction-D .metric b{font-size:30px}.direction-D footer{max-width:1250px;margin:auto}.direction-D .v2-ouvrir{display:none}
@media(max-width:1250px){.planner-hub{grid-template-columns:260px 1fr}.direction-C .mjp-rail a{padding:12px;min-width:70px}.direction-D .notice-surface{margin:20px 28px 0}.direction-D .slot b{font-size:11px}.priority-card{align-items:flex-start;flex-wrap:wrap}.priority-card .primary{margin-left:45px}}
@media(max-width:1050px){.planner-hub{grid-template-columns:1fr}.contract-panel{display:grid;grid-template-columns:1fr 1fr;gap:15px}.contract-panel .contract-details{margin:0}.contract-panel .form-footer{grid-column:1/-1}.contract-panel .contract-kpi{font-size:34px;margin:12px 0}.workforce{grid-template-columns:1fr}.direction-B .day-col{grid-template-columns:120px 1fr}.direction-B .day-head{display:grid}.direction-B .day-head button{margin-left:0}.direction-B .day-col:not(.chosen){display:grid}.core-chain{padding:16px;gap:9px;grid-template-columns:1fr 16px 1fr 16px 1fr}.core-chain>svg{width:15px}.core-chain b{font-size:11px}.direction-D .week-board{grid-template-columns:1fr}.direction-D .week-board .day-col{display:none}.direction-D .week-board .day-col.chosen{display:block}.journey{gap:14px}.journey-card{padding:23px;min-height:290px}.journey-card h2{font-size:23px}.direction-D .day-slots{min-height:0}.editorial-hero>span{font-size:43px}}
@media(max-width:800px){.workflow-links{grid-template-columns:1fr}.core-chain{grid-template-columns:1fr;gap:12px}.core-chain>div{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:3px 10px}.core-chain>div small{grid-column:2}.core-chain b{font-size:12px;margin:0}.core-chain>svg{display:none}.team-status-strip b{font-size:28px}.team-status-strip>div{gap:10px}.team-status-strip p{font-size:10px}.direction-C .mjp-rail{gap:1px}.direction-C .mjp-rail a{min-width:0;padding:10px 9px;font-size:10px}.direction-D .editorial-hero{gap:25px;align-items:start}.editorial-hero>span{font-size:37px}.editorial-hero>p{font-size:12px}.journey{grid-template-columns:1fr}.journey-card{min-height:0;display:grid;grid-template-columns:1fr auto;gap:10px 25px}.journey-card h2{margin:5px 0}.journey-card p{grid-column:1}.journey-card .primary,.journey-card .secondary{grid-column:2;grid-row:2/4;align-self:center}.direction-D .core-chain{gap:16px}.direction-D .core-chain b{font-size:13px}}
@media(max-width:650px){.contract-panel{display:block}.contract-panel .contract-details{margin-top:20px}.direction-B .day-col{grid-template-columns:90px 1fr}.direction-B .day-slots{padding:12px}.direction-B .slot{min-width:0;width:100%;display:block}.direction-B .day-head{padding:12px 9px}.direction-B .slot small{margin-top:4px}.direction-B .slot .slot-duration{margin-top:6px}.priority-card{padding:19px;gap:12px}.priority-card .primary{margin-left:37px}.direction-D .masthead{padding:0 18px}.direction-D .main-nav{display:flex;gap:0}.direction-D .main-nav button{padding:6px;font-size:10px}.direction-D .mast-right .icon-btn{display:none}.direction-D .mast-right .avatar{width:30px;height:30px}.direction-D .module-nav{padding:15px 16px 0}.direction-D .notice-surface{margin:16px 16px 0;padding:0}.direction-D main{padding-top:22px}.direction-D .panel-head{padding:21px 18px 0}.direction-D .panel-body{padding:21px 18px}.editorial-hero{display:block;padding:10px 0 25px}.editorial-hero>span{font-size:35px}.editorial-hero>p{margin-top:20px;max-width:none}.journey-card{display:block;padding:23px}.journey-card .primary,.journey-card .secondary{margin-top:20px}.team-status-strip{gap:12px}.team-status-strip>div{display:block}.team-status-strip p{font-size:11px}.team-status-strip b{font-size:30px}.workforce-card header{padding:18px}.workforce-card .workload{margin:0 18px 17px}.direction-D .core-chain>div{grid-template-columns:88px 1fr}.direction-D .metrics{margin-top:25px}}
.nav-user-role{display:block}.direction-D .mast-right .icon-btn{color:#235a87}.hour-schedule{display:flex;gap:8px;min-width:0}.hour-axis{width:40px;flex-shrink:0;color:var(--muted);font-size:9px}.axis-head{height:100px;padding-top:18px}.axis-body{height:448px;position:relative}.axis-body span{position:absolute;left:0;transform:translateY(-50%)}.hour-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;flex:1;min-width:0}.hour-day{min-width:0}.hour-day .day-head{height:100px;border:1px solid var(--line);border-radius:7px 7px 0 0}.hour-track{height:448px;position:relative;background:repeating-linear-gradient(to bottom,#fff,#fff 15px,#eef3f8 15px,#eef3f8 16px);border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;touch-action:pan-y}.hour-slot{position:absolute;left:3px;right:3px;width:auto;min-height:8px;padding:5px 4px;overflow:hidden}.hour-slot b{font-size:10px}.hour-slot small{font-size:9px}.hour-day .slot-add{width:100%;margin-top:6px}.hour-track.off-day{background:repeating-linear-gradient(135deg,#f8fafd,#f8fafd 6px,#edf1f6 6px,#edf1f6 7px)}.hour-track>.off-label{display:block;margin-top:190px}.direction-B .hour-slot{min-width:0;width:auto;display:block}.direction-B .hour-slot b{font-size:10px}.direction-B .hour-slot small{font-size:9px}.direction-B .day-picker{display:none}.direction-C .hour-slot{background:#e3effa}.direction-C .hour-slot.alt{background:#eef3f7}.direction-D .hour-days{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:1050px){.hour-days,.direction-D .hour-days{grid-template-columns:1fr}.hour-day:not(.chosen){display:none}.hour-day .day-head{height:60px;display:flex;gap:20px;align-items:center}.axis-head{height:60px}.hour-slot b{font-size:13px!important}.hour-slot small{font-size:11px!important}.direction-B .day-picker{display:flex}.hour-day .day-head .tag{display:none}}
.direction-D .week-board .day-col:nth-child(n+6){display:block}@media(max-width:1050px){.direction-D .week-board .day-col:nth-child(n+6):not(.chosen){display:none}}
/* Shared team calendar: everyone stays on the same calendar, including mobile. */
.global-month-head{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:21px}.global-month-head h3{font-size:23px;letter-spacing:-.5px;min-width:175px;text-align:center}.global-team-legend{display:flex;flex-wrap:wrap;gap:12px 22px;padding:0 0 20px}.team-legend-person{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink)}.team-legend-person i,.chip-dot{width:7px;height:7px;border-radius:50%;background:var(--person-color);flex-shrink:0}.legend-initials{display:none}.person-color-1{--person-color:#1764b5;--person-bg:#e6f0fc;--person-ink:#154b85}.person-color-2{--person-color:#47796b;--person-bg:#e9f3ed;--person-ink:#285c4d}.person-color-3{--person-color:#826d99;--person-bg:#f0ecf5;--person-ink:#624c77}.person-color-4{--person-color:#987441;--person-bg:#f8f0e3;--person-ink:#775522}.global-month-grid{border:1px solid var(--line);border-radius:11px;overflow:clip;background:white}.global-weekdays,.global-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.global-weekdays{background:#f7f9fc;color:var(--muted);font-size:11px;font-weight:600}.global-weekdays>div{padding:13px 10px;text-align:center}.global-day{min-height:116px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:8px 5px;min-width:0}.global-day:last-child{border-right:0}.global-day.outside{background:#f8fafd}.global-day.weekend{background:#fafbfd}.global-day.today{background:#f2f7ff}.global-day-number{display:flex;align-items:center;gap:6px;min-height:28px;width:100%;text-align:left;padding:3px 6px;font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums}.today .global-day-number{font-weight:750;color:var(--action)}.today-word{font-size:9px;font-weight:500}.global-day-events{display:grid;gap:4px;margin-top:5px}.global-absence-chip{display:flex;align-items:center;gap:5px;padding:6px;border-radius:5px;background:var(--person-bg);color:var(--person-ink);width:100%;min-width:0;text-align:left;min-height:30px;font-size:10px;line-height:1.3}.global-absence-chip:hover{box-shadow:inset 0 0 0 1px var(--person-color)}.global-absence-chip.pending{outline:1px dashed var(--person-color);outline-offset:-1px}.chip-name{overflow-wrap:anywhere}.chip-initials,.day-short{display:none}.pending-mark{font-weight:700;margin-left:auto}.direction-D .global-month-head h3{font-weight:500;font-size:26px}.direction-C .global-absence-chip{border-left:2px solid var(--person-color)}
@media(max-width:1250px){.global-day{min-height:104px}.global-absence-chip{font-size:10px}.chip-dot{display:none}.today-word{display:none}}
@media(max-width:800px){.global-day{min-height:90px}.day-full{display:none}.day-short{display:inline}.global-month-head h3{font-size:20px;min-width:150px}.global-team-legend{gap:10px 15px}.chip-name{display:none}.chip-initials{display:inline;font-size:11px;font-weight:650}.global-absence-chip{justify-content:center;padding:5px 1px}.global-day{padding:6px 3px}.legend-initials{display:inline;font-size:10px;font-weight:650}.global-day-number{padding:3px;font-size:11px}.global-weekdays>div{font-size:10px;padding:11px 2px}}
@media(max-width:650px){.global-month-head{gap:10px}.global-month-head>.row:last-child{justify-content:space-between;width:100%}.global-month-head h3{min-width:155px;font-size:21px}.global-team-legend{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:10px}.team-legend-person{font-size:10px;gap:5px;flex-wrap:wrap}.global-day{min-height:82px}.global-absence-chip{min-height:25px}.global-team-calendar .small{font-size:11px}.global-month-grid{margin-left:-7px;margin-right:-7px}}
.quota-editor{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:25px;align-items:center;padding:22px 24px;background:white;border:1px solid #ccdfee;border-radius:13px;margin:0 0 9px}.quota-editor .eyebrow{display:block;font-size:9px;letter-spacing:1px;margin-bottom:8px}.quota-contract>b{font-size:22px;letter-spacing:-.6px}.quota-contract>b small{font-size:11px;font-weight:400;letter-spacing:0;color:var(--muted)}.quota-contract p,.quota-live p{font-size:11px;color:var(--muted);margin-top:7px}.quota-inputs{padding:0 20px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.quota-label{font-size:13px;font-weight:650;display:block;margin-bottom:8px}.quota-inputs label{max-width:84px;flex:1;font-size:10px}.quota-inputs input,.quota-inputs select{min-width:70px;font-variant-numeric:tabular-nums;font-size:17px!important}.quota-live .tag{font-size:14px;padding:7px 10px}.quota-help{font-size:11px;color:var(--muted);margin-bottom:22px}.quota-result{font-size:12px;color:var(--muted);margin-top:4px}.quota-result.ok{color:var(--ok);font-weight:650}.quota-result.bad{color:var(--bad);font-weight:650}.daily-totals{margin-top:26px;padding-top:23px;border-top:1px solid var(--line)}.daily-totals h3{font-size:14px}.daily-totals-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr)) 1.25fr;gap:6px;margin-top:15px}.daily-total{padding:14px 6px;border-radius:8px;background:#f5f8fc;text-align:center;min-width:0}.daily-total>span{display:block;font-size:10px;color:var(--muted)}.daily-total>b{display:block;font-size:15px;letter-spacing:-.3px;margin:7px 0;font-variant-numeric:tabular-nums}.daily-total small{font-size:9px;color:var(--muted)}.daily-total.rest{background:#fafbfd}.daily-total.weekly{background:#e6f0fc;color:#174d79}.daily-total.weekly>span{color:#345e81;font-weight:650}
@media(max-width:1250px){.quota-editor{grid-template-columns:1fr 1.4fr;gap:18px}.quota-live{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:15px}.quota-live .eyebrow,.quota-live p{margin:0}.quota-inputs{border-right:0}.daily-totals-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-total{padding:12px}}
@media(max-width:650px){.quota-editor{grid-template-columns:1fr;padding:20px 18px;gap:18px}.quota-inputs{padding:16px 0 0;border:0;border-top:1px solid var(--line)}.quota-inputs label{max-width:95px}.quota-inputs>.row{flex-wrap:nowrap}.quota-inputs>.row>span{font-size:11px}.quota-live{grid-column:1;display:grid;gap:8px}.daily-totals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-total{display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:3px 7px;align-items:center;padding:13px 10px}.daily-total>b{font-size:14px;margin:0;text-align:right;grid-column:2;grid-row:1/3}.daily-total small{grid-column:1}.daily-total>span{font-size:11px}.quota-live .tag{font-size:13px;justify-self:start}}
.hour-track{display:flow-root}
.absence-instruction{display:flex;gap:13px;align-items:center;margin-bottom:22px}.step-circle{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;color:var(--action);background:#eaf2fc;font-size:13px;font-weight:700}.absence-instruction h3{font-size:16px;font-weight:650}.absence-instruction p{font-size:12px;color:var(--muted);margin-top:4px}.selection-strip{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#edf4fd;border:1px solid #cfdef0;border-radius:9px;padding:13px 17px;margin:22px 0 27px;font-size:12px;color:#234d75}.absence-request-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);gap:30px}.absence-context{background:#f8fafd;border-radius:10px;padding:23px;align-self:start}.absence-context .item{gap:10px}.absence-context .item b{font-size:12px}.absence-context .item p{font-size:11px}.absence-health{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.global-day.range-selected{background:#e2edfc;box-shadow:inset 0 3px #1764b5}.global-day.range-selected .global-day-number{color:#12497c;font-weight:750}.global-day-number[data-action^="absence-date:"]{cursor:pointer;border-radius:6px}.global-day-number[data-action^="absence-date:"]:hover{background:#d3e4fa}.global-day.range-selected .global-absence-chip{box-shadow:0 0 0 1px #ffffff95}
@media(max-width:1050px){.absence-request-layout{grid-template-columns:1fr}.absence-context{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.absence-context>h3,.absence-context>#absence-overlap{grid-column:1}.absence-health{grid-column:2;grid-row:1/3;margin:0;padding:0 0 0 25px;border-top:0;border-left:1px solid var(--line)}}
@media(max-width:650px){.absence-instruction{align-items:flex-start;gap:10px}.absence-instruction h3{font-size:14px}.absence-instruction p{font-size:11px}.selection-strip{align-items:flex-start;flex-direction:column;gap:6px;padding:13px}.absence-context{display:block;padding:20px}.absence-health{border-left:0;padding:20px 0 0;border-top:1px solid var(--line);margin-top:20px}.absence-request-layout{gap:22px}}
/* A — demandes depuis la vue collective, édition du 7 octobre. */
.absence-topline{display:flex;justify-content:space-between;align-items:center;gap:28px;margin:4px 0 28px}.absence-topline h3{font-size:23px;letter-spacing:-.6px;margin:8px 0}.absence-topline p{color:var(--muted);font-size:12px;line-height:1.6}.health-shortcut{display:flex;align-items:center;gap:13px;padding:17px 20px;border:1px solid #cbdfee;background:#f0f7fc;border-radius:12px;min-width:290px;text-align:left;color:#205477;box-shadow:0 4px 12px #173e6206}.health-shortcut:hover{background:#e1effa;border-color:#91b8d9}.health-shortcut strong{display:block;font-size:15px}.health-shortcut small{display:block;font-size:11px;margin-top:5px;color:#527188}.health-icon{display:grid;place-items:center;background:white;border-radius:11px;width:40px;height:40px;flex-shrink:0}.health-shortcut>svg{width:18px;margin-left:auto}.week-health-shortcut{display:flex;justify-content:flex-end;margin-bottom:20px}.absence-viewbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.detail-scroll{border:1px solid #e0e9f1;border-radius:11px;max-width:100%;overflow:auto}.absence-team-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1320px;table-layout:fixed;margin:0}.absence-team-table th,.absence-team-table td{padding:0;text-align:center;border:0;border-bottom:1px solid #e8edf3;height:58px;min-width:34px}.absence-team-table thead th{background:#f5f8fc;color:#536a80;font-size:10px;text-transform:none;letter-spacing:0}.absence-team-table thead th span{display:block;font-size:10px;font-weight:500}.absence-team-table thead th b{display:block;font-size:14px;color:#213f5b;margin-top:6px}.absence-team-table .sticky-person{position:sticky;left:0;z-index:2;width:192px;text-align:left;padding:12px 17px;background:#fff;box-shadow:4px 0 8px #243b5206}.absence-team-table .sticky-person strong{font-size:12px}.absence-team-table .sticky-person small{display:block;font-size:10px;font-weight:400;color:#63798d;margin-top:5px}.absence-team-table .presence-row td{background:#f9fbfd;font-size:11px;color:#61788d;height:44px}.absence-team-table .presence-row th{font-size:11px;background:#f9fbfd}.absence-team-table .own-row th{background:#eaf3ff;color:#18598f}.absence-team-table td.off-work{background:repeating-linear-gradient(135deg,#f1f4f7,#f1f4f7 3px,#f7f9fb 3px,#f7f9fb 7px)}.absence-team-table td.holiday,.absence-team-table th.holiday{background:#faf1dc}.absence-team-table .team-date{width:100%;height:56px;border-radius:0;border:0;font-size:11px;color:#94a6b6;display:block;padding:0}.team-date[data-action^="absence-date:"]{touch-action:none;user-select:none;cursor:crosshair}.team-date[data-action^="absence-date:"]:hover{background:#dfeeff;outline:1px solid #82b0dc;outline-offset:-1px}.absence-team-table .has-absence{color:#497d77;background:#e0f0ec;border-radius:6px;height:30px;min-height:30px}.absence-team-table .pending{background:#edf3fc;color:#6e86a7}.absence-team-table .team-date.range-selected{background:#2169b2!important;color:white!important;box-shadow:inset 0 2px #174e8e,inset 0 -2px #174e8e;border-radius:0;height:56px}.global-day-number[data-action^="absence-date:"]{touch-action:none;user-select:none}.request-studio{background:white;border:1px solid #dce7ef;border-radius:14px;padding:32px}.request-title h2{font-size:24px;letter-spacing:-.65px;margin:8px 0}.request-title>p{color:var(--muted);font-size:12px}.request-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;margin-top:30px}.absence-form-premium .form-grid{gap:20px 18px}.absence-form-premium label{font-size:12px;line-height:1.5}.absence-form-premium input,.absence-form-premium select{margin-top:7px;background:#fbfcfe;min-height:46px;border-color:#d8e3ed;border-radius:8px}.absence-form-premium textarea{min-height:78px;background:#fbfcfe;border-radius:8px;margin-top:7px}.request-summary{background:#f6f9fd;padding:25px;border-radius:12px;align-self:start;min-width:0}.balance-account{padding:23px 0;border-bottom:1px solid #dfe8f1}.balance-account h3{font-size:15px}.balance-account>.row{gap:8px;flex-wrap:wrap}.balance-flow{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:20px 0 13px}.balance-flow small{display:block;font-size:9px;color:#647c91;margin-bottom:7px}.balance-flow b{font-size:17px;letter-spacing:-.5px;white-space:nowrap}.balance-flow>span{font-size:14px;color:#8197aa}.balance-result{color:#175ea0}.balance-result.negative{color:#a24749}.balance-account.affected .balance-result b{background:#dfedfd;padding:5px 7px;border-radius:5px}.request-summary>#absence-balances>p{margin-top:15px;line-height:1.6;font-size:10px}.balance-warning{padding:10px;background:#fff3df;border-radius:7px;color:#805d2c}.overlap-summary{margin-top:28px}.overlap-summary h3{font-size:13px}.overlap-summary .item{gap:10px}.overlap-summary .item b{font-size:11px}.overlap-summary .item p{font-size:10px}.request-estimate{margin-top:24px;border-top:1px solid #dfe8f1;padding-top:22px}.estimate-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.estimate-head b{display:block;font-size:26px;color:#195b94;margin-top:8px;letter-spacing:-.7px}.estimate-head>span{font-size:11px;color:#61788d;max-width:120px}.cost-detail{margin-top:18px;font-size:11px}.cost-detail summary{color:#25629c;cursor:pointer;padding:10px 0}.cost-days{max-height:260px;overflow:auto;margin-top:8px}.cost-days>div{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f5}.cost-days small{font-size:10px;color:#6e8294}.absence-form-premium .form-footer{gap:18px;align-items:flex-start}.absence-form-premium .form-footer small{line-height:1.6}.absence-form-premium .form-footer button{width:100%;justify-content:center;min-height:46px}.request-studio .eyebrow,.absence-topline .eyebrow{font-size:10px;letter-spacing:1.1px;color:#65809b}
@media(min-width:1800px){.absence-team-table{min-width:1400px}}
@media(max-width:1200px){.absence-topline{align-items:flex-start;flex-direction:column;gap:20px}.absence-topline .health-shortcut{align-self:stretch}.request-columns{grid-template-columns:1fr;gap:28px}.request-summary{padding:24px}.balance-flow{justify-content:flex-start;gap:24px}.balance-flow>div{flex:1}}
@media(max-width:650px){.absence-topline h3{font-size:21px}.health-shortcut{min-width:0;width:100%;padding:15px}.absence-viewbar>.segment{display:flex;flex-wrap:wrap;width:100%}.absence-viewbar .segment button{font-size:11px;padding:9px}.request-studio{padding:23px 17px}.request-title h2{font-size:21px}.absence-form-premium .form-grid{gap:16px 12px}.request-summary{padding:20px 15px}.balance-flow{gap:7px}.balance-flow b{font-size:15px}.balance-flow small{font-size:9px}.balance-account.affected .balance-result b{padding:4px}.absence-team-table .sticky-person{width:152px;padding:10px}.absence-team-table{min-width:1280px}.week-health-shortcut{display:block}.cost-days>div{gap:5px;font-size:10px}}
@media(min-width:1250px) and (max-width:1799px){.absence-team-table{min-width:1000px}.absence-team-table .sticky-person{width:175px;padding:12px}.absence-team-table thead th span{font-size:9px}}
.theoretical-days{display:block;font-size:10px;color:#61788d;margin-top:7px}.balance-result>small:last-child{font-size:9px;margin:9px 0 0}
/* A — grille lisible, synthèse mensuelle et formulaire harmonisé. */
.absence-team-table th,.absence-team-table td{border-right:1px solid #ccd9e6;border-bottom:1px solid #d3dfe9}.absence-team-table tr>*:last-child{border-right:0}.absence-team-table thead th{background:#edf3f9}.absence-team-table thead th span{color:#405f7b;font-weight:650}.absence-team-table thead th b{font-size:15px}.absence-team-table .team-date.range-selected{box-shadow:inset -1px 0 #78a4d1,inset 0 2px #174e8e,inset 0 -2px #174e8e}.absence-team-table .month-total-head{width:70px;background:#e5eef8;color:#204f7d;font-size:12px}.month-total-head small{display:block;font-size:9px;margin-top:5px}.absence-team-table .month-total{background:#f0f5fb;color:#27577f}.absence-team-table td>small{display:block;font-size:9px;color:#6f7790;margin-top:5px}.absence-team-table tfoot td,.absence-team-table tfoot th{background:#e9f2fd;color:#1c568a;border-top:2px solid #87acd1;font-size:12px;height:62px}.absence-team-table tfoot .sticky-person{background:#e9f2fd}.absence-team-table tfoot .grand-total{background:#235a87;color:white}.absence-team-table tfoot .grand-total small{color:#d2e2f5}.totals-note{line-height:1.6;padding:13px 4px 3px;font-size:10px;max-width:900px}.absence-topline{display:grid;grid-template-columns:minmax(240px,1fr) 245px 255px;align-items:center;gap:22px}.absence-topline h3{font-size:21px;max-width:310px}.absence-topline .health-shortcut{min-width:0;padding:16px 13px;gap:10px}.absence-topline .health-shortcut strong{font-size:14px}.absence-topline .health-shortcut small{font-size:10px}.absence-topline .health-icon{width:32px;height:36px}.mini-balances{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-caption{grid-column:1/-1;font-size:9px;font-weight:650;color:#58738c;letter-spacing:.7px}.mini-balance{border:1px solid #c9dbef;border-radius:9px;background:#f4f8ff;padding:11px 12px}.mini-balance>span{display:block;color:#42617d;font-size:11px;font-weight:600}.mini-balance>b{display:block;font-size:19px;letter-spacing:-.4px;color:#185b97;margin:5px 0}.mini-balance>small{font-size:9px;color:#647d94;display:block}.mini-balance.negative>b{color:#a24749}.request-studio{padding:0;overflow:hidden}.request-studio>.panel-body{padding:28px}.request-studio .request-columns{margin:0;gap:32px}.request-title{margin-bottom:23px}.request-title h3{font-size:16px;letter-spacing:-.2px;margin:0 0 6px}.request-title p{font-size:11px}.request-header-note{font-size:11px;color:#d7e6f3;font-weight:400}.absence-form-premium .form-grid{gap:16px 18px}.absence-form-premium input,.absence-form-premium select{background:#fff;min-height:44px}.absence-form-premium textarea{background:#fff;min-height:68px}.request-studio .request-summary{background:#f6f9fd;border:1px solid #e0e9f2;border-radius:10px;padding:24px}.request-estimate{background:#f3f8fe;border:0;border-radius:9px;padding:18px;margin-top:22px}.estimate-head b{font-size:24px}.request-studio .form-footer{border:0;padding-top:20px;margin-top:0}.request-studio .balance-account:first-of-type{padding-top:20px}.request-studio .balance-account:last-of-type{border:0;padding-bottom:8px}
@media(min-width:1250px) and (max-width:1799px){.absence-team-table{min-width:1050px}.absence-team-table .sticky-person{width:166px}.absence-topline{grid-template-columns:minmax(220px,1fr) 228px 240px;gap:15px}.mini-balance{padding:10px}.mini-balance>b{font-size:18px}}
@media(max-width:1249px){.absence-topline{grid-template-columns:1fr 1fr;gap:20px}.absence-topline>div:first-child{grid-column:1/-1}.absence-topline h3{max-width:none}.absence-topline .health-shortcut{align-self:center}.request-studio .request-columns{grid-template-columns:1fr}.request-studio .request-summary{padding:24px}}
@media(max-width:650px){.absence-topline{grid-template-columns:1fr}.absence-topline>div:first-child{grid-column:auto}.mini-balances{gap:10px}.mini-balance{padding:13px}.mini-balance>b{font-size:20px}.absence-topline .health-shortcut{padding:15px}.request-studio>.panel-body{padding:20px 16px}.request-header-note{display:none}.request-studio .request-summary{padding:20px 15px}.request-studio .panel-head h2{font-size:15px}.absence-team-table .month-total-head{width:65px}}
/* Composer A : choix directs, période unique et options progressives. */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.absence-topline .mini-balances{position:relative;grid-template-rows:92px;align-self:center;gap:8px;margin-top:16px}.absence-topline .mini-caption{position:absolute;left:0;top:-18px;line-height:12px}.absence-topline .mini-balance{height:92px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center}.absence-topline>.health-shortcut{height:92px;box-sizing:border-box;margin-top:16px;align-self:center}
.request-composer .request-step{border:0;padding:0;margin:0 0 30px;min-width:0}.request-composer legend{font-size:15px;font-weight:650;margin:0 0 16px;padding:0;color:#23415c}.request-composer legend>span{display:inline-block;color:#829ab0;font-size:10px;letter-spacing:1px;vertical-align:middle;margin-right:12px}.reason-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}.reason-choice{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d6e2ed;border-radius:9px;min-height:58px;background:white;font-size:12px;color:#48647e;padding:10px}.reason-choice svg{width:19px;height:19px}.reason-choice[aria-pressed="true"]{background:#eaf3ff;color:#155a9b;border-color:#82afd8;box-shadow:inset 0 0 0 1px #82afd8}.reason-choice:hover{background:#f0f6ff}.other-reason{position:relative;display:flex!important;min-width:0}.request-composer .other-reason select{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;margin:0;min-height:58px;height:58px;border-radius:9px;padding:0 27px 0 11px;color:#48647e;font-size:12px;background:white}.other-reason>svg{position:absolute;width:14px;height:14px;right:9px;top:22px;transform:rotate(90deg);pointer-events:none}.other-reason.selected select{background:#eaf3ff;color:#155a9b;border:2px solid #82afd8}.period-editor{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:12px;padding:17px 18px;background:#f4f8fd;border-radius:10px;border:1px solid #e0eaf3}.request-composer .period-editor label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#668199;gap:0}.request-composer .period-editor input{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;min-width:0;min-height:38px;height:38px;line-height:normal;font-size:15px;font-weight:600;color:#224c74;letter-spacing:0;margin:6px 0 0;background:transparent;border:0;border-radius:4px;padding:3px 0}.period-editor>svg{width:18px;color:#7d9ab4;margin-top:20px}.duration-options{display:flex;gap:4px;margin:15px 0 0;border-radius:8px;padding:4px;background:#f1f5f9}.duration-choice{flex:1;padding:10px 4px;border-radius:6px;font-size:11px;color:#677f94;line-height:1.4}.duration-choice[aria-pressed="true"]{background:white;color:#195d99;box-shadow:0 1px 4px #1c47741a;font-weight:650}.request-adjustments{margin-top:12px}.request-adjustments>summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:11px;color:#5c7a95;padding:9px 0;list-style:none}.request-adjustments>summary::-webkit-details-marker,.request-message summary::-webkit-details-marker{display:none}.request-adjustments>summary svg{width:13px;height:13px;transform:rotate(90deg)}.request-adjustments[open]>summary svg{transform:rotate(-90deg)}.request-composer .request-adjustments select{appearance:none;-webkit-appearance:none;width:100%;box-sizing:border-box;min-height:42px;height:42px;background:#f9fbfe;border:1px solid #d6e2ed;font-size:12px;padding:0 12px}.request-adjustments .form-grid{margin-top:8px}.precise-hours{display:grid;grid-template-columns:1fr 1fr;gap:15px}.precise-hours>div:not([hidden]){padding-top:15px}.request-message{margin-top:-4px;margin-bottom:24px}.request-message summary{display:flex;align-items:center;gap:9px;cursor:pointer;color:#35678e;font-size:12px;list-style:none}.request-message summary svg{width:15px;height:15px}.request-message summary small{color:#8a9cad;font-size:10px;margin-left:auto}.request-composer .request-message textarea{margin-top:14px;min-height:80px;font-size:12px}.request-composer #justif-label{margin:18px 0;font-size:12px}.request-composer .request-estimate{background:#fff;border:1px solid #dce7f1;border-left:3px solid #77a7d4;border-radius:0 9px 9px 0;padding:18px 20px;margin-top:0}.request-composer .estimate-head{margin-bottom:10px}.request-composer .estimate-head b{font-size:28px}.request-composer .estimate-head .eyebrow{font-size:9px;letter-spacing:.8px}.request-composer .request-estimate>p{font-size:10px;line-height:1.6}.estimate-empty{display:flex;align-items:center;gap:13px;color:#6c8398}.estimate-empty>svg{width:23px;flex-shrink:0;color:#85a3be}.estimate-empty strong{display:block;font-size:12px;font-weight:550}.estimate-empty span{display:block;font-size:11px;margin-top:6px;line-height:1.5}.request-composer .form-footer{display:flex;flex-direction:column;align-items:stretch;gap:13px;padding-top:23px}.request-composer .form-footer button{height:48px;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px}.request-composer .form-footer button svg{width:16px;height:16px}.request-composer .form-footer>small{display:flex;align-items:center;justify-content:center;gap:7px;text-align:center;font-size:10px;color:#7890a6}.request-composer .form-footer small svg{width:13px;height:13px}.request-studio .request-columns{gap:36px}.request-composer .request-step[hidden]{display:none}
@media(max-width:650px){.absence-topline .mini-balances{margin-top:18px}.absence-topline>.health-shortcut{margin-top:0;height:92px}.reason-options{grid-template-columns:1fr 1fr;gap:9px}.reason-options .other-reason{grid-column:1/-1}.request-composer .other-reason select{height:44px;min-height:44px}.other-reason>svg{top:15px}.period-editor{gap:6px;padding:14px 10px;grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr)}.request-composer .period-editor input{font-size:13px}.duration-choice{font-size:10px}.request-composer legend{font-size:14px}.request-composer .request-estimate{padding:16px 13px}.request-composer .request-step{margin-bottom:25px}}

/* final-myjob.css */
/* ==== final-myjob.css — ajouts de la maquette finale (Claude). Jetons du dessin de Codex : #1764b5, DM Sans. ==== */
.fx-box .fx-box-c{display:flex;flex-wrap:wrap;gap:8px}
.fx-mini{display:inline-flex;align-items:center;min-height:32px;padding:5px 11px;border:1.5px solid currentColor;border-radius:8px;background:#fff;color:inherit;font:600 12px/1.3 DM,"DM Sans",Arial,sans-serif;cursor:pointer;text-align:left;max-width:100%;white-space:normal}
.fx-mini.on{background:currentColor}
.fx-red .fx-mini.on{background:#c0392b;color:#fff;border-color:#c0392b}
.fx-mini:focus-visible{outline:3px solid #7eafd9;outline-offset:2px}
.fx-mini-red{color:#c0392b}.fx-mini-green{color:#1e8a4c}
.fx-index{margin:10px 0 4px;padding-left:0;list-style:none;display:grid;gap:6px;font-size:12px;line-height:1.45;color:#18344e}
.fx-index li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;overflow-wrap:anywhere}
.fx-index small{color:#5a7088}
.fx-fix{align-items:center;gap:10px;flex-wrap:wrap}
.fx-unit{margin-right:8px}
.absence-viewbar .row.gap{flex-wrap:wrap}
.fx-pose{margin-right:8px}
dialog .fx-box{margin:14px 0 0}

/* final-0810.css */
/* ==== final-0810.css — ajouts du 08.10 (Claude). Jetons du dessin de Codex : #1764b5, DM Sans. ==== */
.fx-cartes{grid-template-columns:repeat(4,minmax(0,1fr))}
.fx-suivi-bar{flex-wrap:wrap;gap:10px;margin:0 0 16px}
.fx-suivi-lien{align-items:center;flex-wrap:wrap}
.fx-suivi-lien>div{flex:1 1 260px;min-width:0}
.fx-suivi-lien p{margin:4px 0 0}
.fx-jfiltres{grid-template-columns:repeat(3,minmax(0,1fr))}
.fx-jdate{flex-wrap:wrap;align-items:flex-end;margin-top:14px}
.fx-info3,.fx-malacc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fx-info3>div,.fx-malacc>div{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0}
.fx-info3 b,.fx-malacc b{font-size:20px;font-weight:650;font-variant-numeric:tabular-nums}
.fx-info3 span,.fx-malacc label,.fx-malacc small{font-size:12px;color:var(--muted)}
.fx-malacc .tiny{font-size:11px;color:#18344e}
.fx-taux{margin-bottom:12px}
.fx-mail{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.fx-mail-meta{margin:0;padding:10px 14px;background:#f3f6fa;font-size:12px;line-height:1.6;border-bottom:1px solid var(--line)}
.fx-mail-corps{padding:14px;font-size:14px;line-height:1.55}
.fx-mail-corps p{margin:0 0 10px}
.fx-mail-btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.fx-faux-btn{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border-radius:8px;border:1.5px solid #1764b5;color:#1764b5;background:#fff;font-weight:600;font-size:13px}
.fx-faux-1{background:#1764b5;color:#fff}
.fx-mail-pied{font-size:12px;color:var(--muted)}
.fx-sms{max-width:320px;padding:12px 14px;border-radius:14px 14px 14px 4px;background:#eef2f6;font-size:14px;line-height:1.45}
.fx-ackpage{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}
.fx-ackpage p{margin:0 0 6px}
@media (max-width:760px){.fx-cartes{grid-template-columns:1fr 1fr}.fx-jfiltres,.fx-info3,.fx-malacc{grid-template-columns:1fr}}
.fx-exemple{align-items:flex-start}.fx-exemple>div{min-width:0}.fx-exemple p{margin:4px 0 0}
.fx-occ-apercu{margin:0 0 18px;padding:12px 14px;border:1.5px dashed #7eafd9;border-radius:10px;background:#f6f9fc}
.fx-occ-apercu .eyebrow{margin:0 0 6px}
.fx-occ{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}

/* asp.css */
.asp-mark{background:#fff;color:#18344e;font-size:12px;letter-spacing:.02em}
.asp-badge{margin-left:auto}
.asp-mast-title{display:flex;flex-direction:column;line-height:1.2}
.asp-mast-title b{font-size:15px}
.asp-mast-title span{font-size:12px;color:var(--muted)}
.asp-notice{display:block}
.asp-notice-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12.5px;color:#7a2b1f}
.asp-notice-row + .asp-notice-row{margin-top:8px}
.asp-pill{border:1px solid #e5b8ae;background:#fff;border-radius:999px;padding:4px 11px;font-size:12px;color:#7a2b1f}
.asp-pill[aria-pressed=true]{background:#972e22;color:#fff;border-color:#972e22}
.asp-boxes .fx-mini{font-size:11px;padding:2px 7px}
.asp-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.asp-step{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:600;color:var(--muted);padding:8px 12px;border-radius:9px;background:#f3f7fb}
.asp-step i{width:22px;height:22px;border-radius:50%;background:#dbe6f1;color:#3b546c;display:grid;place-items:center;font-style:normal;font-size:11.5px}
.asp-step.on{background:var(--soft);color:var(--action)}.asp-step.on i{background:var(--action);color:#fff}.asp-step.done i{background:var(--ok);color:#fff}
.asp-drop{border:2px dashed #b9cde2;border-radius:14px;padding:30px;text-align:center;background:#fbfdff}
.asp-center{justify-content:center}.asp-spacer{flex:1}
.asp-checks{display:grid;gap:8px;margin:14px 0}
.asp-mail{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fbfdff;margin-top:8px}
.asp-mail p{margin:8px 0}
.asp-method{display:flex;gap:14px;align-items:center;width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px 14px;margin-bottom:10px;text-align:left}
.asp-method > div{flex:1;min-width:0}
.asp-method b{display:block;font-size:14px}.asp-method small{color:var(--muted);font-size:12px}
.asp-mi{width:42px;height:42px;border-radius:11px;background:var(--soft);display:grid;place-items:center;flex:none;color:var(--action)}
.asp-mi svg{width:22px;height:22px}
.asp-pick[aria-pressed=true]{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action);background:#f7fbff}
.asp-login{min-height:100vh;display:grid;place-items:center;padding:30px 16px;background:linear-gradient(160deg,#0f2230 0,#173e62 55%,#235a87 100%)}
.asp-card{background:#fff;border-radius:20px;width:min(460px,100%);padding:30px;box-shadow:0 30px 80px #0006}
.asp-card h1{font-size:24px;margin:0 0 6px}
.asp-card label{display:grid;gap:6px;margin:12px 0;font-weight:600}
.asp-brand{margin-bottom:20px;color:var(--ink)}.asp-brand small{color:var(--muted)}
.asp-brand .asp-mark{background:var(--soft)}
.asp-wide{width:100%;justify-content:center;margin-top:8px}
.asp-login-links{flex-wrap:wrap}
.asp-otp{display:flex;gap:8px;justify-content:center;margin:18px 0}
.asp-otp span{width:44px;height:52px;border:1px solid #cfdbe7;border-radius:11px;display:grid;place-items:center;font-size:22px;font-weight:700}
.asp-qr{width:150px;height:150px;margin:6px auto 12px;display:block}
.asp-codes{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-family:ui-monospace,Menlo,monospace;font-size:13px;background:#f7fafd;border:1px solid var(--line);border-radius:11px;padding:12px 16px;margin:10px 0}
.asp-face{display:grid;place-items:center;width:84px;height:84px;border-radius:22px;background:var(--soft);margin:18px auto;color:var(--action)}
.asp-face svg{width:46px;height:46px}
@media(max-width:520px){.asp-otp span{width:38px;height:46px}.asp-codes{grid-template-columns:1fr}.asp-card{padding:22px}}
/* types : une couleur par type */
.asp-t-vac{--t:#1764b5}.asp-t-abs{--t:#d97706}.asp-t-form{--t:#0f9f8f}.asp-t-hs{--t:#2f9e44}.asp-t-mal{--t:#8e44ad}.asp-t-acc{--t:#be185d}.asp-t-css{--t:#64748b}.asp-t-rec{--t:#8b785a}.asp-t-plan{--t:#235a87}.asp-t-masque{--t:#9aa8b6}
i.asp-t{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--t);flex:none;vertical-align:middle;margin-right:6px}
.absence-team-table .team-date.has-absence.asp-t{background:var(--t);color:#fff;border-color:var(--t);font-weight:700;font-size:10.5px}
.absence-team-table .team-date.has-absence.asp-t.pending{background:repeating-linear-gradient(135deg,var(--t) 0 4px,#fff 4px 7px);color:var(--ink);border:1px dashed var(--t)}
.global-absence-chip.asp-t{border-left:4px solid var(--t)}
.global-absence-chip.asp-t .chip-dot{background:var(--t)}
.asp-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;margin:14px 0 4px;color:var(--ink)}
.asp-legend span{display:inline-flex;align-items:center}
.asp-legend small{color:var(--muted);margin-left:4px}
/* suivi des demandes */
.asp-reqs{display:grid;gap:8px}
.asp-req{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:6px 14px;align-items:center;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.asp-req.asp-st-ok{border-left-color:#14543e}.asp-req.asp-st-wait{border-left-color:#d4a24c}.asp-req.asp-st-no{border-left-color:#c0392b;background:#fffafa}
.asp-req-main b{display:block;font-size:14px}.asp-req-main small{display:block;color:var(--muted);font-size:12px}
.asp-motif{color:#972e22!important}
.asp-req-h{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.asp-req-h.neg{color:#972e22}.asp-req-h.pos{color:#14543e}
.asp-req-act{grid-column:2 / -1;display:flex;gap:14px;flex-wrap:wrap}
.asp-neg{color:#972e22;font-weight:700}.asp-pos{color:#14543e;font-weight:700}
/* calcul jour par jour */
.asp-calc{display:grid;gap:4px;margin:12px 0;max-height:52vh;overflow:auto}
.asp-calc div{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:10px;padding:8px 10px;border-radius:8px;background:#f7fafd;font-size:13px;align-items:center}
.asp-calc div.asp-zero{background:#fff;border:1px dashed var(--line);color:var(--muted)}
.asp-calc small{color:var(--muted)}
.asp-calc b{font-variant-numeric:tabular-nums}
.asp-calc-tot{font-size:14px}
@media(max-width:600px){.asp-req{grid-template-columns:auto minmax(0,1fr)}.asp-req-h,.asp-req .tag{grid-column:2}.asp-calc div{grid-template-columns:1fr auto}.asp-calc small{grid-column:1 / -1}}

.asp-notice-clean{padding-top:8px;padding-bottom:8px}.asp-notice-clean .asp-notice-row{color:#5f7389}

/* logo du centre */
.asp-logo-wrap{display:inline-flex;flex:none}
.asp-logo-ic{width:44px;height:44px;border-radius:11px;display:block}
.asp-login-logo{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}
.asp-login-logo img{width:150px;border-radius:14px}
.asp-login-logo b{font-size:18px;color:var(--ink)}
/* types ajoutés, fériés */
.asp-t-ens{--t:#4f46e5}.asp-t-mat{--t:#ec4899}.asp-t-pat{--t:#0ea5e9}.asp-t-ferie{--t:#eab308}
.absence-team-table th.holiday{background:#fef3c7;color:#713f12}
.absence-team-table td.holiday{background:repeating-linear-gradient(135deg,#fef3c7 0 6px,#fde68a 6px 9px)}
.absence-team-table td.holiday .team-date{color:#713f12;font-weight:700}
/* tableau annuel */
.asp-yearbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.asp-years button.on{background:var(--action);color:#fff}
.asp-inline{display:inline-flex;gap:8px;align-items:center;font-size:13px;font-weight:600}
.asp-inline select{width:auto}
.asp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.asp-kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px}
.asp-kpi small{display:block;color:var(--muted);font-size:12px;font-weight:600}
.asp-kpi b{display:block;font-size:22px;color:var(--action);margin:4px 0 2px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.asp-kpi span{font-size:11.5px;color:var(--muted)}
.asp-kpi.neg b{color:#972e22}.asp-kpi.pos b{color:#14543e}
.asp-vacbar{display:flex;height:18px;border-radius:9px;overflow:hidden;background:#e8eff7}
.asp-vacbar i{display:block;height:100%}
.b-taken{background:#1764b5}.b-plan{background:#6aa3e0}.b-pend{background:repeating-linear-gradient(135deg,#d4a24c 0 5px,#f5deb0 5px 9px)}.b-left{background:#e8eff7;border:1px solid #cfdbe7}
.asp-sw{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.asp-yeartable td,.asp-yeartable th{white-space:nowrap}
.asp-yeartable td:nth-child(3){white-space:normal;min-width:220px}
.asp-yr-start td{background:#eef4fb;font-weight:600}
.asp-yr-ferie td{background:#fef9e7;color:#713f12}
.asp-yr-off td{color:#94a3b8}
.asp-yeartable tfoot th{background:#f4f7fb}
/* primes */
.asp-progress{position:relative;height:26px;border-radius:13px;background:#e8eff7;overflow:hidden;margin-bottom:16px}
.asp-progress i{display:block;height:100%;background:linear-gradient(90deg,#1764b5,#2f9e44)}
.asp-progress span{position:absolute;inset:0;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:#0f2230}
.asp-primetable td,.asp-primetable th{white-space:nowrap}
/* synthèse */
.asp-mini{width:110px;height:8px;border-radius:5px;background:#e8eff7;overflow:hidden;margin-bottom:3px}
.asp-mini i{display:block;height:100%;background:#1764b5}
.asp-bars{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;height:180px;margin-bottom:10px}
.asp-bars div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.asp-bars i{display:block;width:70%;background:#1764b5;border-radius:6px 6px 2px 2px;min-height:4px}
.asp-bars b{font-size:12px}.asp-bars small{font-size:11px;color:var(--muted)}
.asp-pt{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.asp-pt label{display:grid;gap:4px;font-size:12px;font-weight:600}
.asp-choice{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:grid;gap:6px}
@media(max-width:700px){.asp-pt{grid-template-columns:1fr 1fr}.asp-bars{gap:3px}.asp-kpi b{font-size:18px}}
.asp-vacbar i.w0,.asp-progress i.w0,.asp-mini i.w0{width:0%}.asp-vacbar i.w5,.asp-progress i.w5,.asp-mini i.w5{width:5%}.asp-vacbar i.w10,.asp-progress i.w10,.asp-mini i.w10{width:10%}.asp-vacbar i.w15,.asp-progress i.w15,.asp-mini i.w15{width:15%}.asp-vacbar i.w20,.asp-progress i.w20,.asp-mini i.w20{width:20%}.asp-vacbar i.w25,.asp-progress i.w25,.asp-mini i.w25{width:25%}.asp-vacbar i.w30,.asp-progress i.w30,.asp-mini i.w30{width:30%}.asp-vacbar i.w35,.asp-progress i.w35,.asp-mini i.w35{width:35%}.asp-vacbar i.w40,.asp-progress i.w40,.asp-mini i.w40{width:40%}.asp-vacbar i.w45,.asp-progress i.w45,.asp-mini i.w45{width:45%}.asp-vacbar i.w50,.asp-progress i.w50,.asp-mini i.w50{width:50%}.asp-vacbar i.w55,.asp-progress i.w55,.asp-mini i.w55{width:55%}.asp-vacbar i.w60,.asp-progress i.w60,.asp-mini i.w60{width:60%}.asp-vacbar i.w65,.asp-progress i.w65,.asp-mini i.w65{width:65%}.asp-vacbar i.w70,.asp-progress i.w70,.asp-mini i.w70{width:70%}.asp-vacbar i.w75,.asp-progress i.w75,.asp-mini i.w75{width:75%}.asp-vacbar i.w80,.asp-progress i.w80,.asp-mini i.w80{width:80%}.asp-vacbar i.w85,.asp-progress i.w85,.asp-mini i.w85{width:85%}.asp-vacbar i.w90,.asp-progress i.w90,.asp-mini i.w90{width:90%}.asp-vacbar i.w95,.asp-progress i.w95,.asp-mini i.w95{width:95%}.asp-vacbar i.w100,.asp-progress i.w100,.asp-mini i.w100{width:100%}
.asp-bars i.h0{height:0%}.asp-bars i.h5{height:5%}.asp-bars i.h10{height:10%}.asp-bars i.h15{height:15%}.asp-bars i.h20{height:20%}.asp-bars i.h25{height:25%}.asp-bars i.h30{height:30%}.asp-bars i.h35{height:35%}.asp-bars i.h40{height:40%}.asp-bars i.h45{height:45%}.asp-bars i.h50{height:50%}.asp-bars i.h55{height:55%}.asp-bars i.h60{height:60%}.asp-bars i.h65{height:65%}.asp-bars i.h70{height:70%}.asp-bars i.h75{height:75%}.asp-bars i.h80{height:80%}.asp-bars i.h85{height:85%}.asp-bars i.h90{height:90%}.asp-bars i.h95{height:95%}.asp-bars i.h100{height:100%}
/* Graphiques en anneau (10.10) */
.rg-track{stroke:#e6edf5}
.rg-vac{stroke:#1764b5}.rg-plan{stroke:#7fb0e6}.rg-pend{stroke:#d4a24c}.rg-left{stroke:#dfe8f2}.rg-form{stroke:#0f9f8f}.rg-formu{stroke:#9fd8cf}.rg-hs{stroke:#2f9e44}.rg-hsu{stroke:#f0a35e}.rg-neg{stroke:#c2410c}
.rg-abs{stroke:#d97706}.rg-mal{stroke:#8e44ad}.rg-acc{stroke:#be185d}.rg-css{stroke:#64748b}.rg-rec{stroke:#8b785a}.rg-ens{stroke:#4f46e5}.rg-mat{stroke:#ec4899}.rg-pat{stroke:#0ea5e9}
.sw-vac{background:#1764b5}.sw-plan{background:#7fb0e6}.sw-pend{background:#d4a24c}.sw-left{background:#dfe8f2;box-shadow:inset 0 0 0 1px #c9d6e4}.sw-form{background:#0f9f8f}.sw-formu{background:#9fd8cf}.sw-hs{background:#2f9e44}.sw-hsu{background:#f0a35e}.sw-neg{background:#c2410c}
.sw-abs{background:#d97706}.sw-mal{background:#8e44ad}.sw-acc{background:#be185d}.sw-css{background:#64748b}.sw-rec{background:#8b785a}.sw-ens{background:#4f46e5}.sw-mat{background:#ec4899}.sw-pat{background:#0ea5e9}
.asp-ring{position:relative;display:inline-block;flex:none}
.asp-ring-svg{display:block;width:100%;height:100%;transform:none}
.asp-ring.lg{width:136px;height:136px}
.asp-ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 20px;pointer-events:none}
.asp-ring-c b.long{font-size:15px}
.asp-ring-c b{font-size:19px;line-height:1.1;color:#0f2230;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.asp-ring-c small{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.2}
.asp-donuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.asp-donut{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff;min-width:0;display:flex;flex-direction:column}
.asp-donut h3{font-size:14px;margin:0 0 12px;color:#0f2230}
.asp-donut-body{display:flex;flex-direction:column;align-items:center;gap:16px}
.asp-dleg{list-style:none;margin:0;padding:0;display:grid;gap:7px;min-width:0;width:100%}
.asp-dleg li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12.5px}
.asp-dleg li span{color:#334155;min-width:0}
.asp-dleg li b{font-variant-numeric:tabular-nums;white-space:nowrap;color:#0f2230}
.asp-sw2{width:12px;height:12px;border-radius:4px;display:block}
.asp-donut-note{font-size:11.5px;color:var(--muted);margin:auto 0 0;padding-top:12px}
.sw-tot{background:#fff;box-shadow:inset 0 0 0 2px #2f9e44}
.asp-ring.sm{position:absolute;top:16px;right:16px;width:62px;text-align:center}
.asp-ring.sm .asp-ring-svg{width:62px;height:62px}
.asp-ring.sm small{display:block;font-size:10.5px;line-height:1.2;color:var(--muted);margin-top:4px}
.metric.asp-has-ring{position:relative}
.metric.asp-has-ring>label,.metric.asp-has-ring>b,.metric.asp-has-ring>small{padding-right:78px}
.metric.asp-has-ring>.tiny{margin-top:14px}
.asp-ring.xs{width:26px;height:26px}
.asp-cellring{display:inline-flex;align-items:center;gap:8px}
.asp-cellring small{line-height:1.25}

.rg-p1{stroke:#1764b5}.rg-p2{stroke:#0f9f8f}.rg-p3{stroke:#d97706}.rg-p4{stroke:#8e44ad}
.sw-p1{background:#1764b5}.sw-p2{background:#0f9f8f}.sw-p3{background:#d97706}.sw-p4{background:#8e44ad}
.asp-alltable td small{display:block;color:var(--muted)}
.asp-settabs{margin:0 0 18px}
.asp-qui td{vertical-align:middle}.asp-qui-c{text-align:center;width:112px}
.asp-qui-g th{background:#eef3f8;color:#0f2230;font-size:12px;text-transform:uppercase;letter-spacing:.06em;text-align:left}
.asp-qui-x{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;cursor:pointer}
.asp-qui-x input{width:20px;height:20px;accent-color:#1764b5;cursor:pointer}
.asp-qui-on{color:#14543e;font-weight:800}.asp-qui-fix{font-size:12px;color:var(--muted)}
.asp-logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}
.asp-logo-slot{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.asp-logo-slot small{color:var(--muted);font-size:12px}
.asp-logo-prev{border:1px dashed #b9c8d8;border-radius:12px;background:#f7fafc;display:grid;place-items:center;padding:14px}
.asp-logo-prev.wide{width:100%;height:120px}.asp-logo-prev.wide img{max-width:100%;max-height:92px}
.asp-logo-prev.sq{width:120px;height:120px}.asp-logo-prev.sq img{max-width:88px;max-height:88px}
.asp-file{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:600;font-size:13px;cursor:pointer;position:relative;overflow:hidden}
.asp-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
@media(max-width:700px){.asp-qui-c{width:auto}.asp-qui td:first-child{min-width:200px}}
.asp-pr-sub td{font-size:12.5px;color:#334155;background:#f7fafc}
.asp-wait td small{color:var(--muted)}
.asp-primetable .tag+.tag{margin-left:4px}
@media(max-width:560px){.metric.asp-has-ring{display:flex;flex-direction:column}.metric.asp-has-ring>label,.metric.asp-has-ring>b,.metric.asp-has-ring>small{padding-right:0}.asp-ring.sm{position:static;order:9;display:flex;align-items:center;gap:8px;width:auto;margin-top:10px;text-align:left}.asp-ring.sm .asp-ring-svg{width:40px;height:40px;flex:none}.asp-ring.sm small{margin-top:0}.metric.asp-has-ring>.tiny{margin-top:6px}}
.asp-mails td small{display:block;color:var(--muted)}.asp-mail-add{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
/* Poser en glissant (10.10) */
[data-action^="absence-date:"]{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.global-day[data-action^="absence-date:"]{cursor:pointer}
.team-year .year-cell button{cursor:pointer}.team-year .year-person small{display:block;font-size:11px}
.asp-sel-go{margin-left:auto;white-space:nowrap}
.asp-mb{position:relative}.asp-mb>span:first-child{padding-right:30px}.asp-mb>b{white-space:nowrap}
.asp-ring.mb{position:absolute;right:9px;top:9px;width:28px;height:28px}
.asp-balring{display:flex;align-items:center;gap:12px;margin:8px 0 12px}
.asp-ring.md{width:54px;height:54px}
.asp-balring-t{font-size:12.5px;color:#334155;display:block}
.asp-balring-t b{font-size:14px;color:#0f2230}
.asp-balring-t span{margin-top:5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:11.5px}
.asp-balring-t .asp-sw2{width:10px;height:10px;border-radius:3px;display:inline-block}
.asp-balring-t .asp-sw2+*{margin-right:2px}

/* prod.css */
/* Ajouts de l'application (liens en forme de bouton, formulaires en ligne, messages). Le reste vient du dessin validé. */
a.btnlink{display:inline-flex;gap:8px;align-items:center;font-size:12px;font-weight:600;border-radius:6px;padding:6px 12px;text-decoration:none;cursor:pointer;line-height:1.3}
a.btnlink.text-btn{padding:6px 4px;color:var(--action,#1764b5)}
a.btnlink svg,button svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.inline-form{display:inline-flex;margin:0}
.inline-form>button{margin:0}
.flash{margin:0 0 16px}
.flash .banner{margin:0}
.toast[hidden]{display:none}
.row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.muted-row td{color:var(--muted)}
.form-errors{color:#972e22;font-weight:600;margin:6px 0}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.asp-login form{display:grid;gap:12px}
.asp-login .asp-method{width:100%;text-align:left}
.asp-login .asp-method input{position:absolute;opacity:0;pointer-events:none}
.asp-login .asp-method:has(input:checked){border-color:#1764b5;box-shadow:0 0 0 2px #cfe0f5}
.asp-login .asp-secret{font-family:ui-monospace,Menlo,monospace;letter-spacing:.08em;word-break:break-all;background:#f3f6fa;border-radius:8px;padding:8px 10px;font-size:12.5px}
.asp-qr{display:flex;justify-content:center;margin:6px 0}
.asp-qr svg{width:180px;height:180px}
.otp-input{font-size:22px;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums}
dialog.mjp-dialog{border:0;border-radius:16px;padding:0;max-width:min(640px,calc(100vw - 32px));width:100%}
dialog.mjp-dialog::backdrop{background:rgba(15,34,48,.45)}
dialog.mjp-dialog .dialog-body{padding:22px 24px}
.slot-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.slot-row input[type=time]{width:120px}
.week-day-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.week-day-card.off{background:#f7f9fb}
.week-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.week-day-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pager{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.err-page{max-width:560px;margin:60px auto;padding:0 16px}
@media print{.v2-menu,.masthead,.module-nav,footer,.no-print{display:none!important}.app-body{margin:0!important}}
.group-switch a{font-size:12px;padding:6px 12px;border-radius:6px;text-decoration:none;color:inherit;font-weight:600}
.group-switch a.on{background:var(--action);color:#fff}
a.v2-it{text-decoration:none}
.v2-logout{margin:0}
.masthead a.avatar,.masthead a.icon-btn{text-decoration:none}
.year-cell a.yc{display:flex;align-items:center;justify-content:center;width:100%;min-height:30px;border-radius:5px;background:#f4f7fb;padding:0;color:var(--ink);text-decoration:none}
.year-cell a.yc.absent{background:#c4d5e6}
.year-cell a.yc.pending{background:repeating-linear-gradient(135deg,#eaf0f8,#eaf0f8 4px,#c7d7e8 4px,#c7d7e8 5px)}
.reason-options .reason-choice{cursor:pointer}
.segment a.btnlink{padding:8px 12px;font-size:12px;font-weight:600;color:var(--muted);border-radius:6px;min-height:0;border:0;background:none}
.segment a.btnlink.on,.segment a.btnlink.active{background:#fff;box-shadow:0 2px 6px #1a457014;color:var(--action)}
.month-pills a.btnlink{border-radius:7px;padding:7px 10px;font-size:11px;color:var(--muted)}
.month-pills a.btnlink.active{background:var(--action);color:#fff}
.asp-years a.btnlink.on{background:var(--action);color:#fff;box-shadow:none}
.mini-week a.mini-day{flex:1;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:flex-end;height:100%;font-size:11px;color:var(--muted);text-decoration:none}
.mini-week a.mini-day i{height:auto}

