/* Solparquet Gestión · 5/5 PANTALLAS CONCRETAS: login, calendario, editor de líneas, fotos, impresión.
 * Orden de carga (helper estilos() en app/Core/helpers.php): tokens.css → base.css → layout.css → components.css → app.css.
 * Identidad tomada de solparquet.com. Tokens y componentes: ver tokens.css / components.css y docs/12-DISENO.md.
 */

/* Fotos */
.photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: var(--s-2) }
.photos a { display: block; aspect-ratio: 1; border-radius: 10px; overflow: hidden; border: 1px solid var(--line); background: var(--cream-2) }
.photos img { width: 100%; height: 100%; object-fit: cover; display: block }

/* Editor de líneas (presupuestos, facturas, partes) */
.lines { width: 100% }
.lines input, .lines select { min-height: 40px; padding: .35rem .5rem }
.lines select { padding-right: 2rem; background-position: right .5rem center }
.totals { margin-left: auto; max-width: 380px }
.totals div { display: flex; justify-content: space-between; padding: .25rem 0; font-variant-numeric: tabular-nums }
.totals .grand { font: 700 1.25rem var(--font-head); border-top: 2px solid var(--ink); margin-top: .35rem; padding-top: .5rem }

/* Calendario */
.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden }
.cal .h { background: var(--surface-2); padding: .4rem; text-align: center; font: 600 .75rem var(--font-head); text-transform: uppercase; color: var(--ink-soft) }
.cal .d { background: var(--paper); min-height: 96px; padding: .3rem; font-size: .8rem }
.cal .d.out { background: var(--cream) } .cal .d.today { outline: 2px solid var(--terra-600); outline-offset: -2px }
.cal .d .n { font-weight: 700; color: var(--ink-soft) }
.cal .ev { display: block; margin-top: 2px; padding: 1px 5px; border-radius: 5px; background: var(--terra-tint); color: var(--terra-700); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .75rem }
.cal .ev.visita { background: var(--info-bg); color: var(--info-ink) } .cal .ev.conflicto { background: var(--err-bg); color: var(--err-ink) }
@media (max-width: 720px) { .cal .d { min-height: 64px } .cal .ev { font-size: .68rem } }

/* Entrar */
.loginwrap { min-height: 100vh; display: grid; place-items: center; padding: var(--s-4); background: radial-gradient(1200px 600px at 10% -10%, var(--terra-soft) 0%, rgba(222, 125, 88, 0) 60%), linear-gradient(160deg, var(--terra) 0%, var(--terra-600) 100%) }
.logincard { background: var(--paper); border-radius: var(--r-lg); padding: var(--s-8) var(--s-6); width: 100%; max-width: 420px; box-shadow: 0 24px 60px rgba(0, 0, 0, .22) }
.logincard img { height: 44px; margin-bottom: var(--s-4) }

/* Albarans: formulari compacte, totals visibles i controls còmodes al mòbil. */
.albara-resum { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:var(--s-2) var(--s-5); padding:var(--s-3) 0; font-variant-numeric:tabular-nums }
.albara-resum span { color:var(--ink-soft) }.albara-resum b { color:var(--ink); margin-left:.35rem }
.compact-state { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--s-2); margin-top:var(--s-2) }
.correu-config { max-width:720px }.correu-config .switch { margin-bottom:var(--s-4) }
@media (max-width:720px) {
  .compact-card { padding:var(--s-3); margin-bottom:var(--s-3) }
  .compact-card > h2,.compact-card .card-head h2 { font-size:1.05rem }
  .compact-filters { display:grid; grid-template-columns:minmax(0,1fr) auto }
  .albara-resum { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-1); text-align:center; background:var(--surface-2); border-radius:var(--r-sm); padding:var(--s-2) }
  .albara-resum span,.albara-resum b { display:block; margin:0; font-size:.82rem }
  .albara-taula table.t.stack tr { padding:.25rem .55rem }
  .albara-taula table.t.stack td { grid-template-columns:5.8rem minmax(0,1fr) }
  .albara-taula table.t.stack td.acc { display:flex; justify-content:flex-end }
  .alb-kpis { grid-template-columns:1fr 1fr }.alb-kpis > :first-child { grid-column:1/-1 }
  .nomes-escriptori { display:none }
}
@media (max-width:420px) {
  .main { padding-left:var(--s-3); padding-right:var(--s-3) }
  .pagehead { margin-bottom:var(--s-3) }.pagehead h1 { font-size:1.45rem }
  .pagehead .actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; align-items:stretch }
  .pagehead .actions > * { min-width:0; max-width:100% }
  .pagehead .actions .btn { white-space:normal; overflow-wrap:anywhere; text-align:center; justify-content:center }
  .pagehead .actions .btn:first-child:last-child { grid-column:1/-1 }
  .compact-filters { grid-template-columns:1fr }.compact-filters .btn { width:100% }
}

/* Preferències personals i targets tàctils, sense reduir la mida dels camps al mòbil. */
.form-actions, form.card > p:has(> .btn) { margin-top: 1.1rem; display:flex; flex-wrap:wrap; gap:.65rem }
.actions { row-gap:.65rem }
.co-cal td { position:relative }
.co-cal-dia::after { content:""; position:absolute; inset:0; z-index:1 }
.co-cal-dia:focus-visible::after { outline:3px solid var(--terra,#bc492d); outline-offset:-3px; border-radius:6px }
.ui-compacta .card { padding:1rem }
.ui-compacta .pagehead { margin-bottom:.8rem }
.ui-compacta table.t td { padding-top:.55rem; padding-bottom:.55rem }
.ui-reduit *, .ui-reduit *::before, .ui-reduit *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important }
@media(max-width:640px) { .form-actions .btn { min-height:44px } .co-barra .actions { flex-wrap:wrap } }

/* Impresión */
@media print {
  .topbar, .side, .bottomnav, .actions, .stickybar, .noprint, .flash, .fab, .toasts, .tabs, .filtros, .periodo, .pager { display: none !important }
  body { background: #FFFFFF } .main { padding: 0; max-width: none } .card { box-shadow: none; border: 0; padding: 0 }
  table.t th { position: static }
}
