:root{--accent:#1d4ed8;--bg:#f6f7f9;--card:#ffffff;--text:#1a1d23;--muted:#6b7280;--border:#e5e7eb;--ok:#15803d;--warn:#b45309;--err:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.shell{max-width:880px;margin:0 auto;padding:24px 20px 64px}.topbar{display:flex;align-items:baseline;justify-content:space-between;padding:18px 0;margin-bottom:24px;border-bottom:1px solid var(--border)}.brand{font-size:20px;font-weight:700}.brand small{font-weight:400;color:var(--muted);margin-left:8px}.topbar form button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px}.topbar form button:hover{color:var(--text)}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:24px;margin-bottom:20px}.card h1{font-size:20px;margin:0 0 4px}.card h2{font-size:16px;margin:0 0 12px}.card .sub{color:var(--muted);font-size:14px;margin:0 0 16px}.project-list{list-style:none;margin:0;padding:0}.project-list li{border-top:1px solid var(--border)}.project-list li:first-child{border-top:none}.project-list a{display:block;padding:14px 4px;color:var(--text);text-decoration:none}.project-list a:hover{color:var(--accent)}.project-list .client,label{color:var(--muted);font-size:14px}label{display:block;margin-bottom:6px}input[type=email],input[type=password],select{width:100%;padding:10px 12px;margin-bottom:14px;border:1px solid var(--border);border-radius:8px;font-size:15px;background:#fff}input[type=file]{margin-bottom:14px;font-size:14px}button.primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 18px;font-size:15px;cursor:pointer}button.primary:disabled{opacity:.5;cursor:default}.error{color:var(--err)}.error,.notice{font-size:14px;margin:8px 0 0}.notice{color:var(--ok)}table.uploads{width:100%;border-collapse:collapse;font-size:14px}table.uploads th{text-align:left;color:var(--muted);font-weight:500;padding:8px 10px}table.uploads td,table.uploads th{border-bottom:1px solid var(--border)}table.uploads td{padding:10px}table.uploads td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.processed{background:#dcfce7;color:var(--ok)}.badge.processing,.badge.received{background:#fef3c7;color:var(--warn)}.badge.failed{background:#fee2e2;color:var(--err)}.login-wrap{max-width:380px;margin:12vh auto 0}.login-wrap .brand{display:block;text-align:center;margin-bottom:18px}