/* Sensor Catch — WordPress embed styles (scoped under .sensor-catch-app) */
.sensor-catch-app{
  --sc-bg-deep:#071824;
  --sc-bg-panel:#0c2130;
  --sc-bg-panel2:#0f2a3c;
  --sc-grid-line:rgba(0,217,255,0.07);
  --sc-cyan:#00d9ff;
  --sc-cyan-dim:#0a8fae;
  --sc-amber:#ffb020;
  --sc-red:#ff4d4f;
  --sc-green-led:#38ff8a;
  --sc-text:#d8ecf2;
  --sc-text-dim:#6f93a0;
  --sc-font-mono: ui-monospace,"Cascadia Code","JetBrains Mono",Consolas,"Liberation Mono",Menlo,monospace;
  --sc-font-kr:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",-apple-system,sans-serif;

  position:relative;
  width:100%;
  aspect-ratio:16/9;
  min-height:420px;
  max-height:82vh;
  border-radius:10px;
  overflow:hidden;
  background:var(--sc-bg-deep);
  box-shadow:0 0 0 1px rgba(0,217,255,0.15), 0 18px 50px rgba(0,0,0,.45);
  font-family:var(--sc-font-kr);
  color:var(--sc-text);
  line-height:1.4;
  box-sizing:border-box;
}
.sensor-catch-app *{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
.sensor-catch-app:fullscreen{
  aspect-ratio:auto; max-height:none; border-radius:0;
}
/* iframe 전용 임베드(?sensor_catch_embed=1)에서 사용: 부모 뷰포트를 스크롤 없이 100% 채움 */
.sensor-catch-app.sc-fill{
  width:100vw; height:100vh;
  aspect-ratio:auto; max-height:none; min-height:0;
  border-radius:0; box-shadow:none;
}
.sensor-catch-app ul{margin:0;padding:0;}

.sc-stage{position:absolute;inset:0;overflow:hidden;
  background-color:var(--sc-bg-deep);
  background-image:
    linear-gradient(var(--sc-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--sc-grid-line) 1px, transparent 1px);
  background-size:42px 42px;
}
.sc-stage::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 35%, transparent 0%, rgba(4,12,18,0.75) 85%);
}
.sc-decoring{position:absolute;border:1px solid rgba(0,217,255,0.09);border-radius:50%;pointer-events:none;}

.sc-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;}

.sc-scanline{position:absolute;inset:0;pointer-events:none;z-index:5;
  background:linear-gradient(rgba(0,217,255,0.035) 50%, transparent 50%);
  background-size:100% 4px; mix-blend-mode:overlay;}

.sc-fullscreen-btn{position:absolute; top:12px; right:14px; z-index:12;
  width:34px;height:34px;border-radius:5px;border:1px solid rgba(0,217,255,0.4);
  background:rgba(9,26,38,0.6); color:var(--sc-cyan); font-size:16px; cursor:pointer;
  display:flex;align-items:center;justify-content:center;}
.sensor-catch-app.sc-not-started .sc-fullscreen-btn{display:none;}

/* ---------- HUD ---------- */
.sc-hud{position:absolute;top:0;left:0;right:0;z-index:10;
  display:flex; flex-direction:column; gap:8px;
  padding:12px 14px; pointer-events:none;
  background:linear-gradient(to bottom, rgba(7,24,36,0.85), transparent);
  opacity:0; transition:opacity .3s;}
.sc-hud.sc-show{opacity:1;}
.sc-hud-top{display:flex;justify-content:space-between;align-items:flex-start;}
.sc-hud-block{background:rgba(9,26,38,0.55); border:1px solid rgba(0,217,255,0.25);
  border-radius:4px; padding:6px 12px; backdrop-filter:blur(2px);}
.sc-hud-label{font-family:var(--sc-font-mono); font-size:9px; letter-spacing:.2em; color:var(--sc-text-dim);}
.sc-hud-value{font-family:var(--sc-font-mono); font-size:21px; font-weight:700; color:var(--sc-cyan);
  text-shadow:0 0 10px rgba(0,217,255,0.6); font-variant-numeric:tabular-nums; line-height:1.1;}
