@import "https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700;800;900&display=swap";:root{--bg:#f5f8fb;--bg-soft:#edf7fc;--card:#fff;--card-soft:#f8fbfd;--primary:#164194;--primary-dark:#0f3275;--primary-soft:#dcecff;--secondary:#009fe3;--secondary-soft:#e0f5ff;--accent:#afca0b;--accent-soft:#f1f8cc;--text:#10233f;--text-soft:#334155;--muted:#64748b;--border:#d9e5ef;--border-strong:#b8c9d8;--error-bg:#fef2f2;--error-border:#fecaca;--error-text:#b91c1c;--shadow-sm:0 8px 20px #16419414;--shadow-md:0 18px 45px #16419424;--radius-sm:12px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at top left, #009fe329, transparent 32%), radial-gradient(circle at bottom right, #afca0b2e, transparent 30%), linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%);color:var(--text);font-family:Raleway,Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button{border:0}.app-page,.page{min-height:100vh;position:relative;overflow-x:hidden}.validation-box{border:1px solid;border-radius:16px;margin-bottom:22px;padding:14px 16px}.validation-box strong{margin-bottom:4px;display:block}.validation-box p{color:#475569;margin:0 0 6px}.validation-box small{color:#64748b}.validation-box.valid{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.validation-box.invalid{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.background-shape{filter:blur(80px)saturate(70%);opacity:.2;pointer-events:none;border-radius:999px;position:fixed}.shape-one{background:var(--secondary);width:320px;height:320px;top:-90px;left:-120px}.shape-two{background:var(--accent);width:360px;height:360px;bottom:-130px;right:-130px}.app-shell{z-index:1;width:min(100%,1400px);margin:0 auto;padding:20px 14px 36px;position:relative}.hero-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);background:#ffffffe6;border:1px solid #d9e5eff2;margin-bottom:20px;padding:22px}.hero-top{justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.brand-logo{align-items:center;min-width:0;display:flex}.brand-logo img{object-fit:contain;filter:drop-shadow(0 4px 8px #1641942e);max-width:190px;height:46px}.status-pill{background:var(--accent-soft);color:#5f7000;white-space:nowrap;border:1px solid #afca0b59;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.82rem;font-weight:800;display:inline-flex}.status-dot{background:var(--accent);border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 4px #afca0b2e}.hero-content{grid-template-columns:1fr;align-items:stretch;gap:18px;display:grid}.hero-copy{min-width:0}.eyebrow{color:var(--secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:.82rem;font-weight:900;display:inline-block}.hero-content h1{max-width:780px;color:var(--primary);letter-spacing:-.055em;margin:0;font-size:clamp(2rem,5vw,3.8rem);font-weight:900;line-height:.98}.hero-content p{max-width:680px;color:var(--muted);margin:14px 0 0;font-size:clamp(.98rem,1.8vw,1.08rem);font-weight:500;line-height:1.7}.hero-info-card{background:linear-gradient(180deg, #fff 0%, var(--card-soft) 100%);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.hero-info-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.82rem;font-weight:800;display:block}.hero-info-value{color:var(--primary);word-break:break-word;font-size:1.12rem;font-weight:800;line-height:1.35;display:block}.content-grid{grid-template-columns:1fr;align-items:start;gap:18px;display:grid}.left-column,.right-column{min-width:0}.card{border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);background:#fffffff0;border:1px solid #d9e5eff2;padding:20px}.section-header{margin-bottom:18px}.section-header h2{color:var(--primary);letter-spacing:-.02em;margin:0 0 6px;font-size:1.2rem;font-weight:900}.section-header p{color:var(--muted);margin:0;font-size:.95rem;font-weight:500;line-height:1.55}.upload-box{background:linear-gradient(180deg, #fff 0%, var(--secondary-soft) 100%);border-radius:var(--radius-lg);cursor:pointer;border:1.8px dashed #009fe38c;padding:18px;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s;display:block}.upload-box:hover{border-color:var(--secondary);background:#eefaff;transform:translateY(-1px);box-shadow:0 12px 24px #009fe324}.upload-box:focus-within{border-color:var(--secondary);outline:3px solid #009fe333}.upload-box input{display:none}.upload-box-content{align-items:center;gap:14px;display:flex}.upload-icon{background:var(--primary-soft);width:54px;height:54px;color:var(--primary);border-radius:18px;flex:0 0 54px;place-items:center;font-size:1.45rem;display:grid}.upload-box-content strong{color:var(--primary);font-size:.98rem;font-weight:800;display:block}.upload-box-content p{color:var(--muted);margin:4px 0 0;font-size:.9rem;font-weight:500;line-height:1.45}.selected-file{border-radius:var(--radius-md);background:var(--card-soft);border:1px solid var(--border);margin-top:14px;padding:14px}.selected-file-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font-size:.76rem;font-weight:900;display:block}.selected-file strong{color:var(--text);word-break:break-word;font-weight:800}.selected-file.muted strong{color:var(--muted);font-weight:600}.actions-row{flex-direction:column;gap:10px;margin-top:16px;display:flex}.primary-btn,.secondary-btn,.history-clear-btn{cursor:pointer;border-radius:14px;min-height:44px;padding:12px 16px;font-weight:900;transition:transform .2s,background .2s,box-shadow .2s,border-color .2s}.primary-btn{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);color:#fff;box-shadow:0 12px 22px #16419440}.primary-btn:hover:not(:disabled){background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);transform:translateY(-1px)}.primary-btn:disabled{opacity:.58;cursor:not-allowed;box-shadow:none}.secondary-btn{color:var(--primary);border:1px solid var(--border);background:#eef5fa}.secondary-btn:hover{background:#e2eef7}.primary-btn:focus-visible,.secondary-btn:focus-visible,.history-clear-btn:focus-visible,.history-item:focus-visible,.field-input:focus-visible{outline-offset:2px;outline:3px solid #009fe33d}.error-box{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:var(--radius-md);margin-top:16px;padding:14px 16px;font-weight:800;line-height:1.45}.form-main-header{margin-bottom:22px}.form-grid{grid-template-columns:1fr;gap:14px;display:grid}.field-group{flex-direction:column;gap:7px;display:flex}.field-label{color:var(--text-soft);letter-spacing:.01em;font-size:.86rem;font-weight:800}.field-input{border:1px solid var(--border);width:100%;min-height:46px;color:var(--text);background:#fff;border-radius:14px;outline:none;padding:12px 14px;font-weight:600;transition:border-color .2s,box-shadow .2s,background .2s}.field-input:hover{border-color:var(--border-strong)}.field-input:focus{border-color:var(--secondary);box-shadow:0 0 0 4px #009fe32e}.items-block-spacing{margin-top:28px}.items-card{border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(180deg, #fff 0%, var(--card-soft) 100%);padding:18px}.items-card-header{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.items-title{color:var(--primary);letter-spacing:-.03em;margin:0;font-size:1.35rem;font-weight:900}.items-subtitle{color:var(--muted);margin:6px 0 0;font-size:.94rem;font-weight:500;line-height:1.55}.items-count-badge{background:var(--primary-soft);width:fit-content;color:var(--primary);white-space:nowrap;border:1px solid #16419429;border-radius:999px;padding:9px 12px;font-size:.84rem;font-weight:900}.empty-items-box,.history-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--card-soft);color:var(--muted);text-align:center;padding:18px;font-weight:700}.items-table-wrapper{border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;background:#fff;width:100%;overflow:auto hidden}.items-table{border-collapse:collapse;table-layout:auto;width:100%;min-width:820px}.items-table thead th{color:var(--primary);text-align:left;text-transform:uppercase;letter-spacing:.055em;border-bottom:1px solid var(--border);background:#f3f8fc;padding:12px;font-size:.78rem;font-weight:900}.items-table tbody td{color:var(--text-soft);border-bottom:1px solid #edf3f8;padding:12px;font-size:.9rem;font-weight:600}.items-table tbody tr:nth-child(2n) td{background:#fcfdff}.items-table tbody tr:hover td{background:#f1faff}.items-table tbody tr:last-child td{border-bottom:none}.col-description{white-space:normal;word-break:break-word;max-width:420px;line-height:1.45}.col-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dynamic-items-table .col-description{width:30%;min-width:240px}.dynamic-items-table th,.dynamic-items-table td{vertical-align:middle}.history-card{margin-top:18px}.history-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.history-clear-btn{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;font-size:.86rem}.history-clear-btn:hover{background:#ffe4e6;border-color:#fda4af}.history-list{flex-direction:column;gap:10px;display:flex}.history-item{text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;background:#fff;width:100%;padding:14px;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s}.history-item:hover{background:#f1faff;border-color:#009fe359;transform:translateY(-1px)}.history-item.active{border-color:var(--secondary);background:var(--secondary-soft);box-shadow:0 0 0 3px #009fe324}.history-item-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.history-file-name{color:var(--primary);word-break:break-word;font-size:.92rem;font-weight:800;line-height:1.35}.history-item-meta{color:var(--muted);justify-content:space-between;gap:12px;margin-top:8px;font-size:.82rem;font-weight:600;display:flex}.history-status{white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:.74rem;font-weight:900}.history-status.processed{background:var(--accent-soft);color:#5f7000}.history-status.error{color:#991b1b;background:#fee2e2}@media (width>=640px){.app-shell{padding:28px 20px 46px}.hero-card{padding:28px}.actions-row{flex-direction:row}.primary-btn,.secondary-btn{flex:1}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.items-card-header{flex-direction:row;justify-content:space-between;align-items:flex-start}}@media (width>=1100px){.content-grid{grid-template-columns:390px minmax(0,1fr);gap:24px}.left-column{position:sticky;top:24px}.hero-content{grid-template-columns:minmax(0,1fr) 280px;gap:24px}.hero-info-card{align-self:end}.card{padding:24px}}@media (width<=420px){.hero-top{flex-direction:column;align-items:flex-start}.status-pill{font-size:.78rem}.upload-box-content{align-items:flex-start}.upload-icon{flex-basis:48px;width:48px;height:48px}}.item-edit-input{color:#1e293b;text-align:right;background:#fff;border:1px solid #dbe4f0;border-radius:10px;outline:none;width:100%;min-width:80px;padding:8px 10px;font-size:.9rem}.item-edit-input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa2e}.sucursal-pending-input{appearance:none;color:#991b1b!important;background:#fff5f5!important;border:2px solid #dc2626!important;font-weight:700!important}.sucursal-pending-input:focus{border-color:#dc2626!important;box-shadow:0 0 0 4px #dc26262e!important}.sucursal-pending-box{background:#fef2f2;border:2px solid #ef4444;border-radius:14px;padding:10px}.sucursal-pending-label{color:#991b1b}.sucursal-pending-message{color:#dc2626;margin-top:7px;font-size:.78rem;font-weight:800;display:block}.send-invoice-section{margin-top:14px}.send-invoice-button{color:#fff;cursor:pointer;background:#1d4ed8;border:none;border-radius:14px;width:100%;padding:14px 24px;font-size:.95rem;font-weight:700;transition:all .2s;box-shadow:0 8px 20px #1d4ed82e}.send-invoice-button:hover{background:#1e40af;transform:translateY(-1px)}.send-invoice-button:disabled{opacity:.7;cursor:not-allowed}.invoice-success-alert{background:#eff6ff;border:1px solid #bfdbfe;border-radius:16px;align-items:center;gap:14px;margin-top:14px;padding:16px 18px;display:flex}.invoice-success-icon{color:#fff;background:#2563eb;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;font-weight:800;display:flex}.invoice-success-title{color:#1e3a8a;font-size:.95rem;font-weight:800}.invoice-success-message{color:#334155;margin-top:2px;font-size:.88rem}.invoice-error-alert{background:#fef2f2;border:1px solid #fecaca;border-radius:16px;align-items:flex-start;gap:14px;margin-top:14px;padding:16px 18px;display:flex}.invoice-error-icon{color:#fff;background:#dc2626;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;font-weight:800;display:flex}.invoice-error-title{color:#991b1b;font-size:.95rem;font-weight:800}.invoice-error-message{color:#7f1d1d;margin-top:4px;font-size:.88rem;line-height:1.45}.field-input-required{background:#fef2f2;border:2px solid #ef4444!important}.field-input-required:focus{box-shadow:0 0 0 4px #ef444426;border-color:#dc2626!important}.history-status.sent{color:#166534;background:#dcfce7}.quick-summary-box{background:#f8fafc;border:1px solid #dbeafe;border-radius:16px;margin-top:14px;margin-bottom:20px;padding:16px 18px}.quick-summary-title{color:#1e3a8a;margin-bottom:12px;font-weight:800}.quick-summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.quick-summary-grid div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.quick-summary-grid span{color:#64748b;margin-bottom:6px;font-size:.78rem;font-weight:700;display:block}.quick-summary-grid strong{color:#0f172a;font-size:.95rem}@media (width<=900px){.quick-summary-grid{grid-template-columns:repeat(2,1fr)}}.processing-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9999;background:#ffffffe0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.processing-modal{text-align:center;background:#fff;border-radius:24px;width:420px;padding:36px;box-shadow:0 20px 60px #00000026}.processing-logo{width:90px;margin-bottom:20px}.processing-modal h2{margin-bottom:10px}.processing-modal p{color:#64748b;margin-bottom:20px}.loader{border:4px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;width:50px;height:50px;margin:auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.processing-message{color:#64748b;margin:10px 0 18px;font-weight:600}.processing-progress{background:#e2e8f0;border-radius:999px;width:100%;height:10px;margin-bottom:22px;overflow:hidden}.processing-progress-fill{background:linear-gradient(90deg,#1d4ed8,#38bdf8);border-radius:999px;height:100%;transition:width .6s}.processing-steps{text-align:left;gap:10px;display:grid}.processing-step{color:#94a3b8;align-items:center;gap:10px;font-size:.82rem;display:flex}.processing-step span{color:#64748b;background:#e2e8f0;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:800;display:flex}.processing-step.active{color:#0f172a;font-weight:700}.processing-step.active span{color:#fff;background:#2563eb}.item-edit-input-error{background:#fef2f2;border:1px solid #dc2626!important}.field-error-message{color:#dc2626;margin-top:4px;font-size:11px}
