/* ═══════════════════════════════════════════
   Hưng Phương Math - Frontend Styles v1.0
   ═══════════════════════════════════════════ */
:root {
    --hpm-primary: #0369a1;
    --hpm-primary-light: #e0f2fe;
    --hpm-primary-dark: #075985;
    --hpm-success: #059669;
    --hpm-success-light: #ecfdf5;
    --hpm-warning: #d97706;
    --hpm-warning-light: #fffbeb;
    --hpm-danger: #dc2626;
    --hpm-danger-light: #fef2f2;
    --hpm-purple: #7c3aed;
    --hpm-purple-light: #f5f3ff;
    --hpm-card: #ffffff;
    --hpm-text: #1e293b;
    --hpm-text-2: #475569;
    --hpm-text-light: #94a3b8;
    --hpm-border: #e2e8f0;
    --hpm-border-light: #f1f5f9;
    --hpm-radius: 12px;
    --hpm-radius-sm: 8px;
    --hpm-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --hpm-shadow-md: 0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -2px rgba(0,0,0,0.05);
    --hpm-tr: all 0.25s cubic-bezier(0.4,0,0.2,1);
}

/* ─── App Container ─── */
#hpm-math-app { font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif; max-width:1100px; margin:0 auto; padding:20px 16px; color:var(--hpm-text); line-height:1.6; -webkit-font-smoothing:antialiased; }
#hpm-math-app * { box-sizing:border-box; }

