:root{--bg: #fafafa;--surface: #ffffff;--border: #e8e8e8;--border-strong: #d4d4d4;--text: #171717;--text-secondary: #525252;--text-muted: #737373;--accent: #171717;--accent-soft: #f5f5f5;--radius: 10px;--radius-sm: 6px;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 4px 24px rgba(0, 0, 0, .06);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4.5rem;--max-w: 1120px;--sidebar-w: 240px}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit}body.auth-page{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);font-family:var(--font-sans);background:radial-gradient(120% 80% at 50% -20%,#e8e8e8,var(--bg))}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-xl)}.auth-logo{display:inline-block;font-weight:700;color:var(--text);text-decoration:none;margin-bottom:var(--space-md)}.auth-card h1{margin:0 0 var(--space-sm);font-size:1.35rem}.auth-lead{margin:0 0 var(--space-lg);color:var(--text-secondary);font-size:.95rem;line-height:1.45}.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:var(--space-md)}.auth-card label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-lg)}.auth-card label input{display:block;width:100%;margin-top:var(--space-xs);padding:.55rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit}.auth-submit{width:100%;margin-top:var(--space-sm)}.auth-google-frame{width:100%}.auth-google{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:flex-start;gap:.75rem;min-height:44px;padding:.5rem .875rem .5rem .625rem;text-decoration:none;border:1px solid #dadce0;border-radius:4px;background:#fff;box-shadow:0 1px 1px #0000000d;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.auth-google:hover{background:#f8f9fa;border-color:#d2d2d2;box-shadow:0 1px 2px #3c40431a}.auth-google:active{background:#f1f3f4;border-color:#bdc1c6}.auth-google:focus-visible{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px #fff,0 0 0 4px #1a73e8}.auth-google__icon-box{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:2px;background:#fff}.auth-google__mark{display:block;width:20px;height:20px}.auth-google__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.05rem;min-width:0;font-family:Roboto,system-ui,-apple-system,sans-serif}.auth-google__kicker{font-size:.6875rem;font-weight:400;line-height:1.2;color:#5f6368;letter-spacing:.01em}.auth-google__wordmark{display:inline-flex;align-items:baseline;font-size:1.0625rem;font-weight:500;line-height:1.15;letter-spacing:-.02em}.auth-google__w--1{color:#4285f4}.auth-google__w--2{color:#ea4335}.auth-google__w--3{color:#fbbc05}.auth-google__w--4{color:#4285f4}.auth-google__w--5{color:#34a853}.auth-google__w--6{color:#ea4335}.auth-google__fineprint{margin:.5rem 0 0;font-family:Roboto,system-ui,sans-serif;font-size:.6875rem;line-height:1.35;color:#80868b;text-align:center}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--text-muted);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-footer{margin:var(--space-lg) 0 0;text-align:center;font-size:.875rem;color:var(--text-secondary)}.auth-footer a{color:var(--text);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1rem;border-radius:var(--radius-sm);font:inherit;font-weight:600;font-size:.875rem;cursor:pointer;border:none}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{opacity:.92}.btn--outline{background:transparent;border:1px solid var(--border-strong);color:var(--text)}
