:root{--ink: #14221c;--moss: #1f4d3a;--leaf: #3d8f6a;--sand: #f3ebe0;--paper: #faf6f0;--amber: #c45c26;--line: rgba(20, 34, 28, .14);--shadow: 0 24px 60px rgba(20, 34, 28, .12);--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 600px at 10% -10%,rgba(61,143,106,.18),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(196,92,38,.12),transparent 50%),linear-gradient(165deg,#e8f0ea 0%,var(--sand) 42%,#efe4d4 100%)}.page{position:relative;width:min(920px,calc(100% - 2rem));margin:0 auto;padding:3.5rem 0 4rem}.atmosphere{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(20,34,28,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(20,34,28,.03) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);animation:drift 28s linear infinite}@keyframes drift{0%{transform:translateY(0)}to{transform:translateY(48px)}}.brand-block{margin-bottom:2.25rem;animation:rise .7s ease both}.brand{margin:0 0 .75rem;font-family:var(--font-display);font-size:clamp(2.6rem,7vw,4.2rem);font-weight:700;letter-spacing:-.03em;line-height:.95;color:var(--moss)}.brand-block h1{margin:0 0 .75rem;max-width:16ch;font-family:var(--font-display);font-size:clamp(1.35rem,3vw,1.85rem);font-weight:500;line-height:1.2}.lede{margin:0;max-width:42ch;color:#14221cc7;font-size:1.05rem;line-height:1.55}.step-label{margin:0 0 .45rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--leaf)}.page-modal{display:flex;align-items:flex-start;justify-content:center;min-height:100vh;padding-top:2.5rem;padding-bottom:3rem}.modal-shell{width:min(720px,100%);padding:1.5rem 0 0;animation:rise .55s ease both}.brand-modal{margin-bottom:1.25rem;font-size:clamp(2.2rem,6vw,3.4rem)}.session-form{display:grid;gap:1rem;margin-top:.5rem}.session-toolbar{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.1rem}.session-section{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line);animation:rise .75s ease both}.session-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.session-header h2{margin:0;font-family:var(--font-display);font-size:1.35rem;font-weight:500}.cookie-help{margin-bottom:1.1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cookie-help summary{cursor:pointer;padding:.75rem 0;font-weight:600;list-style:none}.cookie-help summary::-webkit-details-marker{display:none}.cookie-help summary:before{content:"+ ";color:var(--leaf)}.cookie-help[open] summary:before{content:"– "}.cookie-help ol{margin:0 0 1rem;padding-left:1.25rem;color:#14221cd1;line-height:1.55}.cookie-help li{margin-bottom:.45rem}.cookie-help ul{margin:.4rem 0 0;padding-left:1.1rem}.cookie-help code,.cookie-help kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:#14221c0f;padding:.1rem .35rem}.cookie-help a{color:var(--moss)}.cookie-grid{display:grid;gap:.85rem;grid-template-columns:1fr}@media(min-width:720px){.cookie-grid{grid-template-columns:1fr 1fr}.cookie-grid .field:first-child{grid-column:1 / -1}}.req{font-style:normal;font-weight:500;color:var(--amber);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.cookie-status{margin:.85rem 0 0;font-size:.92rem;color:#14221ca6}.analyze-form{display:grid;gap:1.1rem;padding:1.35rem 0 0;border-top:1px solid var(--line);animation:rise .8s ease .08s both}.field{display:grid;gap:.45rem}.field span{font-size:.85rem;font-weight:600;letter-spacing:.02em}.field input[type=url],.field input[type=number],.field input[type=text],.field input[type=password]{width:100%;border:1px solid var(--line);border-radius:0;background:#faf6f0e0;color:var(--ink);padding:.9rem 1rem;font:inherit;font-size:1rem;outline:none;transition:border-color .2s ease,background .2s ease}.field input:focus{border-color:var(--leaf);background:var(--paper)}.options{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:end}.mention-control{display:grid;gap:.4rem}.mention-label{font-size:.85rem;font-weight:600;letter-spacing:.02em}.stepper{display:inline-flex;align-items:stretch;border:1px solid var(--line);background:#faf6f0e0}.stepper input[type=number]{width:3.25rem;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-align:center;font:inherit;font-weight:600;padding:.55rem .2rem;outline:none;-moz-appearance:textfield}.stepper input[type=number]::-webkit-outer-spin-button,.stepper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-btn{min-width:2.4rem;padding:.55rem .7rem;background:transparent;color:var(--ink);font-size:1.1rem;font-weight:600;line-height:1}.stepper-btn:hover:not(:disabled){background:#3d8f6a1f;transform:none}.stepper-btn:disabled{opacity:.35}.check{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{width:1.05rem;height:1.05rem;accent-color:var(--moss)}.actions{display:flex;flex-wrap:wrap;gap:.75rem}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:0;background:var(--moss);color:#f7faf8;font:inherit;font-weight:600;padding:.85rem 1.25rem;cursor:pointer;transition:transform .15s ease,background .2s ease,opacity .2s ease}button:hover:not(:disabled){background:#163828;transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}button.secondary:hover:not(:disabled){background:#14221c0f}.error{margin:1.25rem 0 0;color:#8a2a12;background:#c45c261f;padding:.85rem 1rem;border-left:3px solid var(--amber)}.progress-panel{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line);animation:rise .4s ease both}.progress-header{display:flex;flex-wrap:wrap;gap:.65rem 1rem;align-items:baseline;margin-bottom:.65rem}.progress-percent{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--moss);min-width:4ch}.progress-message{color:#14221cbf;font-size:.95rem}.progress-track{height:.55rem;background:#14221c1a;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--moss),var(--leaf));transition:width .25s ease}.log-panel{margin-top:1rem}.log-title{margin:0 0 .45rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#14221c8c}.log-scroll{max-height:14rem;overflow-y:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#faf6f0b3;padding:.65rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.45}.log-line{margin:0 0 .3rem;color:#14221ce0;white-space:pre-wrap;word-break:break-word}.log-line.muted{color:#14221c73}.results{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);animation:rise .55s ease both}.results-meta{display:grid;gap:.35rem;margin-bottom:1rem}.results-meta p{margin:0}.meta-flags{color:#14221ca6;font-size:.92rem}.warnings{margin:0 0 1rem;padding:.85rem 1rem .85rem 1.5rem;background:#c45c261a;border-left:3px solid var(--amber)}.empty{color:#14221cb3}.table-wrap{overflow-x:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:.98rem}th,td{text-align:left;padding:.8rem .65rem;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.78rem;text-transform:lowercase;letter-spacing:.04em;color:#14221c9e;font-weight:600}th:nth-child(3),th:nth-child(4),td.status-cell{text-align:center}tbody tr{transition:background .15s ease}tbody tr:hover{background:#3d8f6a14}.status-cell{text-align:center;vertical-align:middle}.status-cell .status-check,.status-cell .status-na{display:inline-flex;margin:0 auto}.status-check{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--moss);cursor:default;opacity:1;filter:none;-webkit-appearance:checkbox;-moz-appearance:checkbox;appearance:checkbox;pointer-events:none}.status-na{color:#14221c73;font-size:.85rem;justify-content:center}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.page{padding-top:2.25rem}.brand{font-size:2.4rem}}
