:root{--bg:#f0eee9;--pattern-wash:#f0eee9f2;--card:#fff;--text:#0f172a;--muted:#58534b;--border:#f0eee9;--input-border:#f0eee9;--accent:#3d3935;--accent-dark:#2a2724;--accent-text:#f0eee9;--focus-ring:#3d393559;--hover-ring:#0f172a26;--header:#3d3935;--header-text:#fff;--header-accent:#d8d0c3;--header-muted:#f0eee9;--header-btn-text:#f0eee9;--header-btn-border:#ffffff40;--header-btn-border-hover:#ffffff80;--table-head-bg:#f0eee93f;--filter-off-hover:#d9d5cc;--danger:#dc2626;--danger-soft-bg:#fef2f2;--danger-soft-border:#fecaca;--success-text:#15803d;--success-bg:#dcfce7;--success-border:#86efac;--tip-bg:#58534b;--tip-text:#f0eee9;--tip-muted:#f0eee975;--tip-shadow:#0f172a40;--status-modeling-bg:#d4edbc;--status-modeling-fg:#11734b;--status-drafting-bg:#bfe1f6;--status-drafting-fg:#0a53a8;--status-approvals-bg:#ffcfc9;--status-approvals-fg:#b10202;--status-engineering-bg:#b10202;--status-engineering-fg:#ffcfc9;--status-checkpoint-1-bg:#c6dbe1;--status-checkpoint-1-fg:#215a6c;--status-checkpoint-2-bg:#e6cff2;--status-checkpoint-2-fg:#5a3286;--status-checkpoint-3-bg:#0a53a8;--status-checkpoint-3-fg:#bfe0f6;--status-complete-bg:#54f243;--status-complete-fg:#000;--status-invoiced-bg:#f3e8ff;--status-invoiced-fg:#7e22ce}*{box-sizing:border-box}body{background:var(--bg);background-image:linear-gradient(var(--pattern-wash), var(--pattern-wash)), url(/background.svg);color:var(--text);-webkit-font-smoothing:antialiased;background-size:auto,3652px 2356px;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.site-header{background:var(--header)}.site-header .inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:14px 20px;display:flex}.brand{color:var(--header-text);letter-spacing:.2px;font-size:18px;font-weight:700;text-decoration:none}.brand span{color:var(--header-accent)}.header-actions{align-items:center;gap:8px;display:flex}.header-user{color:var(--header-muted);margin-right:6px;font-size:13px}@media (max-width:600px){.header-user{display:none}}.header-btn{border:1px solid var(--header-btn-border);color:var(--header-btn-text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:13px;text-decoration:none}.header-btn:hover{color:var(--header-text);border-color:var(--header-btn-border-hover)}.login-card{max-width:380px;margin:48px auto 0}.login-card h1{margin:0 0 18px;font-size:22px}.login-card .field{margin-bottom:14px}.login-submit{width:100%;margin-top:6px}.container{max-width:1100px;margin:0 auto;padding:20px}.container-wide{max-width:1200px}.page-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head h1{margin:0;font-size:24px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-text)}.link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:none}.link-btn:hover{text-decoration:underline}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-ghost{color:var(--accent);border-color:var(--border);background:0 0;background:var(--card)}.btn-ghost:hover{border-color:var(--accent)}.btn-danger{background:var(--card);color:var(--danger);border-color:var(--danger-soft-border)}.btn-danger:hover:not(:disabled){background:var(--danger-soft-bg);border-color:var(--danger)}.toolbar{align-items:stretch;gap:14px;margin-bottom:10px;display:flex}.toolbar-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.add-job-btn{flex:none;align-self:flex-end;padding:10px 30px;font-size:16px}@media (max-width:760px){.toolbar{flex-direction:column}.add-job-btn{align-self:stretch;padding:12px}}.toolbar-row{align-items:center;gap:10px;display:flex}.search{border:1px solid var(--input-border);width:100%;max-width:480px;font:inherit;background:var(--card);border-radius:8px;flex:1;padding:10px 12px;font-size:14px}.filter-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-label{width:52px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex:none;font-size:11px;font-weight:600}.filter-toggle{font:inherit;white-space:nowrap;cursor:pointer;background:var(--badge-bg,var(--accent));color:var(--badge-fg,var(--accent-text));border:0;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.filter-toggle.off{background:var(--border);color:var(--muted)}.filter-toggle:hover{outline:2px solid var(--hover-ring)}.filter-toggle.off:hover{background:var(--filter-off-hover);outline:none}.category-block{margin-bottom:24px}.category-head{align-items:baseline;gap:12px;margin:0 0 8px;display:flex}.category-head h2{margin:0;font-size:16px;font-weight:700}.category-meta{color:var(--muted);flex:1;font-size:13px}.order-btn{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:14px}.order-btn:hover:not(:disabled){color:var(--accent)}.order-btn:disabled{opacity:.3;cursor:default}.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:auto hidden}.jobs-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:14px}.jobs-table th{text-align:center;background:var(--table-head-bg);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:7px 14px;font-size:12px}.jobs-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 14px}.jobs-table tbody tr{cursor:pointer}.jobs-table tbody tr:hover{background:var(--table-head-bg)}.jobs-table tbody tr:last-child td{border-bottom:none}.jobs-table .wo{font-weight:600}.jobs-table .desc{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:340px;overflow:hidden}.jobs-table .num{text-align:center}.jobs-table .status-pill{appearance:none;font:inherit;white-space:nowrap;cursor:pointer;text-align:center;border:0;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.jobs-table .status-pill:hover{outline:2px solid var(--hover-ring)}.jobs-table .status-pill:focus{outline:2px solid var(--focus-ring)}.jobs-table .status-pill:disabled{opacity:.6;cursor:default}.row-tip{z-index:50;background:var(--tip-bg);max-width:340px;color:var(--tip-text);pointer-events:none;border-radius:8px;padding:8px 11px;font-size:13px;line-height:1.4;position:fixed;box-shadow:0 6px 20px #0f172a40}.row-tip-label{color:var(--tip-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:10.5px;font-weight:600;display:block}.row-tip-empty{color:var(--tip-muted);font-style:italic}.badge{white-space:nowrap;background:var(--badge-bg,var(--border));color:var(--badge-fg,var(--text));border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-modeling{--badge-bg:var(--status-modeling-bg);--badge-fg:var(--status-modeling-fg)}.badge-drafting{--badge-bg:var(--status-drafting-bg);--badge-fg:var(--status-drafting-fg)}.badge-approvals{--badge-bg:var(--status-approvals-bg);--badge-fg:var(--status-approvals-fg)}.badge-engineering{--badge-bg:var(--status-engineering-bg);--badge-fg:var(--status-engineering-fg)}.badge-checkpoint-1{--badge-bg:var(--status-checkpoint-1-bg);--badge-fg:var(--status-checkpoint-1-fg)}.badge-checkpoint-2{--badge-bg:var(--status-checkpoint-2-bg);--badge-fg:var(--status-checkpoint-2-fg)}.badge-checkpoint-3{--badge-bg:var(--status-checkpoint-3-bg);--badge-fg:var(--status-checkpoint-3-fg)}.badge-complete{--badge-bg:var(--status-complete-bg);--badge-fg:var(--status-complete-fg)}.badge-invoiced{--badge-bg:var(--status-invoiced-bg);--badge-fg:var(--status-invoiced-fg)}.empty-state{background:var(--card);border:1px dashed var(--input-border);text-align:center;color:var(--muted);border-radius:10px;padding:40px 20px}.empty-state p{margin:0 0 14px}.form-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px}.form-error{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);color:var(--danger);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:14px}.form-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:14px}.account-card{margin-top:0}.account-card h2{margin:0 0 14px;font-size:17px}.account-email{color:var(--muted);margin:0 0 18px;font-size:13.5px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.details-grid{grid-template-columns:repeat(3,1fr);gap:12px}.details-grid .field label{margin-bottom:4px;font-size:12px}.details-grid .field input,.details-grid .field select{padding:7px 9px;font-size:13.5px}.details-grid .field textarea{padding:9px 10px;font-size:14px}.field.full{grid-column:1/-1}.field label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--input-border);width:100%;font:inherit;background:var(--card);color:var(--text);border-radius:8px;padding:9px 10px;font-size:14px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search:focus{outline:2px solid var(--focus-ring);border-color:var(--accent)}select.status-select,select.status-select option{background:var(--badge-bg,var(--card));color:var(--badge-fg,var(--text));font-weight:600}.form-actions{gap:10px;margin-top:20px;display:flex}.sync-status{color:var(--muted);flex:1;align-self:center;font-size:13px}.sync-status.sync-error{color:var(--danger)}.meta{color:var(--muted);margin:14px 0 0;font-size:12px}@media (min-width:761px){.jobs-table{min-width:820px}.jobs-table th:first-child{width:150px}.jobs-table th:nth-child(2){width:180px}.jobs-table th:nth-child(4){width:120px}.jobs-table th:nth-child(5){width:90px}.jobs-table th:nth-child(6){width:140px}.jobs-table tbody td{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;text-align:center;height:38px;padding-top:0;padding-bottom:0;overflow:hidden}.jobs-table th:not(:first-child),.jobs-table tbody td:not(:first-child){border-left:1px solid var(--border)}}@media (max-width:760px){.jobs-table thead{display:none}.jobs-table,.jobs-table tbody,.jobs-table tr,.jobs-table td{width:100%;display:block}.jobs-table tr{border-bottom:1px solid var(--border);padding:12px 14px}.jobs-table tr:last-child{border-bottom:none}.jobs-table td{border:none;padding:2px 0}.jobs-table .wo{margin-bottom:2px;font-size:16px}.jobs-table .desc{white-space:normal;max-width:none}.jobs-table .num{text-align:left}.jobs-table td[data-label]:before{content:attr(data-label) ": ";color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.jobs-table .status-cell{margin-top:6px}.row-tip{display:none}.form-grid{grid-template-columns:1fr}}
