@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap";:root{--bg-primary:#e0f2fe;--bg-secondary:#f0f9ff;--bg-tertiary:#bae6fd;--glass-bg:#ffffffb3;--glass-border:#0ea5e926;--glass-highlight:#ffffff80;--accent-gold:#b45309;--accent-gold-rgb:180, 83, 9;--accent-gold-hover:#92400e;--accent-purple:#6d28d9;--accent-purple-rgb:109, 40, 217;--accent-purple-hover:#5b21b6;--accent-rose:#be185d;--accent-rose-hover:#9d174d;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--success:#059669;--danger:#dc2626;--warning:#d97706;--font-sans:"Outfit", sans-serif;--font-serif:"Playfair Display", serif;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1);--transition-slow:.5s cubic-bezier(.4, 0, .2, 1);--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:32px;--shadow-sm:0 2px 8px #0f172a0d;--shadow-md:0 8px 24px #0f172a14;--shadow-lg:0 16px 48px #0f172a1f;--shadow-gold:0 4px 14px #b453091f;--shadow-purple:0 4px 14px #6d28d91f}*{box-sizing:border-box;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}html,body{overscroll-behavior-x:none;overflow-x:clip}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;position:relative}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#38bdf852 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:fixed;top:-200px;left:-200px}body:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#8b5cf638 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:fixed;bottom:-200px;right:-200px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:600}.serif-title{font-family:var(--font-serif);font-weight:700}.glass-panel{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-fast)}.left-sidebar .glass-panel{background:linear-gradient(135deg,#fffc,#f8fafcd9);border:1px solid #0ea5e91f;box-shadow:0 4px 20px -4px #0ea5e90d,0 1px 3px #00000003}main .glass-panel{background:linear-gradient(135deg,#fffffff2,#fdfeffe6);border:1px solid #0ea5e92e;box-shadow:0 12px 30px -10px #0ea5e91f,0 2px 8px #00000005}main .glass-panel-hover:hover{border-color:#0ea5e959;transform:translateY(-2px);box-shadow:0 20px 40px -12px #0ea5e933,0 2px 10px #00000008}.right-sidebar .glass-panel{background:linear-gradient(135deg,#f0f9ffe6,#e0f2fed9);border:1px solid #0ea5e938;box-shadow:0 10px 30px -10px #0ea5e924}.modal-content.glass-panel{background:linear-gradient(135deg,#fff 0%,#f3f8ff 100%);border:1px solid #0ea5e94d;box-shadow:0 25px 50px -12px #0ea5e940}.app-container{grid-template-columns:260px minmax(0,1fr) 320px;gap:24px;max-width:1600px;min-height:100vh;margin:0 auto;padding:24px;display:grid}main{min-width:0}.left-sidebar,.right-sidebar{width:100%;min-width:0}@media (width<=1380px) and (width>=1080px){.app-container{grid-template-columns:210px minmax(0,1fr) 290px;gap:16px;padding:16px}}@media (width<=1079px) and (width>=768px){.app-container{grid-template-columns:72px minmax(0,1fr);gap:16px;padding:16px}.left-sidebar{width:72px;min-width:72px}.left-sidebar-full{display:none!important}.left-sidebar-compact{display:flex!important}.right-sidebar{display:none!important}.connections-drawer-btn{display:inline-flex!important}}@media (width<=767px){.app-container{grid-template-columns:minmax(0,1fr);gap:16px;padding:12px 12px 24px}.left-sidebar,.left-sidebar-compact,.right-sidebar{display:none!important}.mobile-top-header{display:flex!important}}.connections-drawer-btn{display:none}.left-sidebar-compact{border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:16px;height:calc(100vh - 32px);padding:20px 8px;display:none;position:sticky;top:16px}.left-sidebar-compact .rail-icon-btn{border:1px solid var(--glass-border);width:44px;height:44px;color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.left-sidebar-compact .rail-icon-btn:hover{background:#ffffff1f;transform:translateY(-2px)}.mobile-top-header{z-index:900;-webkit-backdrop-filter:blur(12px);background:linear-gradient(135deg,#fffffff2,#f8fafcf2);border-bottom:1px solid #0ea5e92e;justify-content:space-between;align-items:center;margin:-12px -12px 12px;padding:10px 14px;display:none;position:sticky;top:0;box-shadow:0 4px 14px #0f172a0a}.mobile-bottom-nav{z-index:1000;-webkit-backdrop-filter:blur(16px);background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);border-top:1px solid #ffffff1f;justify-content:space-around;align-items:center;height:64px;padding:0 8px;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #00000059}.mobile-nav-item{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px;font-size:.65rem;font-weight:600;transition:color .2s;display:flex}.mobile-nav-item.active,.mobile-nav-item:hover{color:var(--accent-gold)}.mobile-nav-item-primary{background:linear-gradient(135deg, var(--accent-gold), #b89146);color:#0b0c16;cursor:pointer;border:3px solid #0f172a;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-top:-20px;transition:transform .2s;display:flex;box-shadow:0 6px 18px #b4530980}.mobile-nav-item-primary:active{transform:scale(.92)}.drawer-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0f172a66;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-content{background:#fff;border-left:1px solid #0ea5e933;flex-direction:column;gap:20px;width:380px;max-width:90vw;height:100vh;padding:24px 20px;display:flex;overflow-y:auto;box-shadow:-12px 0 32px #0f172a29}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-left{animation:.3s cubic-bezier(.16,1,.3,1) forwards slideLeft}.mobile-fab-only{display:flex}@media (width>=769px){.mobile-fab-only{display:none!important}}.input-group{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.input-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.input-field{border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition-fast);background:#ffffffb3;border:1px solid #0ea5e933;padding:12px 16px;font-size:.95rem}.input-field:focus{border-color:var(--accent-purple);background:#fff;outline:none;box-shadow:0 0 0 3px #6d28d926}.select-field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.95rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;box-shadow:var(--shadow-purple)}.btn-primary:hover{background:linear-gradient(135deg, var(--accent-purple-hover), #4f46e5);box-shadow:0 0 24px rgba(var(--accent-purple-rgb), .3)}.btn-secondary{color:var(--text-primary);background:#fff9;border-color:#0ea5e933}.btn-secondary:hover{background:#fffffff2;border-color:#0ea5e959}.btn-gold{color:#fff;box-shadow:var(--shadow-gold);background:linear-gradient(135deg,#e0a943,#b45309)}.btn-gold:hover{background:linear-gradient(135deg,#f1be5c,#92400e);box-shadow:0 4px 18px #b4530940}.badge{letter-spacing:.02em;border-radius:9999px;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-gold{background:rgba(var(--accent-gold-rgb), .1);color:var(--accent-gold);border:1px solid rgba(var(--accent-gold-rgb), .25)}.badge-purple{background:rgba(var(--accent-purple-rgb), .1);color:#c084fc;border:1px solid rgba(var(--accent-purple-rgb), .25)}.badge-secondary{color:var(--text-secondary);border:1px solid var(--glass-border);background:#ffffff0d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.animate-slide-up{animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUp}.animate-scale-up{animation:.3s cubic-bezier(.16,1,.3,1) forwards scaleUp}.waveform-container{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#ffffff05;margin-top:12px;padding:16px}.waveform-timeline{color:var(--text-muted);justify-content:space-between;margin-top:8px;font-size:.75rem;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:1100;background:#07080fcc;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:540px;max-height:90vh;overflow-y:auto}@media (width<=767px){.modal-backdrop{align-items:center;padding:16px}.modal-content{max-height:88vh;border-radius:var(--radius-lg)!important}.feed-header-title-wrap{display:none!important}.feed-header-panel{box-shadow:none!important;background:0 0!important;border:none!important;justify-content:center!important;padding:4px 0!important}}.assignments-panel-wrap{padding:16px 20px}.assignments-grid{flex-direction:column;gap:12px;display:flex}@media (width<=767px){.assignments-panel-wrap{padding:12px 14px!important}.assignments-grid{gap:10px}}
