:root{--bg:#f1f5f9;--card:#fff;--text:#0f172a;--muted:#64748b;--accent:#2563eb;--accent-dark:#1d4ed8;--border:#e2e8f0;--danger:#dc2626}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.site-header{background:#0f172a}.site-header .inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:14px 20px;display:flex}.brand{color:#fff;letter-spacing:.2px;font-size:18px;font-weight:700;text-decoration:none}.brand span{color:#60a5fa}.header-actions{align-items:center;gap:8px;display:flex}.header-user{color:#94a3b8;margin-right:6px;font-size:13px}@media (max-width:600px){.header-user{display:none}}.header-btn{color:#cbd5e1;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:8px;padding:6px 12px;font-size:13px;text-decoration:none}.header-btn:hover{color:#fff;border-color:#ffffff80}.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:#fff}.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{color:var(--danger);background:#fff;border-color:#fecaca}.btn-danger:hover:not(:disabled){border-color:var(--danger);background:#fef2f2}.toolbar{flex-direction:column;gap:10px;margin-bottom:10px;display:flex}.toolbar-row{align-items:center;gap:10px;display:flex}.search{width:100%;max-width:480px;font:inherit;background:var(--card);border:1px solid #cbd5e1;border-radius:8px;flex:1;padding:10px 12px;font-size:14px}.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}.category-input{width:320px;max-width:100%;font:inherit;color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:14px}.category-input:focus{border-color:var(--accent);outline:2px solid #2563eb59}.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;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);background:#f8fafc;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:#f8fafc}.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 .editing-row{background:#eff6ff}.jobs-table .editing-row td{vertical-align:middle}.jobs-table .editing-row input,.jobs-table .editing-row select{width:100%;height:28px;font:inherit;color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:0 8px;font-size:14px}.jobs-table .editing-row input:focus,.jobs-table .editing-row select:focus{border-color:var(--accent);outline:2px solid #2563eb59}.saving-note{color:var(--muted);font-size:12.5px}.cell-pair{align-items:center;gap:8px;display:flex}.cell-pair input{flex:auto;min-width:0}.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 #0f172a26}.jobs-table .status-pill:focus{outline:2px solid #2563eb59}.jobs-table .status-pill:disabled{opacity:.6;cursor:default}.row-tip{z-index:50;color:#f8fafc;pointer-events:none;background:#0f172a;border-radius:8px;max-width:340px;padding:8px 11px;font-size:13px;line-height:1.4;position:fixed;box-shadow:0 6px 20px #0f172a40}.row-tip-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:10.5px;font-weight:600;display:block}.row-tip-empty{color:#94a3b8;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-complete{--badge-bg:#54f243;--badge-fg:#000}.badge-invoiced{--badge-bg:#f3e8ff;--badge-fg:#7e22ce}.badge-modeling{--badge-bg:#d4edbc;--badge-fg:#11734b}.badge-drafting{--badge-bg:#bfe1f6;--badge-fg:#0a53a8}.badge-approvals{--badge-bg:#ffcfc9;--badge-fg:#b10202}.badge-engineering{--badge-bg:#b10202;--badge-fg:#ffcfc9}.badge-checkpoint-1{--badge-bg:#c6dbe1;--badge-fg:#215a6c}.badge-checkpoint-2{--badge-bg:#e6cff2;--badge-fg:#5a3286}.badge-checkpoint-3{--badge-bg:#0a53a8;--badge-fg:#bfe0f6}.empty-state{background:var(--card);text-align:center;color:var(--muted);border:1px dashed #cbd5e1;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{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:14px}.form-success{color:#15803d;background:#dcfce7;border:1px solid #86efac;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{width:100%;font:inherit;color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px;font-size:14px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search:focus{border-color:var(--accent);outline:2px solid #2563eb59}select.status-select,.jobs-table .editing-row select.status-select,select.status-select option{background:var(--badge-bg,#fff);color:var(--badge-fg,var(--text));font-weight:600}.form-actions{gap:10px;margin-top:20px;display:flex}.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 .editing-row input,.jobs-table .editing-row select{text-align:center}.jobs-table .editing-row td{padding-left:6px;padding-right:6px;overflow:visible}.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}.jobs-table .editing-row td{padding:4px 0}.row-tip{display:none}.form-grid{grid-template-columns:1fr}}
