:root{--navy:#0b2a4a;--navy-2:#123a60;--navy-deep:#081e36;--teal:#0e7c7b;--teal-dark:#0a5f5e;--gold:#c9962f;--gold-light:#e9cd8d;--bg:#f4f2ec;--card:#fff;--border:#e3decf;--text:#1f2933;--text-muted:#6b7280;--danger:#b3261e;--danger-bg:#fbeae9;--success:#1f7a45;--radius:10px;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif:Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}#root{flex-direction:column;min-height:100vh;display:flex}.app-header{background:linear-gradient(135deg, var(--navy-deep), var(--navy) 60%, var(--navy-2));color:#fff;padding:18px 20px;position:relative;overflow:hidden}.app-header:after{content:"";border:18px solid #c9962f1f;border-radius:50%;width:180px;height:180px;position:absolute;top:-40px;right:-40px}.app-header h1{font-family:var(--font-serif);letter-spacing:.3px;margin:0;font-size:21px;font-weight:700}.app-header p{color:#ffffffb8;margin:4px 0 0;font-size:12.5px}.header-rule{background:linear-gradient(90deg, var(--gold) 0%, #c9962f26 100%);height:3px}.tab-bar{background:var(--card);border-bottom:1px solid var(--border);gap:4px;padding:0 14px;display:flex;overflow-x:auto}.tab-btn{appearance:none;cursor:pointer;color:var(--text-muted);white-space:nowrap;font-size:13.5px;font-weight:600;font-family:var(--font-body);background:0 0;border:none;border-bottom:3px solid #0000;padding:13px 14px 11px}.tab-btn.active{color:var(--navy);border-bottom-color:var(--teal)}.tab-btn:hover{color:var(--navy)}main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:16px}.btn{appearance:none;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-body);white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:9px 14px;display:inline-flex}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-dark)}.btn-outline{color:var(--navy);border:1px solid var(--border);background:#fff}.btn-outline:hover{border-color:var(--teal);color:var(--teal-dark)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-danger:hover{background:#f5d6d4}.btn-ghost{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:6px 8px}.btn-ghost:hover{color:var(--danger)}.btn-sm{padding:6px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.chips-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.chip .chip-sub{color:var(--text-muted);font-size:11.5px;font-weight:400}.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.chip.active .chip-sub{color:#ffffffb3}.chip-add{color:var(--teal-dark);border-style:dashed}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:18px}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state h3{color:var(--text);font-family:var(--font-serif);margin-bottom:6px;font-size:19px}.form-row{flex-wrap:wrap;gap:12px;margin-bottom:10px;display:flex}.field{flex-direction:column;flex:1;gap:5px;min-width:180px;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:11.5px;font-weight:700}.field input,.field select{border:1px solid var(--border);font-size:13.5px;font-family:var(--font-body);color:var(--text);background:#fff;border-radius:7px;padding:9px 10px}.field input:focus,.field select:focus{outline:2px solid var(--teal);outline-offset:0;border-color:var(--teal)}.kegiatan-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.kegiatan-head .field{min-width:220px}.kegiatan-actions{align-items:center;gap:6px;padding-top:18px;display:flex}.total-card{background:linear-gradient(135deg, var(--navy-deep), var(--navy) 70%);border-radius:var(--radius);color:#fff;border:1px solid var(--gold);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:20px 22px;display:flex;position:relative}.total-card:before{content:"";pointer-events:none;border:1px solid #e9cd8d59;border-radius:6px;position:absolute;inset:5px}.total-label{letter-spacing:1px;text-transform:uppercase;color:var(--gold-light);margin-bottom:4px;font-size:11.5px;font-weight:700}.total-value{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:32px;font-weight:700}.total-sub{color:#ffffffa6;margin-top:4px;font-size:12px}.total-meta{flex-wrap:wrap;gap:22px;display:flex}.total-meta .m-label{text-transform:uppercase;letter-spacing:.5px;color:#ffffff8c;font-size:10.5px}.total-meta .m-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:980px;font-size:12.8px}thead th{color:var(--navy);text-align:left;text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid var(--border);white-space:nowrap;background:#f0eee6;padding:9px 8px;font-size:11px;font-weight:700}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:7px 8px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#faf9f5}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.total-col{color:var(--teal-dark);font-weight:700}tfoot td{border-top:2px solid var(--navy);background:#f8f6f0;padding:10px 8px;font-weight:700}.row-input{width:100%;font-size:12.8px;font-family:var(--font-body);color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 6px}.row-input:hover{border-color:var(--border)}.row-input:focus{border-color:var(--teal);background:#fff;outline:none}.row-input.num-input{text-align:right}.row-input.is-custom{color:var(--teal-dark);background-color:#ebf8f8;font-weight:600}select.row-input{appearance:auto}.name-cell{min-width:160px}.date-cell{min-width:128px}.gol-cell{min-width:100px}.check-cell{text-align:center}.badge{color:var(--teal-dark);background:#eaf4f3;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.table-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;display:flex}.export-actions{flex-wrap:wrap;gap:8px;display:flex}.hint{color:var(--text-muted);margin-top:6px;font-size:12px}.note-box{border:1px solid var(--gold-light);color:#6b5418;background:#fbf7ec;border-radius:8px;margin-top:10px;padding:10px 12px;font-size:12px}.search-box{margin-bottom:12px}.search-box input{border:1px solid var(--border);width:100%;max-width:340px;font-size:13.5px;font-family:var(--font-body);border-radius:8px;padding:9px 12px}#toast{background:var(--navy-deep);color:#fff;opacity:0;pointer-events:none;z-index:50;border-radius:8px;padding:10px 18px;font-size:13px;transition:all .25s;position:fixed;bottom:18px;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 6px 18px #00000040}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (width<=680px){.app-header h1{font-size:18px}.total-value{font-size:26px}.kegiatan-actions{padding-top:0}main{padding:12px}table{min-width:900px}}.app-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);margin-top:40px;padding:24px;font-size:12.8px}@media print{.app-header,.tab-bar,.chips-row,.kegiatan-actions,.table-actions,#toast,.no-print{display:none!important}body{background:#fff}.card,.total-card{box-shadow:none;border:1px solid #000}.total-card{color:#000!important;background:#fff!important}.total-label,.m-label{color:#444!important}.total-value,.m-value{color:#000!important}}
