:root{--ink:#16191d;--ink-soft:#5b6572;--line:#dfe3e8;--bg:#f4f6f8;--card:#fff;--accent:#0f766e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:20;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.spacer{flex:1}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:6px;padding:5px 10px;line-height:1.4}.btn:hover{background:#eef1f4}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.07)}.btn:disabled{opacity:.5;cursor:default}.layout{grid-template-columns:260px 1fr;align-items:start;gap:12px;padding:12px;display:grid}@media (width<=900px){.layout{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px}.panel h2{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 8px;font-size:12px}.week{gap:8px;display:grid}.weekrow{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}@media (width<=1100px){.weekrow{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.weekrow{grid-template-columns:1fr}}.day{background:var(--card);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:5px;min-height:122px;padding:6px;display:flex}.day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.day.weekend{background:#fafbfc}.day.over{border-color:var(--accent);background:#e7f5f3}.day>header{align-items:baseline;gap:6px;display:flex}.day .dow{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.day .dnum{font-weight:700}.chip{border-left:4px solid var(--c);border:1px solid var(--line);border-left:4px solid var(--c);cursor:grab;background:#fff;border-radius:6px;gap:1px;padding:4px 6px;font-size:12px;display:grid}.chip:active{cursor:grabbing}.chip .who{color:var(--ink-soft)}.chip .scope{color:var(--c);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:700}.chip.done{opacity:.55}.chip.hold{background:repeating-linear-gradient(135deg,#fff,#fff 6px,#fff4e5 6px 12px)}.tray{gap:6px;max-height:60vh;display:grid;overflow:auto}.legend{flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.dot{border-radius:2px;width:10px;height:10px;display:inline-block}.backdrop{z-index:50;background:#0f141973;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--card);border-radius:10px;width:min(460px,100%);max-height:90vh;padding:16px;overflow:auto}.dialog h3{margin:0 0 10px;font-size:15px}.fld{gap:3px;margin-bottom:9px;font-size:12.5px;display:grid}.fld>span{color:var(--ink-soft)}.fld input,.fld select,.fld textarea{border:1px solid var(--line);font:inherit;border-radius:6px;width:100%;padding:6px 8px}.row{gap:8px;display:flex}.row>*{flex:1}.muted{color:var(--ink-soft)}.err{color:#b3261e}.login{place-items:center;min-height:100vh;display:grid}.login form{background:var(--card);border:1px solid var(--line);border-radius:10px;width:min(340px,92vw);padding:22px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a.btn{color:var(--ink);display:inline-block}a.btn:hover{text-decoration:none}a.btn.primary{color:#fff}.small{font-size:12px}.pre{white-space:pre-wrap}.brand{color:var(--ink);letter-spacing:-.01em;font-size:16px;font-weight:700}.brand:hover{text-decoration:none}.tabs{gap:2px;display:flex}.tabs a{color:var(--ink-soft);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex}.tabs a:hover{background:#eef1f4;text-decoration:none}.tabs a.on{color:var(--accent);background:#e7f5f3}.count{color:var(--ink-soft);text-align:center;background:#e3e7eb;border-radius:9px;min-width:17px;padding:0 6px;font-size:11px;font-weight:700;line-height:17px}.tabs a.on .count,.segments .on .count{background:var(--accent);color:#fff}@media (width<=640px){.whoami{display:none}.tabs a{padding:6px 8px}}.page{align-content:start;gap:12px;padding:12px 16px 40px;display:grid}.page.narrow{width:100%;max-width:1100px;margin:0 auto}.page .layout{padding:0}.pagehead{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pagehead h2{letter-spacing:-.01em;margin:0;font-size:19px}.crumbs{color:var(--ink-soft);margin-bottom:-6px;font-size:12.5px}.search{border:1px solid var(--line);font:inherit;background:var(--card);border-radius:6px;min-width:220px;padding:6px 9px}@media (width<=640px){.search{flex:1;min-width:0}}.segments{border:1px solid var(--line);background:var(--card);border-radius:7px;display:inline-flex;overflow:hidden}.segments button{cursor:pointer;color:var(--ink-soft);border:0;border-right:1px solid var(--line);background:0 0;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.segments button:last-child{border-right:0}.segments button.on{color:var(--accent);background:#e7f5f3;font-weight:600}.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow-x:auto}.panel .tablewrap{border:0}table.grid{border-collapse:collapse;width:100%;font-size:13px}table.grid th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:11px;font-weight:600}table.grid td{vertical-align:top;border-bottom:1px solid #eef0f3;padding:8px 10px}table.grid tbody tr:not(.emptyrow):not(.total){cursor:pointer}table.grid.static tbody tr{cursor:default!important}table.grid tbody tr:not(.emptyrow):not(.total):hover{background:#f7f9fa}table.grid .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}table.grid tr.total td{border-bottom:0;font-weight:700}.emptyrow td{color:var(--ink-soft);text-align:center;padding:28px 10px}.tags{flex-wrap:wrap;gap:4px;display:inline-flex}.tag{color:var(--c);border:1px solid color-mix(in srgb, var(--c) 35%, white);background:color-mix(in srgb, var(--c) 8%, white);border-radius:4px;padding:0 5px;font-size:11px;font-weight:700;line-height:17px}.trade{border-left:3px solid var(--c);white-space:nowrap;padding-left:7px}.pill{color:var(--ink-soft);white-space:nowrap;background:#eef1f4;border-radius:10px;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-block}.p-sent,.p-scheduled{color:#0b57b0;background:#e8f0fb}.p-signed,.p-active,.p-in_progress{color:#1b6b3a;background:#e3f4ea}.p-declined,.p-closed{color:#6b7280;background:#f1f1f1}.p-awaiting_job_number,.p-weather_hold{color:#8a5300;background:#fff1db}.p-complete{color:var(--accent);background:#e7f5f3}.panel h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 10px;font-size:13px}.cards2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}@media (width<=800px){.cards2{grid-template-columns:1fr}.row{flex-wrap:wrap}.row>.fld{min-width:140px}}.statusbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.quick{flex-wrap:wrap;gap:8px;display:flex}.checks{flex-wrap:wrap;gap:14px;padding:3px 0;display:flex}.check{color:var(--c);cursor:pointer;align-items:center;gap:5px;font-weight:600;display:inline-flex}.check input{accent-color:var(--c);width:auto}.trades{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.tradecard{border:1px solid var(--line);border-left:4px solid var(--c);border-radius:7px;gap:4px;padding:9px 10px;font-size:13px;display:grid}.tc-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.tradecard .scope{color:var(--c);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:700}.tc-when{font-size:14px;font-weight:600}.tc-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.btn.small{padding:2px 8px;font-size:12px}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}tr.section td{background:#f4f6f8;font-weight:700}tr.inactive td{opacity:.5}input.cell{font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:4px;max-width:100%;padding:3px 6px}input.cell:hover,input.cell:focus{border-color:var(--line);background:#fff;outline:none}td.num input.cell{text-align:right}input.cell.saving{border-color:#d9a400}input.cell.saved{border-color:#1e7a3c}input.cell.error{background:#fdecea;border-color:#b3261e}.narrowform{max-width:620px}.narrowform input.cell{border-color:var(--line);background:#fff;width:100%}.editor{grid-template-columns:minmax(300px,390px) minmax(0,1fr);align-items:start;gap:12px;display:grid}.editor>*{min-width:0}.editor>div{grid-template-columns:minmax(0,1fr)}@media (width<=960px){.editor{grid-template-columns:minmax(0,1fr)}}.sectitle{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:8px;margin:14px 0 6px;font-size:12px;font-weight:700;display:flex}.sectitle:first-child{margin-top:0}.mfld{grid-template-columns:minmax(0,1fr) 110px;align-items:center;gap:8px;margin:3px 0;font-size:12.5px;display:grid}.mfld em{color:var(--ink-soft);font-style:normal}.mfld input,.mfld select{border:1px solid var(--line);font:inherit;border-radius:5px;width:100%;min-width:0;padding:4px 6px}.mfld input:disabled,.mfld select:disabled{color:var(--ink-soft);background:#f4f6f8}.summary{flex-wrap:wrap;gap:20px;display:flex}.summary .k{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:10.5px}.summary .v{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.summary .v.big{color:var(--accent);font-size:18px}table.grid tr.manual td{background:#fffbea}table.grid .formula{color:var(--ink-soft);max-width:320px;font-size:11.5px}table.grid input.qty{text-align:right;border:1px solid var(--line);width:78px;font:inherit;border-radius:4px;padding:3px 5px}table.grid tfoot td{font-variant-numeric:tabular-nums;border-bottom:0;padding:5px 10px}table.grid tfoot tr.grand td{border-top:1px solid var(--line);font-size:14px;font-weight:700}.proposal{color:#1f2328;background:#fff;border-radius:4px;width:100%;max-width:8.5in;margin:0 auto;padding:.55in .75in;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:10.5pt;line-height:1.42;box-shadow:0 1px 6px #0f14191a}.proposal .letterhead{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.proposal .letterhead img{width:2.4in;max-width:45%;height:auto}.proposal .coblock{text-align:right;color:#5b6169;font-size:9.5pt}.proposal .coblock strong{color:#1f2328;font-size:11pt}.proposal .cred{color:#008c9e;font-weight:700}.proposal .meta{color:#5b6169;margin:14px 0 6px}.proposal .customer{margin:0 0 10px}.proposal .psec{margin-top:12px}.proposal h3{color:#008c9e;margin:0 0 3px;font-size:12pt}.proposal h3 span{color:#5b6169;margin-left:8px;font-size:9.5pt;font-weight:400}.proposal ul{margin:2px 0;padding-left:20px}.proposal li{margin:1px 0}.proposal .ptotal{text-align:right;color:#5b6169;margin:4px 0 0;font-size:11pt}.proposal .ptotal strong{color:#1f2328;font-size:12pt}.proposal .pnote{color:#5b6169;font-style:italic}.proposal .terms{font-size:9.5pt}.proposal .accept{border-collapse:collapse;width:100%;margin-top:14px;font-size:9.5pt}.proposal .accept td{vertical-align:top;border:1px solid #bfbfbf;width:50%;padding:8px 10px}.proposal .accept td.ahead{background:#f2f7f8}.proposal .accept tr:last-child td{padding-top:26px}.proposal .accept strong{color:#008c9e;margin-right:6px}.proposal .pfoot{text-align:center;color:#5b6169;margin-top:16px;font-size:8.5pt}.page.proposal-wrap{grid-template-columns:minmax(0,1fr)}.proposal .accept td{overflow-wrap:anywhere}@media (width<=640px){.proposal{padding:18px 16px}.proposal .letterhead{flex-direction:column}.proposal .coblock{text-align:left}.proposal .accept td{width:auto;display:block}.proposal .accept tr:last-child td{padding-top:18px}}@media print{@page{size:letter;margin:.5in .6in}body{background:#fff}.topbar,.noprint{display:none!important}.page.proposal-wrap{padding:0;display:block}.proposal{box-shadow:none;border-radius:0;max-width:none;padding:0}.proposal .psec,.proposal .accept{break-inside:avoid}}.p-temp,.p-ordered,.p-processing{color:#8a5300;background:#fff1db}.p-ready{color:#1b6b3a;background:#e3f4ea}.p-failed{color:#b3261e;background:#fdecea}.hocard{border:1px solid var(--line);border-radius:7px;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;font-size:13px;display:flex}.hocard .hoactions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.hosearch{position:relative}.hosearch .hits{z-index:10;background:var(--card);border:1px solid var(--line);border-radius:7px;max-height:260px;position:absolute;top:34px;left:0;right:0;overflow:auto;box-shadow:0 6px 18px #0f14191f}.hosearch .hit{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;border-bottom:1px solid #eef0f3;gap:1px;padding:7px 10px;display:grid}.hosearch .hit:hover{background:#f4f6f8}.minigrid{grid-template-columns:1fr 1fr;gap:0 8px;margin-top:6px;display:grid}.minigrid .wide{grid-column:1/-1}.check2{align-items:center;gap:6px;margin:2px 0 6px;font-size:12.5px;display:flex}.qm{border:1px dashed var(--line);border-radius:7px;gap:6px;margin-bottom:4px;padding:8px 10px;display:grid}.qmrow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.propcard{padding:0}.propcard>header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 12px;display:flex}@media (width<=720px){table.grid:not(.static) thead{display:none}table.grid:not(.static),table.grid:not(.static) tbody,table.grid:not(.static) tr,table.grid:not(.static) td{width:100%;display:block}table.grid:not(.static) tr{border-bottom:1px solid var(--line);padding:6px 0}table.grid:not(.static) td{text-align:left;border:0;grid-template-columns:96px 1fr;gap:8px;padding:3px 12px;display:grid}table.grid:not(.static) td:before{content:attr(data-label);color:var(--ink-soft);font-size:11.5px}table.grid:not(.static) td.num{text-align:left}table.grid:not(.static) .emptyrow td{display:block}table.grid:not(.static) .emptyrow td:before{content:none}}
