/* Workspace layer: shared rhythm, clear hierarchy and touch-friendly controls. */
:root { --nf-ink:#172944; --nf-muted:#62718a; --nf-line:#dfe6ef; --nf-surface:#fff; --nf-accent:#255ed8; }
body.nf-workspace { margin:0; background:#f5f7fb; color:var(--nf-ink); font-family:Inter,"Segoe UI",Arial,sans-serif; font-size:15px; padding-bottom:0; }
.nf-workspace a { text-underline-offset:3px; }
.nf-workspace .btn { min-height:42px; border-radius:9px; padding:.55rem .9rem; font-weight:600; box-shadow:none; }
.nf-workspace .btn-primary { background:var(--nf-accent); border-color:var(--nf-accent); color:#fff; }
.nf-workspace .btn-outline-primary { color:#2455bd; border-color:#bacbed; background:#fff; }
.nf-workspace .btn-outline-secondary { border-color:#c8d2e0; color:#465773; background:#fff; }
.nf-workspace .btn:focus-visible,.nf-workspace a:focus-visible,.nf-workspace summary:focus-visible,.nf-workspace input:focus-visible { outline:3px solid #e79320; outline-offset:3px; }
.nf-workspace .form-control,.nf-workspace .form-select { border-radius:8px; min-height:44px; border-color:#cbd5e2; font-size:16px; }
.nf-workspace .form-label { font-weight:600; font-size:.86rem; color:#43516a; margin-bottom:6px; }
.nf-workspace h1 { font-size:clamp(1.65rem,2.1vw,2.1rem); font-weight:720; letter-spacing:-.035em; }
.nf-workspace h2 { letter-spacing:-.02em; }
.nf-workspace p { color:var(--nf-muted); }
.nf-icon { flex:none; vertical-align:middle; }
.nf-skip-link { position:fixed; top:-80px; left:20px; background:#fff; padding:14px; z-index:2000; }
.nf-skip-link:focus { top:12px; }
.nf-sidebar { position:fixed; inset:0 auto 0 0; width:238px; background:#fff; border-right:1px solid var(--nf-line); display:flex; flex-direction:column; padding:28px 18px 18px; z-index:1010; overflow-y:auto; }
.nf-sidebar .nf-brand { display:flex; gap:10px; align-items:center; color:#172944; text-decoration:none; font-size:16px; font-weight:750; letter-spacing:.05em; margin:0 8px 38px; }
.nf-sidebar .nf-brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#255ed8; color:#fff; font-size:14px; }
.nf-navigation { display:flex; flex-direction:column; gap:5px; }
.nf-navigation > a,.nf-navigation summary { display:flex; gap:13px; align-items:center; min-height:47px; padding:10px 13px; border-radius:9px; color:#53627a; text-decoration:none; font-size:14px; font-weight:580; }
.nf-navigation a:hover,.nf-navigation summary:hover { color:#2455bd; background:#f2f5fb; }
.nf-navigation > a.active { color:#2455bd; background:#edf3ff; font-weight:700; }
.nf-nav-settings { margin-top:22px; border-top:1px solid var(--nf-line); padding-top:18px; }
.nf-nav-settings summary { cursor:pointer; }
.nf-nav-settings summary::after { content:'⌄'; margin-left:auto; }
.nf-nav-settings a { display:block; padding:9px 8px 9px 47px; color:#53627a; text-decoration:none; font-size:13px; }
.nf-sidebar-bottom { margin-top:auto; padding:30px 12px 8px; display:grid; gap:7px; font-size:12px; color:var(--nf-muted); }
.nf-sidebar-bottom a { color:#53627a; }
.nf-authenticated .nf-workspace-main { margin-left:238px; }
.nf-workspace-header { min-height:83px; border-bottom:1px solid var(--nf-line); display:flex; justify-content:space-between; align-items:center; gap:16px; background:#fff; padding:16px 34px; }
.nf-company-switch { display:flex; align-items:center; gap:10px; min-width:0; text-decoration:none; color:var(--nf-ink); }
.nf-company-switch > span:nth-child(2) { min-width:0; }
.nf-company-switch strong { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:360px; font-size:14px; }
.nf-company-switch small { display:block; font-size:10px; letter-spacing:.07em; text-transform:uppercase; color:#738099; margin-bottom:3px; }
.nf-company-avatar { display:grid; place-items:center; background:#eff3fa; border:1px solid #dfe6f2; width:38px; height:38px; border-radius:10px; font-weight:700; flex:none; }
.nf-header-actions { display:flex; gap:18px; align-items:center; }
.nf-account-menu { position:relative; }
.nf-account-menu summary { display:grid; place-items:center; width:44px; height:44px; cursor:pointer; border:1px solid var(--nf-line); border-radius:50%; list-style:none; }
.nf-account-menu summary::-webkit-details-marker { display:none; }
.nf-account-menu > div { position:absolute; right:0; top:54px; padding:18px; width:min(280px,85vw); background:#fff; border:1px solid var(--nf-line); box-shadow:0 8px 28px #17294418; z-index:1030; border-radius:12px; display:grid; gap:10px; overflow-wrap:anywhere; }
.nf-mobile-brand,.nf-tablet-menu { display:none; }
.nf-workspace-content { padding:32px 34px 40px; max-width:1800px; margin:auto; min-height:calc(100vh - 160px); }
.nf-workspace-footer { display:flex; justify-content:space-between; padding:18px 34px; font-size:12px; color:#758198; border-top:1px solid var(--nf-line); }
.nf-workspace-footer a { color:#62718a; }
.nf-page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:26px; }
.nf-page-heading p { margin:8px 0 0; }
.nf-eyebrow { display:block; color:#637692; font-size:11px; letter-spacing:.13em; font-weight:700; text-transform:uppercase; margin-bottom:8px; }
.nf-panel { max-width:none; margin:0; background:#fff; border:1px solid var(--nf-line); border-radius:14px; padding:24px; box-shadow:0 3px 12px #17335d03; }
.nf-anonymous .nf-panel { max-width:560px; margin:40px auto; }
.nf-action-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.nf-action-card { text-decoration:none; display:flex; flex-direction:column; align-items:flex-start; gap:16px; transition:border-color .15s; color:var(--nf-ink); }
.nf-action-card:hover { border-color:#86a9ee; color:var(--nf-ink); }
.nf-action-card > .nf-icon { width:44px; height:44px; padding:10px; background:#edf3ff; color:#255ed8; border-radius:12px; }
.nf-action-card h2 { font-size:18px; margin:0; }
.nf-action-card p { font-size:14px; margin:0 0 8px; }
.nf-action-card > span { margin-top:auto; color:#2455bd; font-size:14px; font-weight:600; }
.nf-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:22px 0; }
.nf-metric-link { text-decoration:none; color:var(--nf-ink); display:flex; flex-direction:column; padding:22px; }
.nf-metric-link > span { color:var(--nf-muted); font-size:13px; }
.nf-metric-link strong { margin:10px 0 6px; font-size:clamp(1.3rem,2vw,1.85rem); letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.nf-metric-link small { font-size:11px; color:#62718a; }
.nf-metric-link.nf-metric-overdue strong { color:#b4540b; }
.nf-dashboard-columns { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:22px; }
.nf-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.nf-panel-heading h2 { font-size:18px; margin:0; }
.nf-task-row { display:flex; gap:14px; align-items:center; padding:18px 0; border-top:1px solid #eaf0f6; color:var(--nf-ink); text-decoration:none; }
.nf-task-row > span:nth-child(2) { flex:1; }
.nf-task-row strong,.nf-task-row small { display:block; }
.nf-task-row strong { font-size:14px; margin-bottom:4px; }
.nf-task-row small { color:var(--nf-muted); font-size:12px; }
.nf-task-count { display:grid; place-items:center; height:34px; min-width:34px; padding:0 6px; border-radius:10px; background:#edf3ff; color:#2455bd; font-weight:700; }
.nf-period-form { display:flex; gap:8px; align-items:end; flex-wrap:wrap; }
.nf-period-form .form-control { min-height:38px; font-size:13px; }
.nf-period-form .form-label { font-size:11px; }
.nf-period-form > div { flex:1; min-width:120px; }
.nf-period-shortcuts,.nf-filter-chips { display:flex; gap:7px; flex-wrap:wrap; }
.nf-period-shortcuts a,.nf-filter-chips a { border:1px solid var(--nf-line); padding:8px 13px; border-radius:8px; font-size:13px; color:#52627b; text-decoration:none; background:#fff; }
.nf-filter-chips a.active { background:#eaf1ff; border-color:#a8c2f1; color:#2455bd; font-weight:600; }
.nf-workspace .nf-list-filters { background:#fff; box-shadow:none; border:1px solid var(--nf-line); border-radius:12px; }
.nf-workspace .table { color:var(--nf-ink); font-size:14px; }
.nf-workspace .table thead th { background:#f3f6fa; color:#697994; font-size:11px; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--nf-line); padding:14px 12px; }
.nf-workspace .table td { padding:15px 12px; vertical-align:middle; border-color:#eaf0f6; }
.nf-workspace .card { border:1px solid var(--nf-line); border-radius:12px; box-shadow:none; }
.nf-workspace .alert { border-radius:10px; font-size:14px; }
.nf-more-navigation { max-width:660px; }
.nf-workspace .nf-mobile-tabbar { display:none; }
.nf-list-advanced summary { cursor:pointer; padding:10px 4px; font-size:13px; font-weight:600; color:#52627b; }
.nf-list-advanced-fields { display:flex; flex-wrap:wrap; gap:12px; padding-bottom:12px; }
.nf-list-advanced-fields > div { min-width:140px; flex:1; }
.nf-save-state { color:#62718a; font-size:12px; margin:10px 0; }
.nf-invoice-editor { container-type:inline-size; }
.nf-invoice-editor .nf-line-table td { padding:12px 6px; }
.nf-invoice-editor .nf-line-table input { min-width:70px; }
.nf-adjustments-toggle { display:none; }
@container (max-width:1300px) {
    .nf-editor-general > div { width:50%; }
    .nf-invoice-editor .table-responsive { overflow:visible; }
    .nf-invoice-editor .nf-line-table,.nf-invoice-editor .nf-line-table tbody { display:block; width:100%; min-width:0; }
    .nf-invoice-editor .nf-line-table thead { display:none; }
    .nf-invoice-editor .nf-line-table tr { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; border:1px solid var(--nf-line); border-radius:12px; background:#fff; padding:18px; margin:16px 0; }
    .nf-invoice-editor .nf-line-table td { display:block; border:0; padding:0; min-width:0; }
    .nf-invoice-editor .nf-line-table td::before { content:attr(data-label); display:block; color:#53627a; font-size:12px; font-weight:600; margin:0 0 6px; }
    .nf-invoice-editor .nf-line-table td:nth-child(1),.nf-invoice-editor .nf-line-table td:nth-child(2) { grid-column:span 2; }
    .nf-invoice-editor .nf-line-table td:last-child { grid-column:1 / -1; display:flex; justify-content:flex-end; align-items:center; gap:8px; }
    .nf-invoice-editor .nf-line-table td:last-child::before { display:none; }
    .nf-invoice-editor .nf-line-table tr:not([data-show-adjustments]) td[data-line-extra] { display:none; }
    .nf-adjustments-toggle { display:inline-flex; }
    .nf-invoice-editor .nf-line-table td.nf-line-total { width:auto; text-align:left; }
}
@container (max-width:560px) {
    .nf-editor-general > div { width:100%; }
    .nf-invoice-editor .nf-line-table tr { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; }
    .nf-invoice-editor .nf-line-table td:nth-child(1),.nf-invoice-editor .nf-line-table td:nth-child(2) { grid-column:1 / -1; }
    .nf-invoice-editor .nf-invoice-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .nf-invoice-editor .nf-invoice-summary span:last-child { grid-column:1 / -1; font-size:20px; }
}
.nf-workspace .nf-list-filter { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:16px; margin-bottom:20px; border:1px solid var(--nf-line); border-radius:12px; background:#fff; }
.nf-workspace .nf-list-filter .nf-list-search { flex:1; min-width:220px; }
.nf-workspace .nf-list-filter .nf-list-advanced { flex:0 1 370px; }
.nf-workspace select { max-width:100%; }
.nf-customer-dialog { width:min(940px,96vw); height:90vh; max-height:90dvh; border:1px solid var(--nf-line); border-radius:14px; padding:16px; }
.nf-customer-dialog::backdrop { background:#17294480; }
.nf-customer-dialog iframe { width:100%; height:calc(100% - 58px); border:0; margin-top:12px; }
.nf-preset-sheet { border:1px solid #dce5f1; border-radius:4px; padding:20px; background:#fcfdff; min-height:140px; font-size:9px; max-width:260px; }
.nf-preset-sheet strong { display:block; color:#255ed8; font-size:15px; }
.nf-preset-sheet span { display:block; margin-top:8px; }
.nf-preset-sheet b { display:block; text-align:right; margin-top:14px; }
.nf-preset-lines i { display:block; border-bottom:5px solid #d8e3f3; margin:8px 0; }
.nf-preset-lines.services i:nth-child(2) { width:85%; }
.nf-preset-lines.compact i { border-bottom-width:3px; }
.nf-save-state[data-error="true"] { color:#b13d2b; }
@media (max-width:1199.98px) {
    .nf-sidebar { display:none; }
    .nf-authenticated .nf-workspace-main { margin-left:0; }
    .nf-tablet-menu { display:inline-flex; }
    .nf-workspace-content { padding:28px 24px 36px; }
    .nf-workspace-header { padding:14px 24px; }
    .nf-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767.98px) {
    .nf-workspace .nf-sales-list tbody tr { display:grid; grid-template-columns:1fr auto; gap:8px 12px; padding:16px; background:#fff; border:1px solid var(--nf-line); border-radius:12px; margin-bottom:12px; }
    .nf-workspace .nf-sales-list tbody td { padding:0; display:block; text-align:left!important; border:0; font-size:12px; }
    .nf-workspace .nf-sales-list tbody td::before { display:none; }
    .nf-workspace .nf-sales-list tbody td:nth-child(3) { grid-row:1; grid-column:1; font-weight:650; font-size:14px; }
    .nf-workspace .nf-sales-list tbody td:nth-child(3) a { color:var(--nf-ink); text-decoration:none; }
    .nf-workspace .nf-sales-list tbody td:nth-child(7) { grid-row:1; grid-column:2; font-weight:700; font-size:15px; }
    .nf-workspace .nf-sales-list tbody td:nth-child(1) { grid-row:2; grid-column:2; color:#62718a; }
    .nf-workspace .nf-sales-list tbody td:nth-child(2) { grid-row:2; grid-column:1; color:#62718a; }
    .nf-workspace .nf-sales-list tbody td:nth-child(5) { display:none; }
    .nf-workspace .nf-sales-list tbody td:nth-child(6)::before { content:'Pendiente '; display:inline; }
    .nf-workspace .nf-sales-list tbody td:last-child { grid-column:1 / -1; text-align:right!important; }
    body.nf-workspace.nf-authenticated { padding-bottom:76px; }
    .nf-workspace-header { padding:10px 16px; min-height:68px; gap:9px; }
    .nf-workspace-header .nf-header-create,.nf-tablet-menu { display:none; }
    .nf-mobile-brand { display:grid; place-items:center; background:#255ed8; color:#fff; border-radius:9px; width:32px; height:32px; font-size:12px; font-weight:750; flex:none; text-decoration:none; }
    .nf-company-avatar,.nf-company-switch small { display:none; }
    .nf-company-switch { margin-right:auto; flex:1; }
    .nf-company-switch strong { font-size:12px; max-width:calc(100vw - 136px); }
    .nf-account-menu summary { width:38px; height:38px; }
    .nf-header-actions { gap:0; }
    .nf-workspace-content { padding:24px 16px 28px; }
    .nf-page-heading { align-items:flex-start; gap:14px; flex-wrap:wrap; margin-bottom:20px; }
    .nf-page-heading p { font-size:13px; }
    .nf-panel { padding:18px; border-radius:12px; }
    .nf-action-grid,.nf-dashboard-columns { grid-template-columns:1fr; }
    .nf-metrics { gap:10px; margin:18px 0; }
    .nf-metric-link { padding:16px 12px; }
    .nf-metric-link > span { font-size:11px; }
    .nf-metric-link strong { font-size:1.35rem; overflow-wrap:anywhere; }
    .nf-metric-link small { font-size:10px; }
    .nf-workspace .nf-mobile-tabbar { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; inset:auto 0 0; width:100%; min-width:0; max-width:100%; transform:none; border-radius:0; padding:7px 7px max(7px,env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--nf-line); box-shadow:0 -4px 16px #132b5010; z-index:1020; }
    .nf-workspace .nf-mobile-tab { display:flex; align-items:center; flex-direction:column; justify-content:center; gap:4px; min-height:52px; padding:4px 0; color:#75829a; background:transparent; border:0; text-decoration:none; font-size:10px; border-radius:10px; }
    .nf-workspace .nf-mobile-tab.active { color:#255ed8; background:#edf3ff; }
    .nf-workspace .nf-capture-tab .nf-icon { color:#255ed8; }
    .nf-workspace-footer { padding:16px; gap:10px; font-size:10px; }
    .nf-workspace .btn { min-height:44px; }
    .nf-workspace .nf-list-page-size { max-width:170px; }
}
@media print { .nf-sidebar,.nf-workspace-header,.nf-mobile-tabbar,.nf-workspace-footer { display:none!important; } .nf-authenticated .nf-workspace-main { margin:0; } }
@media (prefers-reduced-motion:reduce) { .nf-workspace * { scroll-behavior:auto!important; transition:none!important; } }
.nf-document-cards{display:grid;gap:12px}.nf-document-card{display:flex;align-items:center;justify-content:space-between;gap:16px;color:inherit;text-decoration:none}.nf-document-card p{margin:4px 0 0;color:var(--nf-muted)}.nf-action-row{display:flex;flex-wrap:wrap;align-items:end;gap:16px}.nf-preserve-lines{white-space:pre-wrap}.nf-page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.nf-page-heading p{color:var(--nf-muted);margin:0}
@media(max-width:767px){.nf-document-card{flex-wrap:wrap}.nf-document-card>div{width:100%}.nf-page-heading{align-items:start;flex-wrap:wrap}.nf-action-row>form{max-width:100%}}
@media print{.nf-sidebar,.nf-topbar,.nf-mobile-nav,header,footer,.no-print,.nf-filter-chips{display:none!important}.nf-workspace-main{margin:0!important;padding:0!important}.nf-print-document{border:0!important;box-shadow:none!important}.table-responsive{overflow:visible!important}body{background:#fff!important}}
.nf-purchase-view-switch{display:none}.nf-purchase-editor-form{container-type:inline-size}.nf-workspace .nf-purchase-workspace{grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr)}.nf-purchase-workspace .nf-purchase-fields-main{grid-template-columns:repeat(2,minmax(0,1fr))}
@container(max-width:1100px){.nf-purchase-editor-form .nf-line-table{display:block;min-width:0!important;width:100%}.nf-purchase-editor-form .nf-line-table thead{display:none}.nf-purchase-editor-form .nf-line-table tbody{display:block}.nf-purchase-editor-form .nf-line-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;margin-bottom:16px;border:1px solid #dce3ee;border-radius:12px}.nf-purchase-editor-form .nf-line-table td{display:block;border:0;padding:0;min-width:0}.nf-purchase-editor-form .nf-line-table td::before{content:attr(data-label);display:block;font-size:12px;color:#52627a;margin-bottom:4px}.nf-purchase-editor-form .nf-line-table td:nth-child(1),.nf-purchase-editor-form .nf-line-table td:nth-child(2){grid-column:1/-1}.nf-purchase-editor-form .nf-line-table input{min-width:0!important;width:100%}.nf-purchase-editor-form .nf-purchase-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:540px){.nf-purchase-editor-form .nf-line-table tr{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-purchase-editor-form .nf-purchase-fields{grid-template-columns:1fr}}
@media(max-width:991px){.nf-purchase-view-switch:not([hidden]){display:flex}.nf-workspace .nf-purchase-workspace{grid-template-columns:1fr}.nf-purchase-workspace.nf-purchase-tabs-ready[data-purchase-view="data"] #purchase-document-panel{display:none}.nf-purchase-workspace.nf-purchase-tabs-ready[data-purchase-view="document"] #purchase-data-panel{display:none}.nf-purchase-view-switch button[aria-pressed="true"]{background:#255ed8;color:#fff}}
@media(max-width:767px){.nf-detail-lines thead{display:none}.nf-detail-lines table,.nf-detail-lines tbody{display:block;width:100%}.nf-detail-lines tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;border:1px solid #dce3ee;border-radius:12px;margin-bottom:12px;background:#fff}.nf-detail-lines td{display:block;padding:0;border:0;text-align:left!important;min-width:0}.nf-detail-lines td:first-child{grid-column:1/-1;font-weight:600}.nf-detail-lines td::before{content:attr(data-label);display:block;font-size:11px;color:#52627a}.nf-detail-lines td:last-child{font-weight:700}.nf-workspace .nf-purchase-list tbody tr{display:grid;grid-template-columns:1fr auto;gap:8px;padding:16px;margin-bottom:12px;border:1px solid #dce3ee;border-radius:12px;background:#fff}.nf-workspace .nf-purchase-list tbody td{display:block;padding:0;border:0;font-size:12px;text-align:left!important}.nf-workspace .nf-purchase-list td::before{display:none}.nf-workspace .nf-purchase-list td:nth-child(2){grid-row:1;grid-column:1;font-size:15px;font-weight:650}.nf-workspace .nf-purchase-list td:nth-child(11){grid-row:1;grid-column:2;font-size:15px;font-weight:700}.nf-workspace .nf-purchase-list td:nth-child(3),.nf-workspace .nf-purchase-list td:nth-child(5),.nf-workspace .nf-purchase-list td:nth-child(8),.nf-workspace .nf-purchase-list td:nth-child(9),.nf-workspace .nf-purchase-list td:nth-child(10){display:none}.nf-workspace .nf-purchase-list td:last-child{grid-column:1/-1;text-align:right!important}}
