:root{--sidebar-accent-color: var(--primary-color);--shell-safe-bottom: min(env(safe-area-inset-bottom, 0px), 24px);--shell-bottom-nav-height: 85px}body{padding:0;display:flex;height:100vh;min-height:100vh;overflow:hidden}.app-shell-container{display:flex;width:100%;height:100vh}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;height:calc(var(--shell-bottom-nav-height) + var(--shell-safe-bottom));padding:0 6px var(--shell-safe-bottom);background-color:var(--background-color-card, #fff);border-top:1px solid var(--border-color-light, #e2e8f0);z-index:1500;overflow-x:auto;overflow-y:hidden}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 calc((100vw - 12px)/5);max-width:80px;min-width:56px;text-decoration:none;color:var(--text-color-secondary, #64748b);font-size:10px;background:none;border:none;cursor:pointer}@media (min-width: 769px){.bottom-nav{display:none}}.sidebar{width:260px;background-color:var(--background-color-card);border-right:1px solid var(--border-color-light);display:flex;flex-direction:column;transition:width .3s ease,padding .3s ease,transform .3s ease;z-index:1001;flex-shrink:0}#app-sidebar:empty:before{content:"";display:block;margin:16px;height:calc(100% - 32px);border-radius:18px;background:linear-gradient(var(--background-color-hover) 0 0) 0 0/70% 16px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 28px/45% 10px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 72px/100% 12px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 102px/88% 12px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 132px/95% 12px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 162px/82% 12px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 192px/90% 12px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 222px/80% 12px no-repeat,linear-gradient(var(--background-color-hover) 0 0) 0 252px/75% 12px no-repeat;position:relative;overflow:hidden}#app-sidebar:empty{position:relative}#app-sidebar:empty:after{content:"";position:absolute;top:16px;right:16px;bottom:16px;left:16px;border-radius:18px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:skeletonShimmer 1.4s ease-in-out infinite;pointer-events:none}.sidebar-header{display:flex;align-items:center;gap:15px;margin-bottom:20px;padding:0 20px;height:60px;border-bottom:1px solid var(--border-color-light);transition:justify-content .3s ease,padding .3s ease;flex-shrink:0}.sidebar-header img{height:40px;width:40px;object-fit:contain}.sidebar-header .school-info{font-weight:600;transition:opacity .2s ease,visibility .2s ease,width .2s ease;white-space:nowrap;overflow:hidden}.sidebar-header .school-info #sidebar-title{font-size:1.1em;color:var(--sidebar-accent-color)}.sidebar-header .school-info #sidebar-subtitle{font-size:.8em;color:var(--text-color-secondary)}.sidebar-nav{flex-grow:1;overflow-y:auto;overflow-x:hidden;padding:10px}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background-color:var(--border-color-light);border-radius:10px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background-color:#a0aec0}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav a,.sidebar-group summary{display:flex;align-items:center;gap:15px;padding:12px 15px;border-radius:var(--border-radius-md);text-decoration:none;font-weight:500;transition:background-color .2s,color .2s;margin-bottom:5px;white-space:nowrap;overflow:hidden;position:relative;border-left:3px solid transparent;color:var(--text-color-secondary)}.sidebar-nav a:hover,.sidebar-group summary:hover{background-color:var(--background-color-hover);color:var(--text-color-primary)}.sidebar-nav a.active{background-color:var(--primary-color-light);color:var(--sidebar-accent-color);border-left-color:var(--sidebar-accent-color)}.sidebar-group summary.active-group{background-color:transparent;color:var(--sidebar-accent-color);border-left-color:var(--sidebar-accent-color)}.sidebar-nav a.active i,.sidebar-group summary.active-group i{color:var(--sidebar-accent-color)}.sidebar-nav a i,.sidebar-group summary i{width:20px;text-align:center;font-size:1.1em;flex-shrink:0;color:var(--text-color-secondary);transition:color .2s}.sidebar-nav a span,.sidebar-group summary span{transition:opacity .2s ease,visibility .2s ease}.sidebar-group{position:relative}.sidebar-group summary{list-style:none;cursor:pointer}.sidebar-group summary:after{content:"▼";font-size:.7em;margin-left:auto;transition:transform .2s,opacity .2s}.sidebar-group[open]>summary:after{transform:rotate(180deg)}.sidebar-group ul{padding-left:20px;margin-top:5px}.sidebar-group ul a{padding:10px 15px}.sidebar-group ul a i{font-size:.8em}.sidebar.collapsed{width:60px;padding:0}.sidebar.collapsed .sidebar-header{display:flex;align-items:center;justify-content:center;padding:0}.sidebar.collapsed .sidebar-header #sidebar-logo{margin:0}.sidebar.collapsed .sidebar-header .school-info{opacity:0;visibility:hidden;width:0;pointer-events:none}.sidebar.collapsed .sidebar-nav{padding:10px}.sidebar.collapsed .sidebar-nav a,.sidebar.collapsed .sidebar-group summary{justify-content:center;padding:12px}.sidebar.collapsed .sidebar-nav a i,.sidebar.collapsed .sidebar-group summary i{margin:0;font-size:1.2em}.sidebar.collapsed .sidebar-nav a span,.sidebar.collapsed .sidebar-group summary span{display:none}.sidebar.collapsed .sidebar-group summary:after{display:none}.sidebar.collapsed .sidebar-group ul{display:none}.flyout-menu{position:fixed;left:60px;top:0;background-color:var(--background-color-card);border:1px solid var(--border-color-light);box-shadow:var(--shadow-md);border-radius:var(--border-radius-md);padding:8px;min-width:200px;z-index:1005;animation:fadeIn .15s ease-out;list-style:none;margin:0}.flyout-menu li{list-style:none}.flyout-menu a{width:100%;box-sizing:border-box}.sidebar-tooltip{position:fixed;background-color:var(--text-color-primary);color:var(--text-color-light);padding:6px 12px;border-radius:var(--border-radius-md);font-size:.9em;font-weight:500;z-index:1010;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-md);display:none}.sidebar-tooltip:before{content:"";position:absolute;top:50%;right:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent var(--text-color-primary) transparent transparent}#module-disabled-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#module-disabled-overlay .module-disabled-card{background:var(--background-color-card);color:var(--text-color-primary);border:1px solid var(--border-color-light);border-radius:14px;padding:28px 30px;text-align:center;box-shadow:var(--shadow-lg);max-width:520px;width:calc(100% - 40px)}#module-disabled-overlay .module-disabled-icon{width:60px;height:60px;border-radius:50%;background:#ef44441f;color:var(--danger-color);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:28px}#module-disabled-overlay h2{margin:0 0 10px;font-size:1.4rem}#module-disabled-overlay p{margin:0 0 8px;color:var(--text-color-secondary)}#module-disabled-overlay .module-disabled-note{font-size:.9rem}.main-content-wrapper{flex-grow:1;display:flex;flex-direction:column;height:100vh;min-width:0}body.public-view{display:block;height:auto;min-height:100vh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}body.public-view .app-shell-container,body.public-view .main-content-wrapper{height:auto;min-height:100vh}body.public-view #app-content{overflow:visible;min-height:calc(100vh - 30px)}@supports (height: 100dvh){body{height:100dvh;min-height:100dvh}.app-shell-container,.main-content-wrapper{height:100dvh}body.public-view,body.public-view .app-shell-container,body.public-view .main-content-wrapper{min-height:100dvh}body.public-view #app-content{min-height:calc(100dvh - 30px)}}.top-bar{flex-shrink:0;display:flex;align-items:center;padding:0 20px;gap:15px;height:60px;background-color:var(--background-color-card);border-bottom:1px solid var(--border-color-light);position:relative}.billing-status-banner{display:flex;align-items:center;gap:16px;padding:10px 20px;background:#fff7ed;border-bottom:1px solid #fed7aa;color:#9a3412;font-size:.95em}.billing-banner-content{display:flex;flex-direction:column;gap:4px}.billing-banner-title{font-weight:600}.billing-banner-message{color:inherit}.billing-banner-contact{font-size:.85em;color:#b45309}.billing-banner-action{margin-left:auto;padding:6px 12px;border-radius:999px;background:#f97316;color:#fff;font-weight:600;text-decoration:none;white-space:nowrap}.billing-banner-action:hover{background:#ea580c}.dark .billing-status-banner{background:#3b1f0f;border-bottom-color:#7c2d12;color:#fdba74}.dark .billing-banner-contact{color:#fb923c}#app-top-bar:empty:before{content:"";display:block;height:36px;width:min(420px,60%);border-radius:999px;background:var(--background-color-hover);position:relative;overflow:hidden}#app-top-bar:empty:after{content:"";position:absolute;top:12px;right:20px;bottom:12px;left:20px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);animation:skeletonShimmer 1.4s ease-in-out infinite;pointer-events:none;border-radius:999px}.top-bar-right{margin-left:auto;display:flex;align-items:center;gap:5px}.sidebar-toggle{background:none;border:none;font-size:1.5em;cursor:pointer;color:var(--text-color-primary)}.top-bar-title{font-size:1.2em;font-weight:600;color:var(--primary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color .2s;min-width:0}.top-bar-title:hover{color:var(--primary-color-dark)}.module-summary-tooltip{display:none;position:absolute;top:55px;left:60px;background-color:var(--background-color-card);border:1px solid var(--border-color-light);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);padding:12px 15px;z-index:1020;max-width:350px;font-size:.9em;line-height:1.5;animation:fadeIn .2s ease-out}.top-bar-filter{display:none}.user-profile{display:flex;align-items:center;gap:10px;position:relative;cursor:pointer;padding:5px;border-radius:var(--border-radius-full);transition:background-color .2s}.user-profile:hover{background-color:var(--background-color-main)}.user-avatar{width:40px;height:40px;border-radius:var(--border-radius-full);object-fit:cover;border:2px solid var(--border-color-light)}.user-avatar.default-avatar{display:flex;align-items:center;justify-content:center;background-color:var(--background-color-main);color:var(--text-color-secondary)}.user-avatar.default-avatar i{font-size:1.2em}.welcome-text-desktop{font-size:.9em;color:var(--text-color-secondary);text-align:right}.welcome-text-desktop strong{display:block;color:var(--text-color-primary)}.user-menu-dropdown{display:none;position:absolute;top:calc(100% + 5px);right:0;background-color:var(--background-color-card);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);min-width:240px;max-width:320px;max-height:calc(100vh - 80px);overflow-y:auto;z-index:1010;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-menu-dropdown.show{display:block}.user-menu-dropdown #logout-btn{position:sticky;bottom:0;background-color:var(--background-color-card);border-top:1px solid var(--border-color-light);z-index:1;margin-top:auto}@media (max-width: 768px){.user-menu-dropdown{position:fixed;top:72px;bottom:auto;right:16px;left:auto;width:min(92vw,320px);max-height:calc(100vh - 88px);overflow-y:auto;transform:none}}.dropdown-header{padding:15px;border-bottom:1px solid var(--border-color-light);text-align:center}.dropdown-header strong{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-header span{font-size:.85em;color:var(--text-color-secondary);text-transform:capitalize}.user-menu-dropdown a,.user-menu-dropdown button{background:none;border:none;width:100%;text-align:left;padding:12px 15px;cursor:pointer;font-size:.95em;display:flex;align-items:center;gap:10px;color:var(--text-color-primary);text-decoration:none;font-family:var(--font-family-main)}.user-menu-dropdown a:hover,.user-menu-dropdown button:hover{background-color:var(--background-color-hover)}.user-menu-dropdown button.disabled{color:#9ca3af;cursor:not-allowed;background-color:transparent}.dropdown-divider{height:1px;background-color:var(--border-color-light);margin:5px 0}.dropdown-version{padding:10px 15px;display:flex;align-items:center;gap:10px;color:var(--text-color-secondary);font-size:.85em;cursor:text;-webkit-user-select:text;user-select:text}.dropdown-version i{font-size:.9em;color:var(--text-color-secondary)}.dropdown-version .version-text{display:flex;flex-direction:column;gap:2px;line-height:1.2}.dropdown-version .version-label{text-transform:uppercase;letter-spacing:.05em;font-size:.7em;color:var(--text-color-secondary)}.dropdown-version .version-value{font-weight:600;color:var(--text-color-primary);word-break:break-word}.dropdown-filter-item{padding:12px 15px;display:flex;align-items:center;gap:10px;font-size:.95em}.dropdown-filter-item label{display:flex;align-items:center;gap:10px;color:var(--text-color-secondary);white-space:nowrap}.dropdown-filter-item select{width:100%;border:1px solid var(--border-color-light);border-radius:var(--border-radius-md);padding:5px;font-weight:500}#app-content{flex-grow:1;overflow-y:auto;padding:15px 25px 80px;background-color:var(--background-color-main);position:relative;transition:opacity .25s ease}.app-content--loading{min-height:60vh;opacity:.85}.app-content--revealed{opacity:1}.app-content--transition:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--background-color-main);opacity:.55;pointer-events:none;transition:opacity .2s ease-out;z-index:10}.app-content--transition{transition:opacity .2s ease-out;opacity:.85}.app-skeleton{display:grid;gap:18px;animation:skeletonFadeIn .2s ease-out}.app-skeleton .skeleton-header{display:grid;gap:10px;margin-bottom:6px}.app-skeleton .skeleton-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.app-skeleton .skeleton-grid--dashboard .skeleton-card{height:120px}.app-skeleton .skeleton-toolbar{display:flex;gap:10px;flex-wrap:wrap}.app-skeleton .skeleton-pill{height:36px;width:140px;border-radius:999px;background:var(--background-color-card);position:relative;overflow:hidden}.app-skeleton .skeleton-table{height:320px;border-radius:16px;background:var(--background-color-card);position:relative;overflow:hidden}.app-skeleton .skeleton-form{display:grid;gap:12px}.app-skeleton .skeleton-field{height:18px;width:min(420px,100%)}.app-skeleton .skeleton-field--wide{height:24px;width:min(520px,100%)}.app-skeleton .skeleton-button{height:44px;width:min(220px,100%);border-radius:12px;background:var(--background-color-card);position:relative;overflow:hidden}.app-skeleton .skeleton-card{height:110px;border-radius:16px;background:var(--background-color-card);position:relative;overflow:hidden}.app-skeleton .skeleton-list{display:grid;gap:12px}.app-skeleton .skeleton-line{height:14px;border-radius:999px;background:var(--background-color-card);position:relative;overflow:hidden}.app-skeleton .skeleton-title{height:26px;width:min(320px,70%)}.app-skeleton .skeleton-subtitle{height:16px;width:min(420px,85%)}.app-skeleton .skeleton-card:after,.app-skeleton .skeleton-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);animation:skeletonShimmer 1.4s ease-in-out infinite}.app-skeleton .skeleton-pill:after,.app-skeleton .skeleton-table:after,.app-skeleton .skeleton-button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);animation:skeletonShimmer 1.4s ease-in-out infinite}@keyframes skeletonShimmer{to{transform:translate(100%)}}@keyframes skeletonFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}main#app-content .module-title{font-size:1.8rem;font-weight:600;color:var(--text-color-primary);margin:0 0 20px;padding-bottom:0;border-bottom:none}@media (max-width: 768px){.sidebar,.sidebar-toggle{display:none}.content-overlay{display:none!important}#app-content{padding:15px;padding-bottom:var(--safe-area-bottom, 110px)!important}.welcome-text-desktop{display:none}.module-summary-tooltip{left:15px;right:15px;max-width:none;width:auto}.top-bar-title-container{margin-left:0}}@media (max-width: 480px){.top-bar-title{max-width:calc(100vw - 140px);white-space:normal;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.user-menu-dropdown button.disabled,.user-menu-dropdown button[disabled]{color:#9ca3af;cursor:not-allowed;background-color:transparent}.user-menu-dropdown button.disabled:hover,.user-menu-dropdown button[disabled]:hover{background-color:transparent}.notification-icon{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--text-color-secondary);font-size:1.2rem;border-radius:50%;transition:background-color .2s,color .2s;text-decoration:none;cursor:pointer}.notification-icon:hover{background-color:var(--background-color-hover);color:var(--text-color-primary)}.notification-badge{position:absolute;top:5px;right:5px;min-width:18px;height:18px;background-color:var(--danger-color);color:var(--text-color-light);border-radius:50%;font-size:.7rem;font-weight:600;display:flex;align-items:center;justify-content:center;padding:2px;border:2px solid var(--background-color-card);transform:scale(0);transition:transform .2s ease-in-out}.notification-badge.show{transform:scale(1)}.notification-modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:transparent;z-index:1000}.notification-modal-overlay.active{display:block}#notification-modal{position:absolute;top:65px;right:20px;width:360px;max-width:90vw;background-color:var(--background-color-card);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--border-color-light);z-index:1011;display:flex;flex-direction:column;max-height:450px;animation:fadeInDropdown .2s ease-out}@keyframes fadeInDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-modal-header{padding:12px 15px;font-weight:600;border-bottom:1px solid var(--border-color-light);flex-shrink:0}.notification-modal-body{overflow-y:auto;padding:8px;flex-grow:1}.notification-item{display:block;padding:10px;border-radius:var(--border-radius-md);text-decoration:none;color:var(--text-color-primary);transition:background-color .2s;border-bottom:1px solid var(--border-color-light)}.notification-item:last-child{border-bottom:none}.notification-item:hover{background-color:var(--background-color-hover)}.notification-item-title{font-weight:600;font-size:.95em;margin-bottom:4px}.notification-item-message{font-size:.9em;color:var(--text-color-secondary);line-height:1.4;margin-bottom:6px}.notification-item-meta{font-size:.8em;color:var(--text-color-secondary)}.notification-modal-footer{padding:10px;text-align:center;border-top:1px solid var(--border-color-light);flex-shrink:0}.notification-modal-footer a{color:var(--primary-color);font-weight:500;text-decoration:none}.empty-notifications{padding:30px;text-align:center;color:var(--text-color-secondary)}.empty-notifications i{font-size:2rem;margin-bottom:10px;display:block}.loader-container{display:flex;justify-content:center;padding:20px}.dropdown-theme-controls{padding:10px 15px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.dark-mode-control{display:flex;align-items:center;justify-content:space-between;flex-basis:100%;margin-top:10px}.theme-control-header{flex-basis:100%;font-size:.8em;font-weight:600;color:var(--text-color-secondary);display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}.theme-buttons{display:flex;gap:5px;flex-grow:1}.theme-choice-btn{flex:1;padding:6px 8px;border:1px solid var(--border-color-light);border-radius:var(--border-radius-md);background-color:var(--background-color-main);color:var(--text-color-secondary);font-size:.8em;font-weight:500;cursor:pointer;transition:all .2s}.theme-choice-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.theme-choice-btn.active{background-color:var(--primary-color);color:var(--text-color-light);border-color:var(--primary-color)}.dark-mode-toggle{position:relative;display:inline-block;width:50px;height:26px;cursor:pointer}.dark-mode-toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ccc;border-radius:26px;transition:background-color .2s;display:flex;align-items:center;justify-content:space-between;padding:0 4px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .2s}.toggle-slider .fa-sun,.toggle-slider .fa-moon{font-size:.8em;color:#fff;transition:opacity .2s}.toggle-slider .fa-sun{opacity:1}.toggle-slider .fa-moon{opacity:0}input:checked+.toggle-slider{background-color:var(--primary-color)}input:checked+.toggle-slider:before{transform:translate(24px)}input:checked+.toggle-slider .fa-sun{opacity:0}input:checked+.toggle-slider .fa-moon{opacity:1}@media (max-width: 768px){.user-menu-dropdown{position:fixed;top:auto;bottom:70px;right:10px;left:auto;max-height:calc(100vh - 140px);overflow-y:auto;max-width:280px;min-width:240px}.user-menu-dropdown #logout-btn{position:sticky;bottom:0;background-color:var(--background-color-card);border-top:1px solid var(--border-color-light);z-index:1;margin-bottom:0!important}}@media (min-width: 769px){#top-bar-search-btn{display:none!important}}.pwa-install-popup{position:fixed;left:12px;right:12px;bottom:calc(var(--shell-bottom-nav-height, 60px) + var(--shell-safe-bottom, env(safe-area-inset-bottom, 0px)) + 10px);z-index:1560;display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;border:1px solid rgba(59,130,246,.22);background:linear-gradient(135deg,#eff6fffa,#fffffffa);box-shadow:0 12px 28px #0f172a33;animation:installPopupEnter .24s ease-out}.pwa-install-popup.closing{animation:installPopupExit .18s ease-in forwards}.pwa-install-popup__icon{width:34px;height:34px;border-radius:10px;background:#2563eb24;color:#1d4ed8;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pwa-install-popup__content{flex:1;min-width:0}.pwa-install-popup__title{margin:0 0 4px;font-size:.98rem;line-height:1.25;color:#0f172a}.pwa-install-popup__desc{margin:0;font-size:.84rem;line-height:1.4;color:#334155}.pwa-install-popup__actions{margin-top:10px;display:flex;gap:8px}.pwa-install-popup__btn{border:none;border-radius:10px;padding:8px 12px;font-size:.82rem;font-weight:600;cursor:pointer}.pwa-install-popup__btn--primary{background:#2563eb;color:#fff}.pwa-install-popup__btn--ghost{background:#0f172a14;color:#0f172a}.fullscreen-fallback-chip{position:fixed;right:12px;bottom:calc(var(--shell-bottom-nav-height, 60px) + var(--shell-safe-bottom, env(safe-area-inset-bottom, 0px)) + 90px);z-index:1550;border:none;border-radius:999px;padding:9px 13px;display:inline-flex;align-items:center;gap:6px;background:#0f172aeb;color:#fff;box-shadow:0 8px 20px #0f172a59;font-size:.8rem;font-weight:600;animation:installPopupEnter .2s ease-out}.fullscreen-fallback-chip:disabled{opacity:.7}@keyframes installPopupEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes installPopupExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@media (min-width: 769px){.pwa-install-popup,.fullscreen-fallback-chip{display:none!important}}
