*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f172a;--bg2:#1e293b;--bg3:#0f172a;--border:#334155;--text:#e2e8f0;--text-muted:#94a3b8;--accent:#818cf8;--accent2:#c084fc;--gold:#f59e0b;--danger:#ef4444;--success:#22c55e;--radius:8px;--shadow:0 4px 24px #0006}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.5}#auth-overlay{background:var(--bg);z-index:1000;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.auth-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:2rem}.auth-card h2{text-align:center;color:var(--accent);margin-bottom:1.5rem;font-size:1.3rem}.auth-tabs{border-radius:var(--radius);border:1px solid var(--border);gap:0;margin-bottom:1.5rem;display:flex;overflow:hidden}.auth-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:.6rem;font-size:.9rem;transition:background .2s,color .2s}.auth-tab.active{background:var(--accent);color:#fff}#login-form,#register-form{flex-direction:column;gap:.75rem;display:flex}#login-form input,#register-form input{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:.6rem .8rem;font-size:.95rem}.auth-error{color:#ef4444;min-height:1.2em;font-size:.85rem}.auth-note{color:var(--text-muted);text-align:center;font-size:.8rem}.user-badge{color:var(--text-muted);align-items:center;gap:.75rem;margin-left:auto;font-size:.85rem;display:flex}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .8rem}.admin-table th{color:var(--text-muted);font-weight:600}.role-badge{border-radius:999px;padding:.15rem .5rem;font-size:.8rem;font-weight:600}.role-badge.role-admin{color:var(--accent);background:#312e81}.role-badge.role-user{color:var(--text-muted);background:#1e293b}header{background:var(--bg2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1.5rem;padding:0 1rem;display:flex}header h1{color:var(--accent);white-space:nowrap;padding:.8rem 0;font-size:1.2rem;font-weight:700}.tab-bar{gap:.2rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.9rem 1.1rem;font-size:.85rem;transition:all .2s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-pane{display:none}.tab-pane.active{display:block}.app-layout{gap:0;min-height:calc(100vh - 50px);display:flex}.sidebar{background:var(--bg2);border-right:1px solid var(--border);width:300px;min-width:280px;padding:1.2rem;overflow-y:auto}.main-area{flex-direction:column;flex:1;gap:1.2rem;padding:1.2rem;display:flex;overflow-y:auto}.form-section h2{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:1rem;font-size:.9rem}.form-group{margin-bottom:.9rem}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.78rem;display:block}.form-group input,.form-group select{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:.5rem .7rem;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--accent)}.form-row{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.city-row{align-items:flex-end;gap:.5rem;display:flex}.city-row input{flex:1}.city-found{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:.25rem;font-size:.75rem;overflow:hidden}button{cursor:pointer;border-radius:var(--radius);border:none;padding:.5rem .9rem;font-size:.85rem;transition:all .2s}button:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;width:100%;margin-top:.5rem;padding:.65rem;font-weight:600}.btn-primary:hover:not(:disabled){background:#6366f1}.btn-secondary{background:var(--bg3);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-small{padding:.35rem .7rem;font-size:.8rem}.time-nav{align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.time-nav-btn{background:var(--bg3);border:1px solid var(--border);color:var(--accent);border-radius:var(--radius);flex-shrink:0;padding:.5rem .8rem;font-size:1rem;line-height:1;transition:all .15s}.time-nav-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.time-nav-btn:active:not(:disabled){transform:scale(.93)}.time-nav-display{text-align:center;color:var(--gold);word-break:break-all;flex:1;font-family:monospace;font-size:.78rem;line-height:1.3}.aspect-filters{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.8rem;padding:.55rem .8rem;display:flex}.filter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;margin-right:.2rem;font-size:.72rem}.aspect-toggle{border:1px solid var(--c,#64748b);color:var(--c,#64748b);opacity:.35;background:0 0;border-radius:4px;padding:.2rem .55rem;font-size:.8rem;line-height:1.4;transition:opacity .15s,background .15s}.aspect-toggle.active{background:color-mix(in srgb, var(--c,#64748b) 18%, transparent);opacity:1}.aspect-toggle:hover{opacity:.75}.chart-wrapper{border-radius:var(--radius);border:1px solid var(--border);background:#0a1128;justify-content:center;margin-bottom:1rem;padding:1rem;display:flex;overflow:visible}#chart-container,#chart-container-t,#chart-container-sr{width:100%;max-width:700px;overflow:visible}#chart-container svg,#chart-container-t svg,#chart-container-sr svg{max-width:100%;height:auto;display:block;overflow:visible}.panels-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel-title{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border-bottom:1px solid var(--border);background:#818cf814;padding:.6rem .8rem;font-size:.78rem;font-weight:600}.panel-body{padding:0}.panel-header{color:var(--text-muted);padding:.4rem .6rem;font-size:.8rem}.data-table{border-collapse:collapse;width:100%;font-size:.82rem}.data-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);text-align:left;background:#ffffff08;padding:.4rem .6rem;font-size:.72rem;font-weight:600}.data-table td{vertical-align:middle;border-bottom:1px solid #33415580;padding:.35rem .6rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#818cf80d}.symbol{text-align:center;color:var(--gold);width:28px;font-size:1.1rem}.position{color:var(--accent2);font-family:monospace}.house-num{text-align:center;color:var(--text-muted)}.retro{color:var(--danger);font-size:.75rem;font-weight:700}.aspect-name{font-weight:600}.orb-val{color:var(--text-muted);font-family:monospace}.no-data{color:var(--text-muted);padding:1rem;font-size:.85rem}.transit-controls{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:.6rem;padding:.8rem 1rem;display:flex}.transit-controls .form-group{margin-bottom:0}.transit-controls label{white-space:nowrap}.transits-list-panel .transit-item{border-bottom:1px solid #33415580;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.82rem;display:grid}.transits-list-panel .transit-item:last-child{border-bottom:none}.t-aspect{text-align:center;font-weight:700}.t-planet{color:var(--text)}.t-orb{color:var(--text-muted);font-family:monospace;font-size:.75rem}.sr-controls{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:.6rem;padding:.8rem 1rem;display:flex}.sr-controls .form-group{margin-bottom:0}.sr-date-info{color:var(--gold);padding:.4rem;font-family:monospace;font-size:.82rem}.chart-title{color:var(--accent2);text-align:center;padding:.4rem;font-size:1rem;font-weight:600}.astrobio-table{font-size:.82rem}.astrobio-row{cursor:pointer;transition:background .12s}.astrobio-row:hover td{background:#818cf814}.astrobio-row.selected td{background:#818cf829}.ab-planet{color:var(--accent2);font-weight:600}.ab-aspect{font-weight:600}.ab-date{color:var(--text-muted);font-family:monospace;font-size:.8rem}.ab-dur{color:var(--gold);font-size:.8rem}.ab-empty{color:var(--text-muted);padding:1.2rem;font-size:.85rem}.ab-chart-body{border-radius:0 0 var(--radius) var(--radius);background:#0a1128;padding:.8rem}@media (width<=700px){.app-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%}header{gap:.5rem}.tab-btn{padding:.7rem;font-size:.8rem}}
