.loading-overlay{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center}.loading-backdrop{position:absolute;inset:0;background:#0f172acc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.loading-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:20px;padding:40px 60px;background:#ffffff1a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;border:1px solid rgba(255,255,255,.2);box-shadow:0 25px 50px -12px #00000040;animation:loadingFadeIn .3s ease}@keyframes loadingFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-theme=light] .loading-content{background:#ffffffe6}.loading-spinner-container{position:relative;width:60px;height:60px}.modern-spinner{width:60px;height:60px;position:relative}.modern-spinner .spinner-circle{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;animation:spinnerRotate 1.5s linear infinite}.modern-spinner .spinner-circle:nth-child(1){border-top-color:#00796b;animation-delay:0s}.modern-spinner .spinner-circle:nth-child(2){width:80%;height:80%;top:10%;left:10%;border-right-color:#26a69a;animation-delay:.15s;animation-direction:reverse}.modern-spinner .spinner-circle:nth-child(3){width:60%;height:60%;top:20%;left:20%;border-bottom-color:#4db6ac;animation-delay:.3s}@keyframes spinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-core{position:absolute;top:50%;left:50%;width:12px;height:12px;background:linear-gradient(135deg,#00796b,#26a69a);border-radius:50%;transform:translate(-50%,-50%);animation:corePulse 1s ease-in-out infinite}@keyframes corePulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.3);opacity:.7}}.loading-text{font-size:1rem;font-weight:500;color:#f1f5f9;text-align:center}[data-theme=light] .loading-text{color:#1e293b}.loading-progress{width:180px;display:flex;flex-direction:column;align-items:center;gap:8px}.progress-bar{width:100%;height:4px;background:#fff3;border-radius:2px;overflow:hidden}[data-theme=light] .progress-bar{background:#0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#00796b,#26a69a,#4db6ac);background-size:200% 100%;border-radius:2px;transition:width .3s ease;animation:progressShine 1.5s ease-in-out infinite}@keyframes progressShine{0%{background-position:100% 0}to{background-position:0 0}}.progress-text{font-size:.8rem;color:#ffffffb3}[data-theme=light] .progress-text{color:#64748b}.cancel-btn{padding:8px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#f1f5f9;font-size:.85rem;cursor:pointer;transition:all .2s ease}.cancel-btn:hover{background:#fff3}[data-theme=light] .cancel-btn{background:#0000000d;border-color:#0000001a;color:#475569}.skeleton{background:linear-gradient(90deg,#0000000f 25%,#0000001a,#0000000f 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite;border-radius:8px}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-text.short{width:40%}.skeleton-text.medium{width:70%}.skeleton-text.long{width:100%}.skeleton-title{height:1.5em;width:60%;margin-bottom:1em}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{height:120px;width:100%;margin-bottom:1rem}.skeleton-button{height:40px;width:120px;border-radius:8px}.page-transition-enter{opacity:0;transform:translateY(10px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}.page-transition-exit{opacity:1;transform:translateY(0)}.page-transition-exit-active{opacity:0;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease}.lazy-loading-container,.lazy-error-container{display:flex;align-items:center;justify-content:center;min-height:200px;padding:40px}.error-content{text-align:center}.error-icon{font-size:3rem;margin-bottom:1rem}.error-content h3{color:var(--theme-text-primary);margin-bottom:.5rem}.error-content p{color:var(--theme-text-secondary);margin-bottom:1.5rem}.mini-spinner{width:20px;height:20px;border:2px solid rgba(0,121,107,.2);border-top-color:#00796b;border-radius:50%;animation:spinnerRotate .8s linear infinite}.mini-spinner.white{border-color:#fff3;border-top-color:#fff}.content-fade-in{animation:contentFadeIn .4s ease}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.loading-content{padding:30px 40px}.loading-spinner-container,.modern-spinner{width:50px;height:50px}.loading-text{font-size:.9rem}.loading-progress{width:150px}}.side-nav{position:fixed;left:0;top:0;bottom:0;width:260px;display:flex;flex-direction:column;background:#ffffffd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-right:1px solid rgba(255,255,255,.3);box-shadow:4px 0 24px #00000014;transition:width .3s cubic-bezier(.4,0,.2,1);z-index:1000}.side-nav.collapsed{width:72px}[data-theme=dark] .side-nav{background:#1a202ce6;border-right:1px solid rgba(255,255,255,.1);box-shadow:4px 0 24px #0000004d}.side-nav-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px;border-bottom:1px solid rgba(0,0,0,.08);min-height:80px}[data-theme=dark] .side-nav-header{border-bottom:1px solid rgba(255,255,255,.08)}.brand-container{display:flex;align-items:center;gap:12px;overflow:hidden}.side-nav-logo{width:40px;height:40px;min-width:40px;min-height:40px;flex-shrink:0;transition:transform .3s ease}.side-nav-logo:hover{transform:scale(1.1) rotate(5deg)}.brand-text{font-size:1.1rem;font-weight:700;color:var(--primary-color);white-space:nowrap;opacity:1;transition:opacity .2s ease,width .3s ease}.side-nav.collapsed .brand-text{opacity:0;width:0;overflow:hidden}.side-nav.collapsed .side-nav-header{flex-direction:column;gap:12px;padding:16px 8px}.side-nav.collapsed .brand-container{justify-content:center}.side-nav.collapsed .collapse-btn{margin:0}.collapse-btn{width:32px;height:32px;border:none;border-radius:8px;background:#0000000d;color:var(--theme-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.collapse-btn:hover{background:#0000001a;color:var(--primary-color)}[data-theme=dark] .collapse-btn{background:#ffffff1a}[data-theme=dark] .collapse-btn:hover{background:#ffffff26}.side-nav-links{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.side-nav-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;color:var(--theme-text-secondary);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .2s ease;white-space:nowrap}.side-nav-item:hover{background:#4a90e21a;color:var(--primary-color);transform:translate(4px)}.side-nav-item.active{background:linear-gradient(135deg,#4a90e226,#357abd1a);color:var(--primary-color);font-weight:600;box-shadow:inset 3px 0 0 var(--primary-color)}.side-nav.collapsed .side-nav-item{justify-content:center;padding:14px}.side-nav.collapsed .side-nav-item.active{box-shadow:none}.nav-icon{width:20px;height:20px;flex-shrink:0;transition:transform .2s ease}.side-nav-item:hover .nav-icon{transform:scale(1.1)}.nav-label{opacity:1;transition:opacity .2s ease}.side-nav.collapsed .nav-label{opacity:0;width:0;overflow:hidden}.side-nav-item.external-link{background:linear-gradient(135deg,#ff6b6b1a,#ee5a240d);border:1px solid rgba(255,107,107,.2)}.side-nav-item.external-link:hover{background:linear-gradient(135deg,#ff6b6b33,#ee5a241a);color:#ee5a24}.side-nav-item.external-link .nav-icon{color:#ff6b6b}.external-badge{margin-left:auto;font-size:.75rem;opacity:.6}.side-nav-footer{padding:16px;border-top:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;gap:12px}[data-theme=dark] .side-nav-footer{border-top:1px solid rgba(255,255,255,.08)}.theme-toggle-btn{display:flex;align-items:center;gap:14px;padding:12px 16px;border:none;border-radius:12px;background:#0000000d;color:var(--theme-text-secondary);cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease;width:100%;text-align:left}.theme-toggle-btn:hover{background:#0000001a;color:var(--theme-text-primary)}[data-theme=dark] .theme-toggle-btn{background:#ffffff1a}[data-theme=dark] .theme-toggle-btn:hover{background:#ffffff26}.side-nav.collapsed .theme-toggle-btn{justify-content:center;padding:12px}.user-section{padding:8px 0}.user-info{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;background:#00000008;position:relative}.user-info.collapsed{justify-content:center;padding:8px}[data-theme=dark] .user-info{background:#ffffff0d}.user-avatar{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;border:2px solid var(--primary-color);object-fit:cover;flex-shrink:0}.push-warning-badge-side{position:absolute;bottom:-2px;right:-2px;width:16px;height:16px;background:#f59e0b;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;border:2px solid var(--theme-bg-card);z-index:2;box-shadow:0 2px 4px #0003;animation:badgePulse 2s infinite}.side-nav.collapsed .push-warning-badge-side{right:2px;bottom:2px}.user-info.collapsed .user-details{display:none}.user-details{display:flex;flex-direction:column;gap:4px;min-width:0}.user-name{font-size:.9rem;font-weight:600;color:var(--theme-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{display:flex;align-items:center;gap:6px;padding:4px 8px;border:none;border-radius:6px;background:#dc35451a;color:#dc3545;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease}.logout-btn:hover{background:#dc354533}.push-subscribe-btn{display:flex;align-items:center;gap:6px;padding:4px 8px;border:none;border-radius:6px;background:#ff98001a;color:#ff9800;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease;margin-top:4px}.push-subscribe-btn:hover{background:#ff980033}.push-subscribe-btn:disabled{opacity:.6;cursor:not-allowed}.push-subscribed-badge{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;background:#4caf501a;color:#4caf50;font-size:.75rem;font-weight:500;margin-top:4px}.admin-btn{display:flex;align-items:center;gap:6px;padding:4px 8px;border:none;border-radius:6px;background:#00796b1a;color:var(--primary-color);cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease;text-decoration:none;margin-top:4px}.admin-btn:hover{background:#00796b33}.google-login-btn{display:flex;justify-content:center}.loading-text{text-align:center;color:var(--theme-text-secondary);font-size:.85rem}.side-nav-tool-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;border-radius:12px;color:var(--theme-text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s ease;position:relative}.side-nav-tool-btn:hover{background:var(--theme-bg-hover);color:var(--theme-text-primary)}.side-nav.collapsed .side-nav-tool-btn{justify-content:center;padding:12px}.lang-wrapper-side{position:relative}.side-lang-dropdown{position:absolute;left:calc(100% + 8px);bottom:0;min-width:160px;background:var(--theme-bg-card);border:1px solid var(--theme-border-primary);border-radius:12px;box-shadow:0 8px 24px #00000026;overflow:hidden;z-index:1100;animation:slideInLeft .2s ease}@keyframes slideInLeft{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.side-lang-dropdown .lang-option{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:transparent;border:none;color:var(--theme-text-primary);font-size:.9rem;cursor:pointer;transition:background .2s ease}.side-lang-dropdown .lang-option:hover{background:var(--theme-bg-hover)}.side-lang-dropdown .lang-option.active{background:#00796b1a;color:var(--primary-color)}.side-lang-dropdown .lang-flag{font-size:1.2rem}.side-lang-dropdown .lang-name{flex:1}.side-lang-dropdown .lang-check{color:var(--primary-color)}.notification-wrapper-side{position:relative}.notification-badge-side{position:absolute;top:6px;left:26px;background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;z-index:2}.side-nav.collapsed .notification-badge-side{left:50%;transform:translate(4px)}.side-notification-dropdown{position:absolute;left:calc(100% + 8px);bottom:0;width:320px;max-height:400px;background:var(--theme-bg-card);border:1px solid var(--theme-border-primary);border-radius:16px;box-shadow:0 12px 32px #0003;overflow:hidden;z-index:1100;animation:slideInLeft .25s ease}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--theme-border-secondary);font-weight:600;color:var(--theme-text-primary)}.mark-all-read{background:none;border:none;color:var(--primary-color);font-size:.8rem;cursor:pointer;transition:opacity .2s}.mark-all-read:hover{opacity:.7}.notification-list-side{max-height:320px;overflow-y:auto}.notification-item-side{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--theme-border-secondary)}.notification-item-side:last-child{border-bottom:none}.notification-item-side:hover{background:var(--theme-bg-secondary)}.notification-item-side.system-warning{background:#f59e0b1a;border-left:3px solid #f59e0b}.notification-item-side.system-warning:hover{background:#f59e0b33}.notification-item-side.system-warning .notification-icon-side{background:#f59e0b33;color:#f59e0b}.notification-item-side.read{opacity:.6}.notification-icon-side{width:32px;height:32px;border-radius:8px;background:#0000000d;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}[data-theme=dark] .notification-icon-side{background:#ffffff1a}.notification-content-side{flex:1;min-width:0}.notification-title-side{font-size:.85rem;font-weight:600;color:var(--theme-text-primary)}.notification-message-side{font-size:.75rem;color:var(--theme-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-time-side{font-size:.7rem;color:var(--theme-text-tertiary);margin-top:2px}.empty-notifications-side{padding:40px 20px;text-align:center;color:var(--theme-text-tertiary)}.empty-notifications-side svg{font-size:2rem;margin-bottom:8px;opacity:.5}.empty-notifications-side p{margin:0;font-size:.85rem}.admin-link-side{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;margin-top:8px;background:linear-gradient(135deg,var(--primary-color),#26a69a);color:#fff;text-decoration:none;border-radius:10px;font-size:.85rem;font-weight:500;transition:all .2s ease}.admin-link-side:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00796b4d}.admin-link-side svg{font-size:.8rem}@media(max-width:768px){.side-nav{display:none}}.new-notification-popup-side{position:absolute;left:100%;top:0;margin-left:10px;width:280px;z-index:1000;animation:popupSlideInSide .3s ease-out}@keyframes popupSlideInSide{0%{opacity:0;transform:translate(-10px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.new-notification-popup-side .popup-content{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.1);box-shadow:0 8px 24px #00000026}.new-notification-popup-side .popup-content:before{content:"";position:absolute;left:-8px;top:12px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid rgba(255,255,255,.95)}.new-notification-popup-side .popup-icon{font-size:1.1rem;flex-shrink:0;margin-top:2px}.new-notification-popup-side .popup-text{flex:1;min-width:0}.new-notification-popup-side .popup-title{font-size:.85rem;font-weight:600;color:#1e293b;margin-bottom:2px}.new-notification-popup-side .popup-message{font-size:.75rem;color:#64748b;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.new-notification-popup-side .popup-close{background:#00000014;border:none;width:20px;height:20px;border-radius:50%;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;transition:background .2s}.new-notification-popup-side .popup-close:hover{background:#00000026}.bottom-sheet-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .25s ease;overscroll-behavior:contain}.bottom-sheet-overlay.active{opacity:1}.bottom-sheet-overlay.closing{opacity:0}.bottom-sheet-container{width:100%;max-height:var(--max-height, 85vh);background:var(--theme-bg-card, #ffffff);border-radius:20px 20px 0 0;box-shadow:0 -10px 40px #00000026;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);overflow:hidden}.bottom-sheet-container.active{transform:translateY(0)}.bottom-sheet-container.closing{transform:translateY(100%)}[data-theme=dark] .bottom-sheet-container{background:var(--theme-bg-card, #2d2d2d);box-shadow:0 -10px 40px #0006}.bottom-sheet-handle{display:flex;justify-content:center;padding:12px 0 8px;flex-shrink:0}.handle-bar{width:36px;height:5px;background:#00000026;border-radius:3px}[data-theme=dark] .handle-bar{background:#fff3}.bottom-sheet-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 20px 16px;border-bottom:1px solid var(--theme-border-secondary, #f0f0f0);flex-shrink:0}.bottom-sheet-handle+.bottom-sheet-header{padding-top:0}[data-theme=dark] .bottom-sheet-header{border-bottom-color:var(--theme-border-primary, #404040)}.header-text{flex:1}.bottom-sheet-title{font-size:1.25rem;font-weight:700;color:var(--theme-text-primary, #333);margin:0 0 4px}.bottom-sheet-subtitle{font-size:.85rem;color:var(--theme-text-secondary, #666);margin:0}.bottom-sheet-close{width:36px;height:36px;border:none;border-radius:50%;background:#0000000f;color:var(--theme-text-secondary, #666);cursor:pointer;display:none;align-items:center;justify-content:center;font-size:1.1rem;transition:all .2s ease;flex-shrink:0;margin-left:12px}.bottom-sheet-close:hover{background:#0000001a;color:var(--theme-text-primary, #333)}[data-theme=dark] .bottom-sheet-close{background:#ffffff1a}[data-theme=dark] .bottom-sheet-close:hover{background:#ffffff26}.bottom-sheet-content{flex:1;overflow-y:auto;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}.bottom-sheet-content::-webkit-scrollbar{width:4px}.bottom-sheet-content::-webkit-scrollbar-track{background:transparent}.bottom-sheet-content::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}[data-theme=dark] .bottom-sheet-content::-webkit-scrollbar-thumb{background:#fff3}@media(min-width:769px){.bottom-sheet-overlay{align-items:center}.bottom-sheet-container{width:90%;max-width:520px;border-radius:20px;box-shadow:0 20px 60px #0003;transform:translateY(30px) scale(.95);opacity:0;transition:transform .3s cubic-bezier(.32,.72,0,1),opacity .3s ease}.bottom-sheet-container.active{transform:translateY(0) scale(1);opacity:1}.bottom-sheet-container.closing{transform:translateY(20px) scale(.98);opacity:0}.bottom-sheet-handle{display:none}.bottom-sheet-close{display:flex}.bottom-sheet-header{padding:20px 24px 16px}.bottom-sheet-handle+.bottom-sheet-header{padding-top:20px}.bottom-sheet-content{padding:20px 24px 24px}}@media(prefers-reduced-motion:reduce){.bottom-sheet-overlay,.bottom-sheet-container{transition:none}.bottom-sheet-container{transform:none;opacity:1}}.bottom-nav{display:none;position:fixed;bottom:16px;left:16px;right:16px;height:64px;background:#ffffffd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:20px;border:1px solid rgba(255,255,255,.3);box-shadow:0 4px 20px #00000014,0 8px 32px #0000000f;justify-content:space-around;align-items:center;padding:0 8px;z-index:1000}[data-theme=dark] .bottom-nav{background:#1a202ce6;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #0003,0 8px 32px #00000026}.bottom-nav-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 10px;border:none;background:none;color:var(--theme-text-secondary);text-decoration:none;font-size:.65rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:12px;min-width:48px;max-width:64px}.tab-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottom-nav-tab:hover{color:var(--primary-color);background:#4a90e21a}.bottom-nav-tab.active{color:var(--primary-color)}.tab-icon{font-size:1.25rem;transition:transform .2s ease}.bottom-nav-tab.active .tab-icon{transform:scale(1.1)}.tab-label{font-weight:500;letter-spacing:.3px}.bottom-nav-tab.active .tab-label{font-weight:600}.bottom-nav-tab.active:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:var(--primary-color);border-radius:0 0 3px 3px}.bottom-nav-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1001;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.more-menu{width:100%;max-height:50vh;background:#fffffff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #00000026;padding-bottom:calc(80px + env(safe-area-inset-bottom,0));animation:slideUp .3s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .more-menu{background:#1a202cfa}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.more-menu-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(0,0,0,.08);font-weight:600;font-size:1.1rem;color:var(--theme-text-primary)}[data-theme=dark] .more-menu-header{border-bottom:1px solid rgba(255,255,255,.1)}.close-btn{width:32px;height:32px;border:none;border-radius:50%;background:#00000014;color:var(--theme-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-btn:hover{background:#00000026}[data-theme=dark] .close-btn{background:#ffffff1a}.more-menu-items{padding:12px 16px;display:flex;flex-direction:column;gap:4px}.more-menu-item{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:14px;color:var(--theme-text-primary);text-decoration:none;font-weight:500;font-size:1rem;transition:all .2s ease}.more-menu-item:hover{background:#4a90e21a}.more-menu-item.active{background:linear-gradient(135deg,#4a90e226,#357abd1a);color:var(--primary-color);font-weight:600}.more-menu-item.external{background:linear-gradient(135deg,#ff6b6b1a,#ee5a240d);border:1px solid rgba(255,107,107,.2)}.more-menu-item.external:hover{background:linear-gradient(135deg,#ff6b6b26,#ee5a241a)}.more-icon{font-size:1.2rem;width:24px;text-align:center}.more-menu-item.external .more-icon{color:#ff6b6b}.external-badge{margin-left:auto;font-size:.85rem;opacity:.6}.install-app-btn{background:linear-gradient(135deg,#00796b1a,#26a69a0d);border:1px solid rgba(0,121,107,.2);cursor:pointer}.install-app-btn:hover{background:linear-gradient(135deg,#00796b26,#26a69a1a)}.install-app-btn .more-icon{color:#00796b}[data-theme=dark] .install-app-btn{background:linear-gradient(135deg,#26a69a26,#00796b1a);border:1px solid rgba(38,166,154,.3)}[data-theme=dark] .install-app-btn:hover{background:linear-gradient(135deg,#26a69a40,#00796b26)}[data-theme=dark] .install-app-btn .more-icon{color:#26a69a}@media(max-width:768px){.bottom-nav{display:flex}}.ig-hint-bubble{position:absolute;top:2px;right:2px;min-width:22px;height:18px;padding:0 5px;background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.5px;border-radius:10px;display:flex;align-items:center;justify-content:center;animation:igBubbleBounce 2s ease-in-out infinite;box-shadow:0 2px 8px #dc274366}[data-theme=dark] .ig-hint-bubble{box-shadow:0 2px 12px #dc274399}@keyframes igBubbleBounce{0%,to{transform:translateY(0) scale(1)}10%{transform:translateY(-6px) scale(1.1)}20%{transform:translateY(0) scale(1)}30%{transform:translateY(-4px) scale(1.05)}40%{transform:translateY(0) scale(1)}}.bottom-nav-tab.ig-highlight{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff;border-radius:50%;width:48px;height:48px;min-width:48px;padding:0;position:relative;top:-12px;box-shadow:0 4px 10px #dc274366;border:3px solid rgba(255,255,255,.9);transition:all .3s cubic-bezier(.34,1.56,.64,1)}.bottom-nav-tab.ig-highlight .tab-label{display:none}.bottom-nav-tab.ig-highlight .tab-icon{font-size:1.4rem}.bottom-nav-tab.ig-highlight:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 15px #dc274380;background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff}[data-theme=dark] .bottom-nav-tab.ig-highlight{border-color:#1a202c;box-shadow:0 4px 12px #dc274399}.bottom-nav-tab.ig-highlight.bounce-active{animation:igBubbleBounce 2s ease-in-out}@keyframes igShine{0%{left:-100%;opacity:0}1%{opacity:.5}2%,to{left:100%;opacity:0}}.bottom-nav-tab.ig-highlight{overflow:hidden}.bottom-nav-tab.ig-highlight:after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(to right,#fff0,#fff9,#fff0);transform:skew(-25deg);animation:igShine 60s infinite ease-in-out;pointer-events:none}.mobile-header{display:none;position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;height:56px;padding:0 12px;background:linear-gradient(135deg,#fffffff2,#f8fafcf2);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.06);box-shadow:0 2px 12px #0000000f;justify-content:space-between;align-items:center;box-sizing:border-box;z-index:999}.mobile-header:before{content:"";position:absolute;top:calc(-1*env(safe-area-inset-top,0px));left:0;right:0;height:env(safe-area-inset-top,0px);background:linear-gradient(135deg,#fffffff2,#f8fafcf2);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}.mobile-header.modern{height:60px}[data-theme=dark] .mobile-header{background:linear-gradient(135deg,#1a202cfa,#111827fa);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 2px 12px #0003}[data-theme=dark] .mobile-header:before{background:linear-gradient(135deg,#1a202cfa,#111827fa)}.mobile-brand.compact{display:flex;align-items:center;gap:8px}.mobile-logo{width:28px;height:28px}.mobile-brand-text{font-size:.95rem;font-weight:800;background:linear-gradient(135deg,var(--primary-color),#26A69A);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.3px}.mobile-header-left,.mobile-header-right{display:flex;align-items:center;gap:4px;flex:0 0 auto;min-width:80px}.mobile-header-left{justify-content:flex-start}.mobile-header-right{justify-content:flex-end}.mobile-brand-center{position:absolute;left:50%;transform:translate(-50%);display:flex;justify-content:center;align-items:center;overflow:hidden}.brand-flipper{display:flex;align-items:center;justify-content:center;position:relative;height:32px;min-width:120px}.brand-flipper .mobile-logo-flip,.brand-flipper .mobile-brand-flip{position:absolute;transition:all .5s cubic-bezier(.4,0,.2,1)}.mobile-logo-flip{width:32px;height:32px}.mobile-brand-flip{font-size:.95rem;font-weight:800;background:linear-gradient(135deg,var(--primary-color),#26A69A);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.3px;white-space:nowrap}.brand-flipper.show-logo .mobile-logo-flip{opacity:1;transform:rotateY(0) scale(1)}.brand-flipper.show-logo .mobile-brand-flip{opacity:0;transform:rotateY(90deg) scale(.8)}.brand-flipper.show-text .mobile-logo-flip{opacity:0;transform:rotateY(-90deg) scale(.8)}.brand-flipper.show-text .mobile-brand-flip{opacity:1;transform:rotateY(0) scale(1)}.mobile-header-actions{display:flex;align-items:center;gap:4px}.mobile-icon-btn{width:34px;height:34px;border:none;border-radius:10px;background:#0000000a;color:var(--theme-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .2s ease;position:relative}.mobile-icon-btn:hover{background:#00796b1a;color:var(--primary-color);transform:scale(1.05)}.mobile-icon-btn:active{transform:scale(.95)}[data-theme=dark] .mobile-icon-btn{background:#ffffff14}[data-theme=dark] .mobile-icon-btn:hover{background:#ffffff26}.notification-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.6rem;font-weight:700;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 2px 4px #ef444466;animation:badgePulse 2s infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.mobile-search-bar{flex:1;display:flex;align-items:center}.mobile-search-bar form{flex:1;display:flex;align-items:center;gap:10px;background:var(--theme-bg-secondary);border:1px solid var(--theme-border-secondary);border-radius:12px;padding:8px 12px}.mobile-search-bar .search-icon{color:var(--theme-text-tertiary);font-size:.9rem}.mobile-search-bar input{flex:1;border:none;background:transparent;color:var(--theme-text-primary);font-size:.95rem;outline:none}.mobile-search-bar input::placeholder{color:var(--theme-text-tertiary)}.close-search{width:32px;height:32px;border:none;border-radius:8px;background:#0000000d;color:var(--theme-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-search:hover{background:#dc35451a;color:#dc3545}.mobile-user{display:flex;align-items:center;gap:4px;position:relative}.push-warning-badge{position:absolute;bottom:-2px;right:-2px;width:16px;height:16px;background:#f59e0b;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;border:2px solid var(--theme-bg-card);z-index:2;box-shadow:0 2px 4px #0003;animation:badgePulse 2s infinite}.mobile-avatar{width:34px;height:34px;border-radius:10px;border:2px solid var(--primary-color);object-fit:cover;box-shadow:0 2px 6px #00796b33}.mobile-logout-btn{width:34px;height:34px;border:none;border-radius:10px;background:#dc35451a;color:#dc3545;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all .2s ease}.mobile-logout-btn:hover{background:#dc354533;transform:scale(1.05)}.mobile-user-wrapper{position:relative;display:flex;align-items:center}.mobile-avatar-btn{width:34px;height:34px;background:none;border:none;padding:0;cursor:pointer;border-radius:10px;transition:transform .2s ease;display:flex;align-items:center;justify-content:center}.mobile-avatar-btn:hover{transform:scale(1.05)}.mobile-avatar-btn .mobile-avatar{width:34px;height:34px;border-radius:10px;border:2px solid var(--primary-color);object-fit:cover;box-shadow:0 2px 6px #00796b33}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--theme-bg-card);border:1px solid var(--theme-border-secondary);border-radius:12px;box-shadow:0 10px 40px #00000026;overflow:hidden;z-index:1000;animation:dropdownSlide .25s ease}.user-dropdown .user-info{padding:12px 16px;border-bottom:1px solid var(--theme-border-secondary);display:flex;flex-direction:column;gap:2px}.user-dropdown .user-name{font-size:.9rem;font-weight:600;color:var(--theme-text-primary)}.user-dropdown .user-email{font-size:.75rem;color:var(--theme-text-tertiary)}.logout-dropdown-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;color:#dc3545;font-size:.9rem;cursor:pointer;transition:background .2s ease}.logout-dropdown-btn:hover{background:#dc35451a}.push-dropdown-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;color:#ff9800;font-size:.9rem;cursor:pointer;transition:background .2s ease;border-top:1px solid var(--theme-border-secondary)}.push-dropdown-btn:hover{background:#ff98001a}.push-dropdown-btn:disabled{opacity:.6;cursor:not-allowed}.push-subscribed-dropdown{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:transparent;color:#4caf50;font-size:.9rem;border-top:1px solid var(--theme-border-secondary)}.admin-dropdown-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;color:var(--primary-color);font-size:.9rem;cursor:pointer;transition:background .2s ease;text-decoration:none;border-top:1px solid var(--theme-border-secondary)}.admin-dropdown-btn:hover{background:#00796b1a}.loading-dot{color:var(--theme-text-secondary);font-size:1.2rem}.google-login-mobile{transform:scale(.85);transform-origin:right center}.lang-wrapper{position:relative}.lang-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:150px;background:var(--theme-bg-card);border:1px solid var(--theme-border-secondary);border-radius:12px;box-shadow:0 10px 40px #00000026;overflow:hidden;z-index:1000;animation:dropdownSlide .25s ease}.lang-option{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;cursor:pointer;transition:background .2s ease;color:var(--theme-text-primary);font-size:.9rem}.lang-option:hover{background:var(--theme-bg-secondary)}.lang-option.active{background:#00796b1a;color:var(--primary-color)}.lang-flag{font-size:1.1rem}.lang-name{flex:1;text-align:left}.lang-check{font-size:.8rem;color:var(--primary-color)}.notification-wrapper{position:relative}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:-20px;width:300px;max-height:400px;background:var(--theme-bg-card);border:1px solid var(--theme-border-secondary);border-radius:16px;box-shadow:0 10px 40px #00000026;overflow:hidden;z-index:1000;animation:dropdownSlide .25s ease}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--theme-border-secondary);background:var(--theme-bg-secondary)}.dropdown-title{font-size:.95rem;font-weight:600;color:var(--theme-text-primary)}.mark-all-read{font-size:.75rem;color:var(--primary-color);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .2s ease}.mark-all-read:hover{background:#00796b1a}.mobile-header .notification-list{max-height:320px;overflow-y:auto}.mobile-header .notification-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;cursor:pointer;transition:background .2s ease;position:relative;border-bottom:1px solid var(--theme-border-secondary)}.mobile-header .notification-item:last-child{border-bottom:none}.mobile-header .notification-item:hover{background:var(--theme-bg-secondary)}.mobile-header .notification-item.system-warning{background:#f59e0b1a;border-left:3px solid #f59e0b}.mobile-header .notification-item.system-warning:hover{background:#f59e0b33}.mobile-header .notification-item.system-warning .notification-icon{background:#f59e0b33;color:#f59e0b}.mobile-header .notification-item.read{opacity:.6}.mobile-header .notification-icon{width:32px;height:32px;border-radius:8px;background:#0000000d;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}[data-theme=dark] .mobile-header .notification-icon{background:#ffffff1a}.mobile-header .notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mobile-header .notification-title{font-size:.85rem;font-weight:600;color:var(--theme-text-primary)}.mobile-header .notification-message{font-size:.75rem;color:var(--theme-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-header .notification-time{font-size:.7rem;color:var(--theme-text-tertiary);margin-top:2px}.unread-dot{width:8px;height:8px;background:var(--primary-color);border-radius:50%;flex-shrink:0;margin-top:4px}.mobile-header .empty-notifications{padding:40px 20px;text-align:center;color:var(--theme-text-tertiary)}.mobile-header .empty-notifications svg{font-size:2rem;margin-bottom:8px;opacity:.5}.mobile-header .empty-notifications p{margin:0;font-size:.85rem}@media(max-width:768px){.mobile-header{display:flex}}@media(max-width:380px){.mobile-header-actions{gap:4px}.mobile-icon-btn{width:34px;height:34px;font-size:.9rem}.mobile-brand-text{font-size:1rem}}.admin-link{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;margin-top:8px;background:linear-gradient(135deg,var(--primary-color),#26a69a);color:#fff;text-decoration:none;border-radius:10px;font-size:.9rem;font-weight:500;transition:all .2s ease}.admin-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00796b4d}.admin-link svg{font-size:.85rem}.new-notification-popup{position:absolute;top:100%;right:-8px;margin-top:10px;width:220px;z-index:1000;animation:popupSlideIn .3s ease-out}@keyframes popupSlideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.new-notification-popup .popup-content{position:relative;display:flex;align-items:flex-start;gap:8px;padding:10px;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:10px;border:1px solid rgba(0,0,0,.1);box-shadow:0 8px 24px #00000026}.new-notification-popup .popup-content:before{content:"";position:absolute;top:-7px;right:18px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(255,255,255,.95)}.new-notification-popup .popup-icon{font-size:1.1rem;flex-shrink:0;margin-top:2px}.new-notification-popup .popup-text{flex:1;min-width:0}.new-notification-popup .popup-title{font-size:.85rem;font-weight:600;color:#1e293b;margin-bottom:2px}.new-notification-popup .popup-message{font-size:.75rem;color:#64748b;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.new-notification-popup .popup-close{background:#00000014;border:none;width:20px;height:20px;border-radius:50%;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;transition:background .2s}.new-notification-popup .popup-close:hover{background:#00000026}.disclaimer-sheet .bottom-sheet-content{padding:0;display:flex;flex-direction:column}.disclaimer-sheet .header-extra{margin-top:8px}.terms-lang-switch{position:relative;display:inline-flex;align-items:center;padding:3px;background:var(--theme-bg-hover, rgba(0, 0, 0, .05));border-radius:16px;cursor:pointer;transition:all .2s ease}.terms-lang-switch:hover{background:var(--theme-bg-active, rgba(0, 0, 0, .08))}.lang-slider{position:absolute;top:3px;bottom:3px;width:calc(50% - 3px);background:linear-gradient(135deg,#00796b,#48a999);border-radius:14px;transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 6px #00796b4d}.lang-slider.left{transform:translate(0);left:3px}.lang-slider.right{transform:translate(100%);left:3px}.lang-label{position:relative;z-index:1;padding:.3rem .5rem;font-size:.65rem;color:var(--theme-text-secondary, #666);transition:color .3s ease;user-select:none}.lang-label.active{color:#fff;font-weight:600}.terms-scrollable{flex:1;overflow-y:auto;padding:12px 16px;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.terms-scrollable::-webkit-scrollbar{width:4px}.terms-scrollable::-webkit-scrollbar-track{background:transparent}.terms-scrollable::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.terms-scroll-wrapper{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.terms-scroll-wrapper:before{content:"";position:absolute;top:0;left:0;right:0;height:20px;background:linear-gradient(to bottom,var(--theme-bg-card, #fff) 0%,transparent 100%);z-index:1;pointer-events:none}.terms-scroll-wrapper:after{content:"";position:absolute;bottom:0;left:0;right:0;height:20px;background:linear-gradient(to top,var(--theme-bg-card, #fff) 0%,transparent 100%);z-index:1;pointer-events:none}[data-theme=dark] .terms-scroll-wrapper:before{background:linear-gradient(to bottom,var(--theme-bg-card, #2d2d2d) 0%,transparent 100%)}[data-theme=dark] .terms-scroll-wrapper:after{background:linear-gradient(to top,var(--theme-bg-card, #2d2d2d) 0%,transparent 100%)}.terms-intro{font-size:.85rem;color:var(--theme-text-secondary, #666);line-height:1.6;margin:0 0 1rem;padding-bottom:1rem;border-bottom:1px solid var(--theme-border-secondary, #f0f0f0)}.terms-section{margin-bottom:1rem}.terms-section:last-of-type{margin-bottom:.5rem}.terms-section-title{font-size:.9rem;font-weight:700;color:#00796b;margin:0 0 .5rem}.terms-section-content{font-size:.8rem;color:var(--theme-text-secondary, #666);line-height:1.6;margin:0;white-space:pre-wrap}.terms-contact{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--theme-border-secondary, #f0f0f0)}.contact-link{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--theme-bg-hover, rgba(0, 0, 0, .04));border-radius:8px;color:var(--theme-text-primary, #333);text-decoration:none;font-size:.75rem;transition:all .2s ease}.contact-link:hover{background:var(--theme-bg-active, rgba(0, 0, 0, .08))}.contact-link svg{font-size:1rem;color:#00796b}.terms-fixed-bottom{flex-shrink:0;padding:0 16px 16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--theme-bg-card, #fff);border-top:1px solid var(--theme-border-secondary, #f0f0f0)}.warning-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:.65rem .75rem;margin:12px 0}.warning-banner p{font-size:.7rem;font-weight:600;color:#dc2626;margin:0;line-height:1.4;text-align:center}.button-group{display:flex;gap:.75rem}.decline-btn,.accept-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.decline-btn{background:var(--theme-bg-hover, rgba(0, 0, 0, .05));border:1px solid var(--theme-border-primary, #e0e0e0);color:var(--theme-text-secondary, #666)}.decline-btn:hover{background:#ef44441a;border-color:#ef44444d;color:#dc2626}.accept-btn{background:linear-gradient(135deg,#00796b,#004c40);color:#fff;box-shadow:0 4px 12px #00796b4d}.accept-btn:hover{box-shadow:0 6px 16px #00796b66}.close-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid var(--theme-border-primary, #e0e0e0);background:var(--theme-bg-hover, rgba(0, 0, 0, .05));color:var(--theme-text-primary, #333)}.close-btn:hover{background:var(--theme-bg-active, rgba(0, 0, 0, .1));transform:translateY(-2px)}.disclaimer-footer-text{margin:10px 0 0;font-size:.65rem;color:var(--theme-text-tertiary, #999);text-align:center}[data-theme=dark] .terms-lang-switch{background:#ffffff1a}[data-theme=dark] .terms-lang-switch:hover{background:#ffffff26}[data-theme=dark] .lang-label{color:#fff9}[data-theme=dark] .terms-scrollable::-webkit-scrollbar-thumb{background:#fff3}[data-theme=dark] .terms-intro,[data-theme=dark] .terms-section-content{color:#ffffffb3}[data-theme=dark] .terms-intro,[data-theme=dark] .terms-contact,[data-theme=dark] .terms-fixed-bottom{border-color:#ffffff1a}[data-theme=dark] .terms-fixed-bottom{background:var(--theme-bg-card, #2d2d2d)}[data-theme=dark] .terms-section-title{color:#48a999}[data-theme=dark] .contact-link{background:#ffffff14;color:#ffffffe6}[data-theme=dark] .contact-link svg{color:#48a999}[data-theme=dark] .warning-banner{background:#ef444426;border-color:#ef444466}[data-theme=dark] .warning-banner p{color:#fca5a5}[data-theme=dark] .decline-btn{background:#ffffff14;border-color:#ffffff1a;color:#fffc}[data-theme=dark] .decline-btn:hover{background:#ef444426;border-color:#ef444466;color:#fca5a5}@media(max-width:768px){.disclaimer-meta{flex-direction:column;align-items:flex-start;gap:8px}.terms-lang-switch{align-self:flex-end}.button-group{gap:.5rem}.decline-btn,.accept-btn{padding:.65rem .75rem;font-size:.8rem}}@media(min-width:769px){.close-btn{display:none}}.pwa-install-overlay{position:fixed;bottom:80px;left:0;right:0;z-index:9999;padding:12px 16px;pointer-events:none}.pwa-install-modal{background:#fffffffa;border-radius:16px;padding:16px;max-width:400px;margin:0 auto;box-shadow:0 -4px 24px #00000014,0 0 0 1px #0000000f,0 8px 32px #0000001a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:pwaSlideUp .5s cubic-bezier(.34,1.56,.64,1);pointer-events:auto;position:relative}@keyframes pwaSlideUp{0%{opacity:0;transform:translateY(100%) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pwaFlyout{0%{opacity:1;transform:translateY(0) translate(0) scale(1);border-radius:16px}to{opacity:0;transform:translateY(50px) translate(100px) scale(.1);border-radius:50%}}.pwa-flyout .pwa-install-modal{animation:pwaFlyout .4s cubic-bezier(.4,0,.2,1) forwards}.dark-theme .pwa-install-modal{background:#1e1e2dfa;box-shadow:0 -4px 24px #0000004d,0 0 0 1px #ffffff1a,0 8px 32px #0003}.dark-theme .pwa-install-header h2{color:#fff}.dark-theme .pwa-install-subtitle{color:#ffffffb3}.dark-theme .pwa-dismiss-btn{background:#ffffff1a;color:#fff9}.dark-theme .pwa-dismiss-btn:hover{background:#fff3;color:#ffffffe6}.dark-theme .pwa-features-inline{color:#fff9;border-top-color:#ffffff1a}.dark-theme .pwa-android-hint{border-top-color:#ffffff1a}.dark-theme .pwa-android-hint p{color:#ffffffb3}.dark-theme .pwa-android-hint svg{color:#ffffffe6}.dark-theme .copy-link-btn{background:#00796b33;border-color:#00796b66}.dark-theme .install-btn{box-shadow:0 4px 12px #00796b66}.pwa-install-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;text-align:left}.pwa-install-icon{width:44px;height:44px;flex-shrink:0;background:linear-gradient(135deg,#00796b,#26a69a);border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00796b4d}.pwa-install-icon img{width:28px;height:28px}.pwa-install-icon svg{font-size:1.4rem;color:#fff}.pwa-install-icon.warning-icon{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 4px 12px #f59e0b4d}.pwa-install-header-text{flex:1;min-width:0}.pwa-install-header h2{color:#1a1a2e;font-size:1rem;font-weight:700;margin:0 0 4px}.pwa-install-subtitle{color:#0009;font-size:.8rem;margin:0;line-height:1.3}.pwa-install-subtitle strong{color:#26a69a}.pwa-features-inline{display:flex;justify-content:center;gap:16px;padding:10px 0;color:#00000080;font-size:.75rem;border-top:1px solid rgba(0,0,0,.08);margin-top:8px}.pwa-features-inline span{display:flex;align-items:center;gap:5px}.pwa-features-inline svg{color:#26a69a;font-size:.85rem}.pwa-android-hint{padding:10px 0;border-top:1px solid rgba(0,0,0,.08);margin-top:8px}.pwa-android-hint p{color:#0009;font-size:.8rem;margin:0;text-align:center}.pwa-android-hint svg{color:#000c;margin:0 2px}.pwa-features{display:flex;justify-content:center;gap:16px;margin-bottom:16px;padding:12px;background:#00796b1a;border-radius:10px}.pwa-feature{display:flex;align-items:center;gap:6px;color:#26a69a;font-size:.8rem}.pwa-feature svg{font-size:.95rem}.pwa-install-action{margin-top:8px}.install-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;margin-top:8px;background:linear-gradient(135deg,#00796b,#26a69a);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00796b66}.install-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #00796b80}.install-btn:active{transform:translateY(0)}.install-btn svg{font-size:.95rem}.pwa-install-steps{margin-bottom:16px}.pwa-install-steps h3{color:#ffffffe6;font-size:.9rem;font-weight:600;margin:0 0 12px;text-align:center}.pwa-step{display:flex;gap:12px;padding:12px;background:#ffffff08;border-radius:10px;margin-bottom:8px;border:1px solid rgba(255,255,255,.05);cursor:pointer;transition:all .2s ease}.pwa-step:hover,.pwa-step.active{background:#ffffff12;border-color:#00796b4d}.step-number{width:26px;height:26px;background:linear-gradient(135deg,#00796b,#26a69a);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#fff;flex-shrink:0}.step-content{flex:1}.step-content p{color:#ffffffe6;margin:0 0 6px;font-size:.85rem}.step-content strong{color:#fff}.step-hint{font-size:.75rem!important;color:#ffffff80!important}.step-icon-demo{display:flex;align-items:center;gap:8px;color:#26a69a;font-size:.9rem}.step-icon-demo .share-icon{font-size:1.5rem;color:#007aff}.step-icon-demo .menu-icon{font-size:1.5rem;color:#fffc}.step-icon-demo .arrow-icon{font-size:1rem}.step-icon-demo.add-home{background:#ffffff1a;padding:8px 12px;border-radius:8px;width:fit-content}.step-icon-demo.add-home svg{color:#007aff}.copy-link-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;margin-top:8px;background:#00796b33;border:1px solid rgba(0,121,107,.4);border-radius:10px;color:#26a69a;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.copy-link-btn:hover{background:#00796b4d}.copy-link-btn.copied{background:#22c55e33;border-color:#22c55e66;color:#22c55e}.copy-link-btn svg{font-size:.95rem}.bounce{animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.pwa-ios-warning{background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:12px;padding:12px 16px;margin-bottom:16px}.pwa-ios-warning p{color:#ffffffe6;font-size:.85rem;margin:0;text-align:center}.pwa-ios-warning p:first-child{margin-bottom:4px}.pwa-install-footer{text-align:center;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.pwa-install-footer p{color:#fff6;font-size:.8rem;margin:0}@media(max-height:700px){.pwa-install-modal{padding:24px 20px}.pwa-install-icon{width:60px;height:60px}.pwa-install-icon img{width:36px;height:36px}.pwa-install-header h2{font-size:1.3rem}.pwa-step{padding:12px}}@media(max-width:360px){.pwa-install-modal{padding:20px 16px}.pwa-features{flex-direction:column;align-items:center;gap:8px}.pwa-install-header h2{font-size:1.1rem}}.pwa-dismiss-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;border-radius:50%;background:#0000000d;color:#00000080;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.pwa-dismiss-btn:hover{background:#0000001a;color:#000c}.pwa-dismiss-btn svg{font-size:1rem}.pwa-install-suggestion .pwa-install-modal{position:relative}.pwa-later-btn{display:block;width:100%;padding:12px;margin-top:12px;background:transparent;border:1px solid rgba(0,0,0,.15);border-radius:10px;color:#00000080;font-size:.9rem;cursor:pointer;transition:all .2s ease}.pwa-later-btn:hover{background:#00000008;color:#000000b3}.push-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#0a0a0a,#1a1a2e,#16213e);z-index:999998;display:flex;align-items:center;justify-content:center;padding:20px}.push-overlay.success-overlay{background:linear-gradient(135deg,#064e3b,#047857,#10b981)}.push-success-modal{text-align:center;animation:successPop .4s ease-out}@keyframes successPop{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.success-icon-large{font-size:4rem;color:#fff;margin-bottom:20px;filter:drop-shadow(0 4px 20px rgba(255,255,255,.3))}.push-success-modal h2{color:#fff;font-size:1.5rem;margin:0 0 8px}.push-success-modal p{color:#fffc;font-size:1rem;margin:0}.push-modal{background:#1e1e2df2;border-radius:24px;padding:32px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 20px 60px #00000080,0 0 0 1px #ffffff1a;backdrop-filter:blur(20px);animation:modalSlideIn .4s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.push-modal-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,#00796b,#26a69a);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;box-shadow:0 8px 24px #00796b4d}.push-modal h2{color:#fff;font-size:1.4rem;font-weight:700;margin:0 0 8px}.push-modal-subtitle{color:#ffffffb3;font-size:.95rem;margin:0 0 24px;line-height:1.5}.push-features{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding:16px;background:#00796b1a;border-radius:12px}.push-feature{display:flex;align-items:center;gap:12px;color:#26a69a;font-size:.9rem}.push-feature svg{font-size:1.1rem;width:20px}.push-enable-btn{width:100%;padding:16px 24px;background:linear-gradient(135deg,#00796b,#26a69a);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s ease;box-shadow:0 4px 16px #00796b66}.push-enable-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00796b80}.push-enable-btn:active{transform:translateY(0)}.push-enable-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.push-error-box{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:10px 14px;margin-bottom:16px}.push-error-box p{color:#fca5a5;font-size:.85rem;margin:0}.push-denied-hint{color:#ffffff80;font-size:.8rem;margin:16px 0 0}.push-later-btn{width:100%;padding:12px 24px;background:transparent;color:#fff9;border:1px solid rgba(255,255,255,.2);border-radius:12px;font-size:.95rem;cursor:pointer;margin-top:12px;transition:all .2s ease}.push-later-btn:hover{background:#ffffff1a;color:#fffc}.push-later-btn:disabled{opacity:.5;cursor:not-allowed}.permission-guide-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:9999;padding:20px;animation:fadeIn .3s ease}.permission-guide-modal{background:var(--theme-bg-card);border-radius:24px;padding:32px 24px;width:100%;max-width:360px;position:relative;box-shadow:0 10px 40px #0003;border:1px solid var(--theme-border-primary);animation:slideUp .3s cubic-bezier(.16,1,.3,1);text-align:center}.close-btn{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--theme-text-secondary);font-size:1.25rem;padding:8px;cursor:pointer;border-radius:50%;transition:background .2s}.close-btn:hover{background:var(--theme-bg-hover);color:var(--theme-text-primary)}.modal-icon{width:64px;height:64px;background:#ff3b301a;color:#ff3b30;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:2rem;margin:0 auto 20px}.permission-guide-modal h2{margin:0 0 8px;font-size:1.5rem;color:var(--theme-text-primary)}.subtitle{color:var(--theme-text-secondary);margin:0 0 24px;font-size:.95rem;line-height:1.5}.guide-steps{text-align:left;background:var(--theme-bg-secondary);border-radius:16px;padding:20px;margin-bottom:24px}.step-item{display:flex;align-items:center;margin-bottom:16px;position:relative}.step-item:last-child{margin-bottom:0}.step-item:not(:last-child):after{content:"";position:absolute;left:12px;top:28px;bottom:-12px;width:2px;background:var(--theme-border-primary)}.step-num{width:24px;height:24px;background:var(--theme-primary);color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;margin-right:12px;flex-shrink:0;z-index:1}.step-content{flex:1;font-size:.95rem;color:var(--theme-text-primary);line-height:1.4}.step-content strong{color:var(--theme-primary)}.step-icon{color:var(--theme-text-secondary);margin-left:8px;font-size:1rem}.battery-tip{text-align:left;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:16px;padding:16px 20px;margin-bottom:24px}.battery-tip h3{font-size:.95rem;margin:0 0 12px;color:var(--theme-text-primary)}.battery-tip .step-item{margin-bottom:10px}.battery-tip .step-item:not(:last-child):after{display:none}.battery-tip .step-num{background:transparent;font-size:1rem}.battery-tip .tip-note{font-size:.8rem;color:var(--theme-text-secondary);margin:8px 0 0;padding-left:36px;line-height:1.4}.guide-footer{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--theme-text-secondary);font-size:.85rem;margin-bottom:24px;background:#ff95001a;color:#ff9500;padding:10px;border-radius:12px}.confirm-btn{width:100%;padding:14px;background:var(--theme-primary);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.confirm-btn:active{transform:scale(.98)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.app-initializing{position:fixed;inset:0;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));display:flex;align-items:center;justify-content:center;z-index:10001}.init-loading{display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center;color:#fff}.init-logo{animation:float 3s ease-in-out infinite}.init-text{font-size:1.8rem;font-weight:700;margin-bottom:.5rem}.init-subtext{font-size:1rem;opacity:.8;font-weight:400}.page-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;background:var(--theme-bg-primary)}.page-loading .loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem}.page-loading .loading-text{font-size:1.1rem;color:var(--theme-text-secondary);font-weight:500}.navbar-error{background:#dc3545;color:#fff;padding:1rem;text-align:center;display:flex;align-items:center;justify-content:center;gap:1rem}.navbar-error button{background:#fff;color:#dc3545;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:600}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:var(--theme-bg-primary);color:var(--theme-text-primary);margin:0;line-height:1.6;transition:background-color .3s ease,color .3s ease}.app-container{min-height:100vh;display:flex;flex-direction:column;transition:filter .3s ease}.app-blur{filter:blur(2px);pointer-events:none}.container{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.app-layout{display:flex;min-height:100vh;background:var(--theme-bg-primary)}.main-content{flex:1;margin-left:260px;padding:2rem;max-width:calc(100% - 260px);box-sizing:border-box;transition:margin-left .3s cubic-bezier(.4,0,.2,1),max-width .3s cubic-bezier(.4,0,.2,1)}.side-nav.collapsed~.main-content,body:has(.side-nav.collapsed) .main-content{margin-left:72px;max-width:calc(100% - 72px)}.nav-error{background:#dc3545;color:#fff;padding:1rem;text-align:center}@media(max-width:768px){.app-layout{flex-direction:column}.main-content{margin-left:0!important;max-width:100%!important;width:100%!important;padding:1rem;padding-top:calc(72px + env(safe-area-inset-top,0px));padding-bottom:calc(100px + env(safe-area-inset-bottom,0px));box-sizing:border-box}}h1,h2,h3,h4,h5,h6{color:var(--theme-text-primary);margin-top:0;transition:color .3s ease}button,input,select,textarea{transition:all .3s ease}*::-webkit-scrollbar-track{background:var(--theme-bg-secondary);border-radius:10px}*::-webkit-scrollbar-thumb{background:linear-gradient(45deg,var(--primary-color),var(--primary-dark));border-radius:10px;transition:all .3s ease}@supports (-ms-overflow-style: auto){*{-ms-overflow-style:auto}}[data-theme=dark] *::-webkit-scrollbar-track{background:var(--theme-bg-tertiary)}[data-theme=dark] *::-webkit-scrollbar-corner{background:var(--theme-bg-tertiary)}@supports (scrollbar-color: auto){[data-theme=dark] *{scrollbar-color:var(--primary-light) var(--theme-bg-tertiary)}}.dashboard::-webkit-scrollbar,.course-preview::-webkit-scrollbar,.today-status::-webkit-scrollbar{width:6px;height:6px}.dashboard::-webkit-scrollbar-track,.course-preview::-webkit-scrollbar-track,.today-status::-webkit-scrollbar-track{background:transparent}.dashboard::-webkit-scrollbar-thumb,.course-preview::-webkit-scrollbar-thumb,.today-status::-webkit-scrollbar-thumb{background:#00796b99;border-radius:6px}.dashboard::-webkit-scrollbar-thumb:hover,.course-preview::-webkit-scrollbar-thumb:hover,.today-status::-webkit-scrollbar-thumb:hover{background:#00796bcc}@supports (scrollbar-width: thin){.dashboard,.course-preview,.today-status{scrollbar-width:thin}}@supports (scrollbar-color: auto){.dashboard,.course-preview,.today-status{scrollbar-color:rgba(0,121,107,.8) transparent}}@media(max-width:768px){@supports (scrollbar-width: none){*{scrollbar-width:none}}@supports (-ms-overflow-style: none){*{-ms-overflow-style:none}}*::-webkit-scrollbar{display:none}}::selection{background:var(--primary-color);color:#fff}::-moz-selection{background:var(--primary-color);color:#fff}@media(max-width:1024px){.container{padding:1.5rem}}@media(max-width:768px){.container{padding:1rem}.init-text{font-size:1.5rem}.init-subtext{font-size:.9rem}}@media(max-width:480px){.container{padding:.5rem}.navbar-error{flex-direction:column;gap:.5rem}.init-loading{gap:1rem}.init-text{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.init-logo{animation:none}}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:4px}.loading-state{opacity:.7;pointer-events:none;transition:opacity .3s ease}.loading-state *{cursor:wait!important}@media print{.navbar,.performance-monitor,.loading-overlay,.error-boundary{display:none!important}.container{max-width:none;padding:0}*{background:#fff!important;color:#000!important;box-shadow:none!important}*::-webkit-scrollbar{display:none!important}@supports (scrollbar-width: none){*{scrollbar-width:none!important}}@supports (-ms-overflow-style: none){*{-ms-overflow-style:none!important}}}@supports (-webkit-appearance: none){*::-webkit-scrollbar{-webkit-appearance:none}*::-webkit-scrollbar-thumb{-webkit-border-radius:10px;border-radius:10px}}@supports (background: -webkit-named-image(i)){*::-webkit-scrollbar-thumb{box-shadow:inset 0 0 6px #0000001a}}[data-theme=light]{--theme-bg-primary: #f4f7f6;--theme-bg-secondary: #ffffff;--theme-bg-tertiary: #e0f2f1;--theme-bg-card: #ffffff;--theme-bg-overlay: rgba(255, 255, 255, .9);--theme-text-primary: #333333;--theme-text-secondary: #666666;--theme-text-tertiary: #999999;--theme-text-inverse: #ffffff;--theme-border-primary: #e0e0e0;--theme-border-secondary: #f0f0f0;--theme-shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--theme-shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--theme-shadow-primary: 0 1px 3px rgba(0, 0, 0, .05), 0 4px 6px rgba(0, 0, 0, .05);--theme-shadow-secondary: 0 4px 6px rgba(0, 0, 0, .04), 0 10px 15px rgba(0, 0, 0, .06);--theme-shadow-hover: 0 10px 20px rgba(0, 0, 0, .08), 0 4px 8px rgba(0, 0, 0, .04);--theme-shadow-lg: 0 20px 25px rgba(0, 0, 0, .06), 0 8px 16px rgba(0, 0, 0, .04);--theme-shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .04);--theme-shadow-glow: 0 0 20px rgba(74, 144, 226, .15);--calendar-bg: linear-gradient(135deg, #f9f9f9, #e8f5e8);--calendar-border: #e0e0e0;--calendar-tile-bg: transparent;--calendar-tile-bg-hover: #e0f2f1;--calendar-tile-bg-active: var(--primary-color);--calendar-tile-text-active: #ffffff;--calendar-tile-bg-now: #e0f2f1;--calendar-nav-text: var(--primary-color);--calendar-weekday-text: var(--primary-dark);--calendar-event-marker-bg: var(--accent-success);--calendar-event-item-border: var(--primary-color);--calendar-list-border: var(--primary-ultra-light)}[data-theme=dark]{--theme-bg-primary: #1a1a1a;--theme-bg-secondary: #2d2d2d;--theme-bg-tertiary: #3a3a3a;--theme-bg-card: #2d2d2d;--theme-bg-overlay: rgba(45, 45, 45, .9);--theme-text-primary: #ffffff;--theme-text-secondary: #cccccc;--theme-text-tertiary: #999999;--theme-text-inverse: #1a1a1a;--theme-border-primary: #404040;--theme-border-secondary: #353535;--theme-shadow-xs: 0 1px 2px rgba(0, 0, 0, .15);--theme-shadow-sm: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .15);--theme-shadow-primary: 0 1px 3px rgba(0, 0, 0, .2), 0 4px 6px rgba(0, 0, 0, .15);--theme-shadow-secondary: 0 4px 6px rgba(0, 0, 0, .15), 0 10px 15px rgba(0, 0, 0, .2);--theme-shadow-hover: 0 10px 20px rgba(0, 0, 0, .2), 0 4px 8px rgba(0, 0, 0, .1);--theme-shadow-lg: 0 20px 25px rgba(0, 0, 0, .2), 0 8px 16px rgba(0, 0, 0, .12);--theme-shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .1);--theme-shadow-glow: 0 0 20px rgba(74, 144, 226, .25);--calendar-bg: linear-gradient(135deg, #1a1a1a, #212b21);--calendar-border: #404040;--calendar-tile-bg: transparent;--calendar-tile-bg-hover: #3a3a3a;--calendar-tile-bg-active: var(--primary-light);--calendar-tile-text-active: #1a1a1a;--calendar-tile-bg-now: #3a3a3a;--calendar-nav-text: var(--primary-light);--calendar-weekday-text: #cccccc;--calendar-event-marker-bg: var(--accent-success-light);--calendar-event-item-border: var(--primary-light);--calendar-list-border: #404040}body,.card,.status-card,.course-preview,.apple-card,.today-status,.system-status,.announcement-card{transition:background-color .3s ease,color .3s ease,border-color .3s ease}body{background-color:var(--theme-bg-primary);color:var(--theme-text-primary)}.course-preview .course-table,.course-preview .modern-table,.course-planner .course-table{background:var(--theme-bg-secondary)}.course-preview .course-table th,.course-preview .modern-table th,.course-planner .course-table th{background:var(--theme-bg-tertiary);color:var(--theme-text-primary);border-bottom:1px solid var(--theme-border-primary)}.course-preview .course-table td,.course-preview .modern-table td,.course-planner .course-table td{background:var(--theme-bg-secondary);color:var(--theme-text-primary);border-bottom:1px solid var(--theme-border-secondary);border-right:1px solid var(--theme-border-secondary)}.course-preview .period-header,.course-planner .period-header{background:var(--theme-bg-tertiary);color:var(--theme-text-primary)}.course-preview .course-cell-container.has-course,.course-planner .course-cell-container.has-course{background:linear-gradient(135deg,var(--primary-ultra-light),rgba(0,121,107,.1));border:1px solid var(--primary-color)}.course-preview .course-cell-container.empty-cell,.course-planner .course-cell-container.empty-cell{background:var(--theme-bg-secondary);border:1px solid var(--theme-border-secondary)}.course-preview .lunch-break,.course-planner .lunch-break{background:var(--theme-bg-tertiary);color:var(--theme-text-secondary)}.apple-input,.form-control,.search-input{background:var(--theme-bg-secondary);color:var(--theme-text-primary);border:2px solid var(--theme-border-primary)}.apple-input:focus,.form-control:focus,.search-input:focus{border-color:var(--primary-color)}.status-active{--status-color: #28a745}.status-warning{--status-color: #ffc107}.status-error{--status-color: #dc3545}.status-info{--status-color: #17a2b8}.status-empty{--status-color: #6c757d}.loading-skeleton{background:linear-gradient(90deg,var(--theme-border-secondary) 25%,var(--theme-border-primary) 50%,var(--theme-border-secondary) 75%)}.page-loading{background:var(--theme-bg-primary)}.loading-text{color:var(--theme-text-secondary)}.error-container{background:var(--theme-bg-card);color:var(--theme-text-primary);border:1px solid var(--theme-border-primary)}.error-details{background:var(--theme-bg-secondary);border:1px solid var(--theme-border-primary)}.error-stack{background:var(--theme-bg-primary);color:var(--theme-text-secondary);border:1px solid var(--theme-border-secondary)}.search-highlight{background:var(--primary-color);color:#fff}.toast-notification{background:var(--theme-bg-card);color:var(--theme-text-primary);border:1px solid var(--theme-border-primary)}.glass-effect{background:var(--theme-bg-overlay);border:1px solid var(--theme-border-primary)}[data-theme=dark] .glass-effect{background:#2d2d2dcc;border:1px solid rgba(255,255,255,.1)}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}:root{--glass-bg-light: rgba(255, 255, 255, .8);--glass-bg-dark: rgba(255, 255, 255, .1);--glass-border-light: rgba(255, 255, 255, .3);--glass-border-dark: rgba(255, 255, 255, .15);--glass-blur: blur(20px);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-success: linear-gradient(135deg, #48bb78 0%, #38a169 100%);--gradient-warning: linear-gradient(135deg, #ed8936 0%, #dd6b20 100%);--gradient-error: linear-gradient(135deg, #f56565 0%, #e53e3e 100%);--gradient-info: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);--spring-easing: cubic-bezier(.175, .885, .32, 1.275);--smooth-easing: cubic-bezier(.25, .46, .45, .94);--apple-easing: cubic-bezier(.4, 0, .2, 1)}.glass-effect{background:var(--glass-bg-light);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-light);box-shadow:0 8px 32px #1f26875e}[data-theme=dark] .glass-effect{background:var(--glass-bg-dark);border:1px solid var(--glass-border-dark);box-shadow:0 8px 32px #00000080}.apple-button{background:var(--gradient-primary);border:none;border-radius:12px;color:#fff;font-weight:600;padding:12px 24px;cursor:pointer;transition:all .3s var(--apple-easing);position:relative;overflow:hidden;box-shadow:0 4px 15px #667eea66;font-size:.9rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.apple-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s var(--apple-easing)}.apple-button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 25px #667eea80}.apple-button:hover:before{left:100%}.apple-button:active{transform:translateY(0) scale(.98);box-shadow:0 2px 10px #667eea66}.apple-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.apple-input{background:var(--theme-bg-secondary);border:2px solid transparent;border-radius:12px;padding:14px 18px;font-size:16px;transition:all .3s var(--apple-easing);outline:none;box-shadow:0 2px 10px #0000000d;position:relative}.apple-input::placeholder{color:var(--theme-text-tertiary);transition:all .3s ease}.apple-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 4px #00796b1a,0 4px 20px #0000001a;transform:translateY(-1px)}.apple-card{background:var(--theme-bg-card);border-radius:20px;padding:24px;box-shadow:0 10px 40px #0000001a;transition:all .4s var(--spring-easing);border:1px solid var(--theme-border-primary);position:relative;overflow:hidden}.apple-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);opacity:0;transition:opacity .3s ease}.apple-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 60px #00000026}.apple-card:hover:before{opacity:1}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-10px) rotate(1deg)}66%{transform:translateY(-5px) rotate(-1deg)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes shimmer{0%{background-position:-200% 0;opacity:0}50%{opacity:1}to{background-position:200% 0;opacity:0}}.floating-element{animation:float 6s ease-in-out infinite}.floating-element:nth-child(2){animation-delay:-2s}.floating-element:nth-child(3){animation-delay:-4s}.loading-skeleton{background:linear-gradient(90deg,var(--theme-border-secondary) 25%,var(--theme-border-primary) 50%,var(--theme-border-secondary) 75%);background-size:200% 100%;border-radius:12px;animation:shimmer 2s infinite;position:relative;overflow:hidden}.loading-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative}.gradient-text:after{content:attr(data-text);position:absolute;top:0;left:0;background:var(--gradient-success);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:0;transition:opacity .3s ease}.gradient-text:hover:after{opacity:1}.status-indicator{position:relative;display:inline-flex;align-items:center;justify-content:center}.status-dot{width:8px;height:8px;border-radius:50%;position:absolute;top:-2px;right:-2px;border:2px solid var(--theme-bg-card);animation:pulse 2s infinite}.live-indicator{display:flex;align-items:center;gap:6px;background:#ff00001a;color:#dc3545;padding:4px 8px;border-radius:12px;font-size:.7rem;font-weight:600;border:1px solid rgba(255,0,0,.2);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.live-dot{width:6px;height:6px;background:#dc3545;border-radius:50%;animation:pulse 1s infinite}.upcoming-indicator{background:#ffc1071a;color:#ffc107;padding:4px 8px;border-radius:12px;font-size:.7rem;font-weight:600;border:1px solid rgba(255,193,7,.2);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.spacing-xs{margin:4px;padding:4px}.spacing-sm{margin:8px;padding:8px}.spacing-md{margin:16px;padding:16px}.spacing-lg{margin:24px;padding:24px}.spacing-xl{margin:32px;padding:32px}.m-xs{margin:4px}.m-sm{margin:8px}.m-md{margin:16px}.m-lg{margin:24px}.m-xl{margin:32px}.p-xs{padding:4px}.p-sm{padding:8px}.p-md{padding:16px}.p-lg{padding:24px}.p-xl{padding:32px}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.ripple-effect:active:after{width:300px;height:300px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--theme-bg-secondary);border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(45deg,var(--primary-color),var(--primary-dark));border-radius:10px;transition:all .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(45deg,var(--primary-dark),var(--primary-color));transform:scale(1.1)}.search-highlight{background:linear-gradient(120deg,#a8edea,#fed6e3);color:var(--theme-text-primary);padding:2px 4px;border-radius:4px;font-weight:600;animation:pulse 1s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(hover:none)and (pointer:coarse){.apple-button:hover,.apple-card:hover{transform:none}.apple-button:active{transform:scale(.95)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:root{--glass-bg-light: rgba(255, 255, 255, .05);--glass-border-light: rgba(255, 255, 255, .1)}}@supports (-webkit-backdrop-filter: blur(20px)){.glass-effect{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}}.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.select-text{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.lazy-loading-container{display:flex;align-items:center;justify-content:center;min-height:200px;background:var(--theme-bg-secondary);border-radius:16px;border:1px solid var(--theme-border-primary)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center}.loading-spinner{width:40px;height:40px;position:relative}.apple-spinner{width:40px;height:40px;position:relative;display:inline-block}.apple-spinner.large{width:60px;height:60px}.spinner-ring{position:absolute;top:0;left:0;width:100%;height:100%;border:3px solid transparent;border-top:3px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.spinner-ring:nth-child(2){animation-delay:-.3s;border-top-color:var(--primary-light)}.spinner-ring:nth-child(3){animation-delay:-.6s;border-top-color:var(--primary-ultra-light)}.loading-text{font-size:1rem;color:var(--theme-text-secondary);font-weight:500}.loading-progress{width:200px;display:flex;flex-direction:column;gap:.5rem}.progress-bar{width:100%;height:8px;background:var(--theme-border-secondary);border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--primary-light));border-radius:10px;transition:width .3s ease;animation:progressPulse 2s ease-in-out infinite}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.7}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:2rem}.error-container{max-width:500px;padding:2rem;border-radius:20px;text-align:center;background:var(--theme-bg-card);border:1px solid var(--theme-border-primary);box-shadow:var(--theme-shadow-lg)}.error-header{margin-bottom:1.5rem}.error-icon{font-size:4rem;margin-bottom:1rem;animation:shake .8s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.error-container h2{color:var(--theme-text-primary);margin:0 0 1rem;font-size:1.5rem}.error-body{margin-bottom:2rem}.error-message{color:var(--theme-text-secondary);line-height:1.6;margin-bottom:1rem}.error-details{text-align:left;margin-top:1rem;padding:1rem;background:var(--theme-bg-secondary);border-radius:8px;border:1px solid var(--theme-border-primary)}.error-details summary{cursor:pointer;font-weight:600;color:var(--theme-text-primary);margin-bottom:.5rem}.error-info{margin-top:.5rem;font-size:.9rem}.error-stack{background:var(--theme-bg-primary);border:1px solid var(--theme-border-secondary);border-radius:4px;padding:.5rem;font-size:.8rem;overflow-x:auto;white-space:pre-wrap;color:var(--theme-text-secondary);max-height:200px;overflow-y:auto}.error-actions{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem}.error-footer{padding-top:1rem;border-top:1px solid var(--theme-border-secondary)}.error-support{font-size:.8rem;color:var(--theme-text-tertiary);margin:0}.error-support code{background:var(--theme-bg-secondary);padding:.2rem .4rem;border-radius:4px;font-family:Courier New,monospace;color:var(--primary-color)}.performance-monitor{position:fixed;top:20px;right:20px;z-index:9999}.performance-overlay{background:var(--theme-bg-card);border:1px solid var(--theme-border-primary);border-radius:16px;padding:1rem;box-shadow:var(--theme-shadow-lg);min-width:250px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.performance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--theme-border-secondary)}.performance-header h4{margin:0;font-size:1rem;color:var(--theme-text-primary)}.close-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--theme-text-secondary);padding:.2rem;border-radius:4px;transition:all .3s ease}.close-btn:hover{background:var(--theme-bg-secondary);color:var(--theme-text-primary)}.performance-grid{display:grid;gap:.75rem;grid-template-columns:1fr}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:var(--theme-bg-secondary);border-radius:8px;border:1px solid var(--theme-border-secondary)}.metric-label{font-size:.8rem;color:var(--theme-text-secondary)}.metric-value{font-size:.9rem;font-weight:600;text-align:right}.metric-value.good{color:#28a745}.metric-value.warning{color:#ffc107}.metric-value.error{color:#dc3545}.connection-indicator{display:flex;align-items:center;gap:.25rem;font-size:.8rem}.performance-footer{margin-top:1rem;padding-top:.5rem;border-top:1px solid var(--theme-border-secondary);text-align:center}.performance-footer small{color:var(--theme-text-tertiary);font-size:.7rem}.loading-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center}.loading-backdrop{position:absolute;inset:0;background:#00000080;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.loading-overlay .loading-content{position:relative;z-index:1;background:var(--theme-bg-card);border:1px solid var(--theme-border-primary);border-radius:20px;padding:2rem;box-shadow:var(--theme-shadow-lg);text-align:center;max-width:300px;width:90%}.loading-spinner-container{margin-bottom:1rem}.loading-overlay .loading-text{margin-bottom:1rem;font-size:1.1rem;color:var(--theme-text-primary)}.loading-overlay .loading-progress{margin-bottom:1rem}.progress-text{text-align:center;font-size:.8rem;color:var(--theme-text-secondary);margin-top:.25rem}.cancel-btn{background:var(--theme-bg-secondary);border:1px solid var(--theme-border-primary);color:var(--theme-text-secondary);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .3s ease}.cancel-btn:hover{background:var(--theme-bg-tertiary);color:var(--theme-text-primary)}.lazy-error-container{display:flex;align-items:center;justify-content:center;min-height:200px;background:var(--theme-bg-secondary);border-radius:16px;border:1px solid #dc3545}.lazy-error-container .error-content{text-align:center;padding:2rem}.lazy-error-container .error-icon{font-size:3rem;margin-bottom:1rem}.lazy-error-container h3{color:#dc3545;margin-bottom:.5rem}.lazy-error-container p{color:var(--theme-text-secondary);margin-bottom:1rem}@media(max-width:768px){.performance-monitor{top:10px;right:10px;left:10px}.performance-overlay{min-width:auto;width:100%}.error-container{margin:1rem;padding:1.5rem}.error-actions{flex-direction:column}.loading-overlay .loading-content{margin:1rem;padding:1.5rem}}@media(max-width:480px){.performance-grid{grid-template-columns:1fr}.metric-item{flex-direction:column;align-items:flex-start;gap:.25rem}.metric-value{text-align:left}.error-icon{font-size:3rem}.loading-spinner-container .apple-spinner.large{width:50px;height:50px}}:root{--anim-duration-fast: .15s;--anim-duration-normal: .25s;--anim-duration-slow: .4s;--anim-duration-slower: .6s;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-in-out-quart: cubic-bezier(.76, 0, .24, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.4, 0, .2, 1)}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pageExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.page-enter{animation:pageEnter var(--anim-duration-slow) var(--ease-out-expo)}.main-content>div{animation:pageEnter var(--anim-duration-slow) var(--ease-out-expo)}@keyframes cardHover{0%{transform:translateY(0) scale(1);box-shadow:var(--theme-shadow-primary)}to{transform:translateY(-4px) scale(1.01);box-shadow:0 12px 28px #00000026}}@keyframes cardPress{0%{transform:scale(1)}50%{transform:scale(.98)}to{transform:scale(1)}}.card-animate,.status-card,.announcement-item,.course-preview{transition:transform var(--anim-duration-normal) var(--ease-out-expo),box-shadow var(--anim-duration-normal) var(--ease-out-expo)!important}.card-animate:hover,.status-card:hover,.announcement-item:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 12px 28px #0000001f}.card-animate:active,.status-card:active{transform:scale(.98);transition-duration:var(--anim-duration-fast)}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(2.5);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);transform:translate(-50%,-50%) scale(0);border-radius:50%;pointer-events:none}.ripple-effect:active:after{animation:ripple var(--anim-duration-slow) var(--ease-out-expo)}@keyframes popupEnter{0%{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes popupExit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(4px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.popup-animate-enter{animation:popupEnter var(--anim-duration-normal) var(--ease-spring)}.popup-animate-exit{animation:popupExit var(--anim-duration-fast) var(--ease-smooth)}.status-card-popup-glass{animation:popupEnter var(--anim-duration-normal) var(--ease-spring)!important}.more-menu{animation:slideUp var(--anim-duration-slow) var(--ease-out-expo)!important}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.98)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-25%)}}.skeleton{background:linear-gradient(90deg,var(--theme-bg-tertiary) 0%,var(--theme-bg-secondary) 50%,var(--theme-bg-tertiary) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.spinner-modern{width:24px;height:24px;border:3px solid var(--theme-border-secondary);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s var(--ease-smooth) infinite}.loading-dots-animate span{animation:bounce 1.4s var(--ease-out-quart) infinite}.loading-dots-animate span:nth-child(1){animation-delay:0s}.loading-dots-animate span:nth-child(2){animation-delay:.15s}.loading-dots-animate span:nth-child(3){animation-delay:.3s}@keyframes navItemEnter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.side-nav-item{transition:all var(--anim-duration-normal) var(--ease-out-expo)!important}.side-nav-item:hover{transform:translate(4px)}.side-nav-item.active{animation:navItemEnter var(--anim-duration-normal) var(--ease-out-expo)}.bottom-nav-tab{transition:all var(--anim-duration-fast) var(--ease-out-expo)!important}.bottom-nav-tab:active{transform:scale(.95)}.bottom-nav-tab.active .tab-icon{animation:bounce var(--anim-duration-slow) var(--ease-spring)}.side-nav{transition:width var(--anim-duration-slow) var(--ease-out-expo)!important}.side-nav .brand-text,.side-nav .nav-label{transition:opacity var(--anim-duration-fast) var(--ease-smooth),width var(--anim-duration-normal) var(--ease-smooth)!important}@keyframes iconPop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.icon-pop:hover{animation:iconPop var(--anim-duration-normal) var(--ease-spring)}.status-icon-container{transition:transform var(--anim-duration-normal) var(--ease-spring)!important}.status-card:hover .status-icon-container{transform:scale(1.1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-on-scroll{opacity:0;animation:fadeInUp var(--anim-duration-slow) var(--ease-out-expo) forwards}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}button,.apple-button,.preview-action-btn{transition:all var(--anim-duration-fast) var(--ease-out-expo)!important}button:hover,.apple-button:hover,.preview-action-btn:hover{transform:translateY(-2px)}button:active,.apple-button:active,.preview-action-btn:active{transform:translateY(0) scale(.98)}input,select,textarea{transition:border-color var(--anim-duration-fast) var(--ease-smooth),box-shadow var(--anim-duration-fast) var(--ease-smooth)!important}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #4a90e233}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.intro-splash-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#fdfbf7,#e6dccd);z-index:2147483647;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#4a4036;overflow:hidden;animation:fadeIn .8s ease-out}.intro-splash-overlay.exiting{animation:slideUpFadeOut 1s cubic-bezier(.8,0,.2,1) forwards}.intro-bg-effect{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");opacity:.4;pointer-events:none;mix-blend-mode:multiply}.intro-spotlight{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.8) 0%,transparent 70%);animation:spotlightMove 15s ease-in-out infinite alternate;pointer-events:none}.intro-content{position:relative;z-index:2;text-align:center;padding:2rem;padding-bottom:60px;display:flex;flex-direction:column;align-items:center;gap:1.2rem}.intro-promo-container{perspective:1500px;margin-bottom:.5rem;position:relative;display:flex;justify-content:center;align-items:center;width:100%}.intro-promo-container:before{content:"";position:absolute;top:50%;left:50%;width:340px;height:100%;transform:translate(-50%,-50%) rotate(-3deg);background:#fff6;border-radius:30px;z-index:-1;box-shadow:0 10px 30px #0000000d;backdrop-filter:blur(10px)}.intro-promo-img{width:300px;max-width:85vw;height:auto;border-radius:20px;transform:rotate(2deg);margin:0 auto;box-shadow:0 20px 40px -10px #4a403633,0 0 0 1px #ffffff80 inset;transition:all .5s cubic-bezier(.2,.8,.2,1);animation:logoEntrance 1.5s cubic-bezier(.22,1,.36,1) forwards,performativeFloat 6s ease-in-out 1.5s infinite;background:#fff;padding:8px}.intro-promo-img:hover{transform:rotate(0) scale(1.02);box-shadow:0 30px 60px -15px #4a403640,0 0 0 1px #fffc inset}@keyframes performativeFloat{0%,to{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-8px) rotate(2.5deg)}}.intro-subtitle{font-family:"Noto Serif TC",Songti TC,serif;font-size:clamp(1.1rem,4vw,1.4rem);letter-spacing:.15em;font-weight:600;color:#5d4037;line-height:1.8;text-shadow:0 1px 2px rgba(255,255,255,.8);position:relative;padding:0 10px}.poetic-line{opacity:0;transform:translateY(10px);animation:poeticDream 2s ease-out forwards;font-style:italic}.line-1{animation-delay:.5s}.line-2{animation-delay:1.5s;font-size:.9em}@keyframes poeticDream{0%{opacity:0;transform:translateY(15px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.intro-subtitle:after{content:"";display:block;width:40px;height:1px;background:#8d6e63;margin:15px auto 0;opacity:.5}.intro-coming-soon{font-family:"Noto Serif TC",Songti TC,serif;font-size:clamp(.9rem,3.5vw,1.2rem);letter-spacing:.2em;color:#8d6e63;margin-top:1rem;opacity:0;animation:poeticDream 3s ease-out 3s forwards;font-weight:500;font-style:italic}.intro-cta-btn{display:inline-block;margin-top:.5rem;padding:12px 32px;background:linear-gradient(135deg,#8d6e63,#5d4037);color:#fff;font-family:"Noto Serif TC",serif;font-size:1rem;text-decoration:none;border-radius:50px;box-shadow:0 4px 15px #5d40374d;opacity:0;transform:translateY(10px);animation:fadeInUp 1s ease-out 4s forwards;transition:all .3s ease;cursor:pointer;letter-spacing:1px}.intro-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #5d403766;background:linear-gradient(135deg,#a1887f,#6d4c41)}.intro-cta-btn:active{transform:translateY(0)}.featured-badge{position:absolute;top:60px;left:20px;background:transparent;border:1px solid rgba(74,64,54,.3);color:#4a4036;padding:6px 16px;font-size:.7rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;border-radius:50px;z-index:10;top:calc(60px + env(safe-area-inset-top));transition:all .3s ease}.featured-badge:hover{background:#4a40360d;border-color:#4a403699}.skip-intro-btn{position:absolute;top:60px;right:20px;background:#fff9;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.8);color:#5d4037;padding:8px 18px;border-radius:50px;font-size:.85rem;font-weight:500;letter-spacing:1px;cursor:pointer;z-index:10;transition:all .3s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;gap:8px;box-shadow:0 4px 15px #00000008;top:calc(60px + env(safe-area-inset-top))}.skip-intro-btn:hover{background:#ffffffe6;transform:translateY(-1px);box-shadow:0 6px 20px #0000000f}.timer-ring{width:14px;height:14px;border:1.5px solid rgba(93,64,55,.2);border-top-color:#5d4037;border-radius:50%;animation:spin 1s linear infinite}.intro-footer{position:fixed;bottom:40px;width:100%;text-align:center;color:#8d6e63;font-size:.75rem;font-weight:400;letter-spacing:2px;text-transform:uppercase;font-family:"Noto Serif TC",serif;opacity:.8;padding-bottom:env(safe-area-inset-bottom)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes textFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes logoEntrance{0%{opacity:0;transform:translateY(30vh) scale(.8) rotate(0);filter:blur(10px)}to{opacity:1;transform:translateY(0) rotate(2deg);filter:blur(0)}}@keyframes slideUpFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05);pointer-events:none}}.easter-egg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#3e272366;backdrop-filter:blur(8px);z-index:100;display:flex;justify-content:center;align-items:center;animation:fadeIn .3s ease-out}.easter-egg-card{background:#ffffffe6;padding:2.5rem;border-radius:24px;width:85%;max-width:320px;text-align:center;box-shadow:0 20px 50px #00000026,0 0 0 1px #fff inset;transform:scale(.9);animation:modalPop .4s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes modalPop{to{transform:scale(1)}}.easter-egg-title{font-family:"Noto Serif TC",serif;font-size:1.2rem;color:#5d4037;margin-bottom:1.5rem;font-weight:700;letter-spacing:2px}.easter-egg-content p{font-family:"Noto Serif TC",serif;font-size:1rem;color:#4a4036;line-height:1.8;margin-bottom:1rem}.easter-egg-divider{height:1px;width:40px;background:#8d6e63;margin:1.5rem auto;opacity:.3}.easter-egg-team{font-size:.85rem!important;color:#8d6e63!important}.easter-egg-version{font-size:.7rem!important;color:#bcaaa4!important;letter-spacing:1px;margin-top:.5rem;text-transform:uppercase}.easter-egg-close{margin-top:1.5rem;background:#5d4037;color:#fff;border:none;padding:10px 24px;border-radius:50px;font-size:.9rem;cursor:pointer;transition:all .2s;font-family:"Noto Serif TC",serif}.easter-egg-close:hover{background:#4e342e;transform:translateY(-2px);box-shadow:0 5px 15px #5d40374d}@keyframes spotlightMove{0%{transform:translate(-30px,-30px)}to{transform:translate(30px,30px)}}@keyframes spin{to{transform:rotate(360deg)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.15;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}@supports (text-size-adjust: 100%){html{text-size-adjust:100%}}body{margin:0;padding: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;font-size:16px;line-height:1.6;background-color:var(--theme-bg-primary);color:var(--theme-text-primary);transition:background-color .3s ease,color .3s ease}:root{--primary-color: #00796b;--primary-light: #48a999;--primary-dark: #004c40;--primary-ultra-light: #b2dfdb;--success-color: #28a745;--warning-color: #ffc107;--error-color: #dc3545;--info-color: #17a2b8;--disabled-color: #6c757d;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 50%;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--spring-easing: cubic-bezier(.175, .885, .32, 1.275);--smooth-easing: cubic-bezier(.25, .46, .45, .94);--apple-easing: cubic-bezier(.4, 0, .2, 1);--breakpoint-xs: 480px;--breakpoint-sm: 768px;--breakpoint-md: 1024px;--breakpoint-lg: 1200px;--breakpoint-xl: 1400px;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 9999;--z-performance: 10000;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .06)}:root,[data-theme=light]{--theme-bg-primary: #f4f7f6;--theme-bg-secondary: #ffffff;--theme-bg-tertiary: #e0f2f1;--theme-bg-card: #ffffff;--theme-bg-overlay: rgba(255, 255, 255, .9);--theme-bg-hover: rgba(0, 0, 0, .04);--theme-bg-active: rgba(0, 0, 0, .08);--theme-text-primary: #333333;--theme-text-secondary: #666666;--theme-text-tertiary: #999999;--theme-text-disabled: #cccccc;--theme-text-inverse: #ffffff;--theme-text-on-primary: #ffffff;--theme-border-primary: #e0e0e0;--theme-border-secondary: #f0f0f0;--theme-border-focus: var(--primary-color);--theme-border-error: var(--error-color);--theme-border-success: var(--success-color);--theme-shadow-primary: 0 2px 8px rgba(0, 0, 0, .1);--theme-shadow-secondary: 0 4px 16px rgba(0, 0, 0, .15);--theme-shadow-hover: 0 8px 24px rgba(0, 0, 0, .2);--theme-shadow-lg: 0 10px 40px rgba(0, 0, 0, .15);--theme-shadow-focus: 0 0 0 3px rgba(0, 121, 107, .1)}[data-theme=dark]{--theme-bg-primary: #1a1a1a;--theme-bg-secondary: #2d2d2d;--theme-bg-tertiary: #3a3a3a;--theme-bg-card: #2d2d2d;--theme-bg-overlay: rgba(45, 45, 45, .9);--theme-bg-hover: rgba(255, 255, 255, .04);--theme-bg-active: rgba(255, 255, 255, .08);--theme-text-primary: #ffffff;--theme-text-secondary: #cccccc;--theme-text-tertiary: #999999;--theme-text-disabled: #666666;--theme-text-inverse: #1a1a1a;--theme-text-on-primary: #ffffff;--theme-border-primary: #404040;--theme-border-secondary: #353535;--theme-border-focus: var(--primary-light);--theme-border-error: #ff6b6b;--theme-border-success: #51cf66;--theme-shadow-primary: 0 2px 8px rgba(0, 0, 0, .3);--theme-shadow-secondary: 0 4px 16px rgba(0, 0, 0, .4);--theme-shadow-hover: 0 8px 24px rgba(0, 0, 0, .5);--theme-shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);--theme-shadow-focus: 0 0 0 3px rgba(72, 169, 153, .2)}#root{background-color:var(--theme-bg-primary);color:var(--theme-text-primary);min-height:100vh;transition:all var(--transition-normal);overflow-x:hidden}.theme-transitioning,.theme-transitioning *,.theme-transitioning *:before,.theme-transitioning *:after{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,fill .3s ease!important}h1,h2,h3,h4,h5,h6{color:var(--theme-text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0;transition:color var(--transition-normal)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{color:var(--theme-text-secondary);line-height:var(--line-height-relaxed);margin:0;transition:color var(--transition-normal)}small{font-size:var(--font-size-sm);color:var(--theme-text-tertiary)}a{color:var(--primary-color);text-decoration:none;transition:all var(--transition-normal);cursor:pointer}a:hover{color:var(--primary-dark);text-decoration:underline}a:focus{outline:2px solid var(--theme-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button;cursor:pointer}button:disabled,[type=button]:disabled,[type=reset]:disabled,[type=submit]:disabled{cursor:not-allowed;opacity:.6}input,textarea,select{background-color:var(--theme-bg-secondary);color:var(--theme-text-primary);border:2px solid var(--theme-border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);transition:all var(--transition-normal);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--theme-border-focus);box-shadow:var(--theme-shadow-focus)}input:disabled,textarea:disabled,select:disabled{background-color:var(--theme-bg-hover);color:var(--theme-text-disabled);cursor:not-allowed}code{background-color:var(--theme-bg-secondary);color:var(--theme-text-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Courier New,monospace;font-size:var(--font-size-sm);border:1px solid var(--theme-border-secondary)}pre{background-color:var(--theme-bg-secondary);color:var(--theme-text-primary);border:1px solid var(--theme-border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);overflow-x:auto;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Courier New,monospace;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}pre code{background:none;border:none;padding:0}ul,ol{color:var(--theme-text-secondary);padding-left:var(--spacing-lg)}li{margin-bottom:var(--spacing-xs);line-height:var(--line-height-relaxed)}table{border-collapse:collapse;border-spacing:0;width:100%;background-color:var(--theme-bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--theme-shadow-primary)}th,td{text-align:left;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--theme-border-secondary)}th{background-color:var(--theme-bg-tertiary);color:var(--theme-text-primary);font-weight:var(--font-weight-semibold)}tr:hover td{background-color:var(--theme-bg-hover)}img{max-width:100%;height:auto;border:0}svg{fill:currentColor}::selection{background-color:var(--primary-color);color:var(--theme-text-on-primary)}::-moz-selection{background-color:var(--primary-color);color:var(--theme-text-on-primary)}@supports (scrollbar-width: thin){*{scrollbar-width:thin}}@supports (scrollbar-color: auto){*{scrollbar-color:var(--primary-color) var(--theme-bg-secondary)}}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--theme-bg-secondary);border-radius:var(--radius-lg)}*::-webkit-scrollbar-thumb{background:linear-gradient(45deg,var(--primary-color),var(--primary-dark));border-radius:var(--radius-lg);transition:all var(--transition-normal)}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(45deg,var(--primary-dark),var(--primary-color))}*::-webkit-scrollbar-corner{background:var(--theme-bg-secondary)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--theme-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--theme-text-primary)}.text-secondary{color:var(--theme-text-secondary)}.text-tertiary{color:var(--theme-text-tertiary)}.bg-primary{background-color:var(--theme-bg-primary)}.bg-secondary{background-color:var(--theme-bg-secondary)}.bg-card{background-color:var(--theme-bg-card)}@media(max-width:767px){.hidden-mobile{display:none!important}}@media(min-width:768px){.hidden-desktop{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(prefers-contrast:high){:root{--theme-border-primary: #000000;--theme-text-secondary: var(--theme-text-primary)}[data-theme=dark]{--theme-border-primary: #ffffff}}@media print{*{background:#fff!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline;color:#000!important}a[href]:after{content:" (" attr(href) ")";font-size:.8em}abbr[title]:after{content:" (" attr(title) ")"}pre,blockquote{border:1px solid black;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{page-break-after:avoid}@supports (orphans: 3){p,h2,h3{orphans:3}}@supports (widows: 3){p,h2,h3{widows:3}}}
