.cv-shell{box-sizing:border-box;--cg-bg:#0b1a1f;--cg-ink:#ecf5f2;--cg-muted:#9fc4b8;--cg-line:rgba(150,220,200,.25);--cg-panel:rgba(8,30,35,.95);--cg-green:#5ad88a;--cg-teal:#4ad8c8;--cg-red:#f06a6a;--cg-amber:#f4cc78;--cg-blue:#6ab8f0;--cg-shadow:rgba(0,0,0,.35);width:100%;max-width:720px;margin:0 auto;padding:0 10px 22px;overflow-x:hidden;color:var(--cg-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:linear-gradient(180deg,#10262c,#0b1a1f);border-radius:14px}
.cv-shell *,.cv-shell *::before,.cv-shell *::after{box-sizing:border-box}
.cv-hidden{display:none!important}
.cv-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 8px;flex-wrap:wrap}
.cv-stats{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.cv-stat{min-width:62px;padding:6px 8px;border:1px solid var(--cg-line);border-radius:10px;background:var(--cg-panel);text-align:center}
.cv-stat span{display:block;color:var(--cg-muted);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.cv-stat strong{display:block;font-size:16px;line-height:1.2;font-variant-numeric:tabular-nums}
.cv-hpstat strong{color:var(--cg-green)}
.cv-mpstat strong{color:var(--cg-blue)}
.cv-bar{height:6px;border-radius:3px;background:#12303a;margin-top:4px;overflow:hidden;min-width:52px}
.cv-bar i{display:block;height:100%;background:var(--cg-green);border-radius:3px}
.cv-mpbar i{background:var(--cg-blue)}
.cv-ebar{height:10px}
.cv-ebar i{background:var(--cg-red)}
.cv-atb{height:12px;border-radius:6px;background:#0d2a33;border:1px solid var(--cg-line);overflow:hidden;margin:6px 0}
.cv-atb i{display:block;height:100%;background:linear-gradient(90deg,var(--cg-teal),var(--cg-amber));width:0%}
.cv-actions{display:flex;gap:6px}
.cv-btn,.cv-big,.cv-act,.cv-tbtn{min-height:44px;min-width:44px;border:1px solid var(--cg-line);border-radius:10px;background:var(--cg-panel);color:var(--cg-ink);font:inherit;font-weight:800;font-size:13px;cursor:pointer;touch-action:manipulation}
.cv-btn{padding:0 14px}
.cv-stage{position:relative;width:100%;max-width:720px;height:min(52vh,420px);min-height:240px;border-radius:12px;overflow:hidden;border:1px solid var(--cg-line);background:#1a3440}
.cv-canvas{position:absolute;inset:0;display:block}
.cv-banner{position:absolute;top:8px;left:50%;transform:translateX(-50%);background:rgba(8,30,35,.9);padding:6px 12px;border-radius:8px;font-weight:700;font-size:13px;white-space:nowrap;pointer-events:none;max-width:94%}
.cv-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(6,20,25,.88);padding:18px;text-align:center;z-index:5}
.cv-overlay h2{margin:0;font-size:22px;color:var(--cg-amber)}
.cv-overlay p{margin:0;max-width:480px;line-height:1.5;color:#d8ece4;font-size:14px}
.cv-big{padding:0 22px;background:linear-gradient(180deg,#1d5a4a,#124030);border-color:var(--cg-green)}
.cv-battle{position:absolute;left:0;right:0;bottom:0;background:rgba(8,26,32,.96);border-top:2px solid var(--cg-amber);padding:10px;z-index:4}
.cv-ename{font-weight:800;font-size:13px;color:var(--cg-amber)}
.cv-log{min-height:34px;font-size:13px;color:#d8ece4;margin:4px 0}
.cv-actions2{display:flex;gap:6px;flex-wrap:wrap}
.cv-act{flex:1 1 90px;padding:0 8px}
.cv-touch{position:absolute;bottom:10px;right:10px;z-index:6;display:none}
.cv-dpad{display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px;gap:4px}
.cv-tbtn{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
#cv-up{grid-column:2;grid-row:1}
#cv-left{grid-column:1;grid-row:2}
#cv-down{grid-column:2;grid-row:2}
#cv-right{grid-column:3;grid-row:2}
@media(pointer:coarse){.cv-touch{display:block}.cv-battle{padding-bottom:104px}}
.cv-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.cv-modalbox{background:var(--cg-panel);border:1px solid var(--cg-line);border-radius:14px;padding:20px;max-width:440px;width:100%;text-align:center}
.cv-modalbox h3{color:var(--cg-amber);margin-top:0}
.cv-modalbox p{line-height:1.6;font-size:14px}
@media(max-width:480px){.cv-stage{height:46vh;min-height:220px}.cv-stat{min-width:54px}.cv-stat strong{font-size:14px}}
