:root{--bg:#FAF8F6;--surface:#FFFFFF;--surface-alt:#F5EBE6;--ink:#3D2A20;--ink-muted:#6B5345;--border:#E8D8CF;--accent:#C24C00;--accent-ink:#FFFFFF;--accent-soft:#FDE8DD;--danger:#C9443B;--danger-soft:#FCE9E8;--font-display:"Mali",cursive;--font-body:"Mali",cursive;--font-mono:"Mali",cursive;--radius-sm:8px;--radius-md:12px;--shadow-card:0 4px 16px rgba(194,76,0,0.06),0 2px 4px rgba(194,76,0,0.03);--shadow-btn:0 4px 10px rgba(194,76,0,0.25);}html[data-theme="dark"]{--bg:#1A1412;--surface:#261E1A;--surface-alt:#382B25;--ink:#F5ECE6;--ink-muted:#C4B2A6;--border:#4A3931;--accent:#FC7B2B;--accent-ink:#1A1412;--accent-soft:#4A2715;--danger:#E36F68;--danger-soft:#3D1F1C;--shadow-card:0 4px 16px rgba(0,0,0,0.3);--shadow-btn:0 4px 10px rgba(252,123,43,0.2);}*{box-sizing:border-box;}html,body{margin:0;padding:0;height:100%;}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .15s ease,color .15s ease;display:flex;flex-direction:column;min-height:100vh;}a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}a:hover{text-decoration:none;}.topbar{border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10;}.topbar-inner{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;flex-direction:column;gap:12px;position:relative;}.topbar-row-one{display:flex;justify-content:space-between;align-items:center;width:100%;}.topbar-row-two{width:100%;}.nav-links{display:flex;gap:10px;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:4px 0 8px;scrollbar-width:thin;}.nav-links::-webkit-scrollbar{height:4px;}.nav-links::-webkit-scrollbar-track{background:var(--surface-alt);border-radius:4px;}.nav-links::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;}.nav-links::-webkit-scrollbar-thumb:hover{background:var(--accent);}.nav-links a{font-size:14px;font-weight:600;color:var(--ink-muted);text-decoration:none;white-space:nowrap;transition:all 0.2s ease;padding:8px 16px;border-radius:20px;background:var(--surface-alt);border:1px solid var(--border);}.nav-links a:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);}.nav-links a.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;flex-shrink:0;}.brand:hover{text-decoration:none;}.brand-mark{width:32px;height:32px;border:2px solid var(--accent);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent);font-size:16px;}.brand-name{font-weight:700;font-size:20px;}.topbar-controls{display:flex;align-items:center;gap:10px;flex-shrink:0;}.lang-dropdown{position:relative;display:inline-block;}.lang-menu{display:none;position:absolute;top:100%;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:30;margin-top:6px;min-width:120px;overflow:hidden;}.lang-menu.is-open{display:flex;flex-direction:column;}.lang-menu button{background:none;border:none;width:100%;text-align:left;padding:10px 16px;font-family:var(--font-body);font-size:14px;color:var(--ink-muted);cursor:pointer;transition:background 0.2s,color 0.2s;}.lang-menu button:hover{background:var(--surface-alt);color:var(--accent);}.lang-menu button.active{background:var(--accent-soft);color:var(--accent);font-weight:700;}.chip-btn,.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--ink-muted);border-radius:999px;cursor:pointer;transition:all 0.2s ease;font-family:var(--font-body);}.chip-btn{padding:6px 14px;font-size:14px;font-weight:700;}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;}.chip-btn:hover,.icon-btn:hover{border-color:var(--accent);color:var(--accent);}.mobile-nav-btn{display:none;}@media (max-width:767px){.topbar-inner{padding:12px 16px;flex-direction:row;align-items:center;justify-content:space-between;}.topbar-row-two{display:contents;}.mobile-nav-btn{display:flex;align-items:center;background:var(--surface-alt);border:1px solid var(--border);color:var(--ink);padding:8px 14px;border-radius:var(--radius-sm);font-family:var(--font-body);font-weight:700;font-size:14px;cursor:pointer;}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 8px 16px rgba(0,0,0,0.1);z-index:20;flex-direction:column;width:100%;padding:0;gap:0;overflow-x:visible;}.nav-links.is-open{display:flex;}.nav-links a{width:100%;text-align:left;padding:12px 20px;border-radius:0;border:none;border-bottom:1px solid var(--border);background:none;font-size:15px;}.nav-links a:last-child{border-bottom:none;}.nav-links a.active{background:var(--accent-soft);color:var(--accent);}}.page{flex:1 0 auto;max-width:1200px;width:100%;margin:0 auto;padding:24px 20px 60px;}.hero-section{margin-bottom:28px;}.eyebrow{margin:0 0 6px;font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);}.hero-section h1{margin:0 0 12px;font-weight:700;font-size:22px;line-height:1.4;}.hero-desc{font-size:16px;color:var(--ink-muted);margin:0;}.breadcrumb{margin-bottom:24px;font-size:14px;}.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;}.breadcrumb li{color:var(--ink-muted);display:flex;align-items:center;gap:8px;}.breadcrumb li:not(:last-child)::after{content:"›";color:var(--border);}.breadcrumb a{color:var(--ink-muted);}.breadcrumb a:hover{color:var(--accent);}.breadcrumb li[aria-current="page"]{font-weight:700;color:var(--ink);}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--border);margin-bottom:24px;}.tab-btn{background:none;border:none;border-bottom:2px solid transparent;padding:12px 6px;margin-right:22px;font-family:var(--font-body);font-weight:700;font-size:16px;color:var(--ink-muted);cursor:pointer;transition:color 0.2s,border-color 0.2s;}.tab-btn.is-active{color:var(--ink);border-bottom-color:var(--accent);}.panel[hidden]{display:none;}.result-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-card);padding:24px 28px;margin-bottom:28px;position:relative;}.result-card::before{content:"";position:absolute;left:20px;right:20px;top:0;height:4px;background:var(--accent);border-radius:0 0 4px 4px;}.result-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;}.result-label{font-size:14px;font-weight:700;letter-spacing:.05em;color:var(--ink-muted);}.result-scale{font-size:14px;color:var(--ink-muted);}.result-value{font-size:46px;font-weight:700;line-height:1.1;margin-bottom:16px;}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}.progress-track{height:8px;border-radius:4px;background:var(--surface-alt);overflow:hidden;}.progress-fill{height:100%;background:var(--accent);width:0%;transition:width 0.5s ease-out;}.result-foot{display:flex;justify-content:space-between;margin-top:10px;font-size:14px;color:var(--ink-muted);}.ledger-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden;margin-bottom:12px;}.ledger-head{display:grid;grid-template-columns:30px 1fr 140px 120px 38px;gap:12px;padding:12px 16px;background:var(--surface-alt);font-size:14px;font-weight:700;color:var(--ink-muted);border-bottom:1px solid var(--border);}.col-mobile-title{display:none;}.ledger-body{display:flex;flex-direction:column;}.ledger-row{display:grid;grid-template-columns:30px 1fr 140px 120px 38px;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);}.ledger-row:last-child{border-bottom:none;}.row-index{font-size:14px;color:var(--ink-muted);}.field{width:100%;border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:var(--radius-sm);padding:10px 12px;font-family:var(--font-body);font-size:16px;transition:border-color 0.2s;}.field:focus{outline:none;border-color:var(--accent);}select.field{cursor:pointer;}.row-del{width:30px;height:30px;border:1px solid var(--border);background:var(--surface);color:var(--ink-muted);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;transition:all 0.2s;}.row-del:hover{border-color:var(--danger);color:var(--danger);}.add-row-btn{width:100%;border:none;border-top:1px dashed var(--border);background:none;color:var(--accent);font-weight:700;font-size:16px;padding:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background 0.2s;}.add-row-btn:hover{background:var(--surface-alt);}.hint{font-size:14px;color:var(--ink-muted);margin:8px 2px 24px;}.action-row{display:flex;gap:12px;margin-bottom:32px;}.btn{border-radius:var(--radius-sm);padding:12px 24px;font-family:var(--font-body);font-weight:700;font-size:18px;cursor:pointer;border:1px solid transparent;transition:all 0.2s ease;}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-btn);}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(232,93,4,0.4);}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--border);}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}.summary-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden;margin-bottom:32px;}.summary-table{width:100%;border-collapse:collapse;font-size:16px;}.summary-table th{text-align:left;background:var(--surface-alt);color:var(--ink-muted);font-size:14px;font-weight:700;padding:12px 16px;border-bottom:1px solid var(--border);}.summary-table td{padding:10px 16px;border-bottom:1px solid var(--border);}.summary-table tr:last-child td{border-bottom:none;}.summary-table tr.total-row td{font-weight:700;background:var(--surface-alt);}.seo-content{margin-top:50px;padding-top:40px;border-top:2px dashed var(--border);}.seo-content h2{font-size:22px;font-weight:700;color:var(--accent);margin:32px 0 16px;}.seo-content h3{font-size:18px;font-weight:700;margin:20px 0 10px;}.seo-content p,.seo-content ul,.seo-content ol{font-size:18px;color:var(--ink);margin-bottom:16px;}.step-list{padding-left:20px;}.step-list li{margin-bottom:10px;}.comparison-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px;}.comparison-card{background:var(--surface);border:1px solid var(--border);padding:20px;border-radius:var(--radius-md);box-shadow:var(--shadow-card);}.comparison-card h3{margin-top:0;color:var(--accent);}.formula-box{background:var(--accent-soft);color:var(--ink);padding:16px 20px;border-radius:var(--radius-sm);border-left:4px solid var(--accent);margin-bottom:20px;font-weight:600;}.table-responsive{overflow-x:auto;margin-bottom:24px;}.grade-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card);}.grade-table th{background:var(--accent);color:var(--accent-ink);padding:12px 16px;text-align:left;font-weight:700;}.grade-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--ink);}.grade-table tr:last-child td{border-bottom:none;}.grade-table tbody tr:hover{background:var(--surface-alt);}.faq-list{display:flex;flex-direction:column;gap:12px;}.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;}.faq-item summary{padding:16px 20px;font-weight:700;cursor:pointer;background:var(--surface);list-style:none;position:relative;transition:background 0.2s;}.faq-item summary::-webkit-details-marker{display:none;}.faq-item summary:hover{background:var(--surface-alt);}.faq-item summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--accent);}.faq-item[open] summary::after{content:"−";}.faq-item p{padding:0 20px 20px;margin:0;border-top:1px solid var(--border);padding-top:16px;color:var(--ink-muted);}.site-footer{flex-shrink:0;border-top:1px solid var(--border);background:var(--surface);padding:40px 20px 30px;}.footer-grid{max-width:1200px;margin:0 auto 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;text-align:left;}.footer-col h4{font-size:16px;font-weight:700;color:var(--accent);margin:0 0 16px;text-transform:uppercase;letter-spacing:0.05em;}.footer-col p{font-size:14px;color:var(--ink-muted);line-height:1.6;margin:0;}.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}.footer-col ul a{font-size:14px;color:var(--ink-muted);text-decoration:none;transition:color 0.2s;}.footer-col ul a:hover{color:var(--accent);}.footer-socials{display:flex;gap:12px;margin-top:12px;}.footer-bottom{border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;max-width:1200px;margin:0 auto;font-size:13px;color:var(--ink-muted);}.footer-bottom p{margin:0;}@media (max-width:768px){.footer-grid{grid-template-columns:1fr;gap:24px;}.footer-bottom{flex-direction:column;text-align:center;}}@media (min-width:600px){.comparison-grid{grid-template-columns:1fr 1fr;}.col-span-2{grid-column:span 2;}}.en-text{display:block;font-size:0.85em;color:var(--ink-muted);margin-top:4px;}@media (max-width:560px){.hero-section h1{font-size:20px;}.seo-content h2{font-size:20px;}.result-value{font-size:36px;}.ledger-head{display:block;text-align:center;}.ledger-head > span:not(.col-mobile-title){display:none !important;}.ledger-head .col-mobile-title{display:block;}.ledger-row{grid-template-columns:26px 3fr 1fr 38px;grid-template-areas:"idx subj subj del" "idx grade credit .";row-gap:8px;}.row-index{grid-area:idx;}.ledger-row .field[name-role="main"]{grid-area:subj;}.ledger-row .field[name-role="grade"],.ledger-row .field[name-role="gpaxnum"]{grid-area:grade;}.ledger-row .field[name-role="credit"]{grid-area:credit;}.row-del{grid-area:del;}.action-row{flex-direction:column;}.btn{width:100%;}}@media (prefers-reduced-motion:reduce){*{transition:none !important;transform:none !important;}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}