.sc-combo-tag{font-family:var(--sc-font-mono); font-size:11px; color:var(--sc-amber); margin-top:2px;
  text-shadow:0 0 8px rgba(255,176,32,0.6); opacity:0; transition:opacity .2s; height:13px;}
.sc-combo-tag.sc-on{opacity:1;}

.sc-boost-tag{font-family:var(--sc-font-mono); font-size:10px; letter-spacing:.1em; color:#071824;
  background:var(--sc-amber); padding:2px 7px; border-radius:3px; margin-top:5px; display:inline-block;
  opacity:0; transform:translateY(-4px); transition:all .2s; font-weight:700;}
.sc-boost-tag.sc-on{opacity:1; transform:translateY(0); animation:scPulseBoost 1s infinite;}
@keyframes scPulseBoost{0%,100%{box-shadow:0 0 4px rgba(255,176,32,.6);}50%{box-shadow:0 0 14px rgba(255,176,32,1);}}

.sc-hud-right{text-align:right;}

/* ---------- Life / Signal Integrity gauge ---------- */
.sc-life-row{display:flex; align-items:center; gap:10px;
  background:rgba(9,26,38,0.55); border:1px solid rgba(0,217,255,0.25); border-radius:5px;
  padding:6px 12px;}
.sc-life-label{font-family:var(--sc-font-mono); font-size:8.5px; letter-spacing:.14em; color:var(--sc-text-dim);
  line-height:1.25; white-space:nowrap; flex:none;}
.sc-life-track{flex:1; height:12px; border-radius:6px; overflow:hidden; position:relative;
  background:rgba(0,0,0,0.35); border:1px solid rgba(0,217,255,0.2);
  background-image:repeating-linear-gradient(90deg, rgba(0,0,0,0.35) 0, rgba(0,0,0,0.35) 1px, transparent 1px, transparent 10%);}
