/* The locker (Almirah Free) in the sketchbook style: ink-outlined cards, big numbers, shelf colours. */
.viewer { padding-block: 3rem 4rem; }
.viewer .wrap { display: grid; gap: 2rem; }
.intro { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.intro-sketch { width: 9rem; flex: none; }
@media (max-width: 700px) { .intro-sketch { display: none; } }

.reader { padding: clamp(1.25rem, 4vw, 2rem); display: grid; gap: 1.25rem; max-width: 46rem; }
.drop {
  display: grid; gap: 0.375rem; place-items: center; text-align: center; padding: 2.25rem 1rem; cursor: pointer;
  border: 2px dashed var(--ink); border-radius: 1rem; background: var(--t-mint); font-weight: 400;
}
.drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.drop:focus-within { outline: 2px solid var(--jade); outline-offset: 3px; }
.drop.over, .drop:hover { background: var(--mint); }
.drop.chosen { border-style: solid; background: var(--mint); }
.drop-title { font: 800 1.25rem/1.3 var(--sans); overflow-wrap: anywhere; }
.drop-hint { font: 400 1.0625rem/1.3 var(--hand); color: var(--ink-2); }
.engine { font-size: 0.875rem; color: var(--muted); }

#result { display: grid; gap: 1.5rem; }
.result-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; }
.sample-flag { margin-bottom: 0.75rem; }

.figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.figures div { background: var(--paper); border: 1.5px solid var(--ink); border-radius: 1.25rem; padding: 1.25rem; min-width: 0; box-shadow: var(--lift); }
.figures div:nth-child(1) { background: var(--t-sky); } .figures div:nth-child(2) { background: var(--t-gold); }
.figures div:nth-child(3) { background: var(--t-mint); } .figures div:nth-child(4) { background: var(--t-plum); }
.figures dt { font: 800 0.75rem/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
.figures dd { margin: 0.75rem 0 0; font: 800 clamp(1.5rem, 2.8vw, 2.125rem)/1.1 var(--sans); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.figures dd span { display: block; margin-top: 0.5rem; font: 400 0.8125rem/1.35 var(--sans); letter-spacing: 0; color: var(--ink-2); }
@media (max-width: 900px) { .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.block { padding: clamp(1.25rem, 3vw, 1.75rem); display: grid; gap: 1rem; }

.split { display: flex; gap: 3px; height: 1rem; border: 1.5px solid var(--ink); border-radius: 0.5rem; overflow: hidden; }
.split span, .legend i { background: var(--mint); }
.k-debt { background: var(--sky) !important; }
.k-other { background: var(--gold) !important; }
.legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; font-size: 0.9375rem; font-weight: 600; }
.legend li { display: flex; align-items: center; gap: 0.5rem; }
.legend i { width: 0.875rem; height: 0.875rem; display: inline-block; border: 1.5px solid var(--ink); border-radius: 3px; }
.legend span { color: var(--muted); font-weight: 400; }

.amcs { list-style: none; margin: 0; padding: 0; }
.amcs li { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 0.625rem 0; border-bottom: 1px solid var(--hairline); font-size: 0.9375rem; }
.amcs .bar { height: 0.75rem; background: var(--cashmere); border-radius: 999px; overflow: hidden; }
.amcs .bar i { display: block; height: 100%; background: var(--ink); border-radius: 999px; }
.amcs .num { font-style: normal; font-family: var(--sans); color: var(--ink); font-weight: 700; margin: 0; }
.amcs .num small { color: var(--muted); margin-left: 0.5rem; font-weight: 400; }
@media (max-width: 560px) { .amcs li { grid-template-columns: minmax(0, 1fr) auto; } .amcs .bar { grid-column: 1 / -1; grid-row: 2; } }

table.funds td, table.gains td, table.gains th { font-size: 0.9375rem; }
.funds .fund { display: block; font-weight: 700; }
.funds .meta { display: block; color: var(--muted); font-size: 0.8125rem; }
.funds td:first-child { min-width: 16rem; }
td.num, th.num { text-align: right; white-space: nowrap; padding-right: 0; }
td.loss { color: var(--bad); }
.notes { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.375rem; color: var(--muted); font-size: 0.8125rem; max-width: 46rem; }

.upsell { padding: clamp(1.5rem, 4vw, 2.5rem); display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 1.5rem 3rem; align-items: center; background: var(--t-gold); box-shadow: 8px 8px 0 var(--mint); }
@media (max-width: 760px) { .upsell { grid-template-columns: minmax(0, 1fr); } .upsell img { max-width: 180px; } }
