*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;background:#f3f4f6;color:#1f2937;font-size:14px}.topbar{background:#1f3864;color:#fff;padding:12px 24px;display:flex;align-items:center;gap:24px;box-shadow:0 1px 3px #0000001a}.topbar h1{margin:0;font-size:18px;font-weight:600}.topbar .sub{font-size:12px;opacity:.75}.tabs{display:flex;gap:0;background:#fff;border-bottom:1px solid #e5e7eb;padding:0 24px}.tab{padding:12px 18px;cursor:pointer;border-bottom:2px solid transparent;font-weight:500;color:#6b7280;text-decoration:none}.tab.active{color:#1f3864;border-color:#1f3864}.tab:hover:not(.active){color:#1f3864;background:#f9fafb}.container{padding:24px;max-width:1400px;margin:0 auto}.panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000000f;margin-bottom:16px}.panel h2{margin:0 0 12px;font-size:16px;color:#1f3864}.panel h3{margin:16px 0 8px;font-size:14px;color:#2e75b6;font-weight:600}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}label{display:block;font-size:12px;color:#6b7280;margin-bottom:4px;font-weight:500}input,select,textarea{width:100%;padding:7px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:#2e75b6;box-shadow:0 0 0 3px #2e75b626}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#1f3864;color:#fff;text-align:left;padding:8px 10px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px}th.right,td.right{text-align:right}th.center,td.center{text-align:center}td{padding:6px 10px;border-bottom:1px solid #e5e7eb;vertical-align:middle}tr:hover td{background:#f9fafb}td input,td select{padding:5px 8px;font-size:13px}.btn{padding:8px 14px;border:none;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:all .15s;font-family:inherit}.btn-primary{background:#1f3864;color:#fff}.btn-primary:hover{background:#2e75b6}.btn-secondary{background:#fff;color:#1f3864;border:1px solid #d1d5db}.btn-secondary:hover{background:#f3f4f6}.btn-danger{background:#fff;color:#dc2626;border:1px solid #fca5a5;padding:5px 10px;font-size:12px}.btn-danger:hover{background:#fef2f2}.btn-add{background:#ecfdf5;color:#047857;border:1px dashed #6ee7b7}.btn-add:hover{background:#d1fae5}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.summary{background:#fff;border-radius:8px;padding:18px;box-shadow:0 1px 3px #0000000f;position:sticky;top:16px}.summary-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed #e5e7eb;font-size:13px}.summary-row.total{border-bottom:2px solid #1f3864;font-weight:700;padding:10px 0;font-size:15px;color:#1f3864}.summary-row.section{font-weight:600;color:#1f3864;padding-top:12px;border-bottom:1px solid #1f3864}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.badge-green{background:#d1fae5;color:#047857}.badge-amber{background:#fef3c7;color:#92400e}.badge-gray{background:#f3f4f6;color:#6b7280}.num{font-variant-numeric:tabular-nums}.toolbar{display:flex;gap:8px;margin-bottom:12px;align-items:center;flex-wrap:wrap}.search{flex:1;max-width:320px}.empty{text-align:center;padding:40px 20px;color:#9ca3af}.layout-calc{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}@media (max-width: 1100px){.layout-calc{grid-template-columns:1fr}.summary{position:static}}.pill{padding:2px 6px;background:#eff6ff;color:#1e40af;border-radius:4px;font-size:11px;font-weight:500}.pill-warn{background:#fef3c7;color:#92400e}.delete-row{color:#dc2626;cursor:pointer;padding:4px}.help{font-size:12px;color:#6b7280;margin-top:4px}.header-flex{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}@media print{.topbar,.tabs,.toolbar,.actions,.delete-row{display:none!important}body{background:#fff}.panel,.summary{box-shadow:none;border:1px solid #e5e7eb}.layout-calc{grid-template-columns:1fr}.summary{position:static;page-break-before:always}}
