/* Subject Page Styles — shared across all subject HTML pages */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --primary:#1e3a5f;--secondary:#7c3aed;--accent:#f59e0b;
  --success:#16a34a;--warning:#ea580c;--danger:#dc2626;
  --light:#f8fafc;--dark:#0f172a;--border:#e2e8f0;
  --shadow:0 4px 6px rgba(0,0,0,.07);--shadow-lg:0 10px 25px rgba(0,0,0,.12);
}
body{font-family:'Segoe UI',system-ui,sans-serif;color:#1e293b;background:var(--light)}

/* Top bar */
.top-bar{background:var(--dark);color:#cbd5e1;padding:.6rem 2rem;display:flex;align-items:center;gap:1rem;font-size:.85rem}
.top-bar a{color:var(--accent);text-decoration:none;font-weight:600}
.top-bar a:hover{text-decoration:underline}

/* Header */
.header{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;padding:2.5rem 2rem;text-align:center}
.header h1{font-size:2rem;margin-bottom:.4rem;position:relative}
.version-badge{display:inline-block;background:rgba(255,255,255,0.25);color:#fff;padding:.4rem .8rem;border-radius:20px;font-size:.75rem;font-weight:600;margin-left:.75rem;border:1px solid rgba(255,255,255,0.4);backdrop-filter:blur(10px)}
.header .subtitle{opacity:.9;font-size:1rem}

/* Nav */
.nav-tabs{display:flex;gap:.5rem;padding:.75rem 1.5rem;background:#fff;border-bottom:2px solid var(--border);overflow-x:auto;flex-wrap:nowrap}
.nav-btn{padding:.6rem 1.2rem;border:none;background:transparent;color:#475569;font-size:.9rem;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;transition:all .2s}
.nav-btn:hover{color:var(--primary);border-bottom-color:var(--primary)}
.nav-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}

/* Main */
.main-content{max-width:1100px;margin:0 auto;padding:2rem;flex:1}
.tab-content{display:none;animation:fadeIn .25s ease}
.tab-content.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* Dashboard */
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem;margin-bottom:2rem}
.stat-card{background:#fff;padding:1.5rem;border-radius:12px;text-align:center;box-shadow:var(--shadow);transition:transform .2s}
.stat-card:hover{transform:translateY(-4px)}
.stat-card h3{font-size:1.8rem;color:var(--primary);margin-bottom:.3rem}
.stat-card p{color:#64748b;font-size:.85rem}

/* Progress */
.progress-section,.tips-section{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:var(--shadow);margin-bottom:1.5rem}
.progress-section h3,.tips-section h3{margin-bottom:1rem;color:var(--dark)}
.difficulty-progress{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}
.difficulty-progress label{min-width:55px;font-weight:500;font-size:.85rem}
.progress-bar{flex:1;height:20px;background:var(--border);border-radius:10px;overflow:hidden}
.progress-fill{height:100%;border-radius:10px;transition:width .3s}
.progress-fill.easy{background:var(--success)}.progress-fill.medium{background:var(--warning)}.progress-fill.hard{background:var(--danger)}
.difficulty-progress span{min-width:40px;text-align:right;font-weight:600;color:var(--primary);font-size:.85rem}
.tips-list{list-style:none}.tips-list li{padding:.5rem 0 .5rem 1.8rem;position:relative;color:#475569;font-size:.9rem}
.tips-list li:before{content:"✓";position:absolute;left:0;color:var(--success);font-weight:700}

/* Questions */
.questions-header{margin-bottom:1.5rem}
.filter-group{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}
.filter-select,.search-input{padding:.6rem .9rem;border:2px solid var(--border);border-radius:8px;font-size:.9rem;transition:border-color .2s}
.filter-select:focus,.search-input:focus{outline:none;border-color:var(--primary)}
.search-input{flex:1;min-width:180px}
.questions-container{display:grid;gap:1.25rem}
.question-card{background:#fff;padding:1.25rem;border-radius:12px;box-shadow:var(--shadow);cursor:pointer;border-left:5px solid var(--border);transition:all .2s}
.question-card:hover{transform:translateX(4px);border-left-color:var(--primary);box-shadow:var(--shadow-lg)}
.question-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:.75rem}
.question-id{font-size:.8rem;color:#94a3b8;background:var(--light);padding:.2rem .6rem;border-radius:16px}
.difficulty-badge{padding:.3rem .7rem;border-radius:16px;font-size:.8rem;font-weight:600;color:#fff}
.difficulty-badge.easy{background:var(--success)}.difficulty-badge.medium{background:var(--warning)}.difficulty-badge.hard{background:var(--danger)}
.question-text{font-size:1rem;margin-bottom:.75rem;color:var(--dark)}
.question-meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.82rem;color:#94a3b8}
.topic-tag{background:var(--light);padding:.2rem .6rem;border-radius:4px;color:var(--primary)}
.exam-year{color:var(--secondary)}

/* Topics */
.topics-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}
.topic-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:var(--shadow);transition:all .2s}
.topic-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.topic-card h3{color:var(--primary);margin-bottom:.4rem;font-size:1.1rem}
.importance-level{display:inline-block;padding:.25rem .6rem;border-radius:16px;font-size:.75rem;font-weight:600;color:#fff;margin-bottom:.75rem}
.importance-level.high{background:var(--danger)}.importance-level.medium{background:var(--warning)}.importance-level.low{background:var(--success)}
.topic-description{margin:.75rem 0;color:#475569;line-height:1.6;font-size:.9rem}
.subtopics-list{list-style:none;padding:0}.subtopics-list li{padding:.3rem 0 .3rem 1.2rem;position:relative;color:#64748b;font-size:.85rem}
.subtopics-list li:before{content:"•";position:absolute;left:0;color:var(--primary)}

/* Objectives */
.objectives-container{display:grid;gap:.75rem}
.objective-item{background:#fff;padding:.9rem;border-radius:8px;border-left:4px solid var(--primary);box-shadow:var(--shadow);display:flex;align-items:start;gap:.75rem}
.objective-number{background:var(--primary);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;font-size:.85rem}
.objective-text{flex:1;color:var(--dark);font-size:.9rem}

/* FAQ */
.faq-subtitle{color:#64748b;font-size:.9rem;margin-bottom:1.5rem}
.faq-container{display:grid;gap:1.5rem}
.faq-item{background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.faq-question-header{padding:1.25rem;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:start;transition:padding .2s}
.faq-question-header:hover{padding:1.4rem 1.25rem}
.faq-question-text{font-size:.95rem;font-weight:600;flex:1;margin-right:.75rem}
.faq-marks{background:rgba(255,255,255,.25);padding:.25rem .7rem;border-radius:16px;font-size:.8rem;font-weight:600;white-space:nowrap}
.faq-toggle{font-size:1.3rem;transition:transform .3s}.faq-toggle.open{transform:rotate(180deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-answer.open{max-height:4000px}
.faq-answer-content{padding:1.5rem;color:var(--dark)}
.faq-answer-intro{margin-bottom:1.25rem;line-height:1.7;color:#475569}

/* Accounting Tables */
.accounting-table{width:100%;border-collapse:collapse;margin:.75rem 0;font-family:'Courier New',monospace;font-size:.85rem;background:var(--light);border:2px solid var(--border)}
.accounting-table th{background:var(--primary);color:#fff;padding:.6rem;text-align:right;font-weight:600;border:1px solid var(--primary)}
.accounting-table td{padding:.6rem;border:1px solid var(--border)}
.accounting-table td:first-child{text-align:left;font-weight:500;background:#f1f5f9;width:50%}
.accounting-table td:nth-child(2),.accounting-table td:nth-child(3),.accounting-table td:nth-child(4){text-align:right}
.accounting-table .total-row{background:#e2e8f0;font-weight:600;border-top:2px solid var(--dark);border-bottom:3px double var(--dark)}
.accounting-table .subtotal-row{background:#f8fafc;border-top:1px solid var(--border)}
.statement-header{text-align:center;margin:1.25rem 0 .75rem;padding-bottom:.75rem;border-bottom:2px solid var(--dark)}
.statement-header h3{color:var(--dark);margin:0 0 .2rem;font-size:1.05rem}
.statement-header p{color:#64748b;margin:0;font-size:.85rem}
.faq-key-points{background:#eff6ff;border-left:4px solid var(--primary);padding:.9rem;margin:1.25rem 0;border-radius:4px}
.faq-key-points h4{color:var(--primary);margin:0 0 .6rem;font-size:.9rem}
.faq-key-points ul{list-style:none;padding:0;margin:0}
.faq-key-points li{padding:.3rem 0 .3rem 1.3rem;color:#475569;position:relative;font-size:.85rem}
.faq-key-points li:before{content:"▶";position:absolute;left:0;color:var(--primary);font-size:.65rem}
.formula-box{background:#fef3c7;border:2px solid #f59e0b;border-radius:8px;padding:.9rem;margin:.75rem 0;font-family:'Courier New',monospace}
.formula-box h4{color:#d97706;margin:0 0 .4rem;font-size:.85rem}
.formula-box pre{margin:0;color:#78350f;white-space:pre-wrap;word-wrap:break-word;font-size:.85rem}
.journal-entry{background:#fff;border:1px solid var(--border);padding:.9rem;margin:.75rem 0;border-radius:6px;font-family:'Courier New',monospace;font-size:.85rem}
.journal-entry .entry-date{margin-bottom:.4rem;font-weight:600;color:var(--primary)}
.journal-entry .account-line{display:flex;padding:.2rem 0}
.journal-entry .account-name{flex:1}
.journal-entry .account-name.credit{margin-left:2rem}
.journal-entry .amount{width:100px;text-align:right}
.journal-entry .narration{margin-top:.4rem;font-style:italic;color:#64748b;padding-left:.75rem}

/* Modal */
.modal{display:none;position:fixed;z-index:1000;inset:0;background:rgba(0,0,0,.5);animation:fadeIn .2s}
.modal.show{display:flex;align-items:center;justify-content:center}
.modal-content{background:#fff;padding:1.75rem;border-radius:12px;width:90%;max-width:680px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg)}
.close{float:right;font-size:1.8rem;font-weight:700;color:#94a3b8;cursor:pointer;transition:color .2s}.close:hover{color:var(--danger)}
.modal-body h2{color:var(--primary);margin-bottom:.75rem}
.modal-body .answer-section{margin-top:1.25rem;padding-top:1.25rem;border-top:2px solid var(--border)}
.modal-body .answer-section h3{color:var(--success);margin-bottom:.4rem}
.modal-body .explanation-section{margin-top:.75rem;padding:.9rem;background:var(--light);border-radius:8px}
.keyword-tag{background:var(--primary);color:#fff;padding:.2rem .6rem;border-radius:16px;font-size:.8rem;display:inline-block;margin:.2rem}
.empty-state{text-align:center;padding:2.5rem;color:#94a3b8}

/* Footer */
.footer{background:var(--dark);color:#cbd5e1;text-align:center;padding:2rem}

@media(max-width:768px){
  .header h1{font-size:1.5rem}
  .nav-tabs{padding:.5rem .75rem;gap:.3rem}
  .nav-btn{padding:.4rem .8rem;font-size:.82rem}
  .dashboard-grid{grid-template-columns:repeat(2,1fr)}
  .main-content{padding:1rem}
  .topics-container{grid-template-columns:1fr}
}

/* Questions by Marks */
#questions-by-marks-container { display: flex; flex-direction: column; gap: 1.5rem; }
.mark-tab-buttons { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.mark-tab-btn {
  padding: .6rem 1.2rem; border: 2px solid var(--border); background: #fff;
  color: var(--dark); border-radius: 8px; cursor: pointer; font-weight: 500;
  transition: all .2s; font-size: .9rem;
}
.mark-tab-btn:hover { border-color: var(--primary); color: var(--primary); }
.mark-tab-btn.active {
  background: var(--primary); color: #fff; border-color: var(--primary);
  box-shadow: 0 4px 12px rgba(30, 58, 95, 0.15);
}
.mark-tab-content-wrapper { display: flex; flex-direction: column; }
.mark-tab-content { display: none; }
.mark-tab-content.active { display: block; animation: fadeIn .25s ease; }
.questions-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1.25rem; }
.questions-grid.marks-2 { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.questions-grid.marks-5 { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.questions-grid.marks-10 { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); }

.question-card {
  background: #fff; border-radius: 12px; box-shadow: var(--shadow);
  padding: 1.25rem; border-left: 5px solid var(--border);
  transition: all .2s; cursor: pointer;
}
.question-card:hover {
  transform: translateX(4px); border-left-color: var(--primary);
  box-shadow: var(--shadow-lg);
}
.question-card.marks-2 { border-left-color: #10b981; }
.question-card.marks-5 { border-left-color: #f59e0b; }
.question-card.marks-10 { border-left-color: #ef4444; }

.question-header {
  display: flex; justify-content: space-between; align-items: start;
  margin-bottom: .75rem; gap: 1rem; flex-wrap: wrap;
}
.question-title {
  color: var(--dark); font-size: 1rem; margin: 0;
  line-height: 1.4; flex: 1;
}
.question-meta {
  display: flex; gap: .75rem; align-items: center;
  flex-wrap: wrap; white-space: nowrap;
}
.marks-badge {
  display: inline-block; padding: .35rem .7rem;
  background: #f3f4f6; color: var(--dark);
  border-radius: 16px; font-size: .8rem; font-weight: 600;
}
.prediction-score {
  display: inline-block; padding: .35rem .7rem;
  background: #eff6ff; color: var(--primary);
  border-radius: 16px; font-size: .8rem; font-weight: 600;
}
.question-details {
  margin-bottom: 1rem; display: flex; flex-direction: column; gap: .75rem;
  font-size: .9rem;
}
.topic { color: #475569; padding: .5rem; background: #f8fafc; border-radius: 6px; }
.topic strong { color: var(--primary); display: inline-block; min-width: 50px; }
.source {
  color: #64748b; padding: .5rem; background: #fef3c7;
  border-radius: 6px; border-left: 3px solid var(--accent);
}
.source strong { color: #d97706; }
.book-reference {
  padding: .75rem; background: #f0fdf4; border-left: 4px solid #10b981;
  border-radius: 6px; color: #166534;
}
.book-reference strong { color: #059669; }
.key-concepts {
  display: flex; flex-wrap: wrap; gap: .5rem;
  padding-top: .5rem; border-top: 1px solid #e5e7eb;
}
.concept-tag {
  display: inline-block; padding: .3rem .6rem;
  background: var(--light); color: var(--primary);
  border-radius: 16px; font-size: .8rem;
  border: 1px solid #e2e8f0;
}
.question-answer-section {
  margin-top: 1rem; padding-top: 1rem;
  border-top: 2px solid #f0f1f3;
}
.answer-toggle {
  display: block; width: 100%; padding: .7rem;
  background: var(--light); border: 1px solid var(--border);
  border-radius: 8px; color: var(--primary);
  cursor: pointer; font-weight: 600; font-size: .9rem;
  transition: all .2s;
}
.answer-toggle:hover {
  background: var(--primary); color: #fff; border-color: var(--primary);
}
.answer-content {
  margin-top: 1rem; padding: 1rem;
  background: #fffbeb; border-left: 4px solid #f59e0b;
  border-radius: 6px;
}
.answer-text {
  color: #78350f; font-size: .95rem; line-height: 1.6;
  white-space: pre-wrap; word-wrap: break-word; margin-bottom: 1rem;
}
.answer-source-label {
  display: inline-block; padding: .4rem .8rem;
  border-radius: 6px; font-size: .8rem; font-weight: 600;
  margin-bottom: 1rem; margin-right: 1rem;
}
.answer-source-label.ai-generated {
  background: #e0f2fe; color: #075985; border: 1px solid #7dd3fc;
}
.answer-source-label.book-reference {
  background: #f0fdf4; color: #166534; border: 1px solid #86efac;
}
.answer-references {
  margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #fcd34d;
}
.answer-references strong {
  color: #78350f; display: block; margin-bottom: .5rem; font-size: .85rem;
}
.answer-references ul {
  list-style: none; padding: 0;
}
.answer-references li {
  padding: .4rem 0; font-size: .85rem; color: #78350f;
  line-height: 1.5;
}
.answer-references a {
  display: inline-block; margin-left: .4rem; color: #d97706;
  text-decoration: none; font-weight: 500;
}
.answer-references a:hover {
  text-decoration: underline;
}
.no-data {
  text-align: center; padding: 2rem;
  color: #94a3b8; font-style: italic;
}

@media (max-width: 768px) {
  .questions-grid { grid-template-columns: 1fr; }
  .question-header { flex-direction: column; }
  .question-meta { width: 100%; }
  .mark-tab-buttons { gap: .35rem; }
  .mark-tab-btn { padding: .5rem .9rem; font-size: .85rem; }
}

.predictions-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}
.predictions-subtitle,.importance-subtitle{color:#64748b;font-size:.95rem;margin-bottom:1.5rem;margin-top:-.5rem}
.prediction-card{background:#fff;border-left:5px solid var(--secondary);padding:1.5rem;border-radius:8px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.prediction-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.prediction-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:.75rem}
.prediction-header h4{color:var(--primary);font-size:1rem;margin:0}
.prediction-score{padding:.25rem .6rem;border-radius:20px;font-size:.75rem;font-weight:700}
.prediction-score.high{background:#dcfce7;color:#166534}
.prediction-score.medium{background:#fed7aa;color:#92400e}
.prediction-score.low{background:#fee2e2;color:#991b1b}
.prediction-text{color:#475569;font-size:.9rem;margin-bottom:.75rem;line-height:1.5}
.prediction-meta{display:flex;gap:.75rem;flex-wrap:wrap}
.prediction-meta span{font-size:.75rem;padding:.4rem .6rem;background:var(--light);border-radius:6px;color:#64748b}
.source-reference{margin-top:1rem;padding:.75rem;background:var(--light);border-left:3px solid var(--accent);border-radius:6px;font-size:.85rem;color:#475569;line-height:1.5}
.source-reference strong{color:var(--dark)}

/* Topics by Importance */
.importance-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}
.importance-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:var(--shadow);transition:transform .2s}
.importance-card:hover{transform:translateY(-3px)}
.importance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.importance-header h4{color:var(--primary);margin:0;font-size:1rem}
.importance-badge{padding:.4rem .8rem;border-radius:6px;font-size:.8rem;font-weight:700}
.importance-badge.high{background:#dcfce7;color:#166534}
.importance-badge.medium{background:#fed7aa;color:#92400e}
.importance-badge.low{background:#fee2e2;color:#991b1b}
.importance-bar{width:100%;height:8px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:.75rem}
.importance-fill{height:100%;background:linear-gradient(90deg,var(--secondary),var(--accent));border-radius:4px;transition:width .3s}
.importance-description{color:#475569;font-size:.9rem;margin-bottom:.75rem;line-height:1.5}

/* Subtopics */
.subtopics-list{list-style:none;margin-top:.75rem;padding-left:0}
.subtopics-list li{padding:.4rem 0 .4rem 1.5rem;position:relative;color:#64748b;font-size:.85rem}
.subtopics-list li:before{content:"→";position:absolute;left:.2rem;color:var(--secondary)}

/* Empty state */
.empty-state{text-align:center;padding:2rem;color:#94a3b8;font-style:italic}

@media(max-width:768px){
  .predictions-container{grid-template-columns:1fr}
  .importance-container{grid-template-columns:1fr}
}
@media(max-width:480px){
  .header{padding:1.5rem 1rem}
  .dashboard-grid{grid-template-columns:1fr}
  .filter-group{flex-direction:column}
}
