:root{--bg:#f1f5f9;--card:#fff;--ink:#0f172a;--muted:#475569;--line:#cbd5e1;--blue:#2563eb;--blue-hover:#1d4ed8;--green:#16a34a}*{box-sizing:border-box}body{background:linear-gradient(135deg,#f8fafc,var(--bg));color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}.shell{width:min(1280px,100% - 2rem);margin:0 auto;padding:2rem 0}.card{background:#ffffffe6;border-radius:1rem;margin-bottom:1.5rem;padding:2rem;box-shadow:0 10px 25px #0f172a14}.hero h1{margin:.2rem 0 .5rem;font-size:1.875rem}.hero p,.status{color:var(--muted);margin:.4rem 0}.eyebrow,.nav-item small{color:#64748b;font-size:.75rem}.nav-grid,.page-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.5rem;display:grid}.nav-item,.page-card{color:var(--ink);background:#fff;border:1px solid #e2e8f0;border-radius:.625rem;flex-direction:column;gap:.3rem;padding:1rem;text-decoration:none;display:flex}.nav-item:hover,.page-card:hover{background:#eff6ff;border-color:#93c5fd}.page-card span{color:#64748b;font-size:.75rem}.page-card h2{margin:.15rem 0;font-size:1.1rem}.page-card p{color:var(--muted);margin:0;font-size:.9rem}.dropzone{border:2px dashed var(--line);cursor:pointer;color:#334155;border-radius:.75rem;flex-direction:column;gap:.4rem;padding:1.5rem;display:flex}.dropzone:hover{background:#eff6ff;border-color:#60a5fa}.dropzone input{margin-top:.5rem}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.stats div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.625rem;padding:1rem}.stats small,.stats b{display:block}.stats b{margin-top:.25rem;font-size:1.4rem}.stats .high{color:#be123c;background:#fff1f2;border-color:#fecdd3}.stats .low{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.column-actions,.toolbar{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.toolbar input{flex:1}button,input{font:inherit;border-radius:.5rem}button{background:var(--blue);color:#fff;cursor:pointer;border:0;padding:.7rem 1rem;font-weight:600}button:hover{background:var(--blue-hover)}button.secondary{background:var(--green)}button:disabled{cursor:not-allowed;background:#cbd5e1}input{border:1px solid var(--line);padding:.65rem .8rem}.column-list{border:1px solid #e2e8f0;border-radius:.5rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;max-height:210px;padding:.75rem;display:grid;overflow:auto}.column-list label{text-overflow:ellipsis;align-items:center;gap:.45rem;font-size:.85rem;display:flex;overflow:hidden}.column-list input{padding:0}.table-wrap{border:1px solid #e2e8f0;border-radius:.5rem;overflow:auto}table{border-collapse:collapse;width:max-content;min-width:100%}th,td{text-align:left;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #e2e8f0;border-right:1px solid #dbe3ee;max-width:260px;padding:.65rem .75rem;overflow:hidden}th{color:#334155;background:#f8fafc;position:sticky;top:0}.abundant{background:#fff1f2}.normal{background:#f0fdf4}@media (max-width:800px){.nav-grid,.page-grid,.stats,.column-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.nav-grid,.page-grid,.stats,.column-list{grid-template-columns:1fr}.card{padding:1.25rem}.toolbar{flex-wrap:wrap}.toolbar input{flex-basis:100%;width:100%}}
.file-list{gap:.5rem;margin-top:1rem;display:grid}.file-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .85rem;display:flex}.file-item span{text-overflow:ellipsis;min-width:0;overflow:hidden}.file-item small{color:var(--muted);margin-top:.2rem;display:block}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:1rem;margin-bottom:1rem;display:grid}.field-grid label{color:#334155;gap:.45rem;font-size:.9rem;display:grid}.field-grid select{border:1px solid var(--line);font:inherit;background:#fff;border-radius:.5rem;padding:.65rem .8rem}.field-grid .checkbox-row{grid-column:1/-1;align-items:center;gap:.5rem;display:flex}.checkbox-row input{padding:0}.action-row{gap:.75rem;margin-top:1rem;display:flex}.danger{background:#dc2626}.danger:hover{background:#b91c1c}.log-box{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;max-height:220px;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.7;overflow:auto}@media (max-width:520px){.field-grid{grid-template-columns:1fr}.file-item{align-items:flex-start}.file-item button{flex:none}}.home-hero{padding:2.25rem}.home-hero h1{font-size:2.15rem}.workflow{color:#334155;align-items:center;gap:.75rem;margin-top:1.5rem;font-size:.88rem;font-weight:600;display:flex}.workflow i{color:#1d4ed8;background:#dbeafe;border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;font-size:.72rem;font-style:normal;display:grid}.home-heading{margin:2rem 0 1rem}.home-heading h2{margin:.25rem 0;font-size:1.35rem}.home-heading p{color:var(--muted);margin:.4rem 0}.home-grid{margin-top:0}.home-card{gap:.8rem;min-height:265px}.card-top{justify-content:space-between;align-items:center;display:flex}.card-top b{color:#93c5fd;font-size:1.35rem}.home-card p{line-height:1.6}.home-card ul{flex-wrap:wrap;gap:.4rem;margin:.2rem 0;padding:0;list-style:none;display:flex}.home-card li{color:#475569;background:#f1f5f9;border-radius:.3rem;padding:.2rem .45rem;font-size:.74rem}.home-card strong{color:#2563eb;margin-top:auto;font-size:.88rem}.home-note{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.25rem 0;display:grid}.home-note div{border-left:3px solid #93c5fd;padding-left:1rem}.home-note p{color:var(--muted);margin:.35rem 0;font-size:.88rem;line-height:1.55}@media (max-width:520px){.workflow{flex-wrap:wrap}.home-note{grid-template-columns:1fr}.home-hero h1{font-size:1.75rem}}.parquet-viewport{height:640px}.parquet-viewport tr,.parquet-viewport td{height:39px}.column-resize{cursor:col-resize;touch-action:none;width:7px;height:100%;position:absolute;top:0;right:-3px}.table-wrap th{position:relative}.pager{color:var(--muted);justify-content:flex-end;align-items:center;gap:.65rem;margin-top:1rem;font-size:.85rem;display:flex}.pager span{margin-right:auto}.pager button{padding:.45rem .75rem}.pager label{align-items:center;gap:.35rem;display:flex}.pager input{text-align:center;width:4rem;padding:.4rem}@media (max-width:520px){.pager{flex-wrap:wrap;justify-content:flex-start}.pager span{width:100%;margin-right:0}}
