:root{--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", monospace;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--primary:#3b82f6;--primary-hover:#2563eb;--primary-light:#3b82f61f;--primary-glow:#3b82f64d;--success:#10b981;--success-hover:#059669;--success-light:#10b9811f;--warning:#f59e0b;--warning-hover:#d97706;--warning-light:#f59e0b1f;--danger:#ef4444;--danger-hover:#dc2626;--danger-light:#ef44441f;--info:#06b6d4;--info-light:#06b6d41f;--purple:#8b5cf6;--purple-light:#8b5cf61f}body.theme-dark{--bg-app:#0c111d;--bg-sidebar:#0f172a;--bg-sidebar-hover:#1e293b;--bg-topbar:#0f172ad9;--bg-card:#151f32;--bg-card-hover:#1c2942;--bg-card-inner:#0f172a;--bg-input:#0f172a;--bg-modal-overlay:#030712bf;--border-subtle:#ffffff12;--border-medium:#ffffff1f;--border-strong:#fff3;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-inverse:#0f172a;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 10px 25px -5px #00000080, 0 8px 10px -6px #00000080;--shadow-xl:0 20px 35px -5px #0009;--scrollbar-thumb:#334155;--scrollbar-track:#0f172a}body.theme-light{--bg-app:#f1f5f9;--bg-sidebar:#0f172a;--bg-sidebar-hover:#1e293b;--bg-topbar:#ffffffe6;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-card-inner:#f8fafc;--bg-input:#fff;--bg-modal-overlay:#0f172a80;--border-subtle:#e2e8f0;--border-medium:#cbd5e1;--border-strong:#94a3b8;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-inverse:#fff;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000014;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001f;--scrollbar-thumb:#cbd5e1;--scrollbar-track:#f1f5f9}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}#app{width:100%;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.app-sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--border-subtle);z-index:50;width:270px;transition:transform var(--transition-normal), width var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 18px;display:flex}.brand-icon{border-radius:var(--radius-md);background:linear-gradient(135deg,#2563eb,#1d4ed8);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex;box-shadow:0 4px 10px #2563eb59}.brand-text{flex-direction:column;display:flex;overflow:hidden}.brand-title{color:#fff;letter-spacing:-.3px;align-items:center;gap:6px;font-size:17px;font-weight:700;display:flex}.brand-badge{border-radius:var(--radius-full);color:#60a5fa;text-transform:uppercase;background:#3b82f640;border:1px solid #60a5fa66;padding:2px 6px;font-size:10px;font-weight:700}.brand-subtitle{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.sidebar-nav{flex-direction:column;flex:1;gap:24px;padding:16px 12px;display:flex;overflow-y:auto}.nav-section-title{text-transform:uppercase;letter-spacing:.8px;color:#64748b;padding:0 12px 6px;font-size:11px;font-weight:700}.nav-list{flex-direction:column;gap:4px;list-style:none;display:flex}.nav-item a{border-radius:var(--radius-md);color:#94a3b8;transition:all var(--transition-fast);align-items:center;gap:12px;padding:10px 14px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item a:hover{background-color:var(--bg-sidebar-hover);color:#f8fafc;transform:translate(2px)}.nav-item.active a{color:#60a5fa;border-left:3px solid var(--primary);background:linear-gradient(90deg,#2563eb2e,#2563eb0d);font-weight:600}.nav-item .nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:22px;font-size:18px;display:flex}.nav-item .nav-badge{border-radius:var(--radius-full);background:var(--bg-sidebar-hover);color:#94a3b8;margin-left:auto;padding:2px 7px;font-size:11px;font-weight:700}.nav-item.active .nav-badge{background:var(--primary);color:#fff}.sidebar-footer{border-top:1px solid var(--border-subtle);background:#0f172a80;padding:14px 16px}.user-profile-widget{align-items:center;gap:10px;display:flex}.user-avatar{border-radius:var(--radius-full);color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.user-meta{flex-direction:column;display:flex;overflow:hidden}.user-name{color:#f8fafc;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.user-role{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.app-main{width:100%;min-width:0;max-width:100%;min-height:100vh;transition:margin-left var(--transition-normal);background-color:var(--bg-app);flex-direction:column;flex:1;margin-left:270px;display:flex;overflow-x:hidden}.app-topbar{background-color:var(--bg-topbar);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);z-index:40;justify-content:space-between;align-items:center;gap:12px;height:68px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:14px;min-width:0;display:flex}.btn-sidebar-toggle{border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;width:38px;height:38px;transition:all var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:19px;display:none}.btn-sidebar-toggle:hover{background-color:var(--bg-card-hover);border-color:var(--border-medium)}.topbar-breadcrumb{white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:flex}.breadcrumb-root{color:var(--text-muted)}.breadcrumb-separator{color:var(--text-muted);font-size:11px}.breadcrumb-current{color:var(--text-primary);font-weight:600}.topbar-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.topbar-filter-select{background:var(--bg-input);border:1px solid var(--border-medium);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;max-width:220px;transition:border-color var(--transition-fast);outline:none;padding:7px 12px;font-size:12.5px;font-weight:500}.topbar-filter-select:focus{border-color:var(--primary)}.topbar-search-wrap{width:220px;position:relative}.topbar-search-input{background:var(--bg-input);border:1px solid var(--border-medium);width:100%;color:var(--text-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:7px 12px 7px 32px;font-size:12.5px}.topbar-search-input:focus{border-color:var(--primary);width:260px;box-shadow:0 0 0 3px var(--primary-light)}.topbar-search-icon{color:var(--text-muted);pointer-events:none;font-size:13px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.btn-icon{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:flex}.btn-icon:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-medium)}.app-content{box-sizing:border-box;flex:1;width:100%;max-width:1600px;margin:0 auto;padding:24px}.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);z-index:45;opacity:0;transition:opacity var(--transition-normal);background:#000000a6;display:none;position:fixed;inset:0}.sidebar-backdrop.open{opacity:1;display:block}.btn-sidebar-close{border:1px solid var(--border-medium);color:#94a3b8;border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;font-size:20px;line-height:1;display:none}.btn-sidebar-close:hover{background-color:var(--bg-sidebar-hover);color:#fff;border-color:var(--border-strong)}@media (width<=1024px){.app-sidebar{transform:translate(-100%);box-shadow:0 10px 40px #00000080}.app-sidebar.open{transform:translate(0)}.app-main{margin-left:0}.btn-sidebar-toggle,.btn-sidebar-close{display:flex}.topbar-search-wrap{display:none}}@media (width<=768px){.app-topbar{height:58px;padding:0 14px}.app-content{padding:16px 12px}.topbar-filter-select{max-width:130px;padding:5px 8px;font-size:11.5px}}@media (width<=480px){.app-topbar{height:52px;padding:0 10px}.topbar-breadcrumb .breadcrumb-root,.topbar-breadcrumb .breadcrumb-separator{display:none}.breadcrumb-current{white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-size:13px;overflow:hidden}.topbar-year-badge{display:none!important}.topbar-filter-select{max-width:110px;padding:4px 6px;font-size:11px}.app-content{padding:12px 8px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.page-title-wrap{flex:240px}.page-title-wrap h1{color:var(--text-primary);letter-spacing:-.5px;align-items:center;gap:10px;font-size:23px;font-weight:700;line-height:1.3;display:flex}.page-title-wrap p{color:var(--text-secondary);margin-top:3px;font-size:13px;line-height:1.4}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=640px){.page-header{gap:10px;margin-bottom:16px}.page-title-wrap h1{font-size:18px}.page-title-wrap p{font-size:12px}.page-actions{width:100%}.page-actions .btn{text-align:center;flex:auto}}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:0 4px 12px var(--primary-glow);transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-card);border-color:var(--border-medium);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--bg-card-hover);border-color:var(--border-strong)}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover{background-color:var(--success-hover)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:var(--danger-hover)}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:12px 20px;font-size:15px}.card{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);box-sizing:border-box;max-width:100%;padding:20px}.card:hover{border-color:var(--border-medium)}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.card-title{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}@media (width<=640px){.card{border-radius:var(--radius-md);padding:14px}}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:transform var(--transition-fast), border-color var(--transition-fast);padding:18px;position:relative;overflow:hidden}.kpi-card:hover{border-color:var(--border-medium);transform:translateY(-2px)}.kpi-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:11.5px;font-weight:600}.kpi-icon-wrap{border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.kpi-value{color:var(--text-primary);letter-spacing:-.5px;font-size:21px;font-weight:800;font-family:var(--font-mono);margin-bottom:8px}.kpi-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}@media (width<=520px){.kpi-grid{grid-template-columns:1fr;gap:12px}.kpi-card{padding:14px}.kpi-value{font-size:18px}}.badge{border-radius:var(--radius-full);align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-info{background:var(--info-light);color:var(--info)}.badge-purple{background:var(--purple-light);color:var(--purple)}.progress-bar-wrap{background-color:var(--bg-card-inner);border-radius:var(--radius-full);width:100%;height:7px;position:relative;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-bar-fill.fill-primary{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.progress-bar-fill.fill-success{background:linear-gradient(90deg,#10b981,#34d399)}.progress-bar-fill.fill-warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.progress-bar-fill.fill-danger{background:linear-gradient(90deg,#ef4444,#f87171)}.table-responsive{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--border-subtle);scrollbar-width:thin;width:100%;overflow-x:auto}.table-responsive::-webkit-scrollbar{height:6px}.app-table{border-collapse:collapse;text-align:left;width:100%;min-width:650px;font-size:13px}.app-table.table-rfk{min-width:820px}.app-table.table-spj{min-width:1080px}.app-table.table-kas{min-width:760px}.table-scroll-hint{color:var(--text-muted);background:var(--bg-card-inner);border-bottom:1px solid var(--border-subtle);text-align:right;letter-spacing:.2px;padding:6px 12px;font-size:11px;display:none}@media (width<=768px){.table-scroll-hint{display:block}.app-table th,.app-table td{padding:10px;font-size:12px}}.app-table th{background-color:var(--bg-card-inner);color:var(--text-secondary);border-bottom:1px solid var(--border-medium);white-space:nowrap;padding:12px 14px;font-weight:600}.app-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle;padding:12px 14px}.app-table tbody tr:hover{background-color:var(--bg-card-hover)}.app-table .col-mono{font-family:var(--font-mono);white-space:nowrap}.app-table .col-number{text-align:right;font-family:var(--font-mono);white-space:nowrap}.app-table .col-nowrap{white-space:nowrap}.financial-cell{background:var(--bg-card-inner);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);text-align:left;flex-direction:column;gap:4px;min-width:200px;padding:8px 12px;display:flex}.financial-row{justify-content:space-between;align-items:center;font-size:12px;line-height:1.35;display:flex}.financial-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;flex-shrink:0;margin-right:10px;font-size:10.5px;font-weight:600}.financial-val{font-family:var(--font-mono);white-space:nowrap;font-weight:600}.app-table tfoot td{background-color:var(--bg-card-inner);border-top:2px solid var(--border-medium);font-weight:700}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-secondary);font-size:12.5px;font-weight:600}.form-control{background-color:var(--bg-input);border:1px solid var(--border-medium);width:100%;color:var(--text-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);box-sizing:border-box;outline:none;padding:9px 12px;font-family:inherit;font-size:13.5px}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}textarea.form-control{resize:vertical;min-height:80px}.modal-overlay{background-color:var(--bg-modal-overlay);-webkit-backdrop-filter:blur(6px);z-index:100;opacity:0;visibility:hidden;transition:all var(--transition-normal);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-overlay.open{opacity:1;visibility:visible}.modal-dialog{background-color:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-xl);width:100%;max-width:620px;max-height:90vh;box-shadow:var(--shadow-xl);transition:all var(--transition-normal);box-sizing:border-box;overflow-y:auto;transform:translateY(20px)scale(.97)}.modal-dialog.modal-lg{max-width:900px}.modal-dialog.modal-xl{max-width:1100px}.modal-overlay.open .modal-dialog{transform:translateY(0)scale(1)}@media (width<=640px){.modal-overlay{align-items:flex-end;padding:10px 6px}.modal-dialog{border-bottom-right-radius:0;border-bottom-left-radius:0;max-height:94vh;max-width:100%!important}.modal-header{padding:14px 16px}.modal-body{padding:16px 14px}.modal-footer{flex-wrap:wrap;padding:12px 14px}.modal-footer .btn{flex:auto}}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-title{color:var(--text-primary);font-size:16px;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);width:32px;height:32px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;display:flex}.modal-close:hover{background-color:var(--bg-card-hover);color:var(--text-primary)}.modal-body{padding:22px}.modal-footer{border-top:1px solid var(--border-subtle);background-color:var(--bg-card-inner);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);justify-content:flex-end;align-items:center;gap:10px;padding:16px 22px;display:flex}.toast-container{z-index:150;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{pointer-events:auto;background-color:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-primary);opacity:0;transition:all var(--transition-normal);align-items:center;gap:10px;max-width:380px;padding:12px 18px;font-size:13px;font-weight:500;display:flex;transform:translateY(20px)}.toast.show{opacity:1;transform:translateY(0)}.toast.toast-success{border-left:4px solid var(--success)}.toast.toast-danger{border-left:4px solid var(--danger)}.toast.toast-warning{border-left:4px solid var(--warning)}.toast.toast-info{border-left:4px solid var(--primary)}.kanban-mobile-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;margin-bottom:8px;padding-bottom:12px;display:none;overflow-x:auto}.kanban-mobile-tabs::-webkit-scrollbar{display:none}.kanban-board{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:16px;padding-bottom:16px;display:flex;overflow-x:auto}.kanban-column{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);scroll-snap-align:start;flex-direction:column;flex:0 0 290px;min-width:290px;max-height:calc(100vh - 210px);display:flex}.kanban-col-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.kanban-col-title{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.kanban-cards-wrap{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.kanban-card{background-color:var(--bg-card-inner);border:1px solid var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;flex-shrink:0;gap:8px;padding:14px;display:flex;position:relative;overflow:hidden}.kanban-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.kanban-card-header{justify-content:space-between;align-items:center;display:flex}.kanban-card-title{color:var(--text-primary);word-break:break-word;margin:0;font-size:13.5px;font-weight:600;line-height:1.45}.kanban-card-vendor{color:var(--text-secondary);align-items:center;gap:4px;font-size:11px;display:flex}.kanban-card-pagu{font-family:var(--font-mono);color:var(--primary);margin-top:2px;font-size:13px;font-weight:700}.kanban-card-footer{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:4px;padding-top:6px;font-size:11px;display:flex}.kanban-stage-nav{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;align-items:center;gap:2px;padding:2px 4px;display:inline-flex}.kanban-mini-btn{color:var(--text-secondary);cursor:pointer;width:18px;height:20px;transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.kanban-mini-btn:hover:not(:disabled){background:var(--primary-light);color:var(--primary)}.kanban-mini-btn:disabled{opacity:.25;cursor:not-allowed}.kanban-stage-indicator{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:0 4px}.kanban-card-progress{background:var(--primary);border-radius:0 2px 2px 0;height:3px;transition:width .3s;position:absolute;bottom:0;left:0}.kanban-card-progress.complete{background:var(--success)}@media (width<=768px){.kanban-mobile-tabs{display:flex}.kanban-board{gap:12px;scroll-padding:0 12px}.kanban-column{flex:0 0 calc(100vw - 44px);min-width:calc(100vw - 44px);max-height:70vh}}.dashboard-charts-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:20px;margin-bottom:24px;display:grid}.dashboard-bottom-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;display:grid}@media (width<=640px){.dashboard-charts-grid,.dashboard-bottom-grid{grid-template-columns:1fr;gap:14px;margin-bottom:16px}}.rfk-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin-bottom:20px;display:grid}@media (width<=480px){.rfk-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.rfk-kpi-grid .card{padding:10px 12px!important}}.kas-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin-bottom:20px;display:grid}@media (width<=480px){.kas-kpi-grid{grid-template-columns:1fr;gap:10px}}.sk-header{background:var(--bg-card-inner);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px;display:flex}.sk-header-right{text-align:right;flex-shrink:0;align-items:center;gap:16px;display:flex}@media (width<=640px){.sk-header{flex-direction:column;align-items:stretch;padding:14px}.sk-header-right{text-align:left;border-top:1px dashed var(--border-subtle);justify-content:space-between;align-items:center;width:100%;margin-top:4px;padding-top:10px;display:flex}}.spj-filter-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}@media (width<=640px){.spj-filter-actions{width:100%}.spj-filter-actions .btn{text-align:center;flex:auto;padding:6px 8px;font-size:11px}}.dokumen-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;display:grid}.pengaturan-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px;display:grid}.spj-checklist-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px;display:grid}@media (width<=640px){.pengaturan-grid{grid-template-columns:1fr;gap:16px}.spj-checklist-grid{grid-template-columns:1fr}}.laporan-signatures{page-break-inside:avoid;flex-wrap:wrap;justify-content:space-between;gap:24px;margin-top:50px;display:flex}@media (width<=640px){.laporan-signatures{justify-content:center;margin-top:30px}.laporan-signatures>div{max-width:280px;width:100%!important}}@media print{body{font-size:11pt;color:#000!important;background-color:#fff!important}.app-sidebar,.app-topbar,.page-actions,.btn,.toast-container,.modal-overlay,.no-print{display:none!important}.app-main{margin:0!important;padding:0!important}.app-content{max-width:100%!important;padding:0!important}.print-kop{text-align:center;border-bottom:3px double #000;margin-bottom:20px;padding-bottom:12px;display:block!important}.print-kop-title{text-transform:uppercase;font-size:14pt;font-weight:700}.print-kop-sub{margin-top:4px;font-size:10pt}.app-table{color:#000!important;border:1px solid #000!important;font-size:9pt!important}.app-table th,.app-table td{color:#000!important;background:0 0!important;border:1px solid #000!important;padding:6px 8px!important}.signature-section{page-break-inside:avoid;justify-content:space-between;margin-top:40px;display:flex!important}.signature-box{text-align:center;width:250px}.signature-space{height:70px}}.print-kop,.signature-section{display:none}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-info{color:var(--info)}.font-mono{font-family:var(--font-mono)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.w-full{width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-container{animation:.25s ease-out fadeIn}.pulse-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.pulse-dot.dot-success{background-color:var(--success);box-shadow:0 0 0 2px #10b98133}.pulse-dot.dot-warning{background-color:var(--warning);box-shadow:0 0 0 2px #f59e0b33}.pulse-dot.dot-danger{background-color:var(--danger);box-shadow:0 0 0 2px #ef444433}
