#container{text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:40px;background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:24px;box-shadow:var(--glass-shadow);min-width:300px;transition:all .3s cubic-bezier(.4,0,.2,1)}#container:hover{box-shadow:var(--glass-shadow-hover);transform:translate(-50%,-50%) translateY(-4px)}#container strong{font-size:24px;line-height:32px;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;margin-bottom:12px}#container p{font-size:16px;line-height:22px;color:var(--ion-color-medium);margin:0}#container a{text-decoration:none;color:var(--ion-color-primary);transition:all .2s ease}#container a:hover{color:var(--ion-color-secondary)}ion-header{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}ion-toolbar{--background: transparent;--border-width: 0}ion-title{font-weight:600;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pwa-install-card{margin:16px;border-radius:16px;background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative}.pwa-install-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(56,128,255,.05),rgba(82,96,255,.05));pointer-events:none}.pwa-install-card:hover{box-shadow:var(--glass-shadow-hover);transform:translateY(-2px);background:var(--glass-background-hover)}.pwa-install-card ion-card-content{padding:20px}.pwa-install-content{display:flex;align-items:center;gap:16px;position:relative}.pwa-install-icon{flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--ion-color-primary) 0%,var(--ion-color-secondary) 100%);border-radius:16px;box-shadow:0 4px 16px rgba(56,128,255,.3);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.pwa-install-icon:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);transform:rotate(45deg)}.pwa-install-card:hover .pwa-install-icon{transform:scale(1.05);box-shadow:0 6px 20px rgba(56,128,255,.4)}.pwa-install-icon ion-icon{font-size:28px;color:#fff;z-index:1}.pwa-install-text{flex:1;min-width:0}.pwa-install-text h3{margin:0 0 6px;font-size:17px;font-weight:600;color:var(--ion-text-color);letter-spacing:-.2px}.pwa-install-text p{margin:0;font-size:14px;color:var(--ion-color-medium);line-height:1.5;opacity:.9}.pwa-install-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pwa-install-actions ion-button{--border-radius: 12px;text-transform:none;font-weight:500;letter-spacing:.2px}.pwa-install-actions ion-button::part(native){transition:all .3s cubic-bezier(.4,0,.2,1)}.dismiss-btn{--padding-start: 10px;--padding-end: 10px;--background-hover: var(--hover-background)}.dismiss-btn ion-icon{font-size:20px;transition:transform .2s ease}.dismiss-btn:hover ion-icon{transform:rotate(90deg)}@media(max-width:576px){.pwa-install-card{margin:12px}.pwa-install-card ion-card-content{padding:16px}.pwa-install-content{flex-wrap:wrap;gap:12px}.pwa-install-icon{width:48px;height:48px}.pwa-install-icon ion-icon{font-size:24px}.pwa-install-text{flex:1 1 100%;text-align:left}.pwa-install-text h3{font-size:16px}.pwa-install-text p{font-size:13px}.pwa-install-actions{flex:1 1 100%;justify-content:stretch}.pwa-install-actions ion-button:not(.dismiss-btn){flex:1}}.ion-palette-dark .pwa-install-card:before{background:linear-gradient(135deg,rgba(95,156,255,.08),rgba(109,122,255,.08))}.ion-palette-dark .pwa-install-icon{box-shadow:0 4px 16px rgba(95,156,255,.4)}.ion-palette-dark .pwa-install-card:hover .pwa-install-icon{box-shadow:0 6px 20px rgba(95,156,255,.5)}ion-content{--background: var(--ion-background-color)}ion-content::part(scroll){background:linear-gradient(to bottom,transparent 0%,rgba(var(--ion-color-primary-rgb),.02) 50%,transparent 100%)}.profile-content{--background: var(--ion-background-color)}.loading-container{display:flex;justify-content:center;align-items:center;height:100%}.profile-container{max-width:600px;margin:0 auto;padding:2rem 0}.login-card,.profile-card{border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,.1);margin:0}.profile-icon-large{font-size:80px;color:var(--ion-color-primary);margin-bottom:1rem}.profile-avatar{width:100px;height:100px;margin:1rem auto;border:3px solid var(--ion-color-primary)}.profile-avatar ion-icon{font-size:100px;color:var(--ion-color-medium)}.google-login-btn{--background: white;--color: #333;--border-radius: 8px;--box-shadow: 0 2px 8px rgba(0, 0, 0, .1);font-weight:500;text-transform:none;height:48px}.google-login-btn:hover{--box-shadow: 0 4px 12px rgba(0, 0, 0, .15)}.google-icon{width:20px;height:20px;margin-right:12px}.profile-list{background:transparent;margin-bottom:1.5rem}.profile-list ion-item{--background: rgba(var(--ion-color-primary-rgb), .05);--border-radius: 8px;margin-bottom:.5rem}.profile-list ion-item ion-icon{color:var(--ion-color-primary)}.sign-out-btn{margin-top:1rem;--border-radius: 8px}.ion-palette-dark .google-login-btn{--background: rgba(255, 255, 255, .1);--color: white;--border: 1px solid rgba(255, 255, 255, .2)}.log-empty{display:flex;justify-content:center;align-items:center;height:100%;color:var(--ion-color-medium)}.log-item{--padding-start: 12px;--padding-end: 12px;--inner-padding-end: 0}.log-content{width:100%;padding:8px 0}.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.log-time{font-size:.85rem;font-family:Monaco,Courier New,monospace}.log-context{font-size:.85rem;display:block;margin-bottom:4px;font-family:Monaco,Courier New,monospace}.log-message{font-size:.95rem;margin:4px 0;word-wrap:break-word}.log-details{background:var(--ion-color-light);padding:8px;border-radius:4px;font-size:.85rem;margin-top:8px;overflow-x:auto;font-family:Monaco,Courier New,monospace}.dark-mode-toggle{min-height:44px;min-width:44px;width:44px;height:44px;padding:0;margin:0 auto;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1)}.dark-mode-toggle:hover{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);transform:translateY(-2px)}.dark-mode-toggle ion-icon{color:var(--ion-color-medium);transition:all .3s ease}.dark-mode-toggle:hover ion-icon{color:var(--ion-color-primary);transform:rotate(20deg) scale(1.1)}.side-menu-container{position:fixed;left:0;top:0;height:100vh;background:var(--glass-background);backdrop-filter:blur(var(--glass-blur-strong));-webkit-backdrop-filter:blur(var(--glass-blur-strong));border-right:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:width .25s cubic-bezier(.4,0,.2,1),box-shadow .3s ease,background .3s ease;z-index:100;overflow:hidden}.side-menu-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));pointer-events:none}.side-menu-container.collapsed{width:64px}.side-menu-container.expanded{width:250px;box-shadow:var(--glass-shadow)}.side-menu-container.hovering{z-index:1000;box-shadow:var(--glass-shadow-hover);background:var(--glass-background-hover)}.side-menu-content{height:100%;display:flex;flex-direction:column}.menu-toggle-btn{display:flex;align-items:center;justify-content:center;padding:16px;cursor:pointer;border-bottom:1px solid var(--glass-border);transition:all .3s cubic-bezier(.4,0,.2,1);outline:none;border-radius:0;position:relative;background:rgba(255,255,255,.02)}.menu-toggle-btn:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background:linear-gradient(90deg,transparent,var(--ion-color-primary),transparent);transition:width .3s ease}.menu-toggle-btn:hover{background:var(--glass-background-hover);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:inset 0 1px 2px rgba(255,255,255,.1)}.menu-toggle-btn:hover:after{width:60%}.menu-toggle-btn:focus-visible{outline:2px solid var(--ion-color-primary, #3880ff);outline-offset:-2px}.menu-toggle-btn ion-icon{font-size:24px;color:var(--ion-color-medium, #92949c);transition:all .3s cubic-bezier(.4,0,.2,1)}.menu-toggle-btn:hover ion-icon{color:var(--ion-color-primary);transform:scale(1.1)}.menu-list{flex:1;overflow-y:auto;padding:12px 0;background:transparent}ion-list{background:transparent}.menu-item{--padding-start: 12px;--padding-end: 12px;--min-height: 48px;--background: transparent;margin:6px 10px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:16px;position:relative;overflow:hidden;background:rgba(255,255,255,.03);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:flex-start}.collapsed .menu-item{--padding-start: 0;--padding-end: 0;--inner-padding-start: 0;--inner-padding-end: 0;margin:8px auto;width:44px;height:44px;min-height:44px;border-radius:50%;justify-content:center;background:rgba(255,255,255,.05);border:1px solid transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.collapsed .menu-item::part(native){padding:0;justify-content:center}.collapsed .menu-item:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transform:scale(1.08);box-shadow:0 0 20px rgba(56,128,255,.2),0 4px 12px rgba(0,0,0,.15)}.collapsed .router-link-active .menu-item{background:rgba(56,128,255,.15);border-color:rgba(56,128,255,.3);box-shadow:0 0 20px rgba(56,128,255,.4),0 4px 12px rgba(0,0,0,.2)}.menu-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.05));opacity:0;transition:opacity .3s ease;pointer-events:none}.menu-item:focus-within{outline:2px solid var(--ion-color-primary, #3880ff);outline-offset:2px}.menu-item ion-icon{font-size:24px;color:var(--ion-color-medium, #616e7e);min-width:40px;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.collapsed .menu-item ion-icon{min-width:auto;margin:0 auto;font-size:22px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.collapsed .menu-item::part(native){display:flex;align-items:center;justify-content:center;padding:0!important;position:relative}.collapsed .menu-item .item-inner{padding:0!important}.menu-item ion-label{font-weight:500;font-size:14px;white-space:nowrap;opacity:0;transition:opacity .2s ease .15s;color:var(--ion-text-color);z-index:1}.expanded .menu-item ion-label{opacity:1}.collapsed .menu-item ion-label{opacity:0;transition:opacity .1s ease}.menu-item:hover{background:var(--glass-background-hover);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 4px 20px rgba(31,38,135,.2);transform:translate(4px) scale(1.02)}.collapsed .menu-item:hover{transform:scale(1.08)}.menu-item:hover:before{opacity:1}.menu-item:hover ion-icon{color:var(--ion-color-primary);transform:scale(1.1)}.menu-item:active{transform:translate(2px) scale(.98)}.menu-item.active{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur-strong));-webkit-backdrop-filter:blur(var(--glass-blur-strong));border:1px solid var(--ion-color-primary);box-shadow:0 8px 32px rgba(56,128,255,.3),inset 0 1px 2px rgba(255,255,255,.2)}.menu-item.active:before{opacity:1;background:linear-gradient(135deg,rgba(56,128,255,.15),rgba(56,128,255,.05))}.menu-item.active ion-icon{color:var(--ion-color-primary);filter:drop-shadow(0 0 8px rgba(56,128,255,.4))}.menu-item.active ion-label{color:var(--ion-color-primary);font-weight:600}.collapsed .menu-item.active{background:rgba(56,128,255,.15);border-color:rgba(56,128,255,.3);box-shadow:0 0 20px rgba(56,128,255,.4),0 4px 12px rgba(0,0,0,.2)}.router-link-active .menu-item{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur-strong));-webkit-backdrop-filter:blur(var(--glass-blur-strong));border:1px solid var(--ion-color-primary);box-shadow:0 8px 32px rgba(56,128,255,.3),inset 0 1px 2px rgba(255,255,255,.2)}.router-link-active .menu-item:before{opacity:1;background:linear-gradient(135deg,rgba(56,128,255,.15),rgba(56,128,255,.05))}.router-link-active .menu-item ion-icon{color:var(--ion-color-primary);filter:drop-shadow(0 0 8px rgba(56,128,255,.4))}.router-link-active .menu-item ion-label{color:var(--ion-color-primary);font-weight:600}.menu-footer{border-top:1px solid var(--glass-border);padding:12px 8px;margin-top:auto;background:rgba(255,255,255,.05);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));position:relative}.menu-footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--glass-border),transparent)}.footer-content{display:flex;flex-direction:column;gap:12px;transition:all .15s ease;align-items:center;width:100%}.footer-version{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:6px 12px;background:rgba(255,255,255,.03);border-radius:12px;border:1px solid rgba(255,255,255,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .3s ease}.footer-version:hover{background:rgba(255,255,255,.08);border-color:var(--glass-border);box-shadow:0 2px 8px rgba(31,38,135,.15)}.version-number{font-size:10px;color:var(--ion-color-medium, #92949c);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.menu-item:nth-child(1){animation-delay:.05s}.menu-item:nth-child(2){animation-delay:.1s}.menu-item:nth-child(3){animation-delay:.15s}.menu-item:nth-child(4){animation-delay:.2s}.menu-item:nth-child(5){animation-delay:.25s}.menu-item:nth-child(6){animation-delay:.3s}@keyframes slideInFade{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.expanded .menu-item{animation:slideInFade .3s ease forwards}.menu-list::-webkit-scrollbar{width:6px}.menu-list::-webkit-scrollbar-track{background:rgba(255,255,255,.02);border-radius:10px}.menu-list::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:10px;transition:background .3s ease}.menu-list::-webkit-scrollbar-thumb:hover{background:var(--ion-color-medium)}.ion-palette-dark .menu-item{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.03)}.ion-palette-dark .collapsed .menu-item{background:rgba(255,255,255,.03);border:1px solid transparent}.ion-palette-dark .collapsed .menu-item:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);box-shadow:0 0 20px rgba(95,156,255,.3),0 4px 12px rgba(0,0,0,.4)}.ion-palette-dark .collapsed .router-link-active .menu-item{background:rgba(95,156,255,.2);border-color:rgba(95,156,255,.4);box-shadow:0 0 20px rgba(95,156,255,.5),0 4px 12px rgba(0,0,0,.4)}.ion-palette-dark .menu-item:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);box-shadow:0 4px 20px rgba(0,0,0,.4)}.ion-palette-dark .router-link-active .menu-item{background:rgba(95,156,255,.15);border-color:var(--ion-color-primary);box-shadow:0 8px 32px rgba(95,156,255,.4),inset 0 1px 2px rgba(255,255,255,.1)}.ion-palette-dark .router-link-active .menu-item:before{background:linear-gradient(135deg,rgba(95,156,255,.2),rgba(95,156,255,.05))}.ion-palette-dark .footer-version{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08)}.ion-palette-dark .footer-version:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}.splash-screen{display:flex;align-items:center;justify-content:center;height:100vh;width:100%;background:linear-gradient(135deg,#667eea,#764ba2);position:fixed;top:0;left:0;z-index:9999}.splash-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff}.splash-icon{margin-bottom:2rem;animation:bounce 2s infinite}.splash-icon img{width:120px;height:120px;border-radius:24px;box-shadow:0 8px 32px rgba(0,0,0,.2)}.splash-content h1{font-size:2.5rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-1px}.splash-content p{font-size:1rem;margin:0 0 2rem;opacity:.9;font-weight:300}ion-spinner{margin-top:1rem}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(prefers-color-scheme:dark){.splash-screen{background:linear-gradient(135deg,#1e1b4b,#2d1b69)}}:root{--ion-color-primary: #3880ff;--ion-color-primary-rgb: 56, 128, 255;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #3171e0;--ion-color-primary-tint: #4c8dff;--ion-color-secondary: #5260ff;--ion-color-secondary-rgb: 82, 96, 255;--ion-color-success: #2dd36f;--ion-color-warning: #ffc409;--ion-color-danger: #eb445a;--ion-color-medium: #92949c;--ion-color-medium-rgb: 146, 148, 156;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-background-color: #ffffff;--ion-background-color-rgb: 255, 255, 255;--ion-text-color: #000000;--ion-text-color-rgb: 0, 0, 0;--ion-border-color: #e0e0e0;--hover-background: rgba(0, 0, 0, .04);--active-background: rgba(56, 128, 255, .12);--glass-background: rgba(255, 255, 255, .7);--glass-background-hover: rgba(255, 255, 255, .8);--glass-border: rgba(255, 255, 255, .3);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .15);--glass-shadow-hover: 0 12px 40px 0 rgba(31, 38, 135, .25);--glass-blur: 12px;--glass-blur-strong: 20px}.ion-palette-dark{--ion-color-primary: #5f9cff;--ion-color-primary-rgb: 95, 156, 255;--ion-color-primary-contrast: #000000;--ion-color-primary-contrast-rgb: 0, 0, 0;--ion-color-primary-shade: #5489e0;--ion-color-primary-tint: #6fa6ff;--ion-color-secondary: #6d7aff;--ion-color-secondary-rgb: 109, 122, 255;--ion-color-success: #2fdf75;--ion-color-warning: #ffd534;--ion-color-danger: #ff4961;--ion-color-medium: #a0a2ab;--ion-color-medium-rgb: 160, 162, 171;--ion-color-light: #2a2a2e;--ion-color-light-rgb: 42, 42, 46;--ion-background-color: #1a1a1d;--ion-background-color-rgb: 26, 26, 29;--ion-text-color: #e8e8e8;--ion-text-color-rgb: 232, 232, 232;--ion-border-color: #2d2d30;--hover-background: rgba(255, 255, 255, .05);--active-background: rgba(95, 156, 255, .15);--glass-background: rgba(26, 26, 29, .6);--glass-background-hover: rgba(26, 26, 29, .75);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .4);--glass-shadow-hover: 0 12px 40px 0 rgba(0, 0, 0, .6);--glass-blur: 12px;--glass-blur-strong: 20px}.main-content{margin-left:60px;transition:margin-left .25s cubic-bezier(.4,0,.2,1)}.interactive-btn{display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;transition:background-color .2s;user-select:none;outline:none}.interactive-btn:hover{background-color:var(--hover-background)}.interactive-btn:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:-2px}.icon-sm{font-size:16px}.icon-md{font-size:20px}.icon-lg{font-size:24px}.transition-fast{transition:all .15s ease}.transition-normal{transition:all .2s ease}.transition-slow{transition:all .3s ease}.glass{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass:hover{background:var(--glass-background-hover);box-shadow:var(--glass-shadow-hover);transform:translateY(-2px)}.glass-strong{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur-strong));-webkit-backdrop-filter:blur(var(--glass-blur-strong));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-card{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:16px;padding:20px;box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-card:hover{box-shadow:var(--glass-shadow-hover);transform:translateY(-4px)}
