@keyframes notif-prompt-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.notif-prompt{z-index:150;border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:16px;width:340px;max-width:calc(100vw - 2rem);padding:16px 16px 14px;animation:.25s ease-out notif-prompt-in;position:fixed;bottom:20px;right:20px;box-shadow:0 12px 32px #0a26502e}.notif-prompt-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:24px;height:24px;transition:background .15s,color .15s;display:flex;position:absolute;top:10px;right:10px}.notif-prompt-close:hover{color:#374151;background:#f3f4f6}.notif-prompt-row{align-items:flex-start;gap:12px;padding-right:20px;display:flex}.notif-prompt-icon{background:var(--color-primary-50,#eaf1f8);width:40px;height:40px;color:var(--color-primary,#0f4c81);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.notif-prompt-title{color:#111827;font-size:14px;font-weight:700}.notif-prompt-text{color:#6b7280;margin:4px 0 0;font-size:12.5px;line-height:1.5}.notif-prompt-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.notif-prompt-decline{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:9px;padding:8px 10px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.notif-prompt-decline:hover{color:#374151;background:#f3f4f6}.notif-prompt-decline:disabled{opacity:.6;cursor:default}.notif-prompt-enable{background:var(--color-primary,#0f4c81);color:#fff;cursor:pointer;border:none;border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:700;transition:background .15s}.notif-prompt-enable:hover{background:var(--color-primary-dark,#0a2650)}.notif-prompt-enable:disabled{opacity:.7;cursor:default}@media (max-width:480px){.notif-prompt{width:auto;max-width:none;bottom:16px;left:16px;right:16px}}
.shell-page{background:#eef1f6;min-height:100vh}.mobile-btn{top:calc(1rem + var(--promo-banner-height,0px));z-index:200;color:#fff;background:var(--color-primary);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:none;position:fixed;left:1rem;box-shadow:0 4px 12px #0f4c8159}.overlay{z-index:99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a142d66;position:fixed;inset:0}.app-frame{height:calc(100vh - var(--promo-banner-height,0px));background:#fff;display:flex}.sidebar{background:var(--color-primary-900);flex-direction:column;flex-shrink:0;width:264px;height:100%;display:flex}.sidebar-logo{flex-shrink:0;justify-content:space-between;align-items:center;padding:22px 20px 18px;display:flex}.logo-link{align-items:center;gap:9px;text-decoration:none;display:inline-flex}.logo-icon{width:auto;height:30px;display:block}.logo-text{letter-spacing:.01em;color:#fff;font-size:17px;font-weight:800}.close-btn{color:#fff9;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;transition:all .15s;display:none}.close-btn svg{width:20px;height:20px}.close-btn:hover{color:#fff;background:#ffffff1a}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;flex:1;padding:8px 12px;overflow-y:auto}.nav-group{letter-spacing:.1em;text-transform:uppercase;color:#ffffff59;margin:0;padding:16px 10px 6px;font-size:10px;font-weight:700}.nav-item{color:#ffffff9e;border-radius:11px;align-items:center;gap:12px;margin-bottom:2px;padding:8px 10px;font-size:13.5px;font-weight:500;text-decoration:none;transition:all .12s;display:flex}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item.active{color:#fff;background:#ffffff24;font-weight:600}.nav-icon-wrap{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .12s;display:flex;position:relative}.nav-item.active .nav-icon-wrap{background:var(--color-accent)}.nav-icon{opacity:.85;flex-shrink:0;width:16px;height:16px}.nav-item:hover .nav-icon,.nav-item.active .nav-icon{opacity:1}.nav-item.active .nav-icon{stroke:var(--color-primary-dark)}.nav-label{white-space:nowrap}.notif-badge{color:#fff;background:#ef4444;border-radius:10px;justify-content:center;align-items:center;min-width:15px;height:15px;padding:0 3px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-4px;right:-5px}.sidebar-footer{flex-direction:column;flex-shrink:0;gap:2px;padding:10px 12px 18px;display:flex}.logout-btn{color:#fca5a5;cursor:pointer;text-align:left;background:#ef44441f;border:none;border-radius:11px;align-items:center;gap:12px;width:100%;padding:8px 10px;transition:all .12s;display:flex}.logout-btn .nav-icon{opacity:1}.logout-btn:hover{color:#fff;background:#ef444438}.main-col{background:#f8fafc;flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.topbar{background:#fff;border-bottom:1px solid #eef1f6;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:20px 28px;display:flex}.topbar-greeting h1{color:#111827;margin:0;font-size:20px;font-weight:800}.topbar-date{color:#9ca3af;text-transform:capitalize;margin:2px 0 0;font-size:12.5px}.topbar-actions{flex-shrink:0;align-items:center;gap:16px;display:flex}.topbar-search{color:#9ca3af;cursor:pointer;background:#f3f4f6;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;width:220px;height:40px;padding:0 12px 0 14px;font-size:13px;transition:all .15s;display:flex}.topbar-search:hover{background:#e5e7eb}.topbar-search span{text-align:left;white-space:nowrap;flex:1}.topbar-search kbd{color:#9ca3af;background:#fff;border:1px solid #e5e7eb;border-radius:5px;flex-shrink:0;padding:2px 5px;font-size:10px;font-weight:700}@media (max-width:900px){.topbar-search{display:none}}.topbar-bell{color:#6b7280;background:#f3f4f6;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s,color .15s;display:flex;position:relative}.topbar-bell svg{width:19px;height:19px}.topbar-bell:hover{color:var(--color-primary);background:#e5e7eb}.topbar-bell.has-unread{color:#dc2626;background:#dc262614}.topbar-bell-badge{color:#fff;background:#ef4444;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;min-width:17px;height:17px;font-size:9.5px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.topbar-user{border-left:1px solid #e5e7eb;align-items:center;gap:10px;padding-left:14px;display:flex}.topbar-avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex;overflow:hidden}.topbar-avatar-img{object-fit:cover;width:100%;height:100%}.topbar-user-name{color:#111827;white-space:nowrap;font-size:13.5px;font-weight:700;line-height:1.3}.topbar-user-role{color:#9ca3af;font-size:11px;font-weight:600}.main-content{flex:1;padding:24px 28px 32px;overflow-y:auto}.acc-banner-row{align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.acc-banner-row svg{flex-shrink:0;width:20px;height:20px;margin-top:2px}.acc-banner-body{flex:1}.acc-banner-title{font-size:13px;font-weight:600}.acc-banner-reason{opacity:.9;margin-top:2px;font-size:12px}.acc-banner-condition{margin-top:4px;font-size:12px;font-weight:500}.acc-banner-cta{color:#fff;background:#fff3;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s}.acc-banner-cta:hover{background:#ffffff4d}.banner-inactivity{color:#fff;background:#d97706;margin:-24px -28px 24px;font-size:14px}.banner-payment{color:#fff;background:#dc2626;margin:-24px -28px 24px;font-size:14px}.banner-admin{color:#fff;background:#1f2937;margin:-24px -28px 24px;font-size:14px}@media (max-width:1023px){.app-frame{height:auto;min-height:100vh}.main-col{height:auto}.main-content{padding:16px;overflow-y:visible}.sidebar{z-index:100;width:280px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 24px #0000002e}.sidebar.open{transform:translate(0)}.mobile-btn,.close-btn{display:flex}.topbar{flex-wrap:wrap;padding:16px 16px 16px 64px}.banner-inactivity,.banner-payment,.banner-admin{margin:-16px -16px 16px}}@media (max-width:480px){.topbar-user-info{display:none}}
