:root{--bg: #FAFAF8;--bg-sunken: #F3F2EE;--surface: #FFFFFF;--surface-2: #FBFBF9;--text: #2A2A28;--text-soft: #56564F;--muted: #908F87;--faint: #B6B5AC;--border: rgba(42, 42, 40, .08);--border-strong:rgba(42, 42, 40, .13);--shadow: 0 1px 2px rgba(42,42,40,.04), 0 6px 20px rgba(42,42,40,.05);--shadow-lift: 0 2px 4px rgba(42,42,40,.05), 0 14px 38px rgba(42,42,40,.09);--en: oklch(.6 .12 252);--en-soft: oklch(.6 .12 252 / .1);--en-soft-2: oklch(.6 .12 252 / .16);--kr: oklch(.64 .12 28);--kr-soft: oklch(.64 .12 28 / .11);--kr-soft-2: oklch(.64 .12 28 / .17);--again: oklch(.6 .12 25);--again-soft: oklch(.6 .12 25 / .12);--easy: oklch(.58 .09 155);--easy-soft: oklch(.58 .09 155 / .13);--r-sm: 12px;--r-md: 18px;--r-lg: 26px;--r-xl: 32px;--maxw: 640px;--pad: 22px;--font: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-kr: "Noto Sans KR", "Figtree", sans-serif;--font-cn: "Noto Sans TC", "Figtree", sans-serif}[data-theme=dark]{--bg: #1A1A18;--bg-sunken: #141413;--surface: #232321;--surface-2: #1F1F1D;--text: #ECEBE5;--text-soft: #C3C2BA;--muted: #8C8B83;--faint: #6A6A63;--border: rgba(255, 255, 250, .09);--border-strong:rgba(255, 255, 250, .15);--shadow: 0 1px 2px rgba(0,0,0,.25), 0 8px 24px rgba(0,0,0,.3);--shadow-lift: 0 2px 6px rgba(0,0,0,.3), 0 18px 44px rgba(0,0,0,.42);--en: oklch(.72 .12 252);--en-soft: oklch(.72 .12 252 / .13);--en-soft-2: oklch(.72 .12 252 / .2);--kr: oklch(.74 .12 28);--kr-soft: oklch(.74 .12 28 / .14);--kr-soft-2: oklch(.74 .12 28 / .22);--again: oklch(.7 .13 25);--again-soft: oklch(.7 .13 25 / .15);--easy: oklch(.7 .1 155);--easy-soft: oklch(.7 .1 155 / .16)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg-sunken);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}#root{height:100%}.app-spinner{width:24px;height:24px;border:2px solid var(--border-strong);border-top-color:var(--kr);border-radius:50%;animation:spin .8s linear infinite}.auth-loading{flex:1;display:grid;place-items:center}.login-screen{flex:1;display:flex;flex-direction:column;justify-content:center;padding:calc(env(safe-area-inset-top) + 32px) var(--pad) calc(env(safe-area-inset-bottom) + 32px)}.login-logo{width:66px;height:66px;border-radius:17px;margin-bottom:24px}.login-screen h1{font-size:29px;letter-spacing:-.025em;color:var(--text)}.login-screen>p{margin-top:7px;color:var(--muted);font-size:15px}.login-form{display:flex;flex-direction:column;gap:15px;margin-top:30px}.login-form label{display:flex;flex-direction:column;gap:7px;color:var(--text-soft);font-size:13px;font-weight:650}.login-form input{width:100%;padding:14px 15px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:16px;outline:none;box-shadow:var(--shadow)}.login-form input:focus{border-color:var(--en)}.login-form button{margin-top:3px;padding:15px;border-radius:var(--r-md);background:var(--text);color:var(--bg);font-size:16px;font-weight:700;box-shadow:var(--shadow-lift)}.login-form button:disabled{opacity:.45;cursor:default}.login-error{color:var(--again);font-size:13.5px}.connection-banner{position:absolute;z-index:50;top:env(safe-area-inset-top);left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 28px);margin-top:8px;padding:8px 13px;border:1px solid var(--border-strong);border-radius:99px;background:var(--text);color:var(--bg);box-shadow:var(--shadow-lift);font-size:12.5px;font-weight:650;text-align:center}.install-card{position:absolute;z-index:45;left:var(--pad);right:var(--pad);bottom:calc(env(safe-area-inset-bottom) + 78px);display:grid;grid-template-columns:42px 1fr auto auto;align-items:center;gap:10px;padding:11px 10px 11px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.install-card img{width:42px;height:42px;border-radius:11px}.install-card div{min-width:0;display:flex;flex-direction:column;gap:2px}.install-card strong{font-size:14px;color:var(--text)}.install-card span{font-size:12px;color:var(--muted);line-height:1.3}.install-card button:not(.install-dismiss){padding:8px 12px;border-radius:99px;background:var(--text);color:var(--bg);font-size:12.5px;font-weight:700}.install-card .install-dismiss{padding:5px;color:var(--muted);font-size:17px;line-height:1}@media (max-width: 390px){.install-card{grid-template-columns:38px 1fr auto}.install-card img{width:38px;height:38px}.install-card .install-dismiss{display:none}}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}a{color:inherit;text-decoration:none}.tap{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.kr{font-family:var(--font-kr)}.cn{font-family:var(--font-cn)}.fade-enter{animation:fadeUp .4s cubic-bezier(.22,.61,.36,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
