:root{--bg:#f7f8fa;--ink:#172d29;--muted:#7a8582;--green:#255d4d;--border:#e7ebe8;--mint:#ecf4ef;--amber:#9a6b25;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--ink);font:14px/1.6 var(--sans);background:var(--bg)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border-radius:8px;padding:11px 17px;font-weight:600;font-size:13px;border:1px solid transparent;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:background .15s}button:disabled{opacity:.5;cursor:wait}button:hover:not(:disabled),.button:hover{filter:brightness(.96)}.primary{background:var(--green);color:white}.secondary{background:white;border-color:var(--border);color:var(--ink)}.wide{width:100%;justify-content:space-between;padding:16px 18px}.brand{display:flex;align-items:center;gap:10px;font-size:29px;letter-spacing:-1.5px;font-weight:650;color:inherit;text-decoration:none}.brand-dot{color:#75a991;margin-left:-10px}.brand-icon{background:var(--green);color:white;border-radius:10px;width:34px;height:36px;text-align:center;line-height:34px;font-family:Georgia,serif;font-style:italic;font-size:33px}.workspace{display:flex;min-height:100vh}.sidebar{width:244px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--border);background:#fff;padding:30px 22px;display:flex;flex-direction:column}.workspace-label{margin:48px 12px 13px;font-size:10px;letter-spacing:1.8px;color:#97a09d;font-weight:650}.nav{width:100%;text-align:left;justify-content:flex-start;background:transparent;color:#75817a;margin:3px 0;padding:13px 15px;gap:13px}.nav>span:first-child{font-size:20px;line-height:1}.nav.active{background:var(--mint);color:var(--green)}.nav-count{margin-left:auto;font-size:10px;border-radius:5px;padding:0 6px;background:#dcebe0}.sidebar-note{margin-top:auto;padding:20px 12px;font-size:12px;color:var(--green)}.sidebar-note p{font-size:11px;color:#929a96;margin:7px 0 0}.status-dot{width:6px;height:6px;display:inline-block;background:#64947b;border-radius:50%;margin-right:6px}.profile{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:21px}.profile strong{font-size:12px;display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis}.profile small{font-size:10px;display:block;color:var(--muted)}.avatar{background:#efece5;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-family:Georgia,serif}.icon-button{padding:0;background:transparent;font-size:21px;color:var(--muted);margin-left:auto}.main{margin-left:244px;width:calc(100% - 244px)}.topbar{height:78px;border-bottom:1px solid var(--border);padding:0 42px;display:flex;justify-content:space-between;align-items:center;background:#fff;font-size:12px}.breadcrumb{margin:0 13px;color:#bdc5bf}.secure-badge{display:inline-flex;gap:5px;align-items:center;font-size:10px;color:#668574;letter-spacing:.4px}.view{padding:36px 42px 30px;max-width:1550px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 29px;gap:20px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:#85978d;margin:0 0 8px}h1{font-size:34px;font-weight:550;letter-spacing:-1.3px;line-height:1.2;margin:0 0 10px}h2{font-size:16px;letter-spacing:-.25px;font-weight:600;margin:0}h3{font-weight:550}.muted{color:var(--muted);margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:30px}.stats article{background:white;border:1px solid var(--border);border-radius:11px;padding:21px 22px}.stats article>span{font-size:11px;color:var(--muted)}.stats strong{display:block;font-size:33px;font-weight:550;letter-spacing:-1px;margin:7px 0}.stats small{display:block;font-size:10px;color:#929b96}.stats .stat-alert{background:#fcfaf4;border-color:#ece6d8}.stat-alert strong{color:var(--amber)}.panel{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden}.panel-title{display:flex;align-items:center;justify-content:space-between;padding:21px 24px 17px}.pill{font-size:10px;margin-left:8px;background:#eff2ef;color:#7c8d80;padding:3px 7px;border-radius:5px}.filters{padding:0 24px 20px;display:flex;gap:12px}.search{display:flex;align-items:center;gap:9px;flex:1;max-width:390px;border:1px solid var(--border);border-radius:7px;padding:0 12px;color:#8e9a92;margin:0}.search span{font-size:23px}.search input{border:0;background:none;padding:10px 0;outline-offset:3px}.filters select{margin-left:auto;width:190px;font-size:12px;padding:10px 12px}input,select,textarea{width:100%;border:1px solid #dfe6df;background:#fff;border-radius:7px;padding:11px 12px;outline-color:#608b75;color:var(--ink)}input::placeholder,textarea::placeholder{color:#a4aca6}label{display:block;font-size:12px;font-weight:500;color:#65756a;margin:15px 0}label input,label textarea,label select{display:block;margin-top:6px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:1.1px;font-weight:600;color:#929e95;background:#fafbf9;padding:13px 24px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}td{padding:18px 24px;border-bottom:1px solid #f0f2ef;font-size:12px}td strong{font-weight:550;display:block}td small{display:block;font-size:10px;color:#98a297;margin-top:3px}.quantity{font-size:14px;font-weight:600}.location{color:#869086}.tag{font-size:10px;border-radius:5px;padding:5px 8px}.tag.ok{color:#52745b;background:#eff5ee}.tag.warning{color:#997131;background:#faf3e4}.tag.neutral{color:#8a9290;background:#f0f1f0}.row-actions{text-align:right;padding-left:0}.table-button{padding:5px 7px;font-size:10px;color:#6c8070;background:transparent}.table-button:first-child{border-color:var(--border)}.panel-footer{padding:14px 24px;font-size:10px;color:#98a295;display:flex;justify-content:space-between}.footnote{font-size:10px;color:#9ba59b;margin-top:18px}.empty{text-align:center;padding:46px 20px;color:var(--muted)}.empty>span{font-size:32px;color:#9ab29e}.empty h3{color:var(--ink);margin:12px 0 4px}.empty p{font-size:12px;margin:0 0 18px}.positive{color:#478264}.negative{color:#ad7753}.security-panel{padding:26px}.security-panel>.muted{font-size:12px;margin:8px 0 22px}.key-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:16px 0}.key-row small{display:block;color:var(--muted);font-size:11px}.inline-form{display:flex;gap:16px;align-items:flex-end}.inline-form label{flex:1;margin-bottom:0}.inline-form button{margin-bottom:0}.notice{border:1px solid #e1e9dd;background:#f1f5ed;padding:20px;border-radius:9px;margin:25px 0;font-size:12px;color:#61745d}.notice p{margin:7px 0 0}.notice.error,.toast.error{background:#fff3ee;border-color:#e8c7b9;color:#95472e}.hint{font-size:11px;color:#8f9a92;line-height:1.7}details{border-top:1px solid var(--border);padding-top:18px;font-size:12px;color:#778b76}summary{cursor:pointer}.setup-page{padding:50px 18px}.setup-card{max-width:680px;margin:auto;background:white;padding:40px 48px;border:1px solid var(--border);border-radius:14px}.setup-card .brand{margin-bottom:35px}.setup-card>p:not(.eyebrow){color:var(--muted);font-size:13px}.setup-card h1{font-size:29px}.setup-card h2{margin-top:28px;font-size:14px}.checks{list-style:none;padding:18px;background:#fafbf8;border-radius:8px;font-size:12px;line-height:2}.checks span{margin-right:8px}.good{color:#4f8b61}.bad{color:#b56844}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.secret-code{word-break:break-all;font-size:14px}dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:14px;padding:28px;color:var(--ink);box-shadow:0 20px 80px #102f2622}dialog::backdrop{background:#142b2455;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-head h2{font-size:23px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;padding:16px 24px;background:#edf5ef;border:1px solid #c5d6c8;border-radius:9px;color:#305d3e;font-size:13px;box-shadow:0 8px 30px #0001;z-index:10}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:focus-visible{outline:3px solid #7aab8e;outline-offset:3px}@media(min-width:1500px){.view{padding-top:50px}}@media(max-width:1100px){.sidebar{width:205px;padding:26px 16px}.main{margin-left:205px;width:calc(100% - 205px)}.view{padding:28px 24px}.topbar{padding:0 24px}.stats{gap:10px}.stats article{padding:16px}td,th{padding-left:16px;padding-right:16px}.row-actions{white-space:normal}}@media(max-width:760px){.sidebar{position:static;width:100%;padding:16px 20px;display:block}.workspace{display:block}.sidebar .brand{font-size:24px}.sidebar nav{display:flex;margin-top:14px;gap:6px}.nav{justify-content:center;padding:9px;font-size:12px}.sidebar-note,.workspace-label{display:none}.profile{position:absolute;right:20px;top:18px;padding:0;border:0}.profile>div,.profile .avatar{display:none}.main{margin:0;width:100%}.topbar{height:55px;padding:0 20px}.view{padding:26px 18px}.page-heading{align-items:flex-start;flex-wrap:wrap}h1{font-size:29px}.page-heading>.primary{margin-top:0}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stats strong{font-size:28px}.filters{padding:0 15px 16px;flex-direction:column}.filters select{width:100%}.search{max-width:none}.panel-title{padding:18px 15px}.panel-title h2{font-size:14px}.panel-title button{font-size:11px;padding:8px}.setup-card{padding:28px 22px}.form-grid{grid-template-columns:1fr;gap:0}.inline-form{display:block}.inline-form button{margin-top:12px}.secure-badge{font-size:9px}}

.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-button{min-width:160px;min-height:48px;padding:13px 28px;font-size:15px}
/* Administration des modules */
#view-modules .panel{margin-bottom:24px}#view-modules details{margin-top:20px}#view-modules summary{cursor:pointer;font-weight:600}.fingerprints{font-family:monospace;overflow-wrap:anywhere;font-size:12px}.module-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.module-backup{gap:20px;align-items:center}#module-form input[type=file]{max-width:100%;padding:12px}#view-modules .hint{overflow-wrap:anywhere}@media(max-width:700px){.module-backup{align-items:stretch;flex-direction:column}.module-actions{justify-content:flex-start}}
