:root{--navy:#071c33;--blue:#0069b4;--cyan:#00a9e0;--bg:#f1f5f8;--text:#172b3e;--muted:#6c7e8e;--line:#dce5ec}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg);font:15px/1.45 Inter,Segoe UI,Arial,sans-serif}button,input{font:inherit}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}aside{position:sticky;top:0;height:100vh;padding:24px 18px;color:white;background:linear-gradient(165deg,var(--navy),#0a3d62)}.side-brand,.auth-brand{display:flex;align-items:center;gap:12px}.side-brand>span,.auth-brand>span{display:grid;place-items:center;width:44px;height:44px;color:var(--navy);background:white;border-radius:13px;font-weight:800}.side-brand strong,.side-brand small{display:block}.side-brand small{color:#b8d2e5;font-size:12px}nav{margin-top:36px}nav a{display:block;margin:5px 0;padding:11px 13px;color:#cce1ef;text-decoration:none;border-radius:10px}nav a:hover,nav a.active{color:white;background:rgba(255,255,255,.12)}.logout{position:absolute;right:18px;bottom:24px;left:18px}.logout button{width:100%;padding:10px;color:#d5e7f2;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:9px}.content{min-width:0;padding:28px 34px}.content>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.content h1{margin:0;font-size:27px}.content header p,.panel p{margin:4px 0;color:var(--muted)}.open-app,.button{display:inline-block;text-decoration:none}.open-app{padding:9px 13px;color:var(--blue);background:white;border:1px solid var(--line);border-radius:9px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stats article,.panel{background:white;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 20px rgba(15,43,65,.04)}.stats article{padding:19px}.stats small,.stats strong{display:block}.stats small{color:var(--muted)}.stats strong{margin-top:9px;font-size:30px}.panel{margin-top:20px;padding:22px}.panel h2{margin:0 0 14px;font-size:19px}.welcome{padding:28px}.welcome p{max-width:700px;margin-bottom:18px}.primary{padding:10px 17px;color:white;background:var(--blue);border:0;border-radius:9px;font-weight:650;cursor:pointer}.upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}.upload-grid label,.auth-card label{display:grid;gap:6px;color:#526577;font-size:13px;font-weight:600}.upload-grid .wide{grid-column:1/-1}input{width:100%;padding:10px 11px;color:var(--text);background:white;border:1px solid #cddae4;border-radius:8px;outline:none}input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,169,224,.12)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;text-align:left;vertical-align:top;border-bottom:1px solid #e6edf2}th{color:#637687;font-size:12px;text-transform:uppercase;letter-spacing:.04em}td strong,td small{display:block}td small{max-width:300px;margin-top:3px;color:var(--muted);font-size:12px}.badge{display:inline-block;padding:4px 8px;border-radius:99px;font-size:12px;font-weight:700}.badge.ready{color:#14714a;background:#dcf7e9}.badge.pending,.badge.processing{color:#8b5b00;background:#fff0c7}.badge.error{color:#a12424;background:#ffe0e0}.danger{color:#b22b2b!important}.actions{display:flex;gap:5px}.actions form{display:inline}.actions button{padding:6px 8px;color:var(--blue);background:#f5f9fc;border:1px solid var(--line);border-radius:7px;cursor:pointer}.empty{padding:30px;text-align:center;color:var(--muted)}.message-cell{min-width:340px;max-width:700px}.alert{margin:0 0 18px;padding:11px 13px;border-radius:9px}.alert.error{color:#982b2b;background:#ffebeb;border:1px solid #ffd1d1}.alert.success{color:#17613f;background:#e6f8ee;border:1px solid #c7ecd8}.auth-body{display:grid;min-height:100vh;place-items:center;padding:20px;background:radial-gradient(circle at 75% 10%,#d6edf8,transparent 35%),var(--navy)}.auth-card{width:min(430px,100%);padding:30px;background:white;border-radius:18px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.auth-brand{margin-bottom:28px}.auth-brand>span{color:white;background:var(--blue)}.auth-brand h1,.auth-brand p{margin:0}.auth-brand h1{font-size:18px}.auth-brand p{color:var(--muted);font-size:13px}.auth-card h2{margin:0 0 18px}.auth-card form{display:grid;gap:15px}.auth-card .primary{margin-top:5px;padding:12px}@media(max-width:850px){.shell{grid-template-columns:1fr}aside{position:relative;height:auto;padding:14px 18px}.side-brand{display:none}nav{display:flex;margin:0;overflow:auto}nav a{white-space:nowrap}.logout{position:static;float:right;margin-top:-43px}.logout button{width:auto}.content{padding:22px 14px}.stats{grid-template-columns:repeat(2,1fr)}.upload-grid{grid-template-columns:1fr}.upload-grid .wide{grid-column:auto}}@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.content>header{align-items:flex-start}.open-app{font-size:12px}.actions{flex-wrap:wrap}}
