   /* Breadcrumb */
    .breadcrumb-bar { background:#0d0d14; border-bottom:1px solid #1e1e2e; padding:10px 20px; font-size:0.8rem; color:#6b7280; }
    .breadcrumb-bar a { color:#7c5ff5; text-decoration:none; }
    .breadcrumb-bar a:hover { text-decoration:underline; }

    /* Page Layout */
    .page-wrap { max-width:1200px; margin:0 auto; padding:32px 16px 60px; display:grid; grid-template-columns:1fr 268px; gap:24px; align-items:start; }
    .page-title { font-size:1.45rem; font-weight:700; color:#fff; margin:0 0 4px; line-height:1.2; }
    .page-subtitle { font-size:0.875rem; color:#6b7280; margin:0 0 20px; }

    /* Dark Card */
    .card-dark { background:#13131f; border:1px solid #1e1e2e; border-radius:12px; padding:22px; margin-bottom:18px; }

    /* Tab strip */
    .tab-strip { display:flex; gap:4px; background:#0d0d14; border:1px solid #1e1e2e; border-radius:10px; padding:4px; margin-bottom:20px; }
    .tab-btn { flex:1; padding:8px 0; font-size:0.82rem; font-weight:600; color:#6b7280; background:none; border:none; border-radius:7px; cursor:pointer; transition:all .15s; }
    .tab-btn.active { background:#7c5ff5; color:#fff; box-shadow:0 2px 8px rgba(124,95,245,.35); }
    .tab-btn:not(.active):hover { color:#e2e4ec; background:#1c1c2c; }

    /* Tab panels */
    .tab-panel { display:none; }
    .tab-panel.active { display:block; }

    /* Section label */
    .section-label { font-size:0.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.07em; margin:0 0 12px; }

    /* Grade rows */
    .grade-table-head { display:grid; gap:8px; margin-bottom:6px; }
    .grade-table-head.weighted-head { grid-template-columns:2fr 1fr 1fr 32px; }
    .grade-table-head.points-head { grid-template-columns:2fr 1fr 1fr 32px; }
    .grade-col-label { font-size:0.68rem; font-weight:700; color:#4b5563; text-transform:uppercase; letter-spacing:.06em; }

    .grade-rows { display:flex; flex-direction:column; gap:6px; }
    .grade-row { display:grid; gap:8px; align-items:center; }
    .grade-row.weighted-row { grid-template-columns:2fr 1fr 1fr 32px; }
    .grade-row.points-row   { grid-template-columns:2fr 1fr 1fr 32px; }

    .g-input { padding:9px 11px; font-size:0.85rem; font-family:'Inter',sans-serif; color:#e2e4ec; background:#0d0d14; border:1px solid #2a2a40; border-radius:8px; outline:none; width:100%; transition:border-color .15s,box-shadow .15s; }
    .g-input:focus { border-color:#7c5ff5; box-shadow:0 0 0 3px rgba(124,95,245,.15); }
    .g-input::placeholder { color:#4b5563; }

    .g-input-group { display:flex; align-items:center; background:#0d0d14; border:1px solid #2a2a40; border-radius:8px; overflow:hidden; transition:border-color .15s,box-shadow .15s; }
    .g-input-group:focus-within { border-color:#7c5ff5; box-shadow:0 0 0 3px rgba(124,95,245,.15); }
    .g-input-group input { flex:1; padding:9px 8px; font-size:0.85rem; font-family:'Inter',sans-serif; color:#e2e4ec; background:transparent; border:none; outline:none; min-width:0; }
    .g-input-group span { padding:9px 9px; font-size:0.78rem; font-weight:600; color:#4b5563; flex-shrink:0; }

    .del-btn { width:32px; height:36px; background:none; border:1px solid #2a2a40; border-radius:7px; color:#4b5563; font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:border-color .14s,color .14s,background .14s; flex-shrink:0; line-height:1; }
    .del-btn:hover { border-color:#ef4444; color:#ef4444; background:rgba(239,68,68,.08); }

    .add-row-btn { background:none; border:1px dashed #2a2a40; border-radius:8px; color:#6b7280; font-size:0.82rem; font-weight:600; padding:9px 14px; cursor:pointer; width:100%; margin-top:8px; transition:border-color .14s,color .14s; display:flex; align-items:center; justify-content:center; gap:6px; }
    .add-row-btn:hover { border-color:#7c5ff5; color:#7c5ff5; }

    .section-divider { border:none; border-top:1px solid #1e1e2e; margin:18px 0; }

    /* Weight warning */
    .weight-warning { font-size:0.75rem; color:#fb923c; margin-top:8px; display:none; }
    .weight-warning.visible { display:block; }

    /* Results */
    .result-card { background:linear-gradient(135deg,rgba(124,95,245,.12),rgba(236,72,153,.08)); border:1px solid rgba(124,95,245,.25); border-radius:12px; padding:20px 22px; margin-bottom:16px; }
    .result-main-label { font-size:0.72rem; color:#9ca3af; text-transform:uppercase; letter-spacing:.07em; margin-bottom:4px; }
    .result-main-val { font-size:2.4rem; font-weight:700; color:#fff; letter-spacing:-1px; line-height:1; }
    .result-letter { display:inline-block; font-size:1rem; font-weight:700; margin-left:10px; padding:3px 12px; border-radius:6px; vertical-align:middle; }
    .result-sub { font-size:0.78rem; color:#6b7280; margin-top:5px; }

    .result-boxes { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
    .result-box { background:#0d0d14; border:1px solid #1e1e2e; border-radius:10px; padding:12px 14px; }
    .result-box-label { font-size:0.68rem; color:#6b7280; text-transform:uppercase; letter-spacing:.05em; margin-bottom:4px; }
    .result-box-val { font-size:1rem; font-weight:700; color:#fff; }

    .progress-wrap { margin-bottom:16px; }
    .progress-label-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
    .progress-label { font-size:0.75rem; color:#9ca3af; font-weight:600; }
    .progress-pct { font-size:0.75rem; color:#6b7280; }
    .progress-bar-bg { height:6px; background:#1e1e2e; border-radius:3px; overflow:hidden; }
    .progress-bar-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,#7c5ff5,#ec4899); transition:width .4s ease; }

    .calc-btn { width:100%; padding:13px; font-size:0.95rem; font-weight:700; color:#fff; background:linear-gradient(135deg,#7c5ff5,#ec4899); border:none; border-radius:10px; cursor:pointer; transition:opacity .15s; margin-top:4px; }
    .calc-btn:hover { opacity:.9; }

    /* Final exam section inputs */
    .final-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
    .form-label-dark { font-size:0.78rem; font-weight:600; color:#9ca3af; text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; display:block; }
    .input-group-dark { display:flex; align-items:center; background:#0d0d14; border:1px solid #2a2a40; border-radius:8px; overflow:hidden; transition:border-color .15s,box-shadow .15s; }
    .input-group-dark:focus-within { border-color:#7c5ff5; box-shadow:0 0 0 3px rgba(124,95,245,.15); }
    .input-suffix { padding:9px 11px; font-size:0.875rem; font-weight:600; color:#6b7280; background:#13131f; border:none; flex-shrink:0; }
    .form-input-dark { flex:1; padding:9px 11px; font-size:0.875rem; font-family:'Inter',sans-serif; color:#e2e4ec; background:transparent; border:none; outline:none; min-width:0; }

    /* Needed score highlight */
    .needed-score-card { background:#13131f; border:1px solid #1e1e2e; border-radius:10px; padding:16px 18px; margin-bottom:10px; display:flex; align-items:center; gap:14px; }
    .needed-score-icon { width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
    .needed-score-label { font-size:0.75rem; color:#6b7280; margin-bottom:2px; }
    .needed-score-val { font-size:1.35rem; font-weight:700; color:#fff; }

    /* Letter grade scale */
    .scale-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
    .scale-chip { font-size:0.72rem; font-weight:700; padding:4px 10px; border-radius:20px; }

    /* Sidebar */
    .sidebar-card { background:#13131f; border:1px solid #1e1e2e; border-radius:12px; padding:18px; margin-bottom:14px; }
    .sidebar-title { font-size:0.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; }
    .related-item { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid #1e1e2e; text-decoration:none; cursor:pointer; }
    .related-item:last-child { border-bottom:none; padding-bottom:0; }
    .related-icon { width:34px; height:34px; border-radius:8px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:15px; }
    .related-name { font-size:0.82rem; font-weight:600; color:#e2e4ec; line-height:1.2; }
    .related-desc { font-size:0.72rem; color:#6b7280; margin-top:1px; }
    .tip-row { display:flex; gap:8px; margin-bottom:8px; align-items:flex-start; }
    .tip-dot { width:6px; height:6px; border-radius:50%; background:#7c5ff5; flex-shrink:0; margin-top:5px; }
    .tip-text { font-size:0.8rem; color:#6b7280; line-height:1.55; }
    .tip-text strong { color:#9ca3af; }

    /* Share Bar */
    .share-bar { max-width:1200px; margin:0 auto; padding:0 16px 48px; }
    .share-inner { background:#13131f; border:1px solid #1e1e2e; border-radius:12px; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
    .share-text-wrap { display:flex; flex-direction:column; gap:2px; }
    .share-heading { font-size:0.88rem; font-weight:700; color:#e2e4ec; }
    .share-sub { font-size:0.76rem; color:#6b7280; }
    .share-btns { display:flex; gap:8px; flex-wrap:wrap; }
    .share-btn { display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:8px; font-size:0.82rem; font-weight:700; text-decoration:none; border:none; cursor:pointer; transition:opacity .15s, transform .12s; white-space:nowrap; }
    .share-btn:hover { opacity:.88; transform:translateY(-1px); }
    .share-btn-tw  { background:#000; color:#fff; }
    .share-btn-fb  { background:#1877f2; color:#fff; }
    .share-btn-wa  { background:#25d366; color:#fff; }
    .share-btn svg { width:15px; height:15px; fill:currentColor; flex-shrink:0; }

    /* Footer */
    .site-footer { text-align:center; padding:24px 16px; font-size:0.8rem; color:#4b5563; border-top:1px solid #1e1e2e; background:#0d0d14; }
    .footer-links { display:flex; justify-content:center; gap:20px; margin-top:8px; flex-wrap:wrap; }
    .footer-links a { color:#4b5563; text-decoration:none; font-size:0.78rem; transition:color .14s; }
    .footer-links a:hover { color:#9ca3af; }

    /* ── Blog / FAQ ── */
    .blog-section { max-width:1200px; margin:0 auto; padding:0 16px 72px; }
    .blog-section-header { display:flex; align-items:center; gap:12px; margin-bottom:28px; }
    .blog-section-badge { font-size:0.68rem; font-weight:700; color:#7c5ff5; text-transform:uppercase; letter-spacing:.1em; background:rgba(124,95,245,.1); border:1px solid rgba(124,95,245,.22); border-radius:20px; padding:4px 12px; }
    .blog-section-title { font-size:1.2rem; font-weight:700; color:#fff; margin:0; }
    .blog-intro { background:#13131f; border:1px solid #1e1e2e; border-radius:12px; padding:22px 24px; margin-bottom:24px; font-size:0.9rem; color:#9ca3af; line-height:1.75; }
    .blog-intro strong { color:#e2e4ec; }
    .blog-intro p { margin:0 0 12px; }
    .blog-intro p:last-child { margin-bottom:0; }
    .blog-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px; }
    .blog-card { background:#13131f; border:1px solid #1e1e2e; border-radius:12px; padding:20px 22px; }
    .blog-card-icon { width:36px; height:36px; border-radius:9px; background:rgba(124,95,245,.13); border:1px solid rgba(124,95,245,.2); display:flex; align-items:center; justify-content:center; font-size:17px; margin-bottom:13px; }
    .blog-card h3 { font-size:0.92rem; font-weight:700; color:#fff; margin:0 0 8px; }
    .blog-card p { font-size:0.82rem; color:#6b7280; line-height:1.7; margin:0; }
    .blog-card ul { font-size:0.82rem; color:#6b7280; line-height:1.7; margin:8px 0 0; padding-left:18px; }
    .blog-card ul li { margin-bottom:4px; }
    .blog-card ul li strong { color:#9ca3af; }
    .faq-section-label { font-size:0.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.08em; margin:0 0 14px; }
    .faq-item { border:1px solid #1e1e2e; border-radius:10px; margin-bottom:8px; overflow:hidden; background:#13131f; transition:border-color .18s; }
    .faq-item.open { border-color:rgba(124,95,245,.3); }
    .faq-q { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; cursor:pointer; user-select:none; }
    .faq-q-text { font-size:0.88rem; font-weight:600; color:#e2e4ec; line-height:1.4; }
    .faq-icon { flex-shrink:0; width:22px; height:22px; border-radius:6px; background:rgba(124,95,245,.1); border:1px solid rgba(124,95,245,.2); display:flex; align-items:center; justify-content:center; transition:background .18s; }
    .faq-icon svg { width:10px; height:10px; stroke:#7c5ff5; stroke-width:2.5; fill:none; transition:transform .22s; }
    .faq-item.open .faq-icon { background:rgba(124,95,245,.2); }
    .faq-item.open .faq-icon svg { transform:rotate(180deg); }
    .faq-a { max-height:0; overflow:hidden; transition:max-height .28s ease; }
    .faq-a-inner { padding:0 18px 15px; font-size:0.84rem; color:#6b7280; line-height:1.75; border-top:1px solid #1e1e2e; padding-top:13px; }
    .faq-item.open .faq-a { max-height:500px; }
    .faq-a-inner strong { color:#9ca3af; }

    .hidden { display:none !important; }

    @media (max-width:900px) {
      .page-wrap { grid-template-columns:1fr; }
      .sidebar { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
      .sidebar-card { margin-bottom:0; }
      .blog-grid { grid-template-columns:1fr; }
    }
    @media (max-width:700px) {
      .nav-links { display:none; }
      .hamburger { display:flex; }
      .page-wrap { padding:20px 14px 48px; }
      .page-title { font-size:1.25rem; }
      .blog-section { padding:0 14px 56px; }
      .final-row { grid-template-columns:1fr; }
      .result-boxes { grid-template-columns:1fr; }
    }
    @media (max-width:580px) {
      .sidebar { grid-template-columns:1fr; }
      .grade-table-head.weighted-head,
      .grade-row.weighted-row,
      .grade-table-head.points-head,
      .grade-row.points-row { grid-template-columns:1.6fr 1fr 1fr 32px; }
    }
    @media (max-width:400px) {
      .card-dark { padding:16px; }
      .grade-table-head.weighted-head,
      .grade-row.weighted-row,
      .grade-table-head.points-head,
      .grade-row.points-row { grid-template-columns:1fr 1fr 32px; }
      .grade-col-label:first-child,
      .grade-row > .g-input:first-child { display:none; }
    }