*{box-sizing:border-box}:root{--bg:#171b1f;--panel:#22282e;--panel2:#293138;--panel3:#1c2227;--border:#39444d;--text:#edf2f5;--muted:#95a1ab;--blue:#2f82f6;--blue2:#68a7ff;--green:#35ae78;--orange:#e7a13d;--red:#d85e5e;--purple:#8d6ee8;--cyan:#44b5c5}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,#2b333a 0,#1e2429 40%,#171b1f 100%);color:var(--text);font:14px Segoe UI,Arial,sans-serif}.hidden{display:none!important}button,input,textarea,select{font:inherit}button{color:inherit}.loginShell{min-height:100vh;display:grid;place-items:center;padding:24px}.loginCard{width:min(445px,100%);background:#22282edb;border:1px solid var(--border);border-radius:18px;padding:30px;box-shadow:0 22px 70px #0009;backdrop-filter:blur(10px)}.logoLine{display:flex;align-items:center;gap:14px;margin-bottom:25px}.logoLine img{width:66px;height:66px;object-fit:contain}.logoLine h1{font-size:25px;margin:0}.logoLine b,.brand b{color:var(--blue)}.subtitle{color:var(--muted);margin:5px 0 0}.field{margin:14px 0}.field label{display:block;color:#d2d9de;margin-bottom:7px;font-weight:600}.field small{display:block;color:var(--muted);margin-top:6px}.field input,.field textarea,.field select{width:100%;padding:11px 12px;background:#181d21;color:var(--text);border:1px solid #45515b;border-radius:9px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 2px #2f82f62f}.btn{border:1px solid #46525c;background:#2b3339;color:var(--text);border-radius:9px;padding:10px 14px;cursor:pointer}.btn:hover{border-color:#5a6873;background:#313a42}.btn.primary{background:var(--blue);border-color:#5796ed;font-weight:700}.btn.danger{background:#4a292b;border-color:#744044}.btn.full{width:100%;margin-top:8px}.linkBtn{display:block;margin:15px auto 0;background:none;border:0;color:#77afff;cursor:pointer;padding:4px}.checkline{display:flex;gap:9px;align-items:center;color:#cbd3d9;margin:12px 0}.error{min-height:20px;color:#ff8e8e;margin-top:10px}.topbar{min-height:86px;border-bottom:1px solid #343e46;background:#20262be8;backdrop-filter:blur(10px);display:flex;align-items:center;gap:14px;padding:12px 22px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}.brandButton{background:none;border:0;padding:0;cursor:pointer}.brand img{width:50px;height:50px;object-fit:contain}.crumb{color:#9ea9b1;border-left:1px solid #3a454e;padding-left:14px}.spacer{flex:1}.maintenancePill{padding:7px 10px;border-radius:999px;background:#4a2f16;color:#ffd28d;border:1px solid #765026;font-size:12px}.userMenuWrap{position:relative}.userButton{display:flex;align-items:center;gap:9px;background:#262d33;border:1px solid #3e4952;border-radius:12px;padding:7px 10px;cursor:pointer}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#315d94;color:#dcecff;font-weight:800}.userLabel{display:flex;flex-direction:column;text-align:left}.userLabel small{color:var(--muted);font-size:11px;margin-top:2px}.userDropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:225px;background:#20262b;border:1px solid #414c55;border-radius:11px;box-shadow:0 15px 40px #0008;overflow:hidden;z-index:50}.userDropdown button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #323b42;padding:12px 14px;cursor:pointer}.userDropdown button:last-child{border-bottom:0}.userDropdown button:hover{background:#2b3339}.logoutBtn{white-space:nowrap}.workspace{width:min(1500px,100%);margin:auto;padding:28px}.hero,.pageHead{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:2px 0 22px}.hero h1,.pageHead h1{margin:0 0 6px;font-size:26px}.hero p,.pageHead p{margin:0;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.moduleCard{min-height:195px;background:linear-gradient(160deg,#293138,#22282d);border:1px solid #3c474f;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:.15s}.moduleCard.active{cursor:pointer}.moduleCard.active:hover{transform:translateY(-2px);border-color:#4d91ea;box-shadow:0 12px 28px #0005}.moduleCard.reserve{opacity:.5;border-style:dashed}.moduleCard.planned{opacity:.7}.moduleCard.maintenance{border-color:#7f5a2d}.moduleCard.denied{opacity:.48}.moduleImage{width:100%;height:104px;object-fit:cover;background:#161a1d}.moduleIcon{width:54px;height:54px;display:grid;place-items:center;font-size:30px;background:#303941;border-radius:13px;margin:18px 18px 0}.cardBody{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}.moduleCard h3{margin:0;font-size:18px}.moduleCard p{color:var(--muted);line-height:1.45;margin:7px 0 17px}.moduleMeta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:#919ca5;font-size:12px}.status{display:inline-flex;align-items:center;gap:7px}.dot,.healthDot{width:8px;height:8px;border-radius:50%;background:#737d85}.active .dot,.healthDot.up{background:var(--green);box-shadow:0 0 10px #35ae7888}.planned .dot{background:#7f8991}.maintenance .dot{background:var(--orange)}.healthDot.down{background:var(--red)}.launch{color:#71adff;font-weight:700}.panel{background:#22282eea;border:1px solid var(--border);border-radius:15px;padding:18px}.panelHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panelHead h2{font-size:18px;margin:0}.muted{color:var(--muted)}.adminCols{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:17px;margin-bottom:18px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #343e45;vertical-align:top}th{color:#aab4bb;font-size:12px}td small{display:block;color:var(--muted);margin-top:4px}.badge{display:inline-flex;padding:4px 8px;border:1px solid #49545c;border-radius:999px;color:#c9d1d6;font-size:11px}.badge.ok{border-color:#2d6a4d;color:#91dab9}.badge.off{border-color:#694040;color:#dda4a4}.badge.warn{border-color:#735629;color:#f2c47b}.miniBtn{border:1px solid #47535d;background:#2b3339;border-radius:8px;padding:7px 9px;cursor:pointer}.notice{border:1px solid #44505a;background:#1e2429;border-radius:10px;padding:12px;color:#cbd3d8;margin:12px 0}.notice.warn{border-color:#735629;background:#352918;color:#f1cf97}.moduleAdminGrid{display:grid;gap:9px}.adminModule{display:flex;align-items:center;gap:11px;border:1px solid #343e45;background:#1d2328;border-radius:11px;padding:9px}.adminModuleVisual{width:54px;height:48px;border-radius:9px;overflow:hidden;background:#303840;display:grid;place-items:center;font-size:24px}.adminModuleVisual img{width:100%;height:100%;object-fit:cover}.grow{flex:1;min-width:0}.grow b,.grow small{display:block}.grow small{color:var(--muted);margin-top:4px}.twoCols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inputAction{display:flex;gap:8px}.inputAction input{flex:1}.checkGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;border:1px solid #374149;background:#1c2227;border-radius:10px;padding:11px}.checkGrid label{display:flex;gap:7px;align-items:center}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.metric{background:#22282e;border:1px solid var(--border);border-radius:13px;padding:15px}.metric span,.metric b{display:block}.metric span{color:var(--muted);font-size:12px;margin-bottom:5px}.metric b{font-size:19px}.healthList{display:grid;gap:9px}.healthRow{display:flex;gap:10px;align-items:center;border-bottom:1px solid #343e45;padding:10px 0}.healthRow div b,.healthRow div small{display:block}.healthRow div small{color:var(--muted);margin-top:3px}.switchRow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #343e45}.switchRow span b,.switchRow span small{display:block}.switchRow span small{color:var(--muted);margin-top:4px}.switchRow input{width:20px;height:20px}.auditList{max-height:500px;overflow:auto}.auditRow{display:grid;grid-template-columns:180px 190px 130px 1fr;gap:10px;padding:9px;border-bottom:1px solid #323b42;font-size:12px}.auditRow time,.auditRow span{color:var(--muted)}.auditRow code{color:#a9c8ef;white-space:pre-wrap;word-break:break-word}.calendarPanel{background:#22282e;border:1px solid var(--border);border-radius:15px;padding:16px}.calendarToolbar{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:10px}.calendarToolbar h2{min-width:230px;text-align:center;text-transform:capitalize;margin:0}.sourceLegend{display:flex;justify-content:flex-end;gap:8px;margin-bottom:11px;flex-wrap:wrap}.sourceLegend span{padding:5px 8px;border-radius:999px;font-size:11px}.source-manual{background:#32485f!important}.source-achats{background:#3a5a43!important}.source-suivi{background:#4c426d!important}.source-garage{background:#604632!important}.calWeek,.calendarGrid{display:grid;grid-template-columns:repeat(7,1fr)}.calWeek b{text-align:center;color:#aab4bc;padding:9px}.calDay{min-height:125px;border:1px solid #343e45;padding:8px;background:#1d2328}.calDay.other{opacity:.45}.calDay.today{box-shadow:inset 0 0 0 2px #2f82f6}.calDay>b{font-size:12px;color:#cbd3d8}.calEvents{display:grid;gap:4px;margin-top:7px}.calEvent{font-size:10px;line-height:1.25;padding:4px 5px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px}.modalBackdrop{position:absolute;inset:0;background:#000a;backdrop-filter:blur(3px)}.modalCard{position:relative;width:min(650px,100%);max-height:90vh;overflow:auto;background:#22282e;border:1px solid #48535d;border-radius:16px;padding:20px;box-shadow:0 25px 80px #000c}.modalHead{display:flex;justify-content:space-between;gap:14px;align-items:start}.modalHead h2{margin:0 0 5px}.modalHead p{margin:0;color:var(--muted);line-height:1.45}.iconBtn{background:none;border:0;font-size:28px;cursor:pointer;color:#b7c0c7}.modalActions{display:flex;align-items:center;gap:9px;margin-top:18px}.aboutGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.aboutGrid div{background:#1b2126;border:1px solid #374149;border-radius:10px;padding:12px}.aboutGrid b,.aboutGrid span{display:block}.aboutGrid span{color:var(--muted);margin-top:4px}.toast{position:fixed;right:20px;bottom:20px;background:#101417;border:1px solid #46515b;border-radius:10px;padding:12px 15px;z-index:150;box-shadow:0 8px 30px #0008}
@media(max-width:950px){.adminCols{grid-template-columns:1fr}.metricGrid{grid-template-columns:repeat(2,1fr)}.auditRow{grid-template-columns:1fr}.calDay{min-height:105px}.logoutBtn{display:none}.crumb{display:none}}
@media(max-width:650px){.topbar{padding:10px 12px;min-height:72px}.brand span{display:none}.brand img{width:44px;height:44px}.workspace{padding:15px}.grid{grid-template-columns:1fr}.hero,.pageHead{align-items:start;flex-direction:column}.userLabel{display:none}.metricGrid{grid-template-columns:1fr 1fr}.twoCols,.checkGrid,.aboutGrid{grid-template-columns:1fr}.calWeek b{font-size:10px}.calDay{min-height:82px;padding:4px}.calEvent{font-size:9px}.calendarPanel{overflow:auto;min-width:650px}.workspace{overflow:auto}.auditRow{font-size:11px}}

/* Reprise des visuels de l’accueil historique DragOS. */
body{background:radial-gradient(circle at 90% 0,rgba(31,111,235,.18),transparent 34%),radial-gradient(circle at 8% 4%,rgba(150,122,44,.10),transparent 30%),#202428}
.loginCard{width:min(420px,100%);padding:26px 24px 32px;border-radius:24px;background:linear-gradient(180deg,#272c32fa,#1b1f24fc)}
.logoLine{justify-content:center;margin:10px 0 22px}.logoLine img{width:188px;height:auto}.loginCaption{text-align:center;text-transform:uppercase;letter-spacing:.1em;color:#aab3bd;font-size:12px;margin:20px 0}.loginCard .field input{min-height:49px;background:linear-gradient(#30353b,#272c31);border-radius:12px}.loginCard .inputAction input{min-width:0}.loginCard .btn.full{display:block;width:auto;margin:14px auto 0;padding:14px}.loginCard .linkBtn{margin-left:auto;margin-right:0}.brand img{width:110px;height:58px}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}.moduleCard{border-radius:6px;min-height:0;background:#272c32}.moduleImage{height:128px;object-fit:cover}.cardBody{padding:14px 14px 16px}.moduleCard h3{font-size:16px}.moduleCard p{font-size:14px;margin:6px 0 0}.moduleMeta{margin-top:10px}.moduleCard:focus-visible{outline:2px solid #68a7ff;outline-offset:3px}
.calendarLayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}.calendarPanel{min-width:0}.appointmentList{max-height:750px;overflow:auto}.appointment{display:block;width:100%;text-align:left;border:1px solid #42505b;border-radius:8px;color:inherit;background:#272f35;padding:12px;margin:10px 0;cursor:pointer}.appointment strong,.appointment small{display:block}.appointment small{color:#acb6bf;margin-top:6px}.calEvent{border:0;color:inherit;text-align:left;cursor:pointer;width:100%}.calDay{min-width:0}.calEvents{min-width:0}.calendarWarning{color:#f2c47b}.calEvent:focus-visible{outline:2px solid #68a7ff}@media(max-width:1050px){.calendarLayout{grid-template-columns:1fr}.appointmentList{max-height:350px}}@media(max-width:650px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.moduleImage{height:110px}.brand img{width:90px;height:48px}.calendarPanel{min-width:0;padding:6px}.calendarToolbar h2{min-width:0;font-size:18px}.calDay{min-height:85px}.calEvent{white-space:normal;font-size:9px}.workspace{overflow:visible}.cardBody{padding:10px}}

.topbar{min-height:74px;padding:10px 20px}.brand{font-size:17px;gap:10px}.brand img{width:56px;height:52px}.mainNav{display:flex;gap:10px}.mainNav button{padding:5px 0;background:none;border:0;color:#388bfd;cursor:pointer}.mainNav button:hover{color:white}.workspace{max-width:1380px;padding:36px 28px}.grid{grid-template-columns:repeat(auto-fill,220px);align-items:start}.moduleCard.active:hover{transform:none}.cardBody{min-height:72px}.calendarLayout .calDay{min-height:105px}@media(max-width:650px){.topbar{flex-wrap:wrap;gap:8px}.brand span{display:inline}.brand img{width:45px;height:42px}.mainNav{gap:8px;font-size:13px}.workspace{padding:20px 14px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.userButton{padding:4px}.avatar{width:27px;height:27px}.calendarLayout .calDay{min-height:82px}}

.checkGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.checkGrid label{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;margin:0;padding:10px;background:#262e35;border-radius:6px;min-height:48px}.checkGrid input[type=checkbox]{width:18px;height:18px;padding:0;margin:0;box-shadow:none;justify-self:center}.checkGrid label span{line-height:1.35}.checkGrid small{display:block}.moduleMeta{display:none}@media(max-width:550px){.checkGrid{grid-template-columns:1fr}}
.launcherGroups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:18px 0}.launcherGroup{min-width:0}.launcherGroup h3{border-bottom:2px solid #548bd0;padding-bottom:10px}.launcherTiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.launcherTile{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid #344450;border-radius:12px;padding:14px 6px;background:#202c36;color:inherit;min-width:0;cursor:pointer}.launcherTile img{width:48px;height:48px;object-fit:contain}.launcherTile .tileGlyph{font-size:36px}.launcherTile small{font-size:10px;overflow-wrap:anywhere;color:#9cabb9}.launcherTile:disabled{opacity:.45;cursor:default}.deleteUserArea{margin-top:24px;border-top:1px solid #45525f;padding-top:16px;display:grid;gap:8px}button:disabled{cursor:default;opacity:.5}@media(max-width:1050px){.launcherGroups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.launcherGroups{grid-template-columns:1fr}}
.moduleImage[src*="/icons/"]{object-fit:contain;padding:18px;background:#202c36}.mechanicsGrid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}.mechanicsGrid .moduleCard{height:100%}@media(max-width:950px){.mechanicsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.mechanicsGrid{grid-template-columns:1fr}}

/* Uniform launcher cards: image, bold title, detail. */
.grid{align-items:stretch;grid-auto-rows:252px}.grid .moduleCard{height:252px;min-width:0}.moduleImage,.moduleIcon{flex:none;width:100%;height:132px;margin:0;border-radius:0;object-fit:cover}.moduleIcon{font-size:48px}.cardBody{padding:14px;min-height:0;overflow:hidden}.moduleCard h3{font-weight:700;line-height:1.25;margin:0}.moduleCard p{line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.moduleCard:focus-visible{outline:2px solid #68a7ff;outline-offset:3px}@media(max-width:650px){.cardBody{padding:10px}.moduleCard h3{font-size:15px}.moduleCard p{font-size:12px}}

.notificationCount{display:inline-flex;align-items:center;justify-content:center;background:#c82030;color:#fff;min-width:23px;height:23px;padding:0 6px;border-radius:999px;font-weight:800;margin-left:5px}.notificationItem{padding:16px 0;border-top:1px solid var(--border)}.notificationItem p{color:var(--muted)}.notificationNote{white-space:pre-wrap;overflow-wrap:anywhere}.notificationHistory{margin-top:20px}
