*{margin:0;padding:0;box-sizing:border-box}:root{--teal:#19C9B0;--teal-dim:rgba(25,201,176,.1);--teal-glow:rgba(25,201,176,.2);--purple:#9B5CFF;--coral:#E05470;--gold:#F0B429;--bg:#F6F9FA;--white:#FFFFFF;--card2:#F1F5F6;--border:rgba(27,36,48,.05);--text:#1B2430;--text-secondary:#7A8A9D;--ink:#0D1117;--grad:linear-gradient(135deg,var(--teal) 0%,#1A8FD1 100%);--shadow:0 2px 14px rgba(27,36,48,.05),0 1px 2px rgba(27,36,48,.03);--radius:20px;--radius-sm:14px;--bottom-nav-h:60px;--danger:#E05470;--success:#27B87A}body.dark-mode{--bg:#0D1117;--white:#161B27;--card2:#1C2333;--border:rgba(255,255,255,.05);--text:#CDD5E0;--text-secondary:#7686A0}body{font-family:Inter,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px}.auth-tabs{display:flex;gap:8px;background:var(--card2);border-radius:var(--radius-sm);padding:4px}.auth-tab{flex:1;padding:10px 20px;border:none;background:none;border-radius:var(--radius-sm);font-weight:700;color:var(--text-secondary);cursor:pointer}.auth-tab.active{background:var(--white);color:var(--teal);box-shadow:var(--shadow)}.login-form,.register-form{display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px}.login-form input,.register-form input,.register-form select{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);color:var(--text);font-size:.95rem}.login-form button,.register-form button{padding:12px;border:none;border-radius:var(--radius-sm);background:var(--grad);color:#fff;font-weight:700;cursor:pointer}.login-form button[disabled],.register-form button[disabled]{opacity:.6;cursor:not-allowed}.msg{padding:8px 12px;border-radius:10px;font-size:.85rem}.msg.error{background:#e054701a;color:var(--danger)}.msg.success{background:#27b87a1a;color:var(--success)}.reg-progress{display:flex;gap:8px;justify-content:center}.reg-progress span{width:28px;height:28px;border-radius:50%;background:var(--card2);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.reg-progress span.active{background:var(--teal);color:#fff}.app-page{min-height:100vh;display:flex;flex-direction:column;padding-bottom:var(--bottom-nav-h)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--white);box-shadow:var(--shadow);position:sticky;top:0;z-index:10}.brand{font-weight:800;color:var(--teal)}.topbar button{border:none;background:var(--card2);padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text)}.page-content{flex:1;padding:16px}.placeholder-page{text-align:center;padding:60px 20px;color:var(--text-secondary)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:var(--white);display:flex;border-top:1px solid var(--border);z-index:10}.bottom-nav a{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);text-decoration:none;font-size:.85rem;font-weight:600}.bottom-nav a.active{color:var(--teal)}.loading-state{display:flex;align-items:center;justify-content:center;min-height:100vh}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
