:root{color-scheme:dark;--purple:#a66bff;--panel:rgba(15,9,32,.88);--line:rgba(174,107,255,.38);--text:#f6f2ff;--muted:#b8a9cf}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:#05030d url('/assets/cosmic_bg.png') center/cover fixed}
.shell{width:min(1050px,calc(100% - 28px));margin:34px auto}
header{display:flex;align-items:center;gap:15px;margin-bottom:22px;padding:18px 24px;border:1px solid var(--line);border-radius:20px;background:rgba(7,4,18,.8);box-shadow:0 0 30px rgba(128,55,230,.2)}
header img{width:50px;height:50px;object-fit:contain}
h1{font-size:31px;line-height:1;margin:0;letter-spacing:.7px}h1 span{color:var(--purple)}
header p{margin:7px 0 0;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:1.6px}
.card{margin:16px 0;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:0 16px 42px rgba(0,0,0,.34)}
h2{margin:0 0 7px;font-size:20px}.section-title{display:flex;justify-content:space-between;align-items:start}.section-title p,.card p{color:var(--muted);margin:0 0 18px}
.logout-form{margin:0}.logout-form button{padding:8px 13px;font-size:12px}
.scan-form{display:grid;grid-template-columns:repeat(4,minmax(125px,1fr));gap:14px;align-items:end}.scan-form button{grid-column:1/-1}input[type=hidden]{display:none}
label{display:grid;gap:7px;color:#d8caec;font-size:13px;font-weight:700}
input,textarea{width:100%;border:1px solid rgba(177,117,255,.42);border-radius:11px;background:rgba(4,2,12,.85);padding:12px;color:white;font:inherit;outline:none}
input:focus,textarea:focus{border-color:#bd87ff;box-shadow:0 0 0 3px rgba(166,107,255,.14)}textarea{margin:8px 0 12px;resize:vertical;font-family:ui-monospace,Consolas,monospace;font-size:13px}
button{border:1px solid rgba(204,159,255,.65);border-radius:12px;padding:12px 18px;color:white;background:#422172;font-weight:800;cursor:pointer}button:hover{filter:brightness(1.16)}button.primary{font-size:16px;background:linear-gradient(90deg,#6f36cf,#a253e7);box-shadow:0 0 24px rgba(151,71,233,.24)}
summary{cursor:pointer;font-weight:800;font-size:16px}.outputs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.outputs span{padding:13px 10px;border-radius:12px;text-align:center;background:rgba(118,63,190,.2);border:1px solid rgba(177,117,255,.25);color:#dfd3f1;font-size:13px;font-weight:700}.info p{margin:17px 0 0}
.flash{margin:14px 0;padding:14px 17px;border-radius:12px;font-weight:700}.flash.success{background:rgba(28,164,105,.22);border:1px solid rgba(61,224,152,.5)}.flash.error{background:rgba(193,48,79,.22);border:1px solid rgba(255,91,116,.55)}
.login{max-width:480px;margin:70px auto}.login form{display:grid;gap:14px}
@media(max-width:760px){.scan-form{grid-template-columns:1fr 1fr}.outputs{grid-template-columns:1fr 1fr}.shell{margin:14px auto}.card{padding:18px}header{padding:15px}}
