:root{--green:#c8e690;--green-deep:#9fcb5c;--tint:#d4f4a8;--cream:#fdfee9;--ink:#16170f;--grey:#5c5e4c;--line:#e4e6c9;--surface:#fff;--ok:#1f5e2e;--ok-wash:#dce9c8;--pending:#c56a1a;--pending-wash:#f6e2cc;--rej:#e0241b;--rej-wash:#f8d4d2;--head:"Bricolage Grotesque", sans-serif;--body:"Hanken Grotesk", sans-serif;--r:14px;--shadow:0 1px 2px #16170f0a, 0 8px 24px #16170f0d}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--body);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--head);letter-spacing:-.01em;margin:0;font-weight:800;line-height:1.05}a{color:inherit;text-decoration:none}button{font-family:inherit}.mono-num{font-variant-numeric:tabular-nums}.topbar{z-index:40;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:22px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--head);letter-spacing:-.02em;color:var(--ink);font-size:23px;font-weight:800}.chip{text-transform:uppercase;letter-spacing:.09em;color:var(--grey);border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:700}.navlinks{gap:6px;margin-left:8px;display:flex}.navlinks a{color:var(--ink);background:var(--tint);border-radius:9px;align-items:center;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex}.qbadge{background:var(--ink);min-width:19px;height:19px;color:var(--green);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;margin-left:8px;padding:0 6px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.topbar .spacer{flex:1}.who{align-items:center;gap:10px;display:flex}.avatar{background:var(--ink);width:34px;height:34px;color:var(--green);font-family:var(--head);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.who .meta{text-align:right;line-height:1.15}.who .meta b{font-size:13.5px}.who .meta span{color:var(--grey);font-size:11.5px;display:block}.signout{color:var(--grey);background:var(--cream);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:7px 11px;font-size:12.5px;font-weight:600}.signout:hover{color:var(--ink)}.page{max-width:1180px;margin:0 auto;padding:34px 28px 80px}.crumb{color:var(--grey);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;font-size:13px;display:flex}.crumb a{font-weight:600}.crumb a:hover{color:var(--ink)}.crumb .sep{opacity:.5}.pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.pagehead h1{font-size:34px}.pagehead .sub{color:var(--grey);margin-top:6px;font-size:14px}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:700;transition:transform 60ms,filter .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--green);color:var(--ink);border-color:var(--green-deep)}.btn-primary:hover{filter:brightness(.97)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-ghost:hover{background:var(--cream)}.btn-sm{border-radius:8px;padding:7px 11px;font-size:12.5px}.btn-approve{background:var(--ok-wash);color:var(--ok);border-color:#0000}.btn-reject{background:var(--rej-wash);color:var(--rej);border-color:#0000}.btn-approve.sel{outline:2px solid var(--ok)}.btn-reject.sel{outline:2px solid var(--rej)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.listcard{margin-bottom:14px;padding:22px 24px;transition:border-color .15s,transform 80ms;display:block}.listcard:hover{border-color:var(--green-deep);transform:translateY(-1px)}.row-top{justify-content:space-between;align-items:center;gap:14px;display:flex}.row-title{font-family:var(--head);font-size:19px;font-weight:700}.row-code{color:var(--grey);margin-top:2px;font-size:12px;font-weight:600}.metricrow{flex-wrap:wrap;gap:0;margin-top:18px;display:flex}.metricrow .m{border-right:1px solid var(--line);margin-right:34px;padding-right:34px}.metricrow .m:last-child{border-right:0}.metricrow .m .v{font-family:var(--head);font-size:20px;font-weight:700}.metricrow .m .l{color:var(--grey);text-transform:uppercase;letter-spacing:.07em;margin-top:3px;font-size:11px}table{border-collapse:collapse;width:100%}thead th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--grey);padding:0 16px 12px;font-size:11px;font-weight:700}thead th.num,tbody td.num{text-align:right}tbody td{border-top:1px solid var(--line);vertical-align:middle;padding:15px 16px;font-size:14px}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--cream)}.tcell-strong{font-weight:600}.tsub{color:var(--grey);margin-top:2px;font-size:12px}.doclink{color:var(--ink);border:1px solid var(--line);background:var(--cream);border-radius:8px;align-items:center;gap:6px;padding:5px 9px;font-size:12.5px;font-weight:600;display:inline-flex}.rowlink{color:inherit}.status{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:700;display:inline-flex}.status:before{content:"";border-radius:50%;width:7px;height:7px}.s-approved{background:var(--ok-wash);color:var(--ok)}.s-approved:before{background:var(--ok)}.s-part{background:var(--pending-wash);color:var(--pending)}.s-part:before{background:var(--pending)}.s-pending{background:var(--pending-wash);color:var(--pending)}.s-pending:before{background:var(--pending)}.s-submitted{background:var(--ok-wash);color:var(--ok)}.s-submitted:before{background:var(--ok)}.s-assessment{background:var(--pending-wash);color:var(--pending)}.s-assessment:before{background:var(--pending)}.s-rejected{background:var(--rej-wash);color:var(--rej)}.s-rejected:before{background:var(--rej)}.s-draft{background:var(--cream);color:var(--grey);border:1px solid var(--line)}.s-draft:before{background:var(--grey)}.gpanel{color:var(--ink);background:linear-gradient(115deg, var(--tint) 0%, var(--green) 48%, var(--green-deep) 100%);border:1px solid var(--green-deep);border-radius:20px;margin-bottom:26px;padding:30px 32px}.gpanel h2{font-size:27px}.gpanel .gsub{color:#3d4a26;margin-top:5px;font-size:13.5px;font-weight:600}.gtiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:24px;display:grid}.gtile{background:var(--cream);border:1px solid #16170f0f;border-radius:13px;padding:16px 17px}.gtile .v{font-family:var(--head);font-size:24px;font-weight:800}.gtile .l{text-transform:uppercase;letter-spacing:.07em;color:var(--grey);margin-top:4px;font-size:11px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:4px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px 22px}.stat-tile .sv{font-family:var(--head);letter-spacing:-.01em;font-size:30px;font-weight:800;line-height:1.05}.stat-tile .sl{text-transform:uppercase;letter-spacing:.06em;color:var(--grey);margin-top:9px;font-size:12px;font-weight:700}.stat-tile .ss{color:var(--grey);margin-top:5px;font-size:12.5px}.barchart{flex-direction:column;gap:16px;display:flex}.barrow{flex-direction:column;gap:7px;display:flex}.barlabel{justify-content:space-between;align-items:baseline;gap:14px;font-size:13.5px;display:flex}.barlabel .barname{font-weight:600}.barlabel .barval{color:var(--grey);white-space:nowrap;font-weight:600}.bartrack{background:var(--line);border-radius:6px;height:13px;overflow:hidden}.barfill{background:var(--green-deep);border-radius:6px;height:100%}.segbar{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:4px;padding:4px;display:inline-flex}.segbar .seg{color:var(--grey);border-radius:7px;padding:6px 12px;font-size:13px;font-weight:600}.segbar .seg:hover{color:var(--ink)}.segbar .seg.active{background:var(--tint);color:var(--ink)}.cc-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.cc-head h1{max-width:640px;font-size:27px}.cc-ref{color:var(--grey);letter-spacing:.04em;margin-bottom:7px;font-size:12.5px;font-weight:700}.cc-summary{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);grid-template-columns:repeat(auto-fit,minmax(135px,1fr));margin-bottom:8px;display:grid;overflow:hidden}.cc-summary .cell{border-right:1px solid var(--line);padding:16px 18px}.cc-summary .cell:last-child{border-right:0}.cc-summary .l{text-transform:uppercase;letter-spacing:.07em;color:var(--grey);font-size:11px}.cc-summary .v{font-family:var(--head);margin-top:5px;font-size:20px;font-weight:800}.cc-summary .v.ok{color:var(--ok)}.cc-summary .v.rej{color:var(--rej)}.cc-summary .v.pend{color:var(--pending)}.actions-row{flex-wrap:wrap;gap:9px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:26px 0 0;display:flex}.tabs a{color:var(--grey);border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.tabs a.active{color:var(--ink);border-bottom-color:var(--green-deep)}.tabbadge{background:var(--cream);border:1px solid var(--line);color:var(--grey);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.tabpane{padding:22px 0}.grid-foot{justify-content:flex-end;margin-top:8px;display:flex}.grid-foot .box{min-width:300px}.grid-foot .ln{justify-content:space-between;padding:9px 16px;font-size:14px;display:flex}.grid-foot .ln.tot{border-top:1px solid var(--line);font-family:var(--head);padding-top:13px;font-size:17px;font-weight:800}.grid-foot .ln .grey{color:var(--grey)}input.cell-in,textarea.cell-in,select.cell-in{font-family:var(--body);border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px}input.cell-in:focus,textarea.cell-in:focus,select.cell-in:focus{border-color:var(--green-deep);outline:none;box-shadow:0 0 0 3px #9fcb5c2e}input.cell-in.right{text-align:right}.num-in{width:92px}.field{margin-bottom:16px}.field label{text-transform:uppercase;letter-spacing:.06em;color:var(--grey);margin-bottom:7px;font-size:12px;font-weight:700;display:block}.x-line{color:var(--grey);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:16px;font-weight:700}.x-line:hover{color:var(--rej)}.subtabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.subtabs a{border:1px solid var(--line);background:var(--surface);color:var(--grey);border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-size:13px;font-weight:600;display:flex}.subtabs a.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}.subtabs a .cnt{opacity:.7;font-size:11px}.filelist{flex-direction:column;gap:10px;display:flex}.fileitem{border:1px solid var(--line);background:var(--surface);border-radius:11px;align-items:center;gap:13px;padding:13px 15px;display:flex}.fileicon{background:var(--ok-wash);width:34px;height:34px;color:var(--ok);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:flex}.fileitem .fmeta{flex:1}.fileitem .fmeta b{font-size:13.5px;font-weight:600}.fileitem .fmeta span{color:var(--grey);margin-top:2px;font-size:11.5px;display:block}.dropzone{border:1.5px dashed var(--green-deep);text-align:center;color:var(--grey);background:#c8e6901f;border-radius:12px;margin-top:14px;padding:22px;font-size:13px}.dropzone b{color:var(--ink)}.thread{flex-direction:column;gap:14px;margin-bottom:22px;display:flex}.msg{gap:13px;display:flex}.msg .mav{width:34px;height:34px;font-family:var(--head);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.msg.hc .mav{background:var(--ink);color:var(--green)}.msg.sc .mav{background:var(--green);color:var(--ink)}.msg .bubble{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex:1;padding:13px 15px}.msg .bubble .whorow{align-items:baseline;gap:8px;font-size:13px;font-weight:700;display:flex}.msg .bubble .whorow .role{color:var(--grey);font-size:11px;font-weight:600}.msg .bubble .whorow .t{color:var(--grey);margin-left:auto;font-size:11px;font-weight:500}.msg .bubble p{white-space:pre-wrap;margin:7px 0 0;font-size:14px}.composer{flex-direction:column;gap:10px;max-width:680px;display:flex}.helper{color:var(--grey);margin-top:6px;font-size:12.5px}.barnote{background:var(--pending-wash);color:#7a3f06;border:1px solid #ecc9a6;border-radius:11px;align-items:flex-start;gap:10px;margin-bottom:18px;padding:13px 15px;font-size:13.5px;display:flex}.login-wrap{background:linear-gradient(125deg, var(--tint) 0%, var(--green) 45%, var(--green-deep) 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid #16170f0d;border-radius:22px;width:100%;max-width:430px;padding:38px 36px;box-shadow:0 30px 70px #16170f2e}.login-card .lw{font-family:var(--head);letter-spacing:-.02em;margin-bottom:4px;font-size:30px;font-weight:800}.login-card .lt{color:var(--grey);margin-bottom:26px;font-size:14px}.login-card input{border:1px solid var(--line);background:var(--cream);border-radius:11px;width:100%;padding:13px 14px;font-size:15px}.login-card input:focus{border-color:var(--green-deep);outline:none;box-shadow:0 0 0 3px #9fcb5c33}.login-card .btn-primary{justify-content:center;width:100%;margin-top:8px;padding:13px;font-size:15px}.login-err{background:var(--rej-wash);color:var(--rej);border-radius:10px;margin-bottom:14px;padding:10px 13px;font-size:13px;font-weight:600}@media (max-width:760px){.pagehead h1{font-size:27px}.navlinks{display:none}}tr.clickable:hover td{background:#fbfcf0}
