:root{--brand: #05515f;--brand-dark: #033f49;--brand-soft: #e6f0f2;--accent: #c18a2d;--ink: #173036;--muted: #5f7076;--line: #d7e2e5;--page: #eef5f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--page);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;box-shadow:0 18px 45px #05515f1f}.login-panel h1{margin:0 0 8px}.login-panel p{color:#5b6872}.login-brand{color:var(--ink);margin-bottom:18px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{background:var(--brand-dark);color:#fff;padding:22px;display:flex;flex-direction:column;gap:22px}.brand{display:flex;align-items:center;gap:12px}.brand svg{width:36px;height:36px;padding:8px;border-radius:8px;background:var(--accent);color:var(--brand-dark)}.brand strong,.brand span{display:block}.brand span{color:#b8c9c5;font-size:13px}.sidebar-nav{display:grid;gap:8px}.nav-link,.button{border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;font-weight:700;min-width:0}.nav-link{color:#d7e4e1;background:transparent;justify-content:flex-start}.nav-link svg,.button svg{width:18px;height:18px}.nav-link.active,.nav-link:hover{background:#ffffff1f;color:#fff}.sidebar-action{margin-top:auto}.button{background:var(--brand);color:#fff}.button.secondary{background:var(--brand-soft);color:var(--brand-dark);border:1px solid var(--line)}.button.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25)}.button.danger{background:#9d2f3a}.main-area{min-width:0;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.topbar h1{margin:4px 0;font-size:28px}.topbar p{margin:0;color:#627069}.eyebrow{color:#60736d;text-transform:uppercase;letter-spacing:0;font-size:12px;font-weight:800}.role-pill{display:inline-flex;gap:8px;align-items:center;border:1px solid #c8d6d2;background:#fff;border-radius:999px;padding:8px 12px;font-weight:700}.role-pill b{min-width:24px;height:24px;display:inline-grid;place-items:center;border-radius:999px;background:var(--accent);color:var(--brand-dark);font-size:12px}.content-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 12px 28px #05515f14}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.panel h2,.panel h3{margin:0 0 12px}.description{color:#34443f;line-height:1.5;white-space:pre-wrap}.request-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;margin-bottom:16px;background:#f6f9f8;border:1px solid #dce6e2;border-radius:8px}label{display:grid;gap:6px;color:#41504b;font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid #cbd8d4;border-radius:8px;padding:10px 11px;min-height:42px;color:#17212b;background:#fff}textarea{resize:vertical}.span-2{grid-column:1 / -1}.photo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px dashed #9ab0aa;border-radius:8px;padding:12px;background:#fff}.photo-actions span{grid-column:1 / -1;color:#65736e;font-size:13px}.hidden-file{display:none}.selected-files{grid-column:1 / -1;margin:0;padding-left:20px;color:#40514c;font-size:13px}.selected-files li{margin-bottom:6px}.selected-files button{border:0;background:transparent;color:#9d2f3a;font-weight:800;padding:4px 6px}.submit-request{align-self:end}.error{color:#9d2f3a;margin:0;font-weight:700}.success{color:#1c6c43;margin:12px 0 0;font-weight:800}.new-ticket-page{max-width:920px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-bottom:14px;align-items:end}.compact-filter{gap:4px;font-size:12px}.compact-filter input{padding-top:9px;padding-bottom:9px}.filter-reset{min-height:42px}.mobile-filter-panel,.ticket-cards,.mobile-inline-detail{display:none}.table-wrap{overflow:auto;border:1px solid #dce6e2;border-radius:8px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px;text-align:left;border-bottom:1px solid #e8eeec;vertical-align:middle}th{background:#f4f8f7;color:#50615b;font-size:12px;text-transform:uppercase;letter-spacing:0}td span{display:block;color:#65736e;font-size:13px;margin-top:3px}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#f1f7f5}.empty{text-align:center;color:#65736e}.status{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;background:#e7ecea;color:#40514c}.status-empty{background:#f3f5f4;color:#66756f;border:1px dashed #b9c7c3}.status-en-cours{background:#dfeeff;color:#164d88}.status-en-attente-de-materiel{background:#fff1cb;color:#775405}.status-termine{background:#ddf4e8;color:#1c6c43}.detail-panel{position:sticky;top:18px;max-height:calc(100vh - 48px);overflow:auto}.empty-detail{min-height:260px;display:grid;place-items:center;text-align:center;color:#6b7974}.empty-detail svg{width:48px;height:48px}.meta-grid,.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}dt{font-size:12px;color:#66756f;font-weight:800;text-transform:uppercase}dd{margin:2px 0 0;font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eef4f2;border:1px solid #d3dfdc;border-radius:999px;padding:7px 10px;font-size:13px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.photo-grid a{color:#17212b;text-decoration:none;border:1px solid #d3dfdc;border-radius:8px;padding:6px;background:#f7faf9}.photo-grid img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px;background:#e7eeec}.photo-grid span{display:block;margin-top:6px;font-size:12px;color:#40514c;overflow-wrap:anywhere}.muted{color:#75827d}.comments form{display:grid;gap:8px}.comment{background:#f6f9f8;border-left:3px solid var(--brand);padding:10px;border-radius:6px}.timeline{padding-left:20px}.timeline li{margin:0 0 10px}.timeline span{display:block;color:#6a7772;font-size:13px}.dashboard,.admin-grid{display:grid;gap:18px}.stats-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.stat-card{background:#fff;border:1px solid #d5dfdc;border-radius:8px;padding:18px}.stat-card span{color:#63726d;font-weight:700}.stat-card strong{display:block;margin-top:10px;font-size:34px}.chart{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:180px 1fr 40px;align-items:center;gap:12px}.bar-row div{height:12px;background:#e9f0ee;border-radius:999px;overflow:hidden}.bar-row i{display:block;height:100%;background:var(--brand)}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf2f0}.admin-row small{display:block;color:#65736e}.admin-row.editable{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.users-panel{min-height:360px}.users-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,240px);gap:10px;margin-bottom:10px}.users-list{max-height:430px;overflow:auto;border-top:1px solid #edf2f0;border-bottom:1px solid #edf2f0}.user-row{grid-template-columns:minmax(0,1fr) minmax(170px,220px)}.user-row span{min-width:0;overflow-wrap:anywhere}.users-limit{margin:10px 0 0;font-size:13px}.check{display:flex;align-items:center;gap:6px}.check input{width:auto}.storage{display:grid;gap:12px}.storage.alert{border-color:#d78a25;box-shadow:0 0 0 3px #d78a2524}@media(max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;flex-direction:row;align-items:center;flex-wrap:wrap}.sidebar-nav{display:flex;flex-wrap:wrap}.sidebar-action{margin-top:0;margin-left:auto}.content-grid,.admin-grid{grid-template-columns:1fr}.detail-panel{position:static;max-height:none}.filters,.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.main-area,.sidebar{padding:12px}.app-shell{display:block}.sidebar{gap:10px;border-bottom:1px solid rgba(255,255,255,.16)}.brand{width:100%}.sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.sidebar-action{width:100%;margin-left:0}.topbar,.panel-header{flex-direction:column;align-items:stretch}.topbar{gap:10px;margin-bottom:14px}.topbar h1{font-size:22px;line-height:1.15}.topbar p{overflow-wrap:anywhere}.role-pill{width:100%;justify-content:center}.panel{padding:14px;border-radius:8px}.panel-header h2{font-size:26px;line-height:1.12}.list-panel>.panel-header .button{font-size:16px;white-space:normal}.desktop-filters,.table-wrap,.desktop-detail{display:none}.mobile-filter-panel{display:block;margin-bottom:12px;border:1px solid #d5dfdc;border-radius:8px;background:#f7faf9}.mobile-filter-panel summary{min-height:48px;padding:13px 14px;font-weight:800;cursor:pointer}.mobile-filter-panel .filters{padding:0 12px 12px;margin:0}.ticket-cards,.ticket-card-block{display:grid;gap:10px}.ticket-card{width:100%;text-align:left;display:grid;gap:7px;border:1px solid #d5dfdc;border-radius:8px;background:#fff;padding:12px;color:#17212b}.ticket-card.selected{border-color:var(--brand);box-shadow:0 0 0 3px #05515f1f}.ticket-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.ticket-card small{color:#65736e;font-size:13px}.ticket-card em{justify-self:start;border-radius:999px;background:#fff1cb;color:#775405;padding:4px 8px;font-style:normal;font-weight:800;font-size:12px}.mobile-inline-detail{display:block}.mobile-inline-detail .detail-panel{border-color:var(--brand);box-shadow:0 0 0 3px #05515f1a}.request-form,.meta-grid,.action-grid,.filters,.stats-row{grid-template-columns:1fr}.span-2,.selected-files{grid-column:auto}.admin-row,.admin-row.editable,.bar-row,.users-toolbar,.user-row{grid-template-columns:1fr}.users-list{max-height:70vh}input,select,textarea{min-height:48px;font-size:16px}textarea{min-height:132px}.button{width:100%;min-height:48px;white-space:normal}.nav-link{min-height:44px;padding:0 10px;font-size:14px}.photo-actions{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
