:root{--text:#6e6a62;--text-h:#1f1e1b;--bg:#f7f6f3;--bg-subtle:#eeece7;--border:#dad7d0;--accent:#ff5a1f;--accent-text:#fff;--accent-bg:#ff5a1f1a;--accent-border:#ff5a1f73;--logo-bg:#232019;--logo-dot:#fff;--green:#157f3d;--green-bg:#157f3d24;--lime:#63790a;--lime-bg:#63790a29;--orange:#b6540a;--orange-bg:#b6540a29;--red:#c31f1f;--red-bg:#c31f1f24;--sans:"Space Grotesk", system-ui, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--text:#9c9b97;--text-h:#f2f1ee;--bg:#161615;--bg-subtle:#1e1e1c;--border:#343432;--accent:#ff7a45;--accent-text:#171613;--accent-bg:#ff7a4529;--accent-border:#ff7a4580;--logo-bg:#f2f1ee;--logo-dot:#201f1c;--green:#4ade80;--green-bg:#4ade802e;--lime:#a3e635;--lime-bg:#a3e6352e;--orange:#fbbf24;--orange-bg:#fbbf242e;--red:#f87171;--red-bg:#f871712e}}:root[data-theme=dark]{--text:#9c9b97;--text-h:#f2f1ee;--bg:#161615;--bg-subtle:#1e1e1c;--border:#343432;--accent:#ff7a45;--accent-text:#171613;--accent-bg:#ff7a4529;--accent-border:#ff7a4580;--logo-bg:#f2f1ee;--logo-dot:#201f1c;--green:#4ade80;--green-bg:#4ade802e;--lime:#a3e635;--lime-bg:#a3e6352e;--orange:#fbbf24;--orange-bg:#fbbf242e;--red:#f87171;--red-bg:#f871712e}*{box-sizing:border-box}body{background-image:radial-gradient(var(--border) 1px, transparent 1px);background-size:18px 18px;margin:0}h1,h2{letter-spacing:-.01em;color:var(--text-h);font-weight:600}button,input,select{font:inherit;color:inherit}.app{max-width:1100px;margin:0 auto;padding:40px 24px 80px}.app__header{text-align:center;margin-bottom:32px;position:relative}.theme-toggle{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;line-height:1;display:flex;position:absolute;top:0;right:0}.theme-toggle:hover{border-color:var(--accent-border)}.app__header h1{letter-spacing:-.02em;margin:0;font-size:36px}.app__brand{justify-content:center;align-items:center;gap:14px;margin-bottom:8px;display:flex}.app__brand svg{border-radius:10px;flex-shrink:0}.app__subtitle{color:var(--text);font-size:16px}.app__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;row-gap:12px;margin:24px 0 12px;display:flex}.app__toolbar-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.secondary-button{background:var(--bg);border:1px solid var(--border);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--text-h);border-radius:5px;padding:7px 14px;font-size:13px;font-weight:600}.secondary-button:hover{border-color:var(--accent-border);color:var(--accent)}.primary-button{background:var(--accent);color:var(--accent-text);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;border:none;border-radius:5px;padding:8px 16px;font-size:13px;font-weight:600}.primary-button:hover{filter:brightness(1.08)}.primary-button:disabled{opacity:.5;cursor:not-allowed;filter:none}.export-panel-backdrop{z-index:10;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.export-panel{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:100%;max-width:380px;max-height:80vh;padding:20px;display:flex;box-shadow:0 20px 40px #0003}.export-panel__header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.export-panel__header h3{color:var(--text-h);margin:0;font-size:16px}.export-panel__actions{gap:16px;margin:8px 0 12px;display:flex}.export-panel__list{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0;padding:0;list-style:none;overflow-y:auto}.export-panel__list li{border-bottom:1px solid var(--border)}.export-panel__list li:last-child{border-bottom:none}.export-panel__list label{color:var(--text-h);cursor:pointer;align-items:center;gap:10px;padding:9px 4px;font-size:14px;display:flex}.export-panel__list input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.export-panel__submit{text-align:center;width:100%;margin-top:16px}.toolbar-confirm{color:var(--green);align-items:center;gap:5px;font-size:13px;font-weight:600;display:inline-flex}.summary-banner{background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-h);border-radius:6px;align-items:center;gap:8px;margin:16px 0;padding:12px 16px;font-size:14px;display:flex}.summary-banner--all-good{background:var(--green-bg);border-color:#0000}.summary-banner--has-issues{background:var(--orange-bg);border-color:#0000}.summary-banner strong.count-good{color:var(--green)}.summary-banner strong.count-bad{color:var(--red)}.app__section{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;margin-top:40px;padding:24px;transition:border-color .3s,box-shadow .3s}.app__section--highlight{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg)}.app__section h2{margin:0 0 8px;font-size:20px}.app__section>p{margin-bottom:16px;font-size:14px}.app__footer{text-align:center;color:var(--text);margin-top:48px;font-size:13px}.app__footer-links{margin-top:8px}.app__footer-links a{color:var(--text);text-decoration:underline}.app__footer-links a:hover{color:var(--accent)}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:8px;padding:48px 24px;transition:border-color .15s,background-color .15s}.dropzone:hover,.dropzone--active{border-color:var(--accent-border);background:var(--accent-bg)}.dropzone__title{color:var(--text-h);margin:0 0 4px;font-size:18px;font-weight:600}.dropzone__subtitle{margin:0;font-size:14px}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.icon-button{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:14px;display:inline-flex}.icon-button:hover{background:var(--border)}.text-muted{color:var(--text);font-size:13px}.results-table-wrapper{border:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:8px;overflow-x:auto}.results-table-wrapper::-webkit-scrollbar{height:9px}.results-table-wrapper::-webkit-scrollbar-track{background:0 0}.results-table-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}.results-table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text)}.results-table{border-collapse:collapse;width:100%;font-size:14px}.results-table th,.results-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg);padding:10px 12px}.results-table th{background:var(--bg-subtle);color:var(--text-h);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.results-table td:nth-child(4),.results-table td:nth-child(5),.results-table td:nth-child(8),.results-table td:nth-child(9){font-family:var(--mono);font-size:13px}.th-sort{width:100%;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin:0;padding:0;display:flex}.th-sort:hover{color:var(--accent)}.th-sort__arrow{opacity:.55;font-size:8px}.th-sort__arrow--active{opacity:1;color:var(--accent)}.results-table th:has(.th-sort):hover{background:var(--accent-bg)}.results-table tbody tr:last-child td{border-bottom:none}.sticky-col{z-index:2;background:var(--bg);position:sticky}.results-table th.sticky-col{z-index:3;background:var(--bg-subtle)}.sticky-col--apercu{width:72px;left:0}.sticky-col--nom{left:72px}.sticky-col--actions{width:44px;right:0}.sticky-col--resultat{width:110px;right:44px}.result-cell{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.result-cell__dpi{font-family:var(--mono);color:var(--text);font-size:12px}.results-table__thumb{object-fit:cover;border:1px solid var(--border);border-radius:4px;width:48px;height:48px;display:block}.results-table__thumb--excellent{box-shadow:0 0 0 3px var(--green)}.results-table__thumb--bon{box-shadow:0 0 0 3px var(--lime)}.results-table__thumb--limite{box-shadow:0 0 0 3px var(--orange)}.results-table__thumb--insuffisant{box-shadow:0 0 0 3px var(--red)}.results-table__name{color:var(--text-h)}.results-table__name-text{text-overflow:ellipsis;max-width:200px;display:block;overflow:hidden}.results-table__profile{max-width:240px}.results-table__profile-text{text-overflow:ellipsis;max-width:240px;display:block;overflow:hidden}.warning-badge{text-transform:uppercase;letter-spacing:.03em;background:var(--orange-bg);color:var(--orange);border-radius:3px;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.results-cards{flex-direction:column;gap:12px;display:none}@media (width<=720px){.results-table-wrapper{display:none}.results-cards{display:flex}}.result-card{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:14px}.result-card__top{align-items:flex-start;gap:12px;display:flex}.result-card__thumb{object-fit:cover;border:1px solid var(--border);border-radius:5px;flex-shrink:0;width:56px;height:56px;display:block}.result-card__heading{flex:1;min-width:0}.result-card__name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;margin:0 0 2px;font-weight:600;overflow:hidden}.result-card__result{border-top:1px dashed var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.result-card__result .result-cell__dpi{font-size:14px}.result-card__meta{grid-template-columns:1fr 1fr;gap:10px 16px;margin:12px 0 0;font-size:13px;display:grid}.result-card__meta-full{grid-column:1/-1}.result-card__meta dt{color:var(--text);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;font-size:11px}.result-card__meta dd{font-family:var(--mono);color:var(--text-h);margin:0}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.badge--excellent{background:var(--green-bg);color:var(--green)}.badge--bon{background:var(--lime-bg);color:var(--lime)}.badge--limite{background:var(--orange-bg);color:var(--orange)}.badge--insuffisant{background:var(--red-bg);color:var(--red)}.legend{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:20px;font-size:13px;display:flex}.size-selector__row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.size-selector__field{color:var(--text);flex-direction:column;flex:1;gap:6px;min-width:220px;font-size:13px;display:flex}.size-selector select,.size-selector input[type=number]{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:5px;padding:8px 10px;font-size:14px}.size-selector input[type=number]{font-family:var(--mono)}.size-selector__divider{color:var(--text);align-items:center;gap:8px;margin:16px 0 8px;font-size:13px;display:flex}.size-selector__divider:after{content:"";border-bottom:1px solid var(--border);flex:1}.size-selector__row--custom input{width:110px}.size-selector__x{color:var(--text)}.size-selector__unit-toggle{border:1px solid var(--border);border-radius:5px;display:inline-flex;overflow:hidden}.size-selector__unit-toggle button{background:var(--bg);cursor:pointer;color:var(--text);text-transform:uppercase;letter-spacing:.03em;border:none;padding:8px 14px;font-size:12px;font-weight:600}.size-selector__unit-toggle button.active{background:var(--accent);color:var(--accent-text)}.size-selector__hint{color:var(--text);margin-top:10px;font-size:13px}.app__checker-fields{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.app__checker-fields>.size-selector{flex:2;min-width:280px}.app__checker-fields>.distance-selector{flex:1;min-width:220px}.distance-selector select,.distance-selector input[type=number]{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:5px;width:100%;padding:8px 10px;font-size:14px}.distance-selector input[type=number]{font-family:var(--mono)}.distance-selector__custom{align-items:center;gap:8px;margin-top:8px;display:flex}.distance-selector__custom input{width:140px}
