/* AutoArrayCalc: only what this page adds to the suite's look (ui/app.css, copied from packages/ui). */
.topbar .tag{margin-left:-8px}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.panel-body > p.small{margin:12px 0 0}
.foot{margin:0;max-width:72ch}

/* the gate: log in, beta code */
.gate .panel-body{display:grid;gap:14px;max-width:440px}
.gate p{margin:0}
.gate form{display:grid;gap:12px}
.gate .links{display:flex;flex-wrap:wrap;gap:4px 12px;margin-left:-.4rem}

/* files */
.drop{display:grid;gap:4px;justify-items:start;border:2px dashed var(--line-2);border-radius:8px;padding:20px;cursor:pointer;background:var(--page);font-weight:400}
.drop.over{border-color:var(--brand);background:var(--brand-soft)}
.drop-title{font-weight:600}
.drop input{margin-top:8px;max-width:100%;border:0;padding:0;min-height:0;background:none}
.files{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.files li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:6px;padding:6px 10px}
.files img{width:40px;height:40px;object-fit:cover;border-radius:4px}
.files .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* messages */
.note{border-radius:8px;border:1px solid var(--line);padding:12px 16px;background:var(--panel)}
.note.ok{background:var(--ok-bg);border-color:transparent}
.note.warn{background:var(--warn-bg);border-color:transparent}
.note.bad{background:var(--bad-bg);border-color:transparent}
.note ul{margin:6px 0 0;padding-left:20px}
.note p{margin:0}

/* sources */
.src{border:0;margin:0;min-width:0;padding:16px;border-bottom:1px solid var(--line);display:grid;gap:12px}
.src-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr) auto;gap:12px;align-items:end}
.check{display:flex;align-items:center;gap:8px;font-weight:400;min-height:40px}
.check input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--brand)}
.cabs{display:grid;gap:8px}
.cab{display:grid;grid-template-columns:minmax(0,12rem) 6rem auto auto;gap:8px;align-items:center}
.src-foot{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.add-row{border-top:0}
table.list td.n,table.list th.n{text-align:right;font-variant-numeric:tabular-nums}
#tool{display:grid;gap:20px}
.dl-row{display:grid;grid-template-columns:minmax(0,22rem) auto;gap:12px;align-items:end;justify-content:start}
.spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;margin-right:8px}
@media (prefers-reduced-motion:no-preference){.spin{animation:spin .8s linear infinite}}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:760px){
  .src-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .src-head .name{grid-column:1/-1}
  .cab{grid-template-columns:minmax(0,1fr) 5rem auto}
  .cab .per{display:none}
  .dl-row{grid-template-columns:minmax(0,1fr)}
  table.list.stack td.n{text-align:left}
}
.none{margin:0}
