.layout{flex-direction:column;min-height:100dvh;display:flex}.layout-main{flex-direction:column;flex:1;display:flex}.layout-top-blur{height:calc(env(safe-area-inset-top,0px) + 16px);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:calc(var(--z-overlay) - 1);pointer-events:none;transition:transform .24s,opacity .2s;position:fixed;top:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 50%,#0000 100%);mask-image:linear-gradient(#000 50%,#0000 100%)}.layout-top-hidden{opacity:0;pointer-events:none;transform:translateY(-110%)}.layout-top-bar{top:calc(env(safe-area-inset-top,0px) + var(--space-4));left:var(--space-5);right:var(--space-4);z-index:var(--z-overlay);pointer-events:none;justify-content:space-between;align-items:center;transition:transform .24s,opacity .2s;display:flex;position:fixed}.layout-top-left,.layout-top-actions{pointer-events:auto;align-items:center;gap:var(--space-2);display:flex}.layout-back-btn{align-items:center;gap:var(--space-1);color:var(--color-accent);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;min-height:var(--tap-target-min);background:0 0;border:none;padding:0;display:inline-flex}.layout-bell-wrapper{position:relative}.layout-bell-btn{width:var(--tap-target-min);height:var(--tap-target-min);border-radius:var(--radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex;position:relative}.layout-bell-btn:hover{color:var(--color-accent);border-color:var(--color-accent)}.layout-bell-badge{border-radius:var(--radius-full);background:var(--color-error);width:18px;height:18px;color:var(--color-text-inverse);font-size:.625rem;font-weight:var(--font-weight-bold);border:2px solid var(--color-bg-primary);justify-content:center;align-items:center;display:flex;position:absolute;top:-2px;right:-2px}.layout-notif-tray{z-index:var(--z-modal);background:#00000026;animation:.15s both notifFadeIn;position:fixed;inset:0}.layout-notif-tray-content{top:calc(var(--safe-top) + 60px);left:var(--space-4);right:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:480px;box-shadow:var(--shadow-xl);margin-left:auto;position:absolute;overflow:hidden}@keyframes notifFadeIn{0%{opacity:0}to{opacity:1}}.layout-notif-item{border-bottom:1px solid var(--color-border);width:100%;transition:background var(--transition-fast);align-items:center;gap:0;display:flex}.layout-notif-item:last-child{border-bottom:none}.layout-notif-item:hover{background:var(--color-bg-secondary)}.layout-notif-item-main{align-items:center;gap:var(--space-3);padding:var(--space-4);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;min-width:0;display:flex}.layout-notif-dismiss{padding:var(--space-3);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.layout-notif-dismiss:hover{color:var(--color-text-secondary)}.layout-notif-icon{flex-shrink:0}.layout-notif-info{color:var(--color-accent)}.layout-notif-warn{color:var(--color-warning)}.layout-notif-danger{color:var(--color-error)}.layout-notif-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.layout-notif-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.layout-notif-detail{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.layout-notif-empty{padding:var(--space-6) var(--space-4);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.layout-profile-btn{width:var(--tap-target-min);height:var(--tap-target-min);border-radius:var(--radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-tertiary);cursor:pointer;z-index:var(--z-elevated);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.layout-profile-btn svg{width:20px;height:20px}.layout-profile-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-muted)}.layout-bottom-blur{height:calc(var(--safe-bottom) + 80px);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:calc(var(--z-sticky) - 1);pointer-events:none;position:fixed;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 60%);mask-image:linear-gradient(#0000 0%,#000 60%)}.tab-bar-container{padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--safe-bottom) + var(--space-3));display:flex;position:fixed;bottom:0;left:0;right:0}html[data-keyboard-open] .tab-bar-container{display:none}.tab-bar-container{align-items:center;gap:var(--space-3);z-index:var(--z-sticky);pointer-events:none;background:linear-gradient(to top, color-mix(in srgb, var(--color-bg-primary) 80%, transparent) 40%, transparent 100%);display:flex}@media (display-mode:standalone){.tab-bar-container{padding-bottom:calc(var(--safe-bottom) + var(--space-2))}}.tab-bar{background:var(--color-bg-elevated,var(--color-bg-primary));pointer-events:auto;border-radius:999px;flex:1;justify-content:space-around;align-items:center;padding:8px 10px;display:flex;box-shadow:0 4px 24px #0000001f,0 0 0 1px #ffffff0f}.tab-item{color:var(--color-text-tertiary);transition:color var(--transition-fast), background var(--transition-fast);-webkit-tap-highlight-color:transparent;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:12px 16px;display:flex}.tab-item:active{transform:scale(.95)}.tab-active{color:var(--color-accent);background:var(--color-accent-muted)}.tab-icon{justify-content:center;align-items:center;width:22px;height:22px;display:flex}.tab-label{font-family:var(--font-ui-label);font-size:.6875rem;font-weight:var(--font-weight-semibold);letter-spacing:.01em}.tab-label-inactive{display:none}.tab-fab-wrapper{pointer-events:auto;flex-shrink:0;position:relative}.tab-fab{background:var(--color-accent);width:52px;height:52px;color:var(--color-text-inverse);cursor:pointer;box-shadow:0 4px 16px var(--color-accent-shadow,#0003);-webkit-tap-highlight-color:transparent;transition:transform var(--transition-fast), box-shadow var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.tab-fab svg{transition:transform .2s}.tab-fab-active svg{transform:rotate(45deg)}.tab-fab:active:not(.tab-fab-active){transform:scale(.9)}.tab-fab:hover{box-shadow:0 6px 24px var(--color-accent-shadow-hover,#00000040)}.speed-dial-backdrop{z-index:98;background:#0006;animation:.2s both speedDialFadeIn;position:fixed;inset:0}.speed-dial-menu{bottom:calc(100% + var(--space-3));gap:var(--space-2);z-index:99;flex-direction:column;min-width:200px;display:flex;position:absolute;right:0}.speed-dial-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-accent);color:var(--color-text-inverse);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;box-shadow:0 4px 20px var(--color-accent-shadow,#0003);-webkit-tap-highlight-color:transparent;border:none;font-family:inherit;transition:transform .12s,opacity .12s;animation:.2s both speedDialItemIn;display:flex}.speed-dial-item:active{transform:scale(.95)}.speed-dial-item svg{opacity:.7;flex-shrink:0}@keyframes speedDialFadeIn{0%{opacity:0}to{opacity:1}}@keyframes speedDialItemIn{0%{opacity:0;transform:translateY(12px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.tab-center-hint{bottom:calc(100% + var(--space-3));width:240px;padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;z-index:var(--z-toast);animation:.2s both hintFadeIn;position:absolute;right:0}.tab-center-hint:after{content:"";background:var(--color-bg-elevated);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);width:12px;height:12px;position:absolute;bottom:-6px;right:20px;transform:rotate(45deg)}.tab-center-hint-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--space-3)}.tab-center-hint-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0}.tab-center-hint-link:hover{color:var(--color-accent-hover)}@keyframes hintFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width>=768px){.layout{flex-direction:row}.layout-main{width:calc(100% - 80px);margin-left:80px}.tab-bar-container{width:80px;padding:var(--space-6) var(--space-2);pointer-events:auto;background:var(--tab-bar-bg-desktop);border-right:1px solid var(--color-border);flex-direction:column;align-items:center;gap:0;position:fixed;inset:0 auto 0 0}.tab-bar{gap:var(--space-1);box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;flex:0;justify-content:flex-start;padding:0}.tab-item{padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);flex-direction:column;gap:2px;width:64px}.tab-item:hover:not(.tab-active){background:var(--color-bg-hover);color:var(--color-text-secondary)}.tab-label{font-size:.5625rem}.tab-label-inactive{display:block}.tab-fab-wrapper{margin-top:var(--space-4)}.tab-fab{width:48px;height:48px}.speed-dial-menu{bottom:auto;right:auto;left:calc(100% + var(--space-3));top:50%;transform:translateY(-50%)}.layout-top-bar{display:contents;position:static}.layout-top-left{display:none}.layout-top-actions{top:auto;right:auto;bottom:var(--space-6);justify-content:center;align-items:center;gap:var(--space-3);width:80px;padding-top:var(--space-4);border-top:1px solid var(--color-border);margin:0 var(--space-3);width:calc(80px - var(--space-3) * 2);flex-direction:column;position:absolute;left:0}.layout-notif-tray-content{top:auto;bottom:var(--space-4);max-width:360px;margin-left:0;left:88px;right:auto}}@media (width>=1200px){.layout-main{width:calc(100% - 88px);margin-left:88px}.tab-bar-container{width:88px}.tab-item{width:72px}.layout-top-actions{width:calc(88px - var(--space-3) * 2)}}
