/* warrantora — app layer on the Ownware UI kit (assets/ui/ownware-ui.css). Accent + app-specific rules only; generic rules come from the kit. */
:root{--accent:#4338ca;--accent-dark:#3730a3;--accent-soft:#eaeaff;--on-accent:#ffffff;--accent-ink:var(--on-accent)}
html[data-theme="dark"]{--accent:#a5b4fc;--accent-dark:#c7d2fe;--accent-soft:#232455;--on-accent:#0b0d10;--accent-ink:var(--on-accent)}


/* ── the asset banner: book value, in one glance */
.statusbig{border-radius:var(--radius);padding:18px 22px;display:flex;align-items:center;gap:16px;margin-bottom:14px;border:1px solid var(--line);background:var(--card);flex-wrap:wrap}
.statusbig .dotbig{width:22px;height:22px;border-radius:50%;flex:none;background:var(--accent)}
.statusbig.indigo{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.statusbig.amber{background:var(--warnbg);border-color:color-mix(in srgb,var(--warn) 35%,var(--line))} .statusbig.amber .dotbig{background:var(--warn)}
.statusbig .st-title{font-family:var(--display);font-weight:700;font-size:1.35rem;font-variant-numeric:tabular-nums}
.statusbig .st-sub{font-size:.9rem;opacity:.9}

/* ── the book-value timeline: the whole life of an asset as one shape */
.bvchart{position:relative;height:150px;margin:6px 0 4px}
.bvchart svg{width:100%;height:100%;display:block;overflow:visible}
.bvchart .area{fill:var(--accent);opacity:.12}
.bvchart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.bvchart .salv{stroke:var(--warn);stroke-width:1.5;stroke-dasharray:4 4;opacity:.85}
.bvchart .nowline{stroke:var(--bad);stroke-width:1.5}
.bvchart .dot{fill:var(--accent)}
.bvchart .dot.now{fill:var(--bad)}
.bvchart .disp{stroke:var(--warn);stroke-width:1.5;stroke-dasharray:3 3}
.bvlegend{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--sub);margin-top:6px}
.bvlegend i{display:inline-block;width:14px;height:0;border-top:2px solid var(--accent);margin-right:6px;vertical-align:middle}
.bvlegend i.salv{border-top:2px dashed var(--warn)} .bvlegend i.now{border-top:2px solid var(--bad)}

/* register figures */
.figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:14px}
.figs .cell{background:var(--card);padding:12px 15px;min-width:0}
.figs .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--sub);font-weight:700}
.figs .v{font-family:var(--display);font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px;overflow-wrap:anywhere}
.figs .cell small{display:block;color:var(--faint);font-size:.74rem;margin-top:1px}
@media(max-width:820px){.figs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* the schedule table: rows that are already closed read as settled history */
.sched tr.is-closed td{background:var(--okbg)}
.sched tr.is-disposal td{background:var(--warnbg)}
.sched td{font-variant-numeric:tabular-nums}
.closedbadge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ok)}

/* period close */
.closebox .kv{margin-top:6px}
.closediff{border-radius:10px;padding:10px 12px;font-weight:600;background:var(--chip);color:var(--sub);font-variant-numeric:tabular-nums}
.closediff.ok{background:var(--okbg);color:var(--ok)}

/* the kit's .search padding loses to the base input rule's specificity */
.search input{padding-left:34px!important}

/* ── status vocabulary ────────────────────────────────────────────────────────────────
   An expired warranty and a live one must never be mistakeable at a glance, so the two
   ends of the scale carry the strongest colours the kit has. */
.pill.active    {background:var(--okbg);color:var(--ok)}
.pill.expiring  {background:var(--warnbg);color:var(--warn)}
.pill.expired   {background:var(--badbg);color:var(--bad)}
.pill.void      {background:var(--chip);color:var(--faint);text-decoration:line-through}
.pill.unknown   {background:var(--chip);color:var(--sub);border:1px dashed var(--line)}
/* claims */
.pill.raised    {background:var(--badbg);color:var(--bad)}
.pill.assessed  {background:var(--infobg);color:var(--info)}
.pill.approved  {background:var(--okbg);color:var(--ok)}
.pill.rejected  {background:var(--chip);color:var(--sub)}
.pill.resolved  {background:var(--okbg);color:var(--ok)}
/* returns */
.pill.issued    {background:var(--infobg);color:var(--info)}
.pill.in_transit{background:var(--warnbg);color:var(--warn)}
.pill.received  {background:var(--okbg);color:var(--ok)}
.pill.closed    {background:var(--chip);color:var(--sub)}
.pill.sm        {font-size:.68rem;padding:1px 7px}

/* the dashboard's standing-of-the-register strip */
.bucket{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--card);text-decoration:none;color:inherit}
.bucket:hover{border-color:var(--accent);text-decoration:none}
.bucket b{font-family:var(--display);font-size:1.5rem;line-height:1;font-variant-numeric:tabular-nums}
.bucket span{font-size:.8rem;color:var(--sub)}
