:root{--bg-color: #0d0d0d;--surface-color: #1a1a1a;--surface-alt: #2a2a2a;--accent-color: #7c4dff;--accent-hover: #9e79ff;--text-primary: #ffffff;--text-secondary: #b0b0b0;--success-color: #00e676;--danger-color: #ff1744;--grid-border: #333;--glass: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-color);color:var(--text-primary);line-height:1.5;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-weight:700}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s ease}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:16px;padding:1.5rem}.btn-primary{background:var(--accent-color);color:#fff;padding:.8rem 1.5rem;border-radius:12px;font-weight:600;box-shadow:0 4px 15px #7c4dff4d}.btn-primary:active{transform:scale(.98);background:var(--accent-hover)}input{background:var(--surface-alt);border:1px solid var(--glass-border);color:#fff;padding:.8rem;border-radius:10px;font-size:1rem}.app-container{max-width:600px;margin:0 auto;padding:1rem;padding-bottom:80px;display:flex;flex-direction:column;gap:1.5rem}.header{display:flex;flex-direction:column;gap:1rem;padding:.5rem 0}.stats-header{display:flex;gap:10px}.stats-mini{background:var(--surface-color);padding:.5rem 1rem;border-radius:12px;display:flex;flex-direction:column;flex:1}.stats-mini .label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.stats-mini .value{font-size:1.2rem;font-weight:700;color:var(--accent-color)}.cpr-stat.good .value{color:var(--success-color)}.visual-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:1rem}.grid-cell{aspect-ratio:1;background:var(--surface-color);border:1px solid var(--grid-border);border-radius:8px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:all .2s ease}.grid-cell.filled{border-color:var(--accent-color)}.grid-cell .count{z-index:2;font-size:.8rem;font-weight:700}.grid-cell .progress-bar{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(to top,var(--accent-color),var(--accent-hover));opacity:.3;transition:height .3s ease}.grid-cell:active{transform:scale(.95);background:var(--surface-alt)}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:70px;background:var(--surface-color);border-top:1px solid var(--glass-border);display:flex;justify-content:space-around;align-items:center;z-index:100}.tab-bar button{background:none;color:var(--text-secondary);font-weight:600;font-size:.9rem;flex:1;height:100%}.tab-bar button.active{color:var(--accent-color);border-bottom:3px solid var(--accent-color)}.repair-form{display:flex;flex-direction:column;gap:1.5rem}.cpr-preview{padding:1rem;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface-alt);border-left:4px solid var(--danger-color)}.cpr-preview.good{border-left-color:var(--success-color)}.cpr-label{font-size:.8rem;color:var(--text-secondary)}.cpr-value{font-size:2rem;font-weight:800}.cpr-hint{font-size:.75rem;font-weight:600}.cpr-preview.good .cpr-value,.cpr-preview.good .cpr-hint{color:var(--success-color)}.cpr-preview.bad .cpr-value,.cpr-preview.bad .cpr-hint{color:var(--danger-color)}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.9rem;color:var(--text-secondary)}.log-list{display:flex;flex-direction:column;gap:10px;margin-bottom:2rem}.log-item{background:var(--surface-color);padding:1rem;border-radius:12px;display:flex;flex-direction:column;gap:4px}.log-item .time{font-size:.75rem;color:var(--text-secondary)}.log-item .msg{font-weight:500}.btn-danger-outline{background:transparent;color:var(--danger-color);border:1px solid var(--danger-color);padding:.8rem;border-radius:12px;width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeIn .3s ease forwards}h2{font-size:1.5rem;margin-bottom:.5rem}.hint{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}
