:root{--navy:#10264a;--navy2:#17365e;--blue:#2563eb;--sky:#eff6ff;--border:#e3eaf3;--text:#182d4e;--muted:#64748b;--bg:#f5f8fc;--white:#fff;--green:#147d66;--shadow:0 8px 32px rgba(19,42,75,.055);font-family:Inter,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue)}.app-shell{display:flex;min-height:100vh}.sidebar{background:linear-gradient(180deg,#10294f,#101e3b);color:#ebf3ff;width:252px;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 14px 16px}.brand{display:flex;align-items:center;gap:11px;padding:0 13px 30px}.brand strong{display:block;font-size:19px;letter-spacing:-.5px}.brand small{display:block;font-size:11px;opacity:.65;margin-top:4px}.brand-icon{height:40px;width:40px;border-radius:13px;background:linear-gradient(140deg,#68b9ff,#2e68d9);display:grid;place-items:center;color:#fff;font-weight:800;font-size:24px;box-shadow:0 4px 15px #6abaff22}.brand-icon span{font-size:8px;margin-left:-7px}.side-label{font-size:10px;color:#8398b7;letter-spacing:1.3px;font-weight:700;margin:0 0 9px 15px}.side-label-inner{margin-top:22px}.nav-item{display:flex;align-items:center;gap:13px;width:100%;border:0;background:transparent;color:#baccdf;border-radius:10px;padding:12px 14px;text-align:left;font-size:18px;transition:.18s}.nav-item span{font-size:13px;font-weight:600}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff18}.nav-item.active{box-shadow:inset 3px 0 #79b9ff}.side-bottom{margin-top:auto;font-size:12px;color:#dbeafe;padding:15px 10px;border-top:1px solid #ffffff22}.side-bottom small{display:block;color:#8194b2;margin-left:17px;margin-top:6px}.dot{width:7px;height:7px;border-radius:99px;background:#55dfb6;display:inline-block;margin-right:8px}.main-layout{flex:1;min-width:0}.topbar{height:86px;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 35px}.topbar-left,.top-actions{display:flex;align-items:center;gap:20px}.eyebrow{letter-spacing:1.2px;font-weight:800;font-size:10px;color:#93a2b7;margin-bottom:4px}.top-title{font-size:20px;font-weight:800;letter-spacing:-.4px}.save-status{font-size:12px;color:#64748b;white-space:nowrap}.hamburger{display:none;border:0;background:var(--sky);border-radius:8px;padding:9px;color:var(--navy)}.main-content{padding:30px 35px 70px;max-width:1650px;margin:0 auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-heading h1{font-size:24px;letter-spacing:-.65px;margin:0 0 8px}.subtitle{color:var(--muted);font-size:13px;line-height:1.6;margin:0}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;gap:7px;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:9px;padding:11px 15px;color:var(--navy);font-size:12px;font-weight:750;text-decoration:none;white-space:nowrap;transition:.16s}.btn:hover{transform:translateY(-1px);box-shadow:0 3px 12px #22446615}.btn-primary{background:#235ad8;border-color:#235ad8;color:#fff}.btn-danger{color:#b42318;border-color:#f6b3b3}.btn-small{font-size:11px;padding:7px 10px}.cursor{cursor:pointer}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:white;border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow);padding:24px;min-width:0}.card-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 17px}.card h2{font-size:16px;letter-spacing:-.25px;margin:0}.stat-label{font-weight:600;color:#657a96;font-size:12px}.stat-number{font-size:33px;font-weight:800;letter-spacing:-1.5px;margin-top:16px}.stat-foot{color:#8292a8;font-size:11px;margin-top:8px}.stat-icon{float:right;background:#eff6ff;border-radius:11px;width:37px;height:37px;display:grid;place-items:center;color:#2a65dd;font-size:19px}.callout{padding:15px 17px;border-radius:11px;background:#f2f7ff;border:1px solid #d9e9ff;color:#375478;font-size:13px;line-height:1.6;margin:17px 0}.callout.warning{background:#fff9ed;border-color:#f8dfb3;color:#81601d}.callout p{margin:0}.section-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 18px}.search-input,.field,.selector{border:1px solid #dce5f1;background:#fff;border-radius:9px;padding:11px 12px;outline:none;color:var(--text);width:100%;min-width:0}.search-input:focus,.field:focus,.selector:focus{border-color:#67a2ff;box-shadow:0 0 0 3px #e5f0ff}.search-input{max-width:310px}.selector{min-width:180px;max-width:390px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-label{display:block;font-size:12px;font-weight:700;color:#516581;margin-bottom:7px}.form-field{margin-bottom:5px}.form-field .field{font-size:13px}.wide{grid-column:1/-1}.table-wrap{width:100%;overflow:auto;border-radius:12px;border:1px solid #e2e9f3}.data-table{border-collapse:separate;border-spacing:0;min-width:850px;width:100%;background:white;font-size:12px}.data-table th{background:#f5f8fd;color:#536984;font-weight:800;padding:12px 12px;text-align:left;border-bottom:1px solid #e5ebf3;white-space:nowrap;position:sticky;top:0;z-index:1}.data-table td{padding:11px 12px;border-bottom:1px solid #edf1f7;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fbff}.sticky-left{position:sticky;left:0;background:inherit;z-index:2}.sticky-left-second{position:sticky;left:58px;background:inherit;z-index:2}.data-table thead .sticky-left,.data-table thead .sticky-left-second{z-index:4;background:#f5f8fd}.table-input{padding:8px 6px;width:80px;min-width:80px;border:1px solid #e0e9f4;border-radius:7px;text-align:center;background:#fff}.table-input:focus{outline:2px solid #89bbff}.table-select{padding:8px 3px;min-width:94px;width:94px;border:1px solid #dce7f5;border-radius:7px;background:white}.name-cell{font-weight:700;color:#263f60;white-space:nowrap}.number-cell{font-variant-numeric:tabular-nums;font-weight:750;color:#2356a2}.muted{color:var(--muted)}.empty{padding:55px 20px;text-align:center;color:#8699ae}.empty-icon{font-size:32px;margin-bottom:12px}.tag{font-size:11px;font-weight:700;border-radius:7px;padding:5px 8px;background:#eaf4ff;color:#3168b0;white-space:nowrap}.tag.soft{background:#f3f5f9;color:#77849a}.mini{font-size:11px;color:#7b8ba0}.action-cell{display:flex;gap:6px;white-space:nowrap}.field-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.modal{border:0;border-radius:16px;box-shadow:0 35px 130px #071b3f55;width:min(780px,94vw);max-height:88vh;padding:0;color:var(--text)}.modal::backdrop{background:#091c38a3;backdrop-filter:blur(3px)}.modal-top{padding:23px 28px 18px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between}.modal-top h2{margin:0;font-size:19px}.modal-inner{padding:24px 28px;max-height:64vh;overflow:auto}.modal-footer{padding:17px 28px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.close{border:0;background:#f2f5fa;border-radius:8px;width:32px;height:32px;font-size:20px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.detail-grid dt{color:#8594a9;font-size:11px}.detail-grid dd{font-weight:650;margin:5px 0 0;overflow-wrap:anywhere}.tp-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.editable-list{display:grid;gap:8px}.item-inline{display:flex;align-items:center;gap:10px}.number-bubble{min-width:26px;text-align:center;font-size:11px;font-weight:800;color:#91a3ba}.compact-field{font-size:12px;padding:9px 10px}.report-paper{background:#fff;max-width:880px;margin:0 auto;border:1px solid #dce4ee;box-shadow:0 15px 55px #1a356117;padding:42px 47px;border-radius:5px;line-height:1.6}.report-paper h2{text-align:center;letter-spacing:.7px;font-size:17px;margin:0 0 28px}.report-id{display:grid;grid-template-columns:1fr 1fr;gap:4px 35px;margin-bottom:24px}.report-id>div{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:12px}.report-table{width:100%;border-collapse:collapse;font-size:12px}.report-table th,.report-table td{border:1px solid #cdd6e1;padding:7px 9px;vertical-align:top}.report-table th{background:#f6f9fd}.report-table .desc{font-size:11px;color:#425574}.report-table .score{width:75px;text-align:center;font-weight:bold}.report-section{font-weight:800;margin-top:24px;font-size:13px}.signs{display:flex;justify-content:space-between;gap:25px;margin-top:32px;font-size:12px;text-align:center}.signs>div{width:45%}.sign-space{height:50px}.toast{position:fixed;right:25px;bottom:25px;z-index:200;background:#12325b;color:white;border-radius:10px;box-shadow:0 12px 35px #10294d44;padding:13px 20px;font-size:12px;display:none;max-width:min(370px,90vw)}.loader{text-align:center;padding:65px;color:#8192aa}.divider{height:1px;background:var(--border);margin:22px 0}.help-text{line-height:1.7;color:#5b6b85}.help-text code{background:#f0f5fb;padding:2px 5px;border-radius:5px}.help-text h3{color:#193b6b;font-size:15px;margin-top:21px}.matrix-selector{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:15px}.matrix-selector>div{flex:1;min-width:150px}.note-table{max-width:460px}.nowrap{white-space:nowrap}.align-right{text-align:right}.text-area{resize:vertical;min-height:80px}.report-controls{max-width:880px;margin:0 auto 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.report-controls .selector{width:310px}.report-controls .form-label{margin-bottom:4px}.hide-on-screen{display:none}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.main-content{padding:25px}.topbar{padding:0 25px}}
@media(max-width:760px){.sidebar{position:fixed;left:-270px;z-index:20;transition:left .2s}.sidebar.open{left:0}.hamburger{display:block}.topbar{height:70px;padding:0 16px}.top-title{font-size:16px}.eyebrow{font-size:8px}.top-actions{gap:8px}.top-actions .btn{padding:9px;font-size:11px}.save-status{display:none}.main-content{padding:22px 14px 50px}.grid-4,.grid-2,.form-grid,.tp-editor,.field-list,.detail-grid{grid-template-columns:1fr}.page-heading h1{font-size:21px}.page-heading{flex-wrap:wrap}.card{padding:18px}.report-paper{padding:22px 15px}.report-id{grid-template-columns:1fr}.report-table{font-size:11px}.modal-inner{padding:18px}.signs{font-size:11px}}
@media print{@page{size:A4;margin:13mm}body{background:#fff}.sidebar,.topbar,.page-heading,.report-controls,.no-print,.toast{display:none!important}.main-content{padding:0}.report-paper{border:0;box-shadow:none;margin:0;max-width:100%;padding:0;border-radius:0}.report-table tr{break-inside:avoid}.report-paper h2{margin-bottom:20px}.app-shell,.main-layout{display:block}.card{border:0;box-shadow:none}}

/* Menu CETAK: tombol mengikuti panel biru-oranye pada file asli. */
.print-layout{display:grid;grid-template-columns:170px 1fr;gap:24px;align-items:start;margin-top:18px}
.print-menu{background:#4679c0;border:2px solid #244471;padding:8px 10px 12px;min-height:280px;display:flex;flex-direction:column;gap:8px}
.print-ribbon{background:#ff1717;color:white;text-align:center;font-weight:800;font-size:14px;padding:10px;border:2px solid white;clip-path:polygon(0 0,85% 0,100% 50%,85% 100%,0 100%);margin-bottom:2px}
.retro-print{cursor:pointer;background:linear-gradient(#ff9f48,#fa711a);border:2px solid #ad5615;border-radius:7px;box-shadow:inset 0 2px 2px #ffdcaa,0 3px 0 #834c20;color:white;font-weight:800;font-size:13px;text-shadow:0 1px 1px #99521a;padding:14px 6px}
.retro-print:hover{filter:brightness(1.07)}.retro-print:disabled{opacity:.45;cursor:not-allowed}
.print-card-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px}
.print-card{cursor:pointer;border:1px solid #d7e3f2;border-radius:14px;background:#fff;display:flex;gap:14px;align-items:center;text-align:left;padding:19px 17px;color:#193b65;box-shadow:0 5px 18px #1738610a;transition:box-shadow .18s,transform .18s}
.print-card:hover:not(:disabled){box-shadow:0 10px 24px #17386122;transform:translateY(-2px)}.print-card:disabled{opacity:.45;cursor:not-allowed}
.print-icon{display:flex;align-items:center;justify-content:center;font-size:24px;background:#ecf4ff;border-radius:11px;width:42px;height:42px;flex-shrink:0}
.print-card strong{display:block;font-size:14px}.print-card small{display:block;color:#647894;font-size:11px;line-height:1.5;margin-top:3px}.print-arrow{margin-left:auto;font-size:18px;color:#537bac}
.print-all{grid-column:1/-1;background:#edf5ff}
@media(max-width:850px){.print-layout{grid-template-columns:1fr}.print-menu{max-width:250px}.print-card-grid{grid-template-columns:1fr}}
@media print{.print-layout,.print-card-grid,.print-menu{display:none}}

/* Tabel pratinjau pengaturan dibuat ringkas agar dua kolom selalu terlihat. */
.score-preview-table{min-width:0;table-layout:fixed}.score-preview-table th,.score-preview-table td{width:50%;white-space:normal}.score-preview-table td:nth-child(2){text-align:right}

/* Umpan balik tindakan — jelas dan terlihat, tidak menimpa data di tabel. */
#toast[data-type="success"] { border-left: 5px solid #2f9b77; background: #ecfbf4; color: #174b3b; }
#toast[data-type="error"] { border-left: 5px solid #d75b5b; background: #fff1f1; color: #7a2828; }

/* Tahap 5.3: informasi sinkronisasi dan penempatan eksplisit */
.app-build{font-size:10px;opacity:.75;margin:0 8px;white-space:normal}
.sync-audit{margin-bottom:16px}
.sync-audit ul,.sync-menu-note ul{padding-left:22px;margin:8px 0}
.registry-placement{margin:14px 0}
.registry-placement select{min-width:140px}
.registry-health-stats{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.registry-health-stats span{padding:12px 16px;border:1px solid #e0e8f1;border-radius:14px;background:#f8fbff;display:flex;gap:6px;align-items:baseline}
.registry-health-stats strong{font-size:20px;color:#173c70}
#nav-back{white-space:nowrap;flex-shrink:0}
@media(max-width:640px){#nav-back{padding:6px 8px;font-size:11px}.topbar-left{min-width:0}}
