:root{--ivory:#f4f1ea;--ivory-deep:#eaeae0;--lavender:#b7c1aa;--mauve:#c8bfb6;--taupe:#a3b49a;--plum:#3b3b3b;--walnut:#7c5940;--sage:#5f7255;--sage-dark:#4a5c41;--sage-bg:#e9eee4;--bg:var(--ivory);--surface:#fff;--border:#e1e4d9;--text:var(--plum);--text-muted:#7a756c;--danger:#a3453c;--danger-bg:#f8e9e7;--success:#4a6b3f;--success-bg:#eaf1e6;--info:#5c7566;--info-bg:#e8ede9;--warn:#a3752f;--warn-bg:#f5ecdb;--walnut-bg:#f2e6dc;--radius:6px;--tinggi-kontrol:38px;--sans:"Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;--shadow:0 1px 2px #3b3b3b0f, 0 1px 3px #3b3b3b14}*{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3{font-family:var(--sans);color:var(--plum);margin:0;font-weight:700}a{color:inherit}button{font-family:inherit}img{max-width:100%;display:block}.header-halaman{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.header-halaman h1{font-size:22px}.header-halaman .sub{color:var(--text-muted);margin:6px 0 0;font-size:13px}.tata-form{align-items:flex-start;gap:24px;display:flex}.bagian{flex:1;min-width:0;max-width:880px;margin-bottom:20px;padding:24px}.aksi-bawah{gap:12px;max-width:880px;padding-top:4px;padding-bottom:40px;display:flex}.judul-bagian{margin-bottom:16px;font-size:16px}.pv-panel{flex:none;width:400px;position:sticky;top:20px}.pv-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600;display:block}@media (width<=1100px){.tata-form{flex-direction:column}.bagian{width:100%;max-width:none}.pv-panel{width:100%;position:static}}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{letter-spacing:.02em;color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],input[type=tel],input[type=date],select,textarea{border:1px solid var(--border);border-radius:var(--radius);font-family:var(--sans);color:var(--text);background:var(--surface);min-height:var(--tinggi-kontrol);padding:9px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:80px}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=search]:focus,input[type=url]:focus,input[type=tel]:focus,input[type=date]:focus,select:focus,textarea:focus{border-color:var(--sage);outline:none;box-shadow:0 0 0 3px #5f725526}input[type=text]:hover:not(:focus),input[type=email]:hover:not(:focus),input[type=password]:hover:not(:focus),input[type=number]:hover:not(:focus),input[type=search]:hover:not(:focus),input[type=url]:hover:not(:focus),input[type=tel]:hover:not(:focus),input[type=date]:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:#cfd5c4}.field .keterangan{color:var(--text-muted);font-size:12px}.field .kesalahan{color:var(--danger);font-size:12px}.field-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field-check{align-items:center;gap:8px;margin-bottom:16px;display:flex}.field-check label{text-transform:none;color:var(--text);font-size:14px;font-weight:500}.btn{font-family:var(--sans);border-radius:var(--radius);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--sage);color:var(--ivory)}.btn-primary:hover:not(:disabled){background:var(--sage-dark)}.btn-outline{border-color:var(--border);color:var(--text);background:0 0}.btn-outline:hover:not(:disabled){border-color:var(--sage);color:var(--sage-dark)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-danger:hover:not(:disabled){background:#f1d9d6}.btn-sm{padding:6px 12px;font-size:12px}.btn-icon{padding:6px}.kartu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.tabel-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--ivory-deep);font-size:11px;font-weight:600}tr:last-child td{border-bottom:none}td.rata-kanan,th.rata-kanan{text-align:right}.lencana{border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.lencana-aktif{background:var(--success-bg);color:var(--success)}.lencana-nonaktif{color:var(--text-muted);background:#eee}.lencana-desktop{background:var(--info-bg);color:var(--info)}.lencana-mobile{background:var(--walnut-bg);color:var(--walnut)}.lencana-tablet{background:var(--warn-bg);color:var(--warn)}.lencana-lainnya{background:var(--ivory-deep);color:var(--text-muted)}tbody tr:hover{background:var(--bg)}.peringatan{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:13px}.peringatan-error{background:var(--danger-bg);color:var(--danger);border:1px solid #e3c3c0}.peringatan-sukses{background:var(--success-bg);color:var(--success);border:1px solid #cfe0c8}.thumb{border-radius:var(--radius);object-fit:cover;background:var(--ivory-deep);border:1px solid var(--border);flex:none;width:48px;height:48px}.kosong{text-align:center;color:var(--text-muted);padding:48px 24px;font-size:13px}.laveas-swal{font-family:var(--sans);border-radius:10px;padding:26px 26px 22px;box-shadow:0 20px 50px #3b3b3b38}.laveas-swal .swal2-title{font-family:var(--sans);color:var(--text);padding:0;font-size:19px;font-weight:700;line-height:1.35}.laveas-swal .swal2-html-container{color:var(--text-muted);margin:10px 0 0;font-size:13.5px;line-height:1.6}.laveas-swal .swal2-icon{border-width:2.5px;width:56px;height:56px;margin:4px auto 14px}.laveas-swal .swal2-icon.swal2-question{border-color:var(--sage);color:var(--sage)}.laveas-swal .swal2-icon.swal2-warning,.laveas-swal .swal2-icon.swal2-error{border-color:var(--danger);color:var(--danger)}.laveas-swal .swal2-icon.swal2-success{border-color:var(--success);color:var(--success)}.laveas-swal .swal2-icon .swal2-icon-content{font-size:30px}.laveas-swal .swal2-actions{gap:10px;margin-top:22px}.laveas-toast{font-family:var(--sans);border-radius:var(--radius);box-shadow:var(--shadow), 0 8px 24px #3b3b3b1f;border:1px solid var(--border)}.laveas-toast .swal2-title{color:var(--text);font-size:13px;font-weight:500}.laveas-toast .swal2-icon{width:24px;height:24px;margin:0 8px 0 0}.laveas-toast .swal2-icon .swal2-icon-content{font-size:14px}@media (width<=640px){.field-row{grid-template-columns:1fr}}.pager{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.pager-info{color:var(--text-muted);font-size:12px}.pager-nav{align-items:center;gap:4px;display:flex}.pg{border:1px solid var(--border);background:var(--surface);min-width:30px;height:30px;color:var(--text);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;padding:0 8px;font-family:inherit;font-size:12px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.pg:hover:not(:disabled):not(.on){background:var(--bg);border-color:var(--sage)}.pg.on{background:var(--sage);border-color:var(--sage);color:var(--ivory)}.pg:disabled{opacity:.4;cursor:not-allowed}.pg-elipsis{color:var(--text-muted);padding:0 2px;font-size:12px}.refresh-ctl{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:9px;padding:6px 12px;font-size:11.5px;display:inline-flex}.refresh-ctl .dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 0 3px var(--success-bg);border-radius:50%;flex-shrink:0}.refresh-ctl.off .dot{box-shadow:0 0 0 3px var(--ivory-deep);background:#c4c8d0}.refresh-ctl:not(.off) .dot{animation:2.4s ease-in-out infinite denyut}@keyframes denyut{0%,to{opacity:1}50%{opacity:.35}}.refresh-ctl button{color:var(--sage);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-weight:600}.refresh-ctl button:hover{text-decoration:underline}.refresh-ctl button:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}.avatar{background:var(--sage-bg);width:34px;height:34px;color:var(--sage-dark);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.kartu-kpi{flex-direction:column-reverse;gap:0;padding:20px 20px 18px;transition:transform .15s,box-shadow .15s;display:flex}.kartu-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b3b3b1a}.kpi-ikon{border-radius:13px;flex-shrink:0;place-items:center;width:46px;height:46px;margin-top:16px;display:grid}.kpi-ikon.brand{background:var(--sage-bg);color:var(--sage-dark)}.kpi-ikon.info{background:var(--info-bg);color:var(--info)}.kpi-ikon.warn{background:var(--warn-bg);color:var(--warn)}.kpi-ikon.dark{background:var(--ivory-deep);color:var(--text-muted)}.statistik-angka{font-variant-numeric:tabular-nums}
