@font-face{font-family:Regatto;src:url("assets/brand/Regatto.ttf")}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#eef3f6;color:#102d45;font-family:Arial,sans-serif}header{display:flex;justify-content:space-between;align-items:center;padding:16px 26px;background:linear-gradient(120deg,#061b35 0%,#0b2c4d 100%);color:#fff;border-bottom:1px solid #0d2f52;box-shadow:inset 0 -3px 0 #83bd35}.brand strong{display:block;font:35px Regatto,serif;line-height:.8}.brand span{color:#9cd43c;font-size:9px;font-weight:800;letter-spacing:.14em}header button{transition:background-color .15s ease,border-color .15s ease,transform .15s ease}header button:hover{transform:translateY(-1px)}button,input,select,textarea{font:inherit;border-radius:9px}button{padding:11px 14px;border:0;background:#0a5da5;color:#fff;font-weight:800;cursor:pointer}header button{background:transparent;border:1px solid #57738c}main{max-width:1300px;margin:auto;padding:24px}.login{max-width:470px;margin:7vh auto;padding:28px;background:#fff;border-top:5px solid #83bd35;border-radius:0 0 14px 14px}.eyebrow{margin:0;color:#0a5da5;font-size:11px;font-weight:800;text-transform:uppercase}h1{margin:7px 0 12px}.login form,.assignment-form,.completion-form{display:grid;gap:10px}.login form{margin-top:24px}label{display:grid;gap:5px;font-size:12px;font-weight:800}input,select,textarea{width:100%;padding:11px;border:1px solid #c8d5df;background:#fff}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.heading p{margin:4px 0;color:#63768a}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.metric,.request{padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.metric strong,.metric span{display:block}.metric strong{font-size:30px}.metric span{margin-top:4px;color:#63768a;font-size:12px}.filters{display:flex;gap:7px;margin-bottom:15px;overflow:auto}.filters button{background:#dce6ed;color:#29445a;white-space:nowrap}.filters button.active{background:#061b35;color:#fff}.request-list{display:grid;gap:13px}.request-head{display:flex;justify-content:space-between;gap:12px}.request h2{margin:0;font-size:18px}.request p{color:#63768a}.status{padding:6px 9px;border-radius:999px;background:#e8eef3;font-size:10px;font-weight:800}.status.pending{background:#fff1d3;color:#805c0a}.status.assigned{background:#e4f1d3;color:#35640c}.vehicles,.assignment-summary{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.chip{padding:6px 8px;background:#eaf2f8;border-radius:999px;font-size:10px}.actions-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #d3dee6}.assignment-summary{padding:10px;background:#edf5e5;border-radius:10px}.completion-form button{background:#83bd35;color:#173805}output{display:block;padding:10px;background:#e8eef4;border-radius:9px;font-size:12px}@media(max-width:760px){main{padding:15px}.metrics{grid-template-columns:1fr}.heading,.request-head{align-items:flex-start}.actions-panel{grid-template-columns:1fr}}

