/* Facturador — estilos */
* { box-sizing: border-box; }
body {
    margin: 0; font-family: -apple-system, "Segoe UI", Roboto, sans-serif;
    background: #f2f4f7; color: #1c2430; font-size: 15px;
}
main { max-width: 1000px; margin: 0 auto; padding: 1rem; }
h1 { font-size: 1.5rem; margin: .8rem 0; }
h2 { font-size: 1.1rem; margin: .2rem 0 .8rem; }
a { color: #0a5ad4; }
small, .hint { color: #5a6675; }

/* Nav */
.topnav {
    display: flex; align-items: center; gap: .9rem; flex-wrap: wrap;
    background: #14243d; color: #fff; padding: .55rem 1rem;
}
.topnav .brand { font-weight: 700; margin-right: .5rem; }
.topnav a { color: #c7d4e8; text-decoration: none; padding: .25rem .4rem; border-radius: 6px; }
.topnav a.act, .topnav a:hover { color: #fff; background: rgba(255,255,255,.12); }
.topnav .spacer { flex: 1; }
.topnav .salir { color: #ffb3b3; }
.topnav select { padding: .25rem; border-radius: 6px; border: none; }
.empresa-tag { color: #9fd6ff; font-weight: 600; }

/* Cards y formularios */
.card {
    background: #fff; border: 1px solid #dde3ec; border-radius: 10px;
    padding: 1rem 1.2rem; margin: 0 0 1rem;
}
label { display: block; margin: 0 0 .7rem; font-weight: 600; font-size: .88rem; }
label input, label select, label textarea {
    display: block; width: 100%; margin-top: .25rem; padding: .5rem .6rem;
    border: 1px solid #c4cdd9; border-radius: 7px; font-size: .95rem; font-weight: 400;
    background: #fff;
}
label.radio { display: inline-flex; align-items: center; gap: .35rem; margin-right: 1.2rem; font-weight: 500; }
label.radio input { width: auto; display: inline; margin: 0; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }
@media (max-width: 640px) { .grid2 { grid-template-columns: 1fr; } }
fieldset { border: 1px solid #dde3ec; border-radius: 8px; margin: 0 0 1rem; padding: .8rem 1rem; }
legend { font-weight: 700; font-size: .9rem; padding: 0 .4rem; }
.lbl { font-weight: 600; font-size: .88rem; display: block; margin-bottom: .25rem; }
.inline-form { display: inline; }
.filtros { display: flex; gap: 1rem; align-items: flex-end; flex-wrap: wrap; }
.filtros label { margin: 0; }
.botonera { display: flex; gap: .6rem; margin-top: .4rem; }
.cuit-row { display: flex; gap: .5rem; margin-top: .25rem; }
.cuit-row input { margin-top: 0; }

/* Botones */
.btn {
    display: inline-block; padding: .5rem .9rem; border: 1px solid #b9c3d2; border-radius: 7px;
    background: #fff; color: #1c2430; font-size: .92rem; cursor: pointer; text-decoration: none;
}
.btn:hover { background: #eef2f8; }
.btn-primary { background: #0a5ad4; border-color: #0a5ad4; color: #fff; }
.btn-primary:hover { background: #0947a8; }
.btn-danger { border-color: #d43a3a; color: #b02323; }
.btn-danger:hover { background: #fdecec; }
.btn-lg { font-size: 1.05rem; padding: .7rem 1.4rem; }
.btn-s { padding: .25rem .55rem; font-size: .82rem; }
.btn-x { padding: .1rem .5rem; color: #b02323; border-color: #e3b3b3; }
.btn-block { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* Tablas */
.tabla { width: 100%; border-collapse: collapse; }
.tabla th, .tabla td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid #e7ebf2; vertical-align: middle; }
.tabla th { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: #5a6675; }
.tabla .num, table .num { text-align: right; }
.tabla .vacio { color: #8a94a5; text-align: center; padding: 1.4rem; }
.acciones { white-space: nowrap; display: flex; gap: .35rem; align-items: center; }

/* Ítems de factura */
table.items { width: 100%; border-collapse: collapse; margin-bottom: .6rem; }
table.items th, table.items td { padding: .25rem .35rem; }
table.items input { width: 100%; padding: .45rem .55rem; border: 1px solid #c4cdd9; border-radius: 6px; }
.w-cant { max-width: 90px; }
.w-precio { max-width: 140px; }
.total-linea { text-align: right; font-size: 1.25rem; font-weight: 800; margin-top: .6rem; }
.letra-preview { font-size: 1.15rem; background: #eef4ff; border: 1px solid #bcd2f7; border-radius: 8px; padding: .5rem .8rem; }
.letra-preview b { font-size: 1.5rem; }

/* Tags y flashes */
.tag { display: inline-block; padding: .12rem .5rem; border-radius: 20px; font-size: .78rem; font-weight: 600; }
.tag-ok { background: #e0f4e4; color: #14691f; }
.tag-anulada { background: #fde5e5; color: #a11515; }
.tag-nc { background: #fff1d8; color: #8a5a00; }
.tag-ri { background: #e3ecfb; color: #123d80; }
.tag-monotributo { background: #e8e3fb; color: #3d2694; }
.tag-exento { background: #e0f4f2; color: #0d5f57; }
.tag-cf { background: #eef0f3; color: #444e5c; }
.tag-homo { background: #ffd34d; color: #4d3a00; }
.flash { padding: .6rem .9rem; border-radius: 8px; margin: 0 0 .8rem; }
.flash-ok { background: #e0f4e4; color: #14691f; }
.flash-error { background: #fde5e5; color: #a11515; }
.flash-warn { background: #fff1d8; color: #8a5a00; }
.resumen { margin: .1rem 0 .8rem; }

/* Login */
.login-body { display: flex; min-height: 100vh; align-items: center; justify-content: center; background: #14243d; }
.login-card {
    background: #fff; padding: 2rem; border-radius: 12px; width: min(360px, 92vw);
    box-shadow: 0 12px 40px rgba(0,0,0,.35);
}
.login-card h1 { text-align: center; margin: 0 0 1.2rem; }
