:root{--gns-brand-orange: #FF8800;--gns-brand-orange-tint: #FFF5EB;--gns-error-coral: #FF6B6B;--gns-error-bg: #FFF5F5;--gns-success-green: #00C853;--gns-warning-amber: #FFB300;--gns-info-bluegray: #607D8B;--gns-text-primary: #1F1F1F;--gns-text-secondary: #757575;--gns-border-light: #EFEFEF;--gns-shadow-soft: 0px 8px 24px rgba(255, 136, 0, .12);--gns-shadow-heavy: 0px 12px 32px rgba(0, 0, 0, .12);--gns-bg-card: #FFFFFF;--gns-radius: 16px}.gns-container{position:fixed;top:0;left:0;width:100%;height:0;z-index:9999;pointer-events:none;display:flex;flex-direction:column;align-items:center}.gns-toast-stack{position:fixed;top:max(env(safe-area-inset-top),24px);left:50%;transform:translate(-50%);width:92%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}.gns-toast{pointer-events:auto;background:var(--gns-bg-card);border-radius:var(--gns-radius);box-shadow:var(--gns-shadow-soft);padding:14px 16px;width:100%;display:flex;align-items:flex-start;gap:12px;animation:gns-slide-in .4s cubic-bezier(.175,.885,.32,1.275) forwards;transition:all .3s ease;opacity:0;transform:translateY(-20px) scale(.95)}.gns-toast.gns-leaving{animation:gns-slide-out .2s ease forwards}.gns-toast-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gns-toast-content{flex:1;display:flex;flex-direction:column;gap:2px;padding-top:1px}.gns-toast-title{color:var(--gns-text-primary);font-size:15px;font-weight:600;line-height:1.4}.gns-toast-desc{color:var(--gns-text-secondary);font-size:13px;font-weight:400;line-height:1.4}.gns-toast-close{width:20px;height:20px;padding:4px;box-sizing:content-box;color:var(--gns-text-secondary);opacity:.6;cursor:pointer;flex-shrink:0}.gns-snackbar-container{position:fixed;bottom:max(env(safe-area-inset-bottom),24px);left:50%;transform:translate(-50%);width:92%;max-width:400px;z-index:10000;pointer-events:none}.gns-snackbar{pointer-events:auto;background:var(--gns-bg-card);color:var(--gns-text-primary);border-radius:var(--gns-radius);box-shadow:var(--gns-shadow-heavy);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:gns-slide-up .3s cubic-bezier(.19,1,.22,1) forwards}.gns-snackbar.gns-leaving{animation:gns-fade-down .2s ease forwards}.gns-snackbar-text{font-size:14px;font-weight:500}.gns-snackbar-action{background:var(--gns-brand-orange);color:#fff;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600;border:none;cursor:pointer}.gns-dialog-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10001;display:flex;align-items:center;justify-content:center;opacity:0;animation:gns-fade-in .2s ease forwards;pointer-events:auto}.gns-dialog{background:var(--gns-bg-card);width:80%;max-width:320px;border-radius:24px;padding:24px;transform:scale(.9);opacity:0;animation:gns-scale-in .25s cubic-bezier(.34,1.56,.64,1) forwards .1s;box-shadow:var(--gns-shadow-heavy);text-align:center;pointer-events:auto}.gns-dialog-title{font-size:18px;font-weight:600;color:var(--gns-text-primary);margin-bottom:8px}.gns-dialog-desc{font-size:14px;color:var(--gns-text-secondary);margin-bottom:24px;line-height:1.5}.gns-dialog-actions{display:flex;gap:12px;justify-content:center}.gns-dialog-btn{flex:1;padding:10px 0;border-radius:99px;font-size:15px;font-weight:600;border:none;cursor:pointer}.gns-dialog-btn.primary{background:var(--gns-brand-orange);color:#fff}.gns-dialog-btn.secondary{background:transparent;color:var(--gns-text-secondary);border:1px solid var(--gns-border-light)}.gns-input-error-border{border-color:var(--gns-error-coral)!important;background-color:var(--gns-error-bg)!important}.gns-inline-error{display:flex;align-items:center;gap:4px;margin-top:4px;color:var(--gns-error-coral);font-size:12px;animation:gns-shake .4s ease-in-out}@keyframes gns-slide-in{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gns-slide-out{to{opacity:0;transform:translateY(-10px) scale(.95)}}@keyframes gns-slide-up{0%{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes gns-fade-down{to{transform:translate(-50%,20px);opacity:0}}@keyframes gns-fade-in{to{opacity:1}}@keyframes gns-scale-in{to{opacity:1;transform:scale(1)}}@keyframes gns-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}
