:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #0f172a;--color-text-muted: #64748b;--color-primary: #1d4ed8;--color-primary-contrast: #ffffff;--color-border: #e2e8f0;--color-danger: #b91c1c;--nav-height: 3.5rem}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5}a{color:var(--color-primary)}.layout{min-height:100dvh;display:flex;flex-direction:column}.layout__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.layout__title{font-weight:700}.layout__logout{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);border-radius:.5rem;padding:.375rem .75rem;font-size:.875rem;cursor:pointer}.layout__main{flex:1;padding:1rem;padding-bottom:calc(var(--nav-height) + 1rem + env(safe-area-inset-bottom))}.layout__nav{position:fixed;inset-inline:0;bottom:0;height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:var(--color-surface);border-top:1px solid var(--color-border)}.layout__nav-link{flex:1;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:.75rem;color:var(--color-text-muted)}.layout__nav-link--active{color:var(--color-primary);font-weight:600;box-shadow:inset 0 2px 0 var(--color-primary)}@media(min-width:48rem){.layout__nav{position:static;order:-1;height:auto;padding-bottom:0;border-top:none;border-bottom:1px solid var(--color-border);justify-content:flex-start;gap:.5rem;padding-inline:1rem}.layout__nav-link{flex:none;padding:.75rem 1rem;font-size:.875rem}.layout__main{padding-bottom:1rem;max-width:64rem;width:100%;margin-inline:auto}}.page{max-width:40rem;margin-inline:auto}.page-loading{padding:2rem 1rem;text-align:center;color:var(--color-text-muted)}.status-badge{display:inline-block;padding:.125rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600}.status-badge--creada{background:#dbeafe;color:#1e40af}.status-badge--aceptada{background:#fef3c7;color:#92400e}.status-badge--pagada{background:#dcfce7;color:#166534}.offline-banner{background:#b91c1c;color:#fff;text-align:center;padding:.5rem 1rem;font-size:.875rem}.dialog-overlay{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:flex-end;justify-content:center;padding:1rem;z-index:50}@media(min-width:48rem){.dialog-overlay{align-items:center}}.dialog{background:var(--color-surface);border-radius:.75rem;padding:1.25rem;width:100%;max-width:24rem}.dialog__title{margin:0 0 .5rem;font-size:1.125rem}.dialog__message{margin:0 0 1rem;color:var(--color-text-muted)}.dialog__actions{display:flex;justify-content:flex-end;gap:.5rem}.dialog__cancel,.dialog__confirm{border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;cursor:pointer}.dialog__cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.dialog__confirm{border:none;background:var(--color-danger);color:#fff}.dialog__afectados{margin:0 0 1rem;padding-left:1.25rem;color:var(--color-text);font-size:.875rem}.catalogo-seccion{margin-bottom:1.5rem}.catalogo-seccion__titulo{margin:0 0 .5rem;font-size:1.125rem}.catalogo-seccion__form{display:flex;gap:.5rem;margin-bottom:.75rem}.catalogo-seccion__form .form__input{flex:1;min-width:0}.catalogo-seccion__lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.catalogo-seccion__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-surface)}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.btn{border-radius:.5rem;padding:.625rem 1rem;font-size:.9375rem;cursor:pointer;border:1px solid transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-primary-contrast);border:none}.btn--secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn--danger{background:var(--color-danger);color:#fff;border:none}.btn--small{padding:.375rem .75rem;font-size:.8125rem}.offline-hint{font-size:.75rem;color:var(--color-text-muted)}.form{display:flex;flex-direction:column;gap:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1rem;margin-bottom:1rem}.form__title{margin:0;font-size:1.0625rem}.form__field{display:flex;flex-direction:column;gap:.25rem}.form__label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted)}.form__input,.form__select,.form__textarea{border:1px solid var(--color-border);border-radius:.5rem;padding:.625rem .75rem;font-size:1rem;font-family:inherit;background:var(--color-surface);color:var(--color-text);width:100%}.form__input:focus,.form__select:focus,.form__textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.form__actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.form-error{background:#fef2f2;border:1px solid #fecaca;color:var(--color-danger);border-radius:.5rem;padding:.625rem .75rem;font-size:.875rem}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.card-list{display:flex;flex-direction:column;gap:.75rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1rem}.card__header{display:flex;align-items:center;gap:.75rem}.card__title{margin:0;font-size:1rem}.card__meta{margin:.25rem 0 0;font-size:.8125rem;color:var(--color-text-muted)}.card__actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.card__logo{width:3rem;height:3rem;object-fit:contain;border-radius:.375rem;border:1px solid var(--color-border);background:#fff;flex-shrink:0}.empty-state{text-align:center;color:var(--color-text-muted);padding:2rem 1rem}.logo-upload{display:flex;flex-direction:column;gap:.5rem}.logo-upload__preview{width:5rem;height:5rem;object-fit:contain;border:1px solid var(--color-border);border-radius:.5rem;background:#fff}.logo-upload__actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}@media(min-width:48rem){.filters{flex-direction:row}.filters .form__input{flex:1}.filters .form__select{width:auto;flex:0 0 auto;max-width:45%}}.picker{position:relative}.picker__results{position:absolute;inset-inline:0;top:100%;z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;margin-top:.25rem;max-height:21rem;overflow-y:auto;list-style:none;padding:.25rem;box-shadow:0 8px 24px #0f172a1f}.picker__option{width:100%;text-align:left;background:none;border:none;border-radius:.375rem;padding:.625rem .75rem;cursor:pointer;font-size:1rem;display:flex;flex-direction:column;gap:.125rem;color:var(--color-text)}.picker__option:hover,.picker__option:focus-visible{background:var(--color-bg)}.picker__option-meta{font-size:.8125rem;color:var(--color-text-muted)}.picker__empty{padding:.75rem;font-size:.875rem;color:var(--color-text-muted)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-card{width:100%;max-width:24rem}.auth-card h1{margin-top:0}.auth-switch{text-align:center;font-size:.875rem;color:var(--color-text-muted)}.editor{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem;margin:0;min-width:0}.editor__title{font-size:.8125rem;font-weight:600;color:var(--color-text-muted);padding-inline:.25rem}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-surface)}.items-table{width:100%;border-collapse:collapse;font-size:.875rem}.items-table th,.items-table td{padding:.375rem .5rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.items-table th{font-size:.75rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.items-table tr:last-child td{border-bottom:none}.items-table .num{text-align:right;white-space:nowrap}.items-table .form__input{padding:.375rem .5rem;font-size:.9375rem}.items-table .input--cant{width:4.5rem}.items-table .input--precio{width:6.5rem}.items-table .input--desc{min-width:12rem}.items-table .input--area{min-width:10rem}.items-table__actions{display:flex;gap:.25rem}.extra-row{display:flex;gap:.5rem;align-items:center}.extra-row .input--pct{width:6rem;flex-shrink:0}.readonly-notice{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:.5rem;padding:.625rem .75rem;font-size:.875rem}.detail-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.btn--whatsapp{background:#128c7e;color:#fff;border:none;text-decoration:none;display:inline-flex;align-items:center}.preview-doc{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.preview-doc__header{display:flex;gap:.75rem;align-items:flex-start}.preview-doc__logo{width:4.5rem;height:4.5rem;object-fit:contain;border:1px solid var(--color-border);border-radius:.5rem;background:#fff;flex-shrink:0}.preview-doc__empresa p{margin:0;font-size:.8125rem;color:var(--color-text-muted)}.preview-doc__empresa-nombre{margin:0;font-size:1.125rem}.preview-doc__title{margin:0;font-size:1rem;text-align:center;letter-spacing:.02em}.preview-doc__fecha{margin:0;font-size:.875rem;text-align:right}.preview-doc__cliente{margin:0;font-size:.875rem;font-weight:600}.preview-doc__table{width:100%;border-collapse:collapse;font-size:.8125rem}.preview-doc__table th,.preview-doc__table td{padding:.375rem .5rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top}.preview-doc__table th{font-size:.75rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.preview-doc__table tr:last-child td{border-bottom:none}.preview-doc__table .num{text-align:right;white-space:nowrap}.preview-doc__seccion th{background:#eee;text-align:left}.preview-doc__totals{align-self:flex-end;min-width:min(100%,18rem);display:flex;flex-direction:column;gap:.125rem}.preview-doc__totals p{margin:0;display:flex;justify-content:space-between;gap:1rem;font-size:.875rem}.preview-doc__grand-total{border-top:2px solid var(--color-text);padding-top:.25rem;font-weight:700;font-size:1rem!important}.preview-doc__obs{margin:0;font-size:.875rem;color:var(--color-text-muted);border-top:1px solid var(--color-border);padding-top:.5rem}.stat-grid{display:grid;grid-template-columns:1fr;gap:.75rem;margin:1rem 0}@media(min-width:30rem){.stat-grid{grid-template-columns:1fr 1fr}}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.25rem}.stat-card__label{margin:0;font-size:.8125rem;font-weight:600;color:var(--color-text-muted)}.stat-card__value{font-size:1.25rem;font-weight:700}.estado-counts{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.estado-count{display:flex;align-items:center;gap:.5rem}.estado-count__value{font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums}.ingresos-chart{margin-top:.75rem;width:100%}
