.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#0b1d3a;overflow:hidden;cursor:pointer}.splash-picture,.splash-picture img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.splash-picture img{object-fit:cover;object-position:50% 40%;display:block}.splash>:not(.splash-close),.splash-close{opacity:0;transition:opacity .7s ease-out}.splash.ready>:not(.splash-close),.splash.ready .splash-close{opacity:1}.splash.ready .splash-picture img{animation:splash-zoom 8s linear forwards}@keyframes splash-zoom{0%{transform:scale(1)}to{transform:scale(1.035)}}.splash-close{position:absolute;top:calc(14px + var(--safe-t));right:14px;z-index:3;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);background:#050c1e73;color:#fff;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000059}.splash-close:active{transform:scale(.94)}.splash-title{position:absolute;left:0;right:0;bottom:0;padding:80px 20px calc(36px + var(--safe-b));text-align:center;color:#fff;background:linear-gradient(180deg,#050c1e00,#050c1ebf 60%,#050c1ee6);z-index:2}.splash-title h1{font-family:var(--font-xmas);font-weight:700;font-size:clamp(36px,11vw,56px);color:#ffe9a8;text-shadow:0 2px 3px rgba(0,0,0,.7),0 0 18px rgba(255,220,120,.4)}.splash-title p{font-family:var(--font-xmas);font-size:clamp(20px,6.5vw,30px);text-shadow:0 2px 3px rgba(0,0,0,.7)}.splash-enter-active,.splash-leave-active{transition:opacity .6s ease}.splash-enter-from,.splash-leave-to{opacity:0}@media (prefers-reduced-motion: reduce){.splash-picture img{animation:none}}.install-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#0712268c;display:flex;align-items:flex-end;justify-content:center}.install-sheet{width:100%;max-width:520px;background:var(--surface);border-radius:22px 22px 0 0;padding:22px 20px calc(20px + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:0 -10px 40px #0000004d}@media (min-width: 560px){.install-backdrop{align-items:center}.install-sheet{border-radius:22px;padding-bottom:22px}}.install-icon{width:72px;height:72px;border-radius:18px;box-shadow:0 6px 18px #00000040}.install-sheet h2{font-size:20px}.install-steps{margin:4px 0;padding-left:22px;text-align:left;font-size:15px;line-height:1.7;align-self:stretch}.install-steps svg{vertical-align:-4px;color:var(--accent)}.install-enter-active,.install-leave-active{transition:opacity .3s}.install-enter-active .install-sheet{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.install-enter-from,.install-leave-to{opacity:0}.install-enter-from .install-sheet{transform:translateY(40px)}:root{--bg: #f3f5f8;--surface: #ffffff;--surface-2: #eef1f5;--text: #16191f;--muted: #68717f;--border: #e1e5ec;--accent: #1b7f4f;--accent-strong: #15673f;--accent-soft: #e3f3ea;--danger: #c0392b;--danger-soft: #fbe9e7;--gold: #e3b84d;--night: #0b1d3a;--radius: 16px;--radius-sm: 10px;--shadow: 0 6px 24px rgba(16, 24, 40, .08);--nav-h: 54px;--safe-b: env(safe-area-inset-bottom, 0px);--nav-safe: max(6px, calc(var(--safe-b) - 16px));--safe-t: env(safe-area-inset-top, 0px);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-xmas: "Mountains of Christmas", "Chalkboard SE", "Comic Sans MS", Georgia, serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body{min-height:100dvh}@media (display-mode: standalone){html{min-height:min(100lvh,calc(100% + env(safe-area-inset-top,0px)))}}html.standalone{min-height:min(100lvh,calc(100% + env(safe-area-inset-top,0px)))}#app,.app{min-height:100dvh}.app.with-nav{padding-bottom:calc(var(--nav-h) + var(--nav-safe))}h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.01em}p{margin:0}a{color:var(--accent);text-decoration:none}button{font:inherit}input,select,textarea{font:inherit;color:inherit}.page{max-width:640px;margin:0 auto;padding:calc(16px + var(--safe-t)) 16px 24px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}.page-header h1{font-size:26px;font-weight:700}.page-header .sub{color:var(--muted);font-size:14px;margin-top:4px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.stack{display:flex;flex-direction:column;gap:14px}.muted{color:var(--muted)}.small{font-size:14px}.auth{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + var(--safe-t)) 20px calc(24px + var(--safe-b));background:radial-gradient(1200px 600px at 50% -10%,#163761 0%,var(--night) 55%,#061227 100%)}.auth-logo{width:84px;height:84px;border-radius:22px;box-shadow:0 10px 30px #00000059;margin-bottom:18px}.auth h1{color:#fff;font-size:26px;text-align:center}.auth .tagline{color:#ffffffb8;text-align:center;margin:8px 0 24px;font-size:15px}.auth .card{width:100%;max-width:420px}.auth .switch{color:#fffc;margin-top:22px;font-size:15px;text-align:center}.auth .switch a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:600;color:#2a2f38}.field .hint{font-size:13px;color:var(--muted)}.field .error{font-size:13px;color:var(--danger)}.input{width:100%;padding:13px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s;-moz-appearance:none;appearance:none;-webkit-appearance:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1b7f4f2e}.input.invalid{border-color:var(--danger)}textarea.input{min-height:96px;resize:vertical}select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2368717f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-error{background:var(--danger-soft);color:#8e2a1f;border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.form-info{background:var(--accent-soft);color:#14532d;border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;font-weight:600;font-size:16px;cursor:pointer;transition:background .15s,transform .08s,opacity .15s;text-decoration:none}.btn:active{transform:scale(.98)}.btn:hover{background:var(--accent-strong)}.btn:disabled{opacity:.6;cursor:default}.btn.block{width:100%}.btn.secondary{background:var(--surface-2);color:var(--text)}.btn.secondary:hover{background:#e3e7ee}.btn.ghost{background:transparent;color:var(--accent);padding-left:8px;padding-right:8px}.btn.ghost:hover{background:var(--accent-soft)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.danger:hover{background:#f6d5d0}.btn.sm{padding:8px 12px;font-size:14px;border-radius:8px}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .8s linear infinite}.btn.secondary .spinner,.btn.ghost .spinner{border-color:#00000026;border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + var(--nav-safe));padding:0 max(14px,env(safe-area-inset-left,0px)) 0 max(14px,env(safe-area-inset-right,0px));display:flex;background:#ffffffeb;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-top:1px solid var(--border);z-index:50}.nav-item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:11px;font-weight:600;text-decoration:none;transition:color .15s;white-space:nowrap}.nav-item.active{color:var(--accent)}.nav-item svg{transition:transform .15s}.nav-item.active svg{transform:translateY(-1px)}.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--nav-safe) + 16px);transform:translate(-50%);background:#1f2430;color:#fff;padding:12px 18px;border-radius:999px;font-size:14.5px;font-weight:500;box-shadow:0 10px 30px #00000040;z-index:100;max-width:calc(100vw - 32px);text-align:center}.toast.success{background:var(--accent)}.toast.error{background:var(--danger)}.toast-enter-active,.toast-leave-active{transition:opacity .25s,transform .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%) translateY(10px)}.snow{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:1}.flake{position:absolute;top:-10px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fffc;animation-name:snowfall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes snowfall{0%{transform:translate3d(0,-10px,0)}to{transform:translate3d(var(--drift, 0px),110vh,0)}}@media (prefers-reduced-motion: reduce){.flake{animation:none;display:none}}.ico{display:inline-block;vertical-align:-.16em;flex:none}.title-ico{display:flex;align-items:center;gap:8px}.title-ico svg{flex:none;color:var(--accent)}.btn-ico{display:inline-flex;align-items:center;gap:6px}
