@import "https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap";:root{--paper:#f7f5f0;--ink:#1e1b16;--ink-soft:#5a5348;--line:#d8d2c4;--maroon:#8c1626;--maroon-deep:#5e0f19;--gold:#b3872f;--green:#2f6b45;--red:#a53324;--amber:#a5762b;--card:#fff;--radius:3px}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 8% 4%, #8c16260d, transparent 40%), var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Inter,system-ui,sans-serif}#app{max-width:980px;margin:0 auto;padding:32px 20px 80px}.doc-header{border-bottom:3px solid var(--maroon);align-items:flex-start;gap:18px;margin-bottom:8px;padding-bottom:18px;display:flex}.doc-mark{background:linear-gradient(155deg, var(--maroon), var(--maroon-deep));color:#fff;letter-spacing:-.5px;border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;font-family:"Source Serif 4",serif;font-size:20px;font-weight:700;display:flex;box-shadow:0 3px 8px #5e0f1940}.doc-heading{flex:1}.doc-heading .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--maroon);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.doc-heading h1{margin:2px 0 4px;font-family:"Source Serif 4",serif;font-size:26px;font-weight:700;line-height:1.2}.doc-heading p{color:var(--ink-soft);margin:0;font-size:13px}.doc-meta{color:var(--ink-soft);text-align:right;white-space:nowrap;padding-top:4px;font-family:IBM Plex Mono,monospace;font-size:10.5px;line-height:1.6}.section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-top:20px;padding:22px 24px;position:relative}.section-title{align-items:baseline;gap:10px;margin:0 0 16px;display:flex}.section-title .num{color:var(--maroon);font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.section-title h2{letter-spacing:.01em;margin:0;font-size:15px;font-weight:700}.section-hint{color:var(--ink-soft);margin:-10px 0 16px;font-size:12px}.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.wide{grid-column:1/-1}.field label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.field input[type=text],.field input[type=date],.field input[type=time],.field select,.field textarea{border:1px solid var(--line);color:var(--ink);background:#fffefc;border-radius:2px;width:100%;padding:9px 10px;font-family:Inter,sans-serif;font-size:14px}.field textarea{resize:vertical;min-height:52px;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--maroon);outline-offset:1px;border-color:var(--maroon)}.table-wrap{overflow-x:auto}table.scores{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}table.scores th,table.scores td{border:1px solid var(--line);text-align:center;vertical-align:middle;padding:8px}table.scores thead th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.02em;background:#f1ece1;font-size:11px;font-weight:600}table.scores thead .clo-weight{color:var(--maroon);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:block}table.scores thead .clo-asesmen{text-transform:none;letter-spacing:0;color:var(--ink-soft);max-width:110px;margin-top:3px;margin-left:auto;margin-right:auto;font-size:9.5px;font-weight:500;line-height:1.35;display:block}table.scores td.role-cell{text-align:left;white-space:nowrap;font-weight:600}table.scores td.role-cell .sub{color:var(--ink-soft);font-size:11px;font-weight:400;display:block}table.scores input[type=number]{text-align:center;border:1px solid var(--line);border-radius:2px;width:56px;padding:6px 4px;font-family:IBM Plex Mono,monospace;font-size:13px}table.scores input[type=number]:focus{outline:2px solid var(--maroon);outline-offset:1px}table.scores td.weighted{background:#faf8f2;font-family:IBM Plex Mono,monospace;font-weight:600}table.scores tr.group-avg td{background:#f1ece1;font-family:IBM Plex Mono,monospace;font-weight:700}.result-row{grid-template-columns:1fr 1fr 1fr auto;align-items:stretch;gap:16px;display:grid}@media (width<=760px){.result-row{grid-template-columns:1fr 1fr}}.stat{border:1px solid var(--line);background:#faf8f2;border-radius:2px;padding:12px 14px}.stat .label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:10.5px;font-weight:600}.stat .value{margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:700}.stamp{border:3px solid var(--maroon);width:104px;height:104px;color:var(--maroon);border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;font-family:"Source Serif 4",serif;transition:transform .2s,color .2s,border-color .2s;display:flex;position:relative;transform:rotate(-8deg)}.stamp:before{content:"";opacity:.5;border:1px solid;border-radius:50%;position:absolute;inset:6px}.stamp .letter{font-size:30px;font-weight:700;line-height:1}.stamp .caption{text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:8.5px}.stamp.lulus{color:var(--green);border-color:var(--green)}.stamp.bersyarat{color:var(--amber);border-color:var(--amber)}.stamp.tidak{color:var(--red);border-color:var(--red)}.justif-box{margin-top:16px}.notice{border-left:3px solid var(--amber);color:#6b4d13;background:#fbf3e2;margin-top:12px;padding:10px 12px;font-size:12px;display:none}.notice.show{display:block}.actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}button{border:1px solid var(--maroon);background:var(--maroon);color:#fff;cursor:pointer;border-radius:2px;padding:10px 18px;font-family:Inter,sans-serif;font-size:13.5px;font-weight:600;transition:background .15s,transform .1s}button:hover{background:var(--maroon-deep)}button:active{transform:translateY(1px)}button.ghost{color:var(--maroon);background:0 0}button.ghost:hover{background:#8c162612}button.subtle{border-color:var(--line);color:var(--ink-soft);background:0 0}button.subtle:hover{background:#f1ece1}.history-list{flex-direction:column;gap:8px;margin-top:14px;display:flex}.history-item{border:1px solid var(--line);background:#faf8f2;border-radius:2px;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}.history-item .meta{color:var(--ink-soft);font-size:11.5px}.history-item .btns{gap:6px;display:flex}.history-item button{padding:5px 10px;font-size:12px}.empty{color:var(--ink-soft);font-size:13px;font-style:italic}table.ref{border-collapse:collapse;font-size:12.5px}table.ref th,table.ref td{border:1px solid var(--line);text-align:center;padding:6px 12px}table.ref th{background:#f1ece1}table.ref.clo-detail{width:100%;min-width:680px}table.ref.clo-detail th,table.ref.clo-detail td{text-align:left;vertical-align:top;padding:8px 12px}table.ref.clo-detail td.clo-cell{background:#faf8f2;width:26%;font-weight:600}table.ref.clo-detail td.asesmen-cell{width:24%}table.ref.clo-detail td.bobot-cell{text-align:center;color:var(--maroon);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-weight:600}footer.formula{color:var(--ink-soft);margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:11px;line-height:1.7}.pdf-modal{z-index:100;background:#1e1b168c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pdf-modal-box{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);flex-direction:column;width:min(900px,100%);height:min(92vh,1100px);display:flex;overflow:hidden;box-shadow:0 18px 60px #1e1b1659}.pdf-modal-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.pdf-modal-bar button{padding:6px 12px;font-size:12px}.pdf-pages{overscroll-behavior:contain;background:#525659;flex:1;min-height:0;position:relative;overflow:hidden}.pdf-pages embedpdf-container,.pdf-pages>*{width:100%;height:100%;display:block}.pdf-loading{color:#e8e6e1;text-align:center;margin:24px auto;font-size:13px}@media (width<=600px){.pdf-modal{padding:8px}.pdf-modal-box{height:96dvh}.pdf-pages{padding:8px}}@media (pointer:coarse){.field input[type=text],.field input[type=date],.field input[type=time],.field select,.field textarea,table.scores input[type=number],table.scores input[type=text],#nilaiAkhirOverride{font-size:16px!important}table.scores input[type=number]{width:64px}}@media print{body{background:#fff}.no-print{display:none!important}.section{break-inside:avoid;border:1px solid #999}button{display:none}}
