body{background:#1a1a1a;color:#e0e0e0;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.app{max-width:700px;margin:0 auto;padding:1rem;min-height:100vh;display:flex;flex-direction:column}
.header{text-align:center;padding:0.8rem 0}
.title{font-size:1.8rem;color:#4CAF50;margin-bottom:0.3rem}
.sub{color:#aaa;font-size:0.9rem}
.main{display:flex;flex-direction:column;gap:1rem;flex:1}
.mode-bar{display:flex;gap:0.5rem;background:#2a2a2a;border-radius:10px;padding:0.5rem}
.mode-btn{flex:1;padding:0.6rem;background:#333;border:2px solid transparent;border-radius:6px;color:#fff;font-weight:600;cursor:pointer;text-align:center;transition:all 0.2s}
.mode-btn.active{border-color:#4CAF50;background:rgba(76,175,80,0.15)}
.canvas-wrap{position:relative;width:100%;max-width:400px;aspect-ratio:1/1;border-radius:10px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,0.4);touch-action:none;margin:0 auto}
#c{width:100%;height:100%;display:block;background:#111}
.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.88);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:10;padding:1rem}
.ot{font-size:1.6rem;color:#4CAF50;margin-bottom:0.8rem;text-align:center}
.ox{font-size:1rem;color:#ccc;margin-bottom:1.2rem;text-align:center;line-height:1.5}
.btn{padding:0.7rem 1.3rem;border:none;border-radius:8px;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.2s}
.btn-g{background:linear-gradient(135deg,#4CAF50,#2E7D32);color:white}
.btn-g:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(76,175,80,0.3)}
.btn-gr{background:#333;color:#fff;border:1px solid #444}
.btn-gr:hover{background:#3a3a3a;border-color:#4CAF50}
.sc{display:flex;justify-content:center;gap:1rem;background:#2a2a2a;border-radius:10px;padding:0.8rem 1.5rem;flex-wrap:wrap}
.sc-i{text-align:center;min-width:70px}
.sc-l{color:#aaa;font-size:0.75rem;margin-bottom:0.2rem}
.sc-v{color:#fff;font-size:1.5rem;font-weight:bold}
.cr{display:flex;gap:0.5rem;justify-content:center;flex-wrap:wrap}
.st{display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem;background:#2a2a2a;border-radius:10px;padding:0.8rem}
.st-i{text-align:center}
.st-l{color:#aaa;font-size:0.75rem;margin-bottom:0.2rem}
.st-v{color:#fff;font-size:1.1rem;font-weight:bold}
.stg{background:#2a2a2a;border-radius:10px;padding:1rem}
.stg h3{color:#4CAF50;font-size:1rem;margin-bottom:0.8rem;border-left:3px solid #4CAF50;padding-left:0.6rem}
.sr{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem;flex-wrap:wrap}
.sr label{font-size:0.85rem;color:#ccc;min-width:70px}
.sr input[type="range"]{flex:1;min-width:80px}
.sr select{flex:1;padding:0.4rem 0.6rem;background:#333;border:1px solid #444;border-radius:4px;color:#fff;font-size:0.85rem;outline:none}
.sr span{color:#4CAF50;font-weight:bold;min-width:30px}
.cg{display:grid;grid-template-columns:repeat(6,1fr);gap:0.4rem;margin-bottom:0.5rem}
.cb{width:100%;aspect-ratio:1;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all 0.2s}
.cb.active{border-color:#fff;transform:scale(1.1)}
.mc{display:none;margin-top:0.5rem}
.dp{display:grid;grid-template-areas:". u ." "l . r" ". d .";gap:10px;justify-content:center;margin:0 auto}
.db{width:56px;height:56px;border:none;border-radius:50%;background:#333;color:#fff;font-size:22px;cursor:pointer;touch-action:manipulation;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 6px rgba(0,0,0,0.3)}
.db:active{background:#4CAF50;transform:scale(0.93)}
.db.u{grid-area:u}.db.d{grid-area:d}.db.l{grid-area:l}.db.r{grid-area:r}
.hp{background:#2a2a2a;border-radius:10px;padding:0.8rem;font-size:0.85rem;line-height:1.5}
@media(max-width:640px){
.app{padding:0.5rem}.title{font-size:1.4rem}.canvas-wrap{max-width:95vw}.sc-v{font-size:1.2rem}.mc{display:block}.cg{grid-template-columns:repeat(4,1fr)}
}