.page-state{display:flex;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:2.5rem 1.25rem;background:var(--bg-base);color:var(--text-primary);text-align:center}.page-state--notFound,.page-state--error{gap:1rem}.page-state__mark{display:flex;width:3.5rem;height:3.5rem;align-items:center;justify-content:center;border:1.5px solid var(--lime-primary);border-radius:999px;color:var(--lime-primary);font-size:1rem;font-weight:900;line-height:1}.page-state__logo{display:block;width:6.4rem;height:auto}.page-state__copy{display:grid;max-width:21rem;gap:.45rem}.page-state__title{margin:0;color:var(--text-primary);font-size:1.45rem;font-weight:900;line-height:1.25;letter-spacing:0;word-break:keep-all}.page-state--notFound .page-state__copy,.page-state--error .page-state__copy{gap:.35rem}.page-state--notFound .page-state__title,.page-state--error .page-state__title{color:var(--text-primary);font-size:1.08rem;font-weight:500}.page-state--notFound .page-state__description,.page-state--error .page-state__description{color:var(--gray-secondary);font-size:.82rem;font-weight:400}.page-state__description{margin:0;color:var(--text-secondary);font-size:.96rem;font-weight:650;line-height:1.55;letter-spacing:0;word-break:keep-all}.page-state__action{min-height:2.9rem;border:1.5px solid var(--lime-primary);border-radius:999px;padding:.7rem 1.2rem;background:var(--lime-primary);color:var(--bg-base);cursor:pointer;font:inherit;font-size:.95rem;font-weight:900;line-height:1.1;letter-spacing:0}.page-state__action:focus-visible{outline:3px solid var(--lime-primary);outline-offset:3px}.page-state--notFound .page-state__action,.page-state--error .page-state__action{min-height:2.35rem;border-color:#d4f33ab8;padding:.55rem 1.05rem;background:transparent;color:var(--lime-primary);font-size:.86rem;font-weight:500}[data-color-mode=light] .page-state{--lime-primary: #607a00;background:#fff;color:#111827}[data-color-mode=light] .page-state__mark{border-color:#111827;color:#111827}[data-color-mode=light] .page-state__title,[data-color-mode=light] .page-state--notFound .page-state__title,[data-color-mode=light] .page-state--error .page-state__title{color:#111827}[data-color-mode=light] .page-state__description,[data-color-mode=light] .page-state--notFound .page-state__description,[data-color-mode=light] .page-state--error .page-state__description{color:#111827ad}[data-color-mode=light] .page-state__action{border-color:var(--lime-primary);background:var(--lime-primary);color:#050505}[data-color-mode=light] .page-state--notFound .page-state__action,[data-color-mode=light] .page-state--error .page-state__action{border-color:#11182724;background:#fff;color:#111827;box-shadow:none}[data-color-mode=dark] .page-state{background:var(--bg-base);color:var(--text-primary)}[data-color-mode=dark] .page-state__action{color:#0f100e}[data-color-mode=dark] .page-state--notFound .page-state__action,[data-color-mode=dark] .page-state--error .page-state__action{background:transparent;color:var(--lime-primary)}.auth-action{display:inline-flex;width:min(100%,25rem);min-height:2.75rem;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;padding:.68rem 1rem;font-size:.98rem;font-weight:600;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease}.auth-action:focus-visible,.menu-dialog__backdrop:focus-visible{outline:3px solid rgba(14,116,144,.22);outline-offset:3px}.auth-action:hover:not(:disabled){transform:translateY(-1px)}.auth-action:disabled{cursor:not-allowed;opacity:.48;transform:none}.auth-action--secondary,.auth-action--menu{border-color:#1111111a;background:#ffffffb8;color:#111}.auth-action--danger{border-color:#dc26262e;color:var(--color-danger)}.menu-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:1rem}.menu-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border:0;background:var(--color-overlay)}.menu-dialog__sheet{position:relative;z-index:1;width:min(100%,30rem);border:1px solid var(--color-border);border-radius:1.5rem;background:#f9fafbfa;padding:1.25rem;box-shadow:var(--shadow-floating)}.menu-dialog__title{margin:0 0 1rem;color:var(--color-text);font-size:1rem;font-weight:700}.menu-dialog__actions{display:flex;flex-direction:column;gap:.65rem}.form-message{margin:.15rem 0 0;color:var(--color-danger);font-size:.9rem;line-height:1.45}.form-message--menu{margin-top:.9rem}.loading-page{display:flex;width:100%;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center}.loading-page--dark{background:var(--bg-surface)}.loading-page__logo{display:block;width:min(9rem,48vw);height:auto}.loading-page--light .loading-page__logo{filter:drop-shadow(0 10px 18px rgba(17,24,39,.08))}.loading-page--light .loading-page__dots span{background:#607a00}.loading-page__dots{display:inline-flex;min-height:1.1rem;align-items:center;justify-content:center;gap:.55rem}.loading-page__dots span{display:block;width:.58rem;height:.58rem;border-radius:999px;background:var(--color-bubb-lime);animation:loading-dot-bounce .92s ease-in-out infinite}.loading-page__dots span:nth-child(2){animation-delay:.12s}.loading-page__dots span:nth-child(3){animation-delay:.24s}.loading-page__message{margin:0;color:#11182794;font-size:.92rem;font-weight:600}.loading-page--dark .loading-page__message{color:#f6f7f3ad}@keyframes loading-dot-bounce{0%,80%,to{transform:translateY(0);opacity:.42}40%{transform:translateY(-.34rem);opacity:1}}@media(prefers-reduced-motion:reduce){.loading-page__dots span{animation:none}}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}button,input,textarea,select{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@font-face{font-family:Pretendard;font-style:normal;font-weight:100 900;src:url(/assets/PretendardVariable-CJuje-Rk.woff2) format("woff2");font-display:swap}:root{color-scheme:light;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;line-height:1.5;font-weight:400;background-color:#f3f4f6;color:#111827;--color-canvas: #eceff3;--color-surface: #f9fafb;--color-surface-soft: #eef2f7;--color-text: #111827;--color-border: rgba(17, 24, 39, .08);--color-border-strong: rgba(17, 24, 39, .12);--color-muted: rgba(17, 24, 39, .52);--color-brand: #0f766e;--color-brand-strong: #0c4a6e;--color-brand-soft: rgba(125, 211, 252, .56);--color-danger: #b91c1c;--color-overlay: rgba(15, 23, 42, .26);--bg-base: #0f100e;--bg-surface: #191b17;--bg-elevated: #242720;--lime-primary: #d4f33a;--lime-hover: #e1fa61;--lime-pressed: #b7d12d;--gray-border: #34382f;--gray-secondary: #8f948a;--gray-body: #c1c5bc;--text-primary: #f6f7f3;--text-secondary: #c1c5bc;--text-disabled: #6d7268;--color-bubb-black: var(--bg-base);--color-bubb-lime: var(--lime-primary);--shadow-floating: 0 18px 40px rgba(15, 23, 42, .08);--app-shell-max-width: 640px}body{background:linear-gradient(180deg,#fffc,#f3f4f6eb),var(--color-canvas);color:var(--color-text)}.app-root{min-height:100dvh}.mobile-shell{position:relative;display:flex;width:100%;min-height:100dvh;height:100dvh;max-width:var(--app-shell-max-width);margin:0 auto;flex-direction:column;overflow:hidden;background:#fff}.mobile-shell--dark{background:var(--bg-base);color:var(--text-primary)}.mobile-shell--dark .app-header,.mobile-shell--dark .app-main{background:var(--bg-base)}.app-header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:3.25rem;background:#fff}.app-header--dark{background:var(--bg-base)}.app-header__brand{display:flex;min-height:3.25rem;align-items:center;border:0;padding:0 .95rem;background:transparent;color:inherit;cursor:pointer;font:inherit;text-decoration:none}.app-header__logo{display:block;width:4.8rem;height:auto}.app-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;padding:0 1rem}.app-header-settings{display:flex;align-items:center;gap:.42rem}.app-header-settings__button{position:relative;overflow:hidden;display:inline-flex;min-width:2.28rem;height:2.28rem;align-items:center;justify-content:center;gap:.28rem;border:1px solid rgba(17,24,39,.12);border-radius:999px;padding:0 .58rem;background:#fff;color:#111827;cursor:pointer;font:inherit;line-height:1;transition:transform .15s ease,color .18s ease,border-color .15s ease,background .18s ease}.app-header-settings__button:hover{transform:translateY(-1px);border-color:#11182733;background:#f8fafc}.app-header-settings__button:active{transform:translateY(0)}.app-header-settings__button:focus-visible{outline:3px solid rgba(96,122,0,.22);outline-offset:2px}.app-header-settings__button--color-mode{width:2.28rem;min-width:2.28rem;padding:0}.app-header-settings__button--language[data-mode=light],.app-header-settings__button--user[data-mode=light]{border-color:#1118271f;background:#fff;color:#111827}.app-header-settings__button--language[data-mode=light]:hover,.app-header-settings__button--language[data-mode=light][aria-expanded=true],.app-header-settings__button--user[data-mode=light]:hover,.app-header-settings__button--user[data-mode=light][aria-expanded=true]{border-color:#607a0042;background:#f5f7ee}.app-header-settings__button--language[data-mode=dark],.app-header-settings__button--user[data-mode=dark]{border-color:#d4f33a38;background:#d4f33a1a;color:var(--lime-primary)}.app-header-settings__button--language[data-mode=dark]:hover,.app-header-settings__button--language[data-mode=dark][aria-expanded=true],.app-header-settings__button--user[data-mode=dark]:hover,.app-header-settings__button--user[data-mode=dark][aria-expanded=true]{border-color:#d4f33a5c;background:#d4f33a29}.app-header-settings__button--color-mode[data-mode=light]{border-color:#1118271f;background:#fff;color:#111827}.app-header-settings__button--color-mode[data-mode=light]:hover{border-color:#607a0042;background:#f5f7ee}.app-header-settings__button--color-mode[data-mode=dark]{border-color:#d4f33a38;background:#d4f33a1a;color:var(--lime-primary)}.app-header-settings__button--color-mode[data-mode=dark]:hover{border-color:#d4f33a5c;background:#d4f33a29}.app-header-settings__mode-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;opacity:0;transition:opacity .19s ease,transform .19s ease}.app-header-settings__mode-icon--sun{transform:rotate(-38deg) scale(.62)}.app-header-settings__mode-icon--moon{transform:rotate(38deg) scale(.62)}.app-header-settings__button--color-mode[data-mode=light] .app-header-settings__mode-icon--sun,.app-header-settings__button--color-mode[data-mode=dark] .app-header-settings__mode-icon--moon{opacity:1;transform:rotate(0) scale(1)}.mobile-shell--dark .app-header-settings__button{border-color:#f6f7f31f;background:#f6f7f30f;color:var(--text-primary)}.mobile-shell--dark .app-header-settings__button:hover{border-color:#f6f7f338;background:#f6f7f31a}.mobile-shell--dark .app-header-settings__button--language[data-mode=dark],.mobile-shell--dark .app-header-settings__button--color-mode[data-mode=dark],.mobile-shell--dark .app-header-settings__button--user[data-mode=dark]{border-color:#d4f33a42;background:#d4f33a1f;color:var(--lime-primary)}.mobile-shell--dark .app-header-settings__button--language[data-mode=dark]:hover,.mobile-shell--dark .app-header-settings__button--language[data-mode=dark][aria-expanded=true],.mobile-shell--dark .app-header-settings__button--user[data-mode=dark]:hover,.mobile-shell--dark .app-header-settings__button--user[data-mode=dark][aria-expanded=true],.mobile-shell--dark .app-header-settings__button--color-mode[data-mode=dark]:hover{border-color:#d4f33a66;background:#d4f33a2e}.mobile-shell--dark .app-header-settings__button:focus-visible{outline-color:#d4f33a52}.app-header-language-sheet{display:grid;gap:.85rem}.app-header-language-sheet__options{display:grid;gap:.55rem}.app-header-language-sheet__option{display:flex;min-height:3.1rem;width:100%;align-items:center;justify-content:space-between;border:1px solid rgba(17,24,39,.1);border-radius:1rem;padding:.8rem .95rem;background:#ffffffb8;color:#111827;cursor:pointer;font:inherit;font-size:.98rem;font-weight:750;letter-spacing:0;line-height:1.15;transition:transform .15s ease,border-color .15s ease,background .15s ease}.app-header-language-sheet__option:hover{transform:translateY(-1px);border-color:#1118272e;background:#fff}.app-header-language-sheet__option:active{transform:translateY(0)}.app-header-language-sheet__option:focus-visible{outline:3px solid rgba(96,122,0,.22);outline-offset:2px}.app-header-language-sheet__option[aria-pressed=true]{border-color:#607a0061;background:#dcff4594}.app-header-language-sheet__check{flex:0 0 auto;color:#607a00}.app-header-user-sheet{display:grid;gap:.85rem}.app-header-user-sheet__actions{display:grid;gap:.55rem}.app-header-user-sheet__delete-confirmation{display:grid;gap:.75rem}.app-header-user-sheet__description,.app-header-user-sheet__hint,.app-header-user-sheet__error{margin:0;color:#4b5563;font-size:.88rem;font-weight:650;line-height:1.45}.app-header-user-sheet__error{color:#b42318}.app-header-user-sheet__field{display:grid;gap:.42rem;color:#111827;font-size:.86rem;font-weight:750}.app-header-user-sheet__input{width:100%;border:1px solid rgba(17,24,39,.12);border-radius:.85rem;padding:.82rem .9rem;background:#fff;color:#111827;font:inherit;font-size:.95rem;font-weight:700;outline:none}.app-header-user-sheet__input::placeholder{color:#11182752}.app-header-user-sheet__input:focus{border-color:#607a006b;box-shadow:0 0 0 3px #607a0029}.app-header-user-sheet__confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.app-header-user-sheet__action{display:flex;min-height:3.1rem;width:100%;align-items:center;gap:.65rem;border:1px solid rgba(17,24,39,.1);border-radius:1rem;padding:.8rem .95rem;background:#ffffffb8;color:#111827;cursor:pointer;font:inherit;font-size:.98rem;font-weight:750;letter-spacing:0;line-height:1.15;transition:transform .15s ease,border-color .15s ease,background .15s ease}.app-header-user-sheet__action:hover{transform:translateY(-1px);border-color:#1118272e;background:#fff}.app-header-user-sheet__action:disabled{cursor:not-allowed;opacity:.62}.app-header-user-sheet__action[aria-busy=true]{cursor:wait}.app-header-user-sheet__action:disabled:hover{transform:none;border-color:#1118271a;background:#ffffffb8}.app-header-user-sheet__action:active{transform:translateY(0)}.app-header-user-sheet__action:focus-visible{outline:3px solid rgba(96,122,0,.22);outline-offset:2px}.app-header-user-sheet__action--danger{color:#b42318}.app-header-user-sheet__action--danger:hover{border-color:#b4231833;background:#fef3f2eb}@media(prefers-reduced-motion:reduce){.app-header-settings__button,.app-header-settings__mode-icon,.app-header-language-sheet__option,.app-header-user-sheet__action{transition:none}}.app-main{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;padding:0;scrollbar-width:none;-ms-overflow-style:none}.app-main::-webkit-scrollbar{display:none}.app-sheet-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none}.app-sheet-root .menu-dialog{position:absolute;pointer-events:auto}.app-main--centered{display:flex;align-items:center;justify-content:center;padding-bottom:0}.app-button{position:relative;display:inline-flex;width:100%;min-height:3.5rem;box-sizing:border-box;align-items:center;justify-content:center;border:1px solid transparent;border-radius:.5rem;padding:.85rem 1rem;color:var(--color-text);font:inherit;font-size:1rem;font-weight:700;letter-spacing:0;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease}.app-button__content{display:grid;width:fit-content;max-width:100%;grid-template-columns:1.5rem minmax(0,auto) 1.5rem;align-items:center;justify-content:center;gap:.55rem}.app-button__side{display:inline-flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center}.app-button__image{display:block;width:1.25rem;height:1.25rem;object-fit:contain}.app-button__icon{width:1.25rem;height:1.25rem;stroke-width:2.5}.app-button__label{min-width:0;overflow-wrap:anywhere;text-align:center}.app-button--white{border-color:#11182714;background:#fff;color:var(--color-text);box-shadow:0 8px 18px #11182724}.app-button--dark{border-color:#ffffff14;background:var(--color-bubb-black);color:#fff;box-shadow:0 8px 18px #1118272e}.app-button--lime{border-color:#dfff2fc7;background:#dfff2f;color:#111;box-shadow:0 8px 18px #11182724}.app-button:hover:not(:disabled){transform:translateY(-1px)}.app-button--white:hover:not(:disabled){border-color:#11182724;background:#f8faf9f5;box-shadow:0 12px 24px #1118272e}.app-button--dark:hover:not(:disabled){background:#1b1d19;box-shadow:0 12px 24px #11182738}.app-button--lime:hover:not(:disabled){border-color:#dfff2feb;background:#e6ff54;box-shadow:0 12px 24px #1118272e}.app-button:active:not(:disabled){transform:translateY(0) scale(.99)}.app-button--white:active:not(:disabled){border-color:#11182733;background:#f5f7f6f0;box-shadow:0 5px 12px #11182724}.app-button--dark:active:not(:disabled){background:#080908;box-shadow:0 5px 12px #1118272e}.app-button--lime:active:not(:disabled){background:#d3f229;box-shadow:0 5px 12px #11182724}.app-button:disabled{cursor:not-allowed;opacity:.72;transform:none}.app-button:focus-visible{outline:3px solid rgba(14,116,144,.22);outline-offset:3px}