/* ─── Header ─── */
.hpm-header { background:linear-gradient(135deg,var(--hpm-primary),var(--hpm-primary-dark)); border-radius:var(--hpm-radius); padding:24px 28px; margin-bottom:20px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; color:#fff; box-shadow:var(--hpm-shadow-md); }
.hpm-header h2 { margin:0; font-size:24px; font-weight:800; color:#fff; letter-spacing:-0.5px; }
.hpm-header .hpm-subtitle { color:rgba(255,255,255,0.75); font-size:13px; margin-top:2px; }
.hpm-header .hpm-user-info { display:flex; align-items:center; gap:10px; font-size:14px; color:rgba(255,255,255,0.9); }
.hpm-header .hpm-grade-badge { background:rgba(255,255,255,0.2); padding:4px 12px; border-radius:6px; font-weight:700; font-size:13px; }

/* ─── Tabs ─── */
.hpm-tabs { display:flex; gap:3px; margin-bottom:20px; background:var(--hpm-card); border-radius:var(--hpm-radius); padding:4px; border:1px solid var(--hpm-border); box-shadow:var(--hpm-shadow); flex-wrap:wrap; }
.hpm-tab { padding:11px 18px; border-radius:var(--hpm-radius-sm); border:none; cursor:pointer; font-size:13px; font-weight:600; background:transparent; color:var(--hpm-text-2); transition:var(--hpm-tr); flex:1; text-align:center; white-space:nowrap; }
.hpm-tab.active { background:var(--hpm-primary); color:#fff; box-shadow:0 2px 4px rgba(3,105,161,0.3); }
.hpm-tab:hover:not(.active) { background:var(--hpm-border-light); color:var(--hpm-text); }

/* ─── Cards ─── */
.hpm-card { background:var(--hpm-card); border-radius:var(--hpm-radius); padding:24px; margin-bottom:16px; border:1px solid var(--hpm-border); box-shadow:var(--hpm-shadow); }
.hpm-card h3 { margin:0 0 16px; font-size:18px; font-weight:700; display:flex; align-items:center; gap:8px; }
.hpm-card h4 { margin:24px 0 12px; font-size:15px; font-weight:700; color:var(--hpm-text-2); }

/* ─── Grid ─── */
.hpm-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }

/* ─── Stats ─── */
.hpm-stat { text-align:center; padding:20px 16px; border-radius:var(--hpm-radius); background:var(--hpm-card); border:1px solid var(--hpm-border); box-shadow:var(--hpm-shadow); transition:var(--hpm-tr); }
.hpm-stat:hover { transform:translateY(-2px); box-shadow:var(--hpm-shadow-md); }
.hpm-stat-value { font-size:30px; font-weight:800; line-height:1.2; }
.hpm-stat-label { font-size:12px; color:var(--hpm-text-light); margin-top:6px; }
.hpm-stat-primary { border-left:4px solid var(--hpm-primary); }
.hpm-stat-primary .hpm-stat-value { color:var(--hpm-primary); }
.hpm-stat-success { border-left:4px solid var(--hpm-success); }
.hpm-stat-success .hpm-stat-value { color:var(--hpm-success); }
.hpm-stat-warning { border-left:4px solid var(--hpm-warning); }
.hpm-stat-warning .hpm-stat-value { color:var(--hpm-warning); }
.hpm-stat-purple { border-left:4px solid var(--hpm-purple); }
.hpm-stat-purple .hpm-stat-value { color:var(--hpm-purple); }

/* ─── Buttons ─── */
.hpm-btn { padding:10px 24px; border-radius:var(--hpm-radius-sm); border:none; cursor:pointer; font-weight:600; font-size:14px; transition:var(--hpm-tr); display:inline-flex; align-items:center; gap:6px; text-decoration:none; line-height:1.4; }
.hpm-btn:hover { transform:translateY(-1px); box-shadow:var(--hpm-shadow-md); }
.hpm-btn:active { transform:translateY(0); }
.hpm-btn-primary { background:var(--hpm-primary); color:#fff; }
.hpm-btn-primary:hover { background:var(--hpm-primary-dark); color:#fff; }
.hpm-btn-success { background:var(--hpm-success); color:#fff; }
.hpm-btn-ghost { background:var(--hpm-border-light); color:var(--hpm-text-2); }
.hpm-btn-ghost:hover { background:var(--hpm-border); }
.hpm-btn-sm { padding:6px 14px; font-size:12px; }
.hpm-btn-lg { padding:14px 32px; font-size:16px; }
.hpm-btn-block { width:100%; justify-content:center; }
.hpm-btn:disabled { opacity:0.5; cursor:not-allowed; transform:none; }

/* ─── Badge ─── */
.hpm-badge { display:inline-flex; align-items:center; padding:3px 10px; border-radius:6px; font-size:11px; font-weight:700; gap:4px; }
.hpm-badge-primary { background:var(--hpm-primary-light); color:var(--hpm-primary); }
.hpm-badge-success { background:var(--hpm-success-light); color:var(--hpm-success); }
.hpm-badge-warning { background:var(--hpm-warning-light); color:var(--hpm-warning); }
.hpm-badge-danger { background:var(--hpm-danger-light); color:var(--hpm-danger); }

/* ─── Quiz Options ─── */
.hpm-option { padding:14px 18px; border-radius:var(--hpm-radius-sm); border:2px solid var(--hpm-border); cursor:pointer; margin-bottom:8px; display:flex; align-items:center; gap:12px; transition:var(--hpm-tr); font-size:14px; }
.hpm-option:hover { border-color:var(--hpm-primary); background:#f0f9ff; }
.hpm-option.selected { border-color:var(--hpm-primary); background:var(--hpm-primary-light); }
.hpm-option.correct { border-color:var(--hpm-success); background:var(--hpm-success-light); }
.hpm-option.wrong { border-color:var(--hpm-danger); background:var(--hpm-danger-light); }
.hpm-option-radio { width:20px; height:20px; border-radius:50%; border:2px solid var(--hpm-border); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:var(--hpm-tr); }
.hpm-option.selected .hpm-option-radio { border-color:var(--hpm-primary); background:var(--hpm-primary); }
.hpm-option.selected .hpm-option-radio::after { content:''; width:8px; height:8px; border-radius:50%; background:#fff; }

/* ─── Textarea ─── */
.hpm-textarea { width:100%; min-height:150px; padding:16px; border-radius:var(--hpm-radius-sm); border:2px solid var(--hpm-border); font-size:15px; line-height:1.8; resize:vertical; font-family:inherit; color:var(--hpm-text); transition:var(--hpm-tr); }
.hpm-textarea:focus { outline:none; border-color:var(--hpm-primary); box-shadow:0 0 0 3px rgba(3,105,161,0.12); }
.hpm-textarea::placeholder { color:var(--hpm-text-light); }

/* ─── Topic Items ─── */
.hpm-topic-item { padding:16px 20px; border-radius:var(--hpm-radius-sm); border:1px solid var(--hpm-border); margin-bottom:10px; cursor:pointer; transition:var(--hpm-tr); display:flex; justify-content:space-between; align-items:center; }
.hpm-topic-item:hover { border-color:var(--hpm-primary); background:#fafcff; transform:translateX(4px); }
.hpm-topic-title { font-weight:600; font-size:15px; }
.hpm-topic-meta { font-size:12px; color:var(--hpm-text-light); margin-top:4px; }

/* ─── Question Card ─── */
.hpm-question-card { padding:14px 18px; border-radius:var(--hpm-radius-sm); border:1px solid var(--hpm-border); margin-bottom:10px; cursor:pointer; transition:var(--hpm-tr); display:flex; justify-content:space-between; align-items:center; }
.hpm-question-card:hover { border-color:var(--hpm-primary); background:#f0f9ff; box-shadow:var(--hpm-shadow); }
.hpm-question-card.active { border-color:var(--hpm-primary); background:var(--hpm-primary-light); box-shadow:0 0 0 2px rgba(3,105,161,0.15); }

/* ─── Lesson Content ─── */
.hpm-lesson-content { font-size:15px; line-height:1.9; }
.hpm-lesson-content h3 { color:var(--hpm-primary); margin-top:28px; }
.hpm-example { background:var(--hpm-warning-light); border-left:4px solid var(--hpm-warning); padding:16px 20px; border-radius:0 var(--hpm-radius-sm) var(--hpm-radius-sm) 0; margin:16px 0; }
.hpm-formula { background:var(--hpm-primary-light); border:1px solid rgba(3,105,161,0.15); padding:16px 20px; border-radius:var(--hpm-radius-sm); margin:12px 0; text-align:center; font-size:17px; }
.hpm-note { background:var(--hpm-success-light); border-left:4px solid var(--hpm-success); padding:12px 16px; border-radius:0 var(--hpm-radius-sm) var(--hpm-radius-sm) 0; margin:16px 0; font-size:14px; }

/* ─── Activity Feed ─── */
.hpm-activity-item { display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid var(--hpm-border-light); }
.hpm-activity-item:last-child { border-bottom:none; }
.hpm-activity-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }

/* ─── Progress Bar ─── */
.hpm-progress-bar { background:var(--hpm-border-light); border-radius:10px; height:12px; overflow:hidden; }
.hpm-progress-fill { height:100%; border-radius:10px; transition:width 0.8s cubic-bezier(0.4,0,0.2,1); }

/* ─── Result ─── */
.hpm-result-box { padding:24px; border-radius:var(--hpm-radius); text-align:center; animation:hpmFadeIn 0.5s ease; }
.hpm-result-score { font-size:48px; font-weight:900; line-height:1; margin-bottom:8px; }
.hpm-result-success { background:var(--hpm-success-light); border:2px solid rgba(5,150,105,0.2); }
.hpm-result-success .hpm-result-score { color:var(--hpm-success); }
.hpm-result-warning { background:var(--hpm-warning-light); border:2px solid rgba(217,119,6,0.2); }
.hpm-result-warning .hpm-result-score { color:var(--hpm-warning); }
.hpm-feedback-item { padding:10px 14px; margin-top:10px; border-radius:var(--hpm-radius-sm); font-size:13px; text-align:left; line-height:1.5; }
.hpm-feedback-success { background:var(--hpm-success-light); color:#065f46; }
.hpm-feedback-warning { background:var(--hpm-warning-light); color:#92400e; }
.hpm-feedback-info { background:var(--hpm-primary-light); color:var(--hpm-primary-dark); }

/* ─── Loading ─── */
.hpm-loading { text-align:center; padding:40px; color:var(--hpm-text-light); font-size:14px; }
.hpm-loading::before { content:''; display:block; width:32px; height:32px; border:3px solid var(--hpm-border); border-top-color:var(--hpm-primary); border-radius:50%; margin:0 auto 12px; animation:hpmSpin 0.8s linear infinite; }
.hpm-empty { text-align:center; padding:40px 20px; color:var(--hpm-text-light); }
.hpm-empty-icon { font-size:48px; margin-bottom:12px; opacity:0.5; }

/* ─── Utility ─── */
.hpm-hidden { display:none !important; }

/* ─── Animations ─── */
@keyframes hpmSpin { to { transform:rotate(360deg); } }
@keyframes hpmFadeIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.hpm-animate-fade { animation:hpmFadeIn 0.4s ease; }

/* ─── Responsive ─── */
@media (max-width:768px) {
    #hpm-math-app { padding:12px 8px; }
    .hpm-header { flex-direction:column; text-align:center; padding:18px 16px; }
    .hpm-header h2 { font-size:20px; }
    .hpm-grid { grid-template-columns:1fr 1fr; gap:10px; }
    .hpm-card { padding:16px; }
    .hpm-stat-value { font-size:24px; }
    .hpm-tabs { overflow-x:auto; flex-wrap:nowrap; }
    .hpm-tab { font-size:12px; padding:9px 12px; flex:0 0 auto; }
}
@media (max-width:480px) {
    .hpm-grid { grid-template-columns:1fr; }
    .hpm-result-score { font-size:36px; }
}
