.login-view{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-container{width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:2rem;color:#fff}.login-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.login-header p{font-size:1.125rem;opacity:.9}.login-card{background-color:var(--surface);border-radius:.75rem;box-shadow:var(--shadow-lg);padding:2rem}.login-tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid var(--border)}.login-tab{flex:1;padding:.75rem;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:1rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.login-tab:hover{color:var(--text-primary)}.login-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.login-form{margin-bottom:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--text-primary)}.input-hint{margin-top:.25rem;font-size:.75rem;color:var(--text-secondary)}.error-message{padding:.75rem 1rem;background-color:var(--danger-bg);border:1px solid var(--danger-border);border-radius:.375rem;color:var(--danger);font-size:.875rem;margin-bottom:1rem}.btn-block{width:100%;justify-content:center}.btn-github{width:100%;padding:.75rem 1rem;background-color:#24292e;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-github:hover:not(:disabled){background-color:#1b1f23}.btn-github:disabled{opacity:.5;cursor:not-allowed}.divider{position:relative;text-align:center;margin:1.5rem 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:var(--border)}.divider span{position:relative;background-color:var(--surface);padding:0 1rem;color:var(--text-secondary);font-size:.875rem}.password-wrapper{position:relative}.password-wrapper .form-input{padding-right:2.5rem}.toggle-password{position:absolute;top:50%;right:.75rem;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-secondary)}.toggle-password:hover{color:var(--text-primary)}*{box-sizing:border-box;margin:0;padding:0}:root,:root[data-theme=light]{color-scheme:light;--primary-color: #2563eb;--primary-hover: #1d4ed8;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-dim: #dbeafe;--secondary-color: #6b7280;--secondary-hover: #4b5563;--background: #f9fafb;--surface: #ffffff;--border: #e5e7eb;--border-color: #e0e0e0;--text-primary: #111827;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--text-muted: #6b7280;--text-info: #2563eb;--bg-primary: #ffffff;--bg-secondary: #f3f4f6;--bg-tertiary: #e5e7eb;--bg-sidebar: #f9fafb;--bg-tab-bar: #f3f4f6;--bg-hover: #f3f4f6;--bg-active: #e5e7eb;--bg-input: #ffffff;--bg-code: #f3f4f6;--sidebar-bg: #f3f4f6;--hover-bg: rgba(17, 24, 39, .06);--focus-ring: rgba(37, 99, 235, .16);--info-bg: rgba(37, 99, 235, .1);--info-bg-strong: rgba(37, 99, 235, .16);--success: #16a34a;--success-hover: #15803d;--success-bg: rgba(22, 163, 74, .1);--warning: #d97706;--warning-bg: rgba(217, 119, 6, .1);--danger: #dc2626;--danger-hover: #b91c1c;--danger-bg: rgba(220, 38, 38, .1);--danger-border: #ef4444;--overlay: rgba(0, 0, 0, .45);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1)}:root[data-theme=dark]{color-scheme:dark;--primary-color: #2563eb;--primary-hover: #1d4ed8;--accent: #60a5fa;--accent-hover: #93c5fd;--accent-dim: #1e3a5f;--secondary-color: #9ca3af;--secondary-hover: #d1d5db;--background: #111827;--surface: #1f2937;--border: #374151;--border-color: #3e3e42;--text-primary: #f9fafb;--text-secondary: #d1d5db;--text-tertiary: #9ca3af;--text-muted: #9ca3af;--text-info: #60a5fa;--bg-primary: #1e1e1e;--bg-secondary: #252526;--bg-tertiary: #2d2d30;--bg-sidebar: #252526;--bg-tab-bar: #252526;--bg-hover: #2d2d30;--bg-active: #37373d;--bg-input: #1f2937;--bg-code: #111827;--sidebar-bg: #252526;--hover-bg: rgba(255, 255, 255, .08);--focus-ring: rgba(96, 165, 250, .2);--info-bg: rgba(96, 165, 250, .12);--info-bg-strong: rgba(96, 165, 250, .2);--success: #4ade80;--success-hover: #22c55e;--success-bg: rgba(74, 222, 128, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--danger: #f87171;--danger-hover: #ef4444;--danger-bg: rgba(248, 113, 113, .12);--danger-border: #ef4444;--overlay: rgba(0, 0, 0, .55);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .35), 0 1px 2px -1px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .45), 0 4px 6px -4px rgba(0, 0, 0, .45)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary)}.app{min-height:100vh}.route-loading{min-height:100vh;display:grid;place-items:center;color:var(--text-secondary);background:var(--background);font-size:.95rem}.btn{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-secondary{background-color:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background-color:var(--background)}.icon{font-size:1.25rem;line-height:1}.form-input{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface);color:var(--text-primary);font-size:.875rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--focus-ring)}.text-muted{color:var(--text-secondary);font-size:.875rem}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
