:root{--green:#155f3d;--green2:#0f4d31;--bg:#eef4f0;--card:#fff;--line:#d4ded7;--text:#17201b;--muted:#66736b;--danger:#b42318;--warn:#9a6700}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:700}button:hover{filter:brightness(.97)}button:disabled{cursor:not-allowed;opacity:.62}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:var(--danger)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f4f2;padding:1px 4px;border-radius:4px}
.topbar{min-height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 24px;position:sticky;top:0;z-index:20;box-shadow:0 4px 18px #10251a0a}.brand{display:flex;flex-direction:column;min-width:210px}.brand b{color:var(--green);font-size:21px}.brand span{color:var(--muted);font-size:13px;margin-top:2px}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.status{font-size:13px;color:var(--muted);padding-right:3px;max-width:290px}
.container{width:min(1320px,calc(100% - 32px));margin:24px auto}.card{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 30px #13281d0a}.data-panel{padding:20px;margin-bottom:20px}.panel-head,.editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.panel-head h1,.editor-head h2{margin:4px 0 6px}.panel-head small,.editor-head small,.login-card small{color:var(--green);font-weight:800}.panel-head p,.editor-head p{margin:0;color:var(--muted);line-height:1.5;max-width:850px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.field label{display:block;font-size:12px;font-weight:800;color:#4f5b54;margin-bottom:6px}.field input,.field textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fbfdfb;color:var(--text)}.field textarea{resize:vertical;min-height:74px}.field.wide{grid-column:span 2}.notice{margin-top:15px;padding:12px 14px;background:#fff8db;border:1px solid #ead88c;border-radius:10px;font-size:13px;line-height:1.55}
.build-action{
  display:flex;
  justify-content:flex-end;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

.build-button{
  min-width:220px;
  min-height:48px;
  padding:12px 24px;
  font-size:15px;
  font-weight:700;
  border-radius:10px;
}
.progress-panel{padding:17px 20px;margin-bottom:20px}.progress-panel.hidden{display:none}.progress-copy{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:11px}.progress-copy span{font-size:13px;color:var(--muted)}.progress-track{height:12px;border-radius:999px;background:#e3ece6;overflow:hidden}.progress-track>div{height:100%;width:0;background:linear-gradient(90deg,var(--green),#2f9a68);transition:width .28s ease}
.workspace{padding:20px;overflow:auto}.document{margin-top:17px;background:#dfe5e1;border:0;padding:28px 12px;box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:24px;min-height:0;overflow:visible;outline:none;color:#000}
.ksp-page{position:relative;width:210mm;height:297mm;background:#fff;box-shadow:0 5px 22px #0002;overflow:hidden;flex:0 0 auto}.ksp-page-content{position:absolute;left:40mm;right:30mm;top:30mm;bottom:25mm;overflow:hidden;font-family:Arial,Helvetica,sans-serif;font-size:12pt;line-height:1.5;color:#000}.ksp-page-number{position:absolute;left:40mm;right:30mm;bottom:10mm;text-align:center;font-family:Arial,Helvetica,sans-serif;font-size:10pt;color:#222;user-select:none}.page-block{display:flow-root}.page-block.fragment>.modern-structure,.page-block.fragment>.structure-class,.page-block.fragment>.modern-kokurikuler,.page-block.fragment>.latest-framework{margin-top:0!important;padding-top:0!important;border-top:0!important}.page-block>h1:first-child,.page-block>h2:first-child,.page-block>h3:first-child,.page-block>div>h1:first-child,.page-block>div>h2:first-child,.page-block>div>h3:first-child{margin-top:0}.ksp-overflow{outline:2px dashed #d52b1e;outline-offset:2px}
.document p,.ksp-measure p{margin:0 0 6pt;text-align:justify;text-indent:12.5mm}.document li>p,.document td p,.document th p,.document blockquote p,.ksp-measure li>p,.ksp-measure td p,.ksp-measure th p,.ksp-measure blockquote p{margin:0;text-indent:0}.document blockquote,.ksp-measure blockquote{margin:0}.document ol,.document ul,.ksp-measure ol,.ksp-measure ul{margin:0 0 8pt 8mm;padding-left:7mm}.document li,.ksp-measure li{margin-bottom:2pt}.document h1,.ksp-measure h1{margin:12pt 0 6pt;text-align:left;font-size:12pt;line-height:1.35}.document h2,.ksp-measure h2{margin:8pt 0 6pt;text-align:left;font-size:12pt;line-height:1.35}.document h3,.ksp-measure h3{margin:0 0 8pt;text-align:center;font-size:12pt;line-height:1.35}.document h4,.document h5,.document h6,.ksp-measure h4,.ksp-measure h5,.ksp-measure h6{margin:6pt 0 4pt;font-size:12pt}.document .front-title,.ksp-measure .front-title{text-align:center!important;font-weight:700;font-size:12pt;margin:0 0 18pt;text-indent:0}.document img,.ksp-measure img{max-width:100%;height:auto}
.document table,.ksp-measure table{width:100%;border-collapse:collapse;table-layout:auto;margin:8pt 0 10pt;font-size:9.5pt;line-height:1.15}.document td,.document th,.ksp-measure td,.ksp-measure th{border:1px solid #000;padding:3.3pt 4pt;vertical-align:middle}.document th,.ksp-measure th{text-align:center;font-weight:700}.document td,.ksp-measure td{text-align:left}.document thead,.ksp-measure thead{display:table-header-group}.document tr,.ksp-measure tr{break-inside:avoid;page-break-inside:avoid}.document .signature-table,.document .signature-table td,.document .signature-table th,.ksp-measure .signature-table,.ksp-measure .signature-table td,.ksp-measure .signature-table th{border:0!important;font-size:12pt;line-height:1.5}.document .signature-table th,.ksp-measure .signature-table th{text-align:center;font-weight:400;vertical-align:top;padding-top:0}.document .signature-table p,.ksp-measure .signature-table p{text-align:center;margin:0;text-indent:0}
.page-break{display:none}.force-page{scroll-margin-top:92px}.update-note{display:none}.ai-generated{margin:12pt 0;padding:10pt 11pt;border:1px solid #bdd7c7;border-left:4px solid var(--green);background:#f5fbf7}.ai-generated h3{margin-top:0;color:var(--green2)}
.modern-structure>h1,.modern-kokurikuler>h1{font-size:12pt;text-transform:none}.structure-class{margin-top:7pt}.structure-class h2{font-weight:700;margin:0 0 4pt;text-align:left}.structure-intro{font-size:11pt;line-height:1.35;text-indent:12.5mm!important;margin-bottom:5pt!important}.legacy-structure{table-layout:fixed!important;font-size:8.7pt!important;line-height:1.05!important}.legacy-structure .c-no{width:7%}.legacy-structure .c-mapel{width:38%}.legacy-structure .c-small{width:10%}.legacy-structure .c-total{width:15%}.legacy-structure th,.legacy-structure td{padding:2.4pt 2.8pt!important}.legacy-structure .num{text-align:center}.legacy-structure .subject{text-align:left}.legacy-structure .vertical-allocation{position:relative;text-align:center;padding:1pt!important;overflow:hidden}.legacy-structure .vertical-allocation span{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);white-space:nowrap;font-size:8pt;line-height:1.05}.legacy-structure .total-row td{font-weight:700;text-align:center}.legacy-structure .total-row td:nth-child(2){text-align:left}.legacy-structure .optional-total td{font-size:8pt}.table-note{font-size:9pt!important;line-height:1.25!important;text-indent:0!important;background:transparent;border:0;margin:3pt 0 7pt!important;padding:0!important}.kokurikuler-table td:first-child{width:28%;font-weight:700}.schedule-title{text-align:left!important}.latest-framework{margin:14pt 0}.latest-framework h1{font-size:12pt}.compact-table{font-size:8pt!important;line-height:1!important}.compact-table td,.compact-table th{padding:2pt!important}
.ksp-measure{position:absolute;left:-100000px;top:0;width:140mm;height:242mm;overflow:visible;visibility:hidden;font-family:Arial,Helvetica,sans-serif;font-size:12pt;line-height:1.5;color:#000}.measure-item{width:140mm}
#toast{position:fixed;right:20px;bottom:20px;max-width:min(620px,calc(100% - 40px));background:#17201b;color:#fff;padding:13px 17px;border-radius:10px;display:none;z-index:80;line-height:1.4;white-space:pre-line}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 16px 50px #10251a1a}.login-card h1{margin:5px 0 8px}.login-card p{color:var(--muted);line-height:1.5}.login-card label{display:block;font-weight:700;font-size:13px;margin:16px 0 6px}.login-card input{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px}.login-card button{width:100%;margin-top:14px}.login-error{background:#fff2f0;border:1px solid #e8aaa3;color:#8f1f16;padding:10px;border-radius:8px;font-size:13px}
@media(max-width:1000px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.container{width:min(100% - 22px,1320px)}}
@media(max-width:720px){.topbar{position:static;align-items:flex-start;padding:13px}.top-actions{justify-content:flex-start}.status{width:100%;max-width:none}.container{margin:12px auto}.data-panel,.workspace{padding:14px}.panel-head,.editor-head,.progress-copy{display:block}.panel-head>button{margin-top:12px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.document{align-items:flex-start;overflow-x:auto}.workspace{overflow-x:auto}}
@page{size:A4 portrait;margin:0}
@media print{
  html,body{margin:0!important;padding:0!important;background:#fff!important}.topbar,.data-panel,.progress-panel,.editor-head,#toast{display:none!important}.container,.workspace,.document{width:auto!important;margin:0!important;padding:0!important;background:#fff!important;display:block!important;border:0!important;box-shadow:none!important;overflow:visible!important}.ksp-page{width:210mm!important;height:297mm!important;margin:0!important;box-shadow:none!important;break-after:page;page-break-after:always;overflow:hidden!important}.ksp-page:last-child{break-after:auto;page-break-after:auto}.ksp-page-content{left:40mm!important;right:30mm!important;top:30mm!important;bottom:25mm!important;overflow:hidden!important}.ksp-page-number{left:40mm!important;right:30mm!important;bottom:10mm!important}.ksp-overflow{outline:0!important}.ai-generated{border:0!important;background:transparent!important;padding:0!important}.document a{color:#000;text-decoration:none}
}
