*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b1120;--surface:#131a2e;--border:#1e2a45;--text:#e0e6f0;--muted:#ffffff73;--accent:#4fc3f7;--accent-hover:#81d4fa;--danger:#ef5350;--success:#66bb6a}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading{height:100vh;color:var(--muted);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.app>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.app>header h1{color:var(--accent);letter-spacing:1px;font-size:1.5rem}.sign-out{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem 1rem}.sign-out:hover{color:var(--text);border-color:var(--text)}.login-page{justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;width:360px;padding:3rem}.login-card h1{color:var(--accent);margin-bottom:.25rem;font-size:2rem}.login-card p{color:var(--muted);margin-bottom:1.5rem}.login-card form{flex-direction:column;gap:.75rem;display:flex}.login-card input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.75rem 1rem;font-size:.95rem}.login-card input:focus{border-color:var(--accent);outline:none}.error{color:var(--danger);font-size:.85rem}nav{border-bottom:1px solid var(--border);gap:0;padding:0 2rem;display:flex}nav button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:1rem 1.5rem;font-size:.95rem;transition:all .2s}nav button:hover{color:var(--text)}nav button.active{color:var(--accent);border-bottom-color:var(--accent)}.status-bar{background:var(--accent);color:var(--bg);padding:.6rem 2rem;font-size:.9rem;font-weight:600}.panel{padding:2rem}.panel h2{margin-bottom:1.5rem;font-size:1.3rem}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem}.card h3{color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:.75rem;font-size:.85rem}.connected{color:var(--success);font-weight:600}button{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:background .2s}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:.8rem}.panel form{flex-direction:column;gap:1rem;max-width:500px;display:flex}.panel label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.panel input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.65rem .85rem;font-size:.95rem}.panel input:focus{border-color:var(--accent);outline:none}.upload-area{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.upload-area input[type=file]{color:var(--muted)}.empty{color:var(--muted);font-style:italic}.contract-grid{gap:1rem;display:grid}.contract-form{grid-template-columns:1fr 1fr;gap:.75rem;max-width:100%;display:grid}.contract-form button{grid-column:1/-1;justify-self:start}.panel select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.65rem .85rem;font-size:.95rem}.panel select:focus{border-color:var(--accent);outline:none}
