/* ActualCost dense workspace — spreadsheet-inspired, without copying Airtable. */
:root { --table-line:#d9dfda; --table-head:#f0f2f0; --table-group:#f5f7f5; --table-hover:#f8faf8; --ink:#17211d; --muted:#617067; --green:#17683a; }
.app-main{max-width:1440px;padding:30px 32px 64px}
.view-heading{margin-bottom:22px}.view-heading h1{font-size:clamp(2rem,3.2vw,3rem)}
.heading-actions{position:relative}.column-control{position:relative}.column-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:210px;padding:8px;background:#fff;border:1px solid var(--table-line);box-shadow:0 12px 30px rgba(19,42,26,.13)}
.column-menu label{display:flex;gap:9px;align-items:center;width:100%;padding:8px 9px;font-size:.82rem;color:var(--ink);cursor:pointer}.column-menu label:hover{background:var(--table-hover)}.column-menu input{width:auto;flex:none;margin:0;accent-color:var(--green)}
.project-grid,.data-list,.job-groups{display:block;overflow:auto;border:1px solid var(--table-line);border-radius:8px;background:#fff;box-shadow:none}
.dense-table{width:100%;min-width:760px;border-collapse:collapse;text-align:left;background:#fff}.dense-table th{padding:10px 14px;background:var(--table-head);border-right:1px solid var(--table-line);border-bottom:1px solid var(--table-line);color:#445248;font-size:.69rem;font-weight:850;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}.dense-table td{padding:11px 14px;border-right:1px solid #e7ece7;border-bottom:1px solid #e2e8e2;color:var(--ink);font-size:.86rem;vertical-align:middle}.dense-table tr:hover td{background:var(--table-hover)}.dense-table td:first-child{font-weight:750}.dense-table th:last-child,.dense-table td:last-child{border-right:0}.dense-table .muted{font-size:.78rem}.dense-table .action-cell{width:1%;white-space:nowrap;text-align:right}.dense-table .number-cell{text-align:right;font-variant-numeric:tabular-nums}.dense-table .column-hidden{display:none}
.project-grid:not(.table-layout){display:block}.project-card{display:grid;grid-template-columns:1.1fr .8fr .95fr repeat(4,.72fr);gap:0;margin:0;padding:0;border:0;border-bottom:1px solid var(--table-line);border-radius:0;box-shadow:none}.project-card:last-child{border-bottom:0}.project-card .metric,.project-card>p,.project-card>h3,.project-card>.badge{padding:12px 14px;margin:0;border-right:1px solid #e7ece7}.project-card h3{font-size:.9rem}.project-card .metrics{display:contents}.project-card .metric{display:block}.project-card .metric span{font-size:.68rem}.project-card .badge{display:flex;align-items:center;border-radius:0;background:transparent;color:var(--green)}
.job-group{margin:0;border:0;border-bottom:1px solid var(--table-line);border-radius:0;box-shadow:none;background:#fff;overflow:visible}.job-group:last-child{border-bottom:0}.job-group>summary{min-height:42px;padding:0 14px;background:var(--table-group);border:0;border-radius:0;color:var(--ink)}.job-group>summary:hover{background:#eaf0ea}.job-group[open]>summary{border-bottom:1px solid var(--table-line)}.job-group-content{padding:0!important;overflow:visible}.job-group summary::marker{color:#6f7c72}
.job-row,.data-row{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(130px,.8fr));gap:0;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#fff}.job-row>* ,.data-row>*{padding:11px 14px;border-right:1px solid #e7ece7;border-bottom:1px solid #e2e8e2}.job-row>*:last-child,.data-row>*:last-child{border-right:0}.job-row span{font-size:.84rem}.job-row span br{display:none}.job-row span:before{content:attr(data-label);display:none}.data-row{grid-template-columns:1fr 1.15fr 1fr 1fr minmax(110px,.8fr)}.data-row:hover,.job-row:hover{background:var(--table-hover)}.data-row:hover>* ,.job-row:hover>*{background:var(--table-hover)}
.project-entry-group .data-row{grid-template-columns:1fr 1.1fr .9fr .85fr minmax(140px,.8fr)}.entry-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.badge{border-radius:999px;font-size:.68rem}
.inline-job-form,.inline-entry-form{margin:0!important;padding:10px 14px!important;border:0!important;border-top:1px solid var(--table-line)!important;border-radius:0!important;box-shadow:none!important;background:#fbfdfb!important;overflow:visible}.inline-entry-form{grid-template-columns:130px minmax(170px,1.2fr) minmax(180px,1.3fr) 100px 100px minmax(160px,1fr) auto!important}.inline-job-form{grid-template-columns:minmax(240px,1fr) 160px auto!important}.inline-entry-form label,.inline-job-form label{font-size:.67rem}.inline-entry-form input,.inline-job-form input{min-height:34px;border-radius:4px!important}.inline-entry-form input[type="date"]{min-width:138px;cursor:text}.inline-entry-actions{align-self:end;display:flex;gap:8px;white-space:nowrap}.empty-entry-message{padding:12px 14px!important;margin:0!important}
.entry-form{border-radius:8px;box-shadow:none}.primary,.text-button,.view-switch{border-radius:5px}.primary{background:#1d6e3a}.primary:hover{background:#155d2e}.view-switch{border-radius:6px}.view-choice{border-radius:4px}
.entry-form.daily{grid-template-columns:110px minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1fr) 92px 92px;gap:9px 10px;padding:13px}.entry-form.daily label{gap:4px;font-size:.72rem}.entry-form.daily input{min-height:36px;padding:7px 9px;border-radius:4px}.entry-form.daily .wide{grid-column:span 5}.entry-form.daily .primary{margin:19px 0 0;min-height:36px;padding:7px 13px}.entry-form.daily .search-field{min-width:0}
.group-add-entry-row{display:flex;justify-content:flex-start;padding:9px 14px;border-bottom:1px solid var(--table-line);background:#fbfdfb}.group-add-entry-row .text-button{font-weight:800}
.group-add-job-row{display:flex;justify-content:flex-start;padding:9px 14px;border-bottom:1px solid var(--table-line);background:#fbfdfb}.group-add-job-row .text-button{font-weight:800}
@media(max-width:860px){.app-main{padding:22px 16px 48px}.project-card{grid-template-columns:1fr 1fr}.project-card>p{display:none}.job-row,.data-row,.project-entry-group .data-row{min-width:680px}.inline-entry-form{grid-template-columns:1fr 1fr!important}.inline-entry-actions{grid-column:span 2}.heading-actions{gap:8px}.view-switch{display:none}}
@media(max-width:760px){.entry-form.daily{grid-template-columns:1fr 1fr}.entry-form.daily .wide{grid-column:span 2}.entry-form.daily .primary{grid-column:auto}}
