:root{--olp:#1f5c52;--olp-dark:#143d37;--olp-light:#e7f0ee;--ink:#1a2320;--muted:#6b7a75;--line:#d9e2df;--bg:#f4f7f6;--card:#fff;--good:#1a7f4b;--bad:#b23b3b;--warn:#b8860b;--radius:10px;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{margin:0 0 .4em;font-weight:650}a{color:var(--olp)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:7px 13px;transition:background .12s,border-color .12s}button:hover{background:var(--olp-light)}button.primary{background:var(--olp);color:#fff;border-color:var(--olp)}button.primary:hover{background:var(--olp-dark)}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover{color:var(--ink);background:var(--olp-light)}button.sm{padding:4px 9px;font-size:13px}input,select,textarea{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:7px;width:100%;padding:6px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--olp-light);border-color:var(--olp)}.app-header{background:var(--olp);color:#fff;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;box-shadow:0 1px 4px #00000026}.brand{align-items:center;gap:12px;display:flex}.brand .logo{width:34px;height:34px;color:var(--olp);background:#fff;border-radius:8px;place-items:center;font-size:15px;font-weight:800;display:grid}.brand .name{font-size:16px;font-weight:700;line-height:1.1}.brand .tag{letter-spacing:2px;opacity:.8;text-transform:uppercase;font-size:10px}.container{max-width:1120px;margin:0 auto;padding:22px 24px 80px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:18px}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{justify-content:space-between;align-items:center;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.grid4{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=760px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}label.field{color:var(--muted);margin-bottom:10px;font-size:12px;display:block}label.field span{margin-bottom:3px;font-weight:600;display:block}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:9px 15px}.tab:hover{color:var(--ink);background:0 0}.tab.active{color:var(--olp);border-bottom-color:var(--olp);font-weight:650}table.sow{border-collapse:collapse;width:100%;font-size:13px}table.sow th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line);padding:6px 8px;font-size:11px;font-weight:600}table.sow td{border-bottom:1px solid var(--line);vertical-align:middle;padding:5px 8px}table.sow tr.off td{opacity:.4}table.sow input,table.sow select{padding:4px 6px;font-size:13px}table.sow input.num{text-align:right}.linetotal{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:26px 0 6px;display:flex}.section-head .role{color:var(--olp);font-size:12px;font-weight:600}.section-total{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.gen-desc{color:var(--muted);background:var(--olp-light);border-radius:8px;margin:4px 0 10px;padding:8px 12px;font-size:13px}.stat{background:var(--olp-light);border-radius:10px;padding:14px 16px}.stat .k{color:var(--muted);font-size:12px;font-weight:600}.stat .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:22px;font-weight:750}.stat.hero{background:var(--olp);color:#fff}.stat.hero .k{color:#fffc}.pos{color:var(--good)}.neg{color:var(--bad)}.chip{background:var(--olp-light);color:var(--olp-dark);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.pill-group{flex-wrap:wrap;gap:6px;display:flex}.tt{font-variant-numeric:tabular-nums}.right{text-align:right}.binder{margin-top:8px}.binder-cover,.binder-section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:18px}.binder-cover{border-top:4px solid var(--olp)}.binder-section h3{color:var(--olp-dark)}@media print{.app-header,.tabs,.no-print{display:none!important}body,.container{background:#fff}.container{max-width:none;padding:0}body.printing *{visibility:hidden!important}body.printing .print-target,body.printing .print-target *{visibility:visible!important}body.printing .print-target{width:100%;position:absolute;top:0;left:0}body.printing .no-print{display:none!important}.binder-cover,.binder-section{page-break-inside:avoid;border:none;border-bottom:1px solid #ccc;border-radius:0;margin:0 0 10px;padding:12px 0}table.sow{font-size:11px}.gen-desc{background:#f4f4f4}}
