:root { --bg:#f7f7f4; --card:#fff; --ink:#1b1f23; --mute:#5b6570; --line:#dcdcd4; --acc:#0b5cab; --pos:#17692f; --neg:#a3261c; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; overflow-x:hidden; }
.top, .layout, .foot { max-width:1400px; margin:0 auto; padding:0 14px; }
.top { padding-top:14px; }
h1 { font-size:1.35rem; margin:0 0 4px; }
.lead { margin:0 0 10px; color:var(--mute); font-size:.95rem; }
.h2 { font-size:1.05rem; margin:14px 0 6px; }
.h3 { font-size:.95rem; margin:12px 0 4px; }
.count { color:var(--mute); font-weight:400; font-size:.9rem; }
.layout { display:block; }
.totals { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:8px; }
.tot { display:flex; flex-direction:column; min-width:0; }
.lbl { font-size:.72rem; color:var(--mute); }
.num { font-size:1.05rem; font-weight:650; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.sub { font-size:.75rem; color:var(--mute); min-height:1em; }
.pos { color:var(--pos); } .neg { color:var(--neg); }
.bar { display:flex; height:16px; border-radius:4px; overflow:hidden; background:#e9e9e2; }
.bar > span { display:block; height:100%; border-right:1px solid #fff; }
.legend { list-style:none; margin:6px 0 0; padding:0; display:none; font-size:.9rem; }
.legend li { display:flex; justify-content:space-between; padding:2px 0; border-bottom:1px solid var(--line); }
.tabs { display:flex; gap:22px; margin:14px 0 6px; border-bottom:1px solid var(--line); }
.tab { background:none; border:0; padding:10px 0; min-height:44px; font:inherit; color:var(--mute); cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.tab[aria-selected="true"] { color:var(--ink); font-weight:650; text-decoration-thickness:2px; text-decoration-color:var(--acc); }
.fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
label { display:flex; flex-direction:column; font-size:.8rem; color:var(--mute); gap:2px; }
input, textarea, select { font:inherit; font-size:16px; padding:9px 8px; min-height:44px; border:1px solid #b9b9b0; border-radius:6px; background:#fff; color:var(--ink); width:100%; }
textarea { min-height:90px; }
.actions { display:flex; align-items:center; gap:16px; margin:10px 0; flex-wrap:wrap; }
.btn { background:var(--acc); color:#fff; border:0; border-radius:6px; padding:0 18px; min-height:44px; font:inherit; font-weight:600; cursor:pointer; }
.link { background:none; border:0; color:var(--acc); text-decoration:underline; min-height:44px; padding:0 4px; font:inherit; cursor:pointer; }
.link.danger { color:var(--neg); }
.err { color:var(--neg); background:#fdeceb; border-radius:6px; padding:8px 10px; margin:8px 0; font-size:.9rem; }
.ok { color:var(--pos); background:#e9f6ec; border-radius:6px; padding:8px 10px; margin:8px 0; font-size:.9rem; }
.note { color:var(--mute); font-size:.85rem; margin:4px 0 10px; }
.io { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.io label, .io #preview { width:100%; }
.file input { padding:6px; }
.picker { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ptable { width:100%; border-collapse:collapse; font-size:.8rem; margin-top:8px; display:block; overflow-x:auto; }
.ptable th, .ptable td { border-bottom:1px solid var(--line); padding:4px 6px; text-align:left; white-space:nowrap; }
.skipped ul { margin:4px 0; padding-left:18px; font-size:.85rem; max-height:220px; overflow:auto; }
hr { width:100%; border:0; border-top:1px solid var(--line); margin:6px 0; }
/* holdings: phone = two-line cards */
.hrow { display:grid; grid-template-columns:1fr auto; grid-template-areas:"tk vl" "meta gn" "ac ac"; gap:2px 10px; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-bottom:8px; }
.hrow.head { display:none; }
.hrow > span { min-width:0; }
.c-tk { grid-area:tk; font-weight:700; font-size:1.05rem; overflow-wrap:anywhere; }
.c-vl { grid-area:vl; text-align:right; font-weight:650; font-variant-numeric:tabular-nums; }
.c-gn { grid-area:gn; text-align:right; font-size:.85rem; font-variant-numeric:tabular-nums; }
.c-sh, .c-cs, .c-pr, .c-wt, .c-dv { grid-area:meta; font-size:.82rem; color:var(--mute); }
.hrow .meta { grid-area:meta; display:flex; flex-wrap:wrap; gap:2px 12px; font-size:.82rem; color:var(--mute); }
.hrow .meta span::before { content:attr(data-l) " "; }
.c-ac { grid-area:ac; display:flex; gap:10px; justify-content:space-between; }
.link.act { min-width:64px; min-height:44px; padding:0 14px; }
.c-ac .link.danger { margin-left:auto; }
.undo { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hrow .c-sh, .hrow .c-cs, .hrow .c-pr, .hrow .c-wt, .hrow .c-dv { display:none; }
.empty { color:var(--mute); }
.foot { padding-top:16px; padding-bottom:28px; color:var(--mute); font-size:.85rem; }
.foot p { margin:4px 0; }
@media (min-width:720px) {
  .fields { grid-template-columns:repeat(3,1fr); }
  .picker { grid-template-columns:repeat(3,1fr); }
  .hrow { grid-template-columns:1.1fr 1fr 1fr 1.6fr 1.1fr .8fr 1.2fr 1fr auto; grid-template-areas:none; align-items:center; border-radius:0; border-width:0 0 1px 0; margin:0; padding:8px 4px; background:transparent; }
  .hrow.head { display:grid; font-size:.75rem; color:var(--mute); border-bottom:1px solid var(--ink); }
  .hrow > span { grid-area:auto !important; }
  .hrow .c-sh, .hrow .c-cs, .hrow .c-pr, .hrow .c-wt, .hrow .c-dv { display:block; color:var(--ink); font-size:.9rem; font-variant-numeric:tabular-nums; }
  .c-vl, .c-gn { text-align:left; font-size:.9rem; }
  .c-pr small { display:block; color:var(--mute); font-size:.72rem; white-space:nowrap; }
  .hrow.head > span { font-size:.75rem; font-weight:400; color:var(--mute); }
  .meta-phone { display:none !important; }
}
@media (min-width:1100px) {
  .layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(300px,1fr); gap:24px; align-items:start; }
  .holdings { grid-column:1; grid-row:1; }
  .side { grid-column:2; grid-row:1; position:sticky; top:10px; max-height:calc(100vh - 20px); overflow-y:auto; padding-right:4px; }
  .fields { grid-template-columns:1fr 1fr; }
  .picker { grid-template-columns:1fr 1fr; }
  .h2:first-child { margin-top:0; }
}
@media (min-width:1500px) {
  .layout { grid-template-columns:minmax(0,2fr) minmax(380px,1fr); }
  .legend { display:block; }
}

[hidden] { display:none !important; }
