:root{--fg:#1b1f23;--muted:#5c6670;--line:#d9dee3;--bg:#f6f7f9;--accent:#1f5fbf;--ok:#1f7a3f;--warn:#a35d00;--err:#b3261e;color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.brand{letter-spacing:.02em;font-weight:700}.crumb small{color:var(--muted)}.spacer{flex:1}.user{color:var(--muted);font-size:.9rem}main{width:100%;max-width:1100px;margin:0 auto;padding:1.25rem}.muted{color:var(--muted)}.notice{background:#fff5e5;border:1px solid #f0d9a8;border-radius:6px;align-items:center;gap:1rem;margin:.75rem 1.25rem 0;padding:.6rem .9rem;display:flex}.card{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:1.25rem;padding:1.25rem}.card h1,.card h2{margin-top:0;font-size:1.15rem}form.stack{gap:.75rem;max-width:28rem;display:grid}label{gap:.25rem;font-size:.9rem;display:grid}input[type=text],input[type=email],input[type=password]{border:1px solid var(--line);font:inherit;border-radius:6px;padding:.5rem .6rem}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:.45rem .9rem}button.secondary{color:var(--accent);background:#fff}button.danger{color:var(--err);border-color:var(--err);background:#fff}button.link{color:var(--accent);background:0 0;border:none;padding:.2rem .4rem}button:disabled{opacity:.5;cursor:default}.error{color:var(--err)}.dropzone{border:2px dashed var(--line);text-align:center;color:var(--muted);background:#fafbfc;border-radius:8px;padding:1.5rem}.dropzone.active{border-color:var(--accent);color:var(--accent);background:#eef3fb}.dropzone input{display:none}.progress{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.progress>span{background:var(--accent);height:100%;transition:width .2s;display:block}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.55rem .5rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.badge{color:var(--muted);background:#e8ebef;border-radius:999px;padding:.1rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.badge.READY{color:var(--ok);background:#e3f3e8}.badge.PROCESSING,.badge.UPLOADING{color:var(--warn);background:#fff1dc}.badge.FAILED{color:var(--err);background:#fbe4e2}.actions{flex-wrap:wrap;gap:.35rem;display:flex}.actions button{padding:.25rem .6rem;font-size:.85rem}ul.plain{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}ul.plain li{align-items:center;gap:.75rem;display:flex}.filelist{gap:.5rem;margin-top:.75rem;display:grid}.filelist .row{grid-template-columns:1fr 8rem;align-items:center;gap:.75rem;font-size:.9rem;display:grid}textarea.code{border:1px solid var(--line);resize:vertical;background:#fafbfc;border-radius:6px;width:100%;margin-bottom:.75rem;padding:.6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}a.button{border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:6px;padding:.25rem .6rem;font-size:.85rem;text-decoration:none;display:inline-block}.tabs{gap:.25rem;margin-left:1rem;display:flex}.tabs button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:.3rem .7rem}.tabs button.active{color:var(--accent);border-color:var(--line);background:var(--bg)}select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:.35rem .5rem}code{background:#eef1f4;border-radius:4px;padding:.1rem .35rem;font-size:.9em}.range{flex-wrap:wrap;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.range input[type=date]{border:1px solid var(--line);font:inherit;border-radius:6px;padding:.4rem .5rem}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat{border:1px solid var(--line);background:#fafbfc;border-radius:8px;padding:.75rem}.stat-value{font-size:1.3rem;font-weight:600}.stat-label{color:var(--muted);margin-top:.2rem;font-size:.8rem}.milestone{margin-right:.5rem;font-size:.85rem;font-weight:500;display:inline-block}.bars{border-bottom:1px solid var(--line);align-items:flex-end;gap:2px;height:70px;padding-bottom:2px;display:flex}.bar{flex:1;align-items:flex-end;height:100%;display:flex}.bar span{background:var(--accent);border-radius:2px 2px 0 0;width:100%;min-height:1px;display:block}.breakdowns{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;display:grid}.breakdowns h3{color:var(--muted);margin:0 0 .4rem;font-size:.9rem}ul.plain.compact li{justify-content:space-between;font-size:.9rem}tr.selected td{background:#eef3fb}
