/* v1.1 — footer flex-end. */
/* Solver Licenses — Menu → Licenses (BYO commercial solver licenses).
   Final design 2026-09-01 (six review rounds): logo rows + status badges in a
   char-dialog list; click a row → viewport-centered sub-dialog (dlg-backdrop
   family) with a uniform zero-hint form. Light-gold accents only (the
   cream+amber tpl-btn.primary family) — no blue anywhere; single body font
   (no mono labels/inputs). Buttons are the stock tpl-btn / .primary /
   .danger classes from main.css. */

/* Narrower than the 470px char-dialog default — the two-row list read as too
   wide at full width (user 2026-09-01); 400px matches the dlg-card family. */
.lic-dialog { width: 400px; }

/* search — renders only at ≥6 vendors */
.lic-search {
    width: 100%;
    box-sizing: border-box;
    margin: 12px 0 4px;
    padding: 7px 10px;
    border: 1px solid var(--b2-line-2, #D1D5DB);
    border-radius: 6px;
    font-size: 12.5px;
    font-family: inherit;
    color: var(--b2-ink, #111216);
    background: var(--b2-surface, #fff);
}
.lic-search::placeholder { color: var(--b2-ink-4, #9CA3AF); }
.lic-search:focus {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: 0 0 0 3px rgba(224, 182, 94, 0.22) !important;
    border-color: var(--b2-user-rule, #E0B65E) !important;
}

/* vendor rows: logo tile + name + masked summary + status badge + › */
.lic-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 6px;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 2px;
}
.lic-row:hover { background: var(--b2-sunken, #F3F4F6); }
.lic-row:focus-visible { outline: 2px solid rgba(224, 182, 94, 0.5) !important; outline-offset: 1px !important; }
.lic-tile {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: #fff;
    border: 1px solid var(--b2-line, #E5E7EB);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
}
.lic-tile img { width: 19px; height: 19px; object-fit: contain; display: block; }
.lic-tile-mono { font-size: 10.5px; font-weight: 700; color: var(--b2-ink-3, #6B7280); background: var(--b2-sunken, #F3F4F6); }
.lic-name { flex: 0 0 auto; max-width: 46%; font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lic-sum { flex: 1 1 auto; min-width: 0; text-align: right; font-size: 11px; color: var(--b2-ink-3, #6B7280); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lic-chev { font-size: 13px; color: var(--b2-ink-4, #9CA3AF); }
.lic-sep { border-top: 1px solid var(--b2-line, #E5E7EB); margin: 0 6px; }
.lic-empty { text-align: center; color: var(--b2-ink-4, #9CA3AF); font-size: 12px; padding: 22px 0 12px; }

/* sub-dialog (rides .dlg-backdrop/.dlg-card from main.css → viewport-centered,
   stacks above the list modal) */
.lic-card { width: 400px; }
.lic-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.lic-hd h3 { margin: 0; font-size: 14.5px; font-weight: 650; flex: 1; }
.lic-lab { margin: 11px 0 5px; font-size: 12px; font-weight: 600; color: var(--b2-ink-2, #4B5563); }
[data-form] > .lic-lab:first-child { margin-top: 0; }
.lic-inp {
    width: 100%;
    box-sizing: border-box;
    padding: 7px 10px;
    border: 1px solid var(--b2-line-2, #D1D5DB);
    border-radius: 6px;
    font-size: 12.5px;
    font-family: inherit;
    color: var(--b2-ink, #111216);
    background: var(--b2-surface, #fff);
}
.lic-inp::placeholder { color: var(--b2-ink-4, #9CA3AF); }
.lic-inp:focus {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: 0 0 0 3px rgba(224, 182, 94, 0.22) !important;
    border-color: var(--b2-user-rule, #E0B65E) !important;
}
.lic-seg { display: flex; border: 1px solid var(--b2-line-2, #D1D5DB); border-radius: 6px; overflow: hidden; margin-bottom: 11px; }
.lic-seg button { flex: 1; border: none; background: var(--b2-surface, #fff); font-family: inherit; font-size: 12px; font-weight: 600; color: var(--b2-ink-3, #6B7280); padding: 6px 0; cursor: pointer; }
.lic-seg button + button { border-left: 1px solid var(--b2-line-2, #D1D5DB); }
.lic-seg button.on { background: var(--b2-sunken, #F3F4F6); color: var(--b2-ink, #111216); }
.lic-pwrap { position: relative; display: block; }
.lic-pwrap .lic-inp { padding-right: 34px; }
.lic-eye {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: none;
    color: var(--b2-ink-4, #9CA3AF);
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 5px;
    display: inline-flex;
}
.lic-eye:hover { color: var(--b2-ink, #111216); background: var(--b2-sunken, #F3F4F6); }
.lic-eye svg { display: block; }
/* Cancel/Save pinned bottom-RIGHT in every state (user 2026-09-01) — without
   flex-end the row only looked right when the stretching error text was
   visible; a fresh dialog packed the buttons left. Remove stays LEFT (the
   danger-separation convention). */
.lic-foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.lic-foot .tpl-btn.danger { margin-right: auto; }
.lic-foot .lic-err { flex: 1 1 auto; text-align: left; font-size: 11.5px; color: var(--b2-err, #DC2626); overflow-wrap: anywhere; }
