@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{color-scheme:dark;--bg: #0e1116;--border: #1e2a3a;--text: #e8eef7;--muted: #9fb3c8;--accent: #2bd4cf;--btn-primary: #1971f8;--atlas-header-bg: #ffffff;--atlas-header-border: #e5e7eb}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:var(--bg);color:var(--text)}.btn-back{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:8px;font-size:.82rem;font-weight:600;color:#475569;background:transparent;border:1px solid #cbd5e1;cursor:pointer;transition:background .15s,color .15s,border-color .15s;text-decoration:none;white-space:nowrap;flex-shrink:0}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:64px;background:var(--atlas-header-bg);border-bottom:1px solid var(--atlas-header-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;gap:12px;position:sticky;top:0;z-index:20;flex-shrink:0}.app-header-left{display:flex;align-items:center;gap:16px}.app-header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.app-header h1{margin:0;font-size:1.05rem;font-weight:700;color:#0f172a}.app-header p{margin:0;font-size:.8rem;color:#64748b}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.login-wrap.has-photo:before{content:"";position:absolute;inset:0;background:url(/bg-hospital.jpg) center/cover no-repeat fixed;filter:blur(10px) grayscale(35%) brightness(.6);transform:scale(1.06);z-index:0}.login-wrap.has-photo:after{content:"";position:absolute;inset:0;background:#00000040;z-index:0}.login-card{position:relative;z-index:1;width:min(600px,95vw);background:#ffffffeb;border-radius:22px;padding:48px 40px;box-shadow:0 18px 48px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadein .8s ease}.login-logo{width:200px;height:200px;display:block;margin:0 auto 20px;object-fit:contain;transition:transform .3s ease}.login-logo:hover{transform:scale(1.05)}.login-sub{text-align:center;color:#1e293b;font-weight:700;font-size:1.4rem;margin-bottom:28px}.login-form{display:grid;gap:16px}.field{display:grid;gap:6px}.field span{font-size:.9rem;font-weight:600;color:#334155}.field input{background:#fff;border:1px solid #cbd5e1;color:#0f172a;border-radius:10px;padding:10px 12px;outline:none;font-size:.95rem}.field input:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f62e}.btn.primary{background:var(--btn-primary);border:none;color:#fff;padding:12px 0;font-weight:600;font-size:.95rem;border-radius:10px;width:55%;margin:14px auto 0;display:block;text-align:center;transition:transform .1s ease,filter .2s ease}.btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.login-note{margin-top:16px;text-align:center;color:#64748b;font-size:.8rem}.login-note a{color:var(--btn-primary);text-decoration:none}.login-note a:hover{text-decoration:underline}.error-text{color:#b91c1c;font-size:.9rem;text-align:center}@keyframes fadein{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.login-card{width:90%;padding:32px 24px}.login-logo{width:120px;height:120px}.login-sub{font-size:1.1rem}}.admin-page{--admin-bg: #0a0f1e;--admin-bg-alt: #0e1630;--admin-surface: rgba(12, 19, 36, .78);--admin-surface-strong: rgba(10, 16, 30, .92);--admin-border: rgba(148, 163, 184, .2);--admin-border-strong: rgba(148, 163, 184, .35);--admin-accent: #38bdf8;--admin-accent-strong: #6366f1;--admin-text: #e2e8f0;--admin-muted: #94a3b8;--admin-success: #34d399;--admin-danger: #f87171;min-height:100vh;padding:24px clamp(24px,5vw,64px);background:radial-gradient(circle at 12% 12%,rgba(56,189,248,.18),transparent 48%),radial-gradient(circle at 78% 0%,rgba(99,102,241,.2),transparent 46%),linear-gradient(180deg,#0b1226,#0a0f1e 60%,#060914);color:var(--admin-text);display:flex;flex-direction:column;gap:16px;font-family:Manrope,Space Grotesk,system-ui,sans-serif;position:relative;overflow-x:hidden}.admin-page:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(148,163,184,.08) 1px,transparent 1px);background-size:120px 120px;opacity:.4;pointer-events:none;z-index:0}.admin-page>*{position:relative;z-index:1}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;border-bottom:1px solid var(--admin-border)}.admin-label{text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:var(--admin-muted);margin-bottom:2px}.admin-header h1{margin:0;font-size:clamp(1.2rem,2.5vw,1.8rem);font-family:Space Grotesk,Manrope,system-ui,sans-serif}.admin-subtitle{max-width:720px;color:#e2e8f0c7;font-size:.85rem;margin:2px 0 0}.admin-meta{display:flex;flex-direction:row;align-items:center;gap:12px;font-family:JetBrains Mono,Fira Mono,monospace;font-size:.78rem;color:#bae6fd;background:linear-gradient(135deg,#0f766e2e,#0f172a73);padding:8px 14px;border-radius:10px;border:1px solid rgba(45,212,191,.25);flex-shrink:0}.uuid-highlight{color:#fecdd3}.exit-btn{border:none;border-radius:999px;padding:6px 12px;background:#f43f5e40;color:#ffe4e6;cursor:pointer;font-family:inherit;font-size:.78rem;transition:background .2s ease,transform .2s ease}.exit-btn:hover{background:#f43f5e73;transform:translateY(-1px)}.admin-shell{--admin-nav-width: 260px;display:grid;grid-template-columns:minmax(0,var(--admin-nav-width)) 14px minmax(0,1fr);gap:12px;align-items:start}.admin-nav{display:flex;flex-direction:column;gap:8px;position:sticky;top:32px;align-self:flex-start;min-width:0;overflow:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}.admin-shell[data-nav-collapsed=true] .admin-nav{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-14px)}.admin-shell[data-nav-dragging=true]{-webkit-user-select:none;user-select:none}.admin-shell-divider{position:relative;display:flex;align-items:center;justify-content:center;align-self:stretch;padding:0;border:none;background:transparent;cursor:col-resize;touch-action:none;border-radius:999px}.admin-shell-divider:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}.admin-shell-divider-line{width:1px;height:100%;min-height:280px;background:linear-gradient(180deg,#94a3b814,#94a3b880,#94a3b814);transition:background .2s ease}.admin-shell-divider-thumb{position:absolute;width:10px;height:58px;border-radius:999px;border:1px solid rgba(56,189,248,.35);background:linear-gradient(180deg,#0f172af5,#0f766eb8);box-shadow:0 10px 24px #02061759;transition:border-color .2s ease,transform .2s ease,background .2s ease}.admin-shell-divider:hover .admin-shell-divider-line,.admin-shell-divider:focus-visible .admin-shell-divider-line,.admin-shell[data-nav-dragging=true] .admin-shell-divider-line{background:linear-gradient(180deg,#38bdf826,#38bdf8bf,#38bdf826)}.admin-shell-divider:hover .admin-shell-divider-thumb,.admin-shell-divider:focus-visible .admin-shell-divider-thumb,.admin-shell[data-nav-dragging=true] .admin-shell-divider-thumb{border-color:#7dd3fcb3;background:linear-gradient(180deg,#0f172afa,#0ea5e9b3);transform:scaleY(1.05)}.admin-nav-link{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:16px;border:1px solid var(--admin-border);text-decoration:none;color:inherit;background:#0c1324a6;transition:border-color .2s ease,background .2s ease,transform .2s ease;position:relative;overflow:hidden}.admin-nav-link small{color:var(--admin-muted)}.admin-nav-link:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#38bdf82e,#6366f11f);opacity:0;transition:opacity .2s ease;z-index:0}.admin-nav-link>*{position:relative;z-index:1}.admin-nav-link.active{border-color:#38bdf899;background:#1e293bcc}.admin-nav-link.active:before,.admin-nav-link:hover:before{opacity:1}.admin-nav-link:hover{transform:translate(2px)}.admin-main{display:flex;flex-direction:column;gap:24px;min-width:0}.admin-overview{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.05fr);gap:24px}.admin-columns{display:grid;grid-template-columns:minmax(240px,320px) 1fr minmax(240px,320px);gap:32px}.management-panel,.console-panel{min-width:0}.admin-panel{background:linear-gradient(140deg,#0f172ac7,#080e1deb);border:1px solid var(--admin-border);border-radius:22px;padding:28px;box-shadow:0 30px 60px #02061773;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-panel h2{margin:0 0 8px;font-family:Space Grotesk,Manrope,system-ui,sans-serif;letter-spacing:.01em}.panel-subtitle{color:var(--admin-muted);margin-bottom:24px}.management-grid{display:flex;flex-direction:column;gap:18px}.management-card{background:linear-gradient(140deg,#0f766e1a,#0f172ab3);border:1px solid rgba(94,234,212,.25);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;width:100%;text-align:left;color:inherit;cursor:pointer;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.management-card h3{margin:0;color:#5eead4}.management-card p{margin:0;color:#e2e8f0}.management-card.active,.management-card:hover{border-color:#5eead4b3;transform:translate(3px);box-shadow:0 10px 20px #0c4a6e59}.status-chip{align-self:flex-start;padding:6px 12px;border-radius:999px;font-size:.8rem;background:#e2e8f01f;border:1px dashed rgba(148,163,184,.45);color:#e2e8f0}.workspace-panel{background:linear-gradient(160deg,#0f172ad9,#0a0f1ef2)}.workspace-content{display:grid;gap:20px}.workspace-block{padding:20px;border-radius:16px;border:1px solid rgba(148,163,184,.18);background:#0a1020b8}.workspace-block h3{margin-top:0}.workspace-block ul{padding-left:18px;margin:12px 0 0;color:#e2e8f0}.ghost-btn{margin-top:12px;padding:12px 18px;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#0f172a66;color:#cbd5f5;cursor:not-allowed}.tab-bar{display:flex;gap:12px;margin-bottom:16px}.tab-btn{flex:none;padding:10px 18px;border-radius:999px;border:1px solid rgba(148,163,184,.4);background:#0c1324a6;color:#e2e8f0;cursor:pointer;transition:background .2s ease}.tab-btn.active{background:#38bdf833;border-color:#38bdf899}.user-table{border-radius:18px;border:1px solid rgba(148,163,184,.25);padding:18px 22px;background:#0a1020cc}.user-table header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.table-title{margin:0;font-weight:600}.table-head,.table-row{display:grid;grid-template-columns:1.8fr 1fr 1.2fr .7fr;gap:16px;align-items:center}.table-head{font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--admin-muted);padding-bottom:6px;border-bottom:1px solid rgba(148,163,184,.35)}.table-row{padding:12px 0;border-bottom:1px solid rgba(15,23,42,.65)}.table-row:last-child{border-bottom:none}.table-row strong{display:block}.meta{margin:2px 0 0;color:var(--admin-muted);font-size:.8rem}.role-pill{display:inline-flex;padding:6px 12px;border-radius:999px;background:#38bdf833;border:1px solid rgba(125,211,252,.45)}.state-toggle{border-radius:999px;border:none;padding:10px 16px;font-weight:600;cursor:pointer;color:#0f172a}.state-toggle.on{background:var(--admin-success)}.state-toggle.off{background:var(--admin-danger)}.roles-panel{border-radius:18px;border:1px solid rgba(129,140,248,.25);padding:18px 22px;background:#141632bf}.role-desc{color:#cbd5f5}.muted{color:#94a3b8}.error-text{color:#fecdd3}.policy-card{border-radius:18px;border:1px solid rgba(148,163,184,.18);padding:22px;background:#090e1ce6}.policy-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.policy-member{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(15,23,42,.6)}.policy-member:last-child{border-bottom:none}.policy-remove{border:none;border-radius:8px;padding:8px 12px;background:#f8717140;color:#fee2e2;cursor:pointer}.policy-actions{margin-top:18px;display:flex;flex-direction:column;gap:10px}.policy-actions select{background:#0a1020d9;border:1px solid rgba(148,163,184,.35);color:#f8fafc;padding:10px;border-radius:10px}.console-panel{background:linear-gradient(160deg,#1e1b4bb3,#0a1020eb)}.console-groups{display:flex;flex-direction:column;gap:16px}.console-group{border:1px solid rgba(129,140,248,.3);border-radius:18px;background:#0f122873;box-shadow:inset 0 1px #ffffff0d}.console-group-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;background:transparent;border:none;color:inherit;cursor:pointer;text-align:left}.console-group-toggle h3{margin:0 0 4px;color:#c7d2fe}.console-group-toggle p{margin:0;color:var(--admin-muted)}.console-group-icon{transition:transform .2s ease;font-size:1.2rem;color:#c7d2fe}.console-group-icon.open{transform:rotate(180deg)}.console-list{display:flex;flex-direction:column;gap:16px;margin:0;padding:0 20px 20px}.console-card{border-radius:16px;padding:18px 20px;border:1px solid rgba(147,197,253,.3);background:#11183d8c;text-decoration:none;display:flex;justify-content:space-between;align-items:center;gap:24px;transition:transform .2s ease,border-color .2s ease;color:inherit}.console-card:hover{transform:translateY(-2px);border-color:#818cf899}.console-card h3{margin:0 0 6px}.console-card p{margin:0;color:#cbd5f5}.open-link{font-weight:600;color:#a5b4fc}.preinscriptions-panel{display:flex;gap:24px;align-items:flex-start}.preinscriptions-list,.preinscriptions-detail{flex:1;background:#0a1020cc;border-radius:18px;border:1px solid rgba(148,163,184,.25);padding:18px;box-shadow:inset 0 0 0 1px #ffffff0a}.preinscriptions-list .list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.preinscription-card{border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:14px;margin-bottom:12px;display:flex;gap:12px;justify-content:space-between;cursor:pointer;transition:border .2s,box-shadow .2s;background:#0c132499}.preinscription-card.active{border-color:#38bdf8cc;box-shadow:0 10px 22px #2563eb59}.preinscription-card .card-meta{flex:1;color:#cbd5f5}.preinscription-card .card-actions{display:flex;gap:8px;align-items:center}.preinscriptions-history{margin-top:18px;padding-top:16px;border-top:1px solid rgba(148,163,184,.2);display:flex;flex-direction:column;gap:12px}.history-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.history-card{border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:12px;background:#090e1ca6;display:flex;flex-direction:column;gap:10px}.history-main{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.history-meta{display:flex;flex-direction:column;gap:4px;color:#cbd5f5}.status-pill{align-self:flex-start;border-radius:999px;padding:3px 10px;font-size:.75rem;border:1px solid rgba(226,232,240,.4)}.status-pill.approved{background:#10b9812e;border-color:#10b98180;color:#6ee7b7}.status-pill.rejected{background:#f871712e;border-color:#f8717180;color:#fecaca}.status-pill.activated{background:#22c55e29;border-color:#22c55e73;color:#86efac}.status-pill.pending{background:#fbbf2429;border-color:#fbbf2473;color:#fde68a}.status-pill.expired{background:#f43f5e29;border-color:#f43f5e73;color:#fecdd3}.history-secret{display:flex;flex-direction:column;gap:6px}.history-secret a,.history-secret code{word-break:break-all;font-family:JetBrains Mono,Fira Mono,monospace;font-size:.85rem}.history-secret a{color:#93c5fd}.history-secret code{background:#0c1324cc;border:1px solid rgba(148,163,184,.35);border-radius:8px;padding:6px 8px;color:#bae6fd}.history-actions{display:flex;justify-content:flex-start;gap:8px}.history-notes{border-left:3px solid rgba(248,113,113,.6);padding-left:10px;color:#e2e8f0}.history-notes p{margin:4px 0 0}.preinscriptions-detail header{margin-bottom:14px}.preinscriptions-detail .detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:12px}.preinscriptions-detail label{display:flex;flex-direction:column;gap:6px;color:#cbd5f5}.preinscriptions-detail input,.preinscriptions-detail textarea{border-radius:10px;border:1px solid rgba(148,163,184,.35);padding:10px;background:#0c1324bf;color:#f8fafc;font-family:inherit}.preinscriptions-detail .detail-actions{display:flex;gap:12px;margin-top:8px}.document-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:8px}.document-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid rgba(120,140,200,.2);border-radius:12px;padding:10px 12px;background:#090e2473}.document-name{color:#e7ecff;font-weight:600;word-break:break-word}.document-preview{margin:18px 0;border-radius:16px;border:1px solid rgba(120,140,200,.3);background:#070a1a8c;padding:12px}.document-preview-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.document-preview-actions{display:flex;gap:8px}.document-preview iframe{width:100%;height:420px;border:none;border-radius:12px;background:#fff}.action-message{padding:6px 12px;border-radius:999px;background:#10b98126;color:#a7f3d0;font-size:.9rem}.criticity-haute{background:#f8717126;border-color:#f8717180}.criticity-moyenne{background:#facc1526;border-color:#facc1580}.criticity-basse{background:#4ade8026;border-color:#4ade8066}.mini-title{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;color:#94a3b8;margin-bottom:6px}.admin-observability{display:flex;flex-direction:column;gap:24px}.observability-hero{display:flex;flex-direction:column;gap:16px}.observability-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.summary-card{border-radius:10px;padding:14px 16px;background:#0d1526;border:1px solid rgba(148,163,184,.18);border-left:3px solid rgba(148,163,184,.25);display:flex;flex-direction:column;gap:6px}.summary-card span{color:#cbd5e1;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;font-weight:600}.summary-card strong{font-size:1.55rem;color:#fff;font-weight:700;letter-spacing:-.02em}.observability-hero .panel-subtitle{color:#dbeafe}.observability-alert{border-radius:12px;padding:12px 16px;background:#f871711f;border:1px solid rgba(248,113,113,.35);color:#fecaca;font-weight:500}.observability-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.observability-tabs{display:flex;gap:10px;background:#0c1221cc;border-radius:999px;padding:4px;border:1px solid rgba(148,163,184,.2)}.observability-tab{border:none;border-radius:999px;padding:8px 16px;background:transparent;color:#e2e8f0b3;font-weight:600;cursor:pointer}.observability-tab.active{background:linear-gradient(120deg,#38bdf83d,#6366f159);color:#e2e8f0}.range-selector{display:flex;gap:8px;flex-wrap:wrap}.range-chip{border:1px solid rgba(148,163,184,.3);background:#0c1221b3;color:#cbd5f5;padding:6px 12px;border-radius:999px;font-size:.85rem;cursor:pointer}.range-chip.active{border-color:#3b82f699;background:#3b82f633;color:#dbeafe}.range-chip.ghost{background:transparent}.range-info{color:#94a3b8cc;font-size:.85rem}.empty-state{color:#94a3b8cc;font-style:italic;margin:0}.observability-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px}.observability-sessions header,.observability-metrics header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.observability-sessions.large,.observability-metrics.large{width:100%}.metrics-actions{display:flex;gap:8px;flex-wrap:wrap}.container-filter{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-radius:14px;border:1px solid rgba(148,163,184,.2);padding:12px;background:#080d1abf;margin-bottom:16px}.container-filter h4{margin:0 0 4px}.container-filter p{margin:0;color:#94a3b8bf;font-size:.85rem}.container-chips{display:flex;flex-wrap:wrap;gap:8px}.container-chip{border:1px solid rgba(148,163,184,.35);background:#0c1221b3;color:#cbd5f5;padding:6px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.82rem}.container-chip.active{border-color:#38bdf899;background:#38bdf82e;color:#e2f2ff}.session-count{padding:6px 12px;border-radius:999px;background:#38bdf829;color:#7dd3fc;font-weight:600;font-size:.85rem}.session-table{display:flex;flex-direction:column;gap:8px}.session-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr) minmax(0,.6fr) minmax(0,.7fr);gap:12px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid rgba(148,163,184,.2);background:#080d1acc;color:#e2e8f0}.session-row strong{display:block;font-weight:600}.session-row small{color:#94a3b8bf;font-size:.8rem}.session-head{text-transform:uppercase;font-size:.72rem;letter-spacing:.08em;background:transparent;border:none;padding:0;color:#94a3b8b3}.session-pill{justify-self:start;padding:4px 10px;border-radius:999px;background:#6366f133;color:#c7d2fe;font-weight:600;font-size:.78rem}.metric-panel{margin-top:14px;padding:12px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#080d1abf}.metric-panel.large .metric-chart-svg{height:240px}.metric-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.metric-header h4{margin:0;font-size:1rem}.metric-header-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.metric-header-count{color:#94a3b8bf;font-size:.8rem}.metric-selected{border:1px solid rgba(56,189,248,.4);background:#38bdf81f;color:#bae6fd;padding:4px 10px;border-radius:999px;font-size:.78rem;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:inherit}.metric-selected:hover{background:#38bdf833}.metric-selected:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}.metric-hint{color:#94a3b8b3;font-size:.78rem}.metric-chart{display:grid;grid-template-columns:52px 1fr;grid-template-rows:1fr auto;gap:6px 10px;align-items:stretch}.metric-chart-y{display:flex;flex-direction:column;justify-content:space-between;font-size:.72rem;color:#bfdbfebf;text-align:right;padding:8px 0}.metric-chart-svg{height:140px;border-radius:12px;background:#0c1221d9;border:1px solid rgba(148,163,184,.2);padding:8px}.metric-chart-svg svg{width:100%;height:100%}.metric-chart-x{grid-column:2;display:flex;justify-content:space-between;height:16px;font-size:.68rem;color:#bfdbfed9}.metric-grid-line{stroke:#94a3b833;stroke-dasharray:2 2;stroke-width:.6}.metric-legend{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.metric-legend-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#0f172ab3;border:1px solid rgba(148,163,184,.15);text-align:left;color:inherit;font:inherit;cursor:pointer;appearance:none}.metric-legend-item.missing{opacity:.6}.metric-legend-item.active{border-color:#38bdf899;background:#38bdf81f}.metric-legend-item:focus-visible{outline:2px solid rgba(56,189,248,.5);outline-offset:2px}.metric-legend-item strong{display:block;font-size:.88rem;margin-bottom:4px}.legend-item-body{display:flex;flex-direction:column;gap:0;min-width:0}.legend-item-stats{display:flex;gap:8px;flex-wrap:wrap}.legend-item-stats span{font-size:.72rem;color:#94a3b8a6;white-space:nowrap}.legend-item-stats em{font-style:normal;font-weight:600;color:#94a3b873;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;margin-right:2px}.legend-no-data{color:#94a3b880;font-size:.78rem}.metric-grid-line-v{stroke-dasharray:1 4;stroke-opacity:.5}.metric-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.alert-panel{margin-top:18px;border-radius:16px;border:1px solid rgba(148,163,184,.2);background:#080d1abf;padding:14px}.alert-panel header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.alert-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.alert-item{border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.alert-item strong{font-size:.95rem}.alert-item.warning{background:#fbbf241f;border:1px solid rgba(251,191,36,.4);color:#fde68a}.alert-item.critical{background:#f8717126;border:1px solid rgba(248,113,113,.45);color:#fecaca}.observability-hero-title{display:flex;align-items:flex-start;gap:12px}@keyframes pulse-ring{0%{box-shadow:0 0 #22c55eb3}70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}.live-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;flex-shrink:0;margin-top:10px;animation:pulse-ring 2.2s ease-out infinite}.container-chip.status-warning{border-color:#fbbf2473}.container-chip.status-warning.active{border-color:#fbbf24a6;background:#fbbf2426;color:#fef3c7}.container-chip.status-critical{border-color:#f8717173}.container-chip.status-critical.active{border-color:#f87171a6;background:#f8717126;color:#fecaca}.alert-item-header{display:flex;align-items:center;gap:6px}.alert-icon{font-size:.65rem;flex-shrink:0}.alert-message{font-size:.85rem;opacity:.9}.alert-ok{color:#22c55ecc;font-style:normal}.metric-expand-btn{background:none;border:1px solid rgba(148,163,184,.25);color:#94a3b8b3;border-radius:6px;padding:3px 7px;font-size:.85rem;cursor:pointer;margin-left:auto;margin-right:8px;transition:border-color .15s,color .15s}.metric-expand-btn:hover{border-color:#38bdf880;color:#38bdf8}.metric-modal-overlay{position:fixed;inset:0;background:#0a0f1ef0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.metric-modal-panel{background:linear-gradient(140deg,#0f172afa,#080e1dfc);border:1px solid rgba(148,163,184,.2);border-radius:16px;padding:28px;width:min(1600px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow-y:auto}.metric-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.metric-modal-header h3{margin:0;font-size:1.2rem;color:#e2e8f0}.metric-modal-close{background:#94a3b81a;border:1px solid rgba(148,163,184,.25);color:#94a3b8;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;transition:background .15s,color .15s}.metric-modal-close:hover{background:#f8717126;border-color:#f8717166;color:#f87171}.metric-modal-panel .metric-panel{flex:0 0 auto;display:flex;flex-direction:column}.metric-modal-panel .metric-chart{flex:0 0 auto}.metric-modal-panel .metric-chart-svg{height:clamp(220px,42vh,430px);min-height:220px}.metric-chart-svg{position:relative}.metric-chart-svg svg{display:block}@media(max-width:960px){.admin-shell{grid-template-columns:1fr;gap:20px}.admin-shell-divider{display:none}.admin-shell[data-nav-collapsed=true] .admin-nav{opacity:1;visibility:visible;pointer-events:auto;transform:none}}.metric-tooltip{background:#0a0f1ef5;border:1px solid rgba(56,189,248,.35);border-radius:10px;padding:8px 12px;min-width:160px;max-width:260px;box-shadow:0 8px 24px #02061799;z-index:300;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.metric-tooltip-time{font-size:.72rem;color:#94a3b8cc;margin-bottom:6px;letter-spacing:.04em;font-family:JetBrains Mono,Fira Mono,monospace}.metric-tooltip-row{display:flex;align-items:center;gap:6px;padding:2px 0}.metric-tooltip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.metric-tooltip-name{flex:1;font-size:.78rem;color:#cbd5e1e6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-tooltip-value{font-size:.8rem;font-weight:700;color:#e2e8f0;white-space:nowrap;font-family:JetBrains Mono,Fira Mono,monospace}.zoom-reset-btn{margin-left:12px;border:1px solid rgba(56,189,248,.4);background:#38bdf81a;color:#7dd3fc;border-radius:999px;padding:2px 10px;font-size:.78rem;cursor:pointer;font:inherit;transition:background .15s}.zoom-reset-btn:hover{background:#38bdf833}.health-panel{margin-top:18px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#080d1abf;padding:14px}.health-panel header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.health-panel h4{margin:0}.health-empty{font-size:.85rem}.health-empty code{background:#0c1324cc;border:1px solid rgba(148,163,184,.3);border-radius:6px;padding:2px 6px;font-family:JetBrains Mono,Fira Mono,monospace;font-size:.82rem;color:#bae6fd}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.health-card{border-radius:12px;padding:12px 14px;border:1px solid rgba(148,163,184,.2);background:#0c1221cc;display:flex;flex-direction:column;gap:8px}.health-card.status-up{border-color:#22c55e59}.health-card.status-degraded{border-color:#fbbf2459}.health-card.status-down{border-color:#f8717166}.health-card-header{display:flex;align-items:center;gap:8px}.health-card-header strong{flex:1;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.health-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.health-dot-up{background:#22c55e;box-shadow:0 0 5px #22c55e88}.health-dot-degraded{background:#f59e0b}.health-dot-down{background:#ef4444;box-shadow:0 0 5px #ef444488}.health-badge{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;letter-spacing:.06em}.health-badge-up{background:#22c55e2e;color:#86efac;border:1px solid rgba(34,197,94,.4)}.health-badge-degraded{background:#fbbf242e;color:#fde68a;border:1px solid rgba(251,191,36,.4)}.health-badge-down{background:#f871712e;color:#fecaca;border:1px solid rgba(248,113,113,.4)}.health-card-meta{display:flex;gap:10px;font-size:.75rem;color:#94a3b8b3}.uptime-ok{color:#86efac}.uptime-warn{color:#fde68a}.uptime-crit{color:#fecaca}.uptime-na{color:#94a3b866}.stats-table{display:flex;flex-direction:column;gap:4px}.stats-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;align-items:center;padding:8px 10px;border-radius:8px;font-size:.82rem}.stats-head{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8a6;padding-bottom:4px;border-bottom:1px solid rgba(148,163,184,.15)}.stats-row:not(.stats-head):hover{background:#38bdf80f}.stats-route{font-family:JetBrains Mono,Fira Mono,monospace;font-size:.78rem;color:#bae6fd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-error{color:#fca5a5}.alert-history-panel{margin-top:14px;border-radius:14px;border:1px solid rgba(251,191,36,.2);background:#080d1abf;padding:14px}.alert-history-panel header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.alert-history-panel h4{margin:0}.alert-history-list{display:flex;flex-direction:column;gap:6px}.alert-history-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid transparent;font-size:.82rem}.alert-history-item.level-critical{background:#f8717114;border-color:#f8717140}.alert-history-item.level-warning{background:#fbbf2414;border-color:#fbbf2440}.alert-history-icon{font-size:.6rem;flex-shrink:0;margin-top:3px;color:#f87171cc}.level-warning .alert-history-icon{color:#fbbf24cc}.alert-history-body{flex:1;display:flex;flex-direction:column;gap:2px}.alert-history-body strong{color:#e2e8f0;font-size:.82rem}.alert-history-body span{color:#94a3b8cc;font-size:.78rem}.alert-history-time{color:#94a3b88c;font-size:.72rem;white-space:nowrap;flex-shrink:0}.admin-alerts-page{display:flex;flex-direction:column;gap:20px}.admin-alerts-stack{display:flex;flex-direction:column;gap:16px}.admin-alerts-create,.admin-alerts-presets,.admin-alerts-history{border-radius:16px;border:1px solid rgba(148,163,184,.2);background:#080d1ab8;padding:16px}.admin-alerts-create header,.admin-alerts-presets header,.admin-alerts-history header{margin-bottom:12px}.admin-alerts-create h3,.admin-alerts-presets h3,.admin-alerts-history h3{margin:0 0 4px}.admin-alerts-create p,.admin-alerts-presets p,.admin-alerts-history p{margin:0;color:#94a3b8d9}.admin-alerts-form{display:flex;flex-direction:column;gap:12px}.admin-alerts-form label{display:flex;flex-direction:column;gap:6px;color:#cbd5f5;font-size:.86rem}.admin-alerts-form input,.admin-alerts-form textarea,.admin-alerts-form select{border-radius:10px;border:1px solid rgba(148,163,184,.35);padding:10px;background:#0c1324d9;color:#f8fafc;font-family:inherit;font-size:.92rem}.admin-alerts-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-alerts-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-alerts-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.admin-alerts-preset-card{border-radius:12px;border:1px solid rgba(148,163,184,.24);background:#0f172ab8;padding:12px;display:flex;flex-direction:column;gap:8px}.admin-alerts-preset-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-alerts-preset-message{color:#e2e8f0;font-size:.9rem}.admin-alerts-level{border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;letter-spacing:.03em}.admin-alerts-level.level-1{background:#38bdf82e;border:1px solid rgba(56,189,248,.4);color:#bae6fd}.admin-alerts-level.level-2{background:#f871712e;border:1px solid rgba(248,113,113,.45);color:#fecaca}.admin-alerts-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.admin-alerts-history-item{border-radius:12px;border:1px solid rgba(148,163,184,.24);background:#0c1221bf;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.admin-alerts-history-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-alerts-history-main{display:flex;align-items:center;gap:8px;min-width:0}.admin-alerts-history-main strong{color:#e2e8f0}.admin-alerts-status{border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;border:1px solid rgba(148,163,184,.35);color:#cbd5f5}.admin-alerts-status.active{border-color:#22c55e73;color:#86efac;background:#22c55e26}.admin-alerts-status.upcoming{border-color:#38bdf873;color:#bae6fd;background:#38bdf824}.admin-alerts-status.ended{border-color:#94a3b859;color:#cbd5f5;background:#94a3b81f}.admin-alerts-history-meta{display:grid;gap:2px;color:#94a3b8d6;font-size:.8rem;font-family:JetBrains Mono,Fira Mono,monospace}.admin-traceability-page{display:flex;flex-direction:column;gap:14px}.admin-traceability-filters{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;gap:10px;align-items:end}.admin-traceability-filters label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:#94a3b8eb}.admin-traceability-filters input,.admin-traceability-filters select{border:1px solid rgba(148,163,184,.28);background:#080d1abf;color:#dbeafe;border-radius:10px;padding:7px 10px;font-size:.86rem}.admin-traceability-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-traceability-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#94a3b8e6;font-size:.84rem}.admin-traceability-pagination{display:flex;gap:8px}.admin-traceability-table-wrap{width:100%;overflow:auto;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:#080d1abf}.admin-traceability-table{width:100%;border-collapse:collapse;min-width:980px}.admin-traceability-table th,.admin-traceability-table td{padding:10px 11px;border-bottom:1px solid rgba(148,163,184,.16);text-align:left;vertical-align:top;font-size:.82rem}.admin-traceability-table th{text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;color:#94a3b8d9;background:#0f172aa6;position:sticky;top:0;z-index:1}.admin-traceability-table tbody tr:hover td{background:#1e293b70}.admin-traceability-event-chip{display:inline-flex;padding:4px 9px;border-radius:999px;border:1px solid rgba(56,189,248,.35);background:#38bdf824;color:#bae6fd;font-weight:600;white-space:nowrap}.admin-traceability-details summary{cursor:pointer;color:#7dd3fc;font-weight:600}.admin-traceability-details pre{margin:8px 0 0;padding:10px;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#020617bf;color:#dbeafe;font-size:.74rem;line-height:1.45;max-height:280px;overflow:auto}@media(max-width:720px){.metric-modal-overlay{padding:0}.metric-modal-panel{width:100%;max-height:100vh;border-radius:0}.admin-header{flex-direction:column}.admin-meta{width:100%}.admin-overview,.admin-columns,.observability-grid,.session-row{grid-template-columns:1fr}.observability-controls{flex-direction:column;align-items:flex-start}.container-filter{flex-direction:column}.admin-alerts-grid-2,.admin-traceability-filters{grid-template-columns:1fr}.admin-traceability-toolbar{flex-direction:column;align-items:flex-start}.table-head,.table-row{grid-template-columns:1fr}}.hab-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.hab-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.hab-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--admin-muted)}.hab-legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.hab-legend-dot.active{background:var(--admin-success)}.hab-legend-dot.warning{background:#fb923c}.hab-legend-dot.critical{background:var(--admin-danger)}.hab-legend-dot.none{background:var(--admin-muted);opacity:.35}.hab-matrix-wrapper{overflow-x:auto;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface)}.hab-matrix{width:max-content;min-width:100%;border-collapse:collapse;font-size:13px}.hab-matrix th,.hab-matrix td{padding:10px 16px;border-bottom:1px solid var(--admin-border);text-align:center;white-space:nowrap;vertical-align:middle}.hab-matrix th{background:#0a101ef2;color:var(--admin-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:2}.hab-matrix .col-person{text-align:left;position:sticky;left:0;min-width:190px;z-index:3;background:#0a101ef7}.hab-matrix thead th.col-person{z-index:4}.hab-matrix tbody tr:last-child td{border-bottom:none}.hab-matrix tbody tr:hover td{background:#38bdf80a}.hab-matrix tbody tr:hover td.col-person{background:#0a101efa}.hab-cell-none{color:var(--admin-muted);opacity:.35;font-size:15px}.hab-cell-active{color:var(--admin-success);font-weight:700}.hab-cell-warning{color:#fb923c;font-weight:700}.hab-cell-critical{color:var(--admin-danger);font-weight:700}.hab-cell-clickable{cursor:pointer;transition:background .12s}.hab-cell-clickable:hover{background:#38bdf81a!important}.col-actions{min-width:90px}.hab-admin-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--admin-border);background:transparent;color:var(--admin-muted);transition:border-color .2s,color .2s,background .2s;font-family:inherit}.hab-admin-btn:hover{border-color:var(--admin-accent);color:var(--admin-accent)}.hab-admin-btn.active{border-color:var(--admin-accent);background:#38bdf81a;color:var(--admin-accent)}.hab-actions-row{margin-top:16px}.hab-add-form{margin-top:4px;padding:16px 20px;border:1px solid var(--admin-border);border-radius:8px;background:#0e163099}.hab-add-form h4{margin:0 0 14px;font-size:14px;font-weight:600;color:var(--admin-text)}.hab-add-fields{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}.hab-add-fields label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500;color:var(--admin-muted)}.hab-add-fields input{padding:8px 12px;border-radius:6px;border:1px solid var(--admin-border);background:#0e1630d9;color:var(--admin-text);font-size:13px;width:200px;font-family:inherit}.hab-add-fields input:focus{outline:none;border-color:var(--admin-accent)}.hab-add-actions{display:flex;gap:8px}.hab-confirm-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.hab-confirm-dialog{background:var(--admin-bg-alt);border:1px solid var(--admin-border-strong);border-radius:12px;padding:28px 32px;max-width:460px;width:90%;box-shadow:0 24px 64px #00000080}.hab-confirm-dialog p{margin:0 0 10px;font-size:14px;line-height:1.65;color:var(--admin-text)}.hab-confirm-dialog p:last-of-type{margin-bottom:0;color:var(--admin-muted);font-size:13px}.hab-confirm-actions{display:flex;gap:8px;margin-top:22px;justify-content:flex-end}.hab-alerts{margin-top:32px;padding-top:28px;border-top:1px solid var(--admin-border)}.hab-alerts h3{font-size:15px;font-weight:600;margin:0 0 18px;color:var(--admin-text)}.hab-alert-group{margin-bottom:18px}.hab-alert-group:last-child{margin-bottom:0}.hab-alert-group h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin:0 0 10px}.hab-alert-group h4.critical-title{color:var(--admin-danger)}.hab-alert-group h4.warning-title{color:#fb923c}.hab-alert-list{display:flex;flex-wrap:wrap;gap:8px}.hab-alert-item{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;font-size:12px;border:1px solid;flex-wrap:wrap}.hab-alert-item.warning{background:#fb923c12;border-color:#fb923c47;color:#fb923c}.hab-alert-item.critical{background:#f8717114;border-color:#f871714d;color:var(--admin-danger)}.hab-alert-condition{opacity:.7;font-style:italic}.ghost-btn.small{padding:4px 10px;font-size:12px}.grafana-embed-section{padding:0;overflow:hidden;border-radius:12px;min-height:85vh;display:flex;flex-direction:column}.grafana-iframe{width:100%;flex:1;min-height:85vh;border:none;border-radius:12px;background:#111217}:root{--pdf-bg: #eef4fb;--pdf-card: #ffffff;--pdf-border: #d5e2f3;--pdf-text: #0f172a;--pdf-muted: #475569;--pdf-primary: #1565c0;--pdf-primary-soft: #dbeafe;--pdf-success: #166534;--pdf-success-soft: #dcfce7;--pdf-warning: #92400e;--pdf-warning-soft: #fef3c7;--pdf-danger: #b91c1c;--pdf-danger-soft: #fee2e2;--pdf-neutral: #374151;--pdf-neutral-soft: #f1f5f9}.pdf-page{min-height:calc(100vh - 64px);background:radial-gradient(circle at 8% 2%,rgba(21,101,192,.1),transparent 44%),radial-gradient(circle at 95% 0%,rgba(30,136,229,.1),transparent 42%),var(--pdf-bg);color:var(--pdf-text);padding:24px clamp(16px,2vw,28px) 40px}.pdf-label{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:#334155}.pdf-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.pdf-header h1{margin:4px 0;font-size:clamp(1.1rem,.8rem + 1.2vw,1.6rem)}.pdf-subtitle{margin:0;color:var(--pdf-muted)}.pdf-card{background:var(--pdf-card);border:1px solid var(--pdf-border);border-radius:10px;padding:18px 20px}.pdf-card+.pdf-card{margin-top:12px}.pdf-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--pdf-border)}.pdf-table{width:100%;border-collapse:collapse;background:var(--pdf-card);font-size:.875rem}.pdf-table th{background:#f8fafc;border-bottom:1px solid var(--pdf-border);padding:10px 14px;text-align:left;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--pdf-muted)}.pdf-table td{padding:11px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.pdf-table tr:last-child td{border-bottom:none}.pdf-table tr:hover td{background:#f8fafc}.pdf-table-link{cursor:pointer;color:var(--pdf-primary);font-weight:500;text-decoration:none}.pdf-table-link:hover{text-decoration:underline}.pdf-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.pdf-badge--depose{background:#e0e7ff;color:#3730a3}.pdf-badge--traite{background:var(--pdf-success-soft);color:var(--pdf-success)}.pdf-badge--en_attente{background:var(--pdf-warning-soft);color:var(--pdf-warning)}.pdf-badge--en_cours{background:#dbeafe;color:#1d4ed8}.pdf-badge--inconnu{background:var(--pdf-neutral-soft);color:var(--pdf-neutral)}.pdf-badge--erreur{background:var(--pdf-danger-soft);color:var(--pdf-danger)}.pdf-badge--erreur_validation{background:#ffedd5;color:#9a3412}.pdf-row-notif{display:inline-block;max-width:360px;font-size:.8rem;line-height:1.25;border-radius:6px;padding:4px 8px}.pdf-row-notif--info{background:#eff6ff;color:#1d4ed8}.pdf-row-notif--success{background:#dcfce7;color:#166534}.pdf-row-notif--warning{background:#fef3c7;color:#92400e}.pdf-row-notif--error{background:#fee2e2;color:#b91c1c}.pdf-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:7px;font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,background .15s}.pdf-btn:disabled{opacity:.55;cursor:not-allowed}.pdf-btn--primary{background:var(--pdf-primary);color:#fff}.pdf-btn--primary:hover:not(:disabled){background:#1048a0}.pdf-btn--ghost{background:transparent;color:var(--pdf-primary);border:1px solid var(--pdf-border)}.pdf-btn--ghost:hover:not(:disabled){background:var(--pdf-primary-soft)}.pdf-btn--danger{background:transparent;color:var(--pdf-danger);border:1px solid #fca5a5}.pdf-btn--danger:hover:not(:disabled){background:var(--pdf-danger-soft)}.pdf-form{display:flex;flex-direction:column;gap:14px}.pdf-field{display:flex;flex-direction:column;gap:5px}.pdf-field label{font-size:.82rem;font-weight:600;color:#334155}.pdf-field input,.pdf-field textarea,.pdf-field select{padding:8px 11px;border:1px solid var(--pdf-border);border-radius:6px;font-size:.875rem;background:#fff;color:var(--pdf-text);outline:none;transition:border-color .15s}.pdf-field input:focus,.pdf-field textarea:focus{border-color:var(--pdf-primary)}.pdf-field textarea{resize:vertical;min-height:70px}.pdf-modal :is(input:not([type=checkbox]):not([type=radio]),textarea,select){background:#fff;color:#0f172a;border:1px solid var(--pdf-border)}.pdf-modal :is(input:not([type=checkbox]):not([type=radio]),textarea,select)::placeholder{color:#64748b;opacity:1}.pdf-modal :is(input:not([type=checkbox]):not([type=radio]),textarea,select):focus{border-color:var(--pdf-primary)}.pdf-modal select option{background:#fff;color:#0f172a}.pdf-rules-list{display:flex;flex-direction:column;gap:8px}.pdf-rule-row{display:grid;grid-template-columns:1fr 80px auto;gap:8px;align-items:center}.pdf-field-row{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;align-items:center}.pdf-add-rule-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;border:1px dashed var(--pdf-border);background:transparent;color:var(--pdf-primary);margin-top:6px;transition:background .15s}.pdf-add-rule-btn:hover{background:var(--pdf-primary-soft)}.pdf-remove-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:5px;border:none;cursor:pointer;background:transparent;color:var(--pdf-danger);font-size:1rem;transition:background .15s}.pdf-remove-btn:hover{background:var(--pdf-danger-soft)}.pdf-upload-zone{border:2px dashed var(--pdf-border);border-radius:10px;padding:28px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:#f8fafc}.pdf-upload-zone:hover,.pdf-upload-zone.drag-over{border-color:var(--pdf-primary);background:var(--pdf-primary-soft)}.pdf-upload-zone input[type=file]{display:none}.pdf-upload-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}.pdf-upload-icon{font-size:2rem;margin-bottom:8px}.pdf-upload-text{font-size:.9rem;color:var(--pdf-muted);margin:0}.pdf-json-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.pdf-json-item{background:#f8fafc;border:1px solid var(--pdf-border);border-radius:7px;padding:10px 13px}.pdf-json-key{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pdf-muted);margin-bottom:4px}.pdf-json-val{font-size:.875rem;color:var(--pdf-text);word-break:break-word}.pdf-json-null{color:#94a3b8;font-style:italic}.pdf-error{background:var(--pdf-danger-soft);color:var(--pdf-danger);border:1px solid #fca5a5;border-radius:7px;padding:10px 14px;font-size:.875rem}.pdf-empty{text-align:center;padding:40px 20px;color:var(--pdf-muted)}.pdf-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.pdf-modal{background:#fff;border-radius:12px;width:min(640px,100%);max-height:90vh;overflow-y:auto;padding:24px;box-shadow:0 20px 60px #0000002e}.pdf-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.pdf-modal-header h2{margin:0;font-size:1.1rem}.pdf-modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--pdf-muted);padding:4px;line-height:1;border-radius:5px}.pdf-modal-close:hover{background:#f1f5f9}.pdf-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.pdf-section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--pdf-muted);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--pdf-border)}.pdf-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;cursor:pointer;-webkit-user-select:none;user-select:none}.pdf-viewer-card{padding:12px}.pdf-viewer-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.pdf-viewer-iframe{width:100%;height:520px;border:none;border-radius:8px;background:#fff}.pdf-detail-layout{display:block}.pdf-detail-layout.with-viewer{display:grid;grid-template-columns:minmax(0,40%) minmax(0,60%);gap:16px;align-items:start}.pdf-detail-main{min-width:0}.pdf-detail-viewer{position:sticky;top:12px}@media(max-width:1200px){.pdf-detail-layout.with-viewer{grid-template-columns:1fr}.pdf-detail-viewer{position:static}.pdf-viewer-iframe{height:460px}}.pdf-batch-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc;border:1px solid var(--pdf-border);border-radius:8px;padding:8px 14px;margin-bottom:8px;flex-wrap:wrap}.pdf-batch-progress{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#1d4ed8;font-weight:500}.pdf-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--pdf-primary);flex-shrink:0}.pdf-checkbox:disabled{cursor:not-allowed;opacity:.5}.pdf-row-selected td{background:#eff6ff!important}.pdf-tabs{display:flex;gap:2px;margin-bottom:20px;border-bottom:2px solid var(--pdf-border)}.pdf-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:none;background:transparent;color:var(--pdf-muted);font-size:.875rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:6px 6px 0 0;transition:color .15s,border-color .15s,background .15s}.pdf-tab:hover{color:var(--pdf-primary);background:var(--pdf-primary-soft)}.pdf-tab--active{color:var(--pdf-primary);border-bottom-color:var(--pdf-primary);background:var(--pdf-primary-soft)}.pdf-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#e2e8f0;color:#475569;font-size:.72rem;font-weight:700}.pdf-tab--active .pdf-tab-count{background:var(--pdf-primary);color:#fff}.pdf-badge--valide{background:#d1fae5;color:#065f46}.pdf-dev-placeholder{text-align:center;padding:60px 20px}.pdf-dev-icon{font-size:2.5rem;margin-bottom:12px}.pdf-dev-title{font-size:1.1rem;font-weight:700;color:var(--pdf-text);margin:0 0 8px}.pdf-dev-sub{margin:0;font-size:.875rem;color:var(--pdf-muted)}.pdf-review-modal{width:min(1140px,96vw);max-height:92vh;display:flex;flex-direction:column}.pdf-review-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;flex:1;min-height:0;margin-bottom:4px}.pdf-review-viewer{display:flex;flex-direction:column;min-height:0}.pdf-review-viewer-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;min-height:200px;background:#f8fafc;border:1px solid var(--pdf-border);border-radius:8px;font-size:.875rem;color:var(--pdf-muted)}.pdf-review-iframe{width:100%;flex:1;min-height:480px;border:1px solid var(--pdf-border);border-radius:8px;background:#fff}.pdf-review-right{display:flex;flex-direction:column;min-height:0;overflow:hidden}@media(max-width:860px){.pdf-review-layout{grid-template-columns:1fr}.pdf-review-iframe{min-height:320px}}.pdf-review-null-banner{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:7px;padding:10px 14px;font-size:.875rem;margin-bottom:16px}.pdf-review-fields{display:grid;grid-template-columns:1fr;gap:10px;overflow-y:auto;flex:1;padding-right:4px;margin-bottom:4px}.pdf-review-field{display:flex;flex-direction:column;gap:5px}.pdf-review-field--null .pdf-review-input{border-color:#f59e0b;background:#fffbeb}.pdf-review-field-label{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pdf-muted)}.pdf-review-null-tag{display:inline-block;padding:1px 6px;border-radius:4px;background:#fde68a;color:#92400e;font-size:.68rem;font-weight:700;text-transform:none;letter-spacing:0}.pdf-review-input{padding:7px 10px;border:1px solid var(--pdf-border);border-radius:6px;font-size:.875rem;background:#fff;color:var(--pdf-text);outline:none;transition:border-color .15s;resize:vertical;font-family:inherit}.pdf-review-input:focus{border-color:var(--pdf-primary)}.pdf-review-success{background:var(--pdf-success-soft);color:var(--pdf-success);border:1px solid #86efac;border-radius:7px;padding:10px 14px;font-size:.875rem}.pdf-spinner{display:inline-block;width:16px;height:16px;border:2px solid #bfdbfe;border-top-color:#3b82f6;border-radius:50%;animation:pdf-spin .8s linear infinite;flex-shrink:0}@keyframes pdf-spin{to{transform:rotate(360deg)}}.pdf-docs-page{--pdf-docs-bg: #edf4fb;--pdf-docs-surface: #ffffff;--pdf-docs-surface-soft: #f7fbff;--pdf-docs-border: #c9daee;--pdf-docs-border-strong: #a9c4e4;--pdf-docs-text: #11243f;--pdf-docs-muted: #4c6481;--pdf-docs-accent: #0a7adf;--pdf-docs-accent-soft: #e2f0ff;--pdf-docs-shadow: 0 14px 36px rgba(10, 42, 84, .12);color-scheme:light;font-family:Manrope,Avenir Next,Segoe UI,sans-serif;background:radial-gradient(circle at 8% -2%,rgba(10,122,223,.16),transparent 42%),radial-gradient(circle at 95% -4%,rgba(17,38,75,.12),transparent 38%),linear-gradient(180deg,#e9f3fd,#f6fafd 44%,#f4f9fd)}.pdf-docs-page>*{animation:pdf-enter-up .35s ease}.pdf-docs-page .pdf-tabs{position:relative;display:inline-flex;gap:6px;margin-bottom:18px;padding:7px;border:1px solid var(--pdf-docs-border);border-radius:18px;background:linear-gradient(180deg,#fff,#f6fafe);box-shadow:0 10px 24px #11264b1a;overflow-x:auto;max-width:100%}.pdf-docs-page .pdf-tab{border-radius:12px;border:1px solid transparent;color:var(--pdf-docs-muted);font-weight:700;padding:9px 16px;white-space:nowrap}.pdf-docs-page .pdf-tab:hover{background:var(--pdf-docs-accent-soft);color:#0f2e54}.pdf-docs-page .pdf-tab--active{background:linear-gradient(135deg,#e3f1ff,#cfe7ff);border-color:#a7caeb;color:#0f2e54}.pdf-docs-page .pdf-tab-count{background:#d8e5f2;color:#33516f}.pdf-docs-page .pdf-tab--active .pdf-tab-count{background:var(--pdf-docs-accent);color:#fff}.pdf-docs-page .pdf-upload-zone{border:2px dashed var(--pdf-docs-border-strong);border-radius:22px;padding:20px 16px;background:linear-gradient(160deg,#fffffffa,#f1f8fffa);box-shadow:var(--pdf-docs-shadow)}.pdf-docs-page .pdf-upload-zone:hover,.pdf-docs-page .pdf-upload-zone.drag-over{border-color:var(--pdf-docs-accent);background:linear-gradient(160deg,#f8fcff,#e5f2ff)}.pdf-docs-page .pdf-upload-icon{font-size:2rem;margin-bottom:6px;filter:saturate(1.2)}.pdf-docs-page .pdf-upload-text{font-size:.98rem;color:#23405f;font-weight:650;letter-spacing:.01em}.pdf-docs-page .pdf-upload-actions{margin-top:14px;gap:10px}.pdf-docs-page .pdf-btn{border-radius:11px;font-weight:700;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.pdf-docs-page .pdf-btn:hover:not(:disabled){transform:translateY(-1px)}.pdf-docs-page .pdf-btn--primary{background:linear-gradient(135deg,#0876db,#0a67be);box-shadow:0 8px 18px #0a6bc547}.pdf-docs-page .pdf-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,#056ac6,#0857a0)}.pdf-docs-page .pdf-btn--ghost{background:#fff;border-color:var(--pdf-docs-border);color:#1f4164}.pdf-docs-page .pdf-btn--ghost:hover:not(:disabled){background:#ecf5ff;border-color:#98bfeb}.pdf-docs-page .pdf-btn--danger{background:#fff;border-color:#f6b5b5;color:#cc2f2f}.pdf-docs-page .pdf-sort-card{margin-bottom:14px;padding:12px 14px;border-radius:16px;border-color:var(--pdf-docs-border);background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 24px #0d2d5714}.pdf-docs-page .pdf-sort-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.pdf-docs-page .pdf-sort-label{font-size:.76rem;font-weight:800;color:#4e6886;text-transform:uppercase;letter-spacing:.08em}.pdf-docs-page .pdf-sort-select{min-width:180px;border:1px solid var(--pdf-docs-border);border-radius:10px;background:#fff;color:#122a49;padding:7px 10px;font-weight:600}.pdf-docs-page .pdf-batch-bar{border-radius:14px;border-color:var(--pdf-docs-border);background:linear-gradient(180deg,#fff,#f5faff);box-shadow:0 8px 20px #0d2d5714;margin-bottom:12px}.pdf-docs-page .pdf-checkbox{accent-color:#0a7adf}.pdf-docs-page .pdf-table-wrap{border-radius:16px;border-color:var(--pdf-docs-border);background:var(--pdf-docs-surface);box-shadow:var(--pdf-docs-shadow)}.pdf-docs-page .pdf-table{background:var(--pdf-docs-surface);color:var(--pdf-docs-text)}.pdf-docs-page .pdf-table th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#f7fbff,#edf5fe);border-bottom-color:var(--pdf-docs-border);color:#3e5877;font-weight:800;letter-spacing:.08em}.pdf-docs-page .pdf-select-head{display:flex;flex-direction:column;align-items:center;gap:4px;line-height:1.15}.pdf-docs-page .pdf-select-cell{text-align:center}.pdf-docs-page .pdf-select-na{color:#8da2bb;font-size:.86rem}.pdf-docs-page .pdf-table td{border-bottom-color:#e8f0f9}.pdf-docs-page .pdf-table tr:hover td{background:#f3f9ff}.pdf-docs-page .pdf-row-selected td{background:#e8f3ff!important}.pdf-docs-page .pdf-table-link{color:#0f62b3;font-weight:650}.pdf-docs-page .pdf-table-link:hover{color:#0a4d90}.pdf-docs-page .pdf-row-notif{border:1px solid transparent;border-radius:9px;padding:5px 10px;font-size:.79rem}.pdf-docs-page .pdf-row-notif--info{background:#e9f4ff;border-color:#cce4ff;color:#22598f}.pdf-docs-page .pdf-row-notif--success{background:#e8f8ee;border-color:#bfebcc;color:#19673a}.pdf-docs-page .pdf-row-notif--warning{background:#fff6e4;border-color:#ffe1a9;color:#8a5d0d}.pdf-docs-page .pdf-row-notif--error{background:#ffebeb;border-color:#ffc8c8;color:#9e2f2f}.pdf-docs-page .pdf-success{background:#e9f9ef;color:#17673a;border:1px solid #b9e8c8;border-radius:12px;padding:11px 14px;font-size:.88rem;box-shadow:0 8px 18px #146c381a}.pdf-docs-page .pdf-error{border-radius:12px}.pdf-docs-page .pdf-empty,.pdf-docs-page .pdf-dev-placeholder{border:1px dashed var(--pdf-docs-border);border-radius:16px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 24px #0d2d5714}.pdf-docs-page .pdf-dev-title{color:#203c5d}.pdf-docs-page .pdf-dev-sub{color:#527093}@media(max-width:900px){.pdf-docs-page{padding:16px 12px 30px}.pdf-docs-page .pdf-upload-zone{padding:16px 12px}.pdf-docs-page .pdf-upload-text{font-size:.9rem}.pdf-docs-page .pdf-tab{padding:8px 12px;font-size:.82rem}.pdf-docs-page .pdf-sort-select{min-width:148px;width:calc(50% - 5px)}}@keyframes pdf-enter-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.umenu-wrap{position:relative}.umenu-trigger{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid #e2e8f0;border-radius:999px;padding:5px 12px 5px 5px;cursor:pointer;transition:background .15s,border-color .15s}.umenu-trigger:hover{background:#f0f9ff;border-color:#38bdf8}.umenu-avatar{width:30px;height:30px;border-radius:50%;background:#1971f8;color:#fff;font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.umenu-name{font-size:.9rem;color:#0f172a;font-weight:500;white-space:nowrap}.umenu-chevron{font-size:.75rem;color:#64748b;transition:transform .2s;display:inline-block}.umenu-chevron.open{transform:rotate(180deg)}.umenu-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 12px 32px #02061724;min-width:220px;z-index:100;overflow:hidden;animation:umenu-in .12s ease}@keyframes umenu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.umenu-user-info{padding:12px 16px 10px;display:flex;flex-direction:column;gap:2px}.umenu-user-name{font-weight:700;font-size:.95rem;color:#0f172a}.umenu-user-email{font-size:.8rem;color:#64748b}.umenu-divider{height:1px;background:#f1f5f9;margin:2px 0}.umenu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;background:transparent;border:none;color:#334155;font-size:.9rem;text-decoration:none;cursor:pointer;text-align:left;transition:background .1s}.umenu-item:hover{background:#f8fafc;color:#0f172a}.umenu-item-icon{font-size:1rem;width:20px;text-align:center}.umenu-item-danger{color:#dc2626}.umenu-item-danger:hover{background:#fef2f2;color:#b91c1c}.admin-tickets-layout{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:16px;align-items:start}.admin-tickets-list-panel,.admin-tickets-detail-panel{background:#0f172a8c;border:1px solid rgba(148,163,184,.22);border-radius:18px;padding:14px}.admin-tickets-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.admin-tickets-filters label{display:grid;gap:6px;font-size:.8rem;color:var(--admin-muted)}.admin-tickets-filters select,.admin-ticket-reply-form input,.admin-ticket-reply-form textarea{width:100%;border:1px solid rgba(148,163,184,.34);border-radius:10px;background:#02061780;color:var(--admin-text);padding:8px 10px;font:inherit}.admin-ticket-reply-form textarea{resize:vertical}.admin-tickets-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:70vh;overflow-y:auto}.admin-ticket-item{width:100%;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#0f172a9e;color:inherit;padding:10px;display:grid;gap:6px;text-align:left;cursor:pointer}.admin-ticket-item:hover,.admin-ticket-item.active{border-color:#38bdf88c;background:#0f172ad1}.admin-ticket-item p{margin:0;color:#cbd5e1;font-size:.82rem}.admin-ticket-item small{color:#94a3b8}.admin-ticket-item-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.admin-ticket-item-meta{display:inline-flex;align-items:center;gap:6px}.admin-ticket-priority{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;border:1px solid transparent}.admin-ticket-priority.normal{color:#cbd5e1;background:#94a3b82e;border-color:#94a3b859}.admin-ticket-priority.absolute{color:#fecaca;background:#991b1b3d;border-color:#ef444480}.admin-ticket-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;border:1px solid transparent}.admin-ticket-status.open{color:#38bdf8;background:#38bdf829;border-color:#38bdf859}.admin-ticket-status.in_progress{color:#facc15;background:#facc152e;border-color:#facc1559}.admin-ticket-status.resolved{color:#34d399;background:#34d3992e;border-color:#34d39957}.admin-ticket-status.closed{color:#cbd5e1;background:#94a3b82e;border-color:#94a3b859}.admin-ticket-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid rgba(148,163,184,.2);padding-bottom:12px;margin-bottom:12px}.admin-ticket-detail-head h3{margin:0 0 6px}.admin-ticket-detail-head p{margin:0;color:#cbd5e1}.admin-ticket-requester{margin-top:8px;display:grid;gap:4px;color:#94a3b8;font-size:.78rem}.admin-ticket-status-actions{display:grid;gap:8px;justify-items:end}.admin-ticket-status-buttons{display:grid;grid-template-columns:repeat(2,auto);gap:6px}.admin-ticket-attachments{margin-bottom:12px}.admin-ticket-attachments h4{margin:0 0 8px}.admin-ticket-attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.admin-ticket-attachment-item{border:1px solid rgba(148,163,184,.3);border-radius:10px;padding:8px;text-decoration:none;color:inherit;background:#0f172aa6;display:grid;gap:4px}.admin-ticket-attachment-item small{color:#94a3b8}.admin-ticket-messages{display:grid;gap:8px;max-height:46vh;overflow-y:auto}.admin-ticket-message{border:1px solid rgba(148,163,184,.26);border-radius:10px;padding:10px;display:grid;gap:6px}.admin-ticket-message header{display:flex;justify-content:space-between;gap:8px}.admin-ticket-message header small{color:#94a3b8}.admin-ticket-message p{margin:0;white-space:pre-wrap}.admin-ticket-message.admin{background:#0f766e24;border-color:#2dd4bf47}.admin-ticket-message.requester{background:#1e293b94}.admin-ticket-reply-form{margin-top:12px;border-top:1px solid rgba(148,163,184,.2);padding-top:12px;display:grid;gap:10px}.admin-ticket-reply-form label{display:grid;gap:6px;color:#cbd5e1;font-size:.82rem}@media(max-width:1100px){.admin-tickets-layout{grid-template-columns:1fr}.admin-tickets-list{max-height:42vh}.admin-ticket-messages{max-height:36vh}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.app-map-page{min-height:100vh;padding:32px;background:radial-gradient(circle at top right,rgba(79,209,197,.18),transparent 36%),radial-gradient(circle at bottom left,rgba(122,167,255,.16),transparent 32%),linear-gradient(145deg,#08101a,#101c2b 52%,#0d1723);color:#e9f1fb}.app-map-page.embedded{min-height:auto;padding:0;background:transparent}.app-map-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.app-map-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.app-map-eyebrow,.panel-eyebrow{margin-bottom:8px;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;color:#7dd3fc}.app-map-toolbar h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:10px}.app-map-subtitle{max-width:720px;color:#a6b8cf;line-height:1.6}.app-map-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.app-map-toggle{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;border:1px solid rgba(125,211,252,.28);background:#08101ab3;cursor:pointer;transition:border-color .2s ease,transform .2s ease,background .2s ease}.app-map-toggle.active{border-color:#ff9f43b3;background:#2b1405b8}.app-map-toggle:hover{transform:translateY(-1px)}.app-map-toggle input{accent-color:#ff9f43}.app-map-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:999px;text-decoration:none;color:#08101a;font-weight:700;background:linear-gradient(135deg,#7dd3fc,#4fd1c5)}.app-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;min-height:72vh}.app-map-canvas,.panel-card{border:1px solid rgba(149,179,214,.16);border-radius:24px;background:#08101ac2;box-shadow:0 20px 50px #0208174d}.app-map-canvas{position:relative;overflow:hidden;min-height:clamp(620px,82vh,1040px)}.app-map-canvas .react-flow{height:100%;background:linear-gradient(180deg,#08101ac2,#08101ae6),linear-gradient(90deg,rgba(79,209,197,.04),transparent 30%,transparent 70%,rgba(122,167,255,.04))}.app-map-canvas .react-flow__controls{border-radius:12px;border:1px solid rgba(125,211,252,.28);box-shadow:0 12px 22px #0208176b;overflow:hidden}.app-map-canvas .react-flow__controls-button{width:40px;height:40px;background:#0a1423f0;border:none;color:#dbeeff}.app-map-canvas .react-flow__controls-button+.react-flow__controls-button{border-top:1px solid rgba(125,211,252,.22)}.app-map-canvas .react-flow__controls-button:hover{background:#14283efa;color:#f5fbff}.app-map-canvas .react-flow__controls-button svg{width:19px;height:19px;max-width:none;max-height:none;stroke-width:2.4}.app-map-panel{display:grid;gap:16px}.panel-card{padding:22px}.panel-card h2{margin-bottom:16px;font-size:1.3rem}.panel-summary{margin-bottom:18px;color:#a6b8cf;line-height:1.6}.panel-placeholder{color:#a6b8cf;line-height:1.6}.route-detail-list{display:grid;gap:14px}.route-detail-list div{padding:12px 14px;border-radius:16px;background:#0f1723e6;border:1px solid rgba(149,179,214,.12)}.route-detail-list dt{margin-bottom:6px;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#89a5c2}.route-detail-list dd{color:#eef6ff;line-height:1.4}.route-content-block{margin-top:18px;padding:16px;border-radius:16px;border:1px solid rgba(149,179,214,.12);background:#0f1723e6}.route-content-block h3{margin-bottom:12px;font-size:.96rem}.route-content-block ul{display:grid;gap:8px;padding-left:18px;color:#d8e5f2;line-height:1.5}.route-flow-list{display:grid;gap:12px;padding-left:18px;color:#d8e5f2}.route-flow-list li{display:grid;gap:6px}.route-flow-description,.route-flow-steps{display:block}.route-flow-description{color:#a6b8cf}.route-flow-steps{color:#f6d48a;font-size:.9rem;line-height:1.6}.panel-notes ul{display:grid;gap:10px;padding-left:18px;color:#a6b8cf;line-height:1.5}.app-map-node{min-width:240px;max-width:260px;padding:14px;border-radius:18px;border:1px solid rgba(149,179,214,.16);background:linear-gradient(155deg,#122033,#0a111a);color:#eef6ff;box-shadow:0 10px 26px #02081752}.app-map-node.route{border-color:#4fd1c54d}.app-map-node.security{border-color:#ff9f4359;background:linear-gradient(155deg,#30200f,#14110d)}.app-map-node.flow{border-color:#f59e0b59;background:linear-gradient(155deg,#2d2008,#151108)}.app-map-node.external{border-color:#60a5fa59;background:linear-gradient(155deg,#0d2238,#0a121d)}.app-map-node.external-group{border-color:#7dd3fc57;background:linear-gradient(155deg,#12324c,#0b1a29)}.app-map-node.selected{box-shadow:0 0 0 2px #7dd3fc73,0 18px 36px #02081766}.app-map-handle{width:10px;height:10px;border:2px solid #08101a;background:#7dd3fc}.app-map-node-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.app-map-node-path{margin-bottom:12px;font-size:.86rem;color:#a6b8cf;line-height:1.5;word-break:break-word}.app-map-node-caption{font-size:.82rem;line-height:1.5;color:#ead8b2}.app-map-node-badges{display:flex;flex-wrap:wrap;gap:8px}.status-badge,.meta-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:.72rem;font-weight:700}.status-badge.flow{background:#f59e0b2e;color:#f6d48a}.status-badge.external{background:#60a5fa2e;color:#cfe5ff}.status-badge.external-group{background:#7dd3fc2e;color:#d6f3ff}.status-badge.locked{background:#ff6b6b2e;color:#ffb4b4}.status-badge.public{background:#4fd1c529;color:#a7fff4}.status-badge.security{background:#ff9f432e;color:#ffd29c}.meta-badge.role{background:#7aa7ff2e;color:#c9d8ff}.meta-badge.opa{background:#ff9f4329;color:#ffd29c}.meta-badge.neutral{background:#a6b8cf24;color:#c8d5e3}.meta-badge.partial{background:#34d39924;color:#6ee7b7;border:1px solid rgba(52,211,153,.25)}.route-gated-hint{font-size:.8rem;color:#94a3b8;margin:0 0 10px;line-height:1.5}.route-gated-table{width:100%;border-collapse:collapse;font-size:.8rem}.route-gated-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b;padding:4px 8px 6px;border-bottom:1px solid rgba(255,255,255,.08)}.route-gated-table td{padding:6px 8px;color:#cbd5e1;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.route-gated-table tbody tr:last-child td{border-bottom:none}@media(max-width:1080px){.app-map-layout{grid-template-columns:1fr}.app-map-canvas{min-height:60vh}.app-map-toolbar-actions{width:100%;justify-content:flex-start}}@media(max-width:720px){.app-map-page{padding:18px}.app-map-toolbar{flex-direction:column}.app-map-node{min-width:200px;max-width:220px}}.app-map-legend{display:flex;flex-direction:column;gap:6px;background:#0a1423e0;border:1px solid rgba(79,209,197,.18);border-radius:8px;padding:10px 14px;font-size:11px;color:#b0c8e8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.legend-item{display:flex;align-items:center;gap:8px}.legend-line{display:inline-block;width:24px;height:2px;border-radius:2px;flex-shrink:0}.legend-line.legend-dashed{height:0;border-bottom:2px dashed}.network-selector{display:flex;flex-direction:column;gap:6px}.network-btn{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:8px;border:1px solid var(--network-color, rgba(149, 179, 214, .25));background:transparent;color:var(--network-color, #a6b8cf);font-size:11.5px;font-weight:600;font-family:Courier New,monospace;cursor:pointer;transition:background .15s,border-color .15s;text-align:left}.network-btn:hover{background:color-mix(in srgb,var(--network-color) 12%,transparent)}.network-btn.active{background:color-mix(in srgb,var(--network-color) 20%,transparent);border-color:var(--network-color)}.network-btn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--network-color, #89a5c2);flex-shrink:0}.network-btn-count{margin-left:auto;font-size:10px;color:#89a5c2;font-weight:400;font-family:inherit}.conn-item{display:flex;align-items:center;gap:8px}.conn-proto{margin-left:6px;font-size:.82em;opacity:.9}.app-map-node.infra-service{min-width:210px;max-width:250px}.app-map-node.infra-kind-client{border-color:#60a5fa66;background:linear-gradient(155deg,#0d2035,#0a1520)}.app-map-node.infra-kind-proxy{border-color:#7dd3fc66;background:linear-gradient(155deg,#102535,#0a1a25)}.app-map-node.infra-kind-app{border-color:#4fd1c566;background:linear-gradient(155deg,#0c2a28,#081a19)}.app-map-node.infra-kind-iam{border-color:#ff9f4366;background:linear-gradient(155deg,#2e1e08,#160f04)}.app-map-node.infra-kind-graph{border-color:#ec489966;background:linear-gradient(155deg,#2a0d1e,#150813)}.app-map-node.infra-kind-sql{border-color:#4ade8066;background:linear-gradient(155deg,#0d2a18,#081510)}.app-map-node.infra-kind-cache{border-color:#f8717166;background:linear-gradient(155deg,#2a0f0f,#150808)}.app-map-node.infra-kind-storage{border-color:#fbbf2466;background:linear-gradient(155deg,#2a200a,#151005)}.app-map-node.infra-kind-search{border-color:#a78bfa66;background:linear-gradient(155deg,#1c1035,#100820)}.app-map-node.infra-kind-monitoring{border-color:#94a3b84d;background:linear-gradient(155deg,#161e28,#0d1420)}.app-map-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:8px 14px;border-radius:999px;background:#08101ab3;border:1px solid rgba(125,211,252,.18)}.app-map-breadcrumb-item{display:flex;align-items:center;gap:4px}.app-map-breadcrumb-sep{color:#95b3d673;font-size:.85rem;-webkit-user-select:none;user-select:none}.app-map-breadcrumb-btn{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:none;background:transparent;cursor:pointer;transition:background .15s;color:#a6b8cf;font-size:.82rem}.app-map-breadcrumb-btn:hover:not(:disabled){background:#7dd3fc1a;color:#7dd3fc}.app-map-breadcrumb-btn.active{color:#e9f1fb;cursor:default}.app-map-breadcrumb-layer{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#7dd3fc;opacity:.7}.app-map-breadcrumb-btn.active .app-map-breadcrumb-layer{opacity:1}.app-map-breadcrumb-name{color:inherit;font-weight:600}.app-map-drill-btn{display:block;width:100%;margin-top:16px;padding:10px 16px;border-radius:12px;border:1px solid rgba(79,209,197,.4);background:#4fd1c514;color:#4fd1c5;font-size:.88rem;font-weight:600;cursor:pointer;text-align:left;transition:background .15s,border-color .15s,transform .15s}.app-map-drill-btn:hover{background:#4fd1c529;border-color:#4fd1c5b3;transform:translateY(-1px)}.app-map-legend-layer{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-radius:12px;background:#08101ad1;border:1px solid rgba(149,179,214,.13);pointer-events:none}.compta-page{min-height:100vh;background:#f5f7fb;font-family:Inter,system-ui,sans-serif;color:#1e293b}.compta-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:64px;background:var(--atlas-header-bg, rgba(255, 255, 255, .85));border-bottom:1px solid #e5e7eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;gap:12px;position:sticky;top:0;z-index:10}.compta-header-left{display:flex;align-items:center;gap:16px}.compta-header h1{font-size:1.1rem;font-weight:700;color:#0f172a;margin:0 0 2px}.compta-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.live-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;letter-spacing:.05em;color:#16a34a;background:#dcfce7;border:1px solid #86efac;border-radius:999px;padding:2px 10px;animation:pulse-live 2s ease-in-out infinite}.live-badge.flash{background:#bbf7d0;border-color:#4ade80;transform:scale(1.05)}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.7}}.last-updated{font-size:.78rem;color:#64748b}.period-badge{font-size:.75rem;font-weight:600;color:#0ea5e9;background:#e0f2fe;border-radius:999px;padding:2px 10px}.compta-header-actions{display:flex;gap:8px}.btn-export{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:7px;font-size:.82rem;font-weight:600;border:none;cursor:pointer;transition:filter .15s,transform .1s}.btn-export:hover{filter:brightness(.92);transform:translateY(-1px)}.btn-export:active{transform:translateY(0)}.btn-export.pdf{background:#dc2626;color:#fff}.btn-export.excel{background:#16a34a;color:#fff}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;padding:20px 28px}.kpi-card{background:#fff;border-radius:10px;padding:16px 18px;border-left:4px solid #e2e8f0;box-shadow:0 1px 4px #0000000f;transition:box-shadow .2s}.kpi-card:hover{box-shadow:0 4px 12px #0000001a}.kpi-green{border-left-color:#16a34a}.kpi-red{border-left-color:#dc2626}.kpi-blue{border-left-color:#0ea5e9}.kpi-amber{border-left-color:#d97706}.kpi-purple{border-left-color:#7c3aed}.kpi-label{font-size:.73rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.kpi-value{font-size:1.3rem;font-weight:800;color:#0f172a;line-height:1.2}.kpi-sub{font-size:.73rem;color:#94a3b8;margin-top:4px}.compta-tabs{display:flex;gap:2px;padding:0 28px;background:#fff;border-bottom:1px solid #e2e8f0;overflow-x:auto}.tab-btn{padding:11px 20px;font-size:.85rem;font-weight:600;color:#64748b;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.tab-btn:hover{color:#0ea5e9}.tab-btn.active{color:#0ea5e9;border-bottom-color:#0ea5e9}.compta-content{padding:24px 28px}.chart-card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 1px 4px #0000000f;border:1px solid #e2e8f0}.chart-card h3{font-size:.9rem;font-weight:700;color:#475569;margin:0 0 16px}.chart-card.full-width{margin-bottom:20px}.chart-card.compact{flex:0 0 340px}.overview-tab .chart-row{display:flex;gap:18px;flex-wrap:wrap}.overview-tab .chart-row .chart-card{flex:1 1 300px}.pie-legend{margin-top:12px;display:flex;flex-direction:column;gap:5px}.pie-legend-item{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#475569}.pie-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.pie-val{margin-left:auto;font-weight:600;color:#1e293b}.tab-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.tab-toolbar select{padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:.83rem;color:#334155;background:#fff;cursor:pointer}.tab-toolbar select:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 2px #bae6fd}.filter-total{font-size:.83rem;color:#64748b;margin-left:auto}.filter-total strong{color:#0f172a}.tab-body-split{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.data-table-wrap{flex:1 1 500px;overflow-x:auto}.compta-table{width:100%;border-collapse:collapse;font-size:.8rem;background:#fff;border-radius:10px;overflow:hidden;border:1px solid #e2e8f0}.compta-table th{background:#f1f5f9;color:#475569;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;text-align:left;border-bottom:1px solid #e2e8f0}.compta-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9;color:#334155;vertical-align:middle}.compta-table tbody tr:hover{background:#f8fafc}.compta-table tbody tr:last-child td{border-bottom:none}.compta-table tfoot td{background:#f8fafc;border-top:2px solid #e2e8f0;font-size:.82rem}.compta-table td.amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.compta-table td.amount.green{color:#16a34a}.compta-table td.ref{font-family:Courier New,monospace;font-size:.74rem;color:#94a3b8}.compta-table td.desc{max-width:280px;color:#64748b;font-size:.76rem;line-height:1.4}.compta-table td.muted{color:#cbd5e1}.compta-table td.empty{text-align:center;color:#94a3b8;padding:24px}.compta-table tr.row-alert{background:#fff7ed}.compta-table tr.row-alert:hover{background:#ffedd5}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:600;white-space:nowrap}.badge-ok{background:#dcfce7;color:#15803d}.badge-danger{background:#fee2e2;color:#dc2626}.badge-charge{background:#eff6ff;color:#1d4ed8}.badge-revenu{background:#f0fdf4;color:#15803d}.badge-maint-preventive{background:#e0f2fe;color:#0369a1}.badge-maint-corrective{background:#fee2e2;color:#dc2626}.badge-maint-contrat_annuel{background:#fef9c3;color:#854d0e}.maint-stats{display:flex;gap:14px;margin-bottom:20px;flex-wrap:wrap}.maint-stat{flex:1 1 160px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 18px;box-shadow:0 1px 4px #0000000d}.maint-stat.danger{border-left:4px solid #dc2626}.maint-stat-label{font-size:.72rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.maint-stat-value{font-size:1.05rem;font-weight:700;color:#0f172a}.stock-alert-banner{background:#fff7ed;border:1px solid #fed7aa;border-left:4px solid #f97316;border-radius:8px;padding:10px 16px;font-size:.82rem;color:#9a3412;margin-bottom:18px}.conso-total{text-align:right;font-size:.85rem;color:#64748b;margin-bottom:12px}.conso-total strong{color:#0f172a;font-size:.95rem}@media(max-width:768px){.compta-header{padding:14px 16px}.kpi-grid{padding:14px 16px;grid-template-columns:repeat(2,1fr)}.compta-content{padding:16px}.compta-tabs{padding:0 16px}.tab-body-split{flex-direction:column}.chart-card.compact{flex:none;width:100%}}.btn-admin-toggle{padding:6px 14px;border-radius:7px;font-size:.82rem;font-weight:600;border:1px solid #cbd5e1;background:#fff;color:#475569;cursor:pointer;transition:all .15s}.btn-admin-toggle:hover{background:#f1f5f9;color:#0f172a}.btn-admin-toggle.active{background:#0f172a;color:#fff;border-color:#0f172a}.btn-admin-add{padding:6px 14px;border-radius:7px;font-size:.82rem;font-weight:600;background:#0ea5e9;color:#fff;border:none;cursor:pointer;transition:filter .15s;margin-left:auto}.btn-admin-add:hover{filter:brightness(.9)}.btn-row-edit{padding:3px 10px;border-radius:5px;font-size:.75rem;font-weight:600;background:#e0f2fe;color:#0369a1;border:none;cursor:pointer;margin-right:4px;transition:filter .15s}.btn-row-edit:hover{filter:brightness(.9)}.btn-row-delete{padding:3px 10px;border-radius:5px;font-size:.75rem;font-weight:600;background:#fee2e2;color:#dc2626;border:none;cursor:pointer;transition:filter .15s}.btn-row-delete:hover{filter:brightness(.9)}.admin-actions-cell{white-space:nowrap}.admin-modal-overlay{position:fixed;inset:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.admin-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000002e;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.admin-modal-header h2{font-size:1rem;font-weight:700;color:#0f172a;margin:0}.admin-modal-close{background:none;border:none;font-size:1.4rem;color:#94a3b8;cursor:pointer;line-height:1;padding:0 4px;transition:color .15s}.admin-modal-close:hover{color:#0f172a}.admin-modal-body{padding:20px;overflow-y:auto;flex:1}.admin-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid #e2e8f0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-row{display:flex;flex-direction:column;gap:4px}.form-row.full-width{grid-column:1 / -1}.form-label{font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.03em}.form-input{padding:7px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:.83rem;color:#0f172a;background:#fff;transition:border-color .15s;width:100%;box-sizing:border-box}.form-input:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 2px #bae6fd}textarea.form-input{resize:vertical;min-height:72px}.btn-modal-cancel{padding:7px 16px;border-radius:7px;font-size:.83rem;font-weight:600;background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;cursor:pointer;transition:background .15s}.btn-modal-cancel:hover{background:#e2e8f0}.btn-modal-save{padding:7px 20px;border-radius:7px;font-size:.83rem;font-weight:600;background:#0ea5e9;color:#fff;border:none;cursor:pointer;transition:filter .15s}.btn-modal-save:hover{filter:brightness(.9)}.confirm-dialog{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000002e;padding:28px 28px 20px;width:100%;max-width:380px;text-align:center}.confirm-dialog h3{font-size:1rem;font-weight:700;color:#0f172a;margin:0 0 10px}.confirm-dialog p{font-size:.85rem;color:#475569;line-height:1.5;margin:0 0 20px}.confirm-actions{display:flex;justify-content:center;gap:10px}.btn-modal-delete{padding:7px 20px;border-radius:7px;font-size:.83rem;font-weight:600;background:#dc2626;color:#fff;border:none;cursor:pointer;transition:filter .15s}.btn-modal-delete:hover{filter:brightness(.9)}.parc-page{min-height:100vh;background:#f5f7fb;font-family:Inter,system-ui,sans-serif;color:#1e293b}.parc-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:64px;background:var(--atlas-header-bg, rgba(255, 255, 255, .85));border-bottom:1px solid #e5e7eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;gap:12px;position:sticky;top:0;z-index:20}.parc-header-left{display:flex;align-items:center;gap:16px}.parc-header-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.btn-back{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:8px;font-size:.82rem;font-weight:600;color:#475569;background:transparent;border:1px solid #cbd5e1;cursor:pointer;transition:background .15s,color .15s,border-color .15s;text-decoration:none}.btn-back:hover{background:#f1f5f9;color:#0f172a;border-color:#94a3b8}.parc-header h1{font-size:1.1rem;font-weight:700;color:#0f172a;margin:0 0 1px}.parc-header-sub{font-size:.75rem;color:#64748b;margin:0}.view-toggle{display:flex;align-items:center;gap:4px;background:#f1f5f9;border-radius:8px;padding:3px}.view-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;font-size:.8rem;font-weight:600;color:#64748b;background:transparent;border:none;cursor:pointer;transition:background .15s,color .15s}.view-btn:hover{background:#e2e8f0;color:#1e293b}.view-btn.active{background:#0ea5e9;color:#fff;box-shadow:0 1px 4px #0ea5e94d}.status-legend{display:flex;align-items:center;gap:10px}.legend-item{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:#64748b}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-dot.operationnel{background:#16a34a}.legend-dot.maintenance{background:#d97706}.legend-dot.arret{background:#94a3b8}.legend-dot.alerte{background:#f97316}.parc-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 28px 0}@media(max-width:900px){.parc-kpi-grid{grid-template-columns:repeat(2,1fr)}}.parc-kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px #0000000a}.parc-kpi-card .kpi-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.parc-kpi-card .kpi-value{font-size:2rem;font-weight:800;color:#0f172a;line-height:1.1}.parc-kpi-card .kpi-value.green{color:#16a34a}.parc-kpi-card .kpi-value.amber{color:#d97706}.parc-kpi-card .kpi-value.red{color:#dc2626}.parc-toolbar{display:flex;align-items:center;gap:10px;padding:16px 28px 10px;flex-wrap:wrap}.parc-search{flex:1;min-width:200px;max-width:340px;padding:7px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:.85rem;background:#fff;color:#1e293b;transition:border-color .15s,box-shadow .15s;outline:none}.parc-search:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91f}.parc-select{padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:.83rem;background:#fff;color:#1e293b;cursor:pointer;outline:none;transition:border-color .15s}.parc-select:focus{border-color:#0ea5e9}.parc-table-wrapper{padding:0 28px 28px;overflow-x:auto}.parc-table{width:100%;border-collapse:collapse;font-size:.82rem;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.parc-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.parc-table th{padding:10px 14px;text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;white-space:nowrap}.parc-table td{padding:10px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle;color:#1e293b}.parc-table tbody tr:last-child td{border-bottom:none}.parc-table tbody tr:hover td{background:#f8fafc}.parc-table tbody tr.row-selected td{background:#f0f9ff}.td-nom{font-weight:600;color:#0f172a}.td-ip{font-family:JetBrains Mono,Fira Mono,monospace;font-size:.78rem;color:#475569}.badge-type{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}.badge-type-sequenceur{background:#dbeafe;color:#1d4ed8}.badge-type-pcr{background:#ede9fe;color:#6d28d9}.badge-type-extraction{background:#fef3c7;color:#92400e}.badge-type-analyse{background:#d1fae5;color:#065f46}.badge-type-robot{background:#fce7f3;color:#9d174d}.badge-type-stockage_froid{background:#e0f2fe;color:#0369a1}.badge-type-divers{background:#f1f5f9;color:#475569}.badge-type-serveur_hpc{background:#fef9c3;color:#713f12}.badge-type-workstation{background:#ecfdf5;color:#14532d}.badge-type-reseau{background:#fff7ed;color:#9a3412}.badge-status{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:.68rem;font-weight:700;white-space:nowrap}.badge-status:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge-status-operationnel{background:#dcfce7;color:#15803d}.badge-status-operationnel:before{background:#16a34a}.badge-status-maintenance{background:#fef3c7;color:#b45309}.badge-status-maintenance:before{background:#d97706}.badge-status-arret{background:#f1f5f9;color:#475569}.badge-status-arret:before{background:#94a3b8}.badge-status-alerte{background:#fff7ed;color:#c2410c}.badge-status-alerte:before{background:#f97316}.btn-detail{padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;color:#0ea5e9;background:transparent;border:1px solid #bae6fd;cursor:pointer;transition:background .15s,color .15s}.btn-detail:hover{background:#e0f2fe;color:#0369a1}.detail-panel-overlay{position:fixed;inset:0;z-index:50;pointer-events:none}.detail-panel{position:fixed;top:0;right:0;bottom:0;width:380px;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-4px 0 24px #0000001a;z-index:50;display:flex;flex-direction:column;animation:slideInPanel .2s ease;pointer-events:all}@keyframes slideInPanel{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.detail-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.detail-panel-header h2{font-size:.95rem;font-weight:700;color:#0f172a;margin:0}.btn-close-panel{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid #e2e8f0;background:transparent;color:#64748b;cursor:pointer;font-size:1rem;transition:background .15s}.btn-close-panel:hover{background:#f1f5f9;color:#0f172a}.detail-panel-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.detail-field{display:flex;flex-direction:column;gap:2px}.detail-field-label{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8}.detail-field-value{font-size:.82rem;color:#1e293b;word-break:break-all}.detail-field-value.mono{font-family:JetBrains Mono,Fira Mono,monospace;font-size:.78rem}.detail-divider{border:none;border-top:1px solid #f1f5f9;margin:4px 0}.detail-connections{display:flex;flex-direction:column;gap:5px}.detail-connections h3{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;margin:0 0 4px}.detail-connection-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#334155}.detail-connection-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.detail-notes{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 12px;font-size:.8rem;color:#78350f}.topology-wrapper{overflow-x:auto;padding:20px 28px 40px}.topology-canvas{position:relative}.topology-node{position:absolute;width:150px;height:70px;background:#fff;border-radius:8px;border:1px solid #e2e8f0;padding:8px 10px;cursor:pointer;transition:box-shadow .2s,transform .1s;display:flex;flex-direction:column;justify-content:center;gap:2px;box-sizing:border-box}.topology-node:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.topology-node.selected{box-shadow:0 0 0 2px #0ea5e9,0 4px 16px #0ea5e933}.topology-node-icon{font-size:1rem;line-height:1}.topology-node-name{font-size:.72rem;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.topology-node-ip{font-size:.65rem;font-family:JetBrains Mono,Fira Mono,monospace;color:#94a3b8;line-height:1}.topology-group-label{position:absolute;font-size:.65rem;font-weight:700;text-transform:uppercase;color:#94a3b8;letter-spacing:.08em;white-space:nowrap}.topology-detail-panel{position:fixed;top:0;right:0;bottom:0;width:380px;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-4px 0 24px #0000001a;z-index:50;display:flex;flex-direction:column;animation:slideInPanel .2s ease}.parc-content{padding-top:16px}.parc-empty{text-align:center;padding:48px 20px;color:#94a3b8;font-size:.9rem}.td-net{display:flex;align-items:center;gap:5px;white-space:nowrap}.net-label{font-size:.76rem;font-weight:600}.net-label-online{color:#16a34a}.net-label-offline{color:#dc2626}.net-label-unknown{color:#94a3b8}.net-ping-badge{font-size:.68rem;font-family:Courier New,monospace;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;border-radius:999px;padding:1px 6px}.detail-net-section{margin-bottom:4px}.detail-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin:0 0 8px}.detail-net-status{display:flex;align-items:center;gap:8px}.topology-net-dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;border:1.5px solid #fff}.topology-node{position:relative}.topology-net-legend{position:absolute;bottom:16px;left:16px;z-index:10;background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 2px 10px #00000014;pointer-events:none}.topology-legend-title{font-size:.7rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.07em;margin-bottom:2px}.topology-legend-item{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#334155;font-weight:500}.topology-legend-line{display:inline-block;width:22px;height:3px;border-radius:2px;flex-shrink:0}.btn-admin-monitor{padding:6px 14px;border-radius:7px;font-size:.82rem;font-weight:600;background:#0f172a;color:#fff;border:none;cursor:pointer;transition:background .15s}.btn-admin-monitor:hover{background:#1e293b}.erp-page{--erp-bg: #f5f8fc;--erp-surface: #ffffff;--erp-surface-alt: #f8fafc;--erp-border: #e2e8f0;--erp-border-strong: #cbd5e1;--erp-accent: #0ea5e9;--erp-accent-2: #6366f1;--erp-text: #0f172a;--erp-text-2: #334155;--erp-muted: #64748b;--erp-success: #16a34a;--erp-warning: #d97706;--erp-danger: #dc2626;--erp-shadow: 0 4px 24px rgba(15,23,42,.07);--erp-shadow-lg: 0 12px 40px rgba(15,23,42,.1);--erp-radius: 12px;--erp-radius-sm: 8px;--erp-radius-xs: 6px;--admin-bg: var(--erp-bg);--admin-surface: var(--erp-surface);--admin-border: var(--erp-border);--admin-border-strong:var(--erp-border-strong);--admin-accent: var(--erp-accent);--admin-text: var(--erp-text);--admin-muted: var(--erp-muted);--admin-danger: var(--erp-danger);min-height:calc(100vh - 64px);padding:28px clamp(16px,4vw,56px);background:linear-gradient(155deg,#eef6ff,#f5f8fc,#ede9ff);color:var(--erp-text);display:flex;flex-direction:column;gap:20px;font-family:Manrope,system-ui,sans-serif;font-variant-numeric:tabular-nums;position:relative;overflow-x:hidden}.erp-page.admin-mode{--erp-bg: #060c17;--erp-surface: #0d1526;--erp-surface-alt: #111f38;--erp-border: rgba(255,255,255,.07);--erp-border-strong: rgba(255,255,255,.14);--erp-accent: #38bdf8;--erp-accent-2: #818cf8;--erp-text: #f1f5f9;--erp-text-2: #cbd5e1;--erp-muted: #94a3b8;--erp-success: #4ade80;--erp-warning: #fbbf24;--erp-danger: #f87171;--erp-shadow: none;--erp-shadow-lg: none;--admin-bg: var(--erp-bg);--admin-surface: var(--erp-surface);--admin-border: var(--erp-border);--admin-border-strong:var(--erp-border-strong);--admin-accent: var(--erp-accent);--admin-text: var(--erp-text);--admin-muted: var(--erp-muted);--admin-danger: var(--erp-danger);background:radial-gradient(ellipse at 15% 10%,rgba(56,189,248,.05) 0%,transparent 50%),radial-gradient(ellipse at 85% 90%,rgba(129,140,248,.05) 0%,transparent 50%),#060c17}.erp-page.admin-mode:before{content:"";position:fixed;inset:0;background-image:radial-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0}.erp-title{margin:0;font-size:1.05rem;font-weight:700;color:var(--erp-text)}.erp-subtitle{margin:0;font-size:.8rem;color:var(--erp-muted)}.erp-page .admin-label{color:var(--erp-muted)}.erp-page h1{color:var(--erp-text)}.erp-page .admin-subtitle{color:var(--erp-text-2)}.erp-page .admin-header{background:var(--atlas-header-bg, rgba(255, 255, 255, .85));border-bottom-color:var(--erp-border);min-height:64px;align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.erp-page .admin-meta{background:#f8fafce6;border-color:var(--erp-border);color:var(--erp-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.erp-page.admin-mode .admin-meta{background:#0d1526e6}.erp-btn-primary,.erp-btn-secondary,.erp-btn-danger,.erp-admin-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--erp-radius-sm);border:1px solid var(--erp-border-strong);font-size:13px;font-weight:700;font-family:inherit;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .1s}.erp-btn-primary{background:var(--erp-accent);border-color:var(--erp-accent);color:#fff}.erp-btn-primary:hover{filter:brightness(1.04)}.erp-btn-secondary{background:var(--erp-surface-alt);color:var(--erp-text-2)}.erp-btn-secondary:hover{background:var(--erp-surface)}.erp-btn-danger{background:#dc262614;border-color:#dc262659;color:var(--erp-danger)}.erp-btn-danger:hover{background:#dc262624}.erp-admin-toggle{background:transparent;color:var(--erp-muted)}.erp-admin-toggle:hover{background:var(--erp-surface-alt);border-color:var(--erp-border-strong);color:var(--erp-text)}.erp-admin-toggle.active{background:#0ea5e91f;border-color:#0ea5e973;color:var(--erp-accent)}.erp-page.admin-mode .erp-btn-secondary,.erp-page.admin-mode .erp-admin-toggle{background:#ffffff0a;border-color:var(--erp-border-strong);color:var(--erp-text-2)}.erp-page.admin-mode .erp-btn-secondary:hover,.erp-page.admin-mode .erp-admin-toggle:hover{background:#ffffff14}.erp-page.admin-mode .erp-admin-toggle.active{background:#38bdf829;border-color:#38bdf873;color:var(--erp-accent)}.erp-mono{font-family:Space Grotesk,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.02em}.erp-cell-main{color:var(--erp-text);font-weight:600}.erp-cell-sub{color:var(--erp-muted);font-size:12px}.erp-section{border-top:1px solid var(--erp-border);padding:16px 24px 0;margin-top:4px}.erp-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--erp-muted);margin-bottom:10px}.erp-notes{margin:0;color:var(--erp-text-2);line-height:1.6;white-space:pre-wrap}.erp-total-row{display:contents}.erp-total-remise span:last-child{color:var(--erp-danger)}.erp-total-ttc span{font-weight:800;font-size:15px;color:var(--erp-text)}.erp-progress-container{width:100%;height:10px;border-radius:999px;background:var(--erp-border);overflow:hidden}.erp-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--erp-accent),var(--erp-accent-2))}.erp-progress-label{margin-top:8px;font-size:12px;color:var(--erp-muted)}.erp-confirm-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.erp-confirm-row span{font-size:13px;color:var(--erp-text-2)}.erp-text-ok{color:var(--erp-success);font-weight:700}.erp-text-danger{color:var(--erp-danger);font-weight:700}.erp-select-sm{min-width:130px;padding:6px 10px;font-size:12px}.erp-page .exit-btn{background:#0ea5e914;color:#0ea5e9;border:1px solid rgba(14,165,233,.3)}.erp-page .exit-btn:hover{background:#0ea5e926}.erp-page.admin-mode .exit-btn{background:#38bdf81a;color:#38bdf8;border-color:#38bdf84d}.erp-page .admin-panel{background:var(--erp-surface);border:1px solid var(--erp-border);box-shadow:var(--erp-shadow)}.erp-page .ghost-btn{background:transparent;border:1px solid var(--erp-border-strong);color:var(--erp-text-2);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.erp-page .ghost-btn:hover:not(:disabled){background:var(--erp-surface-alt);border-color:var(--erp-border-strong)}.erp-page .ghost-btn.danger{color:var(--erp-danger);border-color:#dc262659}.erp-page .ghost-btn.danger:hover:not(:disabled){background:#dc26260f}.erp-page .ghost-btn.primary{background:var(--erp-accent);border-color:var(--erp-accent);color:#fff}.erp-page .ghost-btn.primary:hover:not(:disabled){opacity:.9}.erp-page .ghost-btn:disabled{opacity:.38;cursor:not-allowed}.erp-admin-btn{padding:8px 16px;border-radius:var(--erp-radius-sm);border:1px solid var(--erp-border-strong);background:transparent;color:var(--erp-muted);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}.erp-admin-btn:hover{background:var(--erp-surface-alt)}.erp-admin-btn.active{background:#0ea5e91a;border-color:#0ea5e966;color:#0ea5e9}.erp-page.admin-mode .erp-admin-btn{border-color:var(--erp-border-strong);color:var(--erp-muted)}.erp-page.admin-mode .erp-admin-btn:hover{background:#ffffff0d}.erp-page.admin-mode .erp-admin-btn.active{background:#38bdf81f;border-color:#38bdf866;color:#38bdf8}.erp-stats-row{display:flex;gap:12px;flex-wrap:wrap}.erp-stat-card{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius);padding:14px 20px;display:flex;flex-direction:column;gap:3px;min-width:120px;box-shadow:var(--erp-shadow);border-left:3px solid var(--erp-border);transition:box-shadow .15s}.erp-stat-card:hover{box-shadow:var(--erp-shadow-lg)}.erp-stat-card.accent{border-left-color:var(--erp-accent)}.erp-stat-card.success{border-left-color:var(--erp-success)}.erp-stat-card.warning{border-left-color:var(--erp-warning)}.erp-stat-card.danger{border-left-color:var(--erp-danger)}.erp-stat-card.purple{border-left-color:var(--erp-accent-2)}.erp-stat-value{font-size:28px;font-weight:700;font-family:Space Grotesk,sans-serif;color:var(--erp-text);line-height:1}.erp-stat-card.warning .erp-stat-value{color:var(--erp-warning)}.erp-stat-card.danger .erp-stat-value{color:var(--erp-danger)}.erp-stat-card.success .erp-stat-value{color:var(--erp-success)}.erp-stat-label{font-size:11.5px;font-weight:600;color:var(--erp-muted);text-transform:uppercase;letter-spacing:.04em}.erp-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.erp-search{flex:1;min-width:220px;padding:9px 14px;border-radius:var(--erp-radius-sm);border:1px solid var(--erp-border);background:var(--erp-surface-alt);color:var(--erp-text);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.erp-search:focus{border-color:var(--erp-accent);box-shadow:0 0 0 3px #0ea5e91f}.erp-filters{display:flex;gap:8px;flex-wrap:wrap}.erp-select{padding:8px 12px;border-radius:var(--erp-radius-sm);border:1px solid var(--erp-border);background:var(--erp-surface-alt);color:var(--erp-text-2);font-size:13px;font-family:inherit;cursor:pointer;outline:none;transition:border-color .15s}.erp-select:focus{border-color:var(--erp-accent)}.erp-table-wrapper{overflow-x:auto;border-radius:var(--erp-radius-sm);border:1px solid var(--erp-border)}.erp-table{width:100%;border-collapse:collapse;font-size:13.5px}.erp-table th{background:var(--erp-surface-alt);color:var(--erp-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:10px 14px;text-align:left;border-bottom:1px solid var(--erp-border);white-space:nowrap}.erp-table td{padding:11px 14px;border-bottom:1px solid var(--erp-border);color:var(--erp-text-2);vertical-align:middle}.erp-table tbody tr:last-child td{border-bottom:none}.erp-table tbody tr{transition:background .1s}.erp-table tbody tr:hover{background:#0ea5e90a}.erp-page.admin-mode .erp-table tbody tr:hover{background:#ffffff08}.erp-table-ref{font-family:Space Grotesk,monospace;font-size:12px;color:var(--erp-muted);white-space:nowrap}.erp-table-muted{color:var(--erp-muted);font-size:12px}.erp-table tbody tr.clickable{cursor:pointer}.erp-table tbody tr.clickable.selected{background:#0ea5e914}.erp-page.admin-mode .erp-table tbody tr.clickable.selected{background:#38bdf814}.erp-empty{text-align:center;padding:40px 20px;color:var(--erp-muted);font-size:14px;font-style:italic}.erp-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap;letter-spacing:.02em}.erp-badge-ok{background:#f0fdf4;color:#15803d}.erp-badge-warning{background:#fffbeb;color:#b45309}.erp-badge-danger{background:#fef2f2;color:#b91c1c}.erp-badge-info{background:#eff6ff;color:#1d4ed8}.erp-badge-muted{background:#f1f5f9;color:#64748b}.erp-badge-purple{background:#faf5ff;color:#6d28d9}.erp-badge-orange{background:#fff7ed;color:#c2410c}.erp-page.admin-mode .erp-badge-ok{background:#16a34a26;color:#4ade80}.erp-page.admin-mode .erp-badge-warning{background:#d9770626;color:#fbbf24}.erp-page.admin-mode .erp-badge-danger{background:#dc262626;color:#f87171}.erp-page.admin-mode .erp-badge-info{background:#1d4ed826;color:#93c5fd}.erp-page.admin-mode .erp-badge-muted{background:#64748b26;color:#94a3b8}.erp-page.admin-mode .erp-badge-purple{background:#6d28d926;color:#d8b4fe}.erp-page.admin-mode .erp-badge-orange{background:#c2410c26;color:#fdba74}.erp-priority-normale{background:#f1f5f9;color:#475569}.erp-priority-urgente{background:#fff7ed;color:#c2410c}.erp-priority-tres_urgente{background:#fef2f2;color:#b91c1c;border:1px solid rgba(185,28,28,.3)}.erp-page.admin-mode .erp-priority-normale{background:#47556926;color:#94a3b8}.erp-page.admin-mode .erp-priority-urgente{background:#c2410c26;color:#fdba74}.erp-page.admin-mode .erp-priority-tres_urgente{background:#b91c1c2e;color:#fca5a5}.erp-split{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}@media(max-width:1200px){.erp-split{grid-template-columns:1fr}}.erp-split.erp-split-kanban{grid-template-columns:minmax(0,1fr)}.erp-split.erp-split-kanban.has-panel{grid-template-columns:minmax(0,1fr) 380px}.erp-detail-panel{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius);box-shadow:var(--erp-shadow);position:sticky;top:24px;overflow:hidden}.erp-detail-header{padding:20px 24px 16px;border-bottom:1px solid var(--erp-border);display:flex;flex-direction:column;gap:6px;position:relative}.erp-detail-eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--erp-accent)}.erp-detail-title{font-size:17px;font-weight:700;color:var(--erp-text);margin:0}.erp-detail-subtitle{font-size:13px;color:var(--erp-muted);margin:0}.erp-close-btn{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:999px;border:1px solid var(--erp-border-strong);background:var(--erp-surface-alt);color:var(--erp-muted);font-size:14px;line-height:1;cursor:pointer}.erp-close-btn:hover{color:var(--erp-text);border-color:var(--erp-accent)}.erp-detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 24px 20px;border-top:1px solid var(--erp-border)}.erp-detail-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px;max-height:72vh;overflow-y:auto}.erp-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--erp-muted);gap:8px;text-align:center}.erp-detail-empty svg{opacity:.3}.erp-detail-empty p{font-size:13px;margin:0}.erp-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:1200px){.erp-field-grid{grid-template-columns:repeat(3,1fr)}}.erp-field{display:flex;flex-direction:column;gap:2px}.erp-field-span{grid-column:1 / -1}.erp-field-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--erp-muted)}.erp-field-value{font-size:13.5px;font-weight:500;color:var(--erp-text)}.erp-detail-section{display:flex;flex-direction:column;gap:8px}.erp-detail-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--erp-muted);padding-bottom:6px;border-bottom:1px solid var(--erp-border)}.erp-tabs{display:flex;gap:2px;border-bottom:1px solid var(--erp-border);margin-bottom:20px}.erp-tab{padding:10px 18px;border:none;background:transparent;color:var(--erp-muted);font-size:13.5px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;transition:color .15s,border-color .15s}.erp-tab:hover{color:var(--erp-text)}.erp-tab.active{color:var(--erp-accent);border-bottom-color:var(--erp-accent)}.erp-pipeline{display:flex;gap:12px;border:1px solid var(--erp-border);border-radius:var(--erp-radius);overflow-x:auto;background:var(--erp-surface);box-shadow:var(--erp-shadow);align-items:flex-start;padding:12px}.erp-pipeline-step{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px 8px;border-right:1px solid var(--erp-border);gap:4px;cursor:default;transition:background .15s}.erp-pipeline-step:last-child{border-right:none}.erp-pipeline-step:hover{background:#0ea5e90a}.erp-pipeline-count{font-size:22px;font-weight:700;font-family:Space Grotesk,sans-serif;color:var(--erp-text);line-height:1}.erp-pipeline-step.has-items .erp-pipeline-count{color:var(--erp-accent)}.erp-pipeline-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--erp-muted);text-align:center;line-height:1.3}.erp-pipeline-col{flex:1 0 240px;min-width:240px;background:var(--erp-surface-alt);border:1px solid var(--erp-border);border-radius:var(--erp-radius-sm);display:flex;flex-direction:column;max-height:72vh}.erp-pipeline-col-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--erp-border)}.erp-pipeline-col-label{font-size:13px;font-weight:700;color:var(--erp-text)}.erp-pipeline-col-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;padding:0 8px;background:#0ea5e91f;color:var(--erp-accent);font-size:12px;font-weight:700}.erp-pipeline-cards{padding:10px;display:grid;gap:10px;overflow-y:auto}.erp-pipeline-empty{border:1px dashed var(--erp-border-strong);border-radius:var(--erp-radius-xs);padding:12px;text-align:center;color:var(--erp-muted);font-size:12px}.erp-pipeline .erp-card{padding:12px;border-radius:10px;box-shadow:none;gap:8px}.erp-pipeline .erp-card:hover{transform:translateY(-1px);box-shadow:var(--erp-shadow)}.erp-card-ref{font-size:13px;font-weight:700;color:var(--erp-text)}.erp-card-name{font-size:13.5px;font-weight:700;color:var(--erp-text);line-height:1.35}.erp-card-body{display:grid;gap:6px}.erp-card-admin-row{margin-top:4px;padding-top:8px;border-top:1px dashed var(--erp-border)}.erp-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.erp-card{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius);padding:20px;box-shadow:var(--erp-shadow);display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:box-shadow .15s,transform .1s,border-color .15s}.erp-card:hover{box-shadow:var(--erp-shadow-lg);transform:translateY(-2px);border-color:var(--erp-accent)}.erp-card.selected{border-color:var(--erp-accent);box-shadow:0 0 0 2px #0ea5e933,var(--erp-shadow-lg)}.erp-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.erp-card-icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#0ea5e91f,#6366f114);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.erp-card-title{font-size:15px;font-weight:700;color:var(--erp-text);margin:0;line-height:1.3}.erp-card-subtitle{font-size:12.5px;color:var(--erp-muted);margin:0}.erp-card-meta{display:flex;flex-direction:column;gap:4px}.erp-card-meta-line{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--erp-text-2)}.erp-card-meta-line .label{color:var(--erp-muted);min-width:80px;font-size:11.5px}.erp-maintenance-bar{height:4px;border-radius:999px;background:var(--erp-border);overflow:hidden}.erp-maintenance-fill{height:100%;border-radius:999px;transition:width .3s}.erp-maintenance-fill.ok{background:var(--erp-success)}.erp-maintenance-fill.warning{background:var(--erp-warning)}.erp-maintenance-fill.danger{background:var(--erp-danger)}.erp-maintenance-label{font-size:11.5px;color:var(--erp-muted);display:flex;justify-content:space-between}.erp-form-panel{background:var(--erp-surface-alt);border:1px solid var(--erp-border);border-radius:var(--erp-radius);padding:24px}.erp-page.admin-mode .erp-form-panel{background:#ffffff08}.erp-form-panel h4{margin:0 0 16px;font-size:15px;font-weight:700;color:var(--erp-text)}.erp-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:16px}.erp-form-grid label,.erp-form-col label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--erp-muted)}.erp-form-col{grid-column:1 / -1}.erp-form-grid input,.erp-form-grid select,.erp-form-grid textarea,.erp-form-col input,.erp-form-col select,.erp-form-col textarea{padding:8px 12px;border-radius:var(--erp-radius-xs);border:1px solid var(--erp-border);background:var(--erp-surface);color:var(--erp-text);font-size:13.5px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.erp-form-grid input:focus,.erp-form-grid select:focus,.erp-form-grid textarea:focus,.erp-form-col input:focus,.erp-form-col select:focus,.erp-form-col textarea:focus{border-color:var(--erp-accent);box-shadow:0 0 0 3px #0ea5e91a}.erp-form-grid textarea{resize:vertical;min-height:80px}.erp-page.admin-mode .erp-form-grid input,.erp-page.admin-mode .erp-form-grid select,.erp-page.admin-mode .erp-form-grid textarea,.erp-page.admin-mode .erp-form-col input,.erp-page.admin-mode .erp-form-col select,.erp-page.admin-mode .erp-form-col textarea{background:#ffffff0f;border-color:var(--erp-border-strong);color:var(--erp-text)}.erp-form-actions{display:flex;gap:8px;flex-wrap:wrap}.erp-confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.erp-confirm-dialog{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius);padding:28px 32px;max-width:480px;width:90%;box-shadow:var(--erp-shadow-lg)}.erp-confirm-dialog p{margin:0 0 12px;font-size:14px;line-height:1.6;color:var(--erp-text-2)}.erp-confirm-actions{display:flex;gap:8px;margin-top:20px}.erp-catalogue-grid{display:grid;gap:10px}.erp-catalogue-item{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius-sm);padding:14px 18px;display:grid;grid-template-columns:auto 1fr auto;gap:12px 16px;align-items:center;transition:border-color .15s}.erp-catalogue-item:hover{border-color:var(--erp-accent)}.erp-catalogue-code{font-family:Space Grotesk,monospace;font-size:11.5px;font-weight:700;color:var(--erp-accent);background:#0ea5e91a;padding:3px 8px;border-radius:5px}.erp-catalogue-nom{font-size:14px;font-weight:600;color:var(--erp-text)}.erp-catalogue-desc{font-size:12.5px;color:var(--erp-muted);grid-column:2}.erp-catalogue-price{font-size:16px;font-weight:700;font-family:Space Grotesk,sans-serif;color:var(--erp-text);white-space:nowrap;text-align:right}.erp-catalogue-duration{font-size:12px;color:var(--erp-muted);text-align:right;white-space:nowrap}.erp-devis-builder{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius);box-shadow:var(--erp-shadow);overflow:hidden}.erp-devis-header{padding:18px 24px;border-bottom:1px solid var(--erp-border);display:flex;align-items:center;justify-content:space-between;gap:12px}.erp-devis-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.erp-devis-ligne{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--erp-border);border-radius:var(--erp-radius-sm);background:var(--erp-surface-alt)}.erp-devis-total{background:var(--erp-surface-alt);border:1px solid var(--erp-border);border-radius:var(--erp-radius-sm);padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:6px}.erp-devis-total-label{font-size:13px;color:var(--erp-muted);font-weight:500}.erp-devis-total-value{font-size:13px;color:var(--erp-text);font-weight:600;text-align:right;font-family:Space Grotesk,sans-serif}.erp-devis-total-label.ttc{color:var(--erp-text);font-weight:700;font-size:15px}.erp-devis-total-value.ttc{color:var(--erp-text);font-weight:800;font-size:17px}.erp-devis-total-sep{grid-column:1 / -1;height:1px;background:var(--erp-border);margin:4px 0}.erp-qty-input{width:64px;padding:5px 8px;border-radius:var(--erp-radius-xs);border:1px solid var(--erp-border);background:var(--erp-surface);color:var(--erp-text);font-size:14px;font-family:Space Grotesk,sans-serif;text-align:center;outline:none}.erp-qty-input:focus{border-color:var(--erp-accent);box-shadow:0 0 0 2px #0ea5e91a}.erp-timeline{display:flex;flex-direction:column;gap:0}.erp-timeline-item{display:grid;grid-template-columns:16px 1fr;gap:12px;padding-bottom:16px;position:relative}.erp-timeline-item:last-child{padding-bottom:0}.erp-timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--erp-accent);margin-top:4px;flex-shrink:0;position:relative;z-index:1}.erp-timeline-dot.preventive{background:var(--erp-success)}.erp-timeline-dot.corrective{background:var(--erp-danger)}.erp-timeline-dot.calibration{background:var(--erp-warning)}.erp-timeline-item:not(:last-child) .erp-timeline-dot:after{content:"";position:absolute;left:50%;top:12px;transform:translate(-50%);width:2px;height:calc(100% + 4px);background:var(--erp-border)}.erp-timeline-content{display:flex;flex-direction:column;gap:2px}.erp-timeline-date{font-size:11.5px;color:var(--erp-muted)}.erp-timeline-desc{font-size:13px;color:var(--erp-text-2);line-height:1.5}.erp-timeline-tech{font-size:11.5px;color:var(--erp-muted);font-style:italic}.erp-add-row{padding-top:16px;border-top:1px solid var(--erp-border);margin-top:4px}@media(max-width:900px){.erp-pipeline{flex-wrap:nowrap}.erp-pipeline-step{flex:0 0 calc(33% - 1px)}.erp-split.erp-split-kanban.has-panel{grid-template-columns:1fr}.erp-field-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.erp-page{padding:16px 12px}.erp-pipeline-col{min-width:220px;flex-basis:220px}.erp-pipeline-step{flex:0 0 calc(50% - 1px)}.erp-field-grid{grid-template-columns:1fr}}.hab-page{--admin-bg: #f8fafc;--admin-bg-alt: #ffffff;--admin-surface: rgba(255, 255, 255, .95);--admin-surface-strong: #f8fafc;--admin-border: #e2e8f0;--admin-border-strong: #cbd5e1;--admin-accent: #0ea5e9;--admin-accent-strong: #3b82f6;--admin-text: #0f172a;--admin-muted: #64748b;--admin-success: #16a34a;--admin-danger: #dc2626;min-height:calc(100vh - 64px);padding:28px clamp(16px,5vw,64px);background:linear-gradient(160deg,#f0f7ff,#f8fafc 55%,#eef4ff);color:var(--admin-text);display:flex;flex-direction:column;gap:20px;font-family:Manrope,system-ui,sans-serif;position:relative;overflow-x:hidden}.hab-page .admin-label{color:#64748b}.hab-page h1{color:#0f172a}.hab-page .admin-subtitle{color:#475569}.hab-page .admin-meta{background:#f8fafce6;border-color:#e2e8f0;color:#475569;font-family:Manrope,system-ui,sans-serif}.hab-page .exit-btn{background:#0ea5e914;color:#0ea5e9;border:1px solid rgba(14,165,233,.3);text-decoration:none;display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:500;transition:background .2s,transform .2s}.hab-page .exit-btn:hover{background:#0ea5e926;transform:translateY(-1px)}.hab-page .admin-panel,.hab-page .workspace-panel{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 4px 24px #0000000f;-webkit-backdrop-filter:none;backdrop-filter:none}.hab-page .admin-panel h2,.hab-page .workspace-panel h2{color:#0f172a}.hab-page .panel-subtitle{color:#64748b;margin-bottom:20px}.hab-page .ghost-btn{cursor:pointer;background:transparent;border:1px solid #e2e8f0;color:#475569;transition:background .18s,border-color .18s,color .18s}.hab-page .ghost-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.hab-page .ghost-btn:disabled{opacity:.45;cursor:not-allowed}.hab-page .ghost-btn.danger{border-color:#fecaca;color:#dc2626}.hab-page .ghost-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.hab-page .hab-matrix-wrapper{border-color:#e2e8f0;background:#fff}.hab-page .hab-matrix th{background:#f8fafc;color:#475569;border-bottom-color:#e5e7eb}.hab-page .hab-matrix td{border-bottom-color:#f1f5f9}.hab-page .hab-matrix .col-person,.hab-page .hab-matrix thead th.col-person{background:#f8fafc}.hab-page .hab-matrix tbody tr:hover td{background:#0ea5e90a}.hab-page .hab-matrix tbody tr:hover td.col-person{background:#f1f5f9}.hab-page .hab-add-form{background:#f8fafc;border-color:#e2e8f0}.hab-page .hab-add-form h4{color:#0f172a}.hab-page .hab-add-fields label{color:#475569}.hab-page .hab-add-fields input{background:#fff;border-color:#cbd5e1;color:#0f172a}.hab-page .hab-add-fields input:focus{border-color:#0ea5e9}.hab-page .hab-confirm-dialog{background:#fff;border-color:#e2e8f0;box-shadow:0 20px 60px #00000026}.hab-page .hab-confirm-dialog p{color:#0f172a}.hab-page .hab-confirm-dialog p:last-of-type{color:#64748b}.hab-page .hab-alerts{border-top-color:#e2e8f0}.hab-page .hab-alerts h3{color:#0f172a}.hab-page .hab-admin-btn{border-color:#e2e8f0;color:#64748b;background:transparent}.hab-page .hab-admin-btn:hover{border-color:#0ea5e9;color:#0ea5e9}.hab-page .hab-admin-btn.active{border-color:#0ea5e9;background:#0ea5e914;color:#0ea5e9}.hab-page.admin-mode{--admin-bg: #0a0f1e;--admin-bg-alt: #0e1630;--admin-surface: rgba(12, 19, 36, .78);--admin-surface-strong: rgba(10, 16, 30, .92);--admin-border: rgba(148, 163, 184, .2);--admin-border-strong: rgba(148, 163, 184, .35);--admin-accent: #38bdf8;--admin-accent-strong: #6366f1;--admin-text: #e2e8f0;--admin-muted: #94a3b8;--admin-success: #34d399;--admin-danger: #f87171;background:radial-gradient(circle at 12% 12%,rgba(56,189,248,.18),transparent 48%),radial-gradient(circle at 78% 0%,rgba(99,102,241,.2),transparent 46%),linear-gradient(180deg,#0b1226,#0a0f1e 60%,#060914);color:var(--admin-text)}.hab-page.admin-mode:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(148,163,184,.08) 1px,transparent 1px);background-size:120px 120px;opacity:.4;pointer-events:none;z-index:0}.hab-page.admin-mode>*{position:relative;z-index:1}.hab-page.admin-mode .admin-subtitle{color:#e2e8f0c7}.hab-page.admin-mode .admin-meta{color:#bae6fd;background:linear-gradient(135deg,#0f766e2e,#0f172a73);border-color:#2dd4bf40}.hab-page.admin-mode .exit-btn{background:#f43f5e40;color:#ffe4e6;border:none;text-decoration:none;display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;font-size:.78rem}.hab-page.admin-mode .exit-btn:hover{background:#f43f5e73;transform:translateY(-1px)}.hab-page.admin-mode .admin-panel,.hab-page.admin-mode .workspace-panel{background:linear-gradient(160deg,#0f172ad9,#0a0f1ef2);border-color:var(--admin-border);box-shadow:0 30px 60px #02061773;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.hab-page.admin-mode .ghost-btn{background:#0f172a66;border-color:#94a3b873;color:#cbd5f5;cursor:pointer}.hab-page.admin-mode .ghost-btn:hover:not(:disabled){background:#38bdf81f;border-color:#38bdf880;color:#e2e8f0}.hab-page.admin-mode .ghost-btn.danger{border-color:#f8717166;color:var(--admin-danger)}.hab-page.admin-mode .ghost-btn.danger:hover:not(:disabled){background:#f871711f}.hab-page.admin-mode .hab-matrix-wrapper{border-color:var(--admin-border);background:var(--admin-surface)}.hab-page.admin-mode .hab-matrix th{background:#0a101ef2;color:var(--admin-muted);border-bottom-color:var(--admin-border)}.hab-page.admin-mode .hab-matrix td{border-bottom-color:var(--admin-border)}.hab-page.admin-mode .hab-matrix .col-person,.hab-page.admin-mode .hab-matrix thead th.col-person{background:#0a101ef7}.hab-page.admin-mode .hab-matrix tbody tr:hover td{background:#38bdf80a}.hab-page.admin-mode .hab-matrix tbody tr:hover td.col-person{background:#0a101efa}.hab-page.admin-mode .hab-add-form{background:#0e163099;border-color:var(--admin-border)}.hab-page.admin-mode .hab-add-form h4{color:var(--admin-text)}.hab-page.admin-mode .hab-add-fields label{color:var(--admin-muted)}.hab-page.admin-mode .hab-add-fields input{background:#0e1630d9;border-color:var(--admin-border);color:var(--admin-text)}.hab-page.admin-mode .hab-add-fields input:focus{border-color:var(--admin-accent)}.hab-page.admin-mode .hab-confirm-dialog{background:var(--admin-bg-alt);border-color:var(--admin-border-strong);box-shadow:0 24px 64px #00000080}.hab-page.admin-mode .hab-confirm-dialog p{color:var(--admin-text)}.hab-page.admin-mode .hab-confirm-dialog p:last-of-type{color:var(--admin-muted)}.hab-page.admin-mode .hab-alerts{border-top-color:var(--admin-border)}.hab-page.admin-mode .hab-alerts h3{color:var(--admin-text)}.hab-page.admin-mode .hab-admin-btn{border-color:var(--admin-border);color:var(--admin-muted)}.hab-page.admin-mode .hab-admin-btn:hover{border-color:var(--admin-accent);color:var(--admin-accent)}.hab-page.admin-mode .hab-admin-btn.active{border-color:var(--admin-accent);background:#38bdf81a;color:var(--admin-accent)}.rdv-page{--rdv-bg: #f2f6fb;--rdv-card: #ffffff;--rdv-border: #d8e2f0;--rdv-text: #0f172a;--rdv-muted: #475569;--rdv-accent: #0f766e;--rdv-accent-soft: #ccfbf1;--rdv-danger: #b91c1c;--rdv-danger-soft: #fee2e2;--rdv-success: #166534;--rdv-success-soft: #dcfce7;min-height:calc(100vh - 64px);background:radial-gradient(circle at 8% 0%,#14b8a61f,#14b8a600 44%),radial-gradient(circle at 95% 10%,#0e74901c,#0e749000 38%),var(--rdv-bg);color:var(--rdv-text);padding:20px min(2vw,20px) 40px}.rdv-topbar{height:auto;min-height:64px;width:100%;margin:0}.rdv-topbar-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.rdv-topbar-title{margin:0;font-size:clamp(1rem,.8rem + 1vw,1.4rem);font-weight:700;color:var(--rdv-text)}.rdv-topbar-loading{font-size:.85rem;color:var(--rdv-muted);font-weight:400}.rdv-topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rdv-topbar-count{font-size:.82rem;color:var(--rdv-muted);margin-left:4px}.rdv-back-link{display:inline-block;font-size:.85rem;color:var(--rdv-muted);text-decoration:none;transition:color .15s;white-space:nowrap}.rdv-back-link:hover{color:var(--rdv-accent)}.rdv-btn{border:1px solid #b4c3d7;background:#eef3fb;color:#1e3a5f;border-radius:10px;font-size:.88rem;font-weight:700;padding:8px 13px;cursor:pointer;white-space:nowrap;transition:background .12s}.rdv-btn:hover:not(:disabled){background:#e1ebf9}.rdv-btn:disabled{cursor:not-allowed;opacity:.6}.rdv-btn-primary{border-color:#0f766e;background:linear-gradient(135deg,#0f766e,#0e7490);color:#fff}.rdv-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.rdv-btn-unavailability{border-color:#64748b;background:#e2e8f0;color:#1e293b}.rdv-btn-unavailability:hover:not(:disabled){background:#cbd5e1}.rdv-btn-today{background:#fff;font-weight:800;color:var(--rdv-accent);border-color:var(--rdv-accent)}.rdv-view-toggle{display:flex;border:1px solid #b4c3d7;border-radius:10px;overflow:hidden}.rdv-btn-toggle{border:none;border-radius:0;background:#eef3fb;color:#1e3a5f;font-size:.88rem;font-weight:700;padding:8px 16px;cursor:pointer;transition:background .12s;white-space:nowrap}.rdv-btn-toggle:first-child{border-right:1px solid #b4c3d7}.rdv-btn-toggle.active{background:linear-gradient(135deg,#0f766e,#0e7490);color:#fff}.rdv-btn-toggle:not(.active):hover{background:#e1ebf9}.rdv-main-layout{width:min(1700px,98vw);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}.rdv-calendar-full{width:100%;margin:0;background:var(--rdv-card);border:1px solid var(--rdv-border);border-radius:16px;box-shadow:0 12px 28px #0f172a12;overflow:hidden}.rdv-requests-sidebar{background:#dce3ee;border:1px solid #c3cfdf;border-radius:16px;box-shadow:0 10px 22px #0f172a1a;padding:10px 10px 9px;max-height:78vh;overflow-y:auto;position:sticky;top:10px}.rdv-requests-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.rdv-requests-head h2{margin:0;font-size:.85rem;line-height:1.2;color:#0f172a}.rdv-requests-sort{display:grid;gap:4px;font-size:.66rem;color:#334155}.rdv-requests-sort select{border:1px solid #94a3b8;background:#f8fafc;border-radius:8px;padding:5px 7px;font-size:.72rem;color:#0f172a}.rdv-requests-empty{margin:10px 0 2px;color:#334155;font-size:.74rem}.rdv-requests-groups{display:grid;gap:10px}.rdv-requests-group h3{margin:0 0 6px;font-size:.68rem;letter-spacing:.03em;text-transform:uppercase;color:#334155}.rdv-requests-group ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.rdv-request-card{background:#ffffffd1;border:1px solid #b8c4d5;border-radius:10px;padding:6px 7px;display:grid;gap:3px;color:#1e293b;position:relative}.rdv-request-dismiss{position:absolute;top:4px;right:5px;border:1px solid #cbd5e1;background:#f8fafc;color:#64748b;border-radius:999px;width:18px;height:18px;font-size:.62rem;line-height:1;cursor:pointer;padding:0}.rdv-request-dismiss:hover{background:#fee2e2;color:#991b1b;border-color:#fecaca}.rdv-request-card strong{font-size:.76rem;line-height:1.2}.rdv-request-card span{font-size:.7rem;color:#334155}.rdv-request-card small{font-size:.64rem;color:#475569}.rdv-request-detail-link{border:none;background:none;color:#0f766e;font-size:.66rem;text-align:left;padding:0;cursor:pointer;text-decoration:underline}.rdv-requests-history{margin-top:12px;padding-top:12px;border-top:1px solid #bfcbdb}.rdv-requests-history h3{margin:0 0 8px;font-size:.68rem;letter-spacing:.03em;text-transform:uppercase;color:#334155}.rdv-response-chip{display:inline-flex;align-items:center;justify-content:center;width:fit-content;border-radius:999px;padding:1px 6px;font-size:.58rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.rdv-response-chip-accepted{background:#dcfce7;color:#166534}.rdv-response-chip-pending{background:#fef3c7;color:#92400e}.rdv-response-chip-rejected{background:#fee2e2;color:#991b1b}.rdv-request-time{font-size:.66rem;font-weight:700;color:#0f766e}.rdv-request-actions{margin-top:4px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.rdv-request-actions .rdv-btn{padding:4px 7px;font-size:.68rem;border-radius:8px}.rdv-request-accept{border-color:#166534;background:#ecfdf5;color:#166534}.rdv-request-reject{border-color:#b91c1c;background:#fef2f2;color:#b91c1c}.rdv-weekdays-sticky{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:10px 16px 8px;background:#f8faff;border-bottom:2px solid var(--rdv-border);position:sticky;top:0;z-index:10}.rdv-weekdays-sticky div{text-align:center;font-size:.82rem;font-weight:700;color:#334155;padding:4px 0}.rdv-continuous-months{max-height:72vh;overflow-y:auto;padding:0 16px 32px;scroll-behavior:smooth}.rdv-month-section{margin-top:28px}.rdv-month-label{margin:0 0 8px;font-size:1rem;font-weight:700;color:#334155;padding-left:2px;display:flex;align-items:center;gap:10px}.rdv-month-label:after{content:"";flex:1;height:1px;background:var(--rdv-border)}.rdv-month-grid{display:flex;flex-direction:column;gap:3px}.rdv-week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.rdv-week-row-today{background:#14b8a60a;border-radius:10px;outline:1.5px solid rgba(20,184,166,.2)}.rdv-day-cell{min-height:100px;border:1px solid #d5deea;background:#fdfefe;border-radius:9px;padding:5px;display:grid;grid-template-rows:auto 1fr;gap:4px;cursor:pointer;transition:border-color .12s,box-shadow .12s}.rdv-day-cell:hover{border-color:var(--rdv-accent);box-shadow:0 0 0 1px #0f766e33}.rdv-day-cell header{display:flex;justify-content:flex-end}.rdv-day-cell header span{background:#e8eef8;border-radius:999px;min-width:26px;text-align:center;font-size:.78rem;font-weight:700;color:#334155;padding:2px 6px}.rdv-day-cell.today{border-color:#14b8a6;box-shadow:inset 0 0 0 1px #14b8a6}.rdv-day-cell.today header span{background:var(--rdv-accent);color:#fff}.rdv-day-phantom{border-radius:9px;background:transparent}.rdv-events{display:grid;align-content:start;gap:4px}.rdv-empty-slot{color:#9ca3af;text-align:center;font-size:.75rem;margin-top:8px}.rdv-event{border:1px solid transparent;border-radius:7px;padding:4px 6px;display:grid;gap:2px}.rdv-event-meta{display:flex;justify-content:space-between;gap:6px;font-size:.72rem;flex-wrap:wrap;align-items:center}.rdv-event-mandatory{border-width:2px!important;border-style:solid!important}.rdv-mandatory-badge{font-size:.58rem;font-weight:800;letter-spacing:.05em;background:#dc2626;color:#fff;border-radius:3px;padding:1px 3px;flex-shrink:0}.rdv-status-badge{font-size:.56rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;padding:1px 4px;flex-shrink:0}.rdv-status-pending{background:#fef3c7;color:#92400e}.rdv-status-unavailability{background:#cbd5e1;color:#334155}.rdv-status-rejected{background:#fee2e2;color:#991b1b}.rdv-mandatory-label{display:flex;align-items:flex-start;gap:8px;font-size:.88rem;font-weight:600;color:#b91c1c;cursor:pointer;padding:6px 8px;border:1px solid #fca5a5;border-radius:8px;background:#fff5f5}.rdv-mandatory-label input[type=checkbox]{accent-color:#dc2626;width:15px;height:15px;margin-top:2px;flex-shrink:0}.rdv-mandatory-label small{font-weight:400;color:#6b7280}.rdv-event p{margin:0;font-size:.8rem;font-weight:700;line-height:1.25}.rdv-event small{font-size:.72rem;opacity:.88}.rdv-delete-btn{justify-self:start;border:1px solid rgba(15,23,42,.25);background:#ffffffad;color:inherit;border-radius:999px;font-size:.7rem;font-weight:700;padding:1px 7px;cursor:pointer}.rdv-delete-btn:disabled{opacity:.65;cursor:progress}.rdv-loading{margin:20px 0;border:1px dashed #9ec3e6;border-radius:10px;padding:20px;text-align:center;color:#334155;background:#f5faff}.rdv-week-container{padding:16px 16px 0}.rdv-week-label{font-size:1.1rem;font-weight:700;color:#0f172a;margin-bottom:12px}.rdv-week-wrap{display:flex;flex-direction:column;overflow:hidden}.rdv-week-header{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));background:#f8faff;border-bottom:2px solid var(--rdv-border)}.rdv-week-gutter-head{border-right:1px solid var(--rdv-border)}.rdv-week-day-head{display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-left:1px solid var(--rdv-border);gap:4px}.rdv-week-today-head{background:#14b8a614}.rdv-week-day-name{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.rdv-week-day-num{font-size:1.05rem;font-weight:700;color:#1e293b;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}.rdv-week-today-num{background:var(--rdv-accent);color:#fff}.rdv-week-body{overflow-y:auto;max-height:68vh;background:#fff}.rdv-week-inner{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));position:relative}.rdv-week-time-gutter{border-right:1px solid var(--rdv-border);background:#fafbfd}.rdv-week-hour-label{display:flex;align-items:flex-start;justify-content:flex-end;padding:3px 8px 0 0;font-size:.68rem;font-weight:600;color:#94a3b8;box-sizing:border-box;border-top:1px solid #e2e8f0}.rdv-week-day-col{position:relative;border-left:1px solid #e2e8f0;box-sizing:border-box}.rdv-week-today-col{background:#14b8a606}.rdv-week-hour-line{position:absolute;left:0;right:0;height:1px;background:#e2e8f0;pointer-events:none}.rdv-week-half-line{position:absolute;left:0;right:0;height:1px;background:#f1f5f9;pointer-events:none}.rdv-week-event{position:absolute;left:2px;right:2px;border-radius:6px;border-left:3px solid transparent;border-top:1px solid rgba(0,0,0,.06);border-right:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06);padding:3px 5px 2px;overflow:hidden;z-index:1;display:flex;flex-direction:column;gap:1px;font-size:.75rem;line-height:1.25;box-shadow:0 1px 3px #0000000f}.rdv-week-event-mandatory{border-left-width:4px!important}.rdv-week-event-time{font-size:.68rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9}.rdv-week-event-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rdv-week-event-person{font-size:.67rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rdv-modal-overlay{position:fixed;inset:0;background:#0f172a85;display:flex;align-items:flex-start;justify-content:flex-start;padding:72px 24px 24px;z-index:1000;overflow-y:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rdv-modal{background:#fff;border-radius:16px;padding:24px;width:min(480px,95vw);box-shadow:0 24px 64px #0f172a47;position:relative;max-height:calc(100vh - 96px);overflow-y:auto}.rdv-modal-title{margin:0 32px 16px 0;font-size:1.1rem;font-weight:700;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.rdv-modal-close{position:absolute;top:16px;right:16px;border:none;background:none;font-size:1.1rem;color:#64748b;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1}.rdv-modal-close:hover{background:#f1f5f9;color:#0f172a}.rdv-reject-modal{width:min(540px,96vw)}.rdv-reject-intro{margin:0 0 10px;color:#334155;font-size:.84rem}.rdv-reject-options{display:grid;gap:7px}.rdv-reject-option{display:flex;gap:8px;align-items:center;font-size:.85rem;color:#1e293b}.rdv-reject-option input[type=radio]{accent-color:#b91c1c}.rdv-reject-textarea{margin-top:10px;width:100%;border:1.3px solid #c7d2e0;border-radius:10px;background:#fff;color:#0f172a;padding:8px 11px;font-size:.9rem;box-sizing:border-box}.rdv-reject-textarea:disabled{background:#f1f5f9;color:#94a3b8}.rdv-reject-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.rdv-detail-modal{width:min(620px,96vw)}.rdv-detail-summary{display:grid;gap:4px;margin-bottom:12px}.rdv-detail-summary strong{font-size:.95rem;color:#0f172a}.rdv-detail-summary span{font-size:.82rem;color:#334155}.rdv-detail-summary p{margin:2px 0 0;font-size:.82rem;color:#334155}.rdv-detail-list-title{margin:0 0 8px;font-size:.84rem;color:#1e293b}.rdv-detail-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.rdv-detail-item{border:1px solid #d1dce8;border-radius:10px;padding:8px 10px;background:#f8fafc}.rdv-detail-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.rdv-detail-note{margin:6px 0 0;font-size:.78rem;color:#7f1d1d}.rdv-form{display:grid;gap:10px}.rdv-unavailability-note{margin:0;padding:8px 10px;border-radius:8px;border:1px solid #cbd5e1;background:#f1f5f9;color:#334155;font-size:.84rem;font-weight:600}.rdv-form label{display:grid;gap:5px;font-size:.88rem;font-weight:600;color:#1f2937}.rdv-form input,.rdv-form textarea{width:100%;border:1.3px solid #c7d2e0;border-radius:10px;background:#fff;color:#0f172a;padding:8px 11px;font-size:.92rem;box-sizing:border-box}.rdv-form textarea{min-height:72px;resize:vertical}.rdv-form input:focus,.rdv-form textarea:focus{outline:none;border-color:#0891b2;box-shadow:0 0 0 3px #0891b224}.rdv-inline-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.rdv-filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.rdv-filter-label-text{font-size:.88rem;font-weight:600;color:#1f2937}.rdv-filter-clear{font-size:.78rem;color:var(--rdv-accent);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}.rdv-filter-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;padding:2px 0}.rdv-filter-checkbox{display:flex;align-items:center;gap:8px;font-size:.86rem;color:#374151;cursor:pointer;padding:3px 4px;border-radius:6px;transition:background .1s}.rdv-filter-checkbox:hover{background:#f1f5f9}.rdv-filter-checkbox input[type=checkbox]{accent-color:var(--rdv-accent);width:15px;height:15px;flex-shrink:0;cursor:pointer}.rdv-filter-checkbox-locked{opacity:.82}.rdv-creator-badge{font-style:normal;font-size:.76rem;color:var(--rdv-accent);font-weight:600}.rdv-add-person-row{display:flex;gap:6px;margin-top:6px}.rdv-add-person-input{flex:1;border:1.3px solid #c7d2e0;border-radius:8px;background:#fff;color:#0f172a;padding:6px 10px;font-size:.88rem}.rdv-add-person-input:focus{outline:none;border-color:#0891b2;box-shadow:0 0 0 3px #0891b224}.rdv-add-person-btn{border:1.3px solid #0f766e;background:#f0fdfa;color:#0f766e;border-radius:8px;font-size:1.1rem;font-weight:700;padding:4px 12px;cursor:pointer;line-height:1}.rdv-add-person-btn:hover:not(:disabled){background:#ccfbf1}.rdv-add-person-btn:disabled{opacity:.4;cursor:not-allowed}.rdv-feedback{margin:0;padding:8px 10px;border-radius:8px;font-size:.86rem;font-weight:600}.rdv-feedback-error{background:var(--rdv-danger-soft);color:var(--rdv-danger);border:1px solid #fecaca}.rdv-feedback-success{background:var(--rdv-success-soft);color:var(--rdv-success);border:1px solid #bbf7d0}.rdv-kpi-error{color:var(--rdv-danger)}@media(max-width:900px){.rdv-topbar{flex-direction:column;align-items:flex-start}.rdv-topbar-right{flex-wrap:wrap}.rdv-main-layout{grid-template-columns:1fr}.rdv-requests-sidebar{position:static;max-height:none}.rdv-inline-fields{grid-template-columns:1fr}.rdv-weekdays-sticky div:nth-child(n+6){display:none}.rdv-week-row{grid-template-columns:repeat(5,minmax(0,1fr))}.rdv-week-header,.rdv-week-inner{grid-template-columns:40px repeat(7,minmax(0,1fr))}.rdv-week-hour-label{font-size:.6rem;padding-right:4px}.rdv-week-day-num{font-size:.88rem;width:26px;height:26px}}@media(max-width:600px){.rdv-weekdays-sticky{display:none}.rdv-week-row{grid-template-columns:repeat(2,1fr)}.rdv-day-cell{min-height:auto}}.stock-page{--admin-bg: #f8fafc;--admin-bg-alt: #ffffff;--admin-surface: rgba(255, 255, 255, .95);--admin-surface-strong: #f8fafc;--admin-border: #e2e8f0;--admin-border-strong: #cbd5e1;--admin-accent: #0ea5e9;--admin-accent-strong: #3b82f6;--admin-text: #0f172a;--admin-muted: #64748b;--admin-success: #16a34a;--admin-danger: #dc2626;min-height:calc(100vh - 64px);padding:28px clamp(16px,5vw,64px);background:linear-gradient(160deg,#f0f7ff,#f8fafc 55%,#eef4ff);color:var(--admin-text);display:flex;flex-direction:column;gap:20px;font-family:Manrope,system-ui,sans-serif;position:relative;overflow-x:hidden}.stock-page .admin-label{color:#64748b}.stock-page h1{color:#0f172a}.stock-page .admin-subtitle{color:#475569}.stock-page .admin-meta{background:#f8fafce6;border-color:#e2e8f0;color:#475569}.stock-page .exit-btn{background:#0ea5e914;color:#0ea5e9;border:1px solid rgba(14,165,233,.3)}.stock-page .exit-btn:hover{background:#0ea5e926}.stock-page .admin-panel{background:#fff;border:1px solid #e2e8f0;box-shadow:0 4px 24px #0000000f}.stock-page .ghost-btn{background:transparent;border:1px solid #e2e8f0;color:#475569;cursor:pointer}.stock-page .ghost-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.stock-page .ghost-btn.danger{color:#dc2626;border-color:#dc26264d}.stock-page .ghost-btn.danger:hover:not(:disabled){background:#dc26260f}.stock-page .ghost-btn:disabled{opacity:.4;cursor:not-allowed}.stock-page.admin-mode{--admin-bg: #0a0f1a;--admin-bg-alt: #111827;--admin-surface: rgba(17, 24, 39, .95);--admin-surface-strong: #1f2937;--admin-border: rgba(255, 255, 255, .08);--admin-border-strong: rgba(255, 255, 255, .15);--admin-accent: #38bdf8;--admin-accent-strong: #818cf8;--admin-text: #f1f5f9;--admin-muted: #94a3b8;--admin-success: #4ade80;--admin-danger: #f87171;background:radial-gradient(ellipse at 20% 10%,rgba(56,189,248,.06) 0%,transparent 55%),radial-gradient(ellipse at 80% 90%,rgba(129,140,248,.06) 0%,transparent 55%),#0a0f1a}.stock-page.admin-mode:before{content:"";position:fixed;inset:0;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0}.stock-page.admin-mode .admin-label{color:var(--admin-muted)}.stock-page.admin-mode h1{color:var(--admin-text)}.stock-page.admin-mode .admin-subtitle{color:var(--admin-muted)}.stock-page.admin-mode .admin-header{border-bottom-color:var(--admin-border)}.stock-page.admin-mode .admin-panel{background:var(--admin-surface);border-color:var(--admin-border);box-shadow:none}.stock-page.admin-mode .exit-btn{background:#38bdf81a;color:#38bdf8;border-color:#38bdf84d}.stock-page.admin-mode .ghost-btn{background:transparent;border-color:var(--admin-border-strong);color:var(--admin-text)}.stock-page.admin-mode .ghost-btn:hover:not(:disabled){background:#ffffff0f}.stock-page.admin-mode .ghost-btn.danger{color:var(--admin-danger);border-color:#f871714d}.stock-admin-btn{padding:8px 16px;border-radius:8px;border:1px solid #e2e8f0;background:transparent;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.stock-admin-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.stock-admin-btn.active{background:#0ea5e91a;border-color:#0ea5e966;color:#0ea5e9}.stock-page.admin-mode .stock-admin-btn{border-color:#ffffff1f;color:#94a3b8}.stock-page.admin-mode .stock-admin-btn:hover{background:#ffffff0d}.stock-page.admin-mode .stock-admin-btn.active{background:#38bdf81f;border-color:#38bdf866;color:#38bdf8}.stock-stats-row{display:flex;gap:12px;flex-wrap:wrap}.stock-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 20px;display:flex;flex-direction:column;gap:2px;min-width:110px;box-shadow:0 2px 8px #0000000a}.stock-stat-card.critical{border-left:3px solid #ef4444}.stock-stat-card.warning{border-left:3px solid #f59e0b}.stock-stat-value{font-size:26px;font-weight:700;font-family:Space Grotesk,sans-serif;color:#0f172a;line-height:1}.stock-stat-card.critical .stock-stat-value{color:#ef4444}.stock-stat-card.warning .stock-stat-value{color:#f59e0b}.stock-stat-label{font-size:12px;color:#64748b;font-weight:500}.stock-page.admin-mode .stock-stat-card{background:#ffffff0a;border-color:#ffffff14;box-shadow:none}.stock-page.admin-mode .stock-stat-value{color:#f1f5f9}.stock-page.admin-mode .stock-stat-card.critical .stock-stat-value{color:#f87171}.stock-page.admin-mode .stock-stat-card.warning .stock-stat-value{color:#fbbf24}.stock-page.admin-mode .stock-stat-label{color:#94a3b8}.stock-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.stock-search{flex:1;min-width:220px;padding:8px 14px;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a;font-size:14px;font-family:inherit;outline:none}.stock-search:focus{border-color:#0ea5e9;box-shadow:0 0 0 2px #0ea5e926}.stock-filters{display:flex;gap:8px;flex-wrap:wrap}.stock-select{padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:13px;font-family:inherit;cursor:pointer;outline:none}.stock-select:focus{border-color:#0ea5e9}.stock-page.admin-mode .stock-search,.stock-page.admin-mode .stock-select{background:#ffffff0d;border-color:#ffffff1a;color:#f1f5f9}.stock-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.stock-page.admin-mode .stock-table-wrapper{border-color:#ffffff14}.stock-table{width:100%;border-collapse:collapse;font-size:13.5px}.stock-table th{background:#f8fafc;color:#64748b;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:10px 12px;text-align:left;border-bottom:1px solid #e2e8f0;white-space:nowrap}.stock-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;color:#334155;vertical-align:middle}.stock-table tbody tr:last-child td{border-bottom:none}.stock-table tbody tr:hover{background:#f8fafc}.stock-page.admin-mode .stock-table th{background:#ffffff0a;color:#94a3b8;border-bottom-color:#ffffff14}.stock-page.admin-mode .stock-table td{border-bottom-color:#ffffff0d;color:#cbd5e1}.stock-page.admin-mode .stock-table tbody tr:hover{background:#ffffff08}.stock-row-rupture td{background:#ef44440a}.stock-row-critical td{background:#f973160a}.stock-page.admin-mode .stock-row-rupture td{background:#ef44440f}.stock-page.admin-mode .stock-row-critical td{background:#f973160f}.stock-ref{font-family:Space Grotesk,monospace;font-size:12px;color:#64748b!important;white-space:nowrap}.stock-nom{font-weight:500;max-width:260px}.stock-muted{color:#94a3b8!important}.stock-location{font-size:12px;color:#64748b!important;white-space:nowrap}.col-qty{text-align:right;width:80px}.col-actions{width:100px;text-align:center}.stock-cat-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.stock-cat-reactif{background:#eff6ff;color:#3b82f6}.stock-cat-consommable{background:#f0fdf4;color:#16a34a}.stock-cat-chimique{background:#fff7ed;color:#ea580c}.stock-cat-equipement{background:#faf5ff;color:#9333ea}.stock-page.admin-mode .stock-cat-reactif{background:#3b82f626;color:#93c5fd}.stock-page.admin-mode .stock-cat-consommable{background:#16a34a26;color:#86efac}.stock-page.admin-mode .stock-cat-chimique{background:#ea580c26;color:#fdba74}.stock-page.admin-mode .stock-cat-equipement{background:#9333ea26;color:#d8b4fe}.stock-status-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.stock-status-ok{background:#f0fdf4;color:#16a34a}.stock-status-low{background:#fffbeb;color:#d97706}.stock-status-critical{background:#fff7ed;color:#ea580c}.stock-status-rupture{background:#fef2f2;color:#dc2626}.stock-page.admin-mode .stock-status-ok{background:#16a34a26;color:#4ade80}.stock-page.admin-mode .stock-status-low{background:#d9770626;color:#fbbf24}.stock-page.admin-mode .stock-status-critical{background:#ea580c26;color:#fb923c}.stock-page.admin-mode .stock-status-rupture{background:#dc262626;color:#f87171}.stock-qty{font-weight:700;font-size:15px;font-family:Space Grotesk,sans-serif}.stock-qty-ok{color:#16a34a}.stock-qty-low{color:#d97706}.stock-qty-critical{color:#ea580c}.stock-qty-rupture{color:#dc2626}.stock-qty-input{width:64px;padding:4px 8px;border-radius:6px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;font-size:14px;font-family:Space Grotesk,sans-serif;font-weight:600;text-align:right;outline:none}.stock-qty-input:focus{border-color:#0ea5e9;box-shadow:0 0 0 2px #0ea5e926}.stock-page.admin-mode .stock-qty-input{background:#ffffff12;border-color:#ffffff26;color:#f1f5f9}.stock-empty{text-align:center;color:#94a3b8;padding:32px 0;font-size:14px}.stock-add-row{margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.stock-page.admin-mode .stock-add-row{border-top-color:#ffffff14}.stock-add-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:20px}.stock-page.admin-mode .stock-add-form{background:#ffffff0a;border-color:#ffffff1a}.stock-add-form h4{margin:0 0 14px;font-size:14px;font-weight:600;color:#0f172a}.stock-page.admin-mode .stock-add-form h4{color:#f1f5f9}.stock-add-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stock-add-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#64748b}.stock-add-grid input,.stock-add-grid select{padding:7px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;color:#0f172a;font-size:13px;font-family:inherit;outline:none}.stock-add-grid input:focus,.stock-add-grid select:focus{border-color:#0ea5e9;box-shadow:0 0 0 2px #0ea5e91f}.stock-page.admin-mode .stock-add-grid label{color:#94a3b8}.stock-page.admin-mode .stock-add-grid input,.stock-page.admin-mode .stock-add-grid select{background:#ffffff0f;border-color:#ffffff1f;color:#f1f5f9}.stock-add-actions{display:flex;gap:8px}.stock-confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.stock-confirm-dialog{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:28px 32px;max-width:480px;width:90%;box-shadow:0 20px 60px #0003}.stock-page.admin-mode .stock-confirm-dialog{background:#1e293b;border-color:#ffffff1f;color:#f1f5f9}.stock-confirm-dialog p{margin:0 0 12px;font-size:14px;line-height:1.6;color:#334155}.stock-page.admin-mode .stock-confirm-dialog p{color:#cbd5e1}.stock-confirm-actions{display:flex;gap:8px;margin-top:20px}.stock-alerts{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px 24px;box-shadow:0 4px 24px #0000000d}.stock-page.admin-mode .stock-alerts{background:#ffffff08;border-color:#ffffff14;box-shadow:none}.stock-alerts h3{margin:0 0 16px;font-size:15px;font-weight:700;color:#0f172a}.stock-page.admin-mode .stock-alerts h3{color:#f1f5f9}.stock-alert-group{margin-bottom:16px}.stock-alert-group:last-child{margin-bottom:0}.stock-alert-group h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}h4.rupture-title{color:#dc2626}h4.critical-title{color:#ea580c}h4.warning-title{color:#d97706}.stock-page.admin-mode h4.rupture-title{color:#f87171}.stock-page.admin-mode h4.critical-title{color:#fb923c}.stock-page.admin-mode h4.warning-title{color:#fbbf24}.stock-alert-list{display:flex;flex-direction:column;gap:6px}.stock-alert-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-radius:7px;font-size:13px;border-left:3px solid transparent}.stock-alert-item.rupture{background:#fef2f2;border-left-color:#dc2626;color:#7f1d1d}.stock-alert-item.critical{background:#fff7ed;border-left-color:#ea580c;color:#7c2d12}.stock-alert-item.warning{background:#fffbeb;border-left-color:#d97706;color:#78350f}.stock-page.admin-mode .stock-alert-item.rupture{background:#dc26261a;color:#fca5a5}.stock-page.admin-mode .stock-alert-item.critical{background:#ea580c1a;color:#fdba74}.stock-page.admin-mode .stock-alert-item.warning{background:#d977061a;color:#fde68a}.stock-alert-location{margin-left:auto;font-size:11px;opacity:.7;white-space:nowrap}.support-page{--support-bg: #eef4fb;--support-card: #ffffff;--support-border: #d5e2f3;--support-text: #0f172a;--support-muted: #475569;--support-primary: #0f766e;--support-primary-soft: #ccfbf1;--support-danger: #b91c1c;--support-danger-soft: #fee2e2;--support-success: #166534;--support-success-soft: #dcfce7;min-height:calc(100vh - 64px);background:radial-gradient(circle at 8% 2%,rgba(14,116,144,.12),transparent 44%),radial-gradient(circle at 95% 0%,rgba(15,118,110,.14),transparent 42%),var(--support-bg);color:var(--support-text);padding:24px clamp(16px,2vw,28px) 40px}.support-label{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:#334155}.support-header h1{margin:4px 0;font-size:clamp(1.1rem,.8rem + 1.2vw,1.6rem)}.support-subtitle{margin:0;color:var(--support-muted);max-width:780px}.support-back-link{text-decoration:none;color:#0e7490;font-weight:700;white-space:nowrap}.support-layout{width:min(1680px,98vw);margin:0 auto;display:grid;grid-template-columns:380px minmax(0,1fr);gap:14px;align-items:start}.support-sidebar,.support-main{display:grid;gap:12px}.support-card{background:var(--support-card);border:1px solid var(--support-border);border-radius:16px;padding:14px;box-shadow:0 12px 24px #0f172a0f}.support-card h2{margin:0 0 10px;font-size:1rem}.support-card-large{min-height:72vh}.support-form,.support-reply-form{display:grid;gap:10px}.support-form label,.support-reply-form label,.support-filters label{display:grid;gap:6px;font-size:.84rem;color:var(--support-muted)}.support-form input,.support-form textarea,.support-form select,.support-reply-form input,.support-reply-form textarea,.support-reply-form select,.support-filters select{border:1px solid #bfd0e3;border-radius:10px;background:#f8fbff;padding:9px 11px;color:var(--support-text);font:inherit}.support-form textarea,.support-reply-form textarea{resize:vertical}.support-btn{border:1px solid #b7c7dd;border-radius:10px;padding:9px 12px;font-weight:700;cursor:pointer;font:inherit}.support-btn:disabled{opacity:.65;cursor:not-allowed}.support-btn-primary{border-color:#0f766e;background:linear-gradient(135deg,#0f766e,#0e7490);color:#fff}.support-btn-primary:hover:not(:disabled){filter:brightness(1.04)}.support-btn-soft{border-color:#c6d5e7;background:#f8fbff;color:#334155}.support-btn-soft:hover:not(:disabled){background:#eef6ff}.support-error{margin:0;color:var(--support-danger);background:var(--support-danger-soft);border:1px solid rgba(185,28,28,.25);border-radius:10px;padding:8px 10px;font-size:.82rem}.support-success{margin:0;color:var(--support-success);background:var(--support-success-soft);border:1px solid rgba(22,101,52,.25);border-radius:10px;padding:8px 10px;font-size:.82rem}.support-empty{margin:0;color:var(--support-muted)}.support-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.support-ticket-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:54vh;overflow:auto}.support-ticket-btn{width:100%;text-align:left;border:1px solid #cad8ea;border-radius:12px;background:#f8fbff;color:inherit;padding:10px;display:grid;gap:6px;cursor:pointer}.support-ticket-btn.active{border-color:#0e7490;background:#ecfeff}.support-ticket-btn p{margin:0;color:#334155;font-size:.82rem}.support-ticket-btn small{color:#64748b}.support-ticket-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.support-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:700;border:1px solid transparent}.support-status-open{background:#ecfeff;color:#0e7490;border-color:#0e749040}.support-status-in_progress{background:#fef9c3;color:#854d0e;border-color:#854d0e40}.support-status-resolved{background:#dcfce7;color:#166534;border-color:#16653440}.support-status-closed{background:#e2e8f0;color:#334155;border-color:#33415540}.support-ticket-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid #dde7f4;padding-bottom:10px}.support-ticket-detail-head h2{margin:0 0 6px}.support-ticket-detail-head p{margin:0;color:#334155}.support-ticket-meta{display:grid;gap:8px;justify-items:end}.support-close-ticket-btn{padding:6px 10px;border-radius:999px;font-size:.78rem}.support-ticket-content{margin-top:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:12px;align-items:start}.support-conversation-panel,.support-files-panel{border:1px solid #d7e4f2;border-radius:12px;padding:10px}.support-conversation-panel{background:#fcfeff}.support-files-panel{background:#f6fbff;position:sticky;top:10px}.support-section-head{margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.support-section-head h3{margin:0;font-size:.92rem}.support-section-head span{border:1px solid #c9d8eb;border-radius:999px;padding:3px 8px;color:#334155;background:#fff;font-size:.72rem;font-weight:700}.support-hint{margin:0 0 10px;color:#64748b;font-size:.78rem}.support-attachments{margin:0}.support-attachment-grid{display:grid;grid-template-columns:1fr;gap:8px}.support-attachment-item{border:1px solid #c8d7e8;border-radius:10px;padding:10px;text-decoration:none;color:inherit;background:#f8fbff;display:grid;gap:4px}.support-attachment-item strong{font-size:.82rem}.support-attachment-item small{color:#475569}.support-messages{margin-top:0;display:flex;flex-direction:column;gap:10px;max-height:44vh;overflow:auto;padding:10px;border:1px dashed #d8e5f5;border-radius:10px;background:#fff}.support-message{border:1px solid #ced8e6;border-radius:18px;padding:10px 14px;display:grid;gap:4px;max-width:78%;width:fit-content}.support-message header{display:flex;align-items:baseline;gap:8px}.support-message header small{color:#64748b;font-size:.72rem}.support-message p{margin:0;white-space:pre-wrap;font-size:.92rem}.support-message-support{background:#f1f5f9;border-color:#e2e8f0;align-self:flex-start;border-bottom-left-radius:4px}.support-message-you{background:linear-gradient(135deg,#0e7490,#0f766e);border-color:transparent;align-self:flex-end;border-bottom-right-radius:4px;text-align:left}.support-message-you header strong{color:#ffffffe6}.support-message-you header small{color:#ffffffa6}.support-message-you p{color:#fff}.support-reply-form{margin-top:14px;border-top:1px solid #dde7f4;padding-top:12px}.support-readonly-note{margin-top:14px;border:1px solid #cde3f8;border-radius:12px;padding:11px 12px;background:#eff6ff;color:#1e3a8a;display:grid;gap:6px}.support-readonly-note strong{font-size:.9rem}.support-readonly-note p{margin:0;font-size:.82rem;color:#334155}.support-readonly-actions{display:flex;justify-content:flex-start}.support-file-pills{display:flex;flex-wrap:wrap;gap:6px}.support-file-pill{border:1px solid #c7d7e8;border-radius:999px;background:#f8fbff;color:#334155;padding:5px 10px;display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;font-size:.74rem}.support-file-pill strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.support-file-pill span{color:#64748b;white-space:nowrap}@media(max-width:1040px){.support-layout{grid-template-columns:1fr}.support-card-large{min-height:auto}.support-ticket-list,.support-messages{max-height:none}.support-ticket-content{grid-template-columns:1fr}.support-files-panel{position:static}}@media(max-width:700px){.support-ticket-detail-head{flex-direction:column;align-items:flex-start}.support-ticket-meta{justify-items:start}.support-file-pill strong{max-width:170px}}.hermes-page{min-height:100vh;background:linear-gradient(to bottom,#ffffffe6,#f5f7fbe6),url(/bg-hospital.jpg) center/cover no-repeat fixed;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hermes-topbar{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #e5e7eb;background:var(--atlas-header-bg, rgba(255,255,255,.85));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:0 16px}.ht-left{display:flex;align-items:center;gap:12px}.ht-logo img{width:34px;height:34px;object-fit:contain}.ht-title{font-weight:700;font-size:1.1rem;color:#0f172a}.ht-nav{display:flex;align-items:center;gap:12px}.ht-link{background:transparent;border:1px solid #e2e8f0;color:#0f172a;padding:8px 12px;border-radius:10px;cursor:pointer}.ht-link.active{background:#0ea5e914;border-color:#38bdf8}.ht-menu{position:relative}.ht-menu-panel{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:6px;box-shadow:0 10px 24px #0206171f;min-width:220px;z-index:10}.ht-menu:hover .ht-menu-panel{display:block}.ht-menu-item{display:block;width:100%;text-align:left;background:#f8fafc;border:1px solid #e2e8f0;padding:8px 10px;border-radius:8px;margin:4px 0;color:#475569}.ht-right{display:flex;align-items:center;justify-content:flex-end;gap:12px}.ht-welcome{color:#0ea5e9}.hermes-breadcrumbs{display:flex;align-items:center;gap:8px;padding:10px 20px;color:#64748b}.hermes-breadcrumbs a{color:#0ea5e9}.hermes-container{width:min(1100px,92vw);margin:0 auto;padding:20px 0 40px}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 12px 36px #0000000f;padding:20px 22px;color:#0f172a}.panel-title{margin:0 0 6px;font-size:1.4rem;font-weight:700;color:#0f172a}.panel-sub{margin:0 0 18px;color:#232426}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.panel-actions{margin:10px 0 16px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:.95rem;color:#0f172a}.table th,.table td{border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left;vertical-align:middle}.table thead th{background:#f8fafc;color:#334155;font-weight:700}.table tbody tr:hover{background:#f8fafc}.link-strong{color:#0ea5e9;font-weight:600}.hermes-form{display:grid;gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:820px){.grid-2{grid-template-columns:1fr}}.field-group{display:grid;gap:6px}.field-group label{font-weight:600;color:#1e293b;font-size:.9rem}.field-group input,.field-group select{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:.95rem;color:#0f172a;outline:none}.field-group input:focus,.field-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f62e}.upload-section{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px}.upload-box{flex:1;display:grid;gap:6px;min-width:220px}input[type=file]{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:10px;padding:8px;cursor:pointer}.btn{border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a;padding:8px 12px;border-radius:10px}.btn.outline{background:transparent}.btn.primary{background:#1971f8;color:#fff;border:none;padding:10px 14px}.btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn.ghost{background:transparent}.project-title{margin:6px 0;color:#0f172a;font-weight:700}.ht-logo-link{text-decoration:none}.ht-logo-text{font-size:1.4rem;color:#1971f8}.ht-menu-panel{display:block}.ht-menu-group{margin-bottom:4px}.ht-menu-group-label{display:block;font-size:.75rem;font-weight:700;color:#94a3b8;padding:4px 10px 2px;text-transform:uppercase;letter-spacing:.05em}.ht-menu-item{display:block;text-decoration:none;background:#f8fafc;border:1px solid #e2e8f0;padding:7px 10px;border-radius:8px;margin:2px 0;color:#475569;font-size:.9rem}.ht-menu-item:hover{background:#e0f2fe;color:#0369a1}.ht-menu-item-full{margin-top:6px;background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.fd-resume{display:grid;gap:6px;margin-bottom:16px}.fd-row{display:flex;gap:12px;align-items:baseline;border-bottom:1px solid #f1f5f9;padding:6px 0;color:#0f172a}.fd-label{font-weight:600;color:#334155;min-width:240px;font-size:.9rem}.fd-mono{font-family:monospace;font-size:.9rem}.fd-section{margin-top:20px}.fd-section-title{font-size:1rem;font-weight:700;color:#1e293b;margin:0 0 8px;border-left:3px solid #1971f8;padding-left:8px}.fd-ok{color:#16a34a;font-weight:700}.fd-nok{color:#ea580c;font-weight:700}.fd-total-row td{font-weight:700;background:#f8fafc}.fd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.fd-btn-validate{background:#16a34a!important}.fd-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600}.fd-badge-en_cours{background:#dbeafe;color:#1d4ed8}.fd-badge-valide{background:#dcfce7;color:#15803d}.fd-badge-ana_en_cours{background:#fef9c3;color:#a16207}.fd-badge-termine{background:#f1f5f9;color:#475569}.fd-badge-erreur{background:#fee2e2;color:#b91c1c}.gest-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:16px}.gest-home-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px;color:#0f172a;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s}.gest-home-card:hover{background:#eff6ff;border-color:#bfdbfe;box-shadow:0 4px 12px #00000012}.gest-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;border-bottom:1px solid #e5e7eb;padding-bottom:8px}.gest-tab{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:6px 14px;color:#475569;cursor:pointer;font-size:.9rem}.gest-tab.active{background:#1971f8;color:#fff;border-color:#1971f8}.gest-group-badge{display:inline-block;background:#dbeafe;color:#1d4ed8;border-radius:6px;padding:2px 8px;font-size:.8rem;font-weight:600;margin-right:4px}.gest-group-badge-alt{background:#fef9c3;color:#a16207}.gest-group-card{border:1px solid #e5e7eb;border-radius:12px;padding:16px;margin-bottom:16px}.gest-group-title{font-weight:700;color:#1e293b;margin:0 0 10px}.gest-select{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:.9rem}.gest-user-checkboxes{display:flex;flex-wrap:wrap;gap:12px}.gest-checkbox-label{display:flex;align-items:center;gap:6px;font-size:.9rem;cursor:pointer}.gest-checkbox-label input{width:16px;height:16px;cursor:pointer}.stats-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:20px}.stats-kpi{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:16px;text-align:center}.stats-kpi-value{font-size:1.8rem;font-weight:800;color:#1971f8}.stats-kpi-label{font-size:.8rem;color:#64748b;margin-top:4px}.stats-bar-group{display:grid;gap:10px}.stats-bar-item{display:grid;grid-template-columns:160px 1fr 40px;align-items:center;gap:10px}.stats-bar-label{font-size:.9rem;color:#334155}.stats-bar-track{background:#f1f5f9;border-radius:99px;height:10px}.stats-bar-fill{height:10px;border-radius:99px;background:#1971f8;transition:width .4s}.stats-bar-fill.stats-bar-termine{background:#64748b}.stats-bar-fill.stats-bar-valide{background:#16a34a}.stats-bar-fill.stats-bar-ana_en_cours{background:#eab308}.stats-bar-fill.stats-bar-erreur{background:#e11d48}.stats-bar-count{font-weight:700;color:#334155;text-align:right}.stats-filter-form{margin-bottom:16px}.traca-run-block{border:1px solid #e5e7eb;border-radius:12px;padding:14px;margin-bottom:14px}.traca-run-header{display:flex;gap:16px;align-items:center;margin-bottom:10px}.traca-run-id{font-weight:700;color:#1e293b}.traca-run-meta{font-size:.85rem;color:#64748b}.traca-generated{background:#dcfce7;border:1px solid #86efac;border-radius:10px;padding:12px 16px;color:#15803d;margin-top:12px}.traca-search{width:100%;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:8px 12px;font-size:.9rem;margin-bottom:8px;color:#0f172a}.traca-search::placeholder{color:#475569;opacity:1}.projects-search-input{color:#0f172a}.projects-search-input::placeholder{color:#334155;opacity:1}.traca-ngs-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media(max-width:900px){.traca-ngs-layout{grid-template-columns:1fr}}.traca-ngs-list{max-height:80vh;overflow-y:auto}.traca-row-selected td{background:#eff6ff!important}.hermes-submit{margin-top:8px}.hermes-container.wide{width:min(1400px,95vw)}.home.light{--bg-page: #f5f7fb;--bg-card: #ffffff;--text-strong: #0f172a;--text-muted: #475569;--border-soft: #e5e7eb;--shadow: 0 10px 30px rgba(15, 23, 42, .08);background:var(--bg-page);background:linear-gradient(to bottom,#ffffffd9,#ffffffd9),url(/bg-hospital.jpg) center/cover no-repeat fixed;background-attachment:fixed;color:var(--text-strong)}.topbar.light{height:64px;background:var(--atlas-header-bg, rgba(255,255,255,.85));border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 20px;position:sticky;top:0;z-index:20}.topbar.light .brand{display:flex;align-items:center;gap:12px}.topbar.light .brand-logo-lg{width:52px;height:52px;object-fit:contain}.site-title{text-align:center;font-weight:700;font-size:1.15rem}.top-right{display:flex;align-items:center;justify-content:flex-end;gap:12px}.welcome{color:#0ea5e9}.btn.outline{background:transparent;border:1px solid #cbd5e1;color:var(--text-strong);padding:8px 12px;border-radius:10px}.btn.primary{background:var(--btn-primary);color:#fff;border:none;padding:10px 14px;border-radius:10px}.btn.ghost{background:transparent;border:1px solid #e2e8f0;color:var(--text-strong);padding:10px 14px;border-radius:10px}.home-frame{position:relative;min-height:calc(100vh - 64px);padding:24px 15vw;overflow:hidden}.home-frame:before,.home-frame:after{content:"";position:absolute;top:0;bottom:0;width:14vw;background:url(/bg-hospital.jpg) center/cover no-repeat fixed;filter:blur(6px) grayscale(20%) opacity(.06);pointer-events:none}.home-frame:before{left:0}.home-frame:after{right:0}.home-grid{position:relative;z-index:1;display:grid;grid-template-columns:2fr 1fr;gap:24px}.left-col{display:grid;gap:24px}.hero-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.hero-card h2{margin:0 0 6px;font-size:1.25rem}.hero-card p{margin:0 0 14px;color:var(--text-muted)}.hero-lead{font-size:1.05rem}.hero-microbio{display:grid;grid-template-columns:2fr 1fr;gap:18px;border:1px solid var(--border-soft);border-radius:18px;padding:18px;background:linear-gradient(120deg,#0ea5e914,#6366f10d)}.hero-microbio h3{margin:0 0 6px}.hero-summary{margin:0;color:var(--text-strong);font-size:.98rem}.hero-quote{margin:0;padding:18px;border-radius:16px;background:#f8fafc;border:1px solid rgba(148,163,184,.4);box-shadow:inset 0 0 0 1px #ffffff4d;font-style:italic;display:flex;flex-direction:column;gap:8px}.hero-quote cite{font-style:normal;font-size:.85rem;color:var(--text-muted)}.info-toggle{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;border:1px solid rgba(14,165,233,.6);background:#0ea5e91f;color:#0369a1;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease}.info-toggle .chevron{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease;margin-top:2px}.info-toggle.open{background:#0ea5e9;color:#fff;border-color:#0ea5e9}.info-toggle.open .chevron{transform:rotate(-135deg)}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.preinscription-callout{margin-top:-6px;background:linear-gradient(120deg,#eef2ff,#fff);border:1px solid rgba(99,102,241,.35);border-radius:18px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 18px 40px #6366f12e}.preinscription-callout h3{margin:4px 0 6px;font-size:1.15rem}.preinscription-callout p{margin:0;color:var(--text-muted)}.callout-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:#5b21b6;margin:0}.news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card.soft{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:16px;padding:16px;box-shadow:var(--shadow);transition:transform .15s ease}.card.soft:hover{transform:translateY(-2px)}.card.soft h3{margin:0 0 6px;font-size:1rem}.card.soft p{margin:0;color:var(--text-muted)}.person-alert-list{margin:0;padding-left:18px;color:var(--text-muted);display:grid;gap:6px}.person-alert-list li{display:grid;gap:2px}.alert-line{display:flex;align-items:center;gap:8px}.alert-level-badge{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.alert-level-badge.level-1{background:#e0f2fe;color:#0369a1}.alert-level-badge.level-2{background:#fee2e2;color:#b91c1c}.person-alert-list li strong{color:#0f172a;font-size:.93rem}.person-alert-list li span{color:#64748b;font-size:.82rem}.personal-alert-item{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:8px 10px;margin:0 -10px}.personal-alert-item strong{color:#0c4a6e!important}.personal-alert-item>span{color:#0369a1!important;padding-left:2px}.broadcast-alert-item{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:8px 10px;margin:0 -10px}.broadcast-alert-item strong{color:#1e3a5f!important}.broadcast-alert-item>span{color:#1d4ed8!important;padding-left:2px}.external-alert-item{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:8px 10px;margin:0 -10px}.external-alert-item strong{color:#14532d!important}.external-alert-item>span{color:#16a34a!important;padding-left:2px}.alert-personal-badge{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#0ea5e9;color:#fff;flex-shrink:0}.alert-broadcast-badge{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#3b82f6;color:#fff;flex-shrink:0}.alert-external-badge{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#22c55e;color:#fff;flex-shrink:0}.alert-placeholder{margin:0;color:var(--text-muted);font-style:italic}.alert-error{margin:0;color:#b91c1c;font-size:.9rem}.alert-admin-tools{margin-top:12px;display:grid;gap:10px}.admin-alert-btn{justify-self:start;font-size:.85rem;padding:6px 10px}.alert-admin-form{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#f8fafc;display:grid;gap:10px}.alert-admin-form label{display:grid;gap:6px;font-size:.82rem;color:#334155}.alert-admin-form textarea,.alert-admin-form input,.alert-admin-form select{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:.9rem;color:#0f172a;background:#fff}.alert-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.urgent-alert-banner{position:relative;z-index:1;margin-bottom:16px;padding:12px 16px;border-radius:14px;border:1px solid #fecaca;background:linear-gradient(120deg,#ef4444,#b91c1c);box-shadow:0 12px 28px #b91c1c47;color:#fff}.urgent-alert-title{margin:0 0 8px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.urgent-alert-list{margin:0;padding-left:18px;display:grid;gap:8px}.urgent-alert-list li{display:grid;gap:2px}.urgent-alert-list li strong{font-size:.95rem}.urgent-alert-list li span{color:#ffffffe6;font-size:.82rem}.right-col{display:flex;flex-direction:column;gap:12px}.apps-title{margin:0;font-size:.9rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.roller-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.roller-item{position:relative;opacity:.95}.app-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;border-radius:999px;background:#ef4444;color:#fff;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid #f8fafc;pointer-events:none;z-index:10;line-height:1}.app-pill{width:100%;margin-left:0;padding:16px;min-height:56px;font-size:1rem;display:flex;align-items:center;gap:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#0f172a;border-radius:12px;cursor:pointer;text-align:left;transition:transform .08s ease,box-shadow .15s ease}.app-pill:hover{transform:translateY(-2px);box-shadow:0 6px 18px #02061714}.dot{width:12px;height:12px;border-radius:999px;background:linear-gradient(135deg,#ff7a42,#ffb347);flex:0 0 12px}.microbio-section{margin-top:0;padding:0;border:1px solid transparent;border-radius:24px;background:transparent;box-shadow:none;display:flex;flex-direction:column;gap:28px;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .55s ease,opacity .35s ease,padding .35s ease,margin-top .35s ease,border-color .35s ease,box-shadow .35s ease,background .35s ease}.microbio-section.open{margin-top:32px;padding:32px;border:1px solid var(--border-soft);background:linear-gradient(135deg,#0ea5e914,#6366f10f);box-shadow:var(--shadow);max-height:9999px;opacity:1;pointer-events:auto}.microbio-top{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:center}.microbio-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:#0284c7;margin:0 0 6px}.microbio-quote{margin:0;padding:22px;border-radius:18px;background:#ffffffe6;border:1px solid rgba(2,132,199,.2);box-shadow:0 12px 30px #0ea5e933;display:flex;flex-direction:column;gap:6px}.microbio-quote h3,.microbio-quote p{margin:0}.microbio-quote p:not(.microbio-eyebrow){color:var(--text-strong)}.microbio-quote cite{display:block;margin-top:12px;font-style:normal;font-size:.9rem;color:var(--text-muted)}.microbio-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.microbio-stat{background:#ffffffeb;border-radius:16px;padding:18px;border:1px solid rgba(148,163,184,.4);box-shadow:inset 0 0 0 1px #fff6}.stat-value{margin:0;font-size:1.4rem;font-weight:700}.stat-label{margin:4px 0 6px;text-transform:uppercase;font-size:.75rem;letter-spacing:.1em;color:#2563eb}.stat-detail{margin:0;color:var(--text-muted);font-size:.9rem}.microbio-pillars,.microbio-services,.microbio-bottom{display:grid;gap:18px}.microbio-pillars,.microbio-services,.microbio-bottom{grid-template-columns:repeat(3,minmax(0,1fr))}.microbio-card{background:#fffffff2;border-radius:20px;padding:20px;border:1px solid rgba(148,163,184,.45);box-shadow:0 15px 35px #0206171f;display:flex;flex-direction:column;gap:10px}.microbio-card h3{margin:0}.microbio-card p{margin:0;color:var(--text-muted)}.microbio-card ul{margin:0;padding-left:20px;color:var(--text-strong);display:grid;gap:8px}.microbio-divider{height:1px;background:#94a3b899;margin:12px 0}.microbio-people{list-style:none;margin:0;padding:0;display:grid;gap:10px}.microbio-people li{display:flex;flex-direction:column;gap:2px}.microbio-people span{color:var(--text-muted);font-size:.9rem}.microbio-small-title{margin:12px 0 6px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.microbio-chips{display:flex;flex-wrap:wrap;gap:10px}.microbio-chips .chip{border-radius:999px;padding:6px 12px;background:#f8fafc;border:1px solid rgba(148,163,184,.6);font-size:.85rem;color:#0f172a}@media(max-width:1100px){.home-frame{padding:20px 8vw}.home-frame:before,.home-frame:after{width:8vw}.microbio-top{grid-template-columns:1fr}.microbio-stats,.microbio-pillars,.microbio-services,.microbio-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.home-grid,.news-grid,.hero-microbio,.microbio-stats,.microbio-pillars,.microbio-services,.microbio-bottom,.alert-date-grid{grid-template-columns:1fr}}.profil-page{min-height:100vh;background:#f8fafc}.profil-back{background:transparent;border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px;cursor:pointer;color:#475569;font-size:.9rem}.profil-back:hover{background:#f1f5f9}.profil-title{font-size:1.1rem;font-weight:700;color:#0f172a;margin:0}.profil-main{max-width:720px;margin:40px auto;padding:0 16px}.profil-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 8px 24px #0000000f;padding:28px}.profil-avatar-block{display:flex;align-items:center;gap:20px;margin-bottom:20px}.profil-avatar{width:64px;height:64px;border-radius:50%;background:#1971f8;color:#fff;font-size:1.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profil-fullname{font-size:1.2rem;font-weight:700;color:#0f172a}.profil-email{font-size:.9rem;color:#64748b;margin-top:2px}.profil-role-badge{display:inline-block;margin-top:6px;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600}.profil-divider{height:1px;background:#f1f5f9;margin:20px 0}.profil-fields{display:grid;gap:10px}.profil-field{display:flex;gap:16px;align-items:baseline;padding:8px 0;border-bottom:1px solid #f8fafc}.profil-field-label{font-weight:600;color:#334155;min-width:160px;font-size:.9rem}.profil-field-value{color:#0f172a;font-size:.95rem}.droit-intro{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.droit-desc{color:#475569;font-size:.9rem;margin:0}.droit-table{width:100%;border-collapse:collapse;font-size:.93rem;margin-top:8px}.droit-table th,.droit-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #f1f5f9}.droit-table thead th{color:#334155;font-weight:700;background:#f8fafc}.droit-table tbody tr:hover{background:#fafafa}.droit-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600}.droit-badge-plein{background:#dcfce7;color:#15803d}.droit-badge-lecture{background:#dbeafe;color:#1d4ed8}.droit-badge-aucun{background:#f1f5f9;color:#64748b}.preinscription-page{min-height:100vh;background:radial-gradient(circle at top,#dde7ff,#f4f7ff 45%,#fff);padding:48px 16px;display:flex;justify-content:center}.preinscription-container{width:min(1180px,100%);background:#fff;border-radius:26px;box-shadow:0 25px 70px #14234a26;padding:44px 52px;color:#131c34}.preinscription-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,1.2fr);gap:32px}.preinscription-content{display:flex;flex-direction:column;gap:18px}.preinscription-sidebar{display:flex;flex-direction:column;gap:20px}.preinscription-container header .eyebrow{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#556789}.preinscription-container h1{margin-top:8px;margin-bottom:8px;font-size:2.2rem}.preinscription-container .subtitle{color:#4c556b;margin-bottom:12px}.preinscription-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:20px 0 8px}.preinscription-steps .step{border:none;text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px dashed #c3cee9;border-radius:16px;background:#f7f8fc;color:#5d678a}.preinscription-steps .step.current{border-style:solid;border-color:#3a63f8;background:#3a63f814;color:#0f1a32;font-weight:600}.preinscription-steps .step.complete{border-color:#45b777;background:#45b7771a}.preinscription-steps .step-index{width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.preinscription-steps .step-label{font-size:.95rem}.preinscription-form{margin-top:32px;display:flex;flex-direction:column;gap:24px}.aside-card{border-radius:22px;border:1px solid rgba(74,96,164,.2);background:#f7f8ff;padding:22px 24px;box-shadow:0 18px 35px #0f183e14}.summary-card{background:linear-gradient(145deg,#eef2ff,#fff 65%);border:1px solid rgba(58,99,248,.4)}.summary-header{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.summary-eyebrow{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#4f5d88}.summary-header h3{margin:0}.summary-lead{margin:0;color:#4a5475;font-size:.95rem}.summary-progress{margin-bottom:10px}.summary-progress-meta{display:flex;justify-content:space-between;font-size:.9rem;font-weight:600;color:#0f1b3d}.summary-progress-bar{width:100%;height:12px;border-radius:999px;background:#39519f2e;overflow:hidden;margin:8px 0}.summary-progress-bar span{display:block;height:100%;background:linear-gradient(120deg,#3a63f8,#6c39ff);transition:width .3s ease}.summary-progress-hint{margin:0;font-size:.85rem;color:#4b5672}.summary-section{margin-top:18px;padding-top:16px;border-top:1px solid rgba(33,47,95,.12);display:flex;flex-direction:column;gap:6px}.summary-label{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#5b6593}.summary-value{font-weight:600;color:#0b1a39;font-size:1.05rem}.summary-detail{margin:0;color:#4f5b7a;font-size:.92rem}.summary-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.summary-list li{border:1px solid rgba(105,130,209,.3);border-radius:14px;padding:10px 12px;background:#ffffffe6;display:flex;flex-direction:column;gap:4px}.summary-pill{font-size:.75rem;text-transform:uppercase;color:#556295;letter-spacing:.08em}.summary-item-value{font-weight:600;color:#101a38;word-break:break-word}.summary-badge{align-self:flex-start;font-size:.76rem;font-weight:600;color:#1f6d40;background:#e3f9eb;border-radius:999px;padding:2px 10px}.summary-empty{color:#6b7393;font-style:italic}.next-steps ul,.support-card ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.next-steps li{border-left:3px solid #3a63f8;padding-left:12px}.next-steps strong{display:block;color:#111a36;margin-bottom:4px}.next-steps p{margin:0;color:#4c5676;font-size:.92rem}.next-steps-hint{margin-top:12px;font-size:.9rem;color:#5a6281}.support-lead{margin:4px 0 12px;color:#4d5672}.support-card li{border:1px dashed rgba(58,99,248,.25);border-radius:14px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:4px}.support-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#5d668d}.support-card a,.support-value{font-weight:600;color:#1d2f66;text-decoration:none}.support-card a:hover{text-decoration:underline}.support-card li p{margin:4px 0 0;color:#5f6785;font-size:.9rem}.preinscription-form section{border:1px solid rgba(113,128,150,.15);border-radius:18px;padding:22px 26px;background:#fff;box-shadow:inset 0 1px #ffffff4d}.section-heading{margin-bottom:16px}.section-heading h2{margin:0 0 6px}.section-heading p{margin:0;color:#5a6382;font-size:.95rem}.preinscription-form h2{margin-bottom:18px;font-size:1.25rem;color:#0f1a32}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.preinscription-form label{display:flex;flex-direction:column;gap:6px;font-size:.95rem;color:#1f2d3d}.preinscription-form input,.preinscription-form select,.preinscription-form textarea{border-radius:10px;border:1px solid #c3cee9;padding:12px 14px;font-size:1rem;font-family:inherit;background:#f7f8fc;color:#12182b;transition:border .2s ease,box-shadow .2s ease}.preinscription-form input::placeholder,.preinscription-form textarea::placeholder{color:#7c88a8}.preinscription-form input:focus,.preinscription-form select:focus,.preinscription-form textarea:focus{border-color:#3a63f8;box-shadow:0 0 0 3px #3a63f82e;background:#fff;outline:none}.preinscription-form textarea{resize:vertical}.contact-section{border:1px solid rgba(113,128,150,.2);border-radius:16px;padding:18px;background:#fdfdff;margin-bottom:18px}.contact-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-weight:600;color:#1a2645}.contact-item{border:1px solid #dbe2f4;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:12px;background:#fff;margin-bottom:12px}.contact-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.contact-fields-phones{grid-template-columns:minmax(320px,2fr) minmax(220px,1fr)}.contact-fields-phones .phone-type-field{justify-self:stretch}.phone-type-field{max-width:220px}.phone-number-group{display:grid;grid-template-columns:100px 1fr;gap:10px;align-items:center}.phone-prefix-field{display:flex;flex-direction:column;font-size:.85rem;color:#5a6382;gap:4px}.phone-prefix-field label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#7a84a8}.phone-prefix-field input{text-align:center;padding:10px 8px}.phone-number-group input[type=tel]{flex:1}.contact-error{margin-top:4px}.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.form-actions .btn.ghost{margin-right:auto}@media(max-width:900px){.contact-fields-phones{grid-template-columns:1fr}.phone-type-field{max-width:none}}.contact-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center;flex-wrap:wrap}.contact-primary{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:#2a3762}.contact-empty{margin:0 0 12px;color:#6f7595;font-size:.92rem}.field-hint{font-size:.9rem;margin-top:10px}.field-hint.error{color:#b62020}.preinscription-form .btn.primary{align-self:flex-start;padding:13px 36px;border-radius:999px;background:linear-gradient(120deg,#3a63f8,#6c39ff);color:#fff;border:none;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 12px 30px #5469ff59}.preinscription-form .btn.primary:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.preinscription-form .btn.primary:not(:disabled):hover{transform:translateY(-1px)}.preinscription-form .btn.ghost{align-self:flex-start;padding:10px 20px;border-radius:999px;border:1px dashed #7b8ab5;background:transparent;color:#3a63f8;font-weight:600;cursor:pointer}.preinscription-form .btn.ghost:hover{background:#3a63f814}.contact-actions .ghost{border:none;background:none;color:#d64545;font-weight:600;cursor:pointer}.contact-actions .ghost:hover{text-decoration:underline}.banner{padding:12px 16px;border-radius:12px;font-weight:500}.banner.success{background:#ecfdf3;color:#0f6b2f;border:1px solid #b7efc5}.banner.error{background:#ffecec;color:#9f1c1c;border:1px solid #f3bbbb}.link-back{color:#2744c5;font-weight:600}@media(max-width:1100px){.preinscription-layout{grid-template-columns:1fr}.preinscription-sidebar{order:-1}}@media(max-width:720px){.preinscription-container{padding:32px 24px}.aside-card{padding:18px}}
