:root{--ff-blue: #0066ff;--ff-black: #141414;--ff-white: #ffffff;--ff-grey-light: #eaebf3;--ff-grey-dark: #73787a;--ff-grey-muted: #8a9099;--ff-bg: #0d0d0f;--ff-surface: #17171c;--ff-surface-raised: #1e1e25;--ff-border: #23232a;--ff-good: #1fa971;--ff-warn: #e0a52b;--ff-bad: #e5484d;--ff-font: "Roboto", Arial, sans-serif;--ff-font-mono: "Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;--ff-weight-body: 400;--ff-weight-medium: 500;--ff-weight-bold: 700;--ff-weight-number: 900;--ff-radius: 8px;--ff-radius-sm: 6px;--ff-space-1: 4px;--ff-space-2: 8px;--ff-space-3: 12px;--ff-space-4: 16px;--ff-space-5: 24px;--ff-space-6: 32px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--ff-bg);color:var(--ff-white);font-family:var(--ff-font);font-weight:var(--ff-weight-body);line-height:1.5;-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.diag{max-width:720px;margin:0 auto;padding:var(--ff-space-5) var(--ff-space-4) var(--ff-space-6)}.diag__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ff-space-3);margin-bottom:var(--ff-space-5)}.eyebrow{margin:0;font-family:var(--ff-font-mono);font-size:11px;font-weight:var(--ff-weight-bold);letter-spacing:.14em;text-transform:uppercase;color:var(--ff-blue)}.diag__title{margin:var(--ff-space-1) 0 0;font-size:26px;font-weight:var(--ff-weight-number);letter-spacing:-.02em}.diag__foot{margin-top:var(--ff-space-6);padding-top:var(--ff-space-4);border-top:1px solid var(--ff-border);font-size:12px;color:var(--ff-grey-muted)}.preview{position:relative;width:100%;background:#000;border:1px solid var(--ff-border);border-radius:var(--ff-radius);overflow:hidden;margin-bottom:var(--ff-space-4)}.preview__video,.preview__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.preview__video{object-fit:cover}.preview__canvas{pointer-events:none}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ff-space-2);margin-bottom:var(--ff-space-3)}.controls__label{font-size:12px;font-weight:var(--ff-weight-bold);color:var(--ff-grey-muted);text-transform:uppercase;letter-spacing:.08em;margin-right:var(--ff-space-1)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--ff-border);background:var(--ff-surface);color:var(--ff-white);font-family:inherit;font-size:14px;font-weight:var(--ff-weight-bold);padding:12px 16px;border-radius:var(--ff-radius);cursor:pointer;min-height:44px}.btn:hover:not(:disabled){background:var(--ff-surface-raised)}.btn:focus-visible{outline:2px solid var(--ff-blue);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--ff-blue);border-color:var(--ff-blue)}.btn--primary:hover:not(:disabled){background:#2a7bff}.btn--small{padding:8px 12px;font-size:13px;min-height:36px}.btn--active{background:var(--ff-blue);border-color:var(--ff-blue)}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--ff-space-3);margin-top:var(--ff-space-4)}.panel{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius);padding:var(--ff-space-4)}.panel--highlight{border-color:var(--ff-blue)}.panel__title{margin:0 0 var(--ff-space-3);font-size:11px;font-weight:var(--ff-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--ff-grey-muted)}.panel__actions{margin-top:var(--ff-space-3)}.row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ff-space-3);padding:6px 0;border-bottom:1px solid var(--ff-border);font-size:13px}.row:last-of-type{border-bottom:none}.row__key{color:var(--ff-grey-muted)}.row__value{font-family:var(--ff-font-mono);font-weight:var(--ff-weight-medium);text-align:right;word-break:break-word}.row__value--big{font-size:20px;font-weight:var(--ff-weight-bold)}.row__value--good{color:var(--ff-good)}.row__value--bad{color:var(--ff-bad)}.gate{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius);padding:var(--ff-space-5);margin-bottom:var(--ff-space-4)}.gate__title{margin:0 0 var(--ff-space-2);font-size:19px;font-weight:var(--ff-weight-bold)}.gate__body{margin:0 0 var(--ff-space-3);color:var(--ff-grey-light);font-size:14px}.gate__list{margin:0 0 var(--ff-space-4);padding-left:18px;color:var(--ff-grey-light);font-size:14px}.gate__list li{margin-bottom:var(--ff-space-1)}.gate__error{color:var(--ff-bad);font-size:13px;margin:0 0 var(--ff-space-3)}.chip{font-family:var(--ff-font-mono);font-size:11px;font-weight:var(--ff-weight-bold);text-transform:uppercase;letter-spacing:.08em;padding:6px 10px;border-radius:999px;background:var(--ff-surface);border:1px solid var(--ff-border);color:var(--ff-grey-muted);white-space:nowrap}.chip--on{background:#0066ff26;border-color:var(--ff-blue);color:var(--ff-blue)}.hint{font-size:12px;color:var(--ff-grey-muted);margin:0 0 var(--ff-space-3)}.hint--tight{margin:var(--ff-space-2) 0 0}.home{max-width:720px;margin:0 auto;padding:var(--ff-space-6) var(--ff-space-4)}.home__links{list-style:none;padding:0;margin:var(--ff-space-4) 0 0}.home__links a{color:var(--ff-blue);font-weight:var(--ff-weight-bold);text-decoration:none}.home__links a:hover{text-decoration:underline}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.quality{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius);padding:var(--ff-space-4);margin-bottom:var(--ff-space-4)}.quality__state{border-radius:var(--ff-radius-sm);padding:var(--ff-space-4);margin-bottom:var(--ff-space-3);background:var(--ff-surface-raised);border:1px solid var(--ff-border)}.quality__state--ready{background:#0066ff24;border-color:var(--ff-blue)}.quality__verdict{margin:0;font-size:24px;font-weight:var(--ff-weight-number);letter-spacing:-.02em;text-transform:uppercase}.quality__state--ready .quality__verdict{color:var(--ff-blue)}.quality__instruction{margin:var(--ff-space-2) 0 0;font-size:17px;font-weight:var(--ff-weight-medium);color:var(--ff-grey-light)}.quality__instruction--calm{color:var(--ff-grey-muted);font-size:15px}.quality__warning{margin:0 0 var(--ff-space-3);padding:var(--ff-space-3);border-radius:var(--ff-radius-sm);background:#e0a52b1f;border:1px solid var(--ff-warn);color:var(--ff-warn);font-size:12px;line-height:1.5}.quality__checks{display:grid;gap:2px}.qcheck{display:grid;grid-template-columns:20px 1fr auto;align-items:baseline;gap:var(--ff-space-2);padding:5px 0;font-size:13px;border-bottom:1px solid var(--ff-border)}.qcheck:last-child{border-bottom:none}.qcheck__mark{font-weight:var(--ff-weight-bold);text-align:center}.qcheck--pass .qcheck__mark{color:var(--ff-good)}.qcheck--fail .qcheck__mark{color:var(--ff-bad)}.qcheck--unavailable .qcheck__mark,.qcheck--unavailable .qcheck__label{color:var(--ff-grey-dark)}.qcheck__label{color:var(--ff-grey-light)}.qcheck--fail .qcheck__label{color:var(--ff-white);font-weight:var(--ff-weight-medium)}.qcheck__detail{font-family:var(--ff-font-mono);font-size:11px;color:var(--ff-grey-muted);text-align:right}.quality__more{margin-top:var(--ff-space-3);font-size:12px;color:var(--ff-grey-muted)}.quality__more summary{cursor:pointer}.quality__more ul{margin:var(--ff-space-2) 0 0;padding-left:18px;line-height:1.6}.diag__build{margin:2px 0 0;font-family:var(--ff-font-mono);font-size:11px;color:var(--ff-grey-dark)}.viewpicker{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius);padding:var(--ff-space-4);margin-bottom:var(--ff-space-4)}.viewpicker__label{margin:0 0 var(--ff-space-3);font-size:11px;font-weight:var(--ff-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--ff-grey-muted)}.viewpicker__options{display:grid;grid-template-columns:1fr 1fr;gap:var(--ff-space-2)}.viewbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--ff-border);background:var(--ff-surface-raised);color:var(--ff-grey-light);font-family:inherit;font-size:15px;font-weight:var(--ff-weight-bold);padding:14px 12px;border-radius:var(--ff-radius);cursor:pointer;min-height:48px}.viewbtn--active{background:var(--ff-blue);border-color:var(--ff-blue);color:var(--ff-white)}.viewbtn:focus-visible{outline:2px solid var(--ff-blue);outline-offset:2px}.viewpicker__hint{margin:var(--ff-space-3) 0 0;font-size:12px;color:var(--ff-grey-muted);line-height:1.5}.qcheck--advisory .qcheck__mark,.qcheck--advisory .qcheck__label{color:var(--ff-warn)}.quality__advisory{margin:var(--ff-space-3) 0 0;font-size:12px;line-height:1.5;color:var(--ff-warn)}.quality__advisory-note{color:var(--ff-grey-muted)}.client{max-width:520px;margin:0 auto;padding:var(--ff-space-5) var(--ff-space-4) var(--ff-space-6)}.client__title{margin:0 0 var(--ff-space-3);font-size:28px;font-weight:var(--ff-weight-number);letter-spacing:-.02em}.client__intro{margin:0 0 var(--ff-space-5);color:var(--ff-grey-light);font-size:15px;line-height:1.6}.client__field{margin-bottom:var(--ff-space-4)}.client__label{margin:0 0 var(--ff-space-2);font-size:11px;font-weight:var(--ff-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--ff-grey-muted)}.client__input,.client__value{width:100%;padding:14px;font-size:17px;font-family:inherit;border-radius:var(--ff-radius);border:1px solid var(--ff-border);background:var(--ff-surface-raised);color:var(--ff-white);text-align:left}.client__value{cursor:pointer}.client__start{width:100%;padding:20px;font-size:18px;margin-top:var(--ff-space-4)}.client__status{margin-top:var(--ff-space-4);padding:var(--ff-space-4);border-radius:var(--ff-radius);background:var(--ff-surface);border:1px solid var(--ff-border);text-align:center}.client__stage{margin:0;font-size:34px;font-weight:var(--ff-weight-number);letter-spacing:-.02em}.client__hint{margin:var(--ff-space-2) 0 0;font-size:16px;color:var(--ff-grey-light)}.client__progress{display:flex;flex-wrap:wrap;gap:var(--ff-space-2);margin-top:var(--ff-space-4)}.client__step{flex:1 1 auto;text-align:center;padding:10px 8px;border-radius:var(--ff-radius-sm);background:var(--ff-surface);border:1px solid var(--ff-border);color:var(--ff-grey-muted);font-size:13px;font-weight:var(--ff-weight-bold)}.client__step--current{border-color:var(--ff-blue);color:var(--ff-blue)}.client__step--done{color:var(--ff-good);border-color:var(--ff-good)}.client__devlink{margin-top:var(--ff-space-6);text-align:center;font-size:12px}.client__devlink a{color:var(--ff-grey-dark);text-decoration:none}.client__error{margin-top:var(--ff-space-4);padding:var(--ff-space-4);border-radius:var(--ff-radius);background:#e5484d1f;border:1px solid var(--ff-bad)}.client__errorTitle{margin:0 0 var(--ff-space-2);font-size:17px;font-weight:var(--ff-weight-bold);color:var(--ff-bad)}.client__errorBody{margin:0;font-size:15px;line-height:1.55;color:var(--ff-grey-light)}.client__diag{margin-top:var(--ff-space-3);padding:var(--ff-space-3);border-radius:var(--ff-radius-sm);background:var(--ff-surface);border:1px solid var(--ff-border)}.leveler{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ff-space-3);padding:var(--ff-space-4);text-align:center;background:#0d0d0f59}.leveler__arena{position:relative;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#17171cbf;border:2px solid var(--ff-border);overflow:hidden}@keyframes leveler-pulse{0%,to{opacity:.55}50%{opacity:.85}}.leveler__arena--waiting{animation:leveler-pulse 1.4s ease-in-out infinite}.leveler__target{position:absolute;border:8px solid var(--ff-white);border-radius:50%;transition:background .15s ease,border-color .15s ease}.leveler__ball{position:absolute;border-radius:50%;box-shadow:0 3px 14px #0000008c;transition:background .15s ease,transform .26s cubic-bezier(.22,1,.36,1);z-index:2}.leveler__arrow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.leveler__ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;z-index:3;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 6px));mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 6px))}.leveler__countdownValue{position:absolute;z-index:4;font-size:64px;font-weight:var(--ff-weight-number);color:var(--ff-white);text-shadow:0 2px 12px rgba(0,0,0,.6)}.leveler__statusBanner{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px var(--ff-space-5);border-radius:999px;box-shadow:0 4px 16px #0006}.leveler__status{margin:0;font-size:26px;font-weight:var(--ff-weight-number);letter-spacing:-.01em;color:var(--ff-black)}.leveler__substatus{margin:0;font-size:14px;font-weight:var(--ff-weight-bold);letter-spacing:.08em;color:var(--ff-black);opacity:.75}.leveler__readout{margin:0;font-size:12px;color:var(--ff-grey-muted);font-family:var(--ff-font-mono);opacity:.8;text-shadow:0 1px 6px rgba(0,0,0,.6)}.leveler--fallback{background:var(--ff-bg);gap:var(--ff-space-4)}.leveler__fallbackTitle{margin:0;font-size:20px;font-weight:var(--ff-weight-bold)}.leveler__fallbackBody{margin:0;font-size:15px;color:var(--ff-grey-light);line-height:1.55;max-width:320px}.tabbar{position:sticky;bottom:0;display:flex;max-width:520px;margin:0 auto;background:var(--ff-surface);border-top:1px solid var(--ff-border);padding-bottom:env(safe-area-inset-bottom)}.tabbar__link{flex:1;padding:var(--ff-space-3) var(--ff-space-2);text-align:center;font-size:13px;font-weight:var(--ff-weight-medium);color:var(--ff-grey-muted);text-decoration:none}.tabbar__link--active{color:var(--ff-blue);font-weight:var(--ff-weight-bold)}
