:root{--bg:#f9fafb;--surface:#fff;--border:#e5e7eb;--text:#1f2937;--muted:#6b7280;--muted-strong:#374151;--accent:#2563eb;--accent-hover:#1d4ed8;--shadow:0 1px 2px #0000000a;--shadow-pop:0 8px 24px #0000001f;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--muted-strong:#cbd5e1;--accent:#3b82f6;--accent-hover:#60a5fa;--shadow:0 1px 2px #0006;--shadow-pop:0 8px 24px #00000080}body{background:var(--bg);color:var(--text);margin:0}main{padding:2rem 1.5rem 4rem}header.page-head h1{margin:0 0 .25rem;font-size:1.9rem}header.page-head p{color:var(--muted);margin:0 0 2rem}section.example{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;margin-bottom:2rem;padding:1.25rem 1.5rem 1.5rem}section.example h2{margin:0 0 .25rem;font-size:1.2rem}section.example .lede{color:var(--muted);margin:0 0 1rem;font-size:.95rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.toolbar button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.4rem .8rem;font-size:.85rem}.toolbar button:hover{background:var(--accent-hover)}.toolbar .readout{color:var(--muted-strong);font-size:.85rem}.badge{border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600;line-height:1.4;display:inline-block}.badge-on-track{color:#166534;background:#dcfce7}.badge-at-risk{color:#854d0e;background:#fef9c3}.badge-complete{color:#1e40af;background:#dbeafe}.badge-delayed{color:#991b1b;background:#fee2e2}.badge-active{color:#166534;background:#dcfce7}.badge-on-hold-pending{color:#854d0e;background:#fef9c3}.badge-preparation-stage{color:#334155;background:#e2e8f0}.badge-awaiting-response{color:#854d0e;background:#fef9c3}.badge-will-not-bid{color:#64748b;background:#f1f5f9}.badge-lost{color:#991b1b;background:#fee2e2}.badge-awarded{color:#166534;background:#dcfce7}.badge-submitted{color:#854d0e;background:#fef9c3}.badge-won{color:#166534;background:#dcfce7}.badge-not-started{color:#334155;background:#e2e8f0}.badge-in-progress{color:#1e40af;background:#dbeafe}.badge-blocked{color:#991b1b;background:#fee2e2}.badge-project-manager{color:#1e40af;background:#dbeafe}.badge-estimator{color:#166534;background:#dcfce7}.badge-engineer{color:#6b21a8;background:#f3e8ff}.bid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.2rem;max-width:640px;margin-top:.5rem;display:grid}.bid-form label{color:var(--muted-strong);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.bid-form input{background:var(--bg);border:1px solid var(--border);font:inherit;color:var(--text);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.bid-form__full{grid-column:1/-1}.bid-form__actions{grid-column:1/-1;align-items:center;gap:.8rem;display:flex}.btn-primary{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600}.btn-primary:hover{filter:brightness(1.05)}.btn-success{color:#fff;font:inherit;cursor:pointer;background:#16a34a;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600}.btn-success:hover{filter:brightness(1.05)}.contact-form__topbar{flex-wrap:wrap;flex:1 0 100%;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.contact-form__topbar-left{gap:.5rem;display:flex}.form-note{color:#166534;font-size:.85rem;font-weight:600}.contact-form{flex-wrap:wrap;gap:1rem 2.5rem;margin-top:.6rem;display:flex}.contact-form__col{flex-direction:column;flex:280px;gap:.7rem;max-width:360px;display:flex}.contact-form label{color:var(--muted-strong);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.contact-form input:not([type=radio]):not([type=checkbox]),.contact-form select{background:var(--bg);border:1px solid var(--border);font:inherit;color:var(--text);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.contact-form__group{color:var(--muted-strong);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.contact-form__radio{gap:1.2rem;display:flex}.contact-form__radio label{flex-direction:row;align-items:center;gap:.35rem;font-weight:500}.contact-form__link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.8rem;font-weight:600}.contact-form__link:disabled{color:var(--muted);cursor:not-allowed}.bid-checklist{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-direction:column;gap:.3rem;max-height:11rem;padding:.4rem .55rem;display:flex;overflow-y:auto}.bid-checklist label{flex-direction:row;align-items:center;gap:.45rem;font-weight:500}.bid-value{align-items:center;gap:.4rem;display:flex}.bid-value__sign{color:var(--muted-strong);font-weight:700}.bid-value input{flex:auto;min-width:0}.section-head{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.75rem;display:flex}.section-head h2{margin:0}.section-head:first-child{margin-top:0}.pm_view_select{align-items:center;display:inline-flex}.pm_view_label{color:var(--muted-strong);align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;display:inline-flex}.pm_view_selector{background:var(--bg);border:1px solid var(--border);font:inherit;color:var(--text);cursor:pointer;border-radius:8px;padding:.35rem .6rem;font-size:.85rem}.report-panel{border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;margin-bottom:1rem;overflow:hidden}.report-panel__head{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border-bottom:1px solid var(--border);padding:.6rem 1rem;font-size:.9rem;font-weight:600}.report-panel__body{background:var(--surface);flex-wrap:wrap;align-items:flex-end;gap:1.25rem;padding:1.25rem 1rem;display:flex}.report-field{color:var(--muted-strong);flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;display:flex}.report-field select{background:var(--bg);border:1px solid var(--border);font:inherit;color:var(--text);border-radius:8px;min-width:12rem;padding:.45rem .6rem;font-size:.9rem}.report-panel__head strong{color:var(--text)}.report-panel .contact-form{margin-top:0;padding:1.25rem 1.5rem 1.75rem}.req{color:#dc2626;font-weight:700}.proj-controlbar{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:1px solid var(--border);color:var(--accent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.proj-controlbar .pm_view_label{color:var(--accent);gap:.6rem;font-size:.9rem}.proj-total{color:var(--accent);font-size:.9rem;font-weight:600}.proj-total strong{color:var(--accent)}.proj-help{background:var(--text);width:1.4rem;height:1.4rem;color:var(--surface);cursor:help;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;font-size:.8rem;font-weight:700;display:inline-flex}.proj-status,.proj-tdd{color:#dc2626;font-weight:600}.proj-controlbar__title{color:var(--accent);font-size:.9rem;font-weight:600}.proj-billing--paid{color:#16a34a;font-weight:600}.proj-billing--unpaid{color:#dc2626;font-weight:600}.notice--sent{color:#16a34a;font-weight:600}.notice--not-sent{color:#dc2626;font-weight:600}.notice--hold{color:#d97706;font-weight:600}.phase-suffix{color:var(--muted-strong);font-weight:400}.change-badge{color:#fff;vertical-align:middle;cursor:pointer;background:#16a34a;border-radius:999px;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;margin-left:.45rem;padding:0 .4rem;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.change-badge:hover{filter:brightness(1.08)}.change-log{border-collapse:collapse;width:100%;font-size:.86rem}.change-log th,.change-log td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem .65rem}.change-log th{font-weight:700}.change-log__foot{justify-content:center;margin-top:1.1rem;display:flex}.sub-overdue{color:#dc2626;font-weight:600}.sub-stats{color:var(--muted-strong);font-size:.82rem}.sub-stats strong{color:var(--text)}.fm-note{color:var(--muted-strong);font-size:.8rem}.eng-done{color:#16a34a;font-weight:600}.ord-box{border:1px solid var(--border);text-align:center;border-radius:4px;width:18px;height:18px;font-size:.75rem;line-height:16px;display:inline-block}.ord-box--on{color:#fff;background:#2563eb;border-color:#2563eb}.cleanup-del{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;justify-content:center;align-items:center;width:34px;height:30px;display:inline-flex}.cleanup-del:hover{background:#1d4ed8}.cleanup-edit{border:1px solid var(--border);width:100%;font:inherit;color:var(--text);background:var(--bg);border-radius:6px;padding:.4rem .6rem}.cleanup-save{color:#fff;font:inherit;cursor:pointer;background:#16a34a;border:none;border-radius:8px;margin-bottom:.75rem;padding:.5rem 1rem;font-weight:600}.cleanup-save:hover{background:#15803d}.ua-desc{justify-content:space-between;gap:1.5rem;display:flex}.ua-note{color:var(--muted-strong);white-space:nowrap}.pb-cards{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.pb-card{border:1px solid var(--border);min-width:180px;box-shadow:var(--shadow);border-radius:10px;flex:180px;overflow:hidden}.pb-card__head{background:var(--accent);color:#fff;padding:.45rem .75rem;font-size:.85rem;font-weight:600}.pb-card__body{padding:.6rem .75rem;font-size:.8rem}.pb-card__total{border-bottom:1px solid var(--border);margin-bottom:.35rem;padding-bottom:.35rem}.pb-card__line{color:var(--muted-strong);line-height:1.5}.nr-cards{gap:.6rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.nr-card{border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex:0 0 170px;overflow:hidden}.nr-card__head{background:var(--accent);color:#fff;padding:.4rem .7rem;font-size:.82rem;font-weight:600}.nr-card__head--current{background:#111827}.nr-card__body{padding:.55rem .7rem;font-size:.78rem}.nr-label{color:var(--muted-strong);margin-top:.35rem}.nr-val{font-size:.95rem;font-weight:600}.nr-section{border-top:1px solid var(--border);margin-top:.6rem;padding-top:.4rem;font-weight:700}.nr-line{color:var(--muted-strong);line-height:1.6}.nr-red{color:#dc2626}.contact-form__phone{align-items:center;gap:.4rem;display:flex}.contact-form__phone input{flex:auto;min-width:0}.contact-form__phone select{flex:none}.contact-form__add{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--text);cursor:pointer;border-radius:8px;flex:none;font-size:1.1rem;line-height:1}.contact-form__actions{align-items:center;gap:.8rem;margin-top:.3rem;display:flex}.stat-row{flex-wrap:wrap;gap:.8rem;margin:.5rem 0 1.2rem;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:8rem;padding:.8rem 1rem}.stat__value{color:var(--text);font-size:1.35rem;font-weight:700}.stat__label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem}.vs-toolbar{border:1px solid var(--border);background:#2563eb14;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.5rem .6rem;display:flex}.vs-toolbar__title{color:var(--text);margin-right:.25rem;font-weight:600}.vs-legend{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.vs-tag{cursor:pointer;white-space:nowrap;border:none;border-radius:5px;padding:4px 10px;font-size:.78rem;font-weight:600}.vs-tag:hover{filter:brightness(1.06)}.vs-tag--off{opacity:.4;filter:grayscale(.5)}.vs-tag--tdd{color:#fff;background:#dc2626}.vs-scroll{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-top:.6rem;overflow-x:auto}.vs-chart{width:100%;font-size:.72rem}.vs-head,.vs-row{grid-template-columns:var(--label-w,210px) 1fr;display:grid}.vs-corner,.vs-label{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;padding:2px 8px;display:flex;overflow:hidden}.vs-label{font-size:.8rem}.vs-days,.vs-track{grid-template-columns:repeat(var(--days), 1fr);display:grid}.vs-daynum,.vs-dow{text-align:center;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted);padding:1px 0}.vs-daynum.is-month{color:#dc2626;font-weight:600}.vs-daynum.is-weekend,.vs-dow.is-weekend,.vs-cell.is-weekend{background:#64748b1a}.vs-daynum.is-mon,.vs-dow.is-mon,.vs-cell.is-mon{border-left:2px solid var(--border)}.vs-track{border-bottom:1px solid var(--border);height:22px;position:relative}.vs-cell{border-right:1px solid var(--border)}.vs-bar{border-radius:3px;min-width:5px;height:16px;position:absolute;top:3px;box-shadow:0 1px 1px #00000026}.vs-tdd{background:#dc262640;border-left:2px solid #dc2626;min-width:3px;position:absolute;top:0;bottom:0}.navbar{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);align-items:center;gap:1rem;padding:.6rem 1.5rem;display:flex;position:sticky;top:0}.navbar__brand{color:var(--text);white-space:nowrap;letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.navbar__links{align-items:center;gap:.25rem;display:flex}.navbar__link{cursor:pointer;font:inherit;color:var(--muted-strong);white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:.4rem .7rem;font-size:.9rem}.navbar__link:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text)}.navbar__link[aria-current=page],.navbar__link--current{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);font-weight:600}.navbar__spacer{flex:1}.navbar__options{align-items:center;gap:.4rem;display:flex}.icon-btn{cursor:pointer;width:2rem;height:2rem;color:var(--muted-strong);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.icon-btn:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:var(--border);color:var(--text)}.menu{position:relative}.menu__popover{background:var(--surface);border:1px solid var(--border);min-width:11rem;box-shadow:var(--shadow-pop);z-index:20;border-radius:10px;max-height:min(70vh,30rem);padding:.3rem;position:absolute;top:calc(100% + .4rem);right:0;overflow-y:auto}.menu__popover--start{left:0;right:auto}.menu__item{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:none;border-radius:6px;padding:.45rem .6rem;font-size:.85rem;display:block}.menu__item:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.menu__label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.4rem .6rem .2rem;font-size:.72rem;font-weight:600}.menu__sep{background:var(--border);height:1px;margin:.3rem .35rem}.placeholder{color:var(--muted);font-size:.95rem}table.dt-clickable tbody tr{cursor:pointer}table.dt-clickable tbody tr:hover{background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.detail-tabs{border-bottom:2px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.detail-tabs__list{flex-wrap:wrap;gap:.25rem;display:flex}.detail-tab{font:inherit;color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.55rem .7rem;font-size:.88rem}.detail-tab:hover{color:var(--accent-hover)}.detail-tab--active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.detail-exit{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:.4rem .2rem;font-size:.9rem;font-weight:600}.detail-exit:hover{color:var(--accent-hover);text-decoration:underline}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.5rem;display:grid}@media (width<=900px){.detail-grid{grid-template-columns:1fr}}.detail-grid--3col{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.25rem}@media (width<=1200px){.detail-grid--3col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.detail-grid--3col{grid-template-columns:1fr}}.contact-detail__name,.contact-detail__company{margin-top:.75rem;font-size:1.05rem;font-weight:700}.contact-detail__role{color:var(--muted);margin-bottom:.5rem}.contact-detail__line{margin:.25rem 0}.contact-detail__projects{margin:.5rem 0 0;padding:0;list-style:none}.contact-detail__projects li{border-top:1px solid var(--border);padding:.6rem 0}.contact-detail__projects li:first-child{border-top:none}.employer-select__new{gap:.4rem;margin-top:.4rem;display:flex}.detail-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.detail-panel__head{box-sizing:border-box;text-align:left;width:100%;font:inherit;color:inherit;background:color-mix(in srgb, var(--muted) 14%, var(--surface));border:none;border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;display:flex}.detail-panel__head:hover{background:color-mix(in srgb, var(--muted) 26%, var(--surface))}.detail-panel__head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.detail-panel__title{font-size:.95rem;font-weight:700}.detail-panel__back{color:var(--accent);flex:none;font-size:.85rem;font-weight:600}.detail-panel__head:hover .detail-panel__back{color:var(--accent-hover)}.detail-panel__sub{color:var(--muted);font-weight:500}.detail-panel__body{padding:1rem 1.25rem 1.25rem}.detail-panel--full{width:100%}.files-head{margin-bottom:.75rem;font-size:.95rem;font-weight:700}.files-addnew{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.files-addnew:hover{color:var(--accent-hover);text-decoration:underline}.files-form{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:.6rem;max-width:28rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.files-form__field{flex-direction:column;gap:.3rem;display:flex}.files-form__label{color:var(--muted-strong);font-size:.85rem;font-weight:600}.files-error{color:#dc2626;margin:.1rem 0 0;font-size:.85rem;font-weight:600}.files-empty{color:var(--muted);font-size:.9rem}.files-list{flex-direction:column;gap:.5rem;display:flex}.file-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:.6rem 2rem .6rem .85rem;position:relative}.file-card__name{font:inherit;color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;display:block}.file-card__name:hover{text-decoration:underline}.file-card__meta{color:var(--muted);word-break:break-word;margin-top:.15rem;font-size:.8rem}.file-card__actions{gap:.75rem;margin-top:.4rem;display:flex}.file-card__action{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600}.file-card__action:hover{text-decoration:underline}.file-card__edit{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.file-card__edit .detail-input{flex:12rem}.notes-textarea{resize:vertical;width:100%;min-height:6rem;font:inherit}.note-card__body{white-space:pre-wrap;word-break:break-word;color:var(--text)}.file-card__edit .notes-textarea{flex:100%}.detail-actions{gap:.5rem;margin-bottom:1rem;display:flex}.detail-btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-weight:600}.detail-btn-secondary:hover{border-color:var(--accent)}.detail-subhead{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);margin:1.1rem 0 .4rem;padding-bottom:.25rem;font-size:.8rem}.detail-field{grid-template-columns:11rem 1fr;align-items:center;gap:.5rem 1rem;padding:.3rem 0;font-size:.9rem;display:grid}.detail-field__label{color:var(--muted-strong);font-weight:600}.detail-field__value{color:var(--text)}.detail-input{background:var(--bg);border:1px solid var(--border);font:inherit;color:var(--text);box-sizing:border-box;border-radius:8px;width:100%;padding:.4rem .55rem;font-size:.9rem}.detail-radio{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.detail-radio__option{color:var(--text);cursor:pointer;align-items:center;gap:.35rem;display:inline-flex}.detail-complete{margin-top:1.25rem}.detail-reactivate{background:var(--accent);margin-top:1.25rem}.detail-reactivate:hover{background:var(--accent-hover)}.detail-danger{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:.75rem}.detail-subhead--danger{color:#dc2626}.detail-delete-link{font:inherit;color:#dc2626;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.detail-delete-link:hover{color:#b91c1c}.detail-confirm{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:.75rem .9rem}.detail-confirm__msg{color:#7f1d1d;margin:0 0 .6rem;font-size:.9rem}.detail-confirm__actions{gap:.5rem;display:flex}.detail-delete{color:#fff;font:inherit;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600}.detail-delete:hover{background:#b91c1c}.reactivate-banner{z-index:100;background:var(--surface);max-width:calc(100vw - 2rem);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;align-items:center;gap:1rem;padding:.7rem 1rem;font-size:.9rem;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.reactivate-banner__msg strong{font-weight:700}.reactivate-banner__undo{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:7px;padding:.4rem .85rem;font-weight:600}.reactivate-banner__undo:hover{background:var(--accent-hover)}.detail-link{color:var(--accent);text-decoration:none}.detail-link:hover{text-decoration:underline}.contact-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}@media (width<=600px){.contact-columns{grid-template-columns:1fr}}.contact-group__title{margin:0 0 .5rem;font-size:.85rem;font-weight:700}.contact-group__empty{color:var(--muted);margin:0;font-size:.85rem}.contact-card{border-top:1px solid var(--border);padding:.5rem 0;font-size:.88rem}.contact-card:first-of-type{border-top:none}.contact-card__name{font-weight:600}.contact-card__role{color:var(--text);font-weight:600}.contact-card__meta{color:var(--muted)}.contact-card__company{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;margin:.05rem 0;padding:0;display:block}.contact-card__company:hover{text-decoration:underline}.contact-card__projrole{color:var(--muted-strong)}.contact-card__rolefield{margin:.35rem 0;display:block}.contact-card__rolefield span{color:var(--muted-strong);margin-bottom:.2rem;font-size:.78rem;font-weight:600;display:block}.contact-card--editing{padding-right:1.2rem}.contact-card{position:relative}.contact-card__remove{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:.8rem;line-height:1;position:absolute;top:.4rem;right:0}.contact-card__remove:hover{color:#dc2626}.contact-add-btn{border:1px dashed var(--border);font:inherit;color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;margin-top:.6rem;padding:.4rem .7rem;font-size:.85rem;font-weight:600}.contact-add-btn:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.contact-add-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.contact-add-link:hover{text-decoration:underline}.company-info__meta{margin-bottom:.5rem}.company-info__people{flex-direction:column;display:flex}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;gap:.8rem;padding:1.75rem 1.75rem 1.5rem;display:flex}.login-brand{color:var(--accent);margin:0;font-size:1.5rem}.login-sub{color:var(--muted);margin:0 0 .5rem;font-size:.9rem}.login-field{color:var(--muted-strong);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.login-error{color:#dc2626;margin:0;font-size:.85rem}.login-submit{margin-top:.4rem}.login-hint{color:var(--muted);margin:.4rem 0 0;font-size:.78rem;line-height:1.5}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:flex-start;padding:4rem 1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:640px;max-height:85vh;box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.modal-card--wide{max-width:880px}.modal-card__head{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;font-size:.95rem;font-weight:600;display:flex}.modal-card__close{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1rem;line-height:1}.modal-card__close:hover{color:var(--text)}.modal-card__body{flex-direction:column;gap:.9rem;padding:1.25rem 1.25rem 1.5rem;display:flex;overflow-y:auto}.modal-field{flex-direction:column;gap:.35rem;max-width:320px;display:flex}.modal-field__label{color:var(--text);font-size:.85rem;font-weight:700}.modal-newinput{max-width:320px}.modal-submit{align-self:flex-start;min-width:12rem;margin-top:.5rem}.modal-submit:disabled{opacity:.55;cursor:not-allowed}.co-field{flex-direction:column;gap:.4rem;display:flex}.co-radio{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.co-radio label{cursor:pointer;align-items:center;gap:.5rem;display:flex}.co-amount{align-items:stretch;max-width:16rem;display:flex}.co-amount__prefix{background:color-mix(in srgb, var(--muted) 18%, var(--surface));border:1px solid var(--border);color:var(--muted-strong);border-right:none;border-radius:8px 0 0 8px;align-items:center;padding:0 .6rem;font-weight:600;display:flex}.co-amount .detail-input{border-radius:0 8px 8px 0}.file-card__edit .co-amount{flex:100%}.co-card__head{align-items:baseline;gap:.6rem;display:flex}.co-card__type{color:var(--muted-strong);background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-radius:999px;padding:.05rem .5rem;font-size:.75rem;font-weight:600}.submittals-empty{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;display:flex}.submittals-empty .files-form{margin-bottom:0}.submittals-due-label,.material-order-type-label{color:#dc2626}.requisition-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem 1.5rem;max-width:70rem;margin:.5rem 0 1rem;display:grid}.requisition-field{flex-direction:column;gap:.3rem;display:flex}.requisition-field--wide{grid-column:span 2}.requisition-field__label{font-size:.85rem;font-weight:700}.requisition-actions{white-space:nowrap;align-items:center;gap:.7rem;display:flex}.submittals-confirm{align-items:center;gap:.5rem;font-size:.9rem;font-weight:700;display:flex}.submittals-table{border-collapse:collapse;width:100%;font-size:.85rem}.submittals-table th,.submittals-table td{border:1px solid var(--border);text-align:left;vertical-align:middle;color:var(--text);padding:.45rem .6rem}.submittals-table th{background:color-mix(in srgb, var(--muted) 14%, var(--surface));white-space:nowrap;font-weight:700}.submittals-table--edit td{padding:.3rem .35rem}.submittals-table--edit .detail-input{padding:.3rem .4rem;font-size:.8rem}.submittals-table__remove{position:static}.fm-rownum{white-space:nowrap}.fm-rownum span{color:var(--muted-strong);margin-right:.4rem}.fm-row-delete{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.25rem .45rem;font-size:.8rem;line-height:1}.fm-row-delete:hover{background:var(--accent-hover)}.fm-row-delete:disabled{opacity:.5;cursor:default}.fm-addform{margin:.5rem 0 1rem}.fm-addform__label{color:#dc2626;margin:0 0 .4rem;font-weight:700}.fm-addform__row{align-items:center;gap:.5rem;display:flex}.fm-addform__date{max-width:16rem}.subtop-completed{color:#166534;font-weight:600}.subtop-status{white-space:nowrap;align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.material-board{table-layout:fixed}.material-board td{vertical-align:top}.submittals-table--edit th[scope=row]{text-align:left;background:color-mix(in srgb, var(--muted) 14%, var(--surface))}.material-required{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;font-weight:600;display:inline-flex}.material-required label{cursor:pointer;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.material-approved{font-weight:600}.material-rejected{color:#dc2626;font-weight:600}.detail-input.is-invalid{border:1.5px solid #dc2626}.detail-inline-link{font:inherit;color:var(--accent,#2563eb);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:none}.detail-inline-link:hover{text-decoration:underline}
