@import "https://fonts.googleapis.com/css2?family=Google+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Sarabun:wght@300;400;500;600;700&display=swap";:root{--color-primary:#1677ff;--color-primary-dark:#0958d9;--color-primary-hover:#4096ff;--color-primary-light:#e6f4ff;--color-primary-bg:#f0f7ff;--color-primary-border:#bae0ff;--color-navy:#0b2545;--color-navy-dark:#07172c;--color-text-main:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-text-light:#cbd5e1;--color-bg-page:#f4f7fb;--color-bg-card:#fff;--color-bg-subtle:#f8fafc;--color-border:#e2e8f0;--color-border-light:#edf2f7;--color-line-green:#06c755;--color-line-dark:#05a847;--color-success:#10b981;--color-success-bg:#ecfdf5;--color-success-border:#a7f3d0;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--font-family-base:"Google Sans", "Plus Jakarta Sans", "Sarabun", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--shadow-sm:0 1px 2px 0 #0f172a0d;--shadow-card:0 4px 20px -2px #0f172a0f, 0 2px 6px -1px #0f172a08;--shadow-floating:0 12px 30px -4px #1677ff2e, 0 4px 12px -2px #0f172a14;--shadow-modal:0 25px 50px -12px #0f172a40;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}*,body,html{margin:0;padding:0}body,html{font-family:var(--font-family-base);color:var(--color-text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0d1b2a;min-height:100vh;line-height:1.5}.app-viewport-wrapper{background:radial-gradient(circle at 50% 0,#1a365d,#0d1b2a);justify-content:center;align-items:stretch;min-height:100vh;padding:0;display:flex}@media (width>=640px){.app-viewport-wrapper{align-items:center;padding:24px 16px}}.mobile-app-container{background-color:var(--color-bg-page);flex-direction:column;width:100%;max-width:440px;height:100dvh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 60px #0006}@media (width>=640px){.mobile-app-container{border:8px solid #1e293b;border-radius:40px;height:880px;max-height:94vh;box-shadow:0 25px 60px #0009}}.safe-top-spacer{height:env(safe-area-inset-top,0)}.safe-bottom-spacer{height:calc(72px + env(safe-area-inset-bottom,16px))}.page-container{flex-direction:column;flex:1;gap:18px;padding:16px 20px 24px;display:flex}.card-clean{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px;transition:all .2s}.card-clean:hover{border-color:var(--color-primary-border)}.badge-clean{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.btn-primary{color:#fff;border-radius:var(--radius-md);cursor:pointer;background:linear-gradient(135deg,#1677ff,#0958d9);border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 20px;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #1677ff4d}.btn-primary:active{transform:scale(.98);box-shadow:0 2px 8px #1677ff33}.btn-secondary{width:100%;color:var(--color-text-main);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:8px;padding:13px 20px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn-secondary:active{background:var(--color-bg-subtle);transform:scale(.98)}.btn-line{background-color:var(--color-line-green);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:15px 22px;font-size:16px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 16px #06c75559}.btn-line:hover{background-color:var(--color-line-dark)}.btn-line:active{transform:scale(.98)}.input-clean{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-main);background:#fff;outline:none;padding:12px 16px;font-family:inherit;font-size:14px;transition:border-color .2s}.input-clean:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1677ff1f}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.25s cubic-bezier(.16,1,.3,1) forwards fadeIn}@keyframes pulseGlow{0%,to{box-shadow:0 0 #1677ff66}50%{box-shadow:0 0 0 10px #1677ff00}}.pulse-primary{animation:2s infinite pulseGlow}.auth-loading-overlay{background:var(--bg-page,#0f172a);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-loading-spinner{border:3px solid #ffffff1f;border-top-color:#1677ff;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.notification-wrapper[data-v-ba6ff993]{z-index:100;pointer-events:none;position:absolute;top:12px;left:12px;right:12px}.notification-card[data-v-ba6ff993]{pointer-events:auto;-webkit-backdrop-filter:blur(16px);color:#fff;background:#0f172af0;border:1px solid #ffffff1a;border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex;box-shadow:0 10px 25px -3px #0000004d,0 4px 6px -2px #0000001a}.notification-card.line[data-v-ba6ff993]{border-left:4px solid #06c755}.notification-card.system[data-v-ba6ff993]{border-left:4px solid #1677ff}.line-icon-badge[data-v-ba6ff993]{color:#fff;background:#06c755;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;display:flex}.notification-body[data-v-ba6ff993]{flex:1}.notification-header[data-v-ba6ff993]{justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.notification-title[data-v-ba6ff993]{color:#fff;font-size:13px;font-weight:700}.notification-time[data-v-ba6ff993]{color:#94a3b8;font-size:11px}.notification-message[data-v-ba6ff993]{color:#e2e8f0;margin:0;font-size:12px;line-height:1.4}.close-btn[data-v-ba6ff993]{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;transition:color .2s;display:flex}.close-btn[data-v-ba6ff993]:hover{color:#fff}.slide-down-enter-active[data-v-ba6ff993],.slide-down-leave-active[data-v-ba6ff993]{transition:all .3s cubic-bezier(.16,1,.3,1)}.slide-down-enter-from[data-v-ba6ff993],.slide-down-leave-to[data-v-ba6ff993]{opacity:0;transform:translateY(-20px)scale(.96)}.app-header[data-v-cb75129a]{z-index:40;-webkit-backdrop-filter:blur(12px);background:#fffffff2;border-bottom:1px solid #e2e8f0cc;padding:12px 18px;position:sticky;top:0}.header-content[data-v-cb75129a]{justify-content:space-between}.brand-block[data-v-cb75129a],.header-content[data-v-cb75129a]{align-items:center;display:flex}.brand-block[data-v-cb75129a]{color:inherit;gap:10px;text-decoration:none}.logo-wrapper[data-v-cb75129a]{background:#fff;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;overflow:hidden;box-shadow:0 2px 8px #1677ff26}.brand-logo[data-v-cb75129a]{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.brand-text[data-v-cb75129a]{flex-direction:column;display:flex}.brand-title[data-v-cb75129a]{color:#0f172a;letter-spacing:-.02em;align-items:center;gap:6px;font-size:16px;font-weight:700;display:flex}.mascot-tag[data-v-cb75129a]{color:#0958d9;text-transform:uppercase;background:#e6f4ff;border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700}.brand-sub[data-v-cb75129a]{color:#64748b;font-size:11px}.header-actions[data-v-cb75129a]{align-items:center;gap:8px;display:flex}.badge-prototype[data-v-cb75129a]{color:#1677ff;background:#f0f7ff;border:1px solid #bae0ff;border-radius:999px;gap:4px;padding:3px 8px;font-size:11px;font-weight:600}.badge-prototype[data-v-cb75129a],.bell-btn[data-v-cb75129a]{align-items:center;display:flex}.bell-btn[data-v-cb75129a]{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;width:34px;height:34px;text-decoration:none;transition:all .2s;position:relative}.bell-btn[data-v-cb75129a]:active{background:#f1f5f9}.bell-dot[data-v-cb75129a]{background:#ef4444;border:1.5px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.bottom-nav[data-v-11e9f7a0]{z-index:50;width:100%;padding-bottom:env(safe-area-inset-bottom,8px);-webkit-user-select:none;user-select:none;flex-shrink:0;position:relative}.nav-bg-svg[data-v-11e9f7a0]{pointer-events:none;z-index:1;width:100%;height:calc(100% + 16px);position:absolute;top:-16px;left:0;overflow:visible}.nav-bar-container[data-v-11e9f7a0]{z-index:2;justify-content:space-between;height:64px;padding:0 8px;position:relative}.nav-bar-container[data-v-11e9f7a0],.nav-group[data-v-11e9f7a0]{align-items:center;display:flex}.nav-group[data-v-11e9f7a0]{flex:1;justify-content:space-around}.nav-item[data-v-11e9f7a0]{color:#64748b;flex-direction:column;gap:3px;padding:4px 6px;text-decoration:none}.icon-wrapper[data-v-11e9f7a0],.nav-item[data-v-11e9f7a0]{justify-content:center;align-items:center;transition:all .2s;display:flex}.icon-wrapper[data-v-11e9f7a0]{border-radius:8px;width:28px;height:28px}.nav-label[data-v-11e9f7a0]{font-size:11px;font-weight:500;line-height:1.1;transition:color .2s}.nav-item.is-active[data-v-11e9f7a0]{color:#1677ff}.nav-item.is-active .icon-wrapper[data-v-11e9f7a0]{color:#1677ff;background:#e6f4ff}.nav-item.is-active .nav-label[data-v-11e9f7a0]{color:#0958d9;font-weight:700}.nav-center-slot[data-v-11e9f7a0]{width:88px;position:relative}.center-btn-link[data-v-11e9f7a0],.nav-center-slot[data-v-11e9f7a0]{justify-content:center;align-items:center;display:flex}.center-btn-link[data-v-11e9f7a0]{flex-direction:column;margin-top:-24px;text-decoration:none;transition:transform .2s}.center-btn-link[data-v-11e9f7a0]:active{transform:scale(.94)}.center-circle[data-v-11e9f7a0]{color:#fff;background:linear-gradient(135deg,#1677ff,#0958d9);border:3.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;transition:all .2s;display:flex;box-shadow:0 6px 18px #1677ff6b}.center-circle.is-active[data-v-11e9f7a0]{background:linear-gradient(135deg,#0958d9,#003eb3);box-shadow:0 8px 22px #0958d98c}.center-icon[data-v-11e9f7a0]{stroke-width:2.3px}.center-label[data-v-11e9f7a0]{color:#0f172a;margin-top:4px;font-size:11px;font-weight:700;transition:color .2s}.center-btn-link.is-active .center-label[data-v-11e9f7a0]{color:#0958d9}.app-page-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex-direction:column;flex:1;display:flex;overflow:hidden auto}.app-page-scroll.is-login{height:100%}.app-page-scroll::-webkit-scrollbar{width:4px}.app-page-scroll::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:4px}.page-enter-active,.page-leave-active{transition:all .2s ease-out}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0;transform:translateY(-6px)}
