:root{font-family:Segoe UI,Arial,sans-serif;line-height:1.4;font-weight:400;color:#eaf2ff;background:#0b1020}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 10%,rgba(62,120,214,.18),transparent 40%),radial-gradient(circle at 90% 0%,rgba(47,156,66,.14),transparent 38%),#0b1020}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;gap:1rem;align-items:center;justify-content:flex-start;max-width:1080px;margin:0 auto;padding:.9rem 1.2rem;border-bottom:1px solid #1e2744;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b1020c7}.brand{font-weight:700;letter-spacing:.04em}.nav{display:flex;gap:.45rem;flex-wrap:wrap}.lang-switch{margin-left:auto;display:inline-flex;gap:.3rem}.lang-btn{border:1px solid #2f3d67;background:#101831cc;color:#c9d8f5;border-radius:.45rem;padding:.3rem .5rem;font-size:.78rem;cursor:pointer}.lang-btn.active{border-color:#3e78d6;color:#fff;background:#3e78d640}.nav-link{padding:.45rem .6rem;border:1px solid #253154;border-radius:.55rem;color:#b9c8ea;text-decoration:none;font-size:.9rem}.nav-link.active{color:#fff;border-color:#3e78d6;background:#3e78d633}.content{max-width:1080px;margin:0 auto;padding:1.2rem}.site-footer{border-top:1px solid #1e2744;background:#0a0f1eeb;margin-top:1.2rem}.footer-inner{max-width:1080px;margin:0 auto;padding:.95rem 1.2rem 1.1rem;display:grid;grid-template-columns:1.4fr 1fr auto;gap:.8rem;align-items:start}.footer-brand{display:grid;gap:.2rem}.footer-brand strong{color:#eef5ff;font-size:.9rem}.footer-brand span{color:#9fb2d8;font-size:.8rem}.footer-links{display:flex;flex-wrap:wrap;gap:.5rem .7rem}.footer-links a{color:#c9d8f5;text-decoration:none;font-size:.82rem}.footer-links a:hover{color:#fff;text-decoration:underline}.footer-meta{display:grid;gap:.18rem;text-align:right;color:#98acd4;font-size:.78rem}h1{margin:0 0 .35rem}.muted{margin:0 0 1rem;color:#9fb2d8}.tiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem}.tile{border:1px solid #2a365d;border-radius:.8rem;padding:.8rem;background:#111932cc}.tile-title{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:.5rem}.dot{width:.72rem;height:.72rem;border-radius:999px;background:#8d9fc3}.tile-ok .dot{background:#2f9c42}.tile-warn .dot{background:#c5a12f}.tile-fail .dot{background:#d74d45}.tile-summary{margin:0;color:#c8d5f0;font-size:.94rem}.panel{border:1px solid #2a365d;border-radius:.8rem;padding:.9rem;background:#111932cc;box-shadow:0 8px 20px #00000029}.clinic-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.7rem;align-items:start}.panel-visual{order:3;grid-column:1 / -1}.panel-connection{order:1;grid-column:span 6}.panel-drift{order:4;grid-column:span 6}.panel-trigger{order:5;grid-column:span 6}.panel-actions{order:6;grid-column:span 5}.panel-recommendations{order:2;grid-column:span 7}.clinic-top-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-bottom:.7rem}.top-card .panel-header h2{font-size:.92rem}.top-meta{font-size:.84rem;color:#bdcceb}.top-list{display:grid;gap:.4rem}.ready-callout{display:flex;align-items:center;gap:.6rem;margin-bottom:.55rem;padding:.45rem .55rem;border:1px solid #2d3a63;border-radius:.55rem;background:#0c12279e}.ready-ok{border-color:#2f9c42;background:#2f9c4226}.ready-warn{border-color:#c5a12f;background:#c5a12f24}.ready-fail{border-color:#d74d45;background:#d74d4524}.ready-icon{width:.8rem;height:.8rem;border-radius:999px;border:2px solid #4f6088;background:transparent;flex:0 0 auto}.ready-icon-ok{border-color:#2f9c42;background:#2f9c42;box-shadow:0 0 0 3px #2f9c4233}.ready-icon-warn{border-color:#c5a12f;background:#c5a12f;box-shadow:0 0 0 3px #c5a12f33}.ready-icon-fail{border-color:#d74d45;background:#d74d45;box-shadow:0 0 0 3px #d74d4533}.ready-copy{display:grid;gap:.12rem}.ready-copy strong{color:#edf4ff;font-size:.86rem}.ready-copy span{color:#bdcceb;font-size:.8rem}.top-row{display:grid;grid-template-columns:minmax(110px,38%) minmax(0,1fr);align-items:flex-start;gap:.6rem;font-size:.84rem;color:#bdcceb}.top-row span{line-height:1.35}.top-row strong{color:#edf4ff;min-width:0;text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.test-chip{display:inline-flex;align-items:center;gap:.35rem;justify-self:start}.test-chip:before{content:"";width:.5rem;height:.5rem;border-radius:999px;border:1px solid #4f6088;background:transparent}.test-chip.done:before{border-color:#2f9c42;background:#2f9c42}.test-chip.warn:before{border-color:#c5a12f;background:#c5a12f}.test-chip.fail:before{border-color:#d74d45;background:#d74d45}.test-chip.todo:before{border-color:#c5a12f;background:#c5a12f}.hero-panel{margin-bottom:.7rem}.controller-style-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.55rem;color:#c5d2ef;font-size:.86rem}.controller-style-select{border:1px solid #334169;background:#1f2e56;color:#eaf1ff;border-radius:.5rem;padding:.34rem .5rem}.detail-accordion{display:grid;gap:.6rem}.accordion-row{display:flex;align-items:center;gap:.55rem}.accordion-head{width:100%;flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:0;background:transparent;color:#eaf2ff;padding:0;margin:0;font:inherit;cursor:pointer}.test-help-icon{width:1.45rem;height:1.45rem;border-radius:999px;border:1px solid #3f5182;background:#141e3bd1;color:#d9e6ff;font-size:.78rem;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.test-help-icon:hover{border-color:#5a79b8;background:#344e8a8a}.test-help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1rem;background:#030814b8}.test-help-dialog{width:min(560px,100%);border:1px solid #334169;border-radius:.85rem;padding:.85rem .9rem;background:#0d1428fa;box-shadow:0 18px 40px #00000059}.test-help-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.test-help-head h3{margin:0;color:#f0f6ff;font-size:1rem}.test-help-close{border:1px solid #3e4f7f;background:#151f3de6;color:#d9e6ff;border-radius:.45rem;width:1.65rem;height:1.65rem;cursor:pointer}.test-help-dialog p{margin:.6rem 0 .45rem;color:#c9d8f5}.test-help-steps{margin:0;padding-left:1.15rem;display:grid;gap:.34rem;color:#e1ebff}.accordion-body{margin-top:.65rem}@media (min-width: 1180px){.panel-actions,.panel-recommendations{grid-column:span 6}}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.65rem}.panel-header h2{margin:0;font-size:1rem}.sev{display:inline-block;border:1px solid #32406b;border-radius:999px;padding:.16rem .54rem;font-size:.78rem;color:#d8e2f8}.sev-ok{border-color:#2f9c42;color:#7fdd90}.sev-warn{border-color:#c5a12f;color:#ebcf77}.sev-fail{border-color:#d74d45;color:#f39b96}.kv{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.45rem;color:#c5d2ef}.kv strong{color:#edf4ff}.kv-label-with-help{display:inline-flex;align-items:center;gap:.4rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.range{width:100%;margin:.35rem 0 .8rem}.curve-select{width:100%;margin:0 0 .8rem;border:1px solid #334169;background:#1f2e56;color:#eaf1ff;border-radius:.55rem;padding:.4rem .55rem}.axes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.axis-card{border:1px solid #2d3a63;border-radius:.6rem;padding:.45rem .55rem;background:#0f162dbf;display:flex;justify-content:space-between;gap:.4rem}.axis-card strong{color:#fff}.meter-track{border:1px solid #31406b;border-radius:999px;height:11px;background:#0a0f20d9;overflow:hidden;margin-bottom:.7rem}.meter-fill{height:100%;background:linear-gradient(90deg,#3a72cb,#8db2f1)}.button-row{display:flex;gap:.55rem;margin-bottom:.8rem}.button-row button{border:1px solid #334169;background:#1f2e56;color:#eaf1ff;border-radius:.55rem;padding:.45rem .75rem;cursor:pointer}.button-row button:disabled{opacity:.5;cursor:not-allowed}.recommend-list{margin:0;padding:0;list-style:none;color:#d2dcf3}.recommend-list li{margin-bottom:.4rem;padding:.4rem .5rem;border:1px solid #2d3a63;border-radius:.5rem;background:#0c12279e;line-height:1.35}.controller-visual-wrap{display:grid;grid-template-columns:minmax(260px,420px) minmax(220px,1fr);gap:.65rem;align-items:start}.controller-svg{width:100%;border:1px solid #3f4a61;border-radius:.8rem;background:transparent}.ctrl-shell-shadow{fill:#cfcfcf}.ctrl-shell{fill:#efefef;stroke:#303744;stroke-width:1.7}.ctrl-top-bump{fill:none;stroke:#303744;stroke-width:1.7;stroke-linecap:round}.ctrl-shell-seam{fill:none;stroke:#566173;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.ctrl-grip-line{fill:none;stroke:#566173;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.ctrl-ring{fill:transparent;stroke:#303744;stroke-width:1.5}.ctrl-part{fill:#f1f1f1;stroke:#303744;stroke-width:1.5}.ctrl-click{fill:transparent;stroke:#4a5a73;stroke-width:1.4}.ctrl-stick{fill:#ececec;stroke:#303744;stroke-width:1.5}.ctrl-trigger-level{fill:#6185bc6b;stroke:#4c6d9d;stroke-width:.9}.ctrl-touchpad{fill:#eceff5;stroke:#4a5669;stroke-width:1.3}.ctrl-active{fill:#dbe7f8;stroke:#3c5f95}.ctrl-grid-line{fill:none;stroke:#303744;stroke-width:1.2;stroke-linecap:round}.ctrl-grid-active{stroke:#3c5f95;stroke-width:2}.ctrl-btn-label{fill:#2e3744;font-size:7px;font-weight:700;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.controller-mini-stats{border:1px solid #2d3a63;border-radius:.7rem;padding:.7rem;background:#0b1124b3}.button-values-grid{margin-top:.4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.28rem}.button-value{border:1px solid #2a375f;border-radius:.5rem;padding:.35rem .45rem;display:flex;justify-content:space-between;gap:.35rem;background:#101831bf;font-size:.8rem}.button-value strong{color:#edf4ff}.button-value.covered{border-color:#2f9c42;background:#2f9c4233}.button-value.covered strong{color:#a2efb0}.button-coverage-controls{margin-top:.5rem}.button-coverage-controls .button-row{margin-bottom:.45rem;flex-wrap:wrap}.circularity-wrap{margin-top:.4rem;display:flex;gap:.45rem;align-items:center;width:min(420px,100%)}.circularity-toggle{display:inline-flex;align-items:center;gap:.45rem;color:#d9e5ff;font-size:.9rem}.circularity-grid{margin-top:.35rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.28rem;width:min(420px,100%)}.circularity-card{border:1px solid #2d3a63;border-radius:.65rem;padding:.45rem;background:#0c1227b3}.circularity-card h3{margin:0 0 .3rem;font-size:.78rem;color:#dce7ff}.circularity-svg{width:100%;border:1px solid #2d3a63;border-radius:.55rem;background:#080d1bd9}.circularity-card .kv{margin-bottom:.2rem;font-size:.78rem}.circularity-guide{fill:none;stroke:#4e6288;stroke-width:1.4}.circularity-axis{stroke:#33435f;stroke-width:1}.circularity-point{fill:#7db0ff;opacity:.75}.faq-jump{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.8rem}.faq-chip{border:1px solid #334169;border-radius:999px;padding:.3rem .65rem;color:#d9e6ff;text-decoration:none;font-size:.84rem;background:#141e3bb3}.faq-chip:hover{border-color:#4d6fab;background:#273e7080}.faq-grid{display:grid;gap:.7rem}.faq-panel{scroll-margin-top:78px}.faq-list{display:grid;gap:.45rem}.faq-item{border:1px solid #2f3b64;border-radius:.6rem;background:#0b11249e;overflow:hidden}.faq-item summary{list-style:none;cursor:pointer;padding:.55rem .7rem;color:#e7efff;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:.6rem}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:#9fb7e8;font-weight:700}.faq-item[open] summary:after{content:"−"}.faq-item p{margin:0;padding:0 .7rem .7rem;color:#cddbf8;line-height:1.42}.keyboard-panel,.keyboard-top-strip,.keyboard-steps-panel{margin-bottom:.7rem}.keyboard-step-list{margin:0 0 .6rem;padding-left:1.1rem;display:grid;gap:.34rem;color:#d2def8}.keyboard-step-list li{line-height:1.35}.keyboard-step-active{color:#eef5ff}.keyboard-step-active strong{color:#a8d3ff}.keyboard-hint{margin-bottom:.65rem}.keyboard-map-wrap{display:grid;grid-template-columns:minmax(340px,1fr) minmax(170px,.38fr);gap:.65rem;align-items:start}.keyboard-map-left{min-width:0}.keyboard-visual{display:grid;gap:.24rem}.keyboard-row{display:flex;gap:.22rem;flex-wrap:nowrap}.keyboard-key{min-width:2.45rem;padding:.28rem .3rem;border:1px solid #334169;border-radius:.42rem;background:#0e162cd1;display:grid;gap:.12rem;justify-items:center;align-content:center;text-align:center}.keyboard-key span{font-size:.69rem;color:#eaf2ff;font-weight:600}.keyboard-key small{font-size:.56rem;color:#9eb4e2;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.keyboard-key-wide{min-width:3.7rem}.keyboard-key-xwide{min-width:4.8rem}.keyboard-key-space{min-width:12.8rem}.keyboard-key-active{border-color:#3e78d6;background:#3e78d63d;box-shadow:0 0 0 2px #3e78d626}.keyboard-key-covered{border-color:#2f9c42;background:#2f9c4224}.keyboard-modifier-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin-bottom:.55rem}.keyboard-modifier{border:1px solid #2f3b64;border-radius:.5rem;padding:.45rem .4rem;text-align:center;background:#0b11249e;color:#d4e1fb;font-weight:600}.keyboard-modifier-active{border-color:#2f9c42;background:#2f9c4233;color:#baf1c4}.keyboard-inline-codes{white-space:normal;overflow-wrap:anywhere}.keyboard-mini-stats{border:1px solid #2d3a63;border-radius:.7rem;padding:.5rem;background:#0b1124b3;display:grid;gap:.12rem;font-size:.78rem}@media (max-width: 880px){.clinic-top-strip{grid-template-columns:1fr}.clinic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-visual,.panel-connection,.panel-drift,.panel-trigger,.panel-actions,.panel-recommendations{grid-column:span 2}.controller-visual-wrap,.keyboard-map-wrap{grid-template-columns:1fr}.top-row{grid-template-columns:minmax(98px,42%) minmax(0,1fr)}.footer-inner{grid-template-columns:1fr;gap:.55rem}.footer-meta{text-align:left}}@media (max-width: 560px){.clinic-grid{grid-template-columns:1fr}.panel-visual,.panel-connection,.panel-drift,.panel-trigger,.panel-actions,.panel-recommendations{grid-column:span 1}.keyboard-key-space{min-width:100%}.keyboard-modifier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.keyboard-map-wrap{grid-template-columns:1fr;gap:.45rem}.keyboard-visual{gap:.16rem}.keyboard-row{gap:.16rem;flex-wrap:wrap}.keyboard-key{min-width:2rem;padding:.22rem .24rem;border-radius:.36rem}.keyboard-key-wide{min-width:2.9rem}.keyboard-key-xwide{min-width:3.6rem}.keyboard-key-space{min-width:7.6rem}.keyboard-key span{font-size:.62rem}.keyboard-key small{display:none}.keyboard-mini-stats{padding:.45rem;font-size:.74rem}}
