:root{--bg:#0d0e12;--bg-card:#14161a;--bg-elevated:#1b1d23;--border:#292c32;--border-subtle:#202327;--text-primary:#f0f2f4;--text-secondary:#8f96a3;--text-muted:#5e636e;--accent:#3d8af5;--accent-hover:#2078f3;--accent-subtle:#3d8af51f;--accent-glow:#3d8af540;--success:#26d968;--warning:#f5b13d;--danger:#e14747;--danger-subtle:#e147471f;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"Geist Mono", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #04050680;--shadow-md:0 4px 16px #04050666;--shadow-lg:0 12px 48px #04050680;--shadow-card:0 0 0 1px var(--border), var(--shadow-md);--t-fast:.15s ease;--t-smooth:.25s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}.auth-root{grid-template-columns:1fr;min-height:100dvh;display:grid;position:relative;overflow:hidden}@media (min-width:900px){.auth-root{grid-template-columns:1fr 1fr}}.auth-root:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 20% -10%,#0a57c226 0%,#0000 60%),radial-gradient(60% 50% at 80% 110%,#4e1fad1a 0%,#0000 60%);position:fixed;inset:0}.auth-brand{border-right:1px solid var(--border);z-index:1;background:linear-gradient(135deg,#0f1115 0%,#16181d 100%);flex-direction:column;justify-content:space-between;padding:48px;display:none;position:relative;overflow:hidden}@media (min-width:900px){.auth-brand{display:flex}}.auth-brand__bg{pointer-events:none;background:radial-gradient(100% 80% at 30% 20%,#0d6cf214 0%,#0000 70%),radial-gradient(80% 60% at 80% 90%,#6226d90f 0%,#0000 70%);position:absolute;inset:0}.auth-brand__logo{align-items:center;gap:12px;display:flex;position:relative}.auth-brand__logo-icon{background:linear-gradient(135deg, var(--accent) 0%, #9167e4 100%);border-radius:var(--radius-md);width:40px;height:40px;box-shadow:0 4px 16px var(--accent-glow);justify-content:center;align-items:center;display:flex}.auth-brand__logo-text{letter-spacing:-.02em;color:var(--text-primary);font-size:1.1rem;font-weight:700}.auth-brand__content{position:relative}.auth-brand__tagline{letter-spacing:-.04em;color:var(--text-primary);margin-bottom:16px;font-size:2.4rem;font-weight:700;line-height:1.15}.auth-brand__tagline span{background:linear-gradient(135deg, var(--accent), #a17de8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.auth-brand__desc{color:var(--text-secondary);max-width:340px;font-size:1rem;line-height:1.7}.auth-brand__features{flex-direction:column;gap:12px;list-style:none;display:flex;position:relative}.auth-brand__feature{color:var(--text-secondary);align-items:center;gap:12px;font-size:.9rem;display:flex}.auth-brand__feature-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;flex-shrink:0}.auth-panel{z-index:1;justify-content:center;align-items:center;padding:32px 24px;display:flex;position:relative}.auth-card{width:100%;max-width:440px}.auth-card__header{text-align:center;margin-bottom:32px}.auth-card__logo-mobile{justify-content:center;align-items:center;gap:10px;margin-bottom:28px;display:flex}@media (min-width:900px){.auth-card__logo-mobile{display:none}}.auth-card__title{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:6px;font-size:1.75rem;font-weight:700}.auth-card__subtitle{color:var(--text-secondary);font-size:.925rem}.form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--text-secondary);letter-spacing:.01em;font-size:.85rem;font-weight:500}.field__input-wrap{position:relative}.field__icon{color:var(--text-muted);pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.field__input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;height:46px;color:var(--text-primary);font-size:.925rem;font-family:var(--font-sans);transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);outline:none;padding:0 14px 0 40px}.field__input:focus{border-color:var(--accent);background:var(--bg-card);box-shadow:0 0 0 3px var(--accent-subtle)}.field__input::placeholder{color:var(--text-muted)}.field__input.error{border-color:var(--danger)}.field__input.error:focus{box-shadow:0 0 0 3px var(--danger-subtle)}.field__error{color:var(--danger);align-items:center;gap:4px;font-size:.8rem;display:flex}.field__toggle{color:var(--text-muted);border-radius:var(--radius-sm);transition:color var(--t-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.field__toggle:hover{color:var(--text-secondary)}.btn{border-radius:var(--radius-md);height:46px;font-size:.925rem;font-weight:600;font-family:var(--font-sans);transition:all var(--t-smooth);letter-spacing:.01em;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:0 20px;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";transition:background var(--t-fast);background:#fff0;position:absolute;inset:0}.btn:hover:after{background:#ffffff0f}.btn:active:after{background:#00000014}.btn--primary{background:var(--accent);color:#0d0e12}.btn--primary:hover{background:var(--accent-hover)}.btn--ghost{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border)}.btn--ghost:hover{background:#21252b;border-color:#32363e}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.divider{align-items:center;gap:12px;margin:4px 0;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.divider__text{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.oauth-buttons{flex-direction:column;gap:10px;display:flex}.oauth-btn{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);height:44px;color:var(--text-primary);font-size:.9rem;font-weight:500;font-family:var(--font-sans);transition:all var(--t-fast);cursor:pointer;justify-content:center;align-items:center;gap:10px;width:100%;padding:0 16px;text-decoration:none;display:flex}.oauth-btn:hover{background:#1f2228;border-color:#32363e;transform:translateY(-1px)}.oauth-btn:active{transform:translateY(0)}.alert{border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:12px 14px;font-size:.875rem;line-height:1.5;display:flex}.alert--error{background:var(--danger-subtle);color:#eb8484;border:1px solid #e1474740}.alert--success{color:#67e495;background:#26d9681a;border:1px solid #26d96840}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:24px;font-size:.875rem}.auth-footer a{color:var(--accent);transition:color var(--t-fast);font-weight:500}.auth-footer a:hover{color:var(--accent-hover)}.dashboard-root{flex-direction:column;min-height:100dvh;display:flex}.dashboard-nav{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex;position:sticky;top:0}.dashboard-nav__logo{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1rem;font-weight:700;display:flex}.dashboard-nav__actions{align-items:center;gap:12px;display:flex}.avatar{border-radius:var(--radius-full);background:var(--accent-subtle);border:1.5px solid var(--border);width:34px;height:34px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex;overflow:hidden}.dashboard-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:40px 32px}.dashboard-header{margin-bottom:36px}.dashboard-header__greeting{color:var(--text-secondary);margin-bottom:4px;font-size:.9rem}.dashboard-header__name{letter-spacing:-.03em;color:var(--text-primary);font-size:2rem;font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:40px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--t-fast), transform var(--t-fast);padding:20px 24px}.stat-card:hover{border-color:var(--accent);transform:translateY(-2px)}.stat-card__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.8rem}.stat-card__value{letter-spacing:-.03em;color:var(--text-primary);font-size:1.75rem;font-weight:700}.section-title{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:16px;font-size:1.1rem;font-weight:600}.badge{border-radius:var(--radius-full);letter-spacing:.02em;text-transform:uppercase;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge--success{color:#52e086;background:#26d9681f}.badge--warning{color:#f7c56e;background:#f5b13d1f}.badge--neutral{background:var(--bg-elevated);color:var(--text-secondary)}.apps-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.app-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--t-smooth), box-shadow var(--t-smooth), transform var(--t-smooth);padding:20px}.app-card:hover{box-shadow:var(--shadow-md);border-color:#373b43;transform:translateY(-2px)}.app-card__header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.app-card__name{color:var(--text-primary);letter-spacing:-.01em;font-size:1rem;font-weight:600}.app-card__desc{color:var(--text-secondary);margin-bottom:16px;font-size:.85rem;line-height:1.6}.app-card__footer{justify-content:space-between;align-items:center;display:flex}.code-tag{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:3px 8px;font-size:.72rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:.4s cubic-bezier(.4,0,.2,1) forwards fadeUp}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#393e46}
