:root{--bg:#0d0f13;--bg-grad:#11141a;--card:#171a21;--card-2:#1c2029;--fg:#eef0f4;--muted:#9aa1ad;--accent:#7c5cff;--accent-soft:rgba(124,92,255,.16);--accent-fg:#b3a1ff;--ok:#3fb950;--warn:#d29922;--err:#f85149;--on-accent:#fff;--border:#242833;--border-strong:#2f3441;--input-bg:#0f1217;--soft:#1b1f28;--hover:#1e222b;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow:0 4px 16px rgba(0,0,0,.35);--shadow-lg:0 12px 32px rgba(0,0,0,.45);--header-bg:rgba(13,15,19,.72);--good-bg:rgba(63,185,80,.14);--good-fg:#5dd56a;--good-border:rgba(63,185,80,.32);--avg-bg:rgba(210,153,34,.15);--avg-fg:#e8bd4d;--avg-border:rgba(210,153,34,.32);--bad-bg:rgba(248,81,73,.14);--bad-fg:#ff7b72;--bad-border:rgba(248,81,73,.32);--unknown-bg:#1f2430;--unknown-fg:#9aa1ad;--blue-bg:rgba(56,139,253,.16);--blue-fg:#6cb6ff;--pink-bg:rgba(247,103,164,.16);--pink-fg:#f97fb5;--purple-bg:rgba(149,128,255,.18);--purple-fg:#bcaaff;--r-sm:8px;--r:12px;--r-lg:16px;--r-pill:999px;--maxw:1180px}[data-theme=light]{--bg:#f5f6f8;--bg-grad:#eef0f4;--card:#ffffff;--card-2:#fbfcfd;--fg:#1f2733;--muted:#697586;--accent:#1864ab;--accent-soft:rgba(24,100,171,.10);--accent-fg:#1864ab;--ok:#2b8a3e;--warn:#b8860b;--err:#c92a2a;--on-accent:#fff;--border:#e6e9ee;--border-strong:#d4d9e0;--input-bg:#ffffff;--soft:#f1f3f6;--hover:#f5f7fa;--shadow-sm:0 1px 2px rgba(16,24,40,.06);--shadow:0 4px 16px rgba(16,24,40,.08);--shadow-lg:0 12px 32px rgba(16,24,40,.12);--header-bg:rgba(255,255,255,.78);--good-bg:#d8f7dd;--good-fg:#2b8a3e;--good-border:#a9e8b3;--avg-bg:#fff3bf;--avg-fg:#9c7400;--avg-border:#ffe699;--bad-bg:#ffe3e3;--bad-fg:#c92a2a;--bad-border:#ffc9c9;--unknown-bg:#f1f3f6;--unknown-fg:#697586;--blue-bg:#e7f1ff;--blue-fg:#1864ab;--pink-bg:#fff0f6;--pink-fg:#a61e4d;--purple-bg:#f0ecff;--purple-fg:#5f3dc4}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--fg);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,system-ui,sans-serif;background:var(--bg);background-image:radial-gradient(1200px 600px at 100% -10%,var(--bg-grad),transparent 60%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em}h2{font-size:22px;font-weight:700;margin:4px 0 18px}::selection{background:var(--accent-soft)}.badge,.card,.cat-tag,.kpi,.kpi-card,.last-audit,.panel,.pill,.score-card,.subtab,.tab,.theme-toggle,.tile,body,button,input,select,td,th,tr{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:var(--card);padding:30px;border-radius:var(--r-lg);min-width:340px;display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);box-shadow:var(--shadow-lg)}.card h1{margin:0 0 6px;font-size:22px}.card label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.card input{padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg)}.card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.err{color:var(--err);font-size:13px;margin:0}button{padding:9px 15px;border:0;border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent);cursor:pointer;font-weight:600;font-size:14px}button:hover{filter:brightness(1.07)}button:active{transform:translateY(1px)}.shell header{position:-webkit-sticky;position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:22px;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--header-bg);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px)}.shell header .brand{font-weight:800;font-size:17px;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:9px}.shell header .brand:before{content:"";width:18px;height:18px;border-radius:6px;background:linear-gradient(135deg,var(--accent),#b794ff);box-shadow:0 2px 8px var(--accent-soft)}.shell header nav{display:flex;gap:4px}.shell header nav a{color:var(--muted);font-size:14px;font-weight:500;padding:6px 11px;border-radius:var(--r-pill)}.shell header nav a:hover{color:var(--fg);background:var(--hover)}.shell header .shell-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.shell main{padding:28px 24px 64px;max-width:var(--maxw);margin:0 auto}.theme-toggle{background:var(--soft);border:1px solid var(--border-strong);color:var(--fg);width:36px;height:32px;border-radius:var(--r-sm);font-size:15px;font-weight:400;padding:0;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover{border-color:var(--muted);filter:none}.user-chip{display:inline-flex;align-items:center;gap:9px;padding:4px 13px 4px 5px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--soft);color:var(--fg);font-size:13px;font-weight:500}.user-chip:hover{border-color:var(--muted)}.user-avatar{width:25px;height:25px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),#b794ff)}.icon-btn{background:var(--soft);border:1px solid var(--border);color:var(--muted);width:34px;height:32px;border-radius:var(--r-sm);font-size:15px;padding:0;display:inline-grid;place-items:center;cursor:pointer;font-weight:400}.icon-btn:hover{color:var(--fg);border-color:var(--muted);filter:none}@media (max-width:600px){.user-chip .user-email{display:none}}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:100;padding:20px}.modal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;max-width:520px;width:100%;box-shadow:var(--shadow-lg);max-height:85vh;overflow:auto}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-head h3{margin:0;font-size:17px}.modal-close{background:none;border:0;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;padding:0;width:auto}.modal-close:hover{color:var(--fg);filter:none}.modal-value{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:6px 0 0}.modal-block{margin-top:15px}.modal-block__label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}.modal-block p{margin:0;font-size:14px;line-height:1.55}.modal-meta{margin-top:16px;font-size:12px}.modal-card--wide{max-width:680px}.modal-search{width:100%;padding:8px 11px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg);font-size:13px;margin-bottom:10px}.modal-items{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto;font-size:13px}.modal-items li{padding:6px 0;border-bottom:1px solid var(--border);word-break:break-all}.modal-items li:last-child{border-bottom:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.panel-head h3{margin:0}.modal-intro{font-size:14px;line-height:1.55;margin:4px 0 0}.ti-cols{width:100%}.ti-cols th{text-align:left;vertical-align:top;white-space:nowrap;padding:5px 14px 5px 0;color:var(--fg);font-weight:600;font-size:13px;border:0}.ti-cols td{padding:5px 0;font-size:13px;color:var(--muted);border:0}.ti-calc{margin:10px 0;padding:10px 12px;background:var(--soft);border:1px solid var(--border);border-radius:var(--r-sm)}.ti-calc__label{font-size:13px;font-weight:600}.ti-calc__formula{font-size:12.5px;color:var(--muted);margin-top:3px}.ti-calc__example{font-size:13px;margin-top:5px;color:var(--accent-fg);font-weight:500}.period-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:13px 18px}.period-bar label{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--fg);margin:0}.period-bar input[type=date],.period-bar select{padding:7px 10px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg);font-size:13px;font-weight:400}.period-bar .period-note{margin-left:auto;font-size:12px}@media (max-width:760px){.period-bar .period-note{margin-left:0;width:100%}}.profile-row{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);font-size:14px}.profile-row:last-of-type{border-bottom:0}.profile-row>span.muted:first-child{width:96px;flex-shrink:0;font-size:12px}.profile-row--top{align-items:flex-start}.subnav{display:flex;gap:4px;align-items:center;margin:0 0 24px;border-bottom:1px solid var(--border);padding:2px 0 0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.subnav::-webkit-scrollbar{height:6px}.subnav::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.subnav strong{margin-right:10px;padding:5px 11px;font-size:12px;font-weight:600;background:var(--soft);border:1px solid var(--border);border-radius:var(--r-pill);align-self:center}.subnav a,.subnav strong{color:var(--muted);white-space:nowrap}.subnav a{font-size:14px;font-weight:500;padding:9px 12px;border-bottom:2px solid transparent;border-radius:6px 6px 0 0}.subnav a:hover{color:var(--fg);background:var(--hover)}.subnav a.is-active{color:var(--accent-fg);border-bottom-color:var(--accent);font-weight:600}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:20px 22px;margin:18px 0;box-shadow:var(--shadow-sm)}.panel h3{margin:0 0 12px;font-size:16px;font-weight:650}.panel>p.muted,.panel>p.text-muted{margin-top:0;font-size:13px}section{margin:24px 0}section h3{margin:0 0 12px;font-size:16px}.text-success{color:var(--ok)}.text-danger{color:var(--err)}.muted,.text-muted{color:var(--muted)}.pos{color:var(--ok)}.neg{color:var(--err)}.cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;align-items:start}.cols>.panel{margin:0}@media (max-width:820px){.cols{grid-template-columns:1fr}}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px}.tile{background:var(--card);border-radius:var(--r);padding:18px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.tile h3{margin:0 0 8px}.score-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin:6px 0 4px}.score-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:22px 18px;border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;text-align:center;font:inherit;background:var(--card);color:var(--fg);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:transform .12s ease,box-shadow .15s ease,border-color .2s ease,background-color .2s ease}.score-card:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:currentColor;opacity:.5}.score-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.score-card.good{background:var(--good-bg);border-color:var(--good-border);color:var(--good-fg)}.score-card.avg{background:var(--avg-bg);border-color:var(--avg-border);color:var(--avg-fg)}.score-card.bad{background:var(--bad-bg);border-color:var(--bad-border);color:var(--bad-fg)}.score-card.unknown{background:var(--unknown-bg);border-color:var(--border-strong);color:var(--unknown-fg)}.score-card .value{font-size:46px;font-weight:800;line-height:1;letter-spacing:-.03em}.score-card .label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg);opacity:.85}.badge-indicatif{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:5px;background:var(--avg-bg);color:var(--avg-fg)}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:14px;gap:14px;margin:16px 0}.kpi{background:var(--card);border-radius:var(--r);padding:16px 18px;min-width:0;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.kpi .v{font-size:26px;font-weight:750;letter-spacing:-.02em}.kpi .l{color:var(--muted);font-size:12px;margin-top:2px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:14px;gap:14px;margin:16px 0}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .15s ease,border-color .2s ease}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--border-strong)}.kpi-card .klabel{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:500}.kpi-card .kvalue{font-size:26px;font-weight:750;margin-top:6px;letter-spacing:-.02em}.kpi-card .kdelta,.kpi-card .kperiod{font-size:12px;margin-top:5px;color:var(--muted)}.kpi-info{width:17px;height:17px;line-height:15px;text-align:center;border:1px solid var(--border-strong);border-radius:50%;background:none;color:var(--muted);font-size:10px;font-style:italic;cursor:pointer;padding:0}.kpi-info:hover{color:var(--fg);border-color:var(--muted);filter:none}.delta{font-weight:650;white-space:nowrap;font-size:13px}.delta.up{color:var(--ok)}.delta.down{color:var(--err)}.delta.flat{color:var(--muted)}.pill{display:inline-block;padding:3px 9px;border-radius:var(--r-pill);font-size:11px;font-weight:600;white-space:nowrap;line-height:1.45}.pill.p0{background:var(--bad-bg);color:var(--bad-fg)}.pill.p1{background:var(--avg-bg);color:var(--avg-fg)}.pill.p2{background:var(--blue-bg);color:var(--blue-fg)}.pill.ok{background:var(--good-bg);color:var(--good-fg)}.pill.na{background:var(--unknown-bg);color:var(--unknown-fg)}.cat-tag{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:500}.cat-tag.technique{background:var(--blue-bg);color:var(--blue-fg)}.cat-tag.contenu{background:var(--pink-bg);color:var(--pink-fg)}.cat-tag.performance{background:var(--purple-bg);color:var(--purple-fg)}.cat-tag.geo{background:var(--good-bg);color:var(--good-fg)}.link-type{text-transform:uppercase;font-size:10px;letter-spacing:.3px}.link-type.t4xx,.link-type.t5xx{background:var(--bad-bg);color:var(--bad-fg)}.link-type.tchain{background:var(--avg-bg);color:var(--avg-fg)}.link-type.tto-home{background:var(--blue-bg);color:var(--blue-fg)}.link-type.torphan{background:var(--unknown-bg);color:var(--unknown-fg)}.badge{padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600}.badge.fresh{background:var(--good-bg);color:var(--good-fg)}.badge.stale{background:var(--avg-bg);color:var(--avg-fg)}.badge.failed{background:var(--bad-bg);color:var(--bad-fg)}.badge.unknown{background:var(--unknown-bg);color:var(--unknown-fg)}.tier-heading{margin:20px 0 10px;padding-bottom:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-fg);border-bottom:1px solid var(--border)}.last-audit{background:var(--card);padding:16px 20px;border-radius:var(--r);border:1px solid var(--border);border-left:4px solid var(--border-strong);box-shadow:var(--shadow-sm)}.last-audit.frais{border-left-color:var(--ok)}.last-audit.recent{border-left-color:var(--blue-fg)}.last-audit.obsolete{border-left-color:var(--warn)}.last-audit.tres-obsolete{border-left-color:var(--err)}.last-audit .la-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.last-audit .la-date{font-size:19px;font-weight:700;margin:4px 0 7px;letter-spacing:-.01em}.last-audit .la-meta{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:9px;flex-wrap:wrap}.last-audit .la-type{background:var(--soft);border:1px solid var(--border);padding:2px 9px;border-radius:var(--r-pill);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.subtabs{display:flex;gap:8px;flex-wrap:wrap}.subtab{background:var(--soft);border:1px solid var(--border-strong);border-radius:var(--r-pill);padding:7px 15px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:7px}.subtab:hover{color:var(--fg);border-color:var(--muted)}.subtab.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 2px 10px var(--accent-soft)}.seo-badge{background:var(--border);border-radius:var(--r-pill);padding:0 8px;font-size:11px;font-weight:700;min-width:18px;text-align:center}.subtab.is-active .seo-badge{background:rgba(255,255,255,.25);color:var(--on-accent)}table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}thead th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border-strong)}tbody tr{transition:background-color .12s ease}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:0}td.r,th.r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.compact td,table.compact th{padding:8px 10px}.link{background:none;border:0;color:var(--accent-fg);cursor:pointer;padding:0;font:inherit;font-weight:500;text-align:left}.link:hover{text-decoration:underline;filter:none}.card select,select{padding:9px 11px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg);font-size:13px}.card input:focus,section input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}section input{padding:9px 11px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg)}details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}details summary:before{content:"▸ ";color:var(--accent-fg)}details[open] summary:before{content:"▾ "}.admin-edit{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:14px;background:var(--soft);border-radius:var(--r-sm);border:1px solid var(--border)}.admin-edit input:not([type]),.admin-edit input[type=email],.admin-edit input[type=password],.admin-edit input[type=text]{padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg);font-size:13px}.admin-edit input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.admin-edit .field{margin:0;gap:3px}.admin-edit .field>label{font-size:11px}.admin-edit .field-check{margin:0;align-self:center}.admin-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-actions form{display:inline}.form-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow-sm);max-width:600px}.form-card .form-head{margin-bottom:18px}.form-card .form-head h3{margin:0 0 4px;font-size:16px}.form-card .form-head p{margin:0;font-size:13px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}.field>label{font-size:12px;font-weight:600;color:var(--fg)}.field>label .req{color:var(--accent-fg);margin-left:2px}.field .hint{font-size:11.5px;color:var(--muted);line-height:1.4}.field input,.field select{padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--input-bg);color:var(--fg);font-size:14px;width:100%}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-check{display:flex;gap:9px;align-items:flex-start;margin:2px 0 16px;font-size:13px;color:var(--fg);cursor:pointer}.field-check input{margin-top:2px}.field-check .hint{font-size:11.5px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 16px;gap:0 16px}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.form-actions{margin-top:4px}.form-actions button{width:100%;padding:11px;font-size:14px}.section-intro{margin:-6px 0 16px;font-size:13px;color:var(--muted);max-width:760px}.key-box{margin-top:16px;padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--good-border);background:var(--good-bg)}.key-box__label{font-size:12.5px;font-weight:600;color:var(--good-fg);display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px}.key-box code{display:block;font-size:13px;word-break:break-all;background:var(--input-bg);border:1px solid var(--border);padding:9px 11px}.copy-btn,.key-box code{color:var(--fg);border-radius:6px}.copy-btn{font-size:11px;font-weight:600;padding:3px 10px;border:1px solid var(--border-strong);background:var(--card);cursor:pointer}.copy-btn:hover{border-color:var(--muted);filter:none}