/* PROSTERO Updates USER - admin-like cards V3 */
.user-fw-catalog{
  margin-top:18px;
}
.user-fw-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.user-fw-head h2{
  margin:0!important;
  color:var(--ui-ink,#0f172a);
  font-size:20px;
  line-height:1.2;
}
.user-fw-sub{
  margin:3px 0 0;
  color:var(--ui-muted,#64748b);
  font-size:12px;
  line-height:1.45;
}

/* controls = same visual scale as Admin -> Firmware */
.user-fw-controls{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 12px;
}
.user-fw-search{flex:1 1 360px;min-width:240px}
.user-fw-search label,.user-fw-size label{
  display:block;
  margin:0 0 6px;
  color:var(--ui-muted,#64748b);
  font-size:12px;
  font-weight:900;
}
.user-fw-search-row{display:flex;gap:8px;min-width:0}
.user-fw-search input,
.user-fw-size select,
.user-fw-clear,
.user-fw-page-btn{
  min-height:42px;
  border:1px solid var(--ui-edge,var(--ui-border,#dbe4ef))!important;
  border-radius:11px;
  background:var(--ui-surface-solid,var(--ui-card,#fff))!important;
  color:var(--ui-ink,#0f172a)!important;
  font:inherit;
  box-sizing:border-box;
}
.user-fw-search input{width:100%;min-width:0;padding:9px 12px}
.user-fw-size select{min-width:92px;padding:9px 30px 9px 11px}
.user-fw-clear,.user-fw-page-btn{padding:8px 12px;font-weight:900;cursor:pointer}
.user-fw-clear:hover,.user-fw-page-btn:hover:not(:disabled){
  background:var(--ui-primary-soft,#eff6ff)!important;
  color:var(--ui-primary,#2563eb)!important;
}
.user-fw-page-btn:disabled{opacity:.4;cursor:default}
.user-fw-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin:0 0 12px;
  color:var(--ui-muted,#64748b);
  font-size:12px;
  font-weight:800;
}

/* firmware history cards = Admin firmware proportions */
.user-fw-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  min-width:0;
}
.user-fw-card{
  min-width:0;
  padding:17px;
  overflow:hidden;
  border:1px solid var(--ui-edge,var(--ui-border,#e2e8f0));
  border-radius:17px;
  background:var(--ui-surface-solid,var(--ui-card,#fff));
  box-shadow:var(--ui-shadow-sm,0 8px 24px rgba(15,23,42,.05));
}
.user-fw-card[hidden]{display:none!important}
.user-fw-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}
.user-fw-version{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.user-fw-version strong{
  order:2;
  display:block;
  margin-top:7px;
  color:var(--ui-ink,#0f172a)!important;
  font-size:25px;
  font-weight:900;
  line-height:1.08;
  overflow-wrap:anywhere;
}
.user-fw-group{
  order:1;
  display:inline-flex;
  align-items:center;
  min-height:26px;
  max-width:100%;
  margin:0;
  padding:5px 9px;
  border-radius:999px;
  background:var(--ui-primary-soft,#eff6ff);
  color:var(--ui-primary,#2563eb);
  font-size:10px;
  font-weight:1000;
  line-height:1.2;
  letter-spacing:.35px;
  overflow-wrap:anywhere;
}
.user-fw-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}
.user-fw-badge{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 9px;
  border:0;
  border-radius:999px;
  font-size:10px;
  font-weight:1000;
  line-height:1.2;
  letter-spacing:.35px;
}
.user-fw-badge.latest{
  background:var(--ui-primary-soft,#eff6ff);
  color:var(--ui-primary,#2563eb);
}
.user-fw-badge.installed{
  background:var(--ui-good-soft,#dcfce7);
  color:#166534;
}
.user-fw-date{
  display:block;
  margin:14px 0 0;
  padding:10px;
  border-radius:12px;
  background:var(--ui-surface-soft,#f8fafc);
  color:var(--ui-muted,#64748b);
  font-size:10px;
  font-weight:950;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.user-fw-date span{font:inherit;color:inherit}
.user-fw-notes{
  margin:10px 0 0;
  padding:12px;
  border:1px solid var(--ui-edge,var(--ui-border,#e2e8f0));
  border-radius:12px;
  background:var(--ui-surface-soft,#f8fafc);
  color:var(--ui-ink,#0f172a);
  font-size:12px;
  font-weight:650;
  line-height:1.55;
  overflow-wrap:anywhere;
  white-space:normal;
}
.user-fw-notes.empty{color:var(--ui-muted,#64748b);font-style:italic;font-weight:700}

/* rollback block follows the same card scale */
.user-fw-rollback{
  margin-top:12px!important;
  padding-top:12px!important;
  border-top:1px solid var(--ui-edge,var(--ui-border,#e2e8f0))!important;
}
.user-fw-rollback label{font-size:12px!important;font-weight:900!important}
.user-fw-rollback select,.user-fw-rollback-btn{min-height:42px!important;border-radius:11px!important;font-size:12px!important}
.user-fw-rollback-btn{font-weight:900!important}

.user-fw-empty{
  display:none;
  padding:24px;
  text-align:center;
  color:var(--ui-muted,#64748b);
  font-size:12px;
  font-weight:800;
}
.user-fw-empty.visible{display:block}
.user-fw-pager{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.user-fw-page-info{
  min-width:110px;
  text-align:center;
  color:var(--ui-muted,#64748b);
  font-size:12px;
  font-weight:900;
}

@media(max-width:900px){
  .user-fw-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .user-fw-head{display:block}
  .user-fw-controls{align-items:stretch}
  .user-fw-search,.user-fw-size{width:100%;min-width:0}
  .user-fw-size select{width:100%}
  .user-fw-pager{justify-content:space-between}
  .user-fw-page-info{flex:1;min-width:0}
  .user-fw-card{padding:15px}
}
@media(max-width:430px){
  .user-fw-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .user-fw-clear{padding-left:10px;padding-right:10px}
  .user-fw-top{display:block}
  .user-fw-badges{justify-content:flex-start;margin-top:10px}
  .user-fw-version strong{font-size:23px}
}
