.app{margin:0 auto;padding:32px;color:var(--ink-900);display:flex;flex-direction:column;gap:28px;min-height:100vh;width:100%;max-width:1600px}.app__shell{display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto 1fr;gap:28px;align-items:stretch}.app__main{display:flex;flex-direction:column;gap:24px;min-width:0}.sidebar{position:sticky;top:24px;align-self:stretch;height:100%;z-index:3;padding:22px 20px;border-radius:24px;background:linear-gradient(160deg,#052460,#0b2d6a 55%,#052460);box-shadow:0 24px 60px #05246059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sidebar__brand{display:flex;flex-direction:column;gap:4px;margin-bottom:18px}.sidebar__eyebrow{font-size:.65rem;letter-spacing:.32em;text-transform:uppercase;color:#e2e8f099}.sidebar__brand strong{color:#f8fafc}.sidebar__nav{display:flex;flex-direction:column;gap:10px}.sidebar__tab{width:100%;text-align:left;padding:10px 14px;border-radius:14px;border:1px solid transparent;background:transparent;color:#e2e8f0b8;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s ease}.sidebar__tab:hover{border-color:#ffffff59;background:#05246099;color:#f8fafc}.sidebar__tab.is-active{background:linear-gradient(135deg,#052460,#1b56b5);color:#fff;box-shadow:0 14px 30px #05246059}.app--locked .app__content{opacity:.6;pointer-events:none}.app__content{display:flex;flex-direction:column;gap:28px;grid-column:1 / -1;z-index:0}.app__header{display:flex;flex-direction:column;align-items:stretch;gap:24px;flex-wrap:nowrap;padding:26px;border-radius:28px;background:linear-gradient(135deg,#fffffffa,#f0f4fbeb);box-shadow:0 26px 60px #0524602e;align-self:stretch;position:sticky;top:24px;z-index:2;overflow-x:auto}.app__eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.7rem;margin-bottom:10px;color:var(--ink-500)}.app__subhead{margin-top:12px;color:var(--ink-600);max-width:520px}.header__meta{display:flex;flex-direction:column;gap:12px;width:100%}.header__meta-top,.header__meta-middle,.header__meta-bottom,.header__meta-bottom-right{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:nowrap}.header__meta label{min-width:160px}.header__meta-left,.header__meta-actions,.header__meta-right{display:flex;align-items:flex-end;gap:16px;flex-wrap:nowrap}.header__meta-actions{padding-bottom:0}.final-report-badge{border:2px solid #000000;color:#000;font-weight:800;letter-spacing:.08em;padding:6px 12px;text-transform:uppercase}.header__status{display:flex;flex-direction:column;gap:4px;min-width:160px;align-items:flex-start}.header__status-greeting{font-weight:600;color:var(--ink-800)}.header__meta-right{margin-left:auto}.header__meta .toggle{min-width:0}.header__action{display:flex;flex-direction:column;gap:6px;min-width:180px}.header__meta-bottom{align-items:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:12px;background:#052460;color:#fff;text-decoration:none;font-size:.95rem;font-weight:500;border:1px solid rgb(5,36,96);cursor:pointer;font-family:inherit}.button:hover{filter:brightness(1.05)}.button:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.button--ghost{background:#052460;color:#fff;border-color:#052460}.button--tiny{padding:4px 10px;font-size:.75rem}.button--danger{color:var(--accent-red);border-color:#fff}.button--procore{background:#7a1502;color:#fff;border-color:#7a1502}.button--procore:hover{filter:brightness(1.08)}.jobcost-delete{width:6px;min-width:6px;max-width:6px;height:16px;padding:0!important;line-height:1;font-size:10px;display:inline-flex;align-items:center;justify-content:center}.button.jobcost-delete{width:6px;min-width:6px;max-width:6px;padding:0!important;background-color:transparent!important;border:0!important;box-shadow:none;color:#b91c1c}.button-row{display:flex;gap:12px;flex-wrap:wrap}.inline-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid-spacer{min-height:1px}.inline-controls select{min-width:220px;flex:1}.header__note{font-size:.85rem;color:var(--ink-500)}.status{font-size:.85rem;color:var(--ink-500);align-self:flex-start}.status--error{color:var(--accent-red)}.muted{color:var(--ink-500);font-size:.9rem;margin:0}.form-error{margin:0;font-size:.85rem;color:var(--accent-red)}.card{padding:24px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px;animation:rise .5s ease both}.card--grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card--overview{grid-template-columns:repeat(4,minmax(200px,1fr));grid-template-areas:"title title title title" "job-number job-name job-name office" "pm apm super asst-super"}.card__title--overview{grid-area:title}.overview__job-number{grid-area:job-number}.overview__job-name{grid-area:job-name}.overview__office{grid-area:office}.overview__pm{grid-area:pm}.overview__apm{grid-area:apm}.overview__super{grid-area:super}.overview__asst-super{grid-area:asst-super}.admin-grid{display:flex;flex-direction:column;gap:16px}.admin-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;width:100%}.admin-row--import-title{align-items:center}.admin-row--assigned{flex-direction:column;align-items:flex-start}.admin-row--exec{align-items:flex-start}.admin-row--comparison .table{width:100%}.admin__exec-notes{min-height:42px;height:42px}.admin__exec-notes-field{flex:2 1 420px}.admin-row .button{height:42px}.admin-row .status{align-self:center}.admin-add-pm .inline-controls{min-width:260px}.card--inline{flex-direction:row;align-items:center;flex-wrap:wrap}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal__card{background:#fff;border-radius:20px;padding:24px;width:min(420px,90vw);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.modal__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.modal__actions{display:flex;gap:12px;justify-content:flex-end}.card__title{font-weight:700;font-size:1.1rem;color:var(--ink-900);text-transform:uppercase;letter-spacing:.08em}.card__subtitle{font-weight:600;font-size:.9rem;color:var(--ink-700);margin-bottom:8px}.card__full{grid-column:1 / -1}.assignment-list{display:flex;flex-wrap:wrap;gap:8px}.assignment-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#0f766e14;border:1px solid rgba(15,118,110,.3);color:var(--ink-700);font-size:.85rem}.card__note{color:var(--ink-500);font-size:.9rem;margin:0}label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--ink-600)}.toggle{flex-direction:row;align-items:center;gap:10px;font-size:.85rem}.toggle input{width:18px;height:18px}input,select,textarea{padding:10px 12px;border-radius:12px;border:1px solid rgba(15,23,42,.15);background:#fff;font-size:.95rem;font-family:inherit;color:var(--ink-900)}textarea{min-height:88px;resize:vertical}input[readonly],textarea[readonly]{background:#0f172a0d;color:var(--ink-700)}select:disabled,input:disabled{background:#0f172a14;color:var(--ink-600)}.field__readout{padding:10px 12px;border-radius:12px;background:#0f172a14;color:var(--ink-900);font-weight:600}.field__readout--positive{color:#15803d}.field__readout--negative{color:#b91c1c}.table{display:grid;gap:8px}.table__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center}.table__row--header{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500)}.table__row--summary{font-weight:600;color:var(--ink-800)}.table__row input{width:100%}.table__row .billing-actual-input{width:96px;min-width:96px;max-width:96px}.table--compact .table__row{grid-template-columns:repeat(8,minmax(0,1fr));font-size:.85rem}.jobcost-table input{font-size:.78rem}.jobcost-table input[list=cost-code-options]{width:calc(70% + 10px);justify-self:start}.jobcost-table .table__row{grid-template-columns:.8fr repeat(6,minmax(0,1fr)) 24px}.table--compact .table__row--header{font-size:.75rem}.table--sticky .table__row{grid-template-columns:repeat(12,minmax(0,1fr));font-size:.75rem}.billing-table .table__row{grid-template-columns:50px 60px 50px 110px 110px 96px 110px 70px 70px 90px 110px 110px}.table--sticky input{min-width:140px;font-size:.7rem;justify-self:start}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.summary-grid div{padding:12px;border-radius:12px;background:#0f172a14;display:flex;flex-direction:column;gap:6px;text-align:center;align-items:center}.summary-grid span{color:var(--ink-500);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.summary-grid strong{font-size:1.1rem;color:var(--ink-900)}.chart-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.chart{width:100%;height:auto;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;background:#0f172a08;border-radius:12px}.chart__axis{stroke:#0f172a33}.chart__tick{stroke:#0f172a33;stroke-width:1}.chart circle{pointer-events:all}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.app{padding:24px}.app__shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar__nav{flex-direction:row;flex-wrap:wrap}.sidebar__tab{width:auto}.table__row,.table--compact .table__row,.table--sticky .table__row{grid-template-columns:1fr}.header__meta{width:100%}}.header__title{display:flex;align-items:center;gap:14px}.header__title h1{color:#000;line-height:1}.header__logo{width:57px;height:57px;object-fit:contain;display:block}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink-900: #052460;--ink-800: #0b2d6a;--ink-600: #3c4f78;--ink-500: #5b6f95;--surface: #ffffff;--surface-strong: #ffffff;--brand-900: #052460;--brand-800: #0b2d6a;--brand-600: #0f3b8a;--brand-500: #1b56b5;--accent-red: #7a1502;--shadow: 0 22px 60px rgba(5, 36, 96, .18);background:radial-gradient(circle at top left,#fff,#f0f4fb,#e1e8f5)}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Gill Sans,Trebuchet MS,sans-serif}h1{font-size:clamp(2rem,3vw,2.8rem);margin:0 0 8px}h2,h3{margin:0 0 8px;font-size:1.1rem}p{margin:0}
