
.tools-page-hero p{max-width:760px}.tools-intro{display:grid;grid-template-columns:1fr .9fr;gap:35px;align-items:end;margin-bottom:25px}.tools-intro p,.tools-muted{color:var(--muted);line-height:1.7;margin:0}.device-test-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.device-test-card{appearance:none;border:1px solid #e4e4e7;background:#fff;border-radius:20px;padding:19px 16px;text-align:left;cursor:pointer;min-height:190px;display:flex;flex-direction:column;transition:.16s;box-shadow:0 7px 20px rgba(0,0,0,.025)}.device-test-card:hover{transform:translateY(-3px);border-color:#d4d4d8;box-shadow:0 14px 30px rgba(0,0,0,.06)}.device-test-card .test-icon{width:55px;height:55px;border-radius:15px;background:#f3f3f5;display:grid;place-items:center;font-size:1.7rem;margin-bottom:22px}.color-icon{background:conic-gradient(#ff3b30,#ffcc00,#34c759,#00b8d9,#007aff,#af52de,#ff3b30)!important}.device-test-card b,.device-test-card small{display:block}.device-test-card b{font-size:.95rem}.device-test-card small{color:#777;font-size:.72rem;line-height:1.4;margin-top:5px}.device-test-card em{margin-top:auto;font-style:normal;font-size:.7rem;color:var(--red);font-weight:850}.tool-privacy-note{margin-top:16px;background:#f7f7f8;border-radius:14px;padding:13px 15px;display:flex;gap:10px;font-size:.72rem;color:#74757b}.tool-privacy-note b{color:#29292d;white-space:nowrap}
.speed-test-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:45px;align-items:center}.speed-actions{display:flex;gap:9px;margin-top:22px}.speed-status{font-size:.75rem;color:#777;margin-top:11px;min-height:1.2em}.speed-meter-card{background:#111217;border-radius:27px;padding:31px;color:#fff;display:grid;grid-template-columns:240px 1fr;gap:30px;align-items:center;box-shadow:0 20px 55px rgba(0,0,0,.12)}.speed-gauge{width:220px;height:220px;position:relative;display:grid;place-items:center}.speed-gauge-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 225deg,#397dff,#20d3c2,#71d43e,#ffd33d,#ff7028,#ef3340 270deg,transparent 270deg);-webkit-mask:radial-gradient(circle,transparent 59%,#000 60%);mask:radial-gradient(circle,transparent 59%,#000 60%)}.speed-gauge:after{content:"";position:absolute;inset:25px;border-radius:50%;border:1px solid #333741}.speed-gauge-center{text-align:center;z-index:2}.speed-gauge-center span{display:block;font-size:3.2rem;font-weight:900;letter-spacing:-.07em}.speed-gauge-center small{color:#969aa4}.speed-results{display:grid;gap:10px}.speed-results>div{background:#1b1c22;border:1px solid #2c2e35;border-radius:15px;padding:13px;display:grid;grid-template-columns:28px 1fr;align-items:center}.speed-results>div>span{grid-row:1/3;color:#aaa}.speed-results b{font-size:1.2rem}.speed-results small{color:#8e929b;font-size:.65rem}.tools-help-card{background:#111113;color:#fff;border-radius:24px;padding:28px 31px;display:flex;justify-content:space-between;gap:25px;align-items:center}.tools-help-card h2{font-size:1.7rem;margin:5px 0}.tools-help-card p{color:#aaa;margin:0;max-width:650px;line-height:1.6}
.device-test-modal{position:fixed;inset:0;z-index:500;background:rgba(8,8,10,.72);backdrop-filter:blur(8px);display:none;padding:18px}.device-test-modal.open{display:grid;place-items:center}.device-test-shell{width:min(920px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:24px;box-shadow:0 30px 100px rgba(0,0,0,.3)}.device-test-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #ededf0;padding:17px 20px;display:flex;justify-content:space-between;align-items:center}.device-test-head small{font-size:.6rem;font-weight:900;letter-spacing:.12em;color:var(--red)}.device-test-head h2{font-size:1.25rem;margin:3px 0 0}.device-test-head button{border:0;background:#f0f0f2;width:38px;height:38px;border-radius:50%;font-size:1.4rem;cursor:pointer}.device-test-body{padding:22px}.test-instructions{color:#6d6e73;font-size:.82rem;line-height:1.6;margin-bottom:15px}.test-action-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.test-success{background:#ebf9f0;color:#19743e;border:1px solid #ccebd8;border-radius:12px;padding:11px 13px;margin-top:12px;font-size:.76rem}.touch-board{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;background:#17181c;padding:8px;border-radius:16px;touch-action:none;user-select:none}.touch-cell{aspect-ratio:1;background:#303238;border-radius:5px;transition:.08s}.touch-cell.hit{background:#32c86e}.touch-progress{font-weight:850;margin-top:12px}.color-stage{height:min(65vh,520px);border-radius:16px;display:grid;place-items:center;cursor:pointer;border:1px solid #ddd;overflow:hidden}.color-stage span{background:rgba(0,0,0,.58);color:#fff;padding:8px 11px;border-radius:999px;font-size:.72rem}.camera-stage{position:relative;background:#111;border-radius:17px;overflow:hidden;aspect-ratio:16/10}.camera-stage video{width:100%;height:100%;object-fit:cover;display:block}.camera-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#aaa;text-align:center;padding:25px}.camera-status{font-size:.72rem;color:#777;margin-top:8px}.speaker-panel{text-align:center;padding:20px;background:#f7f7f8;border-radius:17px}.speaker-visual{width:130px;height:130px;border-radius:50%;margin:0 auto 17px;background:#111;color:#fff;display:grid;place-items:center;font-size:3rem}.speaker-visual.playing{animation:pulseSpeaker .7s infinite alternate}@keyframes pulseSpeaker{to{transform:scale(1.06);box-shadow:0 0 0 16px rgba(229,27,35,.08)}}.mic-panel{background:#f7f7f8;border-radius:17px;padding:20px}.mic-meter{height:24px;background:#dddde2;border-radius:999px;overflow:hidden;margin:16px 0}.mic-meter-fill{height:100%;width:0;background:linear-gradient(90deg,#28c66f,#ffd43b,#ef3340);transition:width .05s}.mic-recording{font-size:.72rem;color:#777}.mic-playback{width:100%;margin-top:12px}
@media(max-width:1050px){.device-test-grid{grid-template-columns:repeat(3,1fr)}.speed-meter-card{grid-template-columns:200px 1fr}.speed-gauge{width:190px;height:190px}}@media(max-width:760px){.tools-intro,.speed-test-layout{grid-template-columns:1fr}.device-test-grid{grid-template-columns:1fr 1fr}.speed-meter-card{grid-template-columns:1fr}.speed-gauge{margin:auto}.tool-privacy-note{display:block}.tool-privacy-note b{display:block;margin-bottom:4px}.tools-help-card{display:block}.tools-help-card .btn{margin-top:18px}.device-test-modal{padding:0}.device-test-shell{max-height:100vh;height:100vh;border-radius:0}.touch-board{grid-template-columns:repeat(6,1fr)}}@media(max-width:430px){.device-test-grid{grid-template-columns:1fr}.device-test-card{min-height:128px;display:grid;grid-template-columns:58px 1fr auto;column-gap:12px;align-items:center}.device-test-card .test-icon{margin:0}.device-test-card em{margin:0}.speed-meter-card{padding:23px}}

.fullscreen-color-test{position:fixed;inset:0;z-index:999999;cursor:pointer;touch-action:manipulation}
.color-wheel-preview{background:conic-gradient(#ff3b30,#ffcc00,#34c759,#00b8d9,#007aff,#af52de,#ff3b30)!important}

.fullscreen-touch-test{position:fixed;inset:0;z-index:999999;background:#111217;display:grid;touch-action:none;user-select:none;-webkit-user-select:none}
.fullscreen-touch-grid{width:100vw;height:100vh;display:grid;gap:1px;background:#0f1013}
.fullscreen-touch-cell{min-width:0;min-height:0;background:#2b2e34;transition:background .035s linear,transform .035s linear}
.fullscreen-touch-cell.hit{background:#34d66f;transform:scale(.90)}
.fullscreen-touch-test.touch-complete{background:#143c24}.fullscreen-touch-test.touch-timeout{background:#17181c}

/* Refined full-screen touch test */
.fullscreen-touch-test{
  position:fixed;inset:0;z-index:999999;background:#111217;
  touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden;
}
.fullscreen-touch-grid{
  position:absolute;inset:8px;
  display:grid;gap:2px;background:#0f1013;border-radius:8px;overflow:hidden;
}
.fullscreen-touch-cell{
  min-width:0;min-height:0;background:#30343b;
  border-radius:3px;transition:background .035s linear,transform .035s linear;
}
.fullscreen-touch-cell.hit{background:#34d66f;transform:scale(.94)}
.touch-countdown{
  position:absolute;top:14px;left:50%;transform:translateX(-50%);
  z-index:4;display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;
  background:rgba(10,11,14,.82);backdrop-filter:blur(10px);color:#fff;pointer-events:none;
  border:1px solid rgba(255,255,255,.14);
}
.touch-countdown b{font-size:1rem;min-width:18px;text-align:center}
.touch-countdown span{font-size:.62rem;color:#c9cbd1;white-space:nowrap}
.touch-cancel-wrap{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  z-index:5;width:min(320px,calc(100vw - 40px));padding:8px 10px 10px;border-radius:18px;
  background:rgba(10,11,14,.86);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14);
}
.touch-cancel-label{text-align:center;color:#fff;font-size:.62rem;font-weight:800;margin-bottom:5px}
.touch-cancel-slider{
  appearance:none;-webkit-appearance:none;width:100%;height:34px;
  background:rgba(255,255,255,.12);border-radius:999px;outline:none;
}
.touch-cancel-slider::-webkit-slider-thumb{
  appearance:none;-webkit-appearance:none;width:30px;height:30px;border-radius:50%;
  background:#fff;border:0;box-shadow:0 2px 7px rgba(0,0,0,.35);
}
.touch-cancel-slider::-moz-range-thumb{
  width:30px;height:30px;border-radius:50%;background:#fff;border:0;
  box-shadow:0 2px 7px rgba(0,0,0,.35);
}

.touch-inactivity-panel[hidden]{display:none!important}
.touch-inactivity-panel{position:absolute;inset:0;z-index:7;pointer-events:none}
.touch-inactivity-panel .touch-countdown,
.touch-inactivity-panel .touch-cancel-wrap{pointer-events:auto}
