:root{--green: #2C3932;--cream: #FDF6EA;--teal: #169C9A;--orange: #FA9A42;--coral: #E15C3D;--forest: #3D9072;--burgundy: #A74B40;--ink: #2C3932;--muted: #6b766f;--line: #e3e0d8;--bg: #f7f4ee;--card: #ffffff;--tint: #eef7f6;font-family:Neue Haas Grotesk Display Pro,Helvetica Neue,Helvetica,Arial,system-ui,sans-serif;color:var(--ink);font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1{font-size:26px;margin:0 0 4px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}h2{font-size:17px;margin:0 0 12px;font-weight:600}h3{font-size:15px;margin:0 0 10px;font-weight:600}a{color:var(--teal)}.muted{color:var(--muted)}.small{font-size:12.5px}.tiny{font-size:11px;color:var(--muted)}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.r{text-align:right}.pad{padding:24px}.center{display:flex;align-items:center;justify-content:center;min-height:60vh}.warn-text{color:var(--burgundy)}.ok-text{color:var(--forest)}.top{background:var(--green);color:var(--cream);display:flex;align-items:center;gap:28px;padding:0 24px;height:56px;position:sticky;top:0;z-index:5}.brand{color:var(--cream);text-decoration:none;display:flex;align-items:baseline;gap:8px}.wordmark{font-weight:700;font-size:24px;letter-spacing:-.5px;color:inherit}.wordmark.big{font-size:56px;color:var(--green)}.product{font-size:15px;opacity:.85}.top nav{display:flex;gap:4px;flex:1}.top nav a{color:var(--cream);text-decoration:none;padding:7px 12px;border-radius:6px;opacity:.8}.top nav a.on,.top nav a:hover{background:#fdf6ea1f;opacity:1}.who{font-size:13px;display:flex;align-items:center;gap:10px}.role{background:var(--teal);color:#fff;border-radius:10px;padding:1px 8px;font-size:11px}main{padding:24px;max-width:1640px;margin:0 auto}.foot{text-align:center;color:var(--muted);font-size:12px;padding:16px}.signin{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cream)}.signin-card{background:#fff;padding:40px;border-radius:14px;max-width:400px;text-align:center;box-shadow:0 4px 24px #2c393214}.signin-card h1{justify-content:center;font-size:22px;margin-bottom:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:16px}.card.flush{padding:0;overflow:hidden}.card.error{color:var(--coral)}.card.narrow{max-width:460px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head p{margin:4px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.crumbs{font-size:12.5px;color:var(--muted);margin-bottom:4px}.crumbs a{color:var(--muted)}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:7px;font:inherit;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--teal)}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}.btn.primary:hover:not(:disabled){background:#12807e}.btn.danger-outline{color:var(--coral)}.btn.small{padding:4px 10px;font-size:12.5px}.btn.wide{width:100%;padding:12px;margin:12px 0 6px}.btn:disabled{opacity:.5;cursor:not-allowed}.link{background:none;border:0;color:var(--teal);cursor:pointer;font:inherit;padding:4px 0}.link.light{color:var(--cream);opacity:.8}.link.danger{color:var(--coral)}.x{background:none;border:0;font-size:18px;color:var(--muted);cursor:pointer;line-height:1;padding:2px 6px}.x:hover{color:var(--coral)}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:10px;padding:14px 16px;cursor:pointer}.kpi.draft{border-left-color:var(--orange)}.kpi.approved{border-left-color:var(--teal)}.kpi.contracted{border-left-color:var(--forest)}.kpi-label{font-size:12.5px;color:var(--muted)}.kpi-value{font-size:26px;font-weight:600}.kpi-sub{font-size:12.5px;color:var(--muted)}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tabs button{border:1px solid transparent;background:none;padding:6px 12px;border-radius:7px;cursor:pointer;font:inherit;color:var(--muted)}.tabs button.on{background:#fff;border-color:var(--line);color:var(--ink);font-weight:600}.count{background:var(--bg);border-radius:8px;padding:0 6px;font-size:11.5px;margin-left:3px}.search{min-width:280px}input,select,textarea{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:#fff;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid rgba(22,156,154,.35);border-color:var(--teal)}input:disabled,select:disabled,textarea:disabled{background:#faf9f6;color:var(--ink)}.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px}.form label,.lbl{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted)}.form label input,.form label select,.form label textarea{color:var(--ink);font-size:14px}.span2{grid-column:1 / -1}.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.pill{border:1px solid var(--line);background:#fff;border-radius:16px;padding:5px 12px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink)}.pill.on{background:var(--teal);color:#fff;border-color:var(--teal)}.radio{flex-direction:row!important;align-items:center;color:var(--ink)!important}.radio input{width:auto}.grid{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.grid th{text-align:left;font-size:11.5px;font-weight:600;color:var(--muted);padding:8px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fcfbf8}.grid td{padding:7px 8px;border-bottom:1px solid #f0ede6;vertical-align:middle}.grid th.r,.grid td.r{text-align:right}.grid tr.click{cursor:pointer}.grid tr.click:hover td{background:var(--tint)}.grid tfoot td{font-weight:600;border-bottom:0;border-top:1px solid var(--line)}.list td{padding:10px 8px}.table-wrap{overflow-x:auto;margin:0 -18px;padding:0 18px}.lines td{padding:4px}.lines th{padding:8px 4px}.lines select{min-width:64px;padding:6px 2px}.lines td:nth-child(3) select{width:70px}.who-cell{min-width:160px;max-width:180px}.who-cell .sub{margin-top:4px;font-size:12.5px}.num{width:58px;text-align:right;padding:6px 4px}.w-rate{width:70px}.w-role{width:84px;padding:6px 4px}.num.missing{border-color:var(--coral);background:#fff6f3}.calc{color:var(--ink);white-space:nowrap}.strong{font-weight:600}.disc{color:var(--burgundy)}.lines .cost{background:#f6fbfa}.lines th.cost{background:#eef7f6}.tag{display:inline-block;background:var(--bg);border-radius:8px;padding:1px 7px;font-size:11px;margin-left:6px;color:var(--muted);font-weight:400}.tag.soft{background:#fff3e6;color:#a05a1a}.chip{display:inline-block;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:600}.chip.draft{background:#fff1e2;color:#b4610f}.chip.approved{background:#e3f4f3;color:#0f7472}.chip.contracted{background:#e5f2ec;color:#2c6d55}h1 .chip{font-size:13px}.banner{border-radius:8px;padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.banner .x{margin-left:auto}.banner.ok{background:#e5f2ec}.banner.warn{background:#fff1e2}.banner.error{background:#fde9e4;color:#8d2a17}.banner.info{background:var(--tint)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.side-col{position:sticky;top:72px}.opt-head{margin:-18px -18px 14px;border-bottom:1px solid var(--line);background:#fcfbf8;border-radius:10px 10px 0 0}.opt-tabs{display:flex;overflow-x:auto}.opt-tab{border:0;background:none;padding:12px 16px;cursor:pointer;font:inherit;color:var(--muted);border-bottom:2px solid transparent;text-align:left;white-space:nowrap}.opt-tab.on{color:var(--ink);font-weight:600;border-bottom-color:var(--teal);background:#fff}.opt-tab.add{color:var(--teal)}.opt-sub{display:block;font-size:11.5px;font-weight:400;color:var(--muted)}.star{color:var(--orange);margin-right:4px}.opt-form{margin-bottom:14px;align-items:end}.opt-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;grid-column:1 / -1}.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.seg button{border:0;background:#fff;padding:7px 12px;cursor:pointer;font:inherit;color:var(--muted)}.seg button.on{background:var(--green);color:var(--cream)}.summary .big-num{font-size:32px;font-weight:600;margin:4px 0 2px}.rows{display:grid;grid-template-columns:1fr auto;gap:7px 10px;margin:14px 0 6px;font-size:13.5px}.rows dt{color:var(--muted)}.rows dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.rows .hl{color:var(--ink);font-weight:700;border-top:1px solid var(--line);padding-top:7px}.rows dd.hl span{color:var(--teal)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:12px}.step{font-size:12.5px;padding:8px;border-radius:6px;background:var(--bg);color:var(--muted)}.step.on{background:var(--green);color:var(--cream);font-weight:600}.step.on .tiny{color:var(--cream);opacity:.8}.step.done{background:#e5f2ec;color:var(--forest)}.status-btns{display:flex;gap:8px;flex-wrap:wrap}.ready{margin:0 0 10px;padding-left:18px;font-size:12.5px;color:var(--burgundy)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c393259;z-index:20;display:flex;justify-content:flex-end}.drawer-bg.center{justify-content:center;align-items:center}.drawer{width:440px;max-width:100%;background:#fff;height:100%;overflow-y:auto;padding:20px}.drawer-head{display:flex;justify-content:space-between;align-items:center}.ver{border-bottom:1px solid var(--line);padding:12px 0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.ver-opts{display:flex;flex-direction:column;gap:2px}.modal{width:440px;max-width:92vw}.modal-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.narrow-page{max-width:900px}.prose p{line-height:1.55}@media (max-width: 1100px){.layout{grid-template-columns:1fr}.side-col{position:static}}@media (max-width: 700px){main{padding:14px}.top{gap:12px;padding:0 14px}.top nav a:not(.on){display:none}.who{display:none}.kpis{grid-template-columns:1fr}.search{min-width:0;width:100%}.list th:nth-child(4),.list td:nth-child(4),.list th:nth-child(6),.list td:nth-child(6){display:none}}.seg button{white-space:nowrap}.lines td:nth-child(4) .num{width:64px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.filters select{width:auto;min-width:150px;padding:6px 8px;font-size:13px}.filters select.set{border-color:var(--teal);background:var(--tint)}.grid th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.grid th.sortable:hover,.grid th.sorted{color:var(--ink)}.grid th .arrow{opacity:.45;font-size:10px}.grid th.sorted .arrow{opacity:1;color:var(--teal)}.kpi.on{box-shadow:0 0 0 2px var(--teal) inset}.table-scroll{overflow-x:auto}.toolbar .search{width:340px;max-width:100%}.dates-info{grid-column:1 / -1;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:-4px;min-height:0}.dates-info:empty{display:none}
