:root{--bg: #f6f7fb;--panel: #ffffff;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--primary: #2563eb;--primaryHover: #1d4ed8;--danger: #b91c1c;--success: #047857;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4;font-weight:400;color:var(--text);background-color:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow-x:hidden;-webkit-overflow-scrolling:touch}#root{width:100%;min-height:100%}.app{width:100%;padding:24px 16px}.appHeader{max-width:900px;margin:12px auto 16px}.appTitle{margin:0 0 4px;font-size:1.4rem;font-weight:700}.appSubtitle{margin:0;color:var(--muted);font-size:.95rem}.appMain{max-width:900px;margin:0 auto}.form{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.section{padding:12px 0;border-top:1px solid var(--border)}.section:first-child{border-top:0;padding-top:0}.sectionTitle{margin:0 0 10px;font-size:1rem}.grid{display:grid;grid-template-columns:1fr;gap:12px}.grid>*{min-width:0}@media(min-width:720px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.field{display:flex;flex-direction:column;gap:6px}.fieldFull{grid-column:1 / -1}.fieldLabel{font-size:.9rem;color:var(--text)}.required{color:var(--danger);margin-left:4px}.input,.select{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:.95rem;background:#fff;color:var(--text)}.input:focus,.select:focus,.file:focus{outline:3px solid rgba(37,99,235,.15);border-color:#2563eb80}.file{width:100%;padding:10px 0}.hint{font-size:.85rem;color:var(--muted)}.checkboxRow{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--text)}.button{width:100%;border:0;border-radius:10px;padding:12px 14px;font-size:1rem;font-weight:600;background:var(--primary);color:#fff;cursor:pointer}.button:hover{background:var(--primaryHover)}.button:disabled{opacity:.7;cursor:not-allowed}.alert{margin-top:12px;margin-bottom:12px;border-radius:10px;padding:10px 12px;border:1px solid var(--border);font-size:.95rem}.alertSuccess{border-color:#04785759;background:#0478570f;color:var(--success)}.alertError{border-color:#b91c1c59;background:#b91c1c0f;color:var(--danger)}.fineprint{margin:10px 0 0;color:var(--muted);font-size:.85rem;text-align:center}.ui-card{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:12px}.ui-card__header{padding:14px 16px 0}.ui-card__title{margin:0;font-size:1rem;font-weight:700}.ui-card__content{padding:12px 16px 16px}.ui-label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text);min-width:0}.ui-input,.ui-select{width:100%;max-width:100%;min-width:0;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:.95rem;background:#fff;color:var(--text)}.ui-input:focus,.ui-select:focus{outline:3px solid rgba(37,99,235,.15);border-color:#2563eb80}.ui-input[readonly]{background:#e2e8f059}.ui-button{width:100%;border:0;border-radius:10px;padding:12px 14px;font-size:1rem;font-weight:600;background:var(--primary);color:#fff;cursor:pointer}.ui-button:hover{background:var(--primaryHover)}.ui-button:disabled{opacity:.7;cursor:not-allowed}.ui-button--secondary{background:#0f172a}.ui-button--secondary:hover{background:#111c33}.ui-button--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.ui-button--ghost:hover{background:#0f172a0a}.ui-button--sm{padding:10px 12px;font-size:.95rem}.ui-alert{border-radius:10px;padding:12px;border:1px solid var(--border);background:#fff;color:var(--text)}.ui-alert--success{border-color:#04785759;background:#0478570f}.ui-alert--destructive{border-color:#b91c1c59;background:#b91c1c0f}.ui-alert__title{margin:0 0 4px;font-weight:700}.ui-alert__description{margin:0;color:var(--muted)}.ui-help{font-size:.85rem;color:var(--muted)}.ui-error{font-size:.85rem;color:var(--danger)}.ui-invalid .ui-input,.ui-invalid .ui-select,.ui-invalid .invoiceDropzone{border-color:#b91c1c8c;box-shadow:0 0 0 4px #b91c1c1f}.ui-invalid input[type=checkbox]{outline:3px solid rgba(185,28,28,.18);outline-offset:2px;border-radius:4px}.ui-button--disabled,.ui-button[aria-disabled=true]{opacity:.65;cursor:not-allowed}.ui-button--attention{box-shadow:0 0 0 4px #b91c1c24}.ui-spinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;display:inline-block;vertical-align:-2px;margin-right:8px;animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.invoiceFileInput{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.invoiceDropzone{border:1px dashed rgba(100,116,139,.5);background:#e2e8f033;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:12px}.invoiceDropzoneTop{display:flex;gap:12px;align-items:center}.invoiceIcon{width:34px;height:34px;border-radius:10px;background:#2563eb1f;color:var(--primary);display:grid;place-items:center;font-size:16px;font-weight:700}.invoiceText{display:flex;flex-direction:column;gap:2px;min-width:0}.invoiceTitle{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoicePrimaryActions{display:flex;flex-direction:column;gap:8px;align-items:center}.invoicePrimaryActions .ui-button{width:min(420px,100%)}.invoiceClearAll{width:fit-content;align-self:center}.invoiceActions{display:flex;gap:8px;flex-wrap:wrap}.invoiceActions .ui-button{width:auto}.invoiceList{display:flex;flex-direction:column;gap:8px}.invoiceListItem{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(226,232,240,.9);background:#ffffffb3;border-radius:10px;padding:10px}.invoiceListName{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.invoiceRemove{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:10px;padding:8px 10px;font-size:.9rem;cursor:pointer}.invoiceRemove:hover{background:#0f172a0a}.serialInputWrap{position:relative}.serialInput{padding-right:52px}.serialScanButton{position:absolute;top:0;right:0;bottom:0;width:48px;padding:0;display:grid;place-items:center;border-radius:0 10px 10px 0}.ui-input[type=date]{display:block;width:100%;max-width:100%;min-width:0;appearance:none;-webkit-appearance:none;font-family:inherit;font-size:.95rem;font-weight:400}.scannerOverlay{position:fixed;inset:0;background:#0f172a8c;display:grid;place-items:center;padding:16px;z-index:50}.scannerPanel{width:min(560px,100%);background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px}.scannerHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.scannerTitle{font-weight:700}.scannerClose{width:auto}.scannerVideo{width:100%;border-radius:12px;border:1px solid var(--border);background:#000;aspect-ratio:4 / 3;object-fit:cover}@media(max-width:480px){.app{padding:16px 12px}.form{padding:12px}.ui-card__header{padding:12px 12px 0}.ui-card__content{padding:10px 12px 12px}.invoiceClearAll{width:min(420px,100%);align-self:center}.invoiceActions{display:grid;grid-template-columns:1fr}.invoiceActions .ui-button{width:100%}.invoiceListItem{flex-direction:column;align-items:stretch}.invoiceListName{white-space:normal}}
