.table{width:100%;border-collapse:collapse;font-size:.95rem;color:#e5e7eb}.table thead{background:#1e1e1e;border-bottom:2px solid #1f2937}.table thead th{position:sticky;top:0;z-index:2;background:#1e1e1e;text-align:left;padding:.75rem 1rem;font-weight:600;letter-spacing:.4px;color:#fff;-webkit-user-select:none;user-select:none}.table thead th.sortable{cursor:pointer;display:flex;align-items:center;gap:.35rem}.table thead th.sortable:hover{color:#b8e3ff}.table thead th.sortable .sort-icon{font-size:.75rem;opacity:.6}.table tbody tr{border-bottom:1px solid #1f2937}.table tbody tr:hover{background:#ffffff08}.table tbody td{padding:.65rem 1rem;vertical-align:middle}.table tbody td.actions{text-align:right}.table tbody td.actions button{background:none;border:none;color:#8acbff;cursor:pointer;margin-left:.5rem;padding:.25rem .5rem;border-radius:4px;transition:background .15s}.table tbody td.actions button:hover{background:#1e3a55}.table.zebra tbody tr:nth-child(odd){background:#1f1f1f}.table.compact th,.table.compact td{padding:.5rem .75rem}.table__cell--timestamp{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.85rem;color:#9ca3af}.text-right{text-align:right}.text-center{text-align:center}.status-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500;letter-spacing:.01em;border:1px solid transparent;background-color:#ffffff08}.status-badge--inquiry{color:#7dc4ff;border-color:#7dc4ff66;background-color:#7dc4ff14}.status-badge--estimate_sent{color:#f1c75d;border-color:#f1c75d66;background-color:#f1c75d14}.status-badge--contract_signed{color:#8ee29b;border-color:#8ee29b66;background-color:#8ee29b14}.status-badge--job_completed{color:#a4b2ff;border-color:#a4b2ff66;background-color:#a4b2ff14}.status-badge--paid{color:#7fe2c8;border-color:#7fe2c866;background-color:#7fe2c814}.card{background:#1a1a1a;padding:1rem;border-radius:6px;box-shadow:0 2px 6px #00000040;margin-bottom:1rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.page{display:flex;flex-direction:column;gap:1.5rem}.page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page__subtitle{margin-top:.25rem;color:#9ca3af;font-size:.9rem}.page__filters{display:flex;align-items:flex-start;justify-content:flex-end;gap:.75rem}.page__filters--full{justify-content:flex-start;width:100%}.page__filters--right{justify-content:flex-end}.page__actions{display:flex;gap:.5rem}.page__body{background:#1a1a1a;padding:1rem;border-radius:6px;box-shadow:0 2px 6px #00000040}.page__error{margin-bottom:.75rem;color:#b91c1c;font-size:.9rem}.page__signout-wrapper{position:absolute;top:1rem;right:1rem}.page__signout-btn{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0}.page__signout-btn:hover{color:#bfdbfe}.page__search{position:relative;max-width:260px}.page__search-input{width:100%;padding-left:2rem;padding-right:.75rem;font-size:.9rem;margin-top:12px;height:2.25rem;line-height:2.25rem}.page__search-icon{position:absolute;left:.55rem;top:50%;margin-top:6px;transform:translateY(-50%);color:#9ca3af;pointer-events:none}.btn-primary{border-radius:999px;border:none;padding:.4rem .9rem;font-size:.9rem;font-weight:500;background:#2563eb;color:#fff;cursor:pointer}.btn-primary:hover:not(:disabled){background:#1e40af}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{border-radius:999px;border:1px solid #d1d5db;padding:.4rem .9rem;font-size:.9rem;font-weight:500;background:#fff;color:#374151;cursor:pointer}.btn-delete{border-radius:999px;border:1px solid #b91c1c;padding:.4rem .9rem;font-size:.9rem;font-weight:500;background:#ef4444;color:#fff;cursor:pointer;transition:background .12s ease}.btn-delete:hover:not(:disabled){background:#b91c1c}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:.4rem;border-radius:9999px;border:1px solid var(--border-subtle, rgba(0, 0, 0, .08));background:var(--surface-elevated, #fff);cursor:pointer;color:var(--text-color, #222)}.btn-icon:hover:not(:disabled){background:var(--surface-muted, #f3f3f3)}.contact-details__jobs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.contact-details__job-row{padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.06)}.contact-details__job-row:last-child{border-bottom:none}.contact-details__job-main{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.contact-details__job-name{font-weight:500}.contact-details__job-status{font-size:.8rem;padding:.1rem .4rem;border-radius:999px;background:#0000000a}.contact-details__job-meta{margin-top:.15rem;font-size:.85rem;color:#0009}.accordion__section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.65rem .75rem;font-weight:600;font-size:.95rem;color:#9ca3af;cursor:pointer;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff05;border-radius:4px}.accordion__section-header:hover{background:#ffffff0f}.job-details__section-body{padding-bottom:.75rem;border-top:1px solid rgba(0,0,0,.06);margin-top:.25rem}.btn-icon svg,.btn-icon .iconify{display:block;width:1.25rem;height:1.25rem;flex-shrink:0;color:inherit}.page__actions--inline{display:flex;gap:.5rem;margin-bottom:1rem}.page__actions.page__actions--split{display:flex;justify-content:space-between;align-items:center;width:100%}.page__actions-left,.page__actions-right{display:flex;align-items:center;gap:.75rem}.floating-panel{background:none;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 1rem;box-shadow:0 4px 12px #00000014;min-width:220px;z-index:20;animation:fadeInScale .12s ease-out}.jobs-filters-advanced{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:flex-end;width:100%;background:#111827f0;border-radius:.75rem;padding:.75rem 1rem}.jobs-filters-advanced .jobs-filters-row__group{margin-bottom:0}.jobs-filters-advanced .jobs-filters-row__group:last-child{margin-left:auto}.jobs-filters-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:.75rem;margin-bottom:.75rem;padding:.5rem .25rem;border-bottom:1px solid rgba(0,0,0,.06);flex-wrap:wrap}.jobs-filters-row__left,.jobs-filters-row__right{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.jobs-filters-row__group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.jobs-filters-row__group label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af}.jobs-page .jobs-filters-row__group select,.jobs-page .jobs-filters-advanced select{height:2.25rem;padding:0 .75rem;border-radius:999px;border:1px solid #4b5563;background-color:#020617!important;color:#e5e7eb!important;font-size:.85rem;outline:none;appearance:none}.jobs-page .jobs-filters-row__group select:focus,.jobs-page .jobs-filters-advanced select:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb59}.jobs-page .jobs-filters-row__group select:hover,.jobs-page .jobs-filters-advanced select:hover{border-color:#6b7280}.jobs-page .jobs-filters-row__group select option,.jobs-page .jobs-filters-advanced select option{background-color:#020617;color:#e5e7eb}.jobs-filters-row input[type=date]{height:2.25rem;padding:0 2rem 0 .75rem;border-radius:999px;border:1px solid #d1d5db;background-color:#fff;color:#111827;font-size:.85rem;outline:none;caret-color:#111827;-webkit-appearance:auto!important;appearance:auto!important}.jobs-filters-row input[type=date]:hover{border-color:#9ca3af}.jobs-filters-row input[type=date]:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb59}.jobs-filters-row input[type=date]::-webkit-calendar-picker-indicator{opacity:1!important;display:block!important;filter:none;cursor:pointer}.jobs-filters-row input[type=date]::-moz-focus-inner{border:0}.jobs-filters-row__group--dates input[type=date]{width:8rem;min-width:7rem}.jobs-filters-row__group--dates{gap:.35rem}.chip{border-radius:999px;border:1px solid #fff;padding:.2rem .75rem;font-size:.8rem;line-height:1.5;background:#00000008;color:#fff;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.chip:hover{background:#0000000f}.chip--active{background:#2563eb1f;border-color:#2563eb;color:#1e40af}.jobs-filters-row__right .btn.btn--small{align-self:center}@media(max-width:768px){.jobs-filters-row{align-items:stretch}.jobs-filters-row__left,.jobs-filters-row__right{width:100%;justify-content:flex-start}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.jobs-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0 .75rem;font-size:.8rem}.jobs-active-filters__label{font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af}.jobs-active-filters__chip{display:inline-flex;align-items:center;gap:.3rem}.jobs-active-filters__chip svg{opacity:.8}.jobs-active-filters__clear-all{margin-left:auto}.job-notes__actions-label{margin-left:.5rem;font-size:.85rem;font-weight:500}.job-photos__preview-button{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border:none;background:transparent;cursor:pointer;font:inherit;color:inherit}.job-photos__preview-button:hover .job-photos__filename{text-decoration:underline}.job-photos__thumbnail{width:64px;height:64px;object-fit:cover;border-radius:4px}.job-photos__filename{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-files__download-link{text-decoration:underline;cursor:pointer}.job-files__download-link:hover{text-decoration:none}.job-notes__author{display:block;font-size:.75rem;opacity:.8}.job-details__contacts{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.job-details__contact-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;background:#0f172ad9;border:1px solid rgba(148,163,184,.35)}.job-details__contact-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:0;border:none;background:transparent;color:#e5e7eb;text-align:left;cursor:pointer}.job-details__contact-main:hover .job-details__contact-name{text-decoration:underline}.job-details__contact-name{font-weight:600;font-size:.95rem}.job-details__contact-company{font-size:.8rem;color:#9ca3af}.job-details__contact-email,.job-details__contact-phone{font-size:.8rem;color:#e5e7eb;opacity:.85}.job-contacts__lookup-results{margin-top:.75rem;padding:.75rem .85rem;border-radius:.5rem;background:#0f172ae6;border:1px solid rgba(148,163,184,.35)}.job-contacts__lookup-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.job-contacts__lookup-select{margin-top:.25rem}.job-upload__file-picker{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.job-upload__file-input{display:none}.job-upload__file-button{display:inline-flex;align-items:center;justify-content:center}.job-upload__file-name{font-size:.8rem;color:#9ca3af;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-upload__dropzone{margin-top:.5rem;padding:.6rem .75rem;border-radius:.5rem;border:1px dashed #1f2937;background:#0f172acc;color:#9ca3af;font-size:.8rem;text-align:center;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.job-upload__dropzone:hover{border-color:#2563eb;background:#2563eb1f;color:#e5e7eb}.job-upload__dropzone-text{margin:0}.accordion-details__chevron{display:inline-flex;align-items:center;justify-content:center;transition:transform .12s ease;font-size:.9rem;opacity:1;font-weight:700;color:#9ca3af}.accordion-details__chevron--open{transform:rotate(180deg)}.status-badge--select{appearance:none;border:none;border-radius:999px;padding:.2rem .6rem;background:#2563eb;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;line-height:1.4;display:inline-flex;align-items:center}.status-badge--select:hover:not(:disabled){background:#1e40af}.status-badge--select option{background:#020617;color:#e5e7eb}.status-dropdown{position:relative;display:inline-block}.status-dropdown__menu{margin-top:.35rem;padding:.4rem .5rem;border-radius:.5rem;background:#0f172afa;border:1px solid rgba(148,163,184,.55);box-shadow:0 8px 18px #00000073;display:flex;flex-direction:column;gap:.25rem;min-width:190px;z-index:20}.status-badge__option{border:none;border-radius:999px;padding:.2rem .75rem;background:transparent;color:#e5e7eb;font-size:.8rem;font-weight:500;text-align:left;cursor:pointer;transition:background-color .12s ease,color .12s ease}.status-badge__option:hover{background:#2563eb2e;color:#fff}.status-badge__option--active{background:#2563eb4d;color:#fff}.status-badge__option--cancel{margin-top:.1rem;font-weight:500;color:#9ca3af}.status-badge__option--cancel:hover{background:#94a3b826;color:#e5e7eb}.job-files__tag-field select,.job-files__edit-form select{background-color:#1e2330;color:#f5f7fa;border:1px solid #3c4254;border-radius:4px;padding:.4rem .5rem;font-size:.875rem}.job-files__tag-field select:focus,.job-files__edit-form select:focus{outline:none;border-color:#6fcff4;box-shadow:0 0 0 1px #6fcff466}.job-files__tag-field label,.job-files__edit-form label{color:#e3e6f0}.job-details__edit .form__field input,.job-details__edit .form__field select,.job-details__edit .form__field textarea{width:100%;max-width:100%;box-sizing:border-box}.columns-picker__checkbox{display:inline-flex;justify-content:center}.columns-picker__checkbox input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:4px;border:1px solid #4b5563;background-color:#111827;display:inline-block;position:relative;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.columns-picker__checkbox input[type=checkbox]:hover:not(:disabled){border-color:#9ca3af;box-shadow:0 0 0 2px #3b82f633}.columns-picker__checkbox input[type=checkbox]:checked{background-color:#2563eb;border-color:#2563eb}.columns-picker__checkbox input[type=checkbox]:checked:after{content:"";position:absolute;inset:3px;border-radius:2px;background-color:#fff}.columns-picker__checkbox input[disabled]{cursor:not-allowed;opacity:.6;box-shadow:none}.login-form label{display:block;margin-bottom:.75rem;font-size:.95rem}input{margin-top:.25rem;width:100%;padding:.4rem .55rem;border-radius:6px;border:1px solid #1f2937;background:#020617;color:#e5e7eb}.form select{margin-top:.25rem;width:100%;padding:.4rem .55rem;border-radius:6px;border:1px solid #1f2937;background-color:#020617;color:#e5e7eb;font-size:.9rem;outline:none}.form select:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb59}.form select:hover{border-color:#2e3c51}.form select option{background-color:#020617;color:#e5e7eb}.form textarea{margin-top:.25rem;width:100%;max-width:100%;padding:.4rem .55rem;border-radius:6px;border:1px solid #1f2937;background:#020617;color:#e5e7eb;font-size:.9rem;line-height:1.4;resize:vertical}.job-contacts__lookup-select select{margin-top:.25rem;width:100%;padding:.4rem .55rem;border-radius:6px;border:1px solid #1f2937;background-color:#020617;color:#e5e7eb;font-size:.9rem;outline:none}.job-contacts__lookup-select select:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb59}.job-contacts__lookup-select select:hover{border-color:#2e3c51}.job-contacts__lookup-select select option{background-color:#020617;color:#e5e7eb}input[type=date]{background-color:#020617;color:#e5e7eb;padding-right:2rem}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.9;cursor:pointer}input[type=date]::-moz-focus-inner{border:0}input[type=date]::-moz-placeholder{opacity:1}.form{display:flex;flex-direction:column;gap:1rem;max-width:720px}.form__row{display:flex;flex-wrap:wrap;gap:1rem}.form__field{flex:1 1 0;min-width:min(260px,100%)}.form__field label{display:block;margin-bottom:.35rem;font-size:.9rem;font-weight:500;color:#e5e7eb}.form__field input{margin-top:.15rem}.form__field-error{margin-top:.25rem;font-size:.8rem;color:#fecaca}.form__error{margin-bottom:.75rem;padding:.55rem .75rem;border-radius:8px;background:#7f1d1d66;border:1px solid #b91c1c;color:#fee2e2;font-size:.85rem}.form__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.form--narrow{max-width:520px}.form-panel{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:1.25rem 1.5rem;margin:0 auto;max-width:640px;box-shadow:0 6px 18px #00000040}.contact-details{display:flex;flex-direction:column;gap:.75rem;height:100%;min-height:0}.contact-details__empty{padding:.75rem .25rem;font-size:.9rem;color:#9ca3af}.contact-details__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding-bottom:.5rem;border-bottom:1px solid #1f2937}.contact-details__name{font-size:1.1rem;font-weight:600;margin:0}.contact-details__subtitle{margin:.25rem 0 0;font-size:.9rem;color:#9ca3af}.contact-details__actions{display:flex;gap:.5rem}.contact-details__body{padding-top:.5rem;padding-bottom:2.5rem}.contact-details__grid{display:grid;grid-template-columns:1fr;gap:.75rem;margin:0}.contact-details__item dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af;margin-bottom:.15rem}.contact-details__item dd{margin:0;font-size:.9rem;color:#e5e7eb;word-break:break-word}.contact-details__item a{color:#2563eb;text-decoration:none}.contact-details__item a:hover{text-decoration:underline}.contact-details__section{margin-top:.75rem;border-top:1px solid #1f2937;padding-top:.5rem}.contact-details__section-body{margin-top:.35rem}.contact-details__placeholder{margin:.5rem 0 0;font-size:.85rem;color:#9ca3af}.job-notes__form{margin-top:.75rem}.job-notes__form textarea{width:100%;max-width:100%;min-height:7rem;padding:.75rem .85rem;border-radius:8px;border:1px solid #1f2937;background:#020617;color:#e5e7eb;font-size:.95rem;line-height:1.5;resize:vertical;box-sizing:border-box}.link-button{background:transparent;border:none;padding:0;margin:0;color:#2563eb;font-size:.85rem;font-weight:500;text-decoration:underline;cursor:pointer}.link-button:hover{color:#1e40af;text-decoration:none}.link-button:disabled{opacity:.6;cursor:not-allowed;text-decoration:none}html,body{margin:0;height:100%;font-family:system-ui,sans-serif;background:#0f0f0f;color:#e5e7eb}a{color:#2563eb}.app{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#e5e7eb;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.card{background:#020617;border-radius:12px;padding:2rem 2.5rem;box-shadow:0 20px 45px #00000073;max-width:850px;width:100%}.card--narrow{max-width:420px!important}h1{margin-bottom:1.5rem;font-size:1.8rem}h2{margin-bottom:.75rem;font-size:1.2rem}.result{margin-top:1.5rem;border-radius:8px;padding:.75rem .9rem;background:#0f172acc;font-size:.9rem}.result.success{border:1px solid rgba(34,197,94,.35)}.result.error{border:1px solid rgba(239,68,68,.5);background:#7f1d1d59}pre{margin:.25rem 0 0;white-space:pre-wrap;word-break:break-word}