.legacy-redirect{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,#061b35,#0a5da5 72%,#83bd35);color:#fff}.legacy-redirect>div{width:min(620px,100%);padding:28px;background:rgba(6,27,53,.82);border:1px solid rgba(255,255,255,.22);border-radius:22px;box-shadow:0 26px 80px rgba(0,0,0,.32)}.legacy-redirect h1{margin:8px 0 12px;font-size:30px;line-height:1.08}.legacy-redirect p:not(.eyebrow){margin:0 0 18px;color:#dbe8f4;line-height:1.55}.legacy-redirect a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;background:#83bd35;color:#173805;border-radius:999px;font-weight:900;text-decoration:none}.legacy-redirect .eyebrow{color:#9cd43c}@media(max-width:640px){.legacy-redirect h1{font-size:24px}.legacy-redirect>div{padding:22px}}

.employee-register,.employee-management{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.employee-register>p{margin:7px 0 15px;color:#63768a;font-size:12px}.badge-code-test{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:0 0 18px;padding:12px;background:#f5f8fa;border-radius:9px}.badge-code-test label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#63768a}.badge-code-test input{min-height:38px;padding:0 10px;border:1px solid #c8d5df;border-radius:8px;font-weight:800}.badge-code-test button{min-height:38px;padding:0 16px;border:0;border-radius:8px;background:#83bd35;color:#173805;font-weight:900;cursor:pointer}.badge-code-test output{font-size:12px;font-weight:800;color:#35640c}.badge-code-test output.error{color:#9c382d}.tablet-setup-block{margin:0 0 18px;padding:12px;background:#f5f8fa;border-radius:9px}.tablet-setup-block h3{margin:0 0 4px;font-size:13px}.tablet-setup-block p{margin:0 0 10px;color:#63768a;font-size:11px}.tablet-setup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.tablet-setup-block output{display:block;font-size:12px;font-weight:800;color:#35640c;word-break:break-all}.tablet-setup-block output.error{color:#9c382d}.employee-management .section-heading{margin-bottom:15px}.employee-code-heading{margin-top:18px;padding-top:14px;border-top:1px solid #d3dee6}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{margin:4px 0 0;font-size:19px}.employee-code-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}.employee-code{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;background:#eef3f6;border-radius:9px}.employee-code strong,.employee-code span{display:block}.employee-code span{margin-top:3px;color:#63768a;font-size:11px}.employee-code code{min-width:58px;padding:7px;text-align:center;background:#061b35;color:#9cd43c;border-radius:7px;font-size:16px;font-weight:800;letter-spacing:2px}@media(max-width:760px){.section-heading{align-items:flex-start;flex-direction:column}.employee-code-list{grid-template-columns:1fr}}
.live-operations{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.section-heading>span{color:#63768a;font-size:12px;text-transform:capitalize}.attendance-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.attendance-metrics .metric{padding:11px;background:#eef3f6}.attendance-metrics .metric strong{font-size:22px}.live-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.live-grid h3{margin:4px 0 9px;font-size:14px}.attendance-list,.tour-list{display:grid;gap:7px}.attendance-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px;background:#f5f8fa;border-radius:9px}.attendance-row strong,.attendance-row span,.tour-row strong,.tour-row span{display:block}.attendance-row div span,.tour-row div span{margin-top:2px;color:#63768a;font-size:10px}.attendance-time{font-size:11px;font-weight:800}.tour-row{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:9px;background:#f5f8fa;border-radius:9px}.live-status{padding:5px 7px;border-radius:999px;background:#e8eef3;color:#526879;font-size:9px;font-weight:800;white-space:nowrap}.live-status.in_service,.live-status.returned,.live-status.service_completed{background:#e4f1d3;color:#35640c}.live-status.late{background:#fff1d3;color:#805c0a}.live-status.on_tour{background:#dcecf8;color:#0a5da5}.live-status.not_badged{background:#f2e5e2;color:#9c382d}.live-status.on_break{background:#dcecf8;color:#0a5da5}.empty-state{margin:0;padding:12px;background:#f5f8fa;color:#63768a;border-radius:9px;font-size:12px}@media(max-width:900px){.attendance-metrics{grid-template-columns:1fr 1fr}.live-grid{grid-template-columns:1fr}}@media(max-width:600px){.attendance-row{grid-template-columns:minmax(0,1fr) auto}.attendance-time{display:none}.tour-row{align-items:flex-start;flex-direction:column}}
.intervention-monitor{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.intervention-list{display:grid;gap:8px}.intervention-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;background:#f5f8fa;border-left:4px solid #0a5da5;border-radius:9px}.intervention-row strong,.intervention-row span{display:block}.intervention-row div>span{margin-top:3px;color:#63768a;font-size:10px}.intervention-flags{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.live-status.to_validate{background:#fff1d3;color:#805c0a}.live-status.validated_by_keyais,.live-status.validated_by_client{background:#e4f1d3;color:#35640c}.live-status.anomaly,.live-status.rejected_by_keyais,.live-status.rejected_by_client{background:#f2e5e2;color:#9c382d}@media(max-width:600px){.intervention-row{align-items:flex-start;flex-direction:column}.intervention-flags{justify-content:flex-start}}
.intervention-flags button{padding:7px 9px;font-size:10px}.intervention-validation-card{display:grid;gap:12px;width:min(840px,100%);max-height:92vh;overflow:auto;margin:0;padding:18px;background:#fff;border:1px solid #d3dee6;border-top:5px solid #0a5da5;border-radius:18px;box-shadow:0 28px 80px #061b3566}.intervention-validation-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.intervention-validation-details article{padding:10px;background:#f5f8fa;border-radius:9px}.intervention-validation-details span{display:block;color:#63768a;font-size:10px;font-weight:800;text-transform:uppercase}.intervention-validation-details strong{display:block;margin-top:4px;color:#102d45;font-size:13px;overflow-wrap:anywhere}.intervention-vehicle-list{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:3px}.intervention-vehicle-list li{color:#102d45;font-size:13px;font-weight:800;overflow-wrap:anywhere}@media(max-width:700px){.intervention-validation-details{grid-template-columns:1fr}}
.route-alerts{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #d3dee6;border-top:5px solid #0a5da5;border-radius:13px}.realtime-help{margin:8px 0 16px;color:#63768a;font-size:12px}.alert-counts{display:flex;gap:6px}.alert-counts span{padding:6px 8px;background:#eef3f6;border-radius:999px;color:#63768a;font-size:10px;font-weight:800}.route-alert-list{display:grid;gap:7px;margin-top:14px}.route-alert{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:#f5f8fa;border-left:4px solid #bfd2e1;border-radius:9px}.route-alert strong,.route-alert span{display:block}.route-alert div span{margin-top:3px;color:#63768a;font-size:10px}.route-alert.delayed{border-left-color:#d48a22}.route-alert.missed{border-left-color:#b84d42}.route-alert.completed,.route-alert.tour_completed{border-left-color:#83bd35}.live-status.delayed{background:#fff1d3;color:#805c0a}.live-status.missed{background:#f2e5e2;color:#9c382d}.live-status.completed,.live-status.tour_completed{background:#e4f1d3;color:#35640c}@media(max-width:600px){.route-alert{align-items:flex-start;flex-direction:column}.alert-counts{flex-wrap:wrap}}
.weekly-completed-services{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #d3dee6;border-top:5px solid #83bd35;border-radius:13px}.completed-week-list{display:grid;gap:8px;margin-top:14px}.completed-week-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;background:#f5f8fa;border-left:4px solid #83bd35;border-radius:9px}.completed-week-row time{color:#0a5da5;font-size:11px;font-weight:900;text-transform:capitalize}.completed-week-row strong,.completed-week-row span{display:block}.completed-week-row div>span{margin-top:3px;color:#63768a;font-size:10px}@media(max-width:760px){.weekly-completed-services .section-heading{align-items:flex-start}.completed-week-row{grid-template-columns:1fr}.completed-week-row .intervention-flags{justify-content:flex-start}}
.notification-center{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.notification-list{display:grid;gap:8px;margin-top:14px}.notification{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;background:#fff8e8;border-left:5px solid #d48a22;border-radius:9px}.notification.critical{background:#f9ece9;border-left-color:#b84d42}.notification.read{opacity:.62;background:#f5f8fa;border-left-color:#bfd2e1}.notification strong,.notification span{display:block}.notification div span{margin-top:4px;color:#63768a;font-size:11px}.notification button{flex:0 0 auto;padding:8px 10px;font-size:10px}.read-label{padding:5px 8px;background:#e8eef3;border-radius:999px;color:#63768a;font-size:9px;font-weight:800}@media(max-width:600px){.notification{align-items:flex-start;flex-direction:column}}
.heading-actions{display:flex;gap:7px}.heading-actions #enableDirectionPush{background:#83bd35;color:#173805}@media(max-width:760px){.heading-actions{width:100%;flex-direction:column}.heading-actions button{width:100%}}
.group-reference{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.reference-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:16px 0}.reference-metrics .metric{padding:11px;background:#eef3f6}.reference-metrics .metric strong{font-size:22px}.client-reference-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:10px}.client-reference{padding:12px;background:#f5f8fa;border-left:4px solid #0a5da5;border-radius:9px}.client-reference strong,.client-reference span{display:block}.client-reference div>span,.client-reference p{margin:3px 0 0;color:#63768a;font-size:10px}.reference-counts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.reference-counts span{padding:4px 6px;background:#e4edf3;border-radius:6px}.client-vehicles{margin-top:10px;padding-top:9px;border-top:1px solid #d3dee6}.client-vehicles summary{cursor:pointer;color:#0a5da5;font-size:11px;font-weight:900}.client-vehicles div{display:grid;gap:6px;margin-top:8px}.client-vehicles article{padding:8px;background:#fff;border-left:3px solid #83bd35;border-radius:7px}.client-vehicles article strong{font-size:12px}.client-vehicles article span{margin-top:2px;color:#63768a;font-size:10px}.reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.reference-grid-single{grid-template-columns:1fr}.reference-grid h3{margin:0 0 8px;font-size:14px}.compact-list{display:grid;gap:7px}.compact-list article{padding:9px;background:#f5f8fa;border-radius:8px}.compact-list strong,.compact-list span{display:block}.compact-list span{margin-top:3px;color:#63768a;font-size:10px}.client-reference .danger-text{color:#9b1c1c;font-weight:900}@media(max-width:900px){.reference-metrics{grid-template-columns:repeat(3,1fr)}.reference-grid{grid-template-columns:1fr}}@media(max-width:600px){.reference-metrics{grid-template-columns:1fr 1fr}.client-reference-list{grid-template-columns:1fr}}
.real-registers{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #d3dee6;border-radius:13px}.register-block{margin-top:17px;padding-top:15px;border-top:1px solid #d3dee6}.register-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.register-heading h3{margin:0;font-size:15px}.register-heading span{color:#63768a;font-size:11px}.register-heading input{max-width:390px}.data-table{display:grid;gap:5px;max-height:420px;overflow:auto}.data-row{display:grid;grid-template-columns:120px 150px 150px 180px minmax(180px,1fr);gap:8px;padding:9px;background:#f5f8fa;border-radius:8px;font-size:11px}.data-row span{color:#526879}.real-employee-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px}.real-employee-list article{padding:9px;background:#f5f8fa;border-left:4px solid #83bd35;border-radius:8px}.real-employee-list strong,.real-employee-list span{display:block}.real-employee-list span{margin-top:3px;color:#63768a;font-size:10px}.weekly-planning-list{display:grid;gap:12px}.weekly-planning-list h4{margin:0 0 7px;text-transform:capitalize}.weekly-planning-list section{padding:11px;background:#eef3f6;border-radius:9px}.weekly-planning-list article{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px;padding:8px;background:#fff;border-left:4px solid #0a5da5;border-radius:7px}.weekly-planning-list article+article{margin-top:5px}.weekly-planning-list time{font-size:11px;font-weight:800}.weekly-planning-list strong,.weekly-planning-list span{display:block}.weekly-planning-list span{margin-top:3px;color:#63768a;font-size:10px}@media(max-width:850px){.data-row{grid-template-columns:110px 1fr}.data-row span:nth-child(n+3){display:none}}@media(max-width:600px){.register-heading{align-items:flex-start;flex-direction:column}.register-heading input{max-width:none}.weekly-planning-list article{grid-template-columns:80px minmax(0,1fr)}}
.planning-agent{margin:0 0 22px;padding:17px;background:#fff;border:1px solid #b9d1df;border-top:5px solid #0a5da5;border-radius:8px}.planning-agent-generate{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:end;gap:9px;margin:16px 0}.publish-button{background:#83bd35;color:#173805}.secondary-button{background:#dce6ed;color:#29445a}.danger-button{background:#b84d42}.planning-agent-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:14px 0}.planning-agent-metrics .metric{padding:11px;background:#eef3f6}.planning-agent-metrics .metric strong{font-size:22px}.planning-agent-alerts{display:grid;gap:7px;margin-bottom:12px}.agent-alert{padding:10px;background:#f9ece9;border-left:4px solid #b84d42;border-radius:7px}.agent-alert strong,.agent-alert span{display:block}.agent-alert span{margin-top:3px;color:#72524e;font-size:11px}.agent-ready{padding:10px;background:#e4f1d3;color:#35640c;border-radius:7px;font-weight:800}.planning-shift-modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:rgba(6,27,53,.72);backdrop-filter:blur(8px)}.planning-shift-modal[hidden]{display:none}.planning-shift-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:11px;width:min(920px,100%);max-height:92vh;overflow:auto;margin:0;padding:18px;background:#fff;border:1px solid #d3dee6;border-top:5px solid #83bd35;border-radius:18px;box-shadow:0 28px 80px #061b3566}.planning-modal-heading{grid-column:1/-1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:8px;border-bottom:1px solid #d3dee6}.planning-modal-heading h3{margin:2px 0 0;font-size:22px}.planning-modal-heading span{display:block;margin-top:4px;color:#63768a;font-size:12px}.planning-template-field{grid-column:1/-1}.planning-position{grid-column:span 2}.planning-shift-conflict-warning{grid-column:1/-1;padding:10px;background:#fff1d3;color:#805c0a;border-left:4px solid #d48a22;border-radius:7px;font-size:12px;font-weight:800}.planning-shift-conflict-warning[hidden]{display:none}.planning-shift-duration{grid-column:1/-1;margin-top:-5px;color:#526879;font-size:11px;font-weight:800}.planning-inline-create{grid-column:1/-1;margin-top:-4px}.planning-link-button{padding:0;background:none;border:0;color:#0a5da5;font-size:11px;font-weight:800;cursor:pointer;text-decoration:underline}.planning-inline-form{display:flex;gap:7px;margin-top:7px;flex-wrap:wrap}.planning-inline-form input[type=text]{flex:1;min-width:200px}.planning-inline-form input[type=color]{width:44px;padding:2px;min-height:38px}.planning-tab-switch{display:flex;gap:6px;padding:0 18px 14px}.planning-tab-button{padding:9px 16px;background:#eef5f7;color:#29445a;border:1px solid #d7e6ea;border-radius:9px;font-weight:900;font-size:12px;cursor:pointer}.planning-tab-button.active{background:#061b35;color:#fff;border-color:#83bd35}.planning-modal-card{width:min(920px,100%);max-height:92vh;overflow:auto;background:#fff;border:1px solid #d3dee6;border-top:5px solid #83bd35;border-radius:18px;box-shadow:0 28px 80px #061b3566}.planning-modal-card .planning-modal-heading{padding:18px 18px 8px;border-bottom:0}.planning-modal-card .planning-shift-form{width:100%;max-height:none;margin:0;padding:8px 18px 18px;background:transparent;border:0;border-top:1px solid #d3dee6;border-radius:0;box-shadow:none}#planningPublicationStatus.planning-publication-status{padding:5px 10px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}#planningPublicationStatus.planning-publication-status:empty{display:none}#planningPublicationStatus.published{background:#e4f1d3;color:#35640c}#planningPublicationStatus.partial{background:#fff1d3;color:#805c0a}#planningPublicationStatus.unpublished{background:#f2e5e2;color:#9c382d}.planning-modal-actions{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px solid #d3dee6}.planning-modal-actions output{flex:1;min-width:240px}.planning-draft-list{display:grid;gap:6px;max-height:620px;overflow:auto}.draft-shift{display:grid;grid-template-columns:115px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;background:#f5f8fa;border-left:4px solid #0a5da5;border-radius:8px}.draft-shift time{font-size:11px;font-weight:800}.draft-shift strong,.draft-shift span{display:block}.draft-shift span{margin-top:3px;color:#63768a;font-size:10px}.draft-actions{display:flex;gap:5px}.draft-actions button{padding:7px;font-size:10px}.agent-history{margin-top:16px;padding-top:14px;border-top:1px solid #d3dee6}.agent-history h3{margin:0 0 8px;font-size:14px}
@media(max-width:900px){.planning-agent-generate{grid-template-columns:1fr 1fr}.planning-agent-generate label{grid-column:1/-1}.planning-agent-metrics{grid-template-columns:1fr 1fr}.planning-shift-form{grid-template-columns:1fr 1fr}.planning-position{grid-column:span 2}}@media(max-width:600px){.planning-agent-generate,.planning-shift-form{grid-template-columns:1fr}.planning-position{grid-column:auto}.planning-modal-heading,.planning-modal-actions{align-items:stretch;flex-direction:column}.planning-modal-actions output{min-width:0}.draft-shift{grid-template-columns:90px minmax(0,1fr)}.draft-actions{grid-column:1/-1}.draft-actions button{flex:1}}

.command-center{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-top:5px solid #83bd35;border-radius:8px}.good-state,.critical-state{padding:6px 9px;border-radius:999px;font-weight:800}.good-state{background:#e4f1d3;color:#35640c}.critical-state{background:#f2e5e2;color:#9c382d}.daily-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:17px 0}.rate-card{position:relative;overflow:hidden;padding:14px;background:#eef3f6;border-radius:8px}.rate-card:before{position:absolute;inset:0 auto 0 0;width:4px;background:#0a5da5;content:""}.rate-card.good:before{background:#83bd35}.rate-card.warning:before{background:#d48a22}.rate-card strong,.rate-card span{display:block}.rate-card strong{font-size:27px}.rate-card span{margin-top:4px;color:#63768a;font-size:11px}.command-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:18px}.command-grid h3{margin:3px 0 9px;font-size:14px}.priority-list,.client-performance-list{display:grid;gap:7px}.priority-item,.client-performance{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:#f5f8fa;border-left:4px solid #d48a22;border-radius:7px}.priority-item.critical{background:#f9ece9;border-left-color:#b84d42}.priority-item strong,.priority-item span,.client-performance strong,.client-performance span{display:block}.priority-item div span,.client-performance div>span{margin-top:3px;color:#63768a;font-size:10px}.priority-item>span{padding:5px 7px;background:#fff;border-radius:999px;color:#805c0a;font-size:9px;font-weight:800}.priority-item.critical>span{color:#9c382d}.performance-values{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.performance-values span{padding:5px 6px;background:#e6eef4;border-radius:6px;color:#526879;font-size:9px;font-weight:800}@media(max-width:950px){.daily-summary{grid-template-columns:1fr 1fr}.command-grid{grid-template-columns:1fr}}@media(max-width:600px){.daily-summary{grid-template-columns:1fr}.priority-item,.client-performance{align-items:flex-start;flex-direction:column}.performance-values{justify-content:flex-start}}

.client-reports{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-radius:8px}.report-form{display:grid;grid-template-columns:1.4fr 1fr 1fr auto auto auto;align-items:end;gap:9px;margin-top:16px}.report-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}.report-preview:empty{display:none}.report-preview .metric{padding:11px;background:#eef3f6}.report-preview .metric strong{font-size:22px}.report-category-breakdown{margin-top:14px}.report-category-breakdown:empty{display:none}.report-category-breakdown h3{margin:0 0 8px;font-size:13px;color:#63768a}.report-category-row{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:8px;align-items:center;padding:9px 11px;background:#eef3f6;border-radius:6px;margin-bottom:6px;font-size:12px}.report-category-row strong{font-size:15px}.report-category-row span{color:#63768a;font-size:10px;display:block}@media(max-width:1000px){.report-form{grid-template-columns:1fr 1fr}.report-form label:first-child{grid-column:1/-1}.report-preview{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.report-form,.report-preview{grid-template-columns:1fr}.report-form label:first-child{grid-column:auto}.report-category-row{grid-template-columns:1fr 1fr}}

.service-fleet{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-top:5px solid #0a5da5;border-radius:8px}.fleet-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:16px 0}.fleet-metrics .metric{padding:11px;background:#eef3f6}.fleet-metrics .metric strong{font-size:20px}.fleet-event-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));align-items:end;gap:8px;padding:13px;background:#eef3f6;border-radius:8px}.fleet-description{grid-column:span 3}.fleet-event-form output{padding:11px}.fleet-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:17px;margin-top:17px}.fleet-layout h3{margin:0 0 8px;font-size:14px}.fleet-vehicle-list,.fleet-event-list{display:grid;gap:7px;max-height:560px;overflow:auto}.fleet-vehicle,.fleet-event{padding:10px;background:#f5f8fa;border-left:4px solid #83bd35;border-radius:8px}.fleet-vehicle.warning,.fleet-event.high{border-left-color:#d48a22}.fleet-vehicle.critical,.fleet-event.critical{border-left-color:#b84d42}.fleet-vehicle strong,.fleet-vehicle span,.fleet-event strong,.fleet-event span{display:block}.fleet-vehicle div>span,.fleet-event div>span,.fleet-vehicle p,.fleet-event p{margin:3px 0 0;color:#63768a;font-size:10px}.fleet-values{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.fleet-values span{padding:4px 6px;background:#e5edf3;border-radius:6px;font-weight:800}.fleet-event{display:flex;align-items:center;justify-content:space-between;gap:10px}.fleet-event.completed{opacity:.65}.fleet-event-actions{display:grid;gap:5px;justify-items:end}.fleet-event-actions button{padding:7px;font-size:10px}@media(max-width:1050px){.fleet-metrics{grid-template-columns:repeat(3,1fr)}.fleet-event-form{grid-template-columns:1fr 1fr}.fleet-description{grid-column:span 2}.fleet-layout{grid-template-columns:1fr}}@media(max-width:600px){.fleet-metrics,.fleet-event-form{grid-template-columns:1fr}.fleet-description{grid-column:auto}.fleet-event{align-items:flex-start;flex-direction:column}.fleet-event-actions{justify-items:start}}

.inventory-module{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-top:5px solid #83bd35;border-radius:8px}.inventory-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:16px 0}.inventory-metrics .metric{padding:11px;background:#eef3f6}.inventory-metrics .metric strong{font-size:20px}.inventory-forms{display:grid;grid-template-columns:.8fr 1.25fr 1.25fr;gap:10px}.inventory-forms form{display:grid;align-content:start;gap:7px;padding:12px;background:#eef3f6;border-radius:8px}.inventory-forms h3{margin:0 0 3px;font-size:14px}.inventory-forms textarea{min-height:65px}.inventory-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:17px;margin-top:17px}.inventory-layout h3{margin:0 0 8px;font-size:14px}.inventory-item-list,.inventory-movement-list{display:grid;gap:7px;max-height:600px;overflow:auto}.inventory-item,.inventory-movement{padding:10px;background:#f5f8fa;border-left:4px solid #83bd35;border-radius:8px}.inventory-item.low-stock{background:#fff8e8;border-left-color:#d48a22}.inventory-item strong,.inventory-item span,.inventory-movement strong,.inventory-movement span{display:block}.inventory-item div>span,.inventory-movement div>span{margin-top:3px;color:#63768a;font-size:10px}.inventory-values{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.inventory-values span{padding:4px 6px;background:#e5edf3;border-radius:6px;font-size:10px;font-weight:800}.inventory-item code{display:inline-block;max-width:100%;padding:5px 7px;background:#061b35;color:#9cd43c;border-radius:6px;font-size:9px;overflow-wrap:anywhere}.inventory-movement{display:flex;align-items:center;justify-content:space-between;gap:8px;border-left-color:#0a5da5}.inventory-movement.out{border-left-color:#d48a22}.inventory-movement>span{color:#63768a;font-size:9px;white-space:nowrap}@media(max-width:1100px){.inventory-metrics{grid-template-columns:repeat(3,1fr)}.inventory-forms{grid-template-columns:1fr 1fr}.inventory-forms form:last-child{grid-column:1/-1}.inventory-layout{grid-template-columns:1fr}}@media(max-width:650px){.inventory-metrics,.inventory-forms{grid-template-columns:1fr}.inventory-forms form:last-child{grid-column:auto}.inventory-movement{align-items:flex-start;flex-direction:column}.inventory-movement>span{white-space:normal}}

.commercial-module{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-top:5px solid #0a5da5;border-radius:8px}.commercial-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:16px 0}.commercial-metrics .metric{padding:11px;background:#eef3f6}.commercial-metrics .metric strong{font-size:20px}.commercial-forms{display:grid;grid-template-columns:.8fr 1.1fr 1.2fr;gap:10px}.commercial-forms form{display:grid;align-content:start;gap:7px;padding:12px;background:#eef3f6;border-radius:8px}.commercial-forms h3{margin:0 0 3px;font-size:14px}.commercial-layout{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:17px}.commercial-layout h3{margin:0 0 8px;font-size:14px}.invoice-list,.quote-list{display:grid;gap:7px;max-height:620px;overflow:auto}.commercial-document{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px;background:#f5f8fa;border-left:4px solid #0a5da5;border-radius:8px}.commercial-document.overdue{background:#f9ece9;border-left-color:#b84d42}.commercial-document.paid,.commercial-document.accepted{border-left-color:#83bd35}.commercial-document strong,.commercial-document span{display:block}.commercial-document div>span{margin-top:3px;color:#63768a;font-size:10px}.document-actions{display:grid;gap:5px;justify-items:end}.document-actions button{padding:7px;font-size:10px}@media(max-width:1100px){.commercial-metrics{grid-template-columns:repeat(3,1fr)}.commercial-forms{grid-template-columns:1fr 1fr}.commercial-forms form:last-child{grid-column:1/-1}.commercial-layout{grid-template-columns:1fr}}@media(max-width:650px){.commercial-metrics,.commercial-forms{grid-template-columns:1fr}.commercial-forms form:last-child{grid-column:auto}.commercial-document{align-items:flex-start;flex-direction:column}.document-actions{justify-items:start}}

.finance-module{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-top:5px solid #d1a342;border-radius:8px}.finance-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.finance-metrics .metric{padding:11px;background:#eef3f6}.finance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.finance-grid article{padding:14px;background:#f5f8fa;border-left:4px solid #d1a342;border-radius:8px}.finance-grid strong,.finance-grid span{display:block}.finance-grid span{margin-top:7px;color:#63768a;font-size:12px;line-height:1.45}.finance-grid a{display:inline-flex;margin-top:12px;padding:9px 12px;background:#061b35;color:#fff;border-radius:7px;font-weight:900;text-decoration:none}@media(max-width:900px){.finance-metrics,.finance-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.finance-metrics,.finance-grid{grid-template-columns:1fr}}

.operations-tabs{position:sticky;top:0;z-index:8;display:flex;gap:5px;margin:20px 0 14px;padding:6px;overflow-x:auto;background:#fff;border:1px solid #c7d7e2;border-radius:8px;box-shadow:0 8px 24px #102d4512}.operations-tabs button{flex:0 0 auto;padding:10px 13px;background:transparent;color:#526879;border-radius:6px;white-space:nowrap}.operations-tabs button:hover{background:#eef3f6;color:#102d45}.operations-tabs button.active{background:#061b35;color:#fff}.operations-panel[hidden]{display:none!important}.operations-panel-active{animation:panel-enter .18s ease-out}@keyframes panel-enter{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:760px){.operations-tabs{top:0;margin:14px -15px;padding:6px 15px;border-right:0;border-left:0;border-radius:0}.operations-tabs button{padding:10px 12px}.operations-panel-active{animation:none}}
.support-module-links{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px;padding:13px 14px;background:#f8fbfd;border:1px solid #d3dee6;border-radius:13px}.support-module-links strong,.support-module-links span{display:block}.support-module-links strong{margin-top:3px;font-size:14px}.support-module-links span{margin-top:3px;color:#63768a;font-size:11px}.support-module-links>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.support-module-links button{padding:9px 12px;background:#dce6ed;color:#29445a}.support-module-links button.active{background:#83bd35;color:#173805}@media(max-width:780px){.support-module-links{align-items:flex-start;flex-direction:column}.support-module-links>div:last-child{justify-content:flex-start;width:100%}.support-module-links button{flex:1 1 130px}}

.planning-week-browser{margin:16px 0;padding:14px;background:#eef3f6;border-radius:8px}.planning-browser-heading,.draft-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.planning-browser-heading h3,.draft-preview-heading h3{margin:0;font-size:15px}.planning-browser-heading span,.draft-preview-heading span{display:block;margin-top:3px;color:#63768a;font-size:10px}.planning-browser-actions{display:flex;gap:6px}.planning-preview-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:7px;overflow-x:auto}.planning-preview-day{min-width:150px;padding:8px;background:#fff;border-radius:7px}.planning-preview-day h4{margin:0 0 7px;font-size:11px;text-transform:capitalize}.planning-preview-shifts{display:grid;gap:5px}.planning-preview-shift{padding:7px;background:#edf5fd;border-left:4px solid #1976d2;border-radius:5px}.planning-preview-shift.complete{background:#fff2e5;border-left-color:#e58a25}.planning-preview-shift.simple{background:#edf8f1;border-left-color:#2e8b57}.planning-preview-shift.exterior{background:#edf5fd;border-left-color:#1976d2}.planning-preview-shift.multiservice{background:#f4ece9;border-left-color:#795548}.planning-preview-shift.transport{background:#fff0f7;border-left-color:#e85b9e}.planning-preview-shift strong,.planning-preview-shift span{display:block}.planning-preview-shift strong{font-size:10px}.planning-preview-shift span{margin-top:2px;color:#526879;font-size:9px}.draft-preview-heading{margin:17px 0 9px;padding-top:14px;border-top:1px solid #d3dee6}@media(max-width:850px){.planning-browser-heading{align-items:flex-start;flex-direction:column}.planning-browser-actions{width:100%;overflow-x:auto}.planning-browser-actions button{flex:0 0 auto}.planning-preview-grid{grid-template-columns:repeat(7,155px)}}@media(max-width:600px){.planning-browser-actions{display:grid;grid-template-columns:1fr 1fr}.planning-browser-actions button:last-child{grid-column:1/-1}}
.planning-preview-actions{display:flex;gap:4px;margin-top:6px}
.planning-preview-actions button{flex:1;padding:5px;font-size:8px}
.planning-preview-actions .delete{background:#b84d42}
.planning-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;row-gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px;background:#fff;border:1px solid #dbe7eb;border-radius:12px}
.planning-view-switch{display:flex;gap:6px;flex-wrap:wrap}
.planning-view-switch button{min-height:38px;padding:0 14px;background:#eef5f7;color:#29445a;border:1px solid #d7e6ea;border-radius:9px;font-weight:900}
.planning-view-switch button.active{background:#061b35;color:#fff;border-color:#83bd35;box-shadow:inset 0 -3px 0 #83bd35}
.planning-view-toolbar .planning-browser-actions{display:flex;flex:1 1 auto;flex-wrap:wrap;justify-content:center;gap:6px;min-width:0}
.planning-view-toolbar .planning-browser-actions button{min-height:38px;white-space:nowrap}
.planning-view-toolbar label{min-width:190px;color:#526879}
.planning-view-toolbar input{min-height:38px;padding:8px}
.planning-browser-heading.compact{justify-content:flex-start;margin:0 0 8px;padding:0 2px}
.planning-browser-heading.compact span{font-size:11px;font-weight:900;color:#526879}
.planning-week-browser{border-radius:14px}
.planning-preview-day,.planning-month-day,.planning-day-focus{transition:border-color .15s ease,box-shadow .15s ease}
.planning-preview-day:hover,.planning-month-day:hover,.planning-day-focus:hover{box-shadow:inset 0 0 0 2px #83bd3560}
.planning-day-focus{padding:10px;background:#dfe9ef;border-radius:8px}
.planning-day-list{display:grid;gap:7px;margin-top:8px}
.planning-preview-shift{cursor:pointer}
.planning-preview-shift small{display:block;margin-top:3px;color:#63768a;font-size:9px;font-weight:800}
.planning-month-view{min-width:980px;padding:10px;background:#dfe9ef;border-radius:8px}
.planning-month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:7px;margin-top:8px}
.planning-month-day{min-height:154px;padding:7px;background:#fff;border-radius:7px}
.planning-month-day.outside{opacity:.46}
.planning-month-day h4{margin:0 0 6px;color:#526879;font-size:10px;text-transform:capitalize}
.planning-month-day .planning-preview-shift{padding:6px}
.planning-more{display:block;margin-top:5px;color:#0a5da5;font-weight:900}.skello-day-headcount{display:inline-block;margin:0 0 5px;padding:3px 7px;background:#e6eef4;color:#0a5da5;border-radius:999px;font-size:9px;font-weight:900}
.planning-control-panel{display:grid;gap:10px;margin:0 0 12px;padding:12px;background:#fff;border:1px solid #dbe7eb;border-radius:12px}
.planning-control-actions,.planning-publish-box{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.planning-control-actions button{min-height:38px}
.planning-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px}
.planning-filters label,.planning-publish-box label{font-size:11px;color:#526879}
.planning-filters input,.planning-filters select,.planning-publish-box select{min-height:38px;padding:8px}
.planning-check{display:flex!important;align-items:center;gap:7px;min-height:38px;padding:0 10px;background:#eef5f7;border:1px solid #d7e6ea;border-radius:9px}
.planning-check input{width:auto}
.planning-optimizer-result{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:0 0 10px}
.planning-optimizer-result:empty{display:none}
.planning-optimizer-result article{padding:10px;background:#e4f1d3;color:#35640c;border-left:4px solid #83bd35;border-radius:9px;font-size:12px;font-weight:800}
.planning-optimizer-result article.warning{background:#fff1d3;color:#805c0a;border-left-color:#d48a22}
.planning-workspace-bar{position:sticky;top:88px;z-index:12;display:flex;gap:8px;margin:-4px -4px 16px;padding:8px;background:#f5fafb;border:1px solid #dbe7eb;border-radius:14px;box-shadow:0 10px 28px #061b3510}
.planning-workspace-bar button{min-height:42px;padding:0 18px;background:transparent;color:#526879;border:1px solid transparent;border-radius:10px;font-weight:900}
.planning-workspace-bar button:hover{background:#eaf3f5;color:#102d45}
.planning-workspace-bar button.active{background:#061b35;color:#fff;border-color:#83bd35;box-shadow:inset 0 -3px 0 #83bd35}
.planning-area[hidden]{display:none!important}
.rh-area[hidden]{display:none!important}
.tracking-area[hidden]{display:none!important}
.route-alert-row-actions{display:flex;gap:6px;margin-top:6px}
.planning-placeholder{display:grid;gap:8px;min-height:260px;padding:24px;background:#eef5f7;border:1px dashed #b9d1df;border-radius:14px}
.planning-placeholder h2{margin:0;font-size:28px}
.planning-placeholder p:not(.eyebrow){max-width:760px;margin:0;color:#526879;line-height:1.55}
.missions-workspace{display:grid;gap:16px}
.mission-template-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:14px;background:#f3f7f9;border:1px solid #dbe7eb;border-radius:14px}
.mission-template-form .mission-wide{grid-column:span 2}.mission-template-form .planning-modal-actions{grid-column:1/-1}
.mission-library-toolbar{display:flex;align-items:end;gap:10px;padding:12px;background:#fff;border:1px solid #dbe7eb;border-radius:12px}
.mission-library-toolbar label{flex:1}.mission-library-toolbar button{flex:0 0 auto}
.mission-template-list{display:grid;gap:9px}
.mission-template-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;background:#fff;border:1px solid #dbe7eb;border-left:7px solid var(--mission-color,#83bd35);border-radius:12px;box-shadow:0 10px 26px #061b3510}
.mission-template-card strong,.mission-template-card span,.mission-template-card small{display:block}
.mission-template-card strong{font-size:16px}.mission-template-card span{margin-top:4px;color:#526879;font-size:12px}.mission-template-card small{margin-top:7px;color:#63768a;line-height:1.4}
.mission-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.mission-card-actions button{padding:8px 10px;font-size:10px}
@media(max-width:1000px){.mission-template-form{grid-template-columns:1fr 1fr}.mission-template-form .mission-wide{grid-column:1/-1}.mission-template-card{grid-template-columns:1fr}.mission-card-actions{justify-content:flex-start}}
@media(max-width:620px){.mission-template-form{grid-template-columns:1fr}.mission-library-toolbar{align-items:stretch;flex-direction:column}.mission-library-toolbar button{width:100%}}
@media(max-width:900px){.planning-filters{grid-template-columns:1fr 1fr}.planning-publish-box{align-items:stretch}.planning-publish-box label{flex:1 1 180px}}
@media(max-width:980px){.planning-view-toolbar{align-items:stretch;flex-direction:column}.planning-view-toolbar .planning-browser-actions{justify-content:flex-start;min-width:0}.planning-view-toolbar label{min-width:0}}
@media(max-width:760px){.planning-workspace-bar{top:0;overflow-x:auto;border-radius:10px}.planning-workspace-bar button{flex:0 0 auto}.planning-month-view{min-width:920px}}
@media(max-width:560px){.planning-filters{grid-template-columns:1fr}.planning-control-actions button{flex:1 1 120px}}
.employees-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}
.employees-sidebar{display:grid;align-content:start;gap:12px;padding:14px;background:#f3f7f9;border:1px solid #dbe7eb;border-radius:14px}
.employees-search input{min-height:42px;background:#fff}
.employees-state-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#efe6ff;border-radius:10px;color:#2d2448}
.employees-state-card strong,.employees-state-card span{font-weight:900}
.employees-state-card span{display:grid;place-items:center;min-width:30px;height:30px;background:#fff;border-radius:999px}
.employee-list-tabs{display:flex;gap:6px}
.employee-list-tabs button{flex:1;background:#e7eef3;color:#526879}
.employee-list-tabs button.active{background:#061b35;color:#fff}
.planning-employee-list{display:grid;gap:7px;max-height:680px;overflow:auto}
.planning-employee-list button{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;padding:9px;text-align:left;background:#fff;color:#102d45;border:1px solid transparent;border-radius:10px}
.planning-employee-list button.active{background:#0a5da5;color:#fff;border-color:#0a5da5}
.planning-employee-list button>span{grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;background:#dce8ff;color:#0a5da5;border-radius:999px;font-weight:900}
.planning-employee-list button.active>span{background:#fff;color:#0a5da5}
.planning-employee-list strong,.planning-employee-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planning-employee-list small{color:#d48a22;font-size:11px;font-weight:800}.planning-employee-list button.active small{color:#d9e8ef}
.employee-file{padding:18px;background:#fff;border:1px solid #dbe7eb;border-radius:16px}
.employee-file-heading{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.employee-avatar{display:grid;place-items:center;width:58px;height:58px;background:#0a5da5;color:#fff;border-radius:999px;font-size:21px;font-weight:900;box-shadow:0 12px 28px #0a5da52b}
.employee-file-heading h2{margin:2px 0 2px;font-size:24px}.employee-file-heading span{color:#63768a;font-size:12px}.employee-archived-badge{display:inline-block;padding:2px 9px;background:#f9ece9;color:#b84d42;border-radius:999px;font-size:12px;font-weight:800;vertical-align:middle}
.employee-file-heading button{margin-left:auto}
.employee-file-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px;border-bottom:1px solid #dbe7eb}
.employee-file-tabs button{padding:12px 10px;background:transparent;color:#63768a;border-radius:0;border-bottom:3px solid transparent;white-space:nowrap}
.employee-file-tabs button.active{color:#0a5da5;border-bottom-color:#0a5da5}
.employee-form-section{display:grid;gap:14px;padding:14px;background:#fbfdfe;border:1px solid #e1ebef;border-radius:12px}
.employee-form-section h3{margin:0;font-size:18px}
.employee-form-grid,.employee-access-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}
.employee-form-grid input{background:#fff;color:#102d45}
.employee-inline-field{display:flex;gap:6px}.employee-inline-field input{flex:1;min-width:0}.employee-inline-field button{flex:0 0 auto;white-space:nowrap}
.employee-access-grid article,.employee-request-list article,.employee-document-list article{padding:12px;background:#fff;border:1px solid #dbe7eb;border-left:4px solid #83bd35;border-radius:10px}
.employee-access-grid strong,.employee-request-list strong,.employee-document-list strong,.employee-access-grid span,.employee-request-list span,.employee-document-list span{display:block}
.employee-access-grid span,.employee-request-list span,.employee-document-list span{margin-top:4px;color:#63768a;font-size:12px;line-height:1.4}
.employee-inline-actions,.employee-document-actions{display:flex;gap:8px;flex-wrap:wrap}
.employee-note{margin:0;color:#63768a;line-height:1.5}.employee-form-actions{grid-column:1/-1;display:flex;align-items:center;gap:12px}.employee-form-actions button{min-width:160px}#newEmployeeStatus{grid-column:1/-1;color:#63768a;font-size:13px;font-weight:800}
.employee-reassign-shifts{margin-top:14px;padding-top:14px;border-top:1px solid #e1e9ed}.employee-reassign-shifts p{margin:0 0 8px;color:#63768a;font-size:12px;line-height:1.5}
.employee-request-list,.employee-document-list{display:grid;gap:8px}
.employee-document-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.employee-document-list span{grid-column:1}
.employee-document-list button{grid-row:1/span 2;grid-column:2}
@media(max-width:950px){.employees-workspace{grid-template-columns:1fr}.planning-employee-list{max-height:320px}.employee-file-heading{align-items:flex-start;flex-wrap:wrap}.employee-file-heading button{margin-left:0}}
@media(max-width:620px){.employee-form-grid,.employee-access-grid{grid-template-columns:1fr}.employee-document-list article{grid-template-columns:1fr}.employee-document-list button{grid-row:auto;grid-column:auto}}
.payroll-report{display:grid;gap:16px}
.payroll-actions{display:flex;gap:8px;flex-wrap:wrap}.payroll-actions button{white-space:nowrap}
.payroll-period-bar{display:grid;grid-template-columns:180px 180px minmax(180px,1fr);align-items:end;gap:10px;padding:12px;background:#f3f7f9;border:1px solid #dbe7eb;border-radius:12px}
.payroll-period-bar>span{align-self:center;justify-self:start}
.payroll-lock-list{display:grid;gap:6px}
.payroll-lock-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#fdf3e7;border:1px solid #eecfa0;border-radius:9px;font-size:12px;color:#7a5210}
.payroll-lock-item button{white-space:nowrap}
.planning-lock-banner{padding:10px 14px;background:#fdf3e7;border:1px solid #eecfa0;border-radius:9px;color:#7a5210;font-size:13px;font-weight:600}
/* Total individuel collaborateur avec écart contractuel (2026-07-20) : ligne neutre si l'écart
   est nul, "warning" (dépassement du contrat, orange) ou "critical" (sous-planifié, rouge) sinon -
   même code couleur que .priority-item.critical utilisé ailleurs dans l'app. */
#planningEmployeeTotalsList article{border-left:4px solid #bfd2e1}
#planningEmployeeTotalsList article.warning{background:#fff1d3;border-left-color:#d48a22}
#planningEmployeeTotalsList article.critical{background:#f2e5e2;border-left-color:#9c382d}
/* Points légaux (repos 11h / durée max) affichés dès la génération de l'Agent IA (2026-07-20) :
   distincts visuellement des .agent-alert de conflit/donnée manquante (rouge) - ambre, avertissement
   à examiner plutôt qu'erreur bloquante (voir legalWarnings dans analyzePlanningShifts). */
.agent-alert.legal{background:#fff1d3;border-left-color:#d48a22}
.agent-alert.legal span{color:#805c0a}
/* Couleur du poste visible dans le formulaire de shift (2026-07-20) : reprend la couleur déjà
   utilisée sur les cartes du planning (defaultColor du référentiel de prestations, ou couleur
   choisie à la création d'un poste à la volée) - voir updatePlanningShiftColorSwatch(). */
.planning-position-with-color{display:flex;align-items:center;gap:8px}
.planning-position-with-color select{flex:1}
.planning-color-swatch{flex:0 0 auto;width:26px;height:26px;border-radius:8px;border:1px solid #c8d5df;background:#e8eef3}
.payroll-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.payroll-table-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.payroll-table-heading h3{margin:0}.payroll-table-heading span{color:#63768a;font-size:12px}
.payroll-report-table{display:grid;gap:6px;overflow:auto;padding-bottom:6px}
.payroll-row{display:grid;grid-template-columns:220px 80px 80px 80px 130px 130px 80px minmax(160px,1fr);gap:8px;align-items:center;min-width:1020px;padding:10px;background:#fff;border:1px solid #dbe7eb;border-left:4px solid #83bd35;border-radius:9px;font-size:12px}
.payroll-row.payroll-head{position:sticky;top:0;z-index:3;background:#061b35;color:#fff;border-left-color:#0a5da5;font-weight:900}
.payroll-row strong,.payroll-row small{display:block}.payroll-row small{margin-top:3px;color:#63768a;font-size:10px}.payroll-head small{color:#fff}
.payroll-row .positive{color:#0a7d32;font-weight:900}.payroll-row .negative{color:#b84d42;font-weight:900}
.payroll-side{display:grid;align-content:start;gap:12px}
.payroll-box{display:grid;gap:9px;padding:13px;background:#f8fbfd;border:1px solid #dbe7eb;border-radius:12px}
.payroll-box h3{margin:0;font-size:15px}.payroll-box label{display:flex;align-items:center;gap:8px}.payroll-box label:has(input[type="number"]),.payroll-box label:has(textarea),.payroll-box label:has(select){display:grid}
.payroll-box input[type="checkbox"]{width:auto}.payroll-box textarea{min-height:72px}
.assistant-box article{padding:9px;background:#fff8e8;border-left:4px solid #d48a22;border-radius:8px;color:#805c0a;font-size:12px}.assistant-box article+article{margin-top:7px}
@media(max-width:1050px){.payroll-layout{grid-template-columns:1fr}.payroll-side{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.payroll-period-bar{grid-template-columns:1fr}.payroll-side{grid-template-columns:1fr}.payroll-actions{width:100%}.payroll-actions button{flex:1}}
.agent-history .compact-list article{display:flex;align-items:center;justify-content:space-between;gap:10px}.agent-history .compact-list button{flex:0 0 auto;padding:7px;font-size:9px}@media(max-width:600px){.agent-history .compact-list article{align-items:flex-start;flex-direction:column}}
.planning-preview-grid{display:grid;grid-template-columns:1fr;gap:12px;overflow-x:auto}
.planning-preview-team{min-width:1080px;padding:9px;background:#dfe9ef;border-radius:8px}
.planning-team-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;padding:2px 3px}
.planning-team-heading strong{font-size:13px}.planning-team-heading span{color:#63768a;font-size:10px}
.planning-preview-days{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:7px}
.planning-empty-day{display:block;padding:7px;color:#9aacb8;text-align:center}
.client-reference-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.client-card-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.client-reference-head button,.client-card-actions button{flex:0 0 auto;padding:7px 9px;font-size:10px}.client-profile-form{display:grid;gap:10px;margin-top:18px;padding:15px;background:#f8fbfd;border:1px solid #d3dee6;border-left:5px solid #83bd35;border-radius:12px}.client-profile-form h3{margin:0;font-size:16px}.client-profile-form>div{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px}.client-profile-form textarea{min-height:78px}.client-profile-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.client-profile-actions output{flex:1;min-width:220px;color:#526879;font-size:11px;overflow-wrap:anywhere}.client-vehicles,.client-contracts,.client-vip-customers{margin-top:10px;padding-top:9px;border-top:1px solid #d3dee6}.client-vehicles summary,.client-contracts summary,.client-vip-customers summary,.vehicle-type-group summary{cursor:pointer;color:#0a5da5;font-size:11px;font-weight:900}.client-vip-customers-content{display:grid;gap:6px;margin-top:8px}.client-vip-customers-content article{padding:8px;background:#fff;border-left:3px solid #9cd43c;border-radius:7px}.client-vip-customers-content article strong{font-size:12px}.client-vip-customers-content article span{display:block;margin-top:2px;color:#63768a;font-size:10px}.vehicle-type-group{padding:7px;background:#edf3f7;border-radius:7px}.vehicle-type-group+.vehicle-type-group{margin-top:6px}.vehicle-type-group div,.client-contracts>div{display:grid;gap:6px;margin-top:8px}.client-contract-card{padding:8px;background:#fff;border-left:3px solid #0a5da5;border-radius:7px}.contract-analysis{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.contract-analysis span{padding:4px 6px;background:#e4edf3;border-radius:6px;font-weight:800}.client-contract-form{display:grid;gap:10px;margin-top:18px;padding:14px;background:#eef3f6;border-radius:9px}.client-contract-form h3{margin:0;font-size:15px}.client-contract-form>div{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px}.client-contract-form textarea{min-height:76px}.provider-card{border-left:4px solid #83bd35}@media(max-width:900px){.client-profile-form>div,.client-contract-form>div{grid-template-columns:1fr 1fr}}@media(max-width:600px){.client-reference-head{flex-direction:column}.client-card-actions,.client-reference-head button{width:100%}.client-card-actions button{flex:1 1 130px}.client-profile-form>div,.client-contract-form>div{grid-template-columns:1fr}.client-profile-actions{align-items:stretch;flex-direction:column}.client-profile-actions output{min-width:0}}

/* Interface métier Groupe Keyaïs : retour à une navigation latérale claire. */
header{position:sticky;top:0;z-index:30;min-height:78px;box-shadow:0 18px 40px #061b3524}.brand{display:flex;align-items:center;gap:12px}.brand img{width:142px;height:auto;display:block}.brand span{display:block;max-width:190px;color:#a9d957;letter-spacing:.12em;line-height:1.3}.home-module{margin:0 0 22px;padding:22px;background:linear-gradient(135deg,#061b35,#10364a 58%,#17443b);color:#fff;border:1px solid #35546b;border-radius:18px;box-shadow:0 22px 70px #061b3524}.home-hero{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:24px;align-items:center}.home-hero h2{margin:7px 0 10px;font-size:42px;line-height:1}.home-hero p:not(.eyebrow){max-width:760px;margin:0;color:#d9e6ef;line-height:1.55}.home-hero .eyebrow{color:#a9d957}.home-hero img{width:100%;padding:22px;background:#fff;border-radius:18px;box-shadow:0 18px 40px #00000024}.home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}.home-grid button{display:grid;gap:6px;min-height:118px;padding:16px;text-align:left;background:#ffffff;color:#102d45;border-left:5px solid #83bd35;border-radius:14px;box-shadow:0 12px 32px #061b3520}.home-grid button:nth-child(2){border-left-color:#0a5da5}.home-grid button:nth-child(3){border-left-color:#d1a342}.home-grid button:nth-child(4){border-left-color:#83bd35}.home-grid strong{font-size:18px}.home-grid span{color:#526879;font-size:12px;line-height:1.35}.nav-brand{display:none}.operations-tabs .nav-brand{color:#fff}.operations-tabs .nav-brand img{width:145px;height:auto;display:block}.operations-tabs .nav-brand strong,.operations-tabs .nav-brand span{display:block}.operations-tabs .nav-brand strong{margin-top:14px;font-size:16px}.operations-tabs .nav-brand span{margin-top:3px;color:#a9d957;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}

@media(min-width:980px){body.direction-connected{background:#f1f6f7}body.direction-connected main{max-width:none;padding:22px 24px 34px 320px}body.direction-connected #dashboard> :not(.operations-tabs){max-width:1500px;margin-right:auto;margin-left:auto}body.direction-connected .operations-tabs{position:fixed;top:78px;left:0;bottom:0;z-index:25;width:292px;margin:0;padding:22px 16px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;overflow-x:hidden;background:linear-gradient(165deg,#061b35,#0e2f3a 60%,#123c3b);border:0;border-right:1px solid #1c3d42;border-radius:0;box-shadow:18px 0 45px #061b351f}body.direction-connected .operations-tabs .nav-brand{display:block;margin:0 0 20px;padding:6px 8px 18px;border-bottom:1px solid #ffffff1c}body.direction-connected .operations-tabs button{width:100%;min-height:46px;padding:11px 14px;text-align:left;background:transparent;color:#c3d3de;border:1px solid transparent;border-left:3px solid transparent;border-radius:12px;white-space:normal;font-weight:700;letter-spacing:-.005em;transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}body.direction-connected .operations-tabs button:hover{background:#ffffff14;color:#fff;transform:translateX(2px)}body.direction-connected .operations-tabs button.active{background:linear-gradient(120deg,#ffffff1f,#ffffff0f);color:#fff;border-color:#ffffff16;border-left-color:#9cd43c;box-shadow:inset 0 0 0 1px #83bd3526,0 6px 16px #00000022}body.direction-connected .heading{margin-bottom:18px;padding:16px 18px;background:#fff;border:1px solid #dbe7eb;border-radius:16px;box-shadow:0 12px 34px #061b3511}body.direction-connected .heading h1{font-size:28px}}

@media(max-width:979px){.brand img{width:120px}.home-hero{grid-template-columns:1fr}.home-hero img{max-width:260px}.home-grid{grid-template-columns:1fr 1fr}.operations-tabs .nav-brand{display:none}}

@media(max-width:620px){header{position:relative;align-items:flex-start;gap:12px;flex-direction:column}.brand img{width:116px}.brand span{font-size:8px}.home-module{padding:18px;border-radius:14px}.home-hero h2{font-size:32px}.home-grid{grid-template-columns:1fr}.home-grid button{min-height:96px}}

/* Axe horizontal des sociétés du Groupe. */
.company-switcher{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:16px 18px;background:#fff;border:1px solid #dbe7eb;border-left:5px solid #83bd35;border-radius:16px;box-shadow:0 12px 34px #061b3511}.company-switcher h2{margin:4px 0 4px;font-size:21px}.company-switcher span{display:block;color:#63768a;font-size:12px;line-height:1.4}.company-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.company-tabs button{padding:10px 13px;background:#eef5f7;color:#14384a;border:1px solid #d7e6ea;border-radius:999px;box-shadow:none}.company-tabs button.active{background:#061b35;color:#fff;border-color:#83bd35;box-shadow:inset 0 0 0 2px #83bd35}.company-module-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.company-module-map article{padding:14px;background:#ffffff12;border:1px solid #ffffff24;border-left:4px solid #83bd35;border-radius:13px}.company-module-map strong,.company-module-map span{display:block}.company-module-map span{margin-top:6px;color:#d9e6ef;font-size:12px;line-height:1.45}body[data-company=keyais] .company-switcher{border-left-color:#0a5da5}body[data-company=multi-service] .company-switcher{border-left-color:#795548}body[data-company=detailing] .company-switcher{border-left-color:#d1a342}body[data-company=keyais] .company-tabs button.active{border-color:#0a5da5}body[data-company=multi-service] .company-tabs button.active{border-color:#795548}body[data-company=detailing] .company-tabs button.active{border-color:#d1a342}

.company-switcher{align-items:stretch;flex-wrap:wrap}.company-switcher>div:first-child{display:grid;align-content:center;min-width:240px}.company-cards{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:10px;flex:1}.company-tabs .company-card{display:grid;align-content:start;gap:5px;min-height:138px;padding:14px;text-align:left;background:linear-gradient(180deg,#ffffff,#f5fafb);color:#102d45;border:1px solid #dbe7eb;border-top:4px solid #83bd35;border-radius:16px;box-shadow:0 16px 38px #061b3514;white-space:normal}.company-card span{color:#0a5da5;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.company-card strong{font-size:17px;line-height:1.08}.company-card small{color:#526879;font-size:11px;line-height:1.32}.company-card em{align-self:end;margin-top:6px;color:#173805;font-size:10px;font-style:normal;font-weight:900}.company-tabs .company-card.active{background:linear-gradient(135deg,#061b35,#123c3b);color:#fff;border-color:#83bd35;box-shadow:0 18px 44px #061b3530,inset 0 0 0 1px #83bd3560}.company-card.active span,.company-card.active em{color:#a9d957}.company-card.active small{color:#dbe8ef}.company-tabs .company-card[data-company=keyais]{border-top-color:#0a5da5}.company-tabs .company-card[data-company=multi-service]{border-top-color:#795548}.company-tabs .company-card[data-company=detailing]{border-top-color:#d1a342}
.company-quick-actions{flex:1 0 100%;min-height:0}.company-quick-actions:empty{display:none}.company-quick-actions article{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:6px;padding:13px 14px;background:linear-gradient(135deg,#061b35,#123c3b);color:#fff;border:1px solid #83bd354f;border-left:5px solid #83bd35;border-radius:14px}.company-quick-actions article.detailing{border-left-color:#d1a342}.company-quick-actions span{color:#a9d957;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.company-quick-actions strong{font-size:15px;line-height:1.25}.company-quick-actions div{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.company-quick-actions a,.home-module-link{display:grid;align-content:center;gap:6px;text-decoration:none}.company-quick-actions a{min-height:40px;padding:9px 12px;background:#fff;color:#061b35;border-radius:999px;font-size:12px;font-weight:900}.company-quick-actions a:hover{background:#a9d957;color:#173805}.home-module-link{min-height:118px;padding:16px;text-align:left;background:#ffffff;color:#102d45;border-left:5px solid #d1a342;border-radius:14px;box-shadow:0 12px 32px #061b3520}.home-module-link strong{font-size:18px}.home-module-link span{color:#526879;font-size:12px;line-height:1.35}

@media(max-width:1150px){.company-cards{grid-template-columns:repeat(2,minmax(170px,1fr))}}
@media(max-width:900px){.company-switcher{align-items:flex-start;flex-direction:column}.company-tabs{justify-content:flex-start}.company-module-map{grid-template-columns:1fr}.company-cards{width:100%}}
@media(max-width:620px){.company-cards{grid-template-columns:1fr}.company-tabs .company-card{min-height:112px}}

.company-card b{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;margin-top:3px;padding:7px 10px;background:#a9d957;color:#173805;border-radius:999px;font-size:10px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.06em}
.company-card.active b{background:#fff;color:#061b35}
.company-card.detailing-card{box-shadow:0 18px 44px #d1a34224}
.company-switcher{gap:14px;padding:14px 16px}
.company-cards{grid-template-columns:repeat(4,minmax(190px,1fr));align-items:stretch}
.company-tabs .company-card{min-height:126px;padding:13px 14px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.company-tabs .company-card:hover{transform:translateY(-2px);box-shadow:0 20px 48px #061b3524}
.company-tabs .company-card.detailing-card{cursor:pointer;background:linear-gradient(145deg,#061b35,#123c3b);color:#fff;border-color:#d1a342;border-top-color:#d1a342}
.company-card.detailing-card span,.company-card.detailing-card em{color:#d1a342}
.company-card.detailing-card small{color:#dbe8ef}
.company-card.detailing-card b{background:#d1a342;color:#061b35}
.company-card-note{font-style:normal;font-size:10px;color:#dbe8ef99;letter-spacing:.01em}
.home-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.home-module-link.detailing{border-left-color:#d1a342}

/* Accueil de connexion du logiciel métier. */
.login{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:22px;max-width:1120px;margin:7vh auto;padding:22px;background:linear-gradient(135deg,#061b35,#123c3b);border:1px solid #ffffff1f;border-top:0;border-radius:24px;box-shadow:0 28px 90px #061b3540}.login-welcome{display:grid;align-content:center;gap:12px;padding:24px;color:#fff}.login-welcome img{width:min(310px,70vw);padding:18px;background:#fff;border-radius:18px;box-shadow:0 18px 44px #00000024}.login-welcome .eyebrow{color:#a9d957}.login-welcome h1{max-width:620px;margin:6px 0 0;font-size:clamp(38px,6vw,64px);line-height:.96}.login-welcome p:not(.eyebrow){max-width:610px;margin:0;color:#dbe8ef;font-size:16px;line-height:1.55}.login-company-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.login-company-preview span{padding:8px 11px;background:#ffffff12;border:1px solid #ffffff24;border-radius:999px;color:#fff;font-size:11px;font-weight:900}.login form{align-self:stretch;display:grid;align-content:center;gap:12px;margin-top:0;padding:24px;background:#fff;border-radius:20px;box-shadow:0 18px 60px #00000024}.login form h2{margin:0 0 5px;font-size:26px}.login form button{min-height:48px;background:#83bd35;color:#173805}.login-portal-link{display:inline-flex;justify-content:center;color:#0a5da5;font-size:12px;font-weight:900;text-decoration:none}.login output{background:#eef5f7;color:#526879}

@media(max-width:850px){.login{grid-template-columns:1fr;margin:18px auto}.login-welcome{padding:14px}.login form{padding:18px}.login-welcome h1{font-size:38px}}

/* Page de bienvenue immersive avant connexion. */
body:not(.direction-connected){background:#061b35}body:not(.direction-connected) header{display:none}body:not(.direction-connected) main{max-width:none;min-height:100svh;padding:0}.login{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,430px);align-items:center;gap:34px;min-height:100svh;max-width:none;margin:0;padding:clamp(18px,4vw,56px);overflow:hidden;background:radial-gradient(circle at 18% 20%,#244f52 0,#061b35 38%,#041121 100%);border:0;border-radius:0;box-shadow:none}.welcome-backdrop{position:absolute;inset:0;z-index:-2;overflow:hidden}.welcome-backdrop:before{position:absolute;inset:0;background:linear-gradient(90deg,#061b35 0%,#061b35dd 34%,#061b3570 62%,#061b35e8 100%);content:""}.welcome-backdrop:after{position:absolute;inset:auto -10% -26% -10%;height:46%;background:radial-gradient(ellipse,#9cd43c38 0,#0a5da522 34%,transparent 70%);filter:blur(12px);content:""}.welcome-company{position:absolute;display:grid;align-content:end;gap:7px;width:310px;height:390px;padding:22px;background:linear-gradient(160deg,#ffffff16,#ffffff06);border:1px solid #ffffff24;border-radius:28px;box-shadow:0 34px 100px #00000045;backdrop-filter:blur(8px);animation:company-float 16s ease-in-out infinite}.welcome-company img{width:190px;max-height:88px;object-fit:contain;filter:drop-shadow(0 10px 18px #00000055)}.welcome-company span{color:#a9d957;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.welcome-company strong{color:#fff;font-size:28px;line-height:1.02}.welcome-company.group{right:7%;top:8%;border-top:5px solid #83bd35;animation-delay:-1s}.welcome-company.keyais{right:31%;bottom:9%;border-top:5px solid #0a5da5;animation-delay:-5s}.welcome-company.multiservice{right:-4%;bottom:13%;border-top:5px solid #795548;animation-delay:-8s}.welcome-company.detailing{right:22%;top:45%;border-top:5px solid #d1a342;animation-delay:-11s}.welcome-overlay{max-width:690px;color:#fff}.welcome-overlay .eyebrow{color:#a9d957;font-size:13px;letter-spacing:.18em}.welcome-overlay h1{margin:10px 0 12px;font-family:Regatto,serif;font-size:clamp(62px,10vw,132px);font-weight:400;line-height:.82;text-shadow:0 18px 50px #00000055}.welcome-overlay p:not(.eyebrow){margin:0;color:#d9e8ef;font-size:clamp(18px,2.4vw,30px);font-weight:800;letter-spacing:.03em}.login form{position:relative;z-index:2;align-self:center;display:grid;gap:13px;margin:0;padding:28px;background:#fffffff2;border:1px solid #ffffff80;border-radius:24px;box-shadow:0 28px 90px #00000045;backdrop-filter:blur(12px)}.login form img{width:220px;margin:0 auto 6px;padding:12px;background:#fff;border-radius:16px;box-shadow:0 10px 28px #061b3520}.login form h2{margin:0;font-size:28px;line-height:1.05}.login-intro{margin:0;color:#526879;font-size:13px;line-height:1.42}.login form button{min-height:50px;background:#83bd35;color:#173805}.login-portal-link{display:inline-flex;justify-content:center;color:#0a5da5;font-size:12px;font-weight:900;text-decoration:none}.login output{background:#eef5f7;color:#526879}
@keyframes company-float{0%,100%{transform:translate3d(0,0,0) rotate(-2deg);opacity:.72}50%{transform:translate3d(-18px,-22px,0) rotate(2deg);opacity:1}}
@media(max-width:920px){.login{grid-template-columns:1fr;align-content:center}.welcome-overlay{max-width:560px}.welcome-company{opacity:.42}.welcome-company.group{right:-70px;top:2%}.welcome-company.keyais{right:30%;bottom:1%}.welcome-company.multiservice{display:none}.welcome-company.detailing{right:-55px;top:45%}.login form{width:min(430px,100%)}}
@media(max-width:620px){.login{padding:18px}.welcome-overlay h1{font-size:58px}.welcome-overlay p:not(.eyebrow){font-size:17px}.welcome-company{width:230px;height:300px;border-radius:22px}.welcome-company img{width:145px}.welcome-company strong{font-size:22px}.login form{padding:20px}.login form img{width:185px}}

/* Bienvenue direction : marque uniquement, sans liste de modules avant connexion. */
body:not(.direction-connected) .welcome-company span{color:#fff;font-family:Regatto,Georgia,serif;font-size:36px;font-weight:400;line-height:.9;text-transform:none;letter-spacing:0;text-shadow:0 12px 28px #00000055}
body:not(.direction-connected) .welcome-company strong{color:#a9d957;font-family:Arial,sans-serif;font-size:12px;font-weight:900;line-height:1.15;text-transform:uppercase;letter-spacing:.12em}
body:not(.direction-connected) .welcome-overlay h1,
body:not(.direction-connected) .login form h2{font-family:Regatto,Georgia,serif;font-weight:400;letter-spacing:0}
body:not(.direction-connected) .login form h2{font-size:42px;line-height:.9;color:#061b35}
@media(max-width:620px){body:not(.direction-connected) .welcome-company span{font-size:28px}body:not(.direction-connected) .welcome-company strong{font-size:10px}body:not(.direction-connected) .login form h2{font-size:34px}}

/* Version lisible : accueil sans superposition ni modules visibles. */
body:not(.direction-connected) .login{grid-template-columns:minmax(420px,680px) minmax(360px,460px);justify-content:center;gap:clamp(28px,6vw,96px);padding:clamp(22px,5vw,72px)}
body:not(.direction-connected) .welcome-backdrop{background:radial-gradient(circle at 78% 22%,#83bd3533 0,#0a5da522 26%,transparent 48%),radial-gradient(circle at 18% 18%,#ffffff18 0,transparent 34%),linear-gradient(135deg,#061b35 0,#0b2740 48%,#153b38 100%)}
body:not(.direction-connected) .welcome-backdrop:before{background:linear-gradient(90deg,#061b35f0 0,#061b35c8 48%,#061b3588 100%)}
body:not(.direction-connected) .welcome-backdrop:after{inset:auto 8% 8% 8%;height:2px;background:linear-gradient(90deg,transparent,#83bd35,#0a5da5,transparent);filter:blur(1px)}
body:not(.direction-connected) .welcome-company{display:none}
body:not(.direction-connected) .welcome-overlay{max-width:680px;padding:0;color:#fff}
body:not(.direction-connected) .welcome-overlay h1{font-size:clamp(74px,8vw,128px);line-height:.78}
body:not(.direction-connected) .welcome-overlay p:not(.eyebrow){max-width:560px;font-size:clamp(20px,2.2vw,34px);font-weight:900}
body:not(.direction-connected) .login form{width:100%;max-width:460px;padding:34px;border-radius:26px}
body:not(.direction-connected) .login form img{width:min(230px,74%);max-height:110px;object-fit:contain}
body:not(.direction-connected) .login form h2{font-size:44px}
@media(max-width:980px){body:not(.direction-connected) .login{grid-template-columns:1fr;align-content:center;gap:24px}body:not(.direction-connected) .welcome-overlay{max-width:620px}body:not(.direction-connected) .login form{max-width:520px}}
@media(max-width:620px){body:not(.direction-connected) .login{padding:18px}body:not(.direction-connected) .welcome-overlay h1{font-size:58px}body:not(.direction-connected) .welcome-overlay p:not(.eyebrow){font-size:19px}body:not(.direction-connected) .login form{padding:22px;border-radius:20px}body:not(.direction-connected) .login form h2{font-size:34px}}

/* Lecture plus moderne : le logo porte la typographie Keyaïs, les textes restent nets. */
body:not(.direction-connected) .welcome-overlay h1,
body:not(.direction-connected) .login form h2{font-family:Arial,sans-serif;font-weight:900;letter-spacing:0}
body:not(.direction-connected) .welcome-overlay h1{font-size:clamp(58px,7vw,104px);line-height:.92}
body:not(.direction-connected) .login form h2{font-size:34px;line-height:1.06}
body:not(.direction-connected) .login form img{width:min(255px,82%)}
body:not(.direction-connected) *{animation:none!important;transition:none!important}
@media(max-width:620px){body:not(.direction-connected) .welcome-overlay h1{font-size:42px}body:not(.direction-connected) .login form h2{font-size:28px}}

/* Planning façon Skello, avec lecture Keyaïs. */
.planning-week-browser{padding:12px;background:#f4f7f8;border:1px solid #dbe7eb;border-radius:16px}
.planning-view-toolbar{align-items:center;background:#fff;border-radius:14px;box-shadow:0 10px 26px #061b3510}
.planning-control-panel{background:#fff;border-radius:14px;box-shadow:0 10px 26px #061b350b}
.planning-control-actions{justify-content:flex-start}
.planning-publish-box{padding-top:9px;border-top:1px solid #e2ebef}
.planning-preview-grid{display:block;overflow-x:auto;border-radius:14px}
.skello-planning-board{min-width:1220px;overflow:hidden;background:#fff;border:1px solid #d7e3e8;border-radius:14px;box-shadow:0 14px 36px #061b3512}
.skello-row{display:grid;grid-template-columns:245px repeat(7,minmax(136px,1fr)) 95px;min-height:92px;border-bottom:1px solid #e4edf1}
.skello-row:last-child{border-bottom:0}
.skello-head{position:sticky;top:0;z-index:5;min-height:58px;background:#f7fafb}
.skello-head .skello-employee-cell,.skello-head .skello-total-cell{background:#f7fafb;color:#102d45}
.skello-day-head{display:grid;align-content:center;gap:2px;padding:10px;border-right:1px solid #e4edf1;text-transform:capitalize}
/* Cadenas par colonne jour (2026-07-20) : signale au niveau de chaque colonne, en plus du
   bandeau global #planningLockBanner, quelle journée précise est verrouillée pour la paie. */
.skello-day-head.locked{background:#fdf3e7}
.planning-day-lock-icon{font-size:11px}
/* Zoom du planning (2026-07-20, cahier des charges priorité Basse, 25%-175%) : appliqué via la
   propriété CSS zoom sur #planningWeekBrowser (voir applyPlanningZoom dans direction-operations.js),
   persisté en localStorage. */
.planning-zoom-control{display:flex;align-items:center;gap:6px;font-size:11px}
.planning-zoom-control input[type=range]{width:110px}
.planning-zoom-control span{min-width:36px;font-weight:800;color:#29445a}
/* Panneau d'options d'affichage (2026-07-20) : jours visibles, anniversaires, shifts non
   assignés - regroupés dans une modale dédiée plutôt que dispersés, mémorisés en localStorage. */
.planning-display-options{display:grid;gap:14px}
.planning-display-options fieldset{margin:0;padding:0;border:0}
.planning-display-options legend{padding:0 0 6px;font-size:12px;font-weight:800;color:#63768a;text-transform:uppercase}
.planning-display-days{display:flex;flex-wrap:wrap;gap:8px}
.planning-display-days label{display:flex;align-items:center;gap:5px;padding:7px 10px;background:#f5f8fa;border-radius:8px;font-size:12px;font-weight:700}
.planning-birthday-badge{font-size:11px}
/* Pièces jointes sur un shift (2026-07-20, cahier des charges priorité Basse, 6 fichiers max,
   10 Mo chacun) : liste compacte avec taille et bouton de suppression, voir
   renderPlanningShiftAttachments() dans direction-operations.js. */
.planning-attachment-list{grid-column:1/-1;display:grid;gap:6px}
.planning-attachment-list:empty{display:none}
.planning-attachment-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;background:#f5f8fa;border-radius:8px;font-size:11px}
.planning-attachment-item span{color:#63768a}
.planning-attachment-item button{padding:5px 8px;font-size:10px;background:#dce6ed;color:#29445a}
.skello-day-head strong{font-size:13px}.skello-day-head span{color:#63768a;font-size:11px;font-weight:800}
.skello-employee-cell{position:sticky;left:0;z-index:4;display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-right:1px solid #dbe7eb}
.skello-employee-cell strong,.skello-employee-cell span{display:block}
.skello-employee-cell strong{font-size:13px;line-height:1.15}.skello-employee-cell span{margin-top:3px;color:#63768a;font-size:10px;line-height:1.25}
.skello-avatar{display:grid!important;place-items:center;flex:0 0 auto;width:38px;height:38px;margin:0!important;background:#eaf2f8!important;color:#0a5da5!important;border-radius:999px;font-size:13px!important;font-weight:900!important}
.skello-day-cell{min-height:92px;padding:8px;background:#fff;border-right:1px solid #edf2f5}
.skello-day-cell:hover{background:#fbfff6;box-shadow:inset 0 0 0 2px #83bd3555}
.skello-total-cell{display:grid;place-items:center;padding:9px;background:#fbfdfe;color:#102d45;border-left:1px solid #dbe7eb;font-weight:900;text-align:center}
.skello-total-cell strong{font-size:15px}.skello-footer{min-height:52px;background:#f7fafb}.skello-footer .skello-employee-cell,.skello-footer .skello-total-cell{background:#f7fafb}
.skello-day-total{display:grid;place-items:center;padding:9px;color:#526879;border-right:1px solid #e4edf1;font-size:12px;font-weight:900}
.skello-shift{margin:0 0 6px;padding:7px 8px;border-radius:7px;box-shadow:0 7px 16px #061b3514}
.skello-shift:last-child{margin-bottom:0}.skello-shift strong{font-size:11px;line-height:1.1}.skello-shift span{color:#1d394b;font-size:10px;font-weight:900}.skello-shift small{color:#526879;font-size:9px;line-height:1.25}
.planning-preview-shift.complete{background:#fff1df;border-left-color:#e58a25}
.planning-preview-shift.simple{background:#eaf8ef;border-left-color:#2e8b57}
.planning-preview-shift.exterior{background:#eaf4ff;border-left-color:#1976d2}
.planning-preview-shift.multiservice{background:#f1e7e2;border-left-color:#795548}
.planning-preview-shift.transport{background:#fff0f7;border-left-color:#e85b9e}
.planning-empty-day{display:grid;place-items:center;min-height:44px;color:#afbdc6;font-weight:900}
.skello-day-board{min-width:760px;padding:12px;background:#fff;border:1px solid #d7e3e8;border-radius:14px;box-shadow:0 14px 36px #061b3512}
.skello-day-rows{display:grid;gap:8px;margin-top:10px}
.skello-day-row{display:grid;grid-template-columns:245px minmax(0,1fr) 95px;min-height:76px;background:#f9fbfc;border:1px solid #e4edf1;border-radius:12px;overflow:hidden}
.skello-day-row .skello-employee-cell{position:relative;background:#fff}
.skello-day-line{display:flex;align-items:flex-start;gap:7px;min-width:0;padding:8px;overflow-x:auto}
.skello-day-line .skello-shift{min-width:180px}
.planning-month-view{background:#fff;border:1px solid #d7e3e8;border-radius:14px;box-shadow:0 14px 36px #061b3512}
.planning-month-day{border:1px solid #e4edf1;border-radius:9px}
.planning-context-menu,.planning-drop-menu{position:fixed;z-index:80;display:grid;gap:2px;width:245px;padding:10px;background:#fff;border:1px solid #dbe7eb;border-radius:14px;box-shadow:0 22px 70px #061b3533}
.planning-context-menu button,.planning-drop-menu button{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:40px;padding:8px 10px;text-align:left;background:transparent;color:#102d45;border-radius:10px;font-weight:800}
.planning-context-menu button:hover,.planning-drop-menu button:hover{background:#eef5f7}
.planning-context-menu button:disabled{opacity:.45;cursor:not-allowed}.planning-context-menu button:disabled:hover{background:transparent}
.planning-context-menu button span{display:grid;place-items:center;color:#0a5da5;font-size:18px;font-weight:900}
.planning-context-menu button small{padding:4px 6px;background:#eef3f6;color:#63768a;border-radius:6px;font-size:10px;font-weight:900}
.planning-context-menu button.danger{color:#b84d42}.planning-context-menu button.danger span{color:#b84d42}
.planning-context-menu-separator{grid-column:1/-1;width:100%;height:1px;margin:4px 0;border:0;background:#e1e9ed}
.planning-drop-menu{width:190px;grid-template-columns:1fr;padding:8px}.planning-drop-menu button{display:block;text-align:center;background:#eef5f7}.planning-drop-menu button:hover{background:#83bd35;color:#173805}
.skello-shift.dragging{opacity:.55;outline:2px solid #83bd35}.skello-day-cell.drop-target,.planning-month-day.drop-target,.skello-day-board.drop-target{background:#f7ffe9;box-shadow:inset 0 0 0 3px #83bd3588}
.skello-day-cell,.planning-month-day,.skello-day-board{position:relative}
.planning-drop-choice{position:absolute;inset:8px;z-index:20;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;background:#fff;border:2px solid #2f6af6;border-radius:8px;box-shadow:0 18px 45px #061b3530}
.planning-drop-choice button{display:grid;place-items:center;min-height:100%;padding:0;background:#fff;color:#1f5bdc;border:0;border-radius:0;font-size:13px;font-weight:900}
.planning-drop-choice button[data-drop-action="move"]{background:#2f6af6;color:#fff}
.planning-drop-choice button:hover{filter:brightness(.96)}
.planning-drop-choice.floating{position:fixed;inset:auto;width:210px;height:96px}
.planning-publish-main{margin-left:auto;background:#0a5da5;color:#fff}
.planning-publish-modal{display:grid;grid-template-columns:1fr 1fr;gap:13px;width:min(740px,100%);max-height:92vh;overflow:auto;margin:0;padding:20px;background:#fff;border:1px solid #d3dee6;border-top:5px solid #0a5da5;border-radius:18px;box-shadow:0 28px 80px #061b3566}
.planning-publish-modal .planning-modal-heading,.planning-publish-modal .planning-publish-info,.planning-publish-modal .planning-publish-summary,.planning-publish-modal .planning-modal-actions{grid-column:1/-1}
.planning-publish-info{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px;background:#f8fbfd;border:1px solid #dbe7eb;border-radius:12px;color:#29445a}
.planning-publish-info:before{display:grid;place-items:center;width:28px;height:28px;background:#0a5da5;color:#fff;border-radius:999px;font-weight:900;content:"i"}
.planning-publish-info strong{display:none}.planning-publish-info span{line-height:1.45}
.planning-publish-summary{margin:0;color:#526879;font-weight:800}
.planning-switch{display:flex!important;align-items:center;justify-content:space-between;gap:14px;min-height:48px;padding:10px 12px;background:#f8fbfd;border:1px solid #dbe7eb;border-radius:12px;color:#102d45}
.planning-switch input{position:relative;width:52px;height:30px;flex:0 0 auto;appearance:none;background:#c7d7e2;border:0;border-radius:999px;cursor:pointer}
.planning-switch input:before{position:absolute;top:4px;left:4px;width:22px;height:22px;background:#fff;border-radius:999px;box-shadow:0 3px 8px #061b3522;content:"";transition:transform .15s ease}
.planning-switch input:checked{background:#2f6af6}.planning-switch input:checked:before{transform:translateX(22px)}
.planning-publish-modal textarea{min-height:64px;background:#f5f8fa}
@media(max-width:720px){.planning-publish-modal{grid-template-columns:1fr}.planning-publish-main{margin-left:0}}
@media(max-width:900px){.skello-row{grid-template-columns:210px repeat(7,136px) 82px}.skello-day-row{grid-template-columns:210px minmax(0,1fr) 82px}.skello-employee-cell{padding:9px}.skello-avatar{width:34px;height:34px}.planning-control-actions,.planning-publish-box{display:grid;grid-template-columns:1fr 1fr}.planning-publish-box label{flex:auto}}

.detailing-module{margin:0 0 22px;padding:20px;background:#fff;border:1px solid #c7d7e2;border-top:5px solid #d1a342;border-radius:8px}
.detailing-module-frame{display:block;width:100%;height:calc(100vh - 220px);min-height:640px;margin-top:14px;border:0;border-radius:12px;background:#061b35}
@media(max-width:620px){.planning-view-switch,.planning-view-toolbar .planning-browser-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.planning-view-switch button:last-child,.planning-view-toolbar .planning-browser-actions button:last-child{grid-column:1/-1}.planning-control-actions,.planning-publish-box{grid-template-columns:1fr}.skello-day-board{min-width:680px}}

/* Impression / export PDF du planning (2026-07-20) : #planningPrintHeader n'apparaît qu'à
   l'impression (window.print(), voir #printPlanningView dans direction-operations.js) ; tout le
   reste de la page (nav, filtres, modales, autres sections) est masqué pour ne conserver que
   l'en-tête imprimé et la grille de planning affichée (#planningWeekBrowser). */
.planning-print-header{display:none}
@media print{
  body *{visibility:hidden}
  #planningPrintHeader,#planningPrintHeader *,#planningWeekBrowser,#planningWeekBrowser *{visibility:visible}
  #planningPrintHeader{display:flex;align-items:center;gap:14px;position:absolute;top:0;left:0;width:100%;padding:0 0 14px;border-bottom:2px solid #061b35;margin-bottom:14px}
  #planningPrintHeader img{height:40px}
  #planningPrintHeader h2{margin:0;font-size:18px;color:#061b35}
  #planningPrintHeader span{color:#526879;font-size:12px}
  #planningWeekBrowser{position:absolute;top:80px;left:0;width:100%}
  .skello-row,.skello-day-row{break-inside:avoid}
  .planning-ai-bubble,.planning-lock-banner{display:none!important}
}

/* ==========================================================================
   Refonte visuelle "premium" du module Planning (2026-07-23)
   Tout est scopé sous .planning-agent (qui englobe Planning/Missions/Rapport/
   Badgeuse et toutes leurs modales, cf. direction-operations.html) pour ne
   rien changer ailleurs dans l'app - demande explicite du 20/07 : moderniser
   le planning en priorité, laisser les autres modules tels quels pour l'instant.
   Palette de marque conservée (bleu marine #061b35, vert #83bd35, bleu
   #0a5da5) ; ce qui change : typographie système, ombres à deux niveaux plus
   douces, coins plus arrondis, micro-interactions (hover/active/focus) sur
   les boutons et cartes, dégradés discrets sur les éléments d'action.
   ========================================================================== */
.planning-agent{
  --pv-ink:#0f2438;
  --pv-ink-soft:#5b6b7d;
  --pv-line:#e6ebef;
  --pv-line-soft:#eef2f5;
  --pv-surface:#fff;
  --pv-shadow-xs:0 1px 2px rgba(15,36,56,.06);
  --pv-shadow-sm:0 8px 20px rgba(15,36,56,.08);
  --pv-shadow-md:0 16px 36px rgba(15,36,56,.1);
  --pv-shadow-lg:0 30px 70px rgba(15,36,56,.16);
  --pv-ease:cubic-bezier(.2,.7,.3,1);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  letter-spacing:-.005em;
  color:var(--pv-ink);
}
.planning-agent button,.planning-agent input,.planning-agent select,.planning-agent textarea{font-family:inherit}
.planning-agent ::-webkit-scrollbar{width:10px;height:10px}
.planning-agent ::-webkit-scrollbar-track{background:transparent}
.planning-agent ::-webkit-scrollbar-thumb{background:#c7d4de;border-radius:999px;border:2px solid #f5f8fa}
.planning-agent ::-webkit-scrollbar-thumb:hover{background:#aebfcc}

/* Boutons : élévation douce + micro-interaction au survol/clic, plutôt que le
   flat instantané précédent. S'applique à tous les boutons du module (base
   bleue, secondary-button, publish-button, danger-button, etc.). */
.planning-agent button{border-radius:11px;font-weight:700;box-shadow:var(--pv-shadow-xs);transition:transform .16s var(--pv-ease),box-shadow .16s var(--pv-ease),background-color .16s var(--pv-ease),border-color .16s var(--pv-ease),opacity .16s var(--pv-ease)}
.planning-agent button:hover{transform:translateY(-1px);box-shadow:var(--pv-shadow-sm)}
.planning-agent button:active{transform:translateY(0);box-shadow:var(--pv-shadow-xs)}
.planning-agent button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.planning-agent button:focus-visible{outline:2px solid #0a5da5;outline-offset:2px}
.planning-agent .secondary-button{background:#fff;color:#33495e;border:1px solid var(--pv-line);box-shadow:var(--pv-shadow-xs)}
.planning-agent .secondary-button:hover{background:#f7fafc;border-color:#c9d6e0}
.planning-agent .publish-button{background:linear-gradient(135deg,#93cf42,#6da62a);color:#173805;box-shadow:0 10px 22px rgba(109,166,42,.3)}
.planning-agent .publish-button:hover{box-shadow:0 16px 32px rgba(109,166,42,.38)}
.planning-agent .danger-button{background:linear-gradient(135deg,#d9685c,#b8453a);color:#fff;box-shadow:0 10px 22px rgba(184,77,66,.26)}
.planning-agent .danger-button:hover{box-shadow:0 16px 32px rgba(184,77,66,.34)}
.planning-agent .planning-publish-main{background:linear-gradient(135deg,#2472c9,#0a5da5);box-shadow:0 10px 22px rgba(10,93,165,.3)}
.planning-agent .planning-publish-main:hover{box-shadow:0 16px 32px rgba(10,93,165,.38)}
.planning-agent .planning-agent-main-button{box-shadow:0 10px 26px rgba(6,27,53,.3)}
.planning-agent .planning-link-button{box-shadow:none;transform:none}
.planning-agent .planning-link-button:hover{transform:none;box-shadow:none}
.planning-agent input,.planning-agent select,.planning-agent textarea{border-color:var(--pv-line);transition:border-color .15s ease,box-shadow .15s ease}
.planning-agent input:focus,.planning-agent select:focus,.planning-agent textarea:focus{outline:0;border-color:#0a5da5;box-shadow:0 0 0 3px rgba(10,93,165,.14)}

/* Barre d'onglets Planning / Missions / Rapport / Badgeuse : pilule active en
   dégradé marine avec liseré vert, transition douce plutôt que bascule sèche. */
.planning-agent .planning-workspace-bar{border-radius:16px;background:#fff;border-color:var(--pv-line);box-shadow:var(--pv-shadow-sm)}
.planning-agent .planning-workspace-bar button{border-radius:11px;letter-spacing:-.005em}
.planning-agent .planning-workspace-bar button.active{background:linear-gradient(135deg,#0d2745,#061b35);box-shadow:inset 0 -3px 0 #83bd35,0 8px 18px rgba(6,27,53,.3)}

/* Barres d'outils et panneaux de contrôle : coins plus généreux, ombre à deux
   niveaux (bord net + halo diffus) pour un effet de profondeur plus doux que
   le simple box-shadow plat précédent. */
.planning-agent .planning-view-toolbar,.planning-agent .planning-control-panel{border-radius:16px;border-color:var(--pv-line);box-shadow:var(--pv-shadow-xs),0 16px 32px rgba(15,36,56,.05)}
.planning-agent .planning-view-switch button{border-radius:10px;font-weight:700}
.planning-agent .planning-view-switch button:hover{background:#e4eef1}
.planning-agent .planning-view-switch button.active{background:linear-gradient(135deg,#0d2745,#061b35);box-shadow:inset 0 -3px 0 #83bd35,0 6px 14px rgba(6,27,53,.24)}
.planning-agent .planning-check{border-radius:10px;transition:border-color .15s ease}
.planning-agent .planning-zoom-control{padding:6px 10px;background:#f6f9fb;border:1px solid var(--pv-line);border-radius:999px}
.planning-agent .planning-zoom-control input[type=range]{accent-color:#0a5da5}

/* Barre d'actions du planning (2026-07-23) : la version précédente alignait 12 boutons de même
   poids visuel (dont 4 en couleur pleine - vert, marine, bleu, rouge) sur une seule ligne, jugée
   "chargée et confuse" en test utilisateur. Reclassée en 5 groupes logiques (historique local /
   construire / assistant / suivi-export / publication), séparés par un fin trait vertical, avec
   une seule couleur pleine dominante (Publier, l'action de clôture) - le reste repasse en style
   secondaire neutre ou en teinte douce plutôt qu'en aplat saturé. Groupes en HTML uniquement pour
   le regroupement visuel : chaque bouton garde son id propre, aucun handler JS n'en dépend. */
.planning-agent .planning-control-actions{align-items:center;row-gap:12px}
.planning-agent .planning-action-group{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding-left:14px;border-left:1px solid var(--pv-line)}
.planning-agent .planning-action-group:first-child{padding-left:0;border-left:0}
.planning-agent .planning-action-group-end{margin-left:auto}
/* "Vérifier ma structure" : teinte douce plutôt que vert plein - c'est un contrôle assistant, pas
   l'action principale de l'écran (qui reste "Publier le planning" ci-dessous). */
.planning-agent .planning-assist-button{background:#eef8e1;color:#3f6b1a;border:1px solid #cbe6a4;box-shadow:none}
.planning-agent .planning-assist-button:hover{background:#e3f3d1;border-color:#b7dc8a}
/* "Effacer les shifts de la semaine" : action destructive mais rare - contour rouge plutôt
   qu'aplat plein, pour ne plus tirer l'œil autant qu'un bouton d'action courante. */
.planning-agent .planning-control-actions .danger-button{background:#fff;color:#b8453a;border:1px solid #eabab3;box-shadow:none}
.planning-agent .planning-control-actions .danger-button:hover{background:#fdf1ef;border-color:#e3968c;box-shadow:none}
@media(max-width:900px){.planning-agent .planning-action-group{padding-left:0;border-left:0;flex:1 1 100%}.planning-agent .planning-action-group-end{margin-left:0}}

/* Grille du planning : carte globale plus flottante, en-tête légèrement
   dégradé, lignes/jour avec transition au survol, cartes de shift avec
   élévation et léger effet de "lift" au survol (comme les outils modernes
   de planification type Linear/Notion), plutôt que la carte plate d'origine. */
.planning-agent .skello-planning-board,.planning-agent .skello-day-board,.planning-agent .planning-month-view{border-radius:18px;border-color:var(--pv-line);box-shadow:var(--pv-shadow-xs),0 24px 56px rgba(15,36,56,.09)}
.planning-agent .skello-head{background:linear-gradient(180deg,#fcfdfe,#f4f8f9)}
.planning-agent .skello-head .skello-employee-cell,.planning-agent .skello-head .skello-total-cell{background:transparent}
.planning-agent .skello-footer .skello-employee-cell,.planning-agent .skello-footer .skello-total-cell{background:transparent}
.planning-agent .skello-footer{background:linear-gradient(0deg,#fcfdfe,#f6f9fa)}
.planning-agent .skello-day-cell{transition:background-color .15s ease,box-shadow .15s ease}
.planning-agent .skello-day-row{transition:box-shadow .15s ease}
.planning-agent .skello-day-row:hover{box-shadow:0 10px 24px rgba(15,36,56,.08)}
.planning-agent .skello-avatar{box-shadow:inset 0 0 0 1px rgba(10,93,165,.14)}
.planning-agent .skello-shift{border-radius:10px;border-left-width:4px;box-shadow:0 2px 6px rgba(15,36,56,.09);transition:transform .15s var(--pv-ease),box-shadow .15s var(--pv-ease)}
.planning-agent .skello-shift:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(15,36,56,.18);position:relative;z-index:3}
.planning-agent .skello-day-headcount{box-shadow:var(--pv-shadow-xs)}

/* Multi-sélection de shifts (2026-07-23, Cmd/Ctrl+clic) : liseré vert et léger fond teinté sur
   chaque carte sélectionnée, pour rester lisible même quand plusieurs cartes se suivent dans une
   même case (cf. capture utilisateur : plusieurs shifts empilés dans une case Mardi). */
.planning-agent .skello-shift.planning-shift-selected{outline:2px solid #6da62a;outline-offset:-1px;background-color:#f4faec}

.planning-agent .planning-shift-selected{position:relative;z-index:2}

/* Simplification copier-coller (2026-07-23) : toast de confirmation + bandeau "presse-papiers
   armé" (voir showPlanningToast/updatePlanningClipboardBanner en JS), tous deux ajoutés à
   document.body donc hors de .planning-agent - comme le menu contextuel, sans risque puisque ces
   classes sont propres au module Planning. Le curseur "copy" sur les cases du planning tant que le
   bandeau est visible rend explicite qu'un simple clic va coller. */
.planning-toast{position:fixed;left:50%;bottom:88px;z-index:96;padding:10px 20px;background:#0d2745;color:#fff;border-radius:999px;font-size:13px;font-weight:700;box-shadow:0 16px 40px rgba(6,27,53,.35);opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.planning-toast.visible{opacity:1;transform:translate(-50%,0)}
.planning-clipboard-banner{position:fixed;left:50%;bottom:28px;z-index:94;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 18px;background:#fff;color:#102d45;border:1px solid #cbe6a4;border-radius:999px;box-shadow:0 20px 50px rgba(6,27,53,.22);font-size:12.5px;font-weight:700;transform:translateX(-50%)}
.planning-clipboard-banner button{min-height:32px;padding:0 14px;background:#eef8e1;color:#3f6b1a;border:1px solid #cbe6a4;border-radius:999px;font-size:12px;font-weight:700}
.planning-clipboard-banner button:hover{background:#e3f3d1}
.planning-agent #planningWeekBrowser.planning-paste-armed .skello-day-cell{cursor:copy}
.planning-agent #planningWeekBrowser.planning-paste-armed .skello-day-cell:hover{background:#f7ffe9;box-shadow:inset 0 0 0 2px rgba(131,189,53,.35)}
@media(max-width:640px){.planning-toast,.planning-clipboard-banner{left:12px;right:12px;transform:none;width:auto}.planning-clipboard-banner{flex-wrap:wrap}}

/* Lignes collaborateurs réordonnables (2026-07-23) : poignée de glisser-déposer visible au survol,
   retour visuel pendant le déplacement (ligne source atténuée, ligne cible surlignée) - remplace
   l'ancien regroupement statique par équipe. */
.planning-agent .skello-row[data-planning-employee-id]{cursor:default}
.planning-agent .planning-row-drag-handle{flex:0 0 auto;width:14px;color:#9fb2c2;font-size:13px;line-height:1;letter-spacing:-2px;cursor:grab;opacity:0;transition:opacity .15s ease,color .15s ease}
.planning-agent .skello-row[data-planning-employee-id]:hover .planning-row-drag-handle{opacity:1}
.planning-agent .planning-row-drag-handle:hover{color:#0a5da5}
/* Dupliquer vers d'autres collaborateurs (2026-07-23) : icône ⧉ discrète, visible au survol de la
   ligne comme la poignée de glisser-déposer ci-dessus, pour ne pas surcharger l'en-tête de ligne
   en permanence. */
.planning-agent .planning-row-duplicate-button{flex:0 0 auto;margin-left:auto;width:26px;height:26px;padding:0;background:transparent;color:#9fb2c2;border:0;border-radius:8px;font-size:14px;box-shadow:none;opacity:0;transition:opacity .15s ease,color .15s ease,background-color .15s ease}
.planning-agent .skello-row[data-planning-employee-id]:hover .planning-row-duplicate-button{opacity:1}
.planning-agent .planning-row-duplicate-button:hover{color:#0a5da5;background:#eaf2f8;transform:none;box-shadow:none}
.planning-agent .skello-row.dragging-row{opacity:.5}
.planning-agent .skello-row.drop-target-row{box-shadow:inset 0 3px 0 #83bd35,inset 0 -3px 0 #83bd35;background:#f7ffe9}

/* Bandeaux d'état (publication, verrouillage paie) et badges jour : pilules
   nettes avec un soupçon de relief plutôt que des aplats sans profondeur. */
.planning-agent #planningPublicationStatus.planning-publication-status{box-shadow:var(--pv-shadow-xs)}
.planning-agent .planning-lock-banner{border-radius:12px;box-shadow:var(--pv-shadow-xs)}
.planning-agent .skello-day-head.locked{border-radius:0}

/* Modales (shift, publication, historique, totaux collaborateurs, options
   d'affichage, agent IA) : profondeur plus marquée pour bien les détacher du
   fond, flou d'arrière-plan renforcé. */
.planning-agent .planning-shift-modal{background:rgba(6,27,53,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.planning-agent .planning-shift-form,.planning-agent .planning-modal-card,.planning-agent .planning-publish-modal{border-radius:20px;box-shadow:var(--pv-shadow-lg)}
.planning-agent .planning-tab-button{border-radius:10px;transition:background-color .15s ease,color .15s ease}
.planning-agent .planning-tab-button.active{box-shadow:0 6px 14px rgba(6,27,53,.22)}
/* .planning-context-menu / .planning-drop-menu sont déplacés vers document.body en JS
   (ensurePlanningFloatingMenu) - hors de .planning-agent, donc réglages non scopés ici. Sans
   risque : ces deux classes sont exclusives au module Planning, jamais réutilisées ailleurs. */
.planning-context-menu,.planning-drop-menu{border-radius:16px;box-shadow:0 30px 70px rgba(15,36,56,.16)}

/* Raffinement inspiré de Skello (2026-07-23, retour utilisateur sur capture d'écran) : leurs
   boutons sont plus petits/discrets (32-34px, poids de police moyen, peu de couleur pleine) et la
   page respire davantage (marges généreuses, peu de bordures dures). On resserre donc l'échelle
   des boutons/champs et on allège les poids de police du module Planning, sans rien retirer
   fonctionnellement - seule l'ampleur visuelle change. */
.planning-agent button{padding:9px 13px;font-size:12.5px;font-weight:600;letter-spacing:0}
.planning-agent .planning-view-switch button,
.planning-agent .planning-view-toolbar .planning-browser-actions button,
.planning-agent .planning-control-actions button,
.planning-agent .planning-check,
.planning-agent .planning-tab-button{min-height:33px;padding:0 12px;font-size:12px;font-weight:600}
.planning-agent .planning-workspace-bar button{min-height:37px;font-size:12.5px;font-weight:600}
.planning-agent .planning-filters input,.planning-agent .planning-filters select,
.planning-agent .planning-view-toolbar input{min-height:33px;padding:0 10px;font-size:12.5px}
.planning-agent .publish-button,.planning-agent .danger-button,.planning-agent .planning-publish-main{font-weight:700}
.planning-agent .planning-modal-heading h3{font-size:19px;font-weight:700}
.planning-agent label{font-weight:600;font-size:11px;letter-spacing:.01em;color:#5c7186}
.planning-agent .eyebrow{font-weight:700}

/* Air : marges/paddings élargis autour des blocs de contrôle et de la grille, pour se rapprocher
   de la densité visuelle de Skello plutôt que l'empilement plus serré d'origine. */
.planning-agent .planning-view-toolbar{padding:12px 14px;gap:12px}
.planning-agent .planning-control-panel{padding:16px}
.planning-agent .planning-action-group{gap:8px;padding-left:16px}
.planning-agent .skello-planning-board,.planning-agent .skello-day-board{margin-top:2px}
.planning-agent .skello-employee-cell{padding:11px 14px}
.planning-agent .skello-day-cell{padding:6px}
.planning-agent .planning-shift-form{gap:14px;padding:22px}
.planning-agent .planning-modal-heading{padding-bottom:12px;margin-bottom:2px}

/* Champs du formulaire de shift : fond gris très doux plutôt que blanc cerclé, à la manière des
   champs Skello (moins de contraste de bordure, plus de respiration interne). */
.planning-agent .planning-shift-form input,.planning-agent .planning-shift-form select,.planning-agent .planning-shift-form textarea{background:#f7f9fb;border-color:#e3e9ee;padding:10px 11px}
.planning-agent .planning-shift-form input:focus,.planning-agent .planning-shift-form select:focus,.planning-agent .planning-shift-form textarea:focus{background:#fff}

/* Menu contextuel (clic droit) : lignes plus compactes et poids de police allégé, cohérent avec
   le reste du module resserré ci-dessus - ce menu reste hors de .planning-agent en DOM (ajouté à
   document.body), d'où des règles non scopées comme la ligne existante juste au-dessus. */
.planning-context-menu button,.planning-drop-menu button{min-height:34px;padding:6px 9px;font-weight:600}
.planning-context-menu button span{font-size:15px;font-weight:700}
.planning-context-menu button small{font-weight:700}
/* Section "Suppression groupée" (2026-07-23, retour utilisateur : le rouge plein sur 3 lignes -
   dont 2 qui retournaient à la ligne - donnait un menu "criard"). Le texte repasse en encre
   normale (seule l'icône reste rouge, comme Skello où "Supprimer" n'est pas tout en rouge gras) et
   le badge <small> affiche le nombre au lieu du libellé complet, ce qui règle aussi le retour à la
   ligne. Le rouge plein ne revient qu'au survol, pour rester discret au repos. */
.planning-context-menu-label{grid-column:1/-1;margin:4px 2px 0;color:#8b9aa8;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.planning-context-menu button.danger{color:#33495e;font-weight:600}
.planning-context-menu button.danger span{color:#b8453a}
.planning-context-menu button.danger:hover{background:#fdf1ef;color:#9c382d}
.planning-context-menu button.danger:disabled span{color:#b8c8d4}

/* Modale "Ajouter un shift" (2026-07-23, retour utilisateur : trop de champs visibles d'un coup) :
   flux vertical façon Skello plutôt que la grille à 3 colonnes d'origine (celle-ci reste la valeur
   par défaut de .planning-shift-form pour les autres formulaires du module - absence, création
   d'intervention - qui gardent la même largeur mais s'affichent désormais aussi en une colonne,
   ce qui les aère sans les complexifier). Le bloc "essentiels" (Client/Site/Date, Horaires,
   Équipe/Poste) porte un liseré vert comme le bandeau Horaires de Skello ; Notes et Pièces
   jointes suivent en dessous, hors du liseré, comme deux sections secondaires. */
.planning-agent .planning-shift-form{display:grid;grid-template-columns:1fr;gap:16px}
.planning-agent .planning-modal-card{width:min(640px,100%)}
.planning-agent .planning-shift-modal>.planning-shift-form{width:min(680px,100%)}
.planning-agent .planning-shift-template{max-width:280px}
.planning-agent .planning-shift-essentials{display:grid;gap:14px;padding:2px 0 4px 18px;border-left:3px solid #83bd35}
.planning-agent .planning-shift-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.planning-agent .planning-shift-duration{display:block;margin-top:-6px;color:#526879;font-size:11px;font-weight:700}
.planning-agent .planning-shift-section{display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--pv-line)}
.planning-agent .planning-shift-section label{display:grid;gap:6px}
@media(max-width:640px){.planning-agent .planning-shift-essentials{padding-left:12px}}

/* Modale "Dupliquer un planning" (2026-07-23) : liste de collaborateurs cibles en puces cochables
   (les coéquipiers de la source pré-cochés se distinguent par leur état "checked" natif, pas besoin
   d'un style dédié) et choix remplacer/ajouter en radios classiques - cohérent avec le reste des
   formulaires du module, sans grille à colonnes puisque le contenu est court. */
.planning-agent #planningDuplicateEmployeeForm fieldset{margin:0;padding:0;border:0}
.planning-agent #planningDuplicateEmployeeForm legend{padding:0 0 8px;font-weight:700;font-size:12px;color:#5c7186}
.planning-agent .planning-duplicate-target-list{display:flex;flex-wrap:wrap;gap:8px;max-height:220px;overflow:auto}
.planning-agent .planning-duplicate-target{display:flex;align-items:center;gap:6px;padding:7px 12px;background:#f7f9fb;border:1px solid #e3e9ee;border-radius:999px;font-size:12.5px;font-weight:600;cursor:pointer}
.planning-agent .planning-duplicate-target:has(input:checked){background:#eef8e1;border-color:#cbe6a4;color:#3f6b1a}
.planning-agent .planning-duplicate-target small{color:#8b9aa8;font-weight:600}
.planning-agent .planning-duplicate-target:has(input:checked) small{color:#5c8a2e}
.planning-agent .planning-duplicate-mode{display:grid;gap:8px}
.planning-agent .planning-duplicate-mode label{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#33495e}

/* Cartes Missions (même section .planning-agent, onglet Missions) : léger
   effet de survol pour cohérence avec les cartes de shift ci-dessus. */
.planning-agent .mission-template-card{border-radius:14px;transition:transform .15s var(--pv-ease),box-shadow .15s var(--pv-ease)}
.planning-agent .mission-template-card:hover{transform:translateY(-2px);box-shadow:var(--pv-shadow-md)}

/* Rapport paie (onglet Rapport, même section) : cohérence avec le reste. */
.planning-agent .payroll-report-table,.planning-agent .payroll-side{border-radius:14px}
.planning-agent .payroll-row{border-radius:10px;transition:box-shadow .15s ease}
.planning-agent .payroll-row:hover{box-shadow:var(--pv-shadow-sm)}
.planning-agent .payroll-box{border-radius:14px}

/* Tableau "Présences du jour" type Skello (2026-08-11) : comparatif prévu/badgé/rémunéré, cf.
   renderAttendanceBoard dans direction-operations.js. Reprend les conventions du rapport paie
   (.payroll-row) pour rester visuellement cohérent avec le reste du module RH. */
.live-grid-single{grid-template-columns:1fr}
.attendance-day-board{margin-top:22px}
.attendance-board-actions{display:flex;gap:8px;align-items:center}
.attendance-board-week{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 8px}
.attendance-board-day{padding:7px 13px;border-radius:999px;border:1px solid #dbe7eb;background:#fff;font-size:11px;font-weight:800;cursor:pointer;color:#526879}
.attendance-board-day.today{border-color:#0a5da5;color:#0a5da5}
.attendance-board-day.active{background:#061b35;color:#fff;border-color:#061b35}
.attendance-board-hint{font-size:11px;color:#63768a;margin:0 0 14px;max-width:760px;line-height:1.5}
.attendance-board-table{display:grid;gap:6px;overflow-x:auto}
.attendance-board-row{display:grid;grid-template-columns:190px minmax(150px,1fr) minmax(150px,1fr) 90px minmax(190px,1fr) 130px 70px;gap:10px;align-items:center;min-width:1180px;padding:10px;background:#fff;border:1px solid #dbe7eb;border-left:4px solid #83bd35;border-radius:9px;font-size:11px}
.attendance-board-row.attendance-board-head{position:sticky;top:0;z-index:3;background:#061b35;color:#fff;border-left-color:#0a5da5;font-weight:900;font-size:10px;text-transform:uppercase;letter-spacing:.03em}
.attendance-board-row strong,.attendance-board-row small{display:block}
.attendance-board-row small{margin-top:2px;color:#63768a;font-size:10px}
.attendance-board-head small{color:#fff}
.attendance-board-times{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
.attendance-board-times em{font-style:normal;font-size:9px;color:#b84d42;font-weight:800;margin-left:2px}
.attendance-board-times.corrected .chip{border-color:#e58a25}
.attendance-board-break{display:block;font-size:9px;color:#63768a;margin-top:2px}
.chip{padding:3px 7px;border-radius:6px;font-size:10px;font-weight:800;border:1px solid transparent;display:inline-block}
.chip-start{background:#e4f1d3;color:#35640c}
.chip-end{background:#e3ecf7;color:#0a3d75}
.chip-absence{background:#fde3e0;color:#a83226;padding:4px 8px;border-radius:999px}
.chip-late{background:#fde3e0;color:#a83226}
.chip-ontime{background:#e4f1d3;color:#35640c}
.attendance-board-empty{color:#9fb0bd;font-size:10px}
.attendance-board-total{font-weight:900;font-size:13px}
.attendance-board-correction-form{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.attendance-board-correction-form input{padding:4px 6px;border:1px solid #dbe7eb;border-radius:6px;font-size:10px;width:100%;box-sizing:border-box}
.attendance-board-correction-form input[name="reason"]{grid-column:1/-1}
.attendance-board-correction-form button{grid-column:1/-1;padding:5px;border:none;border-radius:6px;background:#0a5da5;color:#fff;font-size:10px;font-weight:800;cursor:pointer}

.accounts-hint{font-size:11px;color:#63768a;margin:0 0 14px;max-width:760px;line-height:1.5}
.accounts-list{display:grid;gap:10px}
.account-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 14px;background:#fff;border:1px solid #dbe7eb;border-left:4px solid #83bd35;border-radius:9px}
.account-identity{display:flex;flex-direction:column;gap:2px;flex:1;min-width:220px}
.account-identity strong{font-size:13px}
.account-identity span{font-size:11px;color:#63768a}
.account-role{font-weight:800;color:#0a5da5!important}
.account-identity small{font-size:10px;color:#9fb0bd}
.account-reset-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%;margin-top:6px}
.account-reset-form input{padding:6px 8px;border:1px solid #dbe7eb;border-radius:6px;font-size:11px;flex:1;min-width:180px}
.account-reset-form button{padding:6px 12px;border:none;border-radius:6px;background:#0a5da5;color:#fff;font-size:11px;font-weight:800;cursor:pointer}
.account-reset-form output{font-size:10px;color:#63768a}
