.app-toast-host{position:fixed;left:50%;bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:3000;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:max-content;max-width:90vw;pointer-events:none}.app-toast{max-width:100%;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;color:var(--text-inverse);text-align:center;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease;cursor:pointer;pointer-events:auto}.app-toast--in{opacity:1;transform:translateY(0)}.app-toast--success{background:var(--success)}.app-toast--error{background:var(--danger)}.app-toast--warning{background:var(--warning)}.app-toast--info{background:var(--info)}.shell{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;background:var(--surface-base);color:var(--text-primary)}.shell-content{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.shell-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;align-items:stretch;background:var(--surface-elevated);border-top:1px solid var(--border-default);box-shadow:var(--shadow-sm);height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom)}.shell-nav[hidden]{display:none}@media (width < 1200px){body.kb-open .shell-nav{display:none}body.kb-open .shell-content{padding-bottom:env(safe-area-inset-bottom,0)}}.shell-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:100%;min-width:48px;border:none;border-radius:0;background:transparent;color:var(--text-tertiary);cursor:pointer;touch-action:manipulation;transition:color var(--motion-fast)}.shell-nav-btn.is-active{color:var(--brand-primary)}.shell-nav-btn:active{transform:scale(.94);transition:transform 80ms ease-out}.shell-nav-icon{font-size:20px;line-height:1}.shell-nav-label{font-size:10px;font-weight:500;letter-spacing:.02em;line-height:1}.shell-skeleton{min-height:50dvh;background:var(--surface-elevated)}.shell-placeholder,.shell-error{display:flex;align-items:center;justify-content:center;min-height:50dvh;padding:var(--space-xl);color:var(--text-tertiary);font-size:15px;text-align:center}.shell-error{color:var(--danger)}@media (width >= 1200px) and (height >= 600px){.shell-content{padding-bottom:0;padding-left:240px}#sandbox-banner-mount,#install-banner-mount,#broadcast-banner-mount{padding-left:240px}.shell-content.is-bare{padding-left:0}.shell-nav{position:fixed;inset:0 auto 0 0;width:240px;height:100%;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:var(--space-lg) var(--space-sm);padding-bottom:env(safe-area-inset-bottom);border-top:none;border-right:1px solid var(--border-default);box-shadow:none}.shell-nav-btn{flex:none;flex-direction:row;justify-content:flex-start;width:100%;height:48px;padding:0 var(--space-md);gap:var(--space-sm);border-radius:var(--radius-sm);font-size:14px;margin-bottom:2px}.shell-nav-btn.is-active{background:var(--surface-sunken)}.shell-nav-icon{font-size:18px;width:24px;text-align:center}.shell-nav-label{font-size:14px;letter-spacing:normal}}.shell-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;width:100%;min-height:48px;padding:var(--space-sm) var(--space-md);background:var(--surface-base);border-bottom:1px solid var(--border-default);box-shadow:var(--shadow-sm)}.shell-topbar[hidden]{display:none}.shell-back{flex:0 0 auto;padding:4px 8px 4px 0;background:none;border:none;color:var(--brand-primary);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer}.shell-back:active{opacity:.6}.shell-topbar-title{flex:1 1 auto;min-width:0;padding-left:var(--space-sm);margin-right:53px;text-align:center;overflow:hidden;color:var(--text-primary);font-size:var(--text-base);font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.shell-content.has-topbar .screen-title,.shell-content.has-topbar .set-title{display:none}.shell-content.has-topbar .screen-header__row{justify-content:flex-end}.shell-content.has-topbar .screen-header,.shell-content.has-topbar .set-header{margin-bottom:var(--space-sm)}@media (width >= 1200px) and (height >= 600px){.shell-topbar{padding-left:calc(240px + var(--space-md))}}.shell-nav-btn--locked{opacity:.75}body.hybrid-legacy-active #splash-screen,body.hybrid-legacy-active #sovereignShield,body.hybrid-legacy-active .vertical-menu,body.hybrid-legacy-active .legacy-header{display:none!important}body.hybrid-shell>*:not(#app){display:none!important}html:has(>body.hybrid-shell),body.hybrid-shell{color-scheme:light!important}body.hybrid-shell.hybrid-legacy-active>#appContainer{display:block!important}#legacy-host{display:none!important}body.hybrid-legacy-active #legacy-host{position:fixed!important;top:0!important;right:0!important;bottom:64px!important;left:0!important;z-index:1;display:block!important;overflow:auto}.app-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:color-mix(in srgb,var(--text-primary) 45%,transparent);animation:app-dialog-fade var(--motion-fast) ease-out}@keyframes app-dialog-fade{0%{opacity:0}to{opacity:1}}.app-dialog{width:100%;max-width:440px;max-height:92vh;overflow-y:auto;padding:var(--space-lg);background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:app-dialog-pop var(--motion-base) ease-out}@keyframes app-dialog-pop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.app-dialog__title{margin:0 0 var(--space-xs);font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.app-dialog__msg{margin:0 0 var(--space-md);font-size:var(--text-base);color:var(--text-secondary)}.app-dialog__field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:var(--space-sm)}.app-dialog__label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary)}.app-dialog__input{width:100%;min-height:52px;padding:var(--space-sm) var(--space-md);font-size:var(--text-lg);margin-bottom:var(--space-md)}.app-dialog__segment{display:flex;gap:var(--space-xs);padding:var(--space-xs);margin-bottom:var(--space-md);background:var(--surface-sunken);border-radius:var(--radius-md)}.app-dialog__segment .seg-opt{flex:1;min-height:42px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--text-base);font-weight:600}.app-dialog__segment .seg-opt.is-active{background:var(--brand-primary);color:var(--text-inverse)}.app-dialog__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-lg)}.app-dialog__actions .action-btn{flex:1;min-height:50px;padding:0 var(--space-md);border:0;border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);font-size:var(--text-base);font-weight:600}.app-dialog__actions .action-btn:active{opacity:.72}.app-dialog__actions .action-btn--primary{background:var(--brand-primary);color:var(--text-inverse)}.app-dialog__actions .app-dialog__danger{background:var(--danger);color:var(--text-inverse)}.barcode-dialog{text-align:center}.barcode-render{display:inline-block;padding:var(--space-sm);background:var(--surface-card);border-radius:var(--radius-sm)}.barcode-render svg{max-width:100%;height:auto}.barcode-value{margin:var(--space-sm) 0 0;font-family:monospace;letter-spacing:.12em;color:var(--text-secondary)}.app-dialog__select{margin-bottom:var(--space-md)}.app-dialog__select .select-trigger{width:100%}.app-dialog__label .form-req{color:var(--danger)}.app-dialog__duo{display:flex;align-items:center;gap:var(--space-xs)}.app-dialog__duo .app-dialog__input{width:5rem;margin:0}.app-dialog__unit{font-size:var(--text-xs);color:var(--text-secondary)}.sandbox-banner{width:100%;padding:3px var(--space-md);font-size:11px;font-weight:600;text-align:center;letter-spacing:.02em}.sandbox-banner--safe{background:color-mix(in srgb,var(--success) 15%,var(--surface-base));color:var(--success);border-bottom:1px solid color-mix(in srgb,var(--success) 30%,var(--surface-base))}.sandbox-banner--live{background:color-mix(in srgb,var(--danger) 15%,var(--surface-base));color:var(--danger);border-bottom:1px solid color-mix(in srgb,var(--danger) 30%,var(--surface-base))}.subscription-banner-host{width:100%}.subscription-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);font-size:14px;font-weight:500;border-radius:var(--radius-sm);margin-bottom:var(--space-sm);box-shadow:var(--shadow-sm)}.subscription-banner-yellow{background:color-mix(in srgb,var(--warning) 12%,var(--surface-base));color:var(--warning);border:1px solid color-mix(in srgb,var(--warning) 30%,var(--surface-base))}.subscription-banner-red{background:color-mix(in srgb,var(--danger) 12%,var(--surface-base));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,var(--surface-base))}.subscription-banner-msg{flex:1;line-height:1.4;margin-right:var(--space-sm)}.subscription-banner-actions{display:flex;gap:var(--space-sm);align-items:center}.subscription-banner-cta{background:#0000001a;color:inherit;border:1px solid rgb(0 0 0 / 20%);border-radius:var(--radius-sm);padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background var(--motion-fast);min-height:48px}@media (hover: hover){.subscription-banner-cta:hover{background:#0000002e}}.subscription-banner-close{background:transparent;color:inherit;border:none;font-size:24px;line-height:1;width:48px;height:48px;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--motion-fast);display:inline-flex;align-items:center;justify-content:center}@media (hover: hover){.subscription-banner-close:hover{background:#00000014}}@media (width <= 480px){.subscription-banner{flex-direction:column;align-items:stretch;gap:var(--space-sm)}.subscription-banner-actions{justify-content:flex-end}}.install-banner{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-md);font-size:var(--text-sm);background:color-mix(in srgb,var(--brand-primary) 10%,var(--surface-base));color:var(--text-primary);border-bottom:1px solid color-mix(in srgb,var(--brand-primary) 25%,var(--surface-base))}.install-banner__text{flex:1;min-width:0;line-height:1.35}.install-banner__btn{flex-shrink:0;padding:6px 14px;min-height:32px;border:none;border-radius:var(--radius-pill);background:var(--brand-primary);color:var(--text-inverse);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer}.install-banner__close{flex-shrink:0;min-width:32px;min-height:32px;border:none;background:none;color:var(--text-tertiary);font-size:var(--text-sm);cursor:pointer}.install-banner__btn:focus-visible,.install-banner__close:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.broadcast-banner{width:100%;padding:var(--space-xs) var(--space-md);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:center;line-height:1.35}.broadcast-banner--info{background:color-mix(in srgb,var(--info) 14%,var(--surface-base));color:var(--text-primary);border-bottom:1px solid color-mix(in srgb,var(--info) 30%,var(--surface-base))}.broadcast-banner--warning{background:color-mix(in srgb,var(--warning) 16%,var(--surface-base));color:var(--text-primary);border-bottom:1px solid color-mix(in srgb,var(--warning) 32%,var(--surface-base))}
