:root { --navy:#17324d; --navy-2:#244b67; --ink:#1d2d3a; --muted:#6f7f8b; --line:#e6ebee; --paper:#fff; --canvas:#f4f6f7; --orange:#d9773d; --green:#43856b; --shadow:0 12px 32px rgba(26,48,65,.07); --ui-font:Roboto,"Noto Sans","Segoe UI",Arial,sans-serif; }
.status-dot.offline { background:#d46a54; }

/* Subtle table color cues make project areas easier to scan without competing with the data. */
.table-wrap { border-top:3px solid #b9cbd1; }
.table-wrap tbody tr { transition:background-color .16s ease; }
.table-wrap tbody tr:hover { background:#f4f8f8; }
.table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #b9cbd1; }
#control-panel > .table-wrap { border-top-color:#3d8190; }
#control-panel > .table-wrap thead th { background:#edf7f8; color:#2c6673; }
#control-panel > .table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #3d8190; }
#initial-budget-panel > .table-wrap { border-top-color:#4f7196; }
#initial-budget-panel > .table-wrap thead th { background:#f0f4f8; color:#405f80; }
#initial-budget-panel > .table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #4f7196; }
#expenses-panel > .table-wrap { border-top-color:#d9773d; }
#expenses-panel > .table-wrap thead th { background:#fff5ee; color:#a95b2e; }
#expenses-panel > .table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #d9773d; }
.expense-date-display { padding:6px 2px; color:#52656f; background:transparent; border:0; font:inherit; font-variant-numeric:tabular-nums; text-align:left; white-space:nowrap; }
.expense-date-display:hover,.expense-date-display:focus { color:var(--navy); text-decoration:underline; outline:0; }
.expense-date-editor { min-width:132px; }
.expenses-ledger-heading { margin:24px 0 -7px; }
.expenses-ledger-heading h3 { margin:0; color:var(--navy); font:600 17px var(--ui-font); }
.additional-costs > .table-wrap { border-top-color:#43856b; }
.additional-costs > .table-wrap thead th { background:#eef7f2; color:#2f7155; }
.additional-costs > .table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #43856b; }
.expense-summary > .table-wrap { border-top-color:#7d8f9a; }
.expense-summary > .table-wrap thead th { background:#f3f6f7; color:#5c707b; }
.expense-summary > .table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #7d8f9a; }
.attendance-table-wrap { border-top-color:#527d76; }
.attendance-table-wrap thead th { background:#eef6f4; color:#38665d; }
.attendance-table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #527d76; }
.pending-payables .table-wrap,#payables-panel .table-wrap { border-top-color:#c96b54; }
.pending-payables .table-wrap thead th,#payables-panel .table-wrap thead th { background:#fff2ef; color:#a84b3d; }
.pending-payables .table-wrap thead th:first-child,#payables-panel .table-wrap thead th:first-child { box-shadow:inset 3px 0 0 #c96b54; }
* { box-sizing:border-box; } body { margin:0; background:var(--canvas); color:var(--ink); font-family:var(--ui-font); } button,input,textarea,select { font:inherit; } button { cursor:pointer; border:0; } .app-shell { display:flex; min-height:100vh; }
.sidebar { width:252px; background:var(--navy); color:#eaf1f4; padding:26px 18px 18px; display:flex; flex-direction:column; } .brand { display:flex; gap:11px; align-items:center; padding:0 10px 36px; } .brand-mark { width:38px; height:38px; border:1px solid #c8d9df; display:grid; place-items:center; color:#fff; font:700 20px Georgia,serif; } .brand strong,.brand span { display:block; } .brand strong { font:700 18px Georgia,serif; letter-spacing:.02em; } .brand span { font-size:10px; color:#9fb5c0; margin-top:3px; text-transform:uppercase; letter-spacing:.1em; } .workspace-label { color:#7893a1; text-transform:uppercase; letter-spacing:.11em; font-size:10px; padding:0 12px 10px; } .main-nav { display:grid; gap:5px; } .nav-item { display:flex; align-items:center; gap:11px; color:#a9bdc7; background:transparent; text-align:left; padding:12px; border-radius:5px; font-size:13px; } .nav-item:hover,.nav-item.active { background:#244b67; color:#fff; } .nav-icon { width:18px; font-size:18px; line-height:1; } .sidebar-bottom { margin-top:auto; } .sync-status { display:flex; align-items:center; gap:8px; padding:16px 11px; color:#86a19e; font-size:11px; border-top:1px solid rgba(255,255,255,.08); } .status-dot { width:7px; height:7px; background:#79b394; border-radius:50%; } .profile { display:flex; gap:9px; align-items:center; padding:13px 7px 0; border-top:1px solid rgba(255,255,255,.08); } .avatar,.top-avatar { display:grid; place-items:center; background:#d8e5e8; color:var(--navy); border-radius:50%; font-weight:700; } .avatar { width:31px; height:31px; font-size:10px; } .profile strong,.profile small { display:block; } .profile strong { font-size:11px; font-weight:600; } .profile small { color:#87a1ac; font-size:10px; margin-top:2px; } .more { margin-left:auto; color:#83a0ac; letter-spacing:2px; }
.main-content { width:calc(100% - 252px); min-width:0; } .topbar { height:70px; border-bottom:1px solid var(--line); background:#fff; padding:0 42px; display:flex; align-items:center; justify-content:space-between; } .breadcrumb { display:flex; gap:11px; color:#9aa6ad; font-size:12px; align-items:center; } .breadcrumb strong { color:var(--ink); font-weight:600; } .breadcrumb b { color:#c4cdd1; font-weight:400; } .topbar-actions { display:flex; align-items:center; gap:18px; } .icon-button { color:#71808b; background:none; font-size:22px; } .top-avatar { width:31px; height:31px; font-size:10px; }
.view { display:none; max-width:1280px; margin:auto; padding:43px 45px 70px; } .view.active-view { display:block; } .page-heading,.detail-heading,.section-toolbar,.panel-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; } .page-heading { margin-bottom:34px; } .eyebrow { color:var(--orange); text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:700; margin:0 0 8px; } h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:8px; font:600 36px Georgia,serif; color:var(--navy); letter-spacing:-.02em; } h2 { font:600 22px Georgia,serif; color:var(--navy); margin-bottom:5px; } .subheading,.muted { color:var(--muted); font-size:13px; } .subheading { margin:0; } .primary-button,.secondary-button,.ghost-button,.filter-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:4px; padding:11px 16px; font-size:12px; font-weight:600; white-space:nowrap; } .primary-button { background:var(--orange); color:#fff; box-shadow:0 5px 13px rgba(217,119,61,.18); } .primary-button:hover { background:#bd6030; } .primary-button.small { padding:9px 13px; font-size:11px; } .secondary-button,.filter-button { background:#fff; color:var(--navy); border:1px solid #dce4e7; } .ghost-button { background:transparent; color:#647681; } .metrics-row { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-bottom:46px; } .metric { background:#fff; border:1px solid var(--line); padding:19px 20px; min-height:111px; } .metric span,.metric small { display:block; color:var(--muted); font-size:11px; } .metric strong { display:block; color:var(--navy); font:600 23px Georgia,serif; margin:10px 0 5px; } .metric .positive { color:var(--green); } .accent-metric { border-top:3px solid var(--orange); }
.section-toolbar { align-items:center; margin-bottom:17px; } .section-toolbar h2 { font-size:20px; margin:0 0 3px; } .toolbar-actions { display:flex; gap:9px; } .search-box { background:#fff; border:1px solid var(--line); display:flex; align-items:center; gap:8px; padding:0 11px; width:220px; color:#99a6ad; } .search-box input { border:0; outline:0; width:100%; padding:10px 0; font-size:11px; } .project-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; } .project-card { background:#fff; border:1px solid var(--line); padding:23px; transition:.2s ease; cursor:pointer; } .project-card:hover { border-color:#b9cbd1; transform:translateY(-2px); box-shadow:var(--shadow); } .project-card-top { display:flex; justify-content:space-between; gap:15px; } .project-card h3 { margin:0 0 7px; font:700 18px/1.3 var(--ui-font); color:var(--navy); letter-spacing:0; } .project-owner { color:var(--muted); font-size:11px; } .project-status { color:var(--green); font-size:10px; background:#ecf6f0; padding:5px 7px; height:max-content; } .project-status.archived { color:#6b7880; background:#edf0f2; } .project-card-footer { border-top:1px solid var(--line); padding-top:16px; margin-top:20px; display:flex; justify-content:space-between; color:var(--muted); font-size:10px; } .project-card-footer strong { color:var(--navy); font-weight:600; }
.back-link { color:var(--muted); background:transparent; font-size:12px; padding:0; margin-bottom:28px; } .detail-heading { align-items:center; margin-bottom:30px; } .detail-actions { display:flex; gap:10px; align-items:center; } .status-badge { color:var(--green); font-size:11px; display:flex; align-items:center; gap:6px; } .status-badge i { width:7px; height:7px; border-radius:50%; background:#5baf7c; } .detail-tabs { display:flex; gap:30px; border-bottom:1px solid var(--line); margin:0 -45px 28px; padding:0 45px; } .tab { background:transparent; color:#8a979d; padding:0 0 13px; border-bottom:2px solid transparent; font-size:12px; } .tab.active { color:var(--navy); border-color:var(--orange); font-weight:700; } .tab span { display:inline-block; margin-left:5px; background:#edf1f2; padding:2px 6px; font-size:9px; color:#708089; } .tab.active span { background:#f7e8de; color:var(--orange); }
.tab-panel { display:none; } .tab-panel.active-panel { display:block; } .panel-heading { align-items:center; margin-bottom:21px; } .panel-heading h2 { margin:0 0 3px; } .note-composer,.expense-form { background:#fff; border:1px solid #d8e1e4; padding:18px; margin-bottom:18px; } .composer-meta { display:flex; gap:9px; align-items:center; color:var(--muted); font-size:11px; margin-bottom:12px; } .date-chip { color:var(--orange); background:#fcf0e9; font-size:9px; padding:5px 7px; font-weight:700; } textarea { display:block; border:1px solid var(--line); min-height:105px; resize:vertical; width:100%; padding:13px; outline:none; font-size:12px; color:var(--ink); } textarea:focus,input:focus { border-color:#afc3ca; } .composer-footer,.form-actions { display:flex; align-items:center; gap:10px; margin-top:12px; } .composer-footer > div:last-child { margin-left:auto; display:flex; gap:6px; } .upload-button { cursor:pointer; color:var(--navy-2); font-size:11px; } .upload-button input { display:none; } .photo-name { font-size:10px; color:#9ba8ad; }
.timeline { position:relative; margin-left:9px; padding-left:29px; border-left:1px solid #d9e3e5; } .note { position:relative; background:#fff; border:1px solid var(--line); padding:19px 20px; margin-bottom:17px; } .note::before { content:""; width:9px; height:9px; background:var(--orange); border:3px solid var(--canvas); border-radius:50%; position:absolute; left:-35px; top:22px; } .note-header { display:flex; justify-content:space-between; color:var(--muted); font-size:10px; margin-bottom:12px; } .note-header strong { color:var(--navy); font-size:11px; } .note p { font-size:12px; line-height:1.6; margin:0; } .photo-preview { max-width:170px; max-height:110px; object-fit:cover; margin-top:13px; border:1px solid var(--line); }
.form-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:12px; } label { color:#6d7c84; font-size:10px; display:block; } label input { display:block; width:100%; border:1px solid var(--line); padding:10px; margin-top:6px; outline:0; font-size:11px; color:var(--ink); background:#fff; } .expense-iva-toggle { display:flex; align-items:center; gap:8px; width:max-content; margin-top:14px; color:var(--navy-2); font-weight:600; text-transform:uppercase; cursor:pointer; } .expense-iva-toggle input { display:inline-block; width:15px; height:15px; margin:0; accent-color:var(--orange); } .expense-iva-preview { display:flex; justify-content:flex-end; gap:22px; margin-top:12px; color:var(--muted); font-size:11px; } .expense-iva-preview strong { color:var(--navy); } .form-total { text-align:right; border-top:1px solid var(--line); margin-top:18px; padding-top:14px; color:var(--muted); font-size:12px; } .form-total strong { color:var(--navy); font:600 18px Georgia,serif; } .form-actions { justify-content:flex-end; } .table-wrap { overflow:auto; background:#fff; border:1px solid var(--line); } table { width:100%; border-collapse:collapse; font:12px/1.45 var(--ui-font); } th,td { padding:15px 17px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; } th { color:#71818a; font-size:10px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; background:#fafbfb; } td { color:#52656f; font-variant-numeric:tabular-nums; } td strong { color:var(--navy); font-weight:700; } tfoot td { border:0; color:var(--navy); font-weight:700; } .align-right { text-align:right; } .delete-button { background:transparent; color:#a5b0b5; }
.summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; } .summary-card { background:#fff; border:1px solid var(--line); padding:23px; min-height:130px; } .summary-card.wide { grid-column:span 1; } .summary-card span,.summary-card small { display:block; color:var(--muted); font-size:11px; } .summary-card strong { display:block; color:var(--navy); font:600 24px Georgia,serif; margin:15px 0 5px; }
.archive-list { background:#fff; border:1px solid var(--line); } .archive-row { padding:20px 22px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); } .archive-row:last-child { border-bottom:0; } .archive-row h3 { margin:0 0 5px; font:600 18px Georgia,serif; color:var(--navy); } .archive-row p { margin:0; color:var(--muted); font-size:11px; } .archive-actions { display:flex; align-items:center; gap:18px; }
.hidden { display:none !important; } .modal-backdrop { position:fixed; inset:0; background:rgba(18,42,57,.48); display:grid; place-items:center; padding:20px; z-index:5; } .modal { position:relative; background:#fff; width:min(100%,430px); padding:32px; box-shadow:0 20px 70px rgba(0,0,0,.18); } .modal h2 { font-size:27px; margin-bottom:8px; } .modal label { margin-top:20px; } .modal-actions { display:flex; justify-content:flex-end; gap:7px; margin-top:26px; } .modal-close { position:absolute; top:14px; right:15px; background:transparent; color:#96a3a9; font-size:23px; }
@media (max-width:900px) { .sidebar { width:205px; } .main-content { width:calc(100% - 205px); } .metrics-row { grid-template-columns:repeat(2,1fr); } .project-grid { grid-template-columns:1fr; } .view { padding-left:28px; padding-right:28px; } .detail-tabs { margin-left:-28px; margin-right:-28px; padding-left:28px; padding-right:28px; } .form-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) { .sidebar { width:64px; padding:18px 9px; } .brand { padding:0 4px 30px; } .brand > div:last-child,.workspace-label,.nav-item:not(.active)::after,.nav-item { font-size:0; } .brand-mark { margin:auto; } .main-nav { gap:4px; } .nav-item { justify-content:center; padding:12px 5px; } .nav-icon { font-size:18px; } .sidebar-bottom { display:none; } .main-content { width:calc(100% - 64px); } .topbar { padding:0 17px; height:62px; } .breadcrumb span,.breadcrumb b { display:none; } .view { padding:27px 17px 50px; } .page-heading,.detail-heading,.section-toolbar,.panel-heading { align-items:flex-start; flex-direction:column; } .page-heading { margin-bottom:25px; } h1 { font-size:31px; } .metrics-row { gap:8px; margin-bottom:30px; } .metric { padding:13px; min-height:100px; } .metric strong { font-size:18px; } .metric span,.metric small { font-size:9px; } .toolbar-actions { width:100%; } .search-box { flex:1; } .detail-actions { width:100%; justify-content:space-between; } .detail-tabs { margin-left:-17px; margin-right:-17px; padding:0 17px; gap:20px; overflow:auto; } .form-grid,.item-grid { grid-template-columns:1fr; } .control-summary { grid-template-columns:1fr 1fr; } .avaluo-fields { flex-direction:column; } .composer-footer { align-items:flex-start; flex-wrap:wrap; } .composer-footer > div:last-child { width:100%; margin-left:0; justify-content:flex-end; } .summary-grid { grid-template-columns:1fr 1fr; } .summary-card.wide { grid-column:span 2; } .archive-row { align-items:flex-start; flex-direction:column; gap:14px; } }
 .edit-note { background:transparent; color:var(--orange); font-size:10px; padding:11px 0 0; } .valuation-chip { display:inline-block; color:var(--navy); background:#eef4f5; padding:7px 9px; margin-top:12px; font-size:10px; font-weight:600; } .compact-label { display:flex; align-items:center; gap:8px; font-size:10px; } .compact-label input,.compact-label select { margin:0; padding:7px 8px; width:auto; } .avaluo-fields { display:flex; gap:12px; margin-bottom:12px; } .control-summary { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:13px; margin-bottom:20px; } .control-summary > div { background:#fff; border:1px solid var(--line); padding:17px; } .control-summary span { display:block; color:var(--muted); font-size:10px; } .control-summary strong { display:block; color:var(--navy); font:600 20px Georgia,serif; margin-top:9px; } .progress-track { background:#edf1f2; height:6px; margin-top:12px; } .progress-track i { display:block; height:100%; width:0; background:var(--green); transition:width .25s; } .item-form { background:#fff; border:1px solid #d8e1e4; padding:18px; margin-bottom:18px; } .item-grid { grid-template-columns:2fr .8fr 1fr 1fr 1fr; } .inline-progress { width:82px; border:1px solid var(--line); padding:6px; font-size:11px; } .check-label { display:flex; align-items:center; gap:5px; white-space:nowrap; } .check-label input { width:auto; margin:0; } .change-log { background:#fff; border:1px solid var(--line); padding:4px 20px; } .change-row { display:flex; gap:13px; padding:16px 4px; border-bottom:1px solid var(--line); } .change-row:last-child { border-bottom:0; } .change-dot { width:8px; height:8px; border-radius:50%; background:var(--orange); margin-top:4px; flex:none; } .change-row strong,.change-row small { display:block; } .change-row strong { font-size:11px; color:var(--navy); font-weight:600; } .change-row small { color:var(--muted); font-size:10px; margin-top:4px; }
 .inline-item { width:100%; min-width:82px; border:1px solid transparent; background:transparent; padding:6px; font-size:11px; color:var(--ink); } .inline-item:hover,.inline-item:focus { background:#fff; border-color:#b7c9cf; outline:0; } .item-name-field { min-width:170px; font-weight:600; color:var(--navy); } .item-unit-field { min-width:82px; } .item-number-field { text-align:right; min-width:76px; } 
 .additional-costs,.expense-summary { margin-top:30px; } .additional-costs { border-top:3px solid var(--navy-2); padding-top:22px; } .expense-summary { border-top:3px solid var(--orange); padding-top:22px; } .summary-period { color:var(--muted); font-size:10px; } .expense-date-field { min-width:118px; } .expense-product-field { min-width:180px; } .expense-number-field { min-width:75px; text-align:right; } .summary-share { min-width:150px; } .share-track { display:inline-block; vertical-align:middle; width:76px; height:6px; background:#edf1f2; margin-right:8px; } .share-track i { display:block; height:100%; background:var(--orange); } 
 .budget-strip { display:grid; grid-template-columns:1.3fr 1.3fr 1fr 1fr; gap:12px; background:#f8faf9; border:1px solid var(--line); padding:14px; margin-bottom:14px; } .budget-balance { background:#fff; border:1px solid var(--line); padding:11px; } .budget-balance span { display:block; color:var(--muted); font-size:10px; } .budget-balance strong { display:block; color:var(--green); font:600 17px Georgia,serif; margin-top:7px; } .additional-entry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; } .additional-entry { background:#fff; border:1px solid var(--line); padding:14px; } .additional-entry p { color:var(--navy); font:600 14px Georgia,serif; margin-bottom:12px; } .additional-entry .primary-button { margin-top:12px; }
@media print { body { background:#fff; } .sidebar,.topbar,.back-link,.detail-actions,.detail-tabs,.primary-button,.secondary-button,.ghost-button,.delete-button,.edit-note,.project-search,.additional-entry-grid,.budget-strip input { display:none !important; } .main-content { width:100%; } .view { padding:0; max-width:none; } .detail-view { display:block !important; } .tab-panel { display:none !important; } .tab-panel.active-panel { display:block !important; } .table-wrap,.note,.change-log,.summary-card,.control-summary { box-shadow:none; break-inside:avoid; } h1 { font-size:25px; } }
 .budget-strip { grid-template-columns:repeat(3,1fr); } .financial-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; } .financial-summary > div { background:#fff; border:1px solid var(--line); padding:13px 16px; } .financial-summary span { display:block; color:var(--muted); font-size:10px; } .financial-summary strong { display:block; color:var(--navy); font:600 18px Georgia,serif; margin-top:7px; } .bottom-summary { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:20px; border-top:2px solid var(--navy-2); padding-top:18px; } .bottom-summary > div:last-child { border-top:2px solid var(--orange); } .additional-delete,.expense-delete { font-size:14px; padding:5px; color:#8a5d58; }
@media (max-width:900px) { .budget-strip,.financial-summary { grid-template-columns:repeat(2,1fr); } .participant-detail-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); } .employee-balance-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .budget-strip,.financial-summary { grid-template-columns:1fr; } }
 .single-hidden-entry { display:flex; align-items:end; gap:13px; background:#fff; border:1px solid var(--line); padding:14px; margin:14px 0; } .single-hidden-entry > strong { color:var(--navy); font:600 14px Georgia,serif; margin-right:auto; } .single-hidden-entry label { min-width:180px; } .single-hidden-entry .primary-button { flex:none; } 
@media (max-width:640px) { .single-hidden-entry { align-items:stretch; flex-direction:column; } .single-hidden-entry > strong { margin:0; } }
 .budget-strip { grid-template-columns:1fr 1fr; } .budget-strip > label:nth-child(1) { grid-column:1; grid-row:1; } .budget-strip > label:nth-child(2) { grid-column:2; grid-row:1; } .budget-strip > .budget-balance:nth-child(3) { grid-column:1; grid-row:2; } .budget-strip > .budget-balance:nth-child(4) { grid-column:2; grid-row:2; } .settings-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:16px; } .settings-card { background:#fff; border:1px solid var(--line); padding:23px; } .settings-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px; } .settings-card-heading h2 { margin-bottom:4px; } .admin-profile,.role-row,.drive-connection { display:flex; align-items:center; gap:12px; padding:15px 0; border-top:1px solid var(--line); } .admin-profile strong,.admin-profile span,.role-row strong,.role-row small,.drive-connection strong,.drive-connection small { display:block; } .admin-profile strong,.role-row strong,.drive-connection strong { color:var(--navy); font-size:12px; } .admin-profile span,.role-row small,.drive-connection small { color:var(--muted); font-size:10px; margin-top:4px; } .large-avatar { width:38px; height:38px; } .role-pill,.connection-status { margin-left:auto; padding:6px 8px; font-size:9px; white-space:nowrap; } .admin-pill { color:#fff; background:var(--navy); } .capture-pill { color:#8b6a2c; background:#f9f1dc; } .supervisor-pill { color:var(--green); background:#eaf5ef; } .connection-status { color:#8b6a2c; background:#f9f1dc; } .connection-status.connected { color:#176b3a; background:#e7f5ec; } .connection-status.error { color:#a53328; background:#fae9e6; } .drive-icon { width:35px; height:35px; display:grid; place-items:center; background:#edf3f4; color:var(--navy); font:700 20px Georgia,serif; } .drive-connection button { margin-left:auto; } .drive-connection button:disabled { cursor:wait; opacity:.65; } .settings-note { color:var(--muted); font-size:10px; line-height:1.5; background:#f7f9f9; padding:12px; margin:15px 0 0; }
@media (max-width:900px) { .settings-grid { grid-template-columns:1fr; } }
@media (max-width:640px) { .budget-strip { grid-template-columns:1fr; } .budget-strip > label:nth-child(1),.budget-strip > label:nth-child(2),.budget-strip > .budget-balance:nth-child(3),.budget-strip > .budget-balance:nth-child(4) { grid-column:1; grid-row:auto; } .settings-card-heading,.admin-profile,.role-row,.drive-connection { align-items:flex-start; flex-wrap:wrap; } .role-pill,.connection-status { margin-left:0; } }
 .summary-search { display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); padding:0 10px; width:260px; color:#9aa7ad; } .summary-search input { border:0; outline:0; width:100%; padding:9px 0; font-size:11px; }
.summary-filter-bar { display:flex; align-items:center; gap:10px; width:100%; margin-top:8px; padding:10px; background:#f8fafb; border:1px solid var(--line); }
.summary-filter-bar .summary-search { flex:1; width:auto; min-width:240px; }
.filter-label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.08em; }
.date-filter { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:10px; font-weight:700; white-space:nowrap; }
.date-filter input { margin:0; width:145px; border:1px solid var(--line); padding:9px 7px; font-size:11px; background:#fff; }
@media (max-width:640px) { .summary-search { width:100%; } }
@media (max-width:640px) { .summary-filter-bar { align-items:stretch; flex-direction:column; } .summary-filter-bar .summary-search { min-width:0; width:100%; } .date-filter { justify-content:space-between; } .date-filter input { width:65%; } }
body { text-transform:uppercase; } .note p,.note textarea,textarea,input,select,.change-row strong,.change-row small { text-transform:none; } .summary-date { border:1px solid var(--line); padding:9px 7px; font-size:10px; color:var(--muted); } 
body.auth-pending .app-shell { visibility:hidden; }
.auth-overlay { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:#f3f6f7; }
.auth-card { width:min(390px,calc(100% - 40px)); padding:30px; background:#fff; border:1px solid var(--line); box-shadow:0 15px 40px #17324d18; }
.forgot-password { background:none !important; color:var(--accent) !important; padding:8px 0 !important; margin-top:10px !important; font-size:11px; }
.general-grid { margin-top:18px; }.reminder-note { display:flex; flex-direction:column; gap:5px; margin-top:18px; padding:14px; border-left:3px solid var(--accent); background:#fff8f3; font-size:12px; }.reminder-note span { color:var(--muted); }
.reminder-alert { position:fixed; right:22px; bottom:22px; z-index:90; width:min(390px,calc(100% - 44px)); padding:16px; background:#fff4df; border:1px solid #e5b65d; box-shadow:0 10px 30px #17324d22; font-size:12px; }.reminder-alert strong { display:block; margin-bottom:6px; }.reminder-alert button { float:right; border:0; background:transparent; font-size:16px; cursor:pointer; }
body[data-role="captura"] .delete-button,body[data-role="captura"] .edit-note,body[data-role="captura"] #settings-view,body[data-role="captura"] .item-name-field,body[data-role="captura"] .item-unit-field,body[data-role="captura"] .item-number-field,body[data-role="captura"] .complete-check { display:none !important; }body[data-role="supervisor"] .delete-button,body[data-role="supervisor"] #settings-view { display:none !important; }body[data-role="captura"] .inline-item { pointer-events:none; }
.remember-email { display:flex !important; align-items:center; gap:7px; font-weight:400 !important; }.remember-email input { width:auto !important; margin:0 !important; padding:0 !important; }.logout-button { border:1px solid var(--line); background:#fff; color:var(--muted); padding:8px 10px; font-size:10px; font-weight:700; cursor:pointer; }
.auth-card h1 { margin:0 0 8px; font-size:25px; }.auth-card p { color:var(--muted); font-size:13px; line-height:1.5; }.auth-card label { display:block; margin-top:16px; font-size:11px; font-weight:700; }.auth-card input { display:block; box-sizing:border-box; width:100%; margin-top:6px; padding:11px; border:1px solid var(--line); }.auth-card button { width:100%; margin-top:20px; }.auth-error { color:#b43d2b; font-size:12px; margin-top:12px; }
.initial-budget-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-bottom:20px; }
.initial-budget-summary > div { background:#fff; border:1px solid var(--line); padding:17px; min-height:82px; }
.initial-budget-summary span { display:block; color:var(--muted); font-size:10px; }
.initial-budget-summary strong { display:block; color:var(--navy); font:600 20px Georgia,serif; margin-top:9px; }
.initial-price-field { min-width:105px; text-align:right; }
.positive-value,.positive-value strong { color:var(--green) !important; }
.negative-value,.negative-value strong { color:#b43d2b !important; }
.detail-tabs .tab { color:#8a979d; background:transparent; }
.detail-tabs .tab .tab-label { display:inline; margin:0; padding:0; background:transparent; color:inherit; font-size:12px; }
.detail-tabs .tab.active,.detail-tabs .tab[aria-selected="true"] { color:#17324d; background:transparent; border-bottom-color:#d9773d; font-weight:700; }
.detail-tabs .tab.active .tab-label,.detail-tabs .tab[aria-selected="true"] .tab-label { color:#17324d; }
.detail-tabs .tab .tab-count { display:inline-block; margin-left:5px; background:#edf1f2; padding:2px 6px; font-size:9px; color:#708089; }
.detail-tabs .tab.active .tab-count { background:#f7e8de; color:#d9773d; }
body[data-role="captura"] .initial-price-field { pointer-events:none; border-color:transparent; background:transparent; }
@media (max-width:900px) { .initial-budget-summary { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .initial-budget-summary { grid-template-columns:1fr; } }
.panel-actions { display:flex; align-items:center; gap:8px; }
.secondary-button.small { padding:9px 13px; font-size:11px; }
.item-grid { grid-template-columns:.7fr 2fr .8fr 1fr 1fr 1fr; }
.control-table .item-column,.initial-budget-table .item-column { width:58px; min-width:58px; max-width:58px; padding-left:8px; padding-right:8px; text-align:center; }
.control-table .unit-column,.initial-budget-table .unit-column { width:66px; min-width:66px; max-width:66px; padding-left:8px; padding-right:8px; text-align:center; }
.item-code-field { width:40px; min-width:40px; padding-left:3px; padding-right:3px; text-align:center; font-weight:700; color:var(--navy); }
.control-table .item-unit-field { width:50px; min-width:50px; padding-left:3px; padding-right:3px; text-align:center; }
.control-table th,.control-table td { padding-left:8px; padding-right:8px; }
.control-table .description-column { min-width:230px; white-space:normal; }
.control-table .item-name-field { display:block; width:100%; min-width:210px; min-height:38px; padding:4px 6px; overflow:hidden; resize:none; white-space:normal; line-height:1.4; }
.control-table .item-number-field { min-width:62px; }
.control-table .state-column { width:96px; min-width:96px; text-align:center; }
.control-table .state-column .check-label { justify-content:center; }
.table-money-input { display:flex; align-items:center; justify-content:flex-end; gap:2px; margin:0; color:var(--navy); }
.table-money-input span { flex:none; font-size:11px; }
.table-money-input .item-price-field { width:76px; min-width:76px; }
.table-money-input .initial-price-field { width:82px; min-width:82px; }
.initial-budget-table th { white-space:normal; line-height:1.35; }
.initial-budget-table th:nth-child(2),.initial-budget-table td:nth-child(2) { min-width:170px; white-space:normal; }
.initial-budget-table th:nth-child(5) { min-width:125px; }
.initial-budget-table th:nth-child(8) { min-width:140px; }
.budget-group td { background:#edf2f4; color:var(--navy); border-top:2px solid #cad7dc; }
.budget-group.level-1 td { background:var(--navy); color:#fff; }
.budget-group.level-1 td strong { color:#fff; }
.budget-group.level-2 td { background:#e7eef1; }
.import-modal { width:min(1040px,calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow:auto; }
.budget-import-text { min-height:150px; margin-top:18px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; text-transform:none; }
.import-toolbar { display:flex; align-items:center; gap:18px; margin-top:12px; }
.replace-budget { display:flex; align-items:center; gap:7px; margin:0 !important; font-size:10px !important; }
.replace-budget input { width:auto; margin:0; }
.import-status { margin:14px 0; padding:12px; background:#f3f6f7; color:var(--muted); font-size:11px; line-height:1.5; }
.import-status strong { color:var(--navy); }
.import-status span { display:block; color:#9a5b2f; margin-top:5px; }
.import-preview { max-height:330px; overflow:auto; border:1px solid var(--line); }
#confirm-budget-import:disabled { cursor:not-allowed; opacity:.5; }
body[data-role="captura"] .item-code-field { display:none !important; }
h1,h2,h3,.metric strong,.summary-card strong,.form-total strong,.control-summary strong,.budget-balance strong,.additional-entry p,.single-hidden-entry > strong,.financial-summary strong,.participant-card dd,.employee-card dd { font-family:var(--ui-font) !important; letter-spacing:0 !important; }
.metric,.control-summary,.financial-summary,.expense-budget-card,.summary-metric,.participant-card,.employee-balance-section,.employee-balance-card,.participant-detail-panel,.pending-payables { font-family:var(--ui-font) !important; }
.metric *,.control-summary *,.financial-summary *,.expense-budget-card *,.summary-metric *,.participant-card *,.employee-balance-section *,.employee-balance-card *,.participant-detail-panel *,.pending-payables * { font-family:var(--ui-font) !important; letter-spacing:0 !important; }
@media (max-width:900px) { .item-grid { grid-template-columns:1fr 2fr 1fr; } }
@media (max-width:640px) { .panel-actions { width:100%; flex-wrap:wrap; } .panel-actions button { flex:1; } .item-grid { grid-template-columns:1fr; } .import-toolbar { align-items:flex-start; flex-direction:column; } }
input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button { appearance:none; -webkit-appearance:none; margin:0; }
.expense-budget-card { display:grid; grid-template-columns:1fr auto 1fr auto 1.15fr; align-items:center; gap:18px; margin-bottom:18px; padding:18px 20px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--orange); }
.top-summary { margin-top:0; }
.expense-table-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin:22px 0 10px; }
.expense-search-box { width:min(310px,100%); margin-right:auto; background:#fff; border:1px solid var(--line); display:flex; align-items:center; gap:8px; padding:0 11px; color:#99a6ad; }
.expense-search-box input { width:100%; border:0; outline:0; padding:9px 0; color:var(--ink); font-size:11px; }
.expense-filter-panel { display:flex; align-items:end; gap:10px; margin:-2px 0 14px; padding:12px; background:#f8faf9; border:1px solid var(--line); }
.expense-filter-panel label { min-width:130px; }
.expense-filter-panel input,.expense-filter-panel select { width:100%; margin-top:5px; padding:8px; border:1px solid var(--line); color:var(--ink); background:#fff; font-size:11px; }
.expense-filter-result { margin-left:auto; padding-bottom:8px; color:var(--muted); font-size:11px; white-space:nowrap; }
.expense-pending-toggle { display:flex; align-items:center; gap:8px; margin-top:23px; color:var(--navy-2); font-size:10px; font-weight:700; text-transform:uppercase; cursor:pointer; }
.expense-pending-toggle input { width:15px; height:15px; margin:0; accent-color:var(--orange); }
.pending-payables { margin-top:20px; padding:18px; background:#f8faf9; border:1px solid var(--line); border-top:3px solid var(--orange); }
.pending-payables .panel-heading { margin-bottom:12px; }
.pending-payables .panel-heading h3 { margin-bottom:3px; }
.pending-payables .panel-heading > strong { color:#b14d32; font:600 19px Georgia,serif; }
.payables-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.payables-actions > strong { color:#b14d32; font:600 19px var(--ui-font); white-space:nowrap; }
.payables-breakdown { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; color:var(--muted); font-size:10px; }
.payables-breakdown strong { color:var(--navy); margin-left:4px; }
.payment-status { min-width:118px; }
.metric-link { cursor:pointer; transition:border-color .15s ease,box-shadow .15s ease; }
.metric-link:hover,.metric-link:focus { border-color:#98afb8; box-shadow:0 5px 14px rgba(18,42,57,.08); outline:0; }
.pending-balance-card { cursor:pointer; border-top-color:var(--orange); margin-top:18px; }
.additional-entry .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.additional-entry .form-grid label { min-width:0; }
.summary-balance-cards .participant-remove { display:none; }
.summary-balance-cards .participant-share input { pointer-events:none; border-color:transparent; background:transparent; }
.payables-employees { padding:16px 0 22px; border-bottom:2px solid var(--navy-2); }
.payables-expenses { padding-top:22px; }
.payables-employees h3,.payables-expenses h3 { margin:0 0 12px; color:var(--navy); font:600 16px Georgia,serif; }
.payable-source-link { cursor:pointer; }
.payable-source-link:hover td,.payable-source-link:focus td { background:#f4f8f8; }
.guarantee-entry-grid { display:grid; grid-template-columns:1fr; gap:12px; margin:16px 0; }
.guarantee-entry-grid .single-hidden-entry { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; margin:0; }
.guarantee-entry-grid .single-hidden-entry > strong { grid-column:1 / -1; margin:0 0 2px; }
.guarantee-entry-grid .single-hidden-entry label { min-width:0; }
.guarantee-entry-grid .single-hidden-entry .evidence-link { align-self:center; }
.evidence-link,.table-evidence { color:var(--orange); font-size:10px; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.managed-badge { display:inline-block; padding:5px 7px; color:var(--navy); background:#e8eff2; font-size:9px; font-weight:700; white-space:nowrap; }
.attendance-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; align-items:end; gap:10px; padding:16px; background:#fff; border:1px solid var(--line); }
#employee-form { grid-template-columns:2fr 1fr auto; margin-bottom:18px; }
.attendance-form input,.attendance-form select { width:100%; margin-top:6px; padding:9px 10px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:11px; }
.employee-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; margin-bottom:22px; }
.employee-card { padding:16px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy-2); }
.employee-card-heading { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.employee-card-heading input { width:100%; padding:7px 0; border:0; border-bottom:1px solid var(--line); color:var(--navy); background:transparent; font:600 16px Georgia,serif; }
.employee-card-heading strong { flex:1; color:var(--navy); font:600 16px Georgia,serif; }
.employee-card label { color:var(--muted); font-size:10px; }
.money-field { display:flex; align-items:center; gap:4px; }
.money-field span { color:var(--navy); font-size:11px; }
.money-field input { width:100%; padding:7px; border:1px solid var(--line); text-align:right; }
.employee-card dl { margin:14px 0 0; }
.employee-card dl > div { display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-top:1px solid var(--line); }
.employee-card dl > .employee-balance { margin-top:3px; border-top:2px solid var(--navy-2); }
.employee-card dt { color:var(--muted); font-size:10px; }
.employee-card dd { margin:0; color:var(--navy); font-size:12px; font-weight:700; }
.attendance-register { margin:0 0 14px; }
.attendance-register h3 { color:var(--navy); font:600 17px Georgia,serif; margin:0 0 10px; }
.attendance-table-wrap table { min-width:980px; }
.attendance-field { width:100%; min-width:105px; padding:7px; border:1px solid transparent; background:transparent; color:var(--ink); font-size:11px; }
.attendance-field:hover,.attendance-field:focus { border-color:#b7c9cf; background:#fff; outline:0; }
.attendance-notes-field { min-width:150px; }
.attendance-notes-cell { display:flex; align-items:center; gap:7px; min-width:245px; }
.attendance-notes-cell .attendance-notes-field { min-width:140px; }
.attendance-payment-status { flex:none; padding:4px 6px; font-size:9px; font-weight:700; white-space:nowrap; }
.attendance-payment-status.is-paid { color:#236747; background:#eaf5ef; }
.attendance-payment-status.is-partial { color:#8a5a12; background:#fff7dc; }
.attendance-payment-status.is-pending { color:#a53b31; background:#fff0ee; }
.compact-empty { padding:22px; min-height:0; }
.expense-budget-card div { min-width:0; }
.expense-budget-card span { display:block; color:var(--muted); font-size:10px; }
.expense-budget-card strong { display:block; margin-top:7px; color:var(--navy); font:600 20px Georgia,serif; }
.expense-budget-card > b { color:#a4afb5; font:400 20px Georgia,serif; }
.expense-budget-card .expense-budget-result { padding-left:18px; border-left:1px solid var(--line); }
.expense-budget-card .expense-budget-result strong { color:var(--green); }
.expense-summary-content.hidden { display:none; }
.expense-summary .panel-heading { gap:12px; }
.expense-summary-toggle { margin-left:auto; white-space:nowrap; }
@media (max-width:640px) { .expense-budget-card { grid-template-columns:1fr; gap:10px; } .expense-budget-card > b { display:none; } .expense-budget-card .expense-budget-result { padding:12px 0 0; border-left:0; border-top:1px solid var(--line); } }
@media (max-width:900px) { .attendance-form,.guarantee-entry-grid .single-hidden-entry { grid-template-columns:repeat(2,minmax(0,1fr)); } .attendance-form button { min-height:35px; } }
@media (max-width:640px) { .guarantee-entry-grid,.guarantee-entry-grid .single-hidden-entry,.attendance-form,#employee-form { grid-template-columns:1fr; } .expense-table-toolbar { align-items:stretch; flex-wrap:wrap; } .expense-search-box { width:100%; } .expense-table-toolbar button { width:auto; flex:1; } .expense-filter-panel { align-items:stretch; flex-direction:column; } .expense-filter-panel label { width:100%; } .expense-filter-result { margin:0; padding:0; } }
.employee-catalog-card { grid-column:1 / -1; }
.catalog-employee-form { display:grid; grid-template-columns:2fr 1fr auto; align-items:end; gap:10px; margin-bottom:18px; padding:16px; background:#f7f9f9; border:1px solid var(--line); }
.catalog-employee-form label { color:var(--muted); font-size:10px; }
.catalog-employee-form input { width:100%; margin-top:6px; padding:9px 10px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:11px; }
.employee-catalog-table input { width:100%; min-width:150px; padding:8px; border:1px solid transparent; background:transparent; color:var(--ink); font-size:11px; }
.employee-catalog-table input:hover,.employee-catalog-table input:focus { border-color:#b7c9cf; background:#fff; outline:0; }
.employee-catalog-table .catalog-rate { min-width:100px; text-align:right; }
@media (max-width:640px) { .catalog-employee-form { grid-template-columns:1fr; } }
.settlement-panel { margin:22px 0; padding:20px; background:#eef3f4; border:1px solid #d8e2e5; }
.settlement-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.settlement-heading h3 { margin:0 0 4px; color:var(--navy); font:600 19px Georgia,serif; }
.settlement-heading p { margin:0; }
.settlement-controls { display:grid; grid-template-columns:1fr 1fr; gap:10px; min-width:410px; }
.settlement-controls input,.settlement-controls select,.participant-add input,.inline-select,.additional-entry select,.single-hidden-entry select { width:100%; margin-top:6px; padding:9px 10px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:11px; }
.participant-add { display:flex; gap:8px; margin:17px 0 12px; }
.participant-add input { max-width:310px; margin:0; }
.participant-warning { min-height:16px; color:#a54a35; font-size:10px; }
.participant-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:8px; }
.participant-card { padding:17px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy-2); }
.participant-card-open { cursor:pointer; transition:border-color .15s ease,box-shadow .15s ease; }
.participant-card-open:hover,.participant-card-open:focus { border-color:#98afb8; box-shadow:0 5px 14px rgba(18,42,57,.08); outline:0; }
.participant-card-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.participant-card-heading > strong { color:var(--navy); font:600 16px Georgia,serif; }
.participant-share { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:15px 0 10px; }
.participant-share b { color:var(--green); font-size:12px; }
.participant-share span { display:flex; align-items:center; gap:5px; }
.participant-share input { width:72px; margin:0; padding:7px; border:1px solid var(--line); text-align:right; }
.participant-card dl { margin:0; }
.participant-card dl > div { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--line); }
.participant-card dt { color:var(--muted); font-size:10px; }
.participant-card dd { margin:0; color:var(--navy); font-weight:700; font-size:12px; }
.participant-card .participant-total dd { color:var(--green); }
.employee-balance-section { margin-top:18px; padding-top:16px; border-top:1px solid #cad8dc; }
.employee-balance-section h4 { margin:0 0 11px; color:var(--navy); font:600 16px Georgia,serif; }
.employee-balance-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.employee-balance-card { background:#fff; border:1px solid var(--line); border-top:2px solid var(--green); padding:11px 12px; }
.employee-balance-card > strong { display:block; color:var(--navy); font-size:11px; margin-bottom:7px; }
.employee-balance-card dl { display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; margin:0; }
.employee-balance-card dl > div { display:flex; justify-content:space-between; gap:7px; }
.employee-balance-card dt { color:var(--muted); font-size:9px; }
.employee-balance-card dd { margin:0; color:var(--navy); font-size:10px; font-weight:700; }
.participant-detail-panel { margin-top:18px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy-2); padding:17px; }
.participant-detail-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.participant-detail-heading h4 { margin:0 0 3px; color:var(--navy); font:600 18px Georgia,serif; }
.participant-detail-heading p { margin:0; color:var(--muted); font-size:10px; }
.participant-detail-heading button { font-size:22px; line-height:1; }
.participant-detail-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; margin:15px 0; }
.participant-detail-metrics > div { padding:9px 10px; background:#f8faf9; border:1px solid var(--line); }
.participant-detail-metrics span { display:block; color:var(--muted); font-size:9px; }
.participant-detail-metrics strong { display:block; color:var(--navy); font:600 14px Georgia,serif; margin-top:5px; }
.participant-detail-table { margin-top:6px; }
.loans-section { margin-top:20px; padding-top:18px; border-top:1px solid #cad8dc; }
.loans-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:13px; }
.loans-heading h4 { margin:0 0 3px; color:var(--navy); font:600 16px Georgia,serif; }
.loans-heading p { margin:0; }
.loans-heading > strong { color:var(--green); font-size:11px; white-space:nowrap; }
.loan-form { display:grid; grid-template-columns:145px 1fr 1fr 1.6fr 130px auto; align-items:end; gap:9px; margin-bottom:13px; }
.loan-form input,.loan-form select { width:100%; height:35px; margin-top:6px; padding:7px 8px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:11px; }
.loan-form button { height:35px; }
@media print { .loan-form { display:none !important; } }
.loan-table-wrap table { min-width:860px; }
.loan-table-wrap th,.loan-table-wrap td { padding:10px 8px; }
.loan-field { width:100%; min-width:90px; padding:6px 4px; border:1px solid transparent; background:transparent; color:var(--ink); font-size:11px; }
.loan-field:hover,.loan-field:focus { border-color:#b7c9cf; background:#fff; outline:0; }
.loan-description-field { min-width:150px; }
.loan-amount-field,.loan-repaid-field { min-width:82px; text-align:right; }
.participant-card .participant-total { border-top:2px solid var(--navy-2); }
.participant-card .participant-total dt,.participant-card .participant-total dd { font-size:12px; font-weight:700; }
.participant-breakdown { margin:10px 0 2px; border:1px solid #d8e2e5; background:#f8faf9; }
.participant-breakdown summary { padding:8px 10px; color:var(--navy); font-size:10px; font-weight:700; cursor:pointer; }
.participant-breakdown summary::marker { color:var(--orange); }
.participant-breakdown dl { margin:0; padding:0 10px 7px; }
.participant-breakdown dl > div { padding:6px 0; }
.participant-breakdown .participant-breakdown-profit { border-top:2px solid var(--navy-2); }
.participant-detail-calculation { grid-column:1 / -1; background:#eef3f4 !important; border-top:2px solid var(--navy-2) !important; }
.participant-detail-calculation small { display:block; color:var(--muted); font-size:10px; margin-top:4px; }
.inline-select { min-width:150px; margin:0; padding:6px; border-color:transparent; }
.inline-select:hover,.inline-select:focus { border-color:#b7c9cf; outline:0; }
body[data-role="captura"] .settlement-controls input,body[data-role="captura"] .settlement-controls select,body[data-role="captura"] .participant-share-input { pointer-events:none; border-color:transparent; background:transparent; }
body[data-role="captura"] .participant-add { display:none; }
body[data-role="captura"] .loan-form { display:none; }
body[data-role="captura"] .loan-field { pointer-events:none; border-color:transparent; }
@media (max-width:1100px) { .loan-form { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .settlement-heading { align-items:flex-start; flex-direction:column; } .settlement-controls { width:100%; min-width:0; } }
@media (max-width:640px) { .settlement-controls,.participant-cards,.loan-form,.employee-balance-cards,.participant-detail-metrics { grid-template-columns:1fr; } .participant-add { align-items:stretch; flex-direction:column; } .participant-add input { max-width:none; } .loans-heading { align-items:flex-start; flex-direction:column; } }
@media (max-width:640px) {
  .app-shell { display:block; }
  .sidebar { position:sticky; top:0; z-index:20; width:100%; height:58px; padding:8px 12px; flex-direction:row; align-items:center; }
  .brand { padding:0; margin-right:auto; }
  .brand-mark { width:36px; height:36px; margin:0; }
  .main-nav { display:flex; gap:5px; }
  .nav-item { width:38px; height:38px; padding:0; }
  .main-content { width:100%; }
  .topbar { height:52px; }
  .view { padding:24px 16px 46px; }
  .detail-tabs { margin-left:-16px; margin-right:-16px; padding:0 16px; }
  .detail-actions { flex-wrap:wrap; justify-content:flex-start; }
  .additional-entry-grid { grid-template-columns:1fr; }
}

/* Recordatorios y abonos parciales */
.home-reminders { margin:-22px 0 35px; border:1px solid #ead8c8; border-left:3px solid var(--orange); background:#fff; padding:18px 20px; }
.home-reminders-heading h2 { margin-bottom:3px; }
.reminder-item,.project-reminder-row { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--line); padding:13px 0; }
.reminder-item:first-of-type { border-top:0; }
.reminder-item strong,.reminder-item span { display:block; }
.reminder-item span,.payable-payment-detail { color:var(--muted); font-size:11px; margin-top:4px; }
.reminder-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.project-reminder-controls { margin-top:16px; border-top:1px solid var(--line); padding-top:4px; }
.project-reminder-row { font-size:12px; }
.payable-payment-detail { display:block; white-space:nowrap; }
.inline-payable-payment { margin-right:6px; }
.participant-ledger-link { cursor:pointer; border-left:2px solid transparent; }
.participant-ledger-link:hover,.participant-ledger-link:focus { background:#f2f7f7; border-left-color:var(--orange); outline:0; }
.participant-ledger-link dt::after { content:"Ver detalle"; display:block; color:var(--orange); font-size:9px; font-weight:600; margin-top:2px; }
.participant-ledger-total { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin:16px 0 12px; padding:12px 14px; background:#f5f8f8; border:1px solid var(--line); }
.participant-ledger-total span { color:var(--muted); font-size:11px; }
.participant-ledger-total strong { color:var(--navy); font:600 18px var(--ui-font); }
.retention-check { display:flex; align-items:center; gap:8px; align-self:end; min-height:39px; color:var(--navy); font-weight:600; }
.retention-check input { width:16px; height:16px; margin:0; accent-color:var(--orange); }
.summary-section { border-top:1px solid var(--line); margin-top:24px; padding-top:18px; }
.summary-section:first-of-type { margin-top:0; }
.summary-section h3 { color:var(--navy); font:600 17px Georgia,serif; margin:0 0 14px; }
.summary-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr)); gap:12px; }
.summary-metric { min-width:0; min-height:96px; padding:16px; background:#fff; border:1px solid var(--line); break-inside:avoid; }
.summary-metric span { display:block; color:var(--muted); font-size:10px; }
.summary-metric strong { display:block; color:var(--navy); font:600 20px/1.2 Georgia,serif; margin-top:8px; overflow-wrap:anywhere; }
.summary-metric #summary-last { font-size:16px; }
.summary-metric .progress-track { margin-top:10px; }
body:not([data-role="admin"]) .settlement-panel,
body:not([data-role="admin"]) .expense-budget-card,
body:not([data-role="admin"]) .single-hidden-entry,
body:not([data-role="admin"]) .budget-strip > label:first-child,
body:not([data-role="admin"]) .budget-strip > .budget-balance:nth-child(3),
body:not([data-role="admin"]) .additional-entry-grid > .additional-entry:first-child,
body:not([data-role="admin"]) .admin-private,
body:not([data-role="admin"]) .reminder-note,
body:not([data-role="admin"]) .detail-tabs [data-tab="initial-budget"],
body:not([data-role="admin"]) #initial-budget-panel,
body:not([data-role="admin"]) .detail-tabs [data-tab="changes"],
body:not([data-role="admin"]) #changes-panel { display:none !important; }
body:not([data-role="admin"]) .budget-strip { grid-template-columns:1fr 1fr; }
body:not([data-role="admin"]) .budget-strip > label:nth-child(2) { grid-column:1; grid-row:1; }
body:not([data-role="admin"]) .budget-strip > .budget-balance:nth-child(4) { grid-column:2; grid-row:1; }
body:not([data-role="admin"]) .additional-entry-grid { grid-template-columns:1fr; }
body .table-wrap table { font-size:13px; }
body .table-wrap th { font-size:11px; }
body .table-wrap td { line-height:1.5; }
.attendance-earned-preview { min-width:150px; padding-top:1px; }
.attendance-earned-preview strong { display:block; color:var(--navy); font-size:16px; margin-top:8px; }
.employee-payment { display:grid; grid-template-columns:112px minmax(0,1fr) 74px auto; gap:6px; margin-top:10px; padding-top:9px; border-top:1px solid var(--line); }
.employee-payment select,.employee-payment input,.participant-project-fund input { min-width:0; width:100%; padding:6px; border:1px solid var(--line); color:var(--ink); background:#fff; font-size:10px; }
.employee-payment .secondary-button { padding:6px 8px; font-size:10px; }
.participant-project-fund { display:flex !important; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--line); }
.participant-project-fund dd { width:112px; }
.invoice-cell { width:40px; text-align:center; }
.invoice-button { width:27px; height:27px; padding:0; color:var(--navy-2); background:transparent; border:1px solid var(--line); font-size:14px; line-height:1; }
.invoice-button:hover { border-color:var(--orange); color:var(--orange); }
.invoice-upload-control { display:block; padding:12px; border:1px dashed #b9cbd1; color:var(--navy); font-weight:700; cursor:pointer; }
.invoice-upload-control input { display:block; width:100%; margin-top:8px; }
.invoice-existing-list { display:grid; gap:8px; margin-top:16px; max-height:220px; overflow:auto; }
.invoice-choice,.invoice-current-link { display:block; width:100%; padding:9px 10px; color:var(--navy); background:#fff; border:1px solid var(--line); text-align:left; font-size:11px; text-decoration:none; }
.invoice-choice:hover { border-color:var(--orange); }
.employee-card-open { cursor:pointer; }
.employee-labor-detail { margin-top:18px; padding:16px; background:#fff; border:1px solid var(--line); }
.employee-labor-detail-heading { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.employee-labor-detail-heading h3 { margin-bottom:4px; }
.employee-labor-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.employee-labor-metrics > div { padding:11px; background:#f8faf9; border:1px solid var(--line); }
.employee-labor-metrics span { display:block; color:var(--muted); font-size:10px; }
.employee-labor-metrics strong { display:block; color:var(--navy); margin-top:5px; font-size:16px; }
.employee-payment-summary { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; font-size:11px; font-weight:700; }
.employee-payment-summary span { padding:6px 8px; border:1px solid var(--line); }
.employee-payment-summary .is-paid { color:#236747; background:#eaf5ef; }
.employee-payment-summary .is-partial { color:#8a5a12; background:#fff7dc; }
.employee-payment-summary .is-pending { color:#a53b31; background:#fff0ee; }
.employee-detail-section-title { margin:18px 0 8px; color:var(--navy); font:600 15px Georgia,serif; }
.project-guarantees { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.additional-table-section { margin-top:22px; }
.subsection-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin:0 0 10px; }
.subsection-heading h3 { margin:0 0 3px; color:var(--navy); font:600 17px Georgia,serif; }
.subsection-heading .muted { margin:0; }
.labor-summary-row { cursor:pointer; }
.labor-summary-row:hover td { background:#eef6f4; }
.additional-entry { padding:10px; }
.additional-entry p { margin:0 0 8px; }
.additional-entry .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.additional-entry .form-grid label { font-size:10px; }
.additional-entry .form-grid input,.additional-entry .form-grid select { padding:7px 8px; margin-top:4px; }
.additional-entry .additional-entry-submit { align-self:end; min-height:34px; margin:0; white-space:nowrap; }
@media (max-width:640px) { .additional-entry .form-grid { grid-template-columns:1fr; } }
.guarantee-table-row { cursor:pointer; }
.guarantee-table-row:hover td { background:#fff8ed; }
.guarantee-amount-cell { min-width:126px; white-space:nowrap; }
.guarantee-amount-cell > span { display:inline-block; margin-right:4px; color:var(--navy); font-size:11px; font-weight:700; }
.guarantee-amount-field { min-width:82px; text-align:right; }
#guarantee-table td:nth-child(5) { text-align:right; }
.guarantee-evidence { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.guarantee-file-button { display:inline-flex; align-items:center; color:var(--orange); font-size:10px; font-weight:700; cursor:pointer; }
.guarantee-file-button input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.table-summary-control { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0 -1px; padding:8px 10px; background:#f3f6f7; border:1px solid var(--line); color:var(--muted); font-size:11px; }
.table-date-summary { cursor:default; }
.table-date-summary td { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:11px 13px; background:#fafcfc; color:var(--navy); }
.table-date-summary strong:last-child { color:var(--green); white-space:nowrap; }
.table-date-summary-actions { display:flex; align-items:center; gap:10px; }
.table-date-summary-toggle { border:1px solid #b7c9cf; background:#fff; color:var(--navy); padding:5px 7px; font:600 10px var(--ui-font); cursor:pointer; white-space:nowrap; }
.table-date-summary-toggle:hover,.table-date-summary-toggle:focus { border-color:var(--navy-2); background:#eef3f4; outline:0; }
.table-date-summary.is-open td { background:#eef5f3; }
@media (max-width:640px) { .table-summary-control { align-items:flex-start; flex-direction:column; } .table-date-summary td { align-items:flex-start; flex-direction:column; } }
#attendance-panel.employee-detail-open > .panel-heading,
#attendance-panel.employee-detail-open > #employee-form,
#attendance-panel.employee-detail-open > #employee-cards,
#attendance-panel.employee-detail-open > .attendance-register,
#attendance-panel.employee-detail-open > .attendance-table-wrap { display:none; }
#attendance-panel.employee-detail-open > .employee-labor-detail { margin-top:0; }
@media (max-width:640px) {
  body:not([data-role="admin"]) .budget-strip { grid-template-columns:1fr; }
  body:not([data-role="admin"]) .budget-strip > label:nth-child(2) { grid-column:1; grid-row:1; }
  body:not([data-role="admin"]) .budget-strip > .budget-balance:nth-child(4) { grid-column:1; grid-row:2; }
  .employee-labor-metrics { grid-template-columns:1fr; }
  .employee-payment { grid-template-columns:1fr 1fr; }
  .payables-actions { width:100%; justify-content:space-between; }
}