.sc-life-fill{height:100%; width:100%; border-radius:6px;
  background:linear-gradient(90deg,#0a8fae,#00d9ff,#7be6ff);
  box-shadow:0 0 10px rgba(0,217,255,.55);
  transition:width .35s ease, background .4s ease;}
.sc-life-track.sc-life-low .sc-life-fill{background:linear-gradient(90deg,#a86a00,#ffb020,#ffd166);
  box-shadow:0 0 10px rgba(255,176,32,.6);}
.sc-life-track.sc-life-critical .sc-life-fill{background:linear-gradient(90deg,#8a0000,#ff4d4f,#ff8a8a);
  box-shadow:0 0 14px rgba(255,77,79,.8); animation:scLifePulse 0.7s infinite;}
@keyframes scLifePulse{0%,100%{filter:brightness(1);}50%{filter:brightness(1.35);}}
.sc-life-fill.sc-life-hit{animation:scLifeHit .35s ease-out;}
.sc-life-fill.sc-life-heal{animation:scLifeHeal .5s ease-out;}
@keyframes scLifeHit{0%{filter:brightness(2.2) saturate(1.6);}100%{filter:brightness(1);}}
@keyframes scLifeHeal{0%{filter:brightness(2) hue-rotate(20deg);}100%{filter:brightness(1);}}
.sc-life-val{font-family:var(--sc-font-mono); font-size:14px; font-weight:700; color:var(--sc-cyan);
  min-width:28px; text-align:right; font-variant-numeric:tabular-nums;
  text-shadow:0 0 8px rgba(0,217,255,.5);}

.sc-danger-vignette{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(ellipse at center, transparent 45%, rgba(255,20,20,0.28) 100%);}
.sc-danger-vignette.sc-show{opacity:1; animation:scDangerPulse 1.1s infinite;}
@keyframes scDangerPulse{0%,100%{opacity:.55;}50%{opacity:1;}}


.sc-toast{position:absolute;top:16%;left:50%;transform:translate(-50%,-10px);
  font-family:var(--sc-font-mono); font-size:16px; letter-spacing:.2em; color:var(--sc-cyan);
  background:rgba(9,26,38,0.85); border:1px solid var(--sc-cyan); padding:8px 18px; border-radius:4px;
  text-shadow:0 0 12px rgba(0,217,255,.8); opacity:0; transition:all .35s; z-index:15; pointer-events:none;
  white-space:nowrap;}
.sc-toast.sc-show{opacity:1; transform:translate(-50%,0);}

.sc-controls-hint{position:absolute; bottom:10px; left:0; right:0; text-align:center;
  font-family:var(--sc-font-mono); font-size:10px; color:var(--sc-text-dim); letter-spacing:.08em;
  z-index:10; opacity:0; transition:opacity .4s; pointer-events:none;}
.sc-controls-hint.sc-show{opacity:.75;}

/* ---------- Overlays ---------- */
.sc-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;
  background:rgba(4,12,18,0.75); backdrop-filter:blur(3px); padding:16px;}
.sc-hidden{display:none !important;}

.sc-panel{width:min(520px,100%); max-height:100%; overflow-y:auto;
  background:linear-gradient(180deg, var(--sc-bg-panel2), var(--sc-bg-panel));
  border:1px solid rgba(0,217,255,0.35); border-radius:8px;
  padding:20px 20px; position:relative;
  box-shadow:0 0 0 1px rgba(0,0,0,.4), 0 20px 60px rgba(0,0,0,.6);}

.sc-eyebrow{font-family:var(--sc-font-mono); font-size:10px; letter-spacing:.3em; color:var(--sc-cyan-dim);
  text-align:center; margin-bottom:6px;}
.sc-title{font-family:var(--sc-font-mono); font-weight:800; font-size:clamp(22px,6vw,32px);
  letter-spacing:.1em; text-align:center; color:var(--sc-cyan); margin:0 0 4px;
  text-shadow:0 0 18px rgba(0,217,255,.55), 0 0 2px rgba(0,217,255,.9);}
.sc-title-sm{font-size:clamp(18px,5vw,24px);}
.sc-subtitle{text-align:center; color:var(--sc-text-dim); font-size:12.5px; margin-bottom:16px;}

.sc-rule-list{list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:6px;}
.sc-rule-list li{font-size:12.5px; line-height:1.45; color:var(--sc-text); padding-left:18px; position:relative;}
.sc-rule-list li::before{content:"▸"; position:absolute; left:0; color:var(--sc-cyan); }

.sc-catalog{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px;}
.sc-cat-col{border:1px solid rgba(255,255,255,0.08); border-radius:6px; padding:9px 10px;}
.sc-cat-col.sc-good{border-color:rgba(0,217,255,.25); background:rgba(0,217,255,.04);}
.sc-cat-col.sc-bad{border-color:rgba(255,77,79,.25); background:rgba(255,77,79,.05);}
.sc-cat-head{font-family:var(--sc-font-mono); font-size:9.5px; letter-spacing:.12em; margin-bottom:2px;
  display:flex; align-items:center; gap:6px;}
.sc-cat-col.sc-good .sc-cat-head{color:var(--sc-cyan);}
.sc-cat-col.sc-bad .sc-cat-head{color:var(--sc-red);}
.sc-cat-sub{font-family:var(--sc-font-mono); font-size:8.5px; color:var(--sc-text-dim); letter-spacing:.02em;
  margin-bottom:6px;}
.sc-cat-item{display:flex; align-items:center; gap:7px; font-size:11px; color:var(--sc-text-dim); padding:2.5px 0;}
.sc-cat-item .sc-ic{font-family:var(--sc-font-mono); font-size:9px; font-weight:700;
  min-width:30px; height:18px; padding:0 3px; border-radius:4px; border:1px solid;
  display:flex; align-items:center; justify-content:center; flex:none; white-space:nowrap;}
.sc-cat-item .sc-pt{margin-left:auto; font-family:var(--sc-font-mono); font-size:10px; white-space:nowrap; flex:none;
  display:flex; align-items:baseline; gap:5px;}
.sc-cat-col.sc-good .sc-pt{color:var(--sc-cyan);}
.sc-cat-col.sc-bad .sc-pt{color:var(--sc-red);}
.sc-pt-miss{font-size:8.5px; color:var(--sc-text-dim); font-weight:400;}

.sc-special-note{display:flex; align-items:flex-start; gap:9px; font-size:11.5px; line-height:1.5; color:var(--sc-text);
  border:1px solid rgba(77,255,176,.35); background:rgba(77,255,176,.06); border-radius:6px;
  padding:10px 12px; margin-bottom:16px;}
.sc-special-badge{flex:none; font-family:var(--sc-font-mono); font-size:10px; font-weight:700; letter-spacing:.05em;
  color:#04241a; background:#4dffb0; padding:3px 8px; border-radius:4px; white-space:nowrap;}
.sc-special-note b{color:#4dffb0;}

.sc-btn{display:block; width:100%; font-family:var(--sc-font-mono); font-weight:700; font-size:14px;
  letter-spacing:.1em; color:#031017; background:linear-gradient(180deg,#26e6ff,#00b8d9);
  border:none; border-radius:5px; padding:12px; cursor:pointer;
  box-shadow:0 3px 0 #007a91, 0 6px 16px rgba(0,217,255,.35); transition:transform .08s; margin-top:8px;}
.sc-btn:first-of-type{margin-top:0;}
.sc-btn:active{transform:translateY(3px); box-shadow:0 0 0 #007a91, 0 2px 6px rgba(0,217,255,.35);}
.sc-btn.sc-secondary{background:linear-gradient(180deg,#3a5566,#233746); color:var(--sc-text);
  box-shadow:0 3px 0 #14202a, 0 6px 16px rgba(0,0,0,.3);}
.sc-btn:disabled{opacity:.55; cursor:default; transform:none !important;}

.sc-stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:14px 0 16px;}
.sc-stat-box{border:1px solid rgba(0,217,255,.2); border-radius:6px; padding:10px; text-align:center;
  background:rgba(0,217,255,.03);}
.sc-stat-box .sc-lbl{font-family:var(--sc-font-mono); font-size:9px; letter-spacing:.12em; color:var(--sc-text-dim);}
.sc-stat-box .sc-val{font-family:var(--sc-font-mono); font-size:20px; color:var(--sc-cyan); font-weight:700;
  text-shadow:0 0 10px rgba(0,217,255,.5);}
.sc-stat-box.sc-best .sc-val{color:var(--sc-amber); text-shadow:0 0 10px rgba(255,176,32,.5);}

.sc-submit-row{display:flex; gap:8px; margin-top:4px;}
.sc-name-input{flex:1; min-width:0; font-family:var(--sc-font-kr); font-size:13px; color:var(--sc-text);
  background:rgba(0,0,0,.25); border:1px solid rgba(0,217,255,.3); border-radius:5px; padding:0 10px;}
.sc-submit-row .sc-btn{width:auto; white-space:nowrap; margin-top:0;}
.sc-submit-msg{font-family:var(--sc-font-mono); font-size:11px; color:var(--sc-text-dim); min-height:16px;
  margin-top:6px; text-align:center;}
.sc-submit-msg.sc-ok{color:var(--sc-green-led);}
.sc-submit-msg.sc-err{color:var(--sc-red);}

.sc-board-list{display:flex; flex-direction:column; gap:5px; margin-bottom:14px; max-height:340px; overflow-y:auto;}
.sc-board-row{display:flex; align-items:center; gap:10px; font-size:12.5px; padding:7px 10px;
  border:1px solid rgba(0,217,255,.15); border-radius:5px; background:rgba(0,217,255,.03);}
.sc-board-row .sc-rank{font-family:var(--sc-font-mono); width:26px; text-align:center; font-weight:700; color:var(--sc-cyan);}
.sc-board-row.sc-r1 .sc-rank{color:#ffd166;}
.sc-board-row.sc-r2 .sc-rank{color:#cfd8dc;}
.sc-board-row.sc-r3 .sc-rank{color:#e0a878;}
.sc-board-row .sc-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.sc-board-row .sc-score{font-family:var(--sc-font-mono); font-weight:700; color:var(--sc-cyan);}
.sc-board-empty, .sc-board-loading{text-align:center; color:var(--sc-text-dim); font-size:12px; padding:20px 0;}

@media (max-width:480px){
  .sc-catalog{grid-template-columns:1fr;}
  .sc-panel{padding:16px 14px;}
  .sc-submit-row{flex-direction:column;}
}
