:root{--bg:#1c1624;--panel:#2d2734;--panel-elevated:#3a3340;--border:#e5e7eb24;--border-strong:#e5e7eb3d;--text:#f1f0ec;--text-dim:#d0c9c4;--text-dimmer:#a5a2a5;--accent:#b997ff;--green:#00f575;--orange:#ff5632;--red:#ff4d6a}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header.app-header{border:1px solid var(--border-strong);background:var(--panel);z-index:10;border-top:none;border-radius:0 0 20px 20px;align-items:center;gap:1.5rem;width:100%;margin:0;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.app-brand{align-items:center;gap:.65rem;display:flex}.app-logo{object-fit:contain;width:28px;height:28px;display:block}header.app-header h1{letter-spacing:-.015em;margin:0;font-size:1.15rem;font-weight:700}header.app-header nav{gap:1.25rem;display:flex}header.app-header nav a{color:var(--text-dim);font-size:.85rem;font-weight:500}header.app-header nav a:hover{color:var(--text);text-decoration:none}main{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .75rem}th{color:var(--text-dimmer);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}tr:hover td{background:color-mix(in srgb, var(--panel-elevated) 60%, transparent)}.dot{border-radius:50%;width:.6rem;height:.6rem;margin-right:.5rem;display:inline-block}.dot-green{background:var(--green);box-shadow:0 0 8px color-mix(in srgb, var(--green) 60%, transparent)}.dot-orange{background:var(--orange)}.dot-red{background:var(--red)}.badge{letter-spacing:.01em;border-radius:9999px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.badge-bloquant{background:color-mix(in srgb, var(--red) 20%, transparent);color:var(--red)}.badge-a-traiter{background:color-mix(in srgb, var(--orange) 20%, transparent);color:var(--orange)}.badge-resolu{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.badge-informatif{background:color-mix(in srgb, var(--text-dimmer) 20%, transparent);color:var(--text-dimmer)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:20px;margin-bottom:1.5rem;padding:1.5rem}.muted{color:var(--text-dimmer)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.contact-sheet{flex-wrap:wrap;gap:1rem;display:flex}.contact-sheet figure{flex:320px;margin:0}.contact-sheet img{border:1px solid var(--border);border-radius:12px;width:100%;display:block}.contact-sheet figcaption{color:var(--text-dimmer);margin-top:.35rem;font-size:.8rem}.empty-state{color:var(--text-dimmer);text-align:center;padding:2rem 0}.login-screen{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-screen:before{content:"";pointer-events:none;background:radial-gradient(560px at 50% 38%,#6b13f547,#ff9efa1a 42%,#0000 70%);position:absolute;inset:0}.login-form{text-align:center;flex-direction:column;align-items:center;gap:.85rem;width:100%;max-width:300px;display:flex;position:relative}.login-form h1{letter-spacing:-.015em;font-size:1.2rem;font-weight:700}.gradient-text{background:linear-gradient(91deg,#855aff 14.92%,#ff5632 90.53%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.login-logo{object-fit:contain;width:48px;height:48px}.login-form input[type=password]{background:var(--bg);border:1px solid var(--border-strong);width:100%;color:var(--text);border-radius:12px;padding:.55rem .75rem;font-size:.9rem}.login-form input[type=password]:focus{outline:2px solid var(--accent);outline-offset:1px}.login-error{color:var(--red);margin:0;font-size:.85rem}.logout-form{margin-left:auto}.logout-form button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem}.logout-form button:hover{color:var(--text);text-decoration:underline}button,.btn-primary,.btn-secondary{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:.5rem .9rem;font-family:inherit;font-size:.85rem;font-weight:600}.btn-primary,.login-form button{background:var(--green);color:#0b0d10;border:none}.btn-primary:hover,.login-form button:hover{opacity:.9}.btn-secondary{color:var(--text);border:1px solid var(--border-strong);background:0 0}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.run-control{background:var(--panel);border:1px solid var(--border);border-radius:20px;margin:1rem 0 1.5rem;padding:1.5rem}.run-control-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.run-control-buttons .btn-primary,.run-control-buttons .btn-secondary{border-radius:14px;padding:.85rem 1.5rem;font-size:.95rem}.run-control-buttons .btn-primary{box-shadow:0 0 24px color-mix(in srgb, var(--green) 35%, transparent)}.run-control-buttons .btn-secondary{border-width:1.5px}.run-control-last{color:var(--text-dimmer);margin:.85rem 0 0;font-size:.78rem;line-height:1.5}.info-tip{align-self:center;margin-left:.15rem;display:inline-flex;position:relative}.info-tip-icon{border:1px solid var(--border-strong);width:22px;height:22px;color:var(--text-dimmer);cursor:help;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.info-tip:hover .info-tip-icon,.info-tip:focus-visible .info-tip-icon{color:var(--accent);border-color:var(--accent)}.info-tip-content{background:var(--panel-elevated);border:1px solid var(--border-strong);width:280px;color:var(--text-dim);opacity:0;visibility:hidden;pointer-events:none;z-index:20;border-radius:12px;padding:.75rem .9rem;font-size:.78rem;line-height:1.5;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}.info-tip:hover .info-tip-content,.info-tip:focus-within .info-tip-content{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.report-control{margin:0 0 1.5rem}.report-status{border-radius:12px;margin-bottom:.75rem;padding:.5rem .9rem;font-size:.82rem;display:inline-block}.report-status-ok{background:color-mix(in srgb, var(--green) 15%, transparent);color:var(--green)}.report-status-error{background:color-mix(in srgb, var(--red) 15%, transparent);color:var(--red)}.add-site-form{flex-direction:column;gap:.85rem;max-width:420px;margin-bottom:1rem;display:flex}.add-site-form label{color:var(--text-dim);flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}.add-site-form input[type=text],.add-site-form input[type=url]{background:var(--bg);border:1px solid var(--border-strong);color:var(--text);border-radius:12px;padding:.5rem .7rem;font-family:inherit;font-size:.9rem}.add-site-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.add-site-form .checkbox-label{flex-direction:row;align-items:center;gap:.5rem}.add-site-form .checkbox-label input{width:auto}.add-site-form button{align-self:flex-start}.attachment-detail{margin-top:.35rem}.attachment-detail summary{cursor:pointer;color:var(--accent);font-size:.78rem;font-weight:600}.attachment-detail summary:hover{text-decoration:underline}.attachment-list{max-height:260px;margin:.5rem 0 0;padding-left:1.1rem;overflow-y:auto}.attachment-list li{margin-bottom:.3rem;line-height:1.4}.attachment-pre{background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:260px;margin:.5rem 0 0;padding:.6rem .75rem;overflow:auto}
