:root{--bg: #0f1216;--card: #171c23;--ink: #e6e9ef;--muted: #8b95a5;--line: #262d38;--good: #3fb950;--warn: #d29922;--bad: #f85149;--accent: #58a6ff;--side: #12161c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14.5px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}h2{font-size:17px;margin:0 0 12px}.sidebar{position:fixed;top:0;left:0;bottom:0;width:236px;background:var(--side);border-right:1px solid var(--line);padding:18px 14px;overflow:auto}.brand{font-size:16px;font-weight:700;margin:0 0 2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.brand-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#58a6ff,#8ee79f);color:#0d1117;font-size:11px;font-weight:800;letter-spacing:-.5px;box-shadow:0 1px 4px #58a6ff59}.brand small{flex-basis:100%;color:var(--muted);font-weight:400;font-size:11.5px}nav{margin:16px 0;display:flex;flex-direction:column;gap:2px}.nav-group{margin-bottom:10px}.nav-group-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#6b7686;padding:4px 10px;font-weight:700}nav button{text-align:left;padding:8px 10px;border-radius:8px;color:var(--ink);font-size:13.5px;background:none;border:0;cursor:pointer;width:100%}nav button:hover{background:#1b222c}nav button.active{background:#17293b;color:#cfe3ff;font-weight:600}.side-sec{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.side-sec h4{margin:0 0 8px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.sld label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:6px 0 2px}.sld input[type=range]{width:100%;accent-color:var(--accent)}.side-sec .lnk{display:block;font-size:12.5px;color:var(--muted);padding:3px 0}.main{margin-left:236px;padding:22px 24px 90px;max-width:1080px}.topbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.topbar h1{font-size:19px;margin:0;flex:1}.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12.5px;font-weight:600}.r-defensif{background:#3a1d1d;color:#ff9a9a}.r-expansion{background:#13301c;color:#8ee79f}.r-neutre{background:#2a2f0f;color:#e7e08e}.tag-cb{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:5px;background:#17303f;color:#79c0ff;font-size:10.5px;font-weight:700;letter-spacing:.3px;vertical-align:middle;cursor:help}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:15px 17px;margin:12px 0}.muted,.sub{color:var(--muted)}.sub{font-size:12.5px}button{font:inherit;border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;background:#222a35;color:var(--ink)}button.primary{background:var(--accent);color:#04101f;font-weight:700;border:0}button:disabled{opacity:.5;cursor:default}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.kpi{background:#0f1216;border:1px solid var(--line);border-radius:9px;padding:11px 13px}.kpi .v{font-size:19px;font-weight:700}.kpi .k{color:var(--muted);font-size:11.5px}.row2{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:8px}.row2 label{font-size:12.5px;color:var(--muted)}input[type=number],input[type=search],input[type=password],input[type=text],input[type=month],select{background:#0f1216;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;background:var(--card)}th.l,td.l{text-align:left}th:hover{color:var(--ink)}tbody tr{cursor:pointer}tbody tr:hover td{background:#1b2430}tr.top td{background:#13202f}tr.top:hover td{background:#17293b}.rank{color:var(--muted)}.score{font-weight:700;color:#cfe3ff}.lowdata{color:var(--warn)}.na{color:var(--muted)}.spark svg{display:block}.note :is(h1,h2,h3){color:var(--accent);border:0;font-size:15px;margin:14px 0 6px}.warn-box{background:#241a05;border:1px solid #4a3a10;color:#e7c772;border-radius:9px;padding:10px 13px;font-size:13px}#status{font-size:12px;color:var(--muted);margin-top:6px}.flags{color:var(--warn)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.modal .box{background:var(--card);border:1px solid var(--line);border-radius:12px;max-width:760px;width:100%;max-height:90vh;overflow:auto;padding:18px 20px}.close{float:right;cursor:pointer;color:var(--muted);font-size:20px;background:none;border:0}.login-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center}.login-wrap form{background:var(--card);border:1px solid var(--line);padding:28px;border-radius:12px;width:320px}.login-wrap h1{font-size:18px;margin:0 0 16px}.login-wrap input{width:100%;margin-bottom:12px}.login-wrap button{width:100%}.err{color:var(--bad);font-size:13px;margin-bottom:10px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 900px){.two-col{grid-template-columns:1fr}}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-actions .lnk{color:var(--muted);font-size:12.5px}.topbar-actions #status{margin-top:0}.spec-controls{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.spec-sliders{display:flex;gap:20px;flex-wrap:wrap;flex:1;min-width:0}.spec-sliders .sld{min-width:150px;flex:1}.spec-sliders .sld label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:0 0 4px}.spec-sliders .sld input[type=range]{width:100%;accent-color:var(--accent)}.home-hero{margin:4px 0 10px}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.home-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;cursor:pointer;text-align:left;color:var(--ink);transition:border-color .15s,background .15s}.home-card:hover{border-color:var(--accent);background:#1b222c}.home-card .emoji{font-size:26px;line-height:1}.home-card h3{margin:10px 0 4px;font-size:15px}.home-card p{margin:0;color:var(--muted);font-size:12.5px}.mobile-only{display:none}.home-import-recu{width:100%;margin:0 0 12px;padding:14px 16px;font-size:15px;font-weight:600;border-radius:12px;border:1px solid var(--accent);background:#17293b;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.home-import-recu:active{background:#1b3350}@media (max-width: 820px){.sidebar{position:static;width:auto;height:auto}.main{margin-left:0}}@media (max-width: 640px){.main{padding:14px 12px 72px;max-width:none}.mobile-only{display:block}.sidebar{padding:12px 12px 10px}.brand{font-size:15px}nav{flex-direction:row;flex-wrap:wrap;gap:6px;margin:12px 0}.nav-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;margin-bottom:6px}.nav-group-title{width:100%;padding:2px 2px 0}nav>button,.nav-group button{width:auto;padding:7px 11px;background:#1b222c;border:1px solid var(--line)}nav button.active{background:#17293b}.topbar h1{font-size:17px}.grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.kpi{padding:10px 11px}.kpi .v{font-size:17px}.card{padding:13px;overflow-x:auto}table{font-size:12.5px}th,td{padding:5px 7px}input[type=number],input[type=search],input[type=password],input[type=text],input[type=month],select{font-size:16px;padding:8px 9px}.row2{gap:10px}.warn-box{font-size:12.5px}.respt{overflow-x:visible}.respt table,.respt tbody,.respt tr,.respt td{display:block;width:100%}.respt thead{display:none}.respt tr{border:1px solid var(--line);border-radius:9px;padding:6px 10px;margin:0 0 8px}.respt tr.top{background:#13202f}.respt td{border:0;padding:4px 0;white-space:normal;max-width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;text-align:right}.respt td:empty{display:none}.respt td:before{content:attr(data-label);color:var(--muted);font-size:12px;text-align:left;white-space:nowrap;flex:0 1 auto}.respt td[data-label=""]:before{display:none}.respt td.l{text-align:left}.respt td input,.respt td select,.respt td span,.respt td b{min-width:0}.respt td input[type=number],.respt td select{max-width:55%;box-sizing:border-box}.respt td input[type=text]{flex:1 1 auto;width:auto;max-width:100%}html,body{max-width:100%;overflow-x:hidden}.main{overflow-x:hidden}.card,.respt,.respt table,.respt tr{max-width:100%}}
