:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#0e1b25;background:linear-gradient(180deg,#f2f8fb,#fff 60%);line-height:1.4}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:inherit}a{color:#005f87;text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button{border:1px solid #0d4e68;background:#0d4e68;color:#fff;border-radius:8px;padding:.5rem .9rem;cursor:pointer}button:disabled{opacity:.7;cursor:not-allowed}input{border:1px solid #c2d5e0;border-radius:8px;padding:.6rem}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 10% 10%,#d7eef7 0%,transparent 50%),radial-gradient(circle at 90% 90%,#d5efe2 0%,transparent 55%)}.login-card{width:min(420px,100%);background:#fff;border:1px solid #d7e5ed;border-radius:14px;padding:1.4rem;box-shadow:0 18px 40px -32px #0d3148}.login-card h1{margin:0;font-size:1.45rem}.login-card p{margin:.35rem 0 1.1rem;color:#365368}.login-card form{display:grid;gap:.65rem}.app-shell{min-height:100vh}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1rem;padding:.9rem 1.2rem;border-bottom:1px solid #d5e3eb;background:#fff}.brand h1{margin:0;font-size:1.2rem}.brand p{margin:.2rem 0 0;color:#436176;font-size:.9rem}.nav-links{display:flex;gap:.4rem}.nav-links a{border-radius:999px;border:1px solid #c6d8e3;padding:.3rem .7rem}.nav-links a.active{background:#dbedf5;border-color:#9fc8da}.session{display:flex;align-items:center;gap:.7rem}.username{font-size:.9rem;color:#37596b}.content{padding:1rem}.section-header{margin-bottom:.8rem}.section-header h2{margin:0;font-size:1.25rem}.section-header p{margin:.3rem 0 0;color:#3f6176}.upload-form{display:grid;gap:.7rem;max-width:460px;margin-bottom:1rem}.table-wrap{width:100%;overflow-x:auto;border:1px solid #d5e3eb;border-radius:10px;background:#fff}table{width:100%;border-collapse:collapse;min-width:860px}th,td{padding:.65rem;text-align:left;border-bottom:1px solid #e6eef3;vertical-align:top}th{background:#f6fafc;font-size:.88rem}.meta-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1rem}.meta-grid>div{background:#fff;border:1px solid #d6e4ec;border-radius:10px;padding:.7rem;display:grid;gap:.3rem}.meta-grid strong{font-size:.85rem;color:#36576c}.meta-grid.analysis span{white-space:pre-wrap}.section-block{margin-top:1.2rem}.section-block h3{margin-bottom:.6rem}.analysis-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.analysis-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.analysis-grid h4{margin:.25rem 0;color:#27495d}.state-message{margin:.7rem 0;padding:.7rem;border-radius:8px;border:1px solid #bfd4df;background:#eff7fb}.state-message.error{border-color:#efbcc6;background:#fff1f4;color:#8a1d34}.state-message.warning{border-color:#f1cf95;background:#fff8ea;color:#7a4d00}.progress-shell{background:#fff;border:1px solid #d6e4ec;border-radius:10px;padding:.85rem;margin-bottom:1rem}.progress-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;color:#234459}.progress-track{width:100%;height:10px;border-radius:999px;overflow:hidden;background:#e8f1f6;border:1px solid #d1e1ea}.progress-fill{height:100%;background:linear-gradient(90deg,#0d4e68,#2a7b98);transition:width .22s ease}.flow-steps{margin-top:.55rem;display:flex;gap:.45rem;flex-wrap:wrap}.flow-step{font-size:.83rem;border-radius:999px;border:1px solid #c6d8e3;padding:.2rem .55rem;color:#486476;background:#f6fafc}.flow-step.done{border-color:#8ab6c9;background:#dff0f7;color:#10485f}.flow-step.active{border-color:#7da8bb;background:#e5f4fb;color:#124961}.flow-step.failed{border-color:#e2a0af;background:#fdeff2;color:#7f1e36}.action-row{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1rem}.inline-toggle{display:inline-flex;align-items:center;gap:.45rem;color:#2f5367}details{margin-top:.7rem;background:#fff;border:1px solid #d6e4ec;border-radius:10px;padding:.6rem}pre{white-space:pre-wrap;background:#f4f8fb;border:1px solid #d6e4ec;padding:.7rem;border-radius:8px;overflow-x:auto}@media (max-width: 900px){.topbar{align-items:flex-start}.session{width:100%;justify-content:flex-end}}
