:root{--navy-950:#0a1420;--navy-900:#0e1e30;--navy-800:#12263a;--navy-700:#1b3a5c;--navy-600:#2e5b8f;--gold-300:#e3c98f;--gold-400:#d2af6e;--gold-500:#be9957;--gold-600:#a8823f;--ivory:#f1e9da;--text:#1c2b3a;--text-muted:#5b6b7b;--border:#d3dbe3;--surface:#f4f7fa;--dark-bg:#0c1826;--dark-surface:#16283c;--dark-border:#2a4157;--dark-text:#edf2f8;--dark-muted:#9fb0c3;--ok:#1a7f37;--ok-dark:#116329;--danger:#b42318;--warn:#9a6700;color:var(--text);background-color:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-height:100dvh;margin:0}.brand-logo{height:auto;display:block}.login-logo{width:min(20rem,78vw);margin-bottom:.5rem}.client-logo{width:min(15rem,70vw);margin-bottom:.25rem}.header-logo{width:auto;height:2.4rem}.portal-header-name{letter-spacing:.04em;color:var(--ivory);white-space:nowrap;flex-direction:column;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.25;display:flex}.app-shell{text-align:center;background:radial-gradient(120% 90% at 50% 0%, #1a3350 0%, var(--dark-bg) 62%), var(--dark-bg);min-height:100dvh;color:var(--dark-text);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.app-shell h1{color:var(--ivory);letter-spacing:.01em;margin:0;font-weight:600}button{font:inherit;background:var(--navy-700);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.2rem}button:hover:not(:disabled){background:var(--navy-800)}button:disabled{opacity:.6;cursor:default}.link-button{color:var(--navy-700);background:0 0;padding:.25rem .5rem;text-decoration:underline}.link-button:hover:not(:disabled){color:var(--navy-600);background:0 0}.file-button{cursor:pointer;display:inline-block}.file-button:has(input:disabled){opacity:.6;cursor:default}input,select{font:inherit;border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:.55rem .7rem}input:focus,select:focus{outline:2px solid var(--navy-600);outline-offset:-1px}.app-shell button,.camera-screen button{background:linear-gradient(180deg, var(--gold-300) 0%, var(--gold-500) 100%);color:var(--navy-900);font-weight:600}.app-shell button:hover:not(:disabled),.camera-screen button:hover:not(:disabled){background:linear-gradient(180deg, #ecd6a4 0%, var(--gold-400) 100%)}.app-shell .link-button,.camera-screen .link-button{color:var(--gold-300);background:0 0;font-weight:400}.app-shell .link-button:hover:not(:disabled),.camera-screen .link-button:hover:not(:disabled){color:var(--ivory);background:0 0}.app-shell input,.app-shell select{background:var(--dark-surface);border-color:var(--dark-border);color:var(--dark-text)}.app-shell input::placeholder{color:var(--dark-muted)}.app-shell input:focus,.app-shell select:focus{outline-color:var(--gold-400)}.login-form{flex-direction:column;gap:.75rem;width:min(20rem,90vw);display:flex}.error-text{color:var(--danger)}.app-shell .error-text{color:#ffb4ae}.info-text{color:var(--ok)}.warn-text{color:#b54708;font-weight:600}.hint-text{color:var(--text-muted);font-size:.9rem}.app-shell .hint-text{color:var(--dark-muted)}.portal-header{background:linear-gradient(180deg, #16304a 0%, var(--navy-800) 100%);border-bottom:2px solid var(--gold-500);color:var(--ivory);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.portal-header-title{align-items:center;gap:.75rem;min-width:0;display:flex}.portal-header-caption{color:var(--gold-400);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.72rem}.portal-header .link-button{color:var(--gold-300)}.portal-header .link-button:hover:not(:disabled){color:var(--ivory)}.portal-header-user{color:var(--dark-muted);text-align:right;font-size:.9rem}.company-context-bar{background:var(--ivory);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.company-context-bar label{color:var(--navy-700);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.company-context-bar select{min-width:14rem;padding:.3rem;font-weight:400}.company-context-hint{font-size:.8rem}.portal-body{max-width:70rem;margin:0 auto;padding:1rem}.section-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.entity-form{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:.6rem;max-width:28rem;margin:1rem 0;padding:1rem;display:flex}.entity-form label{flex-direction:column;gap:.25rem;font-size:.92rem;display:flex}.checkbox-label{align-items:center;flex-direction:row!important}.checkbox-label input{width:auto}.form-actions{align-items:center;gap:.5rem;display:flex}.inline-form{gap:.5rem;max-width:28rem;margin:1rem 0;display:flex}.entity-table{border-collapse:collapse;width:100%;margin-top:1rem}.entity-table th,.entity-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem;font-size:.92rem}.entity-table th{color:var(--text-muted);font-weight:600}.inactive-row{opacity:.55}.row-actions{white-space:nowrap}.big-action{border-radius:12px;min-width:min(18rem,85vw);padding:1rem 2.5rem;font-size:1.25rem}.client-documents{text-align:left;width:min(24rem,92vw)}.client-documents h2{color:var(--gold-300);margin:1rem 0 .25rem;font-size:1rem;font-weight:600}.client-documents ul{margin:0;padding:0;list-style:none}.client-documents li{border-bottom:1px solid var(--dark-border);justify-content:space-between;gap:1rem;padding:.4rem 0;display:flex}.status-banner{border-radius:10px;width:min(24rem,92vw);padding:.75rem 1rem;font-weight:600}.status-ok{color:var(--ok-dark);border:1px solid var(--ok);background:#dafbe1}.app-shell .status-ok{color:#7ee2a8;background:#10321f;border-color:#2ea043}.status-error{color:var(--danger);border:1px solid var(--danger);background:#ffebe9}.app-shell .status-error{color:#ffb4ae;background:#3b1a1a;border-color:#e5534b}.camera-screen{background:var(--dark-bg);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100dvh;padding:1rem;display:flex}.camera-video{background:#000;border-radius:12px;width:min(100%,32rem);max-height:70dvh}.camera-hint{color:var(--dark-text);margin:0}.camera-controls{align-items:center;gap:1rem;display:flex}.camera-cancel{color:var(--dark-muted)}.preview-image{object-fit:contain;border:1px solid var(--dark-border);background:var(--dark-surface);border-radius:10px;width:min(92vw,24rem);max-height:55dvh}.page-strip{flex-wrap:wrap;justify-content:center;gap:.6rem;width:min(92vw,24rem);display:flex}.page-thumb{flex-direction:column;align-items:center;gap:.15rem;display:flex}.page-thumb img{object-fit:cover;border:1px solid var(--dark-border);background:var(--dark-surface);border-radius:6px;width:4.5rem;height:6rem}.page-thumb small{color:var(--ivory)}.payment-question{color:var(--ivory);margin:.5rem 0 0;font-weight:600}.payment-row{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.payment-button{flex:6.5rem;min-width:0;padding:1rem .5rem;font-size:1.1rem}.secondary-action{color:var(--gold-300);border:2px solid var(--gold-500);background:0 0}.app-shell .secondary-action{color:var(--gold-300);background:0 0;font-weight:600}.app-shell .secondary-action:hover:not(:disabled){color:var(--gold-300);background:#be995724}.doc-view-button{white-space:nowrap;padding:.1rem .4rem}.version-text{color:var(--text-muted);margin:.5rem 0 0;font-size:.75rem}.app-shell .version-text{color:#5d7186}.tab-nav{border-bottom:1px solid var(--border);background:#fff;gap:.25rem;padding:0 1rem;display:flex}.tab-nav button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;padding:.55rem .9rem;font-size:.95rem}.tab-nav button:hover:not(:disabled){color:var(--navy-700);background:0 0}.tab-nav button.tab-active{color:var(--navy-700);border-bottom-color:var(--gold-500);font-weight:600}.filters-row{flex-wrap:wrap;gap:1rem;margin:.75rem 0;display:flex}.filters-row label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.filters-row select{min-width:12rem;padding:.3rem}.new-document-row td{font-weight:600}.doc-meta{color:var(--text-muted);margin:.25rem 0 1rem}.doc-detail{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}@media (width<=800px){.doc-detail{grid-template-columns:1fr}}.doc-file-panel{border:1px solid var(--border);background:#fff;border-radius:6px;overflow:hidden}.doc-file-panel header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.9rem;display:flex}.doc-file-panel p{padding:.75rem}.doc-file-image{width:100%;height:auto;display:block}.doc-file-frame{border:none;width:100%;height:75vh;display:block}.portal-version{padding:0 1rem .75rem}.extraction-panel{padding:.5rem .75rem .75rem}.extraction-table{border-collapse:collapse;width:100%;font-size:.9rem}.extraction-table th{text-align:left;color:var(--text-muted);white-space:nowrap;vertical-align:top;width:1%;padding:.3rem .75rem .3rem 0;font-weight:500}.extraction-table td{padding:.3rem 0}.extraction-table .missing-value{color:#cf222e}.invoice-items{margin-top:.75rem}.invoice-items-table{border-collapse:collapse;width:100%;font-size:.85rem}.invoice-items-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:.25rem .5rem .25rem 0;font-weight:500}.invoice-items-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:.25rem .5rem .25rem 0}.invoice-items-table .num{text-align:right;white-space:nowrap}.field-input{border:1px solid var(--border);border-radius:6px;width:100%;max-width:20rem;padding:.25rem .4rem;font-family:inherit;font-size:.9rem}.field-input:focus{outline:2px solid var(--navy-600);outline-offset:-1px}.field-input-missing{background:#fff5f5;border-color:#cf222e}.review-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.confirm-button{background:var(--ok);color:#fff;border-color:var(--ok)}.confirm-button:hover:not(:disabled){background:var(--ok-dark)}.confirm-button:disabled{opacity:.55}.warn-badge{color:var(--warn);white-space:nowrap;cursor:help;margin-left:.4rem;font-size:.8rem}.origin-badge{cursor:help;margin-left:.3rem;font-size:.8rem}.doc-file-clickable{cursor:zoom-in}.doc-pdf-preview{cursor:zoom-in;position:relative}.doc-pdf-overlay{position:absolute;inset:0}.ares-results{flex-direction:column;align-items:flex-start;gap:.35rem;margin:.5rem 0;display:flex}.ares-result{text-align:left;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-radius:8px;padding:.45rem .6rem;font-size:.88rem}.ares-result:hover:not(:disabled){border-color:var(--gold-500);background:#ede9df}.ares-address{color:var(--text-muted)}.trace-line{word-break:break-word;color:#6e7781;max-width:min(24rem,92vw);font-size:.72rem}.app-shell .trace-line{color:#5d7186}.customer-check-block{border:1px solid var(--warn);color:#4d2d00;background:#fff8c5;border-radius:10px;margin:.5rem 0;padding:.75rem 1rem}.customer-check-block p{margin:0 0 .5rem}.customer-check-block-confirmed{border-color:var(--ok);color:var(--ok-dark);background:#dafbe1}.queue-chips{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 .25rem;display:flex}.queue-chip{border:1px solid var(--warn);color:#4d2d00;background:#fff8c5;border-radius:999px;padding:.35rem .85rem;font-size:.9rem;font-weight:600}.queue-chip:hover:not(:disabled){filter:brightness(.97)}.queue-chip-active{background:var(--warn);color:#fff}.payment-origin{color:var(--text-muted);font-size:.85rem}.payment-origin-guessed{color:#b54708;font-weight:600}.payment-select{font:inherit;padding:.1rem .3rem}.field-block{margin:.75rem 0}.field-block>.field-label{color:var(--text-muted);margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.segmented{border:1px solid var(--border);vertical-align:middle;background:#fff;border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{font:inherit;color:var(--text);cursor:pointer;white-space:nowrap;background:#fff;border:none;border-radius:0;padding:.4rem .85rem;font-size:.9rem}.segmented button+button{border-left:1px solid var(--border)}.segmented button:hover:not(:disabled):not(.is-active){background:var(--surface)}.segmented button.is-active{background:var(--navy-700);color:#fff;font-weight:600}.segmented button:disabled{cursor:default;opacity:.55}.segmented-readonly{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:.25rem .7rem;font-size:.9rem;display:inline-block}.direction-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:.1rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.direction-received{background:var(--surface);color:var(--text-muted);border-color:var(--border)}.direction-issued{color:var(--gold-600);border-color:var(--gold-400);background:#fff6e0}.trash-picker{border:1px solid var(--warn);background:#fff8c5;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.35rem .5rem;display:inline-flex}.trash-picker button{padding:.2rem .5rem;font-size:.85rem}.trash-row{background:#fff3f2}.trash-table td{vertical-align:top}.checkbox-row{align-items:center;gap:.5rem;margin:.75rem 0;display:flex}.modal-backdrop{z-index:100;background:#0a14208c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-panel{color:var(--text);background:#fff;border-radius:12px;width:min(28rem,92vw);padding:1.25rem 1.5rem;box-shadow:0 12px 40px #0a142059}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.vat-flags{background:var(--surface);border-radius:8px;margin:.5rem 0;padding:.5rem .75rem}.vat-flag-checkbox{align-items:center;gap:.5rem;margin-bottom:.35rem;font-weight:600;display:flex}.vat-flags p{margin:.35rem 0 0}.export-error-documents{margin:.25rem 0 0;padding-left:1.25rem}.client-summary{text-align:left;width:min(24rem,92vw)}.summary-period{color:var(--ivory);justify-content:space-between;align-items:center;gap:.5rem;font-size:1.05rem;display:flex}.summary-period .link-button{padding:0 .5rem;font-size:1.4rem;line-height:1}.summary-scope{gap:1rem;margin:.25rem 0 .75rem;display:flex}.summary-scope .link-button.is-active{color:var(--gold-300);text-decoration:underline}.summary-headline{color:var(--dark-text);margin:.5rem 0 0;font-size:1.15rem;line-height:1.45}.summary-headline strong{color:var(--gold-300);font-size:1.35rem}.summary-usual{color:var(--dark-muted);margin:.15rem 0 .5rem;font-size:.95rem}.summary-pending{margin:.5rem 0;font-size:.95rem}.summary-empty{margin:1rem 0}.summary-block{border-top:1px solid var(--dark-border);margin-top:1.1rem;padding-top:.75rem}.summary-block h3{letter-spacing:.04em;text-transform:uppercase;color:var(--gold-300);margin:0 0 .35rem;font-size:.85rem;font-weight:600}.summary-amount{color:var(--dark-text);margin:0;font-size:1.6rem;font-weight:700}.summary-suppliers{margin:0;padding:0;list-style:none}.summary-suppliers li{border-bottom:1px solid var(--dark-border);justify-content:space-between;gap:.75rem;padding:.35rem 0;display:flex}.summary-suppliers .supplier-name{color:var(--dark-text);overflow-wrap:anywhere}.summary-suppliers .supplier-amount{white-space:nowrap;color:var(--dark-text);font-weight:600}.summary-suppliers .supplier-amount em{color:var(--dark-muted);font-style:normal;font-weight:400}.summary-year-nav{justify-content:space-between;margin-top:.5rem;display:flex}.summary-disclaimer{width:min(24rem,92vw);color:var(--dark-muted);text-align:left;margin:1rem 0 0;font-size:.85rem;line-height:1.5}.summary-entry{color:var(--gold-300);margin-top:1.25rem;font-size:1rem}.summary-topbar{width:min(24rem,92vw);color:var(--ivory);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.summary-months{margin:0;padding:0;list-style:none}.app-shell .month-row{width:100%;color:var(--dark-muted);text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.6rem;padding:.3rem .25rem;font-size:.9rem;display:flex}.app-shell .month-row.is-active{color:var(--dark-text);background:#d2af6e24}.month-row-name{flex:0 0 2.6rem}.month-row-track{background:#ffffff12;border-radius:4px;flex:auto;height:.65rem;overflow:hidden}.month-row-fill{background:#4478b8;border-radius:4px;min-width:0;height:100%;display:block}.app-shell .month-row.is-active .month-row-fill{background:var(--gold-400)}.month-row-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--dark-text);flex:0 0 2.8rem;font-weight:600}.app-shell .month-row.is-active .month-row-count{color:var(--gold-300)}
