*,:before,:after{box-sizing:border-box}:root{--bg:#f3f4f8;--surface:#fff;--border:#e5e7eb;--text:#1f2937;--text-muted:#6b7280;--accent:#6366f1;--accent-hover:#4f46e5;--accent-light:#eef2ff;--danger:#ef4444;--radius:10px;--shadow:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014;color:var(--text);background:var(--bg);font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:15px}body{margin:0}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/200% 100%;animation:1.4s infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.auth-container{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-hero{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.auth-hero h1{color:var(--accent);letter-spacing:-1px;margin:0;font-size:42px;font-weight:800}.auth-tagline{color:var(--text-muted);margin:0 0 8px;font-size:16px}.github-btn{color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);background:#24292f;align-items:center;gap:10px;padding:13px 28px;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.github-btn:hover{background:#1a1f24;text-decoration:none;transform:translateY(-1px)}.auth-container h1{color:var(--accent);letter-spacing:-.5px;margin:0 0 24px;font-size:28px;font-weight:700}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow-md);flex-direction:column;gap:16px;padding:32px;display:flex}.auth-form h2{margin:0;font-size:20px;font-weight:600}.auth-form label{color:var(--text);flex-direction:column;gap:6px;font-size:14px;font-weight:500;display:flex}.auth-form input{border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;padding:10px 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f11f}.auth-form button[type=submit]{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:11px;font-size:15px;font-weight:500;transition:background .15s}.auth-form button[type=submit]:hover{background:var(--accent-hover)}.auth-form p{color:var(--text-muted);text-align:center;margin:0;font-size:14px}.error{color:var(--danger);margin:0;font-size:14px}.dashboard{max-width:960px;margin:0 auto;padding:24px 20px 80px}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.dashboard-header h1{color:var(--accent);letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.header-right{align-items:center;gap:12px;display:flex}.last-updated{color:var(--text-muted);font-size:12px}.logout-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-muted);border-radius:6px;padding:8px 16px;font-size:14px;transition:all .15s}.logout-btn:hover{border-color:var(--accent);color:var(--accent)}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:flex-start;gap:24px;margin-bottom:16px;padding:28px;display:flex}.avatar{border:3px solid var(--accent-light);border-radius:50%;flex-shrink:0;width:88px;height:88px}.profile-info{flex-direction:column;gap:6px;display:flex}.profile-info h2{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.login,.bio{color:var(--text-muted);margin:0;font-size:14px}.profile-stats{color:var(--text-muted);gap:20px;margin-top:4px;font-size:14px;display:flex}.profile-stats strong{color:var(--text)}.stats-bar{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.stat-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:18px 20px;display:flex}.stat-value{color:var(--accent);letter-spacing:-.5px;font-size:26px;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.charts-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 20px 12px}.chart-card h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;font-size:14px;font-weight:600}.activity-section{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.chart-card--wide{width:100%}.pr-metrics{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pr-metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:20px 24px;display:flex}.pr-metric-value{color:var(--accent);letter-spacing:-1px;font-size:32px;font-weight:700;line-height:1}.pr-metric-label{color:var(--text);font-size:13px;font-weight:600}.pr-metric-sub{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.repos-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.repos-toolbar h2{align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;display:flex}.repo-count{background:var(--accent-light);color:var(--accent);border-radius:20px;padding:2px 8px;font-size:13px;font-weight:500}.repos-controls{gap:10px;display:flex}.search-input,.sort-select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;outline:none;padding:8px 12px;font-size:14px;transition:border-color .15s}.search-input:focus,.sort-select:focus{border-color:var(--accent)}.search-input{width:180px}.repo-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.repo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:16px 20px;transition:border-color .15s,box-shadow .15s;display:flex}.repo-card:hover{box-shadow:var(--shadow-md);border-color:#c7d2fe}.repo-header{align-items:center;gap:10px;display:flex}.repo-name{color:var(--accent);font-size:15px;font-weight:600}.repo-name:hover{text-decoration:underline}.badge{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.badge.public{color:#15803d;background:#dcfce7}.badge.private{color:#92400e;background:#fef3c7}.repo-desc{color:var(--text-muted);margin:0;font-size:13px}.repo-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:16px;font-size:13px;display:flex}.language{color:var(--text);font-weight:600}.updated{margin-left:auto}.empty{color:var(--text-muted);text-align:center;padding:32px 0;font-size:14px}.connect-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:48px 32px}.connect-section h2{margin:0 0 8px;font-size:22px;font-weight:700}.connect-section p{color:var(--text-muted);margin-bottom:24px}.connect-section code{background:#f3f4f6;border-radius:4px;padding:2px 6px;font-family:ui-monospace,monospace;font-size:13px}.connect-form{flex-flow:column wrap;justify-content:center;align-items:center;gap:10px;display:flex}.connect-form input{border:1px solid var(--border);border-radius:6px;outline:none;width:340px;padding:11px 16px;font-size:14px;transition:border-color .15s}.connect-form input:focus{border-color:var(--accent)}.connect-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:11px 28px;font-size:14px;font-weight:500;transition:background .15s}.connect-form button:hover{background:var(--accent-hover)}@media (width<=640px){.stats-bar{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}.repos-toolbar{flex-direction:column;align-items:flex-start}.repos-controls{width:100%}.search-input{flex:1}.profile-card{flex-direction:column}.updated{margin-left:0}}
