:root{--bg:#fbfaf7;--surface:#f3f1eb;--surface-2:#ebe8df;--border:#dcd7cb;--ink:#1a1d1c;--ink-soft:#545b58;--accent:#0b7166;--accent-ink:#fff;--accent-soft:#dff1ed;--warn:#8a5100;--warn-soft:#fbf0dc;--bad:#b3261e;--radius:14px;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0e1413;--surface:#151d1c;--surface-2:#1c2625;--border:#2b3836;--ink:#e7eeec;--ink-soft:#a3b2af;--accent:#53d3c0;--accent-ink:#062b26;--accent-soft:#123330;--warn:#f0b660;--warn-soft:#2d2413;--bad:#ff8a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);margin:0;font:17px/1.65 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent);text-underline-offset:2px}.wrap{max-width:880px;margin:0 auto;padding:0 16px}.skip{position:absolute;left:-999px}.skip:focus{background:var(--bg);z-index:10;padding:8px;top:8px;left:16px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-head{border-bottom:1px solid var(--border);background:var(--bg);z-index:5;position:sticky;top:0}.site-head .wrap{max-width:1060px}.head-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;min-height:60px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-size:18px;font-weight:750;text-decoration:none;display:flex}.brand-to{color:var(--accent);padding:0 1px;font-style:italic;font-weight:600}.logo{flex:none;width:32px;height:32px}.nav{flex-wrap:wrap;gap:4px 14px;font-size:15px;display:flex}.nav a{color:var(--ink-soft);padding:4px 0;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--accent)}@media (max-width:680px){.nav{flex-wrap:nowrap;width:100%;padding-bottom:8px;overflow-x:auto}.nav a{white-space:nowrap}}.page{padding:28px 0 40px}.page-head h1{letter-spacing:-.02em;overflow-wrap:break-word;margin:0 0 10px;font-size:clamp(28px,5vw,38px);line-height:1.15}.content,.lead,.faq{overflow-wrap:break-word}.lead{color:var(--ink-soft);margin:0 0 16px;font-size:18px}.formula{background:var(--accent-soft);border-radius:var(--radius);font-family:var(--mono);margin:0 0 20px;padding:12px 16px;font-size:15px;overflow-x:auto}.calc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.fields{gap:14px;display:grid}.fields.two{grid-template-columns:1fr 1fr}@media (max-width:560px){.fields.two{grid-template-columns:1fr}}.field label,.field .label{color:var(--ink-soft);margin-bottom:6px;font-size:14px;font-weight:600;display:block}.field .hint{color:var(--ink-soft);margin:6px 0 0;font-size:13px}.input-wrap{position:relative}input.num,select.sel{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:10px;padding:11px 13px;font-family:inherit;font-size:19px}select.sel{padding:12px 10px;font-size:16px}input.num:focus,select.sel:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}input.num[aria-invalid=true]{border-color:var(--bad)}.suffix{color:var(--ink-soft);pointer-events:none;font-weight:600;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tab{border:1px solid var(--border);background:var(--bg);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:7px 14px;font-family:inherit;font-size:14px}.tab[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.custom-row{font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:8px;font-size:16px;display:flex}.custom-row input.num{width:96px;padding:8px 10px;font-size:17px}.result{background:var(--bg);border:1px solid var(--border);border-radius:10px;margin-top:16px;padding:14px 16px}.result-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--accent);font-size:clamp(26px,6vw,36px);font-weight:780;line-height:1.2}.result-sub{color:var(--ink-soft);margin-top:2px;font-size:15px}.result-empty{color:var(--ink-soft)}.result-error{color:var(--bad);font-weight:600}.steps{color:var(--ink-soft);margin:10px 0 0;padding-left:20px;font-size:15px}.steps code{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--ink);font-size:14px}.src{color:var(--ink-soft);border-top:1px dashed var(--border);margin-top:10px;padding-top:10px;font-size:14px}.src strong{color:var(--ink)}.warn{background:var(--warn-soft);color:var(--warn);border-radius:8px;margin-top:10px;padding:8px 12px;font-size:14px}.rows{gap:8px;display:grid}.row{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr) 40px;align-items:end;gap:8px;display:grid}.row.sem{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 40px}.row input.num,.row select.sel{padding:9px 10px;font-size:16px}.row .rlabel{color:var(--ink-soft);margin-bottom:3px;font-size:12px;font-weight:600;display:block}.row .rlabel.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.icon-btn{border:1px solid var(--border);background:var(--bg);width:40px;height:42px;color:var(--ink-soft);cursor:pointer;border-radius:10px;font-size:20px;line-height:1}.icon-btn:hover{color:var(--bad);border-color:var(--bad)}.btn{border:1px solid var(--accent);background:var(--bg);color:var(--accent);cursor:pointer;border-radius:10px;padding:8px 14px;font-family:inherit;font-size:15px;font-weight:600}.btn.solid{background:var(--accent);color:var(--accent-ink)}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.check{color:var(--ink-soft);align-items:flex-start;gap:8px;margin-top:12px;font-size:15px;display:flex}.check input{margin-top:5px}.sem-block{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:12px}.sem-block+.sem-block{margin-top:12px}.sem-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.sem-head .sgpa{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.grade-edit{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:8px;display:grid}.grade-edit .g{align-items:center;gap:6px;display:flex}.grade-edit .g span{min-width:30px;font-weight:700}.grade-edit input.num{padding:6px 8px;font-size:15px}details.inline{margin-top:12px}details.inline summary{cursor:pointer;color:var(--accent);font-size:15px;font-weight:600}@media (max-width:480px){.row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px}.row .cname{grid-column:1/-1}.row.sem{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px}.row.sem .cname{grid-column:1/-1}}.notice{border-left:4px solid var(--warn);background:var(--warn-soft);border-radius:0 10px 10px 0;margin:18px 0 0;padding:10px 14px;font-size:16px}.notice strong{color:var(--ink)}.content h2{letter-spacing:-.01em;margin:36px 0 8px;font-size:24px}.content h3{margin:24px 0 6px;font-size:19px}.content code,.content pre{font-family:var(--mono);background:var(--surface-2);border-radius:6px;font-size:15px}.content code{padding:1px 5px}.content table{border-collapse:collapse;width:100%;margin:12px 0;font-size:15px;display:block;overflow-x:auto}.content th,.content td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 10px}.content th{color:var(--ink-soft);font-weight:600}.content td.num,.content th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.callout{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 8px 8px 0;margin:16px 0;padding:10px 14px}.small{color:var(--ink-soft);font-size:14px}.faq{margin-top:40px}.faq h2{font-size:24px}.faq details{border-bottom:1px solid var(--border);padding:12px 0}.faq summary{cursor:pointer;font-weight:600}.faq details p{color:var(--ink-soft);margin:8px 0 0}.related{margin-top:36px}.related h2{font-size:20px}.related ul{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.related a{border:1px solid var(--border);background:var(--bg);border-radius:999px;padding:6px 12px;font-size:15px;text-decoration:none;display:inline-block}.site-foot{border-top:1px solid var(--border);background:var(--surface);margin-top:40px;padding:28px 0 18px;font-size:15px}.foot-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (max-width:560px){.foot-grid{grid-template-columns:1fr 1fr}}.foot-grid ul{margin:6px 0 0;padding:0;list-style:none}.foot-grid li{margin:4px 0}.foot-grid a{color:var(--ink-soft);text-decoration:none}.fine{color:var(--ink-soft);margin-top:18px;font-size:13px}
