/* ActualCost navy workspace — based on the approved brand direction. */
:root{--navy:#081930;--navy-soft:#112a4e;--blue:#2563eb;--blue-deep:#1d4ed8;--surface:#f5f7fa;--panel:#fff;--line:#e2e8f0;--ink:#172033;--muted:#637087;--success:#159b81;--danger:#e44444;--table-line:#dde3eb;--table-head:#f6f8fb;--table-group:#fbfcfe;--table-hover:#f4f7fb;--green:var(--blue)}
body{background:var(--surface);color:var(--ink)}
.brand{display:inline-flex;align-items:center;gap:7px;text-decoration:none;letter-spacing:-.035em}.brand-vector-mark{display:inline-flex;align-items:baseline;font-size:2.2rem;font-weight:900;font-style:italic;line-height:.78;letter-spacing:-.24em}.brand-vector-mark b{color:var(--blue);font-weight:900}.brand-vector-mark i{color:#071b3d;font-style:italic;font-weight:900}.brand-vector-copy{display:flex;min-width:0;flex-direction:column;gap:4px}.brand-vector-name{color:#071b3d;font-size:1.2rem;font-weight:650;letter-spacing:-.05em;line-height:.85}.brand-vector-name span{color:var(--blue)}.brand-tagline{color:#728096;font-size:6.7px;font-weight:650;letter-spacing:.21em;line-height:1;text-transform:uppercase;white-space:nowrap}.brand-tagline em{color:var(--blue);font-style:normal;font-weight:800}.marketing-brand .brand-vector-mark{font-size:2.55rem}.marketing-brand .brand-vector-name{font-size:1.43rem}.marketing-brand .brand-tagline{font-size:7.4px}
#app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh;background:var(--surface)}
/* Keep the public page and signed-in workspace mutually exclusive. */
#app[hidden]{display:none!important}
#auth-screen[hidden],.marketing-page[hidden]{display:none!important}
.topbar{position:sticky;top:0;align-self:start;z-index:4;display:flex;flex-direction:column;align-items:stretch;gap:26px;width:236px;height:100vh;min-height:100vh;padding:27px 18px 20px;background:var(--navy);border:0;backdrop-filter:none}.topbar .brand{padding:0 10px}.topbar .brand-vector-mark{font-size:2.2rem}.topbar .brand-vector-mark i{color:#fff}.topbar .brand-vector-name{color:#fff;font-size:1.15rem}.topbar .brand-vector-name span{color:#5c86ff}.topbar .brand-tagline{color:#aebbd0;font-size:6.25px}.topbar nav{display:flex;flex-direction:column;gap:5px}.nav{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:7px;color:#aebbd0;font-size:.9rem;font-weight:580;text-align:left}.nav:before{content:'›';color:#7690ba;font-size:1rem;line-height:1}.nav.active,.nav:hover{background:rgba(255,255,255,.12);color:#fff}.nav.active:before{color:#77a0ff}.account{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:auto;padding:14px 10px 0;border-top:1px solid rgba(255,255,255,.12);color:#aebbd0;font-size:.78rem}.account .text-button{color:#fff;font-size:.78rem}.account .text-button:hover{color:#87a9ff}
.app-main{width:100%;max-width:none;margin:0;padding:30px 38px 62px}.view-heading{align-items:center;margin-bottom:19px}.view-heading h1{font-size:clamp(1.65rem,2.6vw,2.35rem);font-weight:650;letter-spacing:-.035em}.eyebrow{color:var(--blue);font-size:.68rem;font-weight:650;letter-spacing:.11em}.view-heading p:not(.eyebrow),.auth-copy>p:not(.eyebrow){color:var(--muted);font-size:.88rem}.heading-actions{gap:8px}.primary{border-radius:6px;background:var(--blue);font-weight:620;box-shadow:0 1px 1px rgba(19,45,93,.08)}.primary:hover{background:var(--blue-deep)}.text-button{color:var(--blue);font-weight:580}.view-switch{border-color:#dce3ed;background:#fff;border-radius:6px}.view-choice{border-radius:4px;font-weight:580}.view-choice.active{color:var(--blue);box-shadow:0 1px 3px rgba(29,52,86,.12)}.nav:focus-visible,.primary:focus-visible,.text-button:focus-visible,.view-choice:focus-visible,.signin-button:focus-visible{outline:2px solid #6a94f5;outline-offset:2px}
.entry-form,.project-grid,.data-list,.job-groups{border-color:var(--line);border-radius:7px;background:var(--panel);box-shadow:0 3px 14px rgba(25,48,86,.045)}
/* One compact form system for every workspace page.  The top quick-entry
   form is intentionally no larger than the Project, Team, Job and cost forms. */
.entry-form{padding:12px 14px;gap:8px 10px}
.entry-form.daily{gap:7px 9px}
.entry-form label{gap:4px;font-size:.72rem}
.entry-form input,.entry-form select{min-height:36px;padding:7px 10px}
.entry-form .primary{min-height:36px;padding:7px 12px}
.entry-form input,.entry-form select,input,select{border-color:#d9e0ea;border-radius:5px;background:#fff}.entry-form input:focus,input:focus,select:focus{outline-color:#dbe7ff;border-color:#6a94f5}.entry-form label,.inline-entry-form label,.inline-job-form label{color:#42516a}
.dense-table th{background:var(--table-head);color:#56657a;font-weight:680}.dense-table td{border-color:var(--table-line);color:var(--ink);font-weight:430}.dense-table tr:hover td{background:var(--table-hover)}.project-grid,.data-list,.job-groups{box-shadow:0 3px 14px rgba(25,48,86,.045)}.project-card{border-color:var(--table-line)}.project-card .metric,.project-card>p,.project-card>h3,.project-card>.badge{border-color:var(--table-line)}.project-card .badge,.badge{background:#e9f7f2;color:#148269}.job-group{background:#fff;border-color:var(--table-line)}.job-group>summary{background:var(--table-group);color:var(--ink);font-weight:650}.job-group>summary:hover{background:#f1f5fa}.job-group[open]>summary{border-color:var(--table-line)}.job-row>* ,.data-row>*{border-color:var(--table-line)}.data-row:hover,.job-row:hover,.data-row:hover>* ,.job-row:hover>*{background:var(--table-hover)}.inline-job-form,.inline-entry-form{background:#fbfcff!important;border-color:var(--table-line)!important}.group-add-entry-row,.group-add-job-row{background:#fbfcff;border-color:var(--table-line)}.negative{color:var(--danger)}.positive{color:var(--success)}.lock{background:var(--blue-deep)}
/* Closed groups stay calm; opened registers gain just enough hierarchy to scan quickly. */
.job-group>summary{position:relative;padding-left:18px}.job-group>summary:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}.job-group[open]>summary:before{background:var(--blue)}.job-group>summary>span:first-child{letter-spacing:-.012em}.job-group[open]>summary>span:first-child{font-weight:680}.job-group-content>.dense-table thead{box-shadow:inset 0 -1px 0 var(--table-line)}.job-group-content>.dense-table tbody tr:nth-child(even) td{background:rgba(244,247,251,.52)}.job-group-content>.dense-table tbody tr:hover td{background:var(--table-hover)}.job-group-content .empty-entry-message{padding:15px 18px!important;border-left:3px solid #dbe4f2;color:var(--muted)}
.column-menu{border-color:var(--line);border-radius:7px;box-shadow:0 12px 30px rgba(18,39,76,.15)}.column-menu label:hover{background:#f4f7fc}.column-menu input{accent-color:var(--blue)}.entry-form.daily{grid-template-columns:110px minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1fr) 92px 124px}.entry-form.daily .primary{white-space:nowrap}
.compact-select{min-height:34px;width:auto;padding:6px 27px 6px 9px;font-size:.78rem;font-weight:580}.active-status{background:#e9f7f2!important;color:#148269!important}.inactive-status{background:#f0f2f5!important;color:#64748b!important}
.marketing-page{background:radial-gradient(circle at 78% 26%,#e7efff 0,rgba(231,239,255,0) 29rem),#f8fafc}.marketing-brand .brand-mark{font-size:1.85rem}.marketing-brand .brand-word{font-size:1.4rem}.signin-button{border-color:#cbd8f3;color:var(--blue-deep)}.signin-button:hover{border-color:#6a94f5;background:#f4f7ff}.hero-preview{border-color:#dbe4f3;box-shadow:0 24px 60px rgba(22,53,104,.1)}.preview-live{color:var(--blue-deep);background:#e9f0ff}.preview-row i:after,.summary-bars span{background:var(--blue)}.preview-summary{border-color:#dbe4f3}.waitlist-section{background:#f2f6ff;border-color:#dce6f7}.waitlist-form{border-color:#d9e3f4;box-shadow:0 16px 34px rgba(25,56,111,.08)}.waitlist-form input[type=email]:focus{outline-color:#dce8ff;border-color:#5d87e9}.waitlist-form .consent input{accent-color:var(--blue)}
@media(max-width:860px){#app{display:block}.topbar{position:sticky;flex-direction:row;align-items:center;width:100%;height:auto;min-height:0;padding:13px 18px;gap:18px}.topbar .brand{padding:0}.topbar nav{flex:1;flex-direction:row;overflow:auto}.nav{width:auto;white-space:nowrap;padding:8px 10px}.account{flex-direction:row;align-items:center;gap:10px;margin:0 0 0 auto;padding:0;border:0}.app-main{padding:24px 18px 50px}}
@media(max-width:600px){.topbar{flex-wrap:wrap}.topbar nav{order:3;width:100%;flex-basis:100%}.account span{display:none}.app-main{padding:20px 14px 42px}.view-heading{align-items:flex-start}.brand-word{font-size:1rem}}

/* Private Design mode. These variables provide a safe visual sandbox rather
   than letting a page layout be dragged into a broken state. */
html{font-size:calc(16px * var(--design-font-scale,1))}
#app{grid-template-columns:var(--design-sidebar-width,236px) minmax(0,1fr)}
.topbar{width:var(--design-sidebar-width,236px)}
.design-mode-button{color:#9db7eb!important}
.design-mode{position:fixed;z-index:20;right:22px;top:22px;width:min(410px,calc(100vw - 44px));max-height:calc(100vh - 44px);overflow:auto;padding:22px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 70px rgba(8,25,48,.28)}
.design-mode-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;padding-bottom:17px;border-bottom:1px solid var(--line)}
.design-mode h2{margin:2px 0 6px;font-size:1.45rem;letter-spacing:-.04em}.design-mode p:not(.eyebrow){margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.design-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 14px;margin:18px 0}.design-control-grid label{display:grid;gap:7px;margin:0;font-size:.73rem;font-weight:650;color:#41506a}.design-control-grid output{float:right;color:var(--blue);font-size:.7rem}.design-control-grid select,.design-control-grid input{min-height:34px;margin:0;padding:6px 8px}.design-control-grid input[type=range]{padding:0;accent-color:var(--blue)}.design-mode-actions{display:flex;align-items:center;gap:14px;padding-top:16px;border-top:1px solid var(--line)}.design-mode-actions .primary{margin:0}.design-mode .status{margin:12px 0 0}
html[data-design-weight="light"] .app-main,html[data-design-weight="light"] .topbar{font-weight:400}html[data-design-weight="light"] .view-heading h1{font-weight:570}html[data-design-weight="standard"] .app-main,html[data-design-weight="standard"] .topbar{font-weight:430}html[data-design-weight="strong"] .app-main,html[data-design-weight="strong"] .topbar{font-weight:500}
html[data-design-font="modern"] body,html[data-design-font="modern"] input,html[data-design-font="modern"] select,html[data-design-font="modern"] button{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}html[data-design-font="humanist"] body,html[data-design-font="humanist"] input,html[data-design-font="humanist"] select,html[data-design-font="humanist"] button{font-family:"Avenir Next","Segoe UI",Candara,Calibri,sans-serif}html[data-design-font="compact"] body,html[data-design-font="compact"] input,html[data-design-font="compact"] select,html[data-design-font="compact"] button{font-family:"Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif}html[data-design-font="classic"] body,html[data-design-font="classic"] input,html[data-design-font="classic"] select,html[data-design-font="classic"] button{font-family:Georgia,"Times New Roman",serif}html[data-design-font="classic"] .nav,html[data-design-font="classic"] .primary,html[data-design-font="classic"] .text-button,html[data-design-font="classic"] .dense-table{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html[data-design-density="compact"] .dense-table th{padding-top:8px;padding-bottom:8px}html[data-design-density="compact"] .dense-table td{padding-top:8px;padding-bottom:8px}html[data-design-density="comfortable"] .dense-table th{padding-top:11px;padding-bottom:11px}html[data-design-density="comfortable"] .dense-table td{padding-top:11px;padding-bottom:11px}html[data-design-density="spacious"] .dense-table th{padding-top:15px;padding-bottom:15px}html[data-design-density="spacious"] .dense-table td{padding-top:15px;padding-bottom:15px}
html[data-design-button="compact"] .primary{padding:7px 10px;font-size:.77rem}html[data-design-button="compact"] .text-button{font-size:.74rem}html[data-design-button="large"] .primary{padding:14px 20px;font-size:.96rem}html[data-design-button="large"] .text-button{font-size:.9rem}
html[data-design-corners="sharp"]{--design-radius:3px}html[data-design-corners="soft"]{--design-radius:7px}html[data-design-corners="rounded"]{--design-radius:12px}html[data-design-corners] .entry-form,html[data-design-corners] .project-grid,html[data-design-corners] .data-list,html[data-design-corners] .job-groups,html[data-design-corners] .job-group,html[data-design-corners] .primary,html[data-design-corners] input,html[data-design-corners] select{border-radius:var(--design-radius)!important}
html[data-design-theme="slate"]{--navy:#1f2933;--navy-soft:#354353;--blue:#64748b;--blue-deep:#475569;--surface:#f7f8fa;--table-head:#f2f4f6;--table-hover:#f3f5f7}html[data-design-theme="green"]{--navy:#0d2c29;--navy-soft:#19423d;--blue:#087f5b;--blue-deep:#056a4b;--surface:#f6f8f7;--table-head:#f1f6f3;--table-hover:#eef7f2}
/* The ActualCost mark is brand artwork, not a workspace colour control. */
.brand-vector-mark b,.marketing-brand .brand-vector-mark b{color:#2563eb!important}.brand-vector-mark i,.marketing-brand .brand-vector-mark i{color:#071b3d!important}.topbar .brand-vector-mark i{color:#fff!important}.brand-vector-name,.marketing-brand .brand-vector-name{color:#071b3d!important}.topbar .brand-vector-name{color:#fff!important}.brand-vector-name span,.marketing-brand .brand-vector-name span{color:#2563eb!important}.topbar .brand-vector-name span{color:#5c86ff!important}.brand-tagline,.marketing-brand .brand-tagline{color:#728096!important}.brand-tagline em,.marketing-brand .brand-tagline em{color:#2563eb!important}
.brand-artwork{display:block;width:184px;height:auto;object-fit:contain}.topbar .brand-artwork{width:184px;max-width:100%}.marketing-brand .brand-artwork{width:260px}@media(max-width:860px){.topbar .brand-artwork{width:166px}}@media(max-width:600px){.topbar .brand-artwork{width:154px}}
/* On desktop the register belongs to the page flow, not a second small scroll box. */
@media(min-width:861px){#entries-list{overflow:visible}}.project-entry-group{scroll-margin-block:20px}
.suggestion-create{border-top:1px solid #dbe3ef!important;color:#2563eb!important;font-weight:650!important}
.row-action{font-size:.78rem}.form-cancel{align-self:end;margin:20px 0 0;text-align:left}.inline-job-form{align-items:end}.inline-job-form [data-cancel-inline-job]{padding:8px 4px}
/* Public page follows the same navy-and-blue product system as the workspace. */
.marketing-page{background:radial-gradient(circle at 78% 26%,#e7efff 0,rgba(231,239,255,0) 30rem),#f7f9fc}.signin-button{color:#1d4ed8;border-color:#cbd9f5}.signin-button:hover{border-color:#2563eb;background:#f4f7ff}.hero-preview,.preview-card{border-color:#dbe5f5;box-shadow:0 24px 60px rgba(22,51,95,.1)}.preview-live,.preview-project b,.summary-footer b{color:#1d4ed8;background:#eaf1ff}.preview-row i:after,.summary-bars span{background:#2563eb}.preview-note i{background:#2563eb}.value-strip{border-color:#dbe5f5}.marketing-footer{color:#637087}.waitlist-section{border-color:#dbe5f5!important;background:#f5f8ff!important}.waitlist-form{background:#fff;border-color:#dbe5f5!important}.waitlist-form .primary,.hero-primary{background:#2563eb}.waitlist-form .primary:hover,.hero-primary:hover{background:#1d4ed8}
@media(max-width:600px){
  /* On a narrow screen the AC mark must read as a separate logo, not as part
     of the wordmark. Keep the slogan attached to the name, with clear air
     on both axes. */
  .brand{gap:11px}
  .brand-vector-copy{gap:5px}
  .brand-vector-mark{letter-spacing:-.19em}
  .brand-tagline{font-size:6.6px;letter-spacing:.18em}
  .design-mode{right:12px;top:12px;width:calc(100vw - 24px);max-height:calc(100vh - 24px)}
  .design-control-grid{grid-template-columns:1fr}
}

/* Compact register pass: keep ActualCost's own navy/blue identity while
   giving grouped lists the calm, aligned rhythm of a professional register. */
.project-grid,.data-list,.job-groups{
  border-radius:4px;
  box-shadow:none;
  background:#fff;
}
.dense-table{border-collapse:collapse}
.dense-table th{
  padding:9px 14px;
  background:#f7f9fc;
  color:#56657a;
  font-size:.68rem;
  font-weight:650;
  letter-spacing:.065em;
}
.dense-table td{padding:10px 14px;font-size:.84rem}
.job-group{border-radius:0;border-left:0;border-right:0}
.job-group:first-child{border-top:0}
.job-group>summary{min-height:58px;padding:0;background:#f8f9fb}
.job-group>summary:hover{background:#f1f5fa}
.job-group>summary>.register-group-summary{
  display:grid;
  width:100%;
  min-width:0;
  min-height:58px;
  /* Project + six values: keep the result per team day on this same row. */
  /* Every summary value has a real cell of its own.  The wider final cell
     keeps the two-line labour-result label separate from Team days. */
  grid-template-columns:minmax(270px,1.6fr) minmax(86px,.5fr) minmax(140px,.8fr) minmax(165px,1fr) minmax(135px,.82fr) minmax(118px,.66fr) minmax(180px,1.08fr);
  gap:0;
  align-items:stretch;
  letter-spacing:normal;
}
.project-entry-group>summary>.register-entry-summary{
  grid-template-columns:minmax(260px,1.7fr) minmax(125px,.85fr) minmax(120px,.8fr) minmax(120px,.8fr) minmax(160px,1fr);
}
.register-group-name,.register-total{
  display:flex;
  min-width:0;
  min-height:58px;
  padding:11px 14px;
  border-right:1px solid var(--table-line);
  justify-content:center;
  flex-direction:column;
}
.register-group-name{align-items:flex-start}
.register-group-name small{
  margin:0 0 2px;
  color:#7a8798;
  font-size:.62rem;
  font-weight:650;
  letter-spacing:.12em;
  line-height:1;
  text-transform:uppercase;
}
.register-group-name b{overflow:hidden;font-size:.88rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.register-total{
  align-items:flex-end;
  color:#66758a;
  font-size:.8rem;
  font-weight:500;
  font-variant-numeric:tabular-nums;
  text-align:right;
  white-space:nowrap;
}
.register-total small{
  margin:0 0 2px;
  color:#7a8798;
  font-size:.59rem;
  font-weight:650;
  letter-spacing:.09em;
  display:block;
  max-width:100%;
  line-height:1.12;
  overflow-wrap:anywhere;
  text-transform:uppercase;
}
.register-total:last-child{border-right:0}
.register-total.negative,.dense-table td.negative{color:var(--danger)!important}
.register-total.positive,.dense-table td.positive{color:var(--success)!important}
.danger-action{color:#b42318!important}
.danger-action:hover{color:#8f1d14!important}
.inline-job-edit-row td{padding:0!important;background:#f8fbff!important}
.inline-job-edit-form{margin:0!important;border-top:1px solid var(--table-line)}
.inline-checkbox{display:flex!important;align-items:center;gap:7px;min-height:38px;color:#536276;font-size:.78rem;white-space:nowrap}
.inline-checkbox input{width:auto!important;min-height:auto!important}
.project-job-group .register-total:first-of-type,.project-entry-group .register-total:first-of-type{align-items:flex-start;text-align:left}
/* Cost registers have only three summary values.  Let those three fill the
   entire row instead of inheriting Daily Labour's five-column layout. */
.project-cost-group>summary>.register-group-summary{
  grid-template-columns:minmax(280px,1.8fr) minmax(190px,1fr) minmax(210px,1.15fr);
}
.project-cost-group .register-total:first-of-type{align-items:flex-end;text-align:right}
/* Cost registers are the same project register as Daily Labour: no browser
   disclosure triangle and no separate visual language just because the cost
   category has fewer summary values. */
.job-group>summary::marker,.job-group>summary::-webkit-details-marker{display:none;content:''}
.project-cost-group>summary,.project-billing-group>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-left:0;
  cursor:pointer;
  list-style:none;
}
.project-cost-group>summary:before,.project-billing-group>summary:before{display:none!important}
.job-group[open]>summary{background:#f4f7fb}
.job-group[open]>summary:before{width:2px}
.job-group-content>.dense-table thead{box-shadow:none}
.job-group-content>.dense-table tbody tr:nth-child(even) td{background:#fff}
.job-group-content>.dense-table tbody tr:hover td{background:#f7faff}
.view-heading h1{font-weight:600;letter-spacing:-.035em}

/* The live register opens where today's work is: the latest few rows remain
   visible, older history scrolls upward, and the inline entry row follows. */
.entry-history-scroll{max-height:350px;overflow:auto;border-bottom:1px solid var(--table-line);scrollbar-color:#9aa8bc transparent;scrollbar-width:thin}
.entry-history-scroll .dense-table{margin:0}
.entry-history-scroll .dense-table thead{position:sticky;top:0;z-index:2}
.job-table-scroll{max-width:100%;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch;cursor:grab;scrollbar-color:#8c9bb0 #edf1f6;scrollbar-width:auto}
.job-table-scroll.is-dragging{cursor:grabbing;user-select:none}
.job-table-scroll::-webkit-scrollbar{height:14px}
.job-table-scroll::-webkit-scrollbar-track{background:#edf1f6}
.job-table-scroll::-webkit-scrollbar-thumb{background:#8c9bb0;border:3px solid #edf1f6;border-radius:999px}
.job-table-scroll .dense-table{min-width:2920px;table-layout:fixed}
.job-table-scroll .dense-table th{white-space:normal;line-height:1.25;overflow-wrap:normal}
.job-table-scroll .dense-table th:first-child,.job-table-scroll .dense-table td:first-child{width:270px;min-width:270px;white-space:normal}
.job-table-scroll .dense-table th:not(:first-child),.job-table-scroll .dense-table td:not(:first-child){width:145px;min-width:145px}
.job-table-scroll .dense-table th:last-child,.job-table-scroll .dense-table td:last-child{width:170px;min-width:170px}
.cost-entry-form{grid-template-columns:repeat(4,minmax(130px,1fr))}
.cost-entry-form .wide{grid-column:span 3}
/* Inline Materials and Subcontractors deliberately share Daily Labour's
   compact register form rhythm: same border, 34px fields, labels and actions. */
.inline-cost-entry-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;align-items:end;margin:0;padding:10px 14px;border:0;border-top:1px solid var(--table-line);border-radius:0;background:#fbfdfb;overflow:visible}
.inline-cost-entry-form label{display:grid;gap:4px;min-width:0;color:#42516a;font-size:.67rem;font-weight:650}
.inline-cost-entry-form input,.inline-cost-entry-form select{min-width:0;min-height:34px;padding:7px 9px;border-radius:4px}
.inline-cost-entry-form .inline-notes{grid-column:span 2}
.inline-cost-entry-form .inline-entry-actions{display:flex;align-items:end;gap:8px;min-height:34px;white-space:nowrap}
.inline-cost-entry-form .inline-entry-actions .primary{min-height:34px;margin:0;padding:7px 12px;white-space:nowrap}
.project-billing-group>summary>.register-entry-summary{grid-template-columns:minmax(280px,1.7fr) minmax(150px,.7fr) minmax(185px,.9fr)}
.billing-document{border-top:1px solid var(--table-line);background:#fff}.billing-document summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;cursor:pointer;color:#26344b}.billing-document summary span{display:grid;gap:2px}.billing-document summary .muted{font-size:.76rem}.billing-document-content{padding:0 14px 14px;background:#fbfcfe}.billing-document-content .dense-table{width:100%;margin:0;border:1px solid var(--table-line)}.billing-allocation{display:flex;justify-content:flex-end;gap:22px;padding:10px 0;font-size:.8rem}.inline-billing-line-form,.inline-billing-header-form{display:grid;grid-template-columns:minmax(200px,1.6fr) repeat(3,minmax(125px,.75fr)) auto;gap:10px;align-items:end;padding:12px 0}.inline-billing-line-form label,.inline-billing-header-form label{display:grid;gap:4px;min-width:0;color:#42516a;font-size:.67rem;font-weight:650}.inline-billing-line-form input,.inline-billing-line-form select,.inline-billing-header-form input{min-height:34px;min-width:0;padding:7px 9px;border-radius:4px}.inline-billing-header-form .wide{grid-column:span 3}.billing-document-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:2px}
.report-filters{
  grid-template-columns:minmax(150px,.82fr) minmax(150px,.82fr) minmax(220px,1.18fr) minmax(270px,1.45fr);
  align-items:end;
}
.report-summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:1px;margin:18px 0;background:var(--table-line);border:1px solid var(--table-line);border-radius:4px;overflow:hidden}
.report-metric{padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:4px;text-align:right}.report-metric small{font-size:.65rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:#7a8798}.report-metric b{font-size:1rem;font-variant-numeric:tabular-nums}
.report-type-picker,.report-job-picker{position:relative;min-width:0;align-self:end}.report-type-picker summary,.report-job-picker summary{display:flex;justify-content:space-between;align-items:center;min-height:36px;padding:0 10px;border:1px solid #d9e0ea;border-radius:5px;background:#fff;color:#42516a;font-size:.8rem;cursor:pointer;list-style:none}.report-type-picker summary::-webkit-details-marker,.report-job-picker summary::-webkit-details-marker{display:none}.report-type-picker summary::after,.report-job-picker summary::after{content:'⌄';margin-left:8px;color:#74839a;font-size:.85rem}.report-type-picker[open] summary,.report-job-picker[open] summary{border-color:#aebed6}.report-type-picker summary span,.report-job-picker summary span{margin-left:auto;color:#66758a;font-size:.8rem}.report-type-options,.report-job-options{position:absolute;right:0;z-index:8;display:grid;gap:1px;width:min(300px,calc(100vw - 44px));max-height:260px;overflow:auto;padding:7px;border:1px solid #d9e0ea;border-radius:5px;background:#fff;box-shadow:0 10px 28px rgba(21,39,74,.16)}.report-type-options label,.report-job-options label{display:flex;align-items:center;gap:7px;padding:7px;color:#28344a;font-size:.79rem}.report-type-options label:hover,.report-job-options label:hover{background:#f4f7fb}.report-type-options input,.report-job-options input{width:auto;min-height:auto}.report-job-options .muted{margin-left:auto;font-size:.7rem}

@media(max-width:860px){
  .job-group>summary>.register-group-summary,.project-entry-group>summary>.register-entry-summary{
    grid-template-columns:minmax(0,1fr) auto;
    min-height:52px;
  }
  .register-group-name,.register-total{min-height:52px;padding:9px 12px}
  .register-total{display:none}
  .register-total:first-of-type{display:flex!important;border-right:0;align-items:flex-end!important;text-align:right!important}
  .cost-entry-form,.report-filters,.inline-cost-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.cost-entry-form .wide,.inline-cost-entry-form .inline-notes{grid-column:span 2}.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inline-billing-line-form,.inline-billing-header-form{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-billing-line-form .primary,.inline-billing-header-form .primary{grid-column:span 2}.inline-billing-header-form .wide{grid-column:span 2}
}

/* Phone workspace: this is deliberately a compact application header, not a
   reduced desktop sidebar.  The screen remains usable at 320–600px wide. */
@media(max-width:600px){
  #app{display:block;min-width:0}
  .topbar{
    position:sticky;top:0;z-index:12;display:grid;grid-template-columns:minmax(0,1fr) auto;
    width:100%!important;height:auto;min-height:0;padding:12px 14px 10px;gap:10px 12px;
  }
  .topbar .brand{min-width:0;gap:9px;padding:0}
  .topbar .brand-vector-mark{font-size:1.78rem;letter-spacing:-.19em}
  .topbar .brand-vector-name{font-size:1rem}
  .topbar .brand-tagline{font-size:5.7px;letter-spacing:.15em}
  .account{display:flex;grid-column:2;grid-row:1;flex-direction:row;align-items:center;gap:0;margin:0;padding:0;border:0}
  .account span,.design-mode-button{display:none!important}
  .account #sign-out{padding:8px 0;font-size:.76rem;white-space:nowrap}
  .topbar nav{
    grid-column:1 / -1;grid-row:2;display:flex;flex-direction:row;gap:4px;width:calc(100vw - 28px);
    max-width:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:1px 0 2px;
  }
  .topbar nav::-webkit-scrollbar{display:none}
  .nav{flex:0 0 auto;width:auto;padding:8px 10px;border-radius:5px;font-size:.8rem;white-space:nowrap}
  .nav:before{font-size:.9rem}
  .app-main{min-width:0;padding:20px 14px 42px}
  .view-heading{gap:13px;margin-bottom:16px}
  .view-heading h1{font-size:clamp(1.65rem,8vw,2.15rem);line-height:1.04}
  .view-heading p:not(.eyebrow){font-size:.83rem;line-height:1.45}
  .heading-actions{width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px}
  .heading-actions .primary{margin-left:auto}
  .view-switch{display:flex!important}
  .column-control{position:static}
  .column-menu{position:absolute;left:14px;right:14px;top:auto;width:auto;max-width:none}
  .entry-form,.entry-form.daily{display:grid;grid-template-columns:1fr!important;gap:10px;padding:13px}
  .entry-form.daily .wide,.entry-form.daily .primary,.wide{grid-column:auto!important}
  .entry-form.daily .primary,.entry-form .primary{width:100%;margin:2px 0 0;min-height:42px}
  .entry-form label{font-size:.75rem}
  .entry-form input,.entry-form select{min-height:42px;font-size:16px}
  .project-grid,.data-list,.job-groups{border-radius:7px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .dense-table{min-width:640px}
  .project-table{min-width:690px}
  .job-group>summary{min-height:48px;padding:0 12px;font-size:.88rem}
  .job-group>summary .muted{display:block;margin:3px 0 0;font-size:.73rem}
  .inline-job-form,.inline-entry-form{display:grid;grid-template-columns:1fr!important;gap:10px;margin:0!important;padding:13px!important}
  .inline-entry-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;white-space:normal}
  .inline-entry-actions .primary,.inline-entry-actions .text-button{width:100%;min-height:40px;margin:0;text-align:center}
  .inline-job-form .primary,.inline-job-form .text-button{width:100%;min-height:40px;margin:0;text-align:center}
  .group-add-entry-row,.group-add-job-row{padding:10px 12px}
  .suggestion-list,.inline-suggestion-list{max-height:230px;overflow-y:auto}
  .design-mode{display:none!important}
}

/* Mobile refinement pass — keep the work flow usable without turning phone
   screens into miniature desktop tables. Forms stack; tables can swipe; the
   inline type-ahead menus remain above the register instead of being clipped. */
.accounts-section{margin:0 0 24px}.accounts-section h2{margin:0 0 10px;font-size:1rem;font-weight:650}.danger-action{color:#b42318}.table-scroll{overflow-x:auto}
.member-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));max-width:620px;margin:0 0 18px;border:1px solid #d9e1ec;border-radius:8px;background:#fff;overflow:hidden}.member-plan-summary>div{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-right:1px solid #d9e1ec}.member-plan-summary>div:last-child{border-right:0}.member-plan-summary small{color:#718098;font-size:.65rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase}.member-plan-summary b{font-size:1rem;font-weight:600}.member-invite-form{grid-template-columns:minmax(240px,2fr) minmax(180px,1fr) auto auto;max-width:900px;margin-bottom:18px}.member-role-select{min-width:145px;padding:6px 8px;border:1px solid #d2dbe8;border-radius:5px;background:#fff;color:var(--ink)}
@media(max-width:600px){.member-plan-summary{grid-template-columns:1fr}.member-plan-summary>div{border-right:0;border-bottom:1px solid #d9e1ec}.member-plan-summary>div:last-child{border-bottom:0}.member-invite-form{grid-template-columns:1fr}}
@media(max-width:600px){
  html,body{overflow-x:hidden}
  .topbar{box-shadow:0 1px 0 rgba(8,29,58,.1)}
  .topbar .brand-artwork{width:148px;max-width:calc(100vw - 106px)}
  .topbar nav{scroll-snap-type:x proximity;padding-bottom:4px}
  .topbar .nav{scroll-snap-align:start;min-height:38px}
  .app-main{padding:18px 12px 36px}
  .view-heading h1{font-size:1.75rem}
  .view-heading p:not(.eyebrow){max-width:34rem}
  .heading-actions{align-items:center}
  .heading-actions .primary{min-height:42px}
  .column-menu{z-index:40;max-height:min(62vh,420px);overflow-y:auto}
  .project-grid,.job-groups,.data-list{width:100%;max-width:100%}
  /* Daily Entry must allow its active inline form and suggestions to show. */
  #entries-list{overflow:visible!important}
  #entries-list .job-group{overflow:visible}
  #entries-list .job-group-content{overflow:visible}
  #entries-list .dense-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .project-grid.table-layout,.data-list:not(#entries-list),.job-groups{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .job-group>summary{min-height:52px;align-items:center}
  .project-entry-group>summary>span,.project-job-group>summary>span{min-width:0;grid-template-columns:minmax(0,1fr)}
  .project-entry-group>summary .muted,.project-job-group>summary .muted{display:none!important}
  .group-add-entry-row,.group-add-job-row{padding:11px 12px}
  .group-add-entry-row .text-button,.group-add-job-row .text-button{min-height:38px;padding:7px 4px}
  .entry-history-scroll{max-height:330px;overflow:auto}
  .inline-entry-form,.inline-job-form{position:relative;overflow:visible!important;background:#fff!important}
  .inline-entry-form label,.inline-job-form label{min-width:0}
  .inline-entry-form input,.inline-job-form input{min-height:44px}
  .cost-entry-form,.report-filters,.inline-cost-entry-form{grid-template-columns:1fr}.cost-entry-form .wide,.inline-cost-entry-form .inline-notes{grid-column:auto}.inline-cost-entry-form .inline-entry-actions{display:grid;grid-template-columns:1fr 1fr}.report-summary{grid-template-columns:1fr 1fr}
  .inline-billing-line-form,.inline-billing-header-form{grid-template-columns:1fr}.inline-billing-line-form .primary,.inline-billing-header-form .primary{grid-column:auto;min-height:42px}.inline-billing-header-form .wide{grid-column:auto}.billing-allocation{justify-content:space-between;gap:8px;flex-wrap:wrap}
  .inline-suggestion-list{z-index:60;max-height:min(38vh,250px);border-color:#9db5d9;box-shadow:0 12px 26px rgba(13,38,80,.2)}
  .inline-suggestion-list .suggestion-option{min-height:44px;padding:11px 12px}
  .suggestion-list{z-index:60;max-height:min(38vh,250px)}
  .dense-table{font-size:.82rem}
  .dense-table th{padding:9px 11px}
  .dense-table td{padding:10px 11px}
  .entry-actions{gap:6px}
  .entry-actions .text-button,.entry-actions .badge{min-height:32px;display:inline-flex;align-items:center}
}
