@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css";*{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#191f28;background-color:#fff;line-height:1.6}button,input,select,textarea{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f2f4f6}::-webkit-scrollbar-thumb{background:#e5e8eb;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#8b95a1}.login-container{display:flex;align-items:center;justify-content:center;height:100vh;background-color:#f5f5f5;flex-direction:column}.chanju{width:340px!important;height:auto!important;margin-bottom:40px}.login-box{background:#fff;padding:40px 45px;border-radius:22px;box-shadow:0 4px 16px #0000001a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.login-buttons{display:flex;flex-direction:column;gap:12px}.login-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;background:transparent;padding:0;margin:0;cursor:pointer}.login-btn img{width:280px;height:auto;display:block}body{margin:0}.board{height:100vh;height:100dvh;width:100%;display:flex;justify-content:center;align-items:center}.board__view{position:relative;width:100%;max-width:480px;height:100%;display:flex;flex-direction:column;background:#f5f7fb;box-shadow:0 10px 25px #00000059;overflow:hidden}@media (max-width: 768px){.board{justify-content:stretch;align-items:stretch}.board__view{max-width:100%;box-shadow:none;width:100%;height:100%}}.shared-map-container{position:absolute;top:0;right:0;bottom:56px;left:0;z-index:1;width:100%;height:auto}.shared-map-container.hidden{opacity:0;pointer-events:none}.shared-map-container.visible{opacity:1;pointer-events:auto}.board__content{position:relative;z-index:2;flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0;box-sizing:border-box;background-color:transparent}@media (max-width: 768px){.board__content{padding:0}}.board__content::-webkit-scrollbar{width:0;height:0}.board__content{scrollbar-width:none}.board__content>*{min-height:100%}.board__content.transparent-bg{background-color:transparent;padding:0;pointer-events:none}:root{--nav-height: 64px}.swipe-wrap{width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;background:linear-gradient(180deg,#fff,#eef3ff 60%,#e3ecff);color:#0f172a;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px) + var(--nav-height))}.swipe-header{flex:0 0 auto;padding:4px 2px 8px}.swipe-header h1{margin:0;font-size:18px;font-weight:800;color:#0f172a}.swipe-main{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;gap:16px;overflow-y:auto;overflow-x:hidden;padding-bottom:8px}.loading,.error,.empty,.end-hint{font-size:14px;color:#6b7280;text-align:center}.deck{position:relative;width:100%;max-width:420px;display:flex;align-items:center;justify-content:center}.card{position:relative;width:80%;max-width:420px;height:auto;border-radius:24px;background:#fff;box-shadow:0 10px 30px #0f172a29;overflow:hidden;touch-action:none;cursor:grab;will-change:transform;transition:box-shadow .16s ease,opacity .18s ease}.card.top:active{cursor:grabbing;box-shadow:0 16px 40px #0f172a38}.card.next{pointer-events:none;opacity:0;visibility:hidden}.profile{position:relative;width:100%;height:auto;box-sizing:border-box;display:flex;flex-direction:column}.circle{width:100%;aspect-ratio:4 / 5;overflow:hidden;background:radial-gradient(circle at top,#e0edff,#fff)}.circle img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(1.03) contrast(1.03)}.info{padding:14px 16px 4px;background:#fff;color:#0f172a;display:flex;flex-direction:column;gap:4px}.info .nm{font-size:20px;font-weight:800;color:#0f172a}.info .meta{margin-top:2px;font-size:12px;line-height:1.3;color:#4b5563;display:flex;flex-direction:column;gap:2px}.info .location{font-weight:600;color:#111827}.info .gender,.info .age{font-size:12px;color:#6b7280}.info .intro{margin-top:4px;font-size:12px;color:#374151;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chatting{padding:10px 16px 16px;background:#fff;display:flex;justify-content:center}.stat-chatting{width:100%;max-width:280px;border:none;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700;letter-spacing:.03em;color:#fff;background:linear-gradient(135deg,#3b82f6,#60a5fa,#93c5fd);box-shadow:0 10px 22px #3b82f659;cursor:pointer;transition:transform .13s ease,box-shadow .13s ease,filter .13s ease}.stat-chatting:hover:not(:disabled){transform:translateY(-1px) scale(1.02);box-shadow:0 16px 35px #3b82f673;filter:brightness(1.03)}.stat-chatting:active:not(:disabled){transform:translateY(1px) scale(.98);box-shadow:0 8px 18px #3b82f652}.stat-chatting:disabled,.stat-chatting.is-sending{opacity:.75;cursor:default;box-shadow:none}.home-marathon-section{width:100%;max-width:420px;box-sizing:border-box;margin-top:4px;padding:12px 0 4px;display:flex;flex-direction:column;gap:8px}.home-marathon-title{font-size:16px;font-weight:700;color:#0f172a}.recommendations-list{width:100%;max-width:420px;display:flex;flex-direction:column;gap:16px}.completeness-badge{font-size:12px;font-weight:600;color:#3b82f6;background:#eff6ff;padding:6px 12px;border-radius:20px;border:none;cursor:pointer;transition:all .2s ease}.completeness-badge:hover{background:#dbeafe;transform:scale(1.02)}.completeness-badge:active{transform:scale(.98)}.empty{padding:40px 20px;text-align:center}.empty p{margin:0;font-size:16px;color:#374151;font-weight:600}.empty .empty-sub{margin-top:8px;font-size:14px;color:#6b7280;font-weight:400}.swipe-header{display:flex;align-items:center;justify-content:space-between}@media (max-width: 768px){.swipe-wrap{padding:6px 10px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px) + var(--nav-height))}.swipe-header h1{font-size:17px}.deck{max-width:400px}.info{padding:12px 14px 4px}.info .nm{font-size:19px}.stat-chatting{font-size:13px;padding:9px 16px}.home-marathon-section{max-width:400px}}@media (max-width: 480px){.deck{max-width:380px}.info{padding:10px 12px 4px}.info .nm{font-size:18px}.home-marathon-section{max-width:380px}}.marathon-page{width:100%;max-width:420px;display:flex;flex-direction:column;gap:8px;padding:8px 0}.marathon-title{font-size:16px;font-weight:800;color:#0f172a;margin:0 0 4px}.marathon-grid{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 480px){.marathon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.marathon-card{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;border-radius:22px;border:1px solid #e5edff;background:#fff;box-shadow:0 4px 14px #0f172a0a;cursor:pointer;text-align:left;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}.marathon-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #0f172a1f;border-color:#cbd5ff}.marathon-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.marathon-card-title{font-size:13px;font-weight:700;color:#0f172a;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.marathon-card-dday{flex:0 0 auto;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6)}.marathon-card-dday--ended{background:#9ca3af}.marathon-card-banner-wrap{width:100%;border-radius:14px;overflow:hidden;margin:4px 0}.marathon-card-banner{width:100%;aspect-ratio:4 / 1;object-fit:cover;display:block;background:#f0f4ff;border-radius:14px}.marathon-card-meta{display:flex;flex-direction:column;gap:3px}.marathon-card-row{display:flex;font-size:11px;gap:6px}.marathon-card-row .label{flex:0 0 36px;color:#6b7280}.marathon-card-row .value{flex:1;color:#111827}.marathon-more-wrap{margin-top:6px;text-align:center}.marathon-more-btn{padding:7px 18px;border-radius:999px;border:none;background:#111827;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.marathon-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#0f172a73;display:flex;align-items:center;justify-content:center}.marathon-modal{width:min(480px,92vw);max-height:90vh;box-sizing:border-box;background:#f9fafb;border-radius:18px;border:1px solid #e2e8f0;box-shadow:0 24px 50px #0f172a66;padding:14px 14px 16px;position:relative;overflow-y:auto}.marathon-modal-close{position:absolute;top:8px;right:10px;border:none;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:#6b7280}.detail-title{font-size:16px;font-weight:700;margin:0 30px 4px 0;color:#0f172a}.detail-sub{font-size:12px;color:#64748b;margin:0 30px 8px 0}.marathon-map.marathon-map-modal{width:100%;height:220px;border-radius:12px;overflow:hidden;margin-bottom:10px}.detail-info{font-size:12px;display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.detail-row{display:flex;gap:4px}.detail-row .label{min-width:52px;color:#64748b}.detail-row .value{flex:1}.detail-row .link{color:#2563eb;text-decoration:underline}.detail-desc h4{font-size:13px;margin:6px 0 3px}.detail-desc p{font-size:12px;line-height:1.45;white-space:pre-wrap}.marathon-loading,.marathon-error,.marathon-empty{font-size:13px;color:#6b7280;text-align:center;padding:12px 4px}.profile-card-prompt{position:relative;width:100%;min-height:60vh;overflow:hidden;border-radius:16px}.blurred-background{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:16px;padding:16px}.dummy-card{background:linear-gradient(135deg,#f5f5f5,#e8e8e8);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px}.dummy-card.blurred{filter:blur(6px);opacity:.5}.dummy-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#d4d4d4,silver);margin:0 auto}.dummy-info{display:flex;flex-direction:column;gap:8px;padding:8px}.dummy-line{height:12px;border-radius:6px;background:linear-gradient(135deg,#d4d4d4,silver)}.dummy-line.long{width:80%}.dummy-line.medium{width:60%}.dummy-line.short{width:40%}.prompt-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#fff6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.prompt-content{text-align:center;padding:32px 24px;background:#fff;border-radius:24px;box-shadow:0 8px 32px #0000001f;max-width:320px;margin:16px;transition:transform .2s ease,box-shadow .2s ease}.prompt-content.animating{transform:scale(.95)}.prompt-icon{font-size:56px;display:block;margin-bottom:16px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.prompt-title{margin:0;font-size:20px;font-weight:700;color:#1a1a1a;line-height:1.4}.prompt-subtitle{margin:16px 0 24px;font-size:14px;color:#666}.create-button{width:100%;padding:16px 24px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#3b82f6,#60a5fa);border:none;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 16px #3b82f64d}.create-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.create-button:active{transform:translateY(0);box-shadow:0 2px 8px #3b82f64d}@media (max-width: 480px){.profile-card-prompt{min-height:50vh}.prompt-content{padding:24px 20px;margin:12px}.prompt-icon{font-size:48px}.prompt-title{font-size:18px}.prompt-subtitle{font-size:13px;margin:12px 0 20px}.create-button{padding:14px 20px;font-size:15px}}.profile-card-create{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.create-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0}.back-btn{width:40px;height:40px;border:none;background:none;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#374151;border-radius:8px;transition:background .2s}.back-btn:hover{background:#f3f4f6}.create-title{font-size:18px;font-weight:700;color:#111827;margin:0}.step-indicator{font-size:14px;font-weight:600;color:#3b82f6;background:#eff6ff;padding:6px 12px;border-radius:20px}.progress-bar{height:4px;background:#e5e7eb}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);transition:width .3s ease;border-radius:0 2px 2px 0}.create-main{flex:1;overflow-y:auto;padding:24px 20px}.step-content{max-width:400px;margin:0 auto}.step-title{font-size:24px;font-weight:700;color:#111827;margin:0 0 8px;text-align:center}.step-subtitle{font-size:14px;color:#6b7280;margin:0 0 32px;text-align:center}.options-grid{display:flex;flex-direction:column;gap:12px}.option-btn{width:100%;padding:16px 20px;border:2px solid #e5e7eb;border-radius:16px;background:#fff;cursor:pointer;text-align:left;transition:all .2s ease;display:flex;flex-direction:column;gap:4px}.option-btn:hover{border-color:#93c5fd;background:#f8fafc}.option-btn.selected{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 3px #3b82f61a}.option-label{font-size:16px;font-weight:600;color:#111827}.option-btn.selected .option-label{color:#1d4ed8}.option-desc{font-size:13px;color:#6b7280}.option-btn.selected .option-desc{color:#3b82f6}.error-message{margin-top:16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;text-align:center}.create-footer{padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #f0f0f0;background:#fff}.next-btn,.submit-btn{width:100%;padding:16px 24px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.next-btn{background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;box-shadow:0 4px 12px #3b82f64d}.next-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.next-btn:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed}.submit-btn{background:linear-gradient(135deg,#10b981,#34d399);color:#fff;box-shadow:0 4px 12px #10b9814d}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #10b98166}.submit-btn:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed}@media (max-width: 480px){.create-header{padding:12px 16px}.create-title{font-size:16px}.create-main{padding:20px 16px}.step-title{font-size:22px}.step-subtitle{font-size:13px;margin-bottom:24px}.option-btn{padding:14px 16px}.option-label{font-size:15px}.option-desc{font-size:12px}.create-footer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.next-btn,.submit-btn{padding:14px 20px;font-size:15px}}.profile-card-edit{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.edit-loading{flex:1;display:flex;align-items:center;justify-content:center;font-size:16px;color:#6b7280}.edit-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0}.edit-header .back-btn{width:40px;height:40px;border:none;background:none;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#374151;border-radius:8px;transition:background .2s}.edit-header .back-btn:hover{background:#f3f4f6}.edit-title{font-size:18px;font-weight:700;color:#111827;margin:0}.completeness-indicator{font-size:14px;font-weight:600;color:#10b981;background:#ecfdf5;padding:6px 12px;border-radius:20px}.completeness-bar{height:4px;background:#e5e7eb}.completeness-fill{height:100%;background:linear-gradient(90deg,#10b981,#34d399);transition:width .3s ease;border-radius:0 2px 2px 0}.edit-main{flex:1;overflow-y:auto;padding:20px 20px 100px}.section{margin-bottom:32px}.section-title{font-size:16px;font-weight:700;color:#111827;margin:0 0 16px;display:flex;align-items:center;gap:8px}.section-hint{font-size:13px;font-weight:400;color:#9ca3af}.required-section{background:#f9fafb;border-radius:16px;padding:20px;margin-bottom:24px}.required-section .section-title{margin-bottom:12px}.required-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:12px;color:#6b7280}.summary-value{font-size:14px;font-weight:600;color:#374151}.option-group{margin-bottom:24px}.option-group-label{display:block;font-size:14px;font-weight:600;color:#374151;margin-bottom:10px}.option-chips{display:flex;flex-wrap:wrap;gap:8px}.option-chip{padding:10px 16px;border:2px solid #e5e7eb;border-radius:24px;background:#fff;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s ease}.option-chip:hover{border-color:#93c5fd;background:#f8fafc}.option-chip.selected{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.introduction-input{width:100%;min-height:80px;padding:14px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;font-family:inherit;resize:vertical;transition:border-color .2s}.introduction-input:focus{outline:none;border-color:#3b82f6}.introduction-input::placeholder{color:#9ca3af}.char-count{margin-top:6px;text-align:right;font-size:12px;color:#9ca3af}.error-message{margin-bottom:16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;text-align:center}.edit-footer{position:fixed;bottom:0;left:0;right:0;padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #f0f0f0;background:#fff}.save-btn{width:100%;padding:16px 24px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;box-shadow:0 4px 12px #3b82f64d}.save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.save-btn:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed}@media (max-width: 480px){.edit-header{padding:12px 16px}.edit-title{font-size:16px}.edit-main{padding:16px 16px 100px}.required-section{padding:16px}.required-summary{gap:10px}.summary-label{font-size:11px}.summary-value,.option-group-label{font-size:13px}.option-chip{padding:8px 14px;font-size:13px}.introduction-input{padding:12px 14px;font-size:13px}.edit-footer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.save-btn{padding:14px 20px;font-size:15px}}.matched-card{position:relative;width:100%;max-width:400px;background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.matched-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}.match-badge{position:absolute;top:12px;right:12px;padding:6px 12px;border-radius:20px;color:#fff;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:0 2px 8px #00000026;z-index:10}.match-score{font-size:18px;line-height:1}.match-label{font-size:10px;font-weight:600;opacity:.9}.matched-avatar{width:100%;aspect-ratio:4 / 3;overflow:hidden;background:linear-gradient(135deg,#e0edff,#f0f4ff)}.matched-avatar img{width:100%;height:100%;object-fit:cover}.matched-info{padding:16px;display:flex;flex-direction:column;gap:8px}.matched-header{display:flex;align-items:center;justify-content:space-between}.matched-name{font-size:20px;font-weight:700;color:#111827;margin:0}.matched-meta{display:flex;gap:8px;font-size:13px;color:#6b7280}.matched-location{font-size:14px;color:#374151;margin:0}.matched-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tag{padding:5px 10px;border-radius:16px;font-size:12px;font-weight:600}.tag.pace{background:#fef3c7;color:#d97706}.tag.goal{background:#dbeafe;color:#2563eb}.tag.time{background:#f3e8ff;color:#9333ea}.tag.distance{background:#dcfce7;color:#16a34a}.matched-intro{font-size:13px;color:#4b5563;margin:4px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.matched-actions{padding:12px 16px 16px;display:flex;gap:10px}.chat-btn{flex:1;padding:12px 16px;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;box-shadow:0 4px 12px #3b82f64d}.chat-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.chat-btn:active:not(:disabled){transform:translateY(0)}.chat-btn:disabled,.chat-btn.is-sending{opacity:.7;cursor:not-allowed;box-shadow:none}@media (max-width: 480px){.matched-card{border-radius:16px}.match-badge{top:10px;right:10px;padding:5px 10px}.match-score{font-size:16px}.match-label{font-size:9px}.matched-info{padding:14px}.matched-name{font-size:18px}.matched-meta{font-size:12px}.matched-location{font-size:13px}.tag{padding:4px 8px;font-size:11px}.matched-intro{font-size:12px}.matched-actions{padding:10px 14px 14px}.chat-btn{padding:10px 14px;font-size:13px}}.profile-container{height:100%;width:100%;box-sizing:border-box;padding:18px 16px 20px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#f2f3f5;color:#0f172a;position:absolute;top:0;left:0;right:0;bottom:0}.loading,.error-message{padding:8px 12px;border-radius:999px;font-size:13px;text-align:center;background:#fff;border:1px solid rgba(148,163,184,.35)}.loading{color:#4b5563}.error-message{background:#f871710f;color:#b91c1c;border-color:#f8717166}.user-info-section{display:flex;flex-direction:column;gap:10px;animation:profile-fade-in .24s ease-out}.profile-header{position:relative;display:flex;align-items:center;gap:16px;padding:20px 18px;border-radius:24px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 4px 12px #0f172a0f}.profile-image{width:72px;height:72px;border-radius:50%;object-fit:cover;background:#e5e7eb;flex-shrink:0}.profile-image--placeholder{display:flex;align-items:center;justify-content:center}.profile-image-initial{font-size:26px;color:#9ca3af}.user-details{display:flex;flex-direction:column;gap:6px;min-width:0}.profile-top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.profile-name-block{display:flex;flex-direction:column;gap:2px}.user-details h1{margin:0;font-size:19px;font-weight:800;color:#111827;letter-spacing:-.02em}.profile-sub{margin:0;font-size:13px;color:#9ca3af}.profile-visibility-row{display:flex;align-items:center;gap:6px}.profile-visibility-label{font-size:11px;padding:3px 8px;border-radius:999px;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb}.profile-toggle{position:relative;width:40px;height:20px;border-radius:999px;border:1px solid rgba(148,163,184,.9);background:#e5e7eb;padding:0;display:flex;align-items:center;cursor:pointer;outline:none;transition:background .16s ease-out,border-color .16s ease-out,opacity .16s ease-out}.profile-toggle.off{background:#e5e7eb}.profile-toggle.on{background:#4ade80;border-color:#22c55e}.profile-toggle.disabled{opacity:.5;cursor:default}.profile-toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:0 2px 4px #0f172a40;transition:transform .18s ease-out}.profile-toggle.on .profile-toggle-thumb{transform:translate(18px)}.profile-text{margin:2px 0 0;font-size:13px;line-height:1.5;color:#4b5563}.user-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.user-meta span{font-size:12px;color:#6b7280}.profile-edit-btn{width:100%;padding:12px 0;border-radius:16px;border:1px solid #e5e7eb;background:#f3f4f6;font-size:14px;font-weight:600;color:#111827;cursor:pointer;transition:background .12s ease-out,border-color .12s ease-out}.profile-edit-btn:active{background:#e5e7eb;border-color:#d1d5db}.profile-menu-btn{display:flex;align-items:center;width:100%;padding:16px 18px;border-radius:16px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;transition:background .12s ease-out}.profile-menu-btn:active{background:#f3f4f6}.profile-menu-icon{font-size:20px;margin-right:12px}.profile-menu-text{flex:1;text-align:left;font-size:15px;font-weight:600;color:#111827}.profile-menu-arrow{font-size:20px;color:#9ca3af}.profile-menu-row{display:flex;gap:10px;width:100%}.profile-menu-btn--half{flex:1;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 12px}.profile-menu-btn--half .profile-menu-icon{margin-right:0;font-size:22px}.profile-menu-btn--half .profile-menu-text{text-align:center;font-size:13px}.records-section{display:flex;flex-direction:column;gap:10px;animation:profile-slide-up .22s ease-out}.records-section h2{margin:0 2px 4px;font-size:14px;font-weight:700;color:#111827;letter-spacing:-.01em}.no-records{font-size:13px;color:#6b7280;padding:16px 14px;border-radius:16px;border:1px dashed rgba(148,163,184,.7);background:#fff;text-align:center}.records-list{display:flex;flex-direction:column;gap:10px}.records-list>*{width:100%}@media (max-width: 768px){.profile-container{padding:16px 14px 18px;gap:16px;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}}@media (max-width: 480px){.profile-container{padding:14px 12px 16px;gap:14px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.profile-header{padding:18px 14px;border-radius:20px}.profile-image{width:64px;height:64px}.user-details h1{font-size:17px}.profile-sub{font-size:12.5px}.records-section h2{font-size:13.5px}}@media (max-width: 360px){.profile-container{padding:12px 10px 14px;gap:12px}.profile-header{padding:16px 12px;flex-direction:column;align-items:center;text-align:center}.profile-top-row{flex-direction:column;align-items:center;gap:12px}}@keyframes profile-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes profile-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.record-card{width:100%;margin-bottom:20px}.record-card-container{width:100%;max-width:521px;background:#fff;box-shadow:0 4px 9px 1px #00000040;border-radius:20px;display:flex;position:relative;padding:16px;box-sizing:border-box;overflow:hidden}.map-preview{width:120px;height:120px;flex-shrink:0;margin-right:16px}.map-preview img{width:100%;height:100%;object-fit:cover;border-radius:8px}.map-placeholder{width:100%;height:100%;background:#d9d9d9;display:flex;align-items:center;justify-content:center;border-radius:8px}.map-placeholder span{color:#000;font-size:10px;font-family:Inter,sans-serif;font-weight:400;text-align:center;padding:8px;line-height:1.2}.record-info{flex:1;display:flex;flex-direction:column;min-width:0}.record-date{color:#000;font-size:16px;font-family:Inter,sans-serif;font-weight:500;margin-bottom:12px;line-height:1.2}.metrics-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:12px 10px;flex:1}.metric-item{display:flex;flex-direction:column;gap:4px;min-width:0}.metric-label{color:#666;font-size:11px;font-family:Inter,sans-serif;font-weight:400;line-height:1.2;word-break:keep-all}.metric-value{color:#000;font-size:16px;font-family:Inter,sans-serif;font-weight:700;line-height:1.3;word-break:keep-all;overflow-wrap:normal}@media (max-width: 480px){.record-card-container{padding:12px}.map-preview{width:100px;height:100px;margin-right:12px}.record-date{font-size:14px;margin-bottom:10px}.metrics-grid{gap:10px 8px}.metric-label{font-size:10px}.metric-value{font-size:14px}.map-placeholder span{font-size:9px;padding:6px}}@media (max-width: 360px){.record-card-container{padding:10px}.map-preview{width:85px;height:85px;margin-right:10px}.record-date{font-size:13px;margin-bottom:8px}.metrics-grid{gap:8px 6px}.metric-label{font-size:9px}.metric-value{font-size:12px}.map-placeholder span{font-size:8px;padding:5px}}.route-map-preview-container{position:relative;width:100%;height:100%;overflow:hidden;border-radius:8px;background:#f3f4f6}.route-map-preview{width:100%;height:100%;border-radius:8px;transition:opacity .3s ease-in-out}.route-map-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;color:#6b7280;font-family:Inter,sans-serif;font-weight:400;z-index:10}.route-map-preview-error{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fee2e2;border-radius:8px;padding:8px}.route-map-preview-error span{font-size:10px;color:#991b1b;font-family:Inter,sans-serif;font-weight:400;text-align:center;line-height:1.3}.route-map-preview-container .map_copyright{display:none!important}.route-map-preview-container .MapWatermark{opacity:.3}.my-parties-page{display:flex;flex-direction:column;height:100%;width:100%}.my-parties-header{display:flex;align-items:center;padding:4px 0 16px;border-bottom:1px solid #eee;margin-bottom:16px}.my-parties-back-btn{width:36px;height:36px;border:none;background:#f3f4f6;border-radius:50%;font-size:24px;color:#333;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}.my-parties-back-btn:active{background:#e5e7eb}.my-parties-title{flex:1;text-align:center;font-size:17px;font-weight:700;color:#111827;margin:0}.my-parties-header-spacer{width:36px}.my-parties{flex:1;width:100%;overflow-y:auto}.my-parties-loading,.my-parties-error,.my-parties-empty{text-align:center;padding:24px;color:#666}.my-parties-error{color:#e74c3c}.my-parties-empty-hint{font-size:.9rem;color:#999;margin-top:8px}.my-parties-section{margin-bottom:24px}.my-parties-section-title{font-size:1rem;font-weight:600;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #eee}.my-parties-list{display:flex;flex-direction:column;gap:12px}.party-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #00000014;border:1px solid #eee}.party-card.active{border-left:4px solid #FF6B35}.party-card.past{opacity:.7;border-left:4px solid #aaa}.party-card.editing{background:#f9f9f9}.party-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.party-card-header h4{font-size:1rem;font-weight:600;color:#333;margin:0}.participant-count{font-size:.85rem;color:#ff6b35;font-weight:500;background:#ff6b351a;padding:4px 8px;border-radius:12px}.party-card-info{font-size:.9rem;color:#666;margin-bottom:8px}.party-card-info p{margin:4px 0}.party-card-info strong{color:#444}.party-card-text{font-size:.9rem;color:#555;background:#f5f5f5;padding:8px 12px;border-radius:8px;margin:8px 0}.party-card-has-path{font-size:.85rem;color:#3498db;margin:8px 0}.party-card-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #eee}.party-card-actions button{flex:1;padding:8px 12px;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-chat{background:#ff6b35;color:#fff}.btn-chat:hover{background:#e55a2b}.btn-edit{background:#3498db;color:#fff}.btn-edit:hover{background:#2980b9}.btn-delete{background:#e74c3c;color:#fff}.btn-delete:hover{background:#c0392b}.party-card-edit-form{display:flex;flex-direction:column;gap:12px}.edit-form-group{display:flex;flex-direction:column;gap:4px}.edit-form-group label{font-size:.85rem;font-weight:500;color:#555}.edit-form-group input,.edit-form-group select,.edit-form-group textarea{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:.95rem;transition:border-color .2s}.edit-form-group input:focus,.edit-form-group select:focus,.edit-form-group textarea:focus{outline:none;border-color:#ff6b35}.edit-form-group .time-inputs{display:flex;align-items:center;gap:8px}.edit-form-group .time-inputs input{width:60px;text-align:center}.edit-form-group .time-inputs span{font-size:.9rem;color:#666}.edit-form-buttons{display:flex;gap:8px;margin-top:8px}.edit-form-buttons button{flex:1;padding:10px;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer}.btn-cancel{background:#ddd;color:#333}.btn-cancel:hover{background:#ccc}.btn-save{background:#ff6b35;color:#fff}.btn-save:hover{background:#e55a2b}.profile-edit-container{display:flex;flex-direction:column;height:100%;width:100%;background:#f2f3f5;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0;scrollbar-width:none;-ms-overflow-style:none}.profile-edit-container ::-webkit-scrollbar{display:none}.profile-edit-header{display:flex;align-items:center;gap:8px;padding:0 0 10px;background:#f2f3f5}.profile-edit-header h1{margin:0;font-size:18px;font-weight:700;color:#0f172a}.profile-edit-back-btn{border:none;background:transparent;font-size:22px;padding:6px 10px;cursor:pointer}.profile-edit-form{flex:1;display:flex;flex-direction:column;gap:16px;overflow:visible;padding:0 16px;background:#f2f3f5}.profile-edit-error{padding:8px 10px;font-size:13px;background:#fee2e2;color:#b91c1c;border-radius:8px}.profile-edit-photo-block{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0 18px;border-bottom:1px solid #e5e7eb}.profile-edit-photo-avatar{width:100px;height:100px;border-radius:999px;overflow:hidden;display:flex;background:#e5e7eb}.profile-edit-photo-avatar img{width:100%;height:100%;object-fit:cover}.profile-edit-photo-button{padding:7px 18px;font-size:13px;font-weight:600;border-radius:999px;border:1px solid #d6d8df;position:relative;overflow:hidden;background:#fff;cursor:pointer}.profile-edit-photo-button input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.profile-edit-photo-hint{margin:0;font-size:11px;color:#6b7280}.profile-edit-item{display:flex;gap:16px}.profile-edit-label{width:80px;font-size:14px;font-weight:600;padding-top:10px;color:#374151}.profile-edit-control{flex:1}.profile-edit-control input,.profile-edit-control select,.profile-edit-control textarea{width:100%;border:1px solid #d7dce5;border-radius:12px;padding:11px 14px;font-size:14px;background:#fff;box-sizing:border-box}.profile-edit-control textarea{resize:none}.profile-edit-item--textarea textarea{min-height:100px}.profile-edit-text-counter{font-size:11px;text-align:right;color:#9ca3af}.profile-edit-actions{margin-top:24px;display:flex;justify-content:flex-end;gap:8px}.profile-edit-cancel,.profile-edit-save{padding:9px 18px;border:none;border-radius:999px;font-size:15px;font-weight:700;cursor:pointer}.profile-edit-cancel{background:#e5e7eb;color:#111827}.profile-edit-save{background:#4f46e5;color:#fff}.profile-edit-bottom-space{height:70px}@media (max-width: 768px){.profile-edit-form{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.profile-edit-bottom-space{height:calc(70px + env(safe-area-inset-bottom,0px))}}@media (max-width: 480px){.profile-edit-header{padding:0 0 10px}.profile-edit-form{padding:0 12px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}}.board__nav{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:4px;padding:8px 10px;background:#fff;border-top:1px solid #e4e9f4;box-shadow:0 -4px 12px #08245f14;z-index:2}.board__nav>button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;flex:1;height:40px;border-radius:12px;font:inherit;font-size:12px;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.board__nav>button:hover{background:#f3f6ff}.board__nav>button.is-active{background:#e8efff;color:#1e40ff;font-weight:600}.board__nav>button:active{opacity:.85}.nav-badge{position:absolute;top:2px;right:6px;padding:2px 6px;background:#ff3434;color:#fff;border-radius:999px;font-size:10px;font-weight:600}@media (max-width: 768px){.board__nav{padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}}@media (max-width: 480px){.board__nav{padding:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.board__nav>button{height:38px;font-size:11px}}.mate-search{width:100%;height:100%;display:flex;flex-direction:column;background-color:transparent;padding:0;overflow:hidden;pointer-events:none}.mate-search>*{pointer-events:auto}.mate-search h1{margin:0;padding:1rem;font-size:1.5rem;text-align:center;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;flex-shrink:0;position:relative;z-index:1}.refresh-location-button{position:absolute;bottom:17%;right:20px;width:50px;height:50px;background-color:#ff8c42;border:none;border-radius:50%;cursor:pointer;box-shadow:0 4px 6px #0003;transition:all .3s ease;z-index:1}.create-post-button{position:absolute;bottom:10%;left:50%;transform:translate(-50%);padding:18px 48px;font-size:18px;font-weight:700;color:#fff;background-color:#3182f6;border:none;border-radius:16px;cursor:pointer;box-shadow:0 4px 16px #3182f64d;transition:all .2s cubic-bezier(.4,0,.2,1);z-index:1;letter-spacing:-.3px;white-space:nowrap}.create-post-button:hover{background-color:#1b64da;box-shadow:0 6px 20px #3182f666;transform:translate(-50%) translateY(-2px)}.create-post-button:active{transform:translate(-50%) scale(.96)}.post-form-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}.post-form{background-color:#fff;border-radius:20px;padding:32px 24px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 8px 24px #00000029;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.post-form h2{margin:0 0 28px;font-size:22px;font-weight:700;color:#191f28;text-align:left;letter-spacing:-.4px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#191f28;font-size:14px;letter-spacing:-.2px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:14px 16px;border:1px solid #E5E8EB;border-radius:12px;font-size:15px;font-family:inherit;color:#191f28;background-color:#fff;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3182f6;background-color:#f9fafb}.form-group textarea{resize:vertical;min-height:100px;line-height:1.5}.form-group input::placeholder,.form-group textarea::placeholder{color:#8b95a1}.form-buttons{display:flex;gap:12px;margin-top:28px}.form-buttons button{flex:1;padding:16px;font-size:16px;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.cancel-button{background-color:#f2f4f6;color:#4e5968}.cancel-button:hover{background-color:#e5e8eb}.submit-button{background-color:#3182f6;color:#fff}.submit-button:hover{background-color:#1b64da}.cancel-button:active,.submit-button:active{transform:scale(.96)}.view-toggle-button{position:absolute;bottom:calc(10% + 56px);right:20px;width:50px;height:50px;border:none;border-radius:50%;cursor:pointer;z-index:100;box-shadow:0 4px 6px #0003;transition:all .3s ease}.view-toggle-button.map-mode{background-color:#007bff}.view-toggle-button.map-mode:hover{background-color:#0056b3;box-shadow:0 6px 8px #00000040;transform:scale(1.05)}.view-toggle-button.list-mode{background-color:#dc3545}.view-toggle-button.list-mode:hover{background-color:#c82333;box-shadow:0 6px 8px #00000040;transform:scale(1.05)}.view-toggle-button:active{transform:scale(.95)}.mate-search.list-view{background-color:#fff}.filter-bar{display:flex;gap:8px;padding:12px 16px;background-color:#fff;border-bottom:1px solid #E5E8EB;flex-shrink:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;-webkit-user-select:none;user-select:none}.filter-bar::-webkit-scrollbar{display:none}.filter-bar.grabbing{cursor:grabbing}.filter-button{padding:8px 16px;height:36px;border:1px solid #E5E8EB;border-radius:18px;font-size:14px;font-weight:500;background-color:#fff;color:#4e5968;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);flex-shrink:0;width:auto;min-width:fit-content;white-space:nowrap;font-family:inherit;display:flex;align-items:center;justify-content:center}.filter-button:hover{background-color:#f2f4f6;border-color:#8b95a1}.filter-button.active{background-color:#3182f6;color:#fff;border-color:#3182f6}.filter-button:active{transform:scale(.96)}.active-filters{display:flex;gap:8px;padding:8px 16px;background-color:#f9fafb;border-bottom:1px solid #E5E8EB;flex-wrap:wrap;flex-shrink:0;min-height:40px}.filter-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background-color:#ebf3ff;color:#3182f6;border-radius:16px;font-size:13px;font-weight:600;border:1px solid #D4E4FF}.filter-tag button{background:none;border:none;color:#3182f6;font-size:16px;cursor:pointer;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease;line-height:1}.filter-tag button:hover{background-color:#3182f626}.party-list{flex:1;overflow-y:auto;padding:1rem;background-color:#f8f9fa;position:relative;z-index:10;height:100%}.no-parties{text-align:center;padding:3rem 1rem;color:#6c757d;font-size:1rem}.party-item{background-color:#fff;border-radius:10px;padding:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.party-item:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.party-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e9ecef}.party-header h3{margin:0;font-size:1.1rem;color:#212529}.party-header .distance{background-color:#28a745;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.party-info{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.party-info p{margin:0;font-size:.9rem;color:#495057}.party-goal{margin:.75rem 0 0;padding-top:.75rem;border-top:1px solid #e9ecef;color:#6c757d;font-size:.9rem;line-height:1.5}.create-post-button-list{position:fixed;bottom:65px;left:50%;transform:translate(-50%);padding:18px 48px;font-size:18px;font-weight:700;color:#fff;background-color:#3182f6;border:none;border-radius:16px;cursor:pointer;box-shadow:0 4px 16px #3182f64d;transition:all .2s cubic-bezier(.4,0,.2,1);z-index:50;letter-spacing:-.3px}.create-post-button-list:hover{background-color:#1b64da;box-shadow:0 6px 20px #3182f666;transform:translate(-50%) translateY(-2px)}.create-post-button-list:active{transform:translate(-50%) scale(.96)}.time-inputs{display:flex;align-items:center;gap:8px}.time-inputs input{width:70px;padding:12px;text-align:center;border:1px solid #E5E8EB;border-radius:10px;font-size:15px;font-weight:600;color:#191f28}.time-inputs input:focus{outline:none;border-color:#3182f6;background-color:#f9fafb}.time-inputs span{font-size:14px;font-weight:500;color:#4e5968}.filter-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:flex-end;z-index:1000;animation:fadeIn .2s ease}.filter-modal{background-color:#fff;border-radius:20px 20px 0 0;padding:24px 20px 88px;max-width:480px;width:100%;max-height:70vh;overflow-y:auto;box-shadow:0 -4px 16px #0000001f;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.filter-modal h3{margin:0 0 24px;font-size:20px;font-weight:700;color:#191f28;text-align:left;letter-spacing:-.3px}.filter-options{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.filter-option-button{padding:16px 20px;border:1px solid #E5E8EB;border-radius:12px;font-size:15px;font-weight:500;background-color:#fff;color:#4e5968;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-align:left;font-family:inherit}.filter-option-button:hover{background-color:#f9fafb;border-color:#d1d6db}.filter-option-button.selected{background-color:#ebf3ff;color:#3182f6;border-color:#3182f6;font-weight:600}.filter-option-button:active{transform:scale(.98)}.filter-modal-close{width:100%;padding:16px;font-size:16px;font-weight:700;background-color:#f2f4f6;color:#4e5968;border:none;border-radius:12px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.filter-modal-close:hover{background-color:#e5e8eb}.filter-modal-close:active{transform:scale(.98)}.location-input-group{display:flex;gap:8px;align-items:center}.location-input-group input{flex:1;width:auto}.location-picker-btn{flex-shrink:0;width:45px;height:45px;padding:0;background-color:#28a745;border:1px solid #28a745;border-radius:8px;font-size:1.3rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.location-picker-btn:hover{background-color:#218838;border-color:#1e7e34;transform:scale(1.05)}.location-picker-btn:active{transform:scale(.95)}.location-picker-btn:focus{outline:none;box-shadow:0 0 0 3px #28a74540}.party-author{display:flex;align-items:center;gap:10px;margin-bottom:12px}.author-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background-color:#f0f0f0;flex-shrink:0}.author-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#e9ecef;font-size:20px}.author-nickname{font-size:15px;font-weight:600;color:#191f28}.detail-author{display:flex;align-items:center;gap:14px;padding:16px;margin-bottom:16px;background-color:#f9fafb;border-radius:12px;border:1px solid #E5E8EB}.detail-author-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background-color:#f0f0f0;flex-shrink:0;box-shadow:0 2px 8px #0000001a}.detail-author-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder-large{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#e9ecef;font-size:28px}.detail-author-info{display:flex;flex-direction:column;gap:4px}.detail-author-nickname{font-size:17px;font-weight:700;color:#191f28;letter-spacing:-.3px}.detail-author-label{font-size:13px;font-weight:500;color:#3182f6;background-color:#ebf3ff;padding:2px 8px;border-radius:10px;width:fit-content}.detail-info-body{margin-bottom:16px}.detail-info-body p{margin:8px 0;font-size:14px;color:#495057;line-height:1.5}.filter-button.expired-toggle{background-color:#f9fafb;border-color:#d1d6db;color:#6b7684}.filter-button.expired-toggle.active{background-color:#6b7684;color:#fff;border-color:#6b7684}.party-item.expired{opacity:.6;background-color:#f0f0f0;position:relative}.party-status-badge{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;margin-bottom:10px;width:fit-content}.party-status-badge.upcoming{background-color:#ebf3ff;color:#3182f6;border:1px solid #D4E4FF}.party-status-badge.ongoing{background-color:#fff4e6;color:#ff8c00;border:1px solid #FFE0B2}.party-status-badge.expired{background-color:#f2f4f6;color:#6b7684;border:1px solid #E5E8EB}.party-item.expired .party-header h3,.party-item.expired .party-info p,.party-item.expired .party-goal,.party-item.expired .author-nickname{color:#8b95a1}.party-item.expired .party-header .distance{background-color:#8b95a1}.party-item.expired:hover{transform:none;box-shadow:0 2px 4px #0000001a}.location-picker-overlay:has(.party-detail-modal){padding-bottom:70px;align-items:center}.party-detail-modal{max-height:calc(100vh - 140px);display:flex;flex-direction:column;margin-bottom:0}.party-detail-content{padding:24px;overflow-y:auto;flex:1;min-height:0}.detail-info{margin-bottom:20px}.detail-info h3{margin:0 0 16px;font-size:20px;font-weight:700;color:#191f28;letter-spacing:-.3px}.detail-info p{margin:0 0 12px;font-size:15px;color:#4e5968;line-height:1.6}.detail-info p strong{font-weight:600;color:#191f28;margin-right:8px}.detail-info p:last-child{margin-bottom:0}.party-detail-modal .map-container{height:250px;margin-bottom:16px;border-radius:12px;overflow:hidden;border:1px solid #E5E8EB}@media (min-width: 768px){.party-detail-modal .map-container{height:300px}}.path-info{padding:12px 16px;background-color:#f9fafb;border-radius:12px;font-size:14px;color:#4e5968;text-align:center;line-height:1.5;margin-bottom:12px}.party-detail-modal .location-picker-footer{flex-shrink:0}.chat-join-btn{background-color:#14c276;color:#fff;padding:16px 24px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);flex:1}.chat-join-btn:hover{background-color:#12a868}.chat-join-btn:active{transform:scale(.96)}@media (max-width: 768px){.location-picker-overlay:has(.party-detail-modal){padding-bottom:65px;align-items:flex-end}.party-detail-modal{max-height:calc(100vh - 120px);border-radius:20px 20px 0 0;width:100%;max-width:100%}}.map-display-wrapper{width:100%;height:100%;position:relative}.map-display{width:100%;height:100%;position:relative;transition:opacity .3s ease-in-out}.map-display.map-loading{opacity:0}.map-loading-skeleton{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#e0e0e0,#f5f5f5,#e0e0e0);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1000}.skeleton-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#ffffff80,#fff0);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.loading-text{font-size:14px;color:#666;margin-top:20px;z-index:1001;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.location-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .2s ease-in-out}.location-picker-modal{background:#fff;border-radius:20px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 24px #00000029;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.location-picker-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;border-bottom:1px solid #E5E8EB}.location-picker-header h2{margin:0;font-size:20px;font-weight:700;color:#191f28;letter-spacing:-.3px}.close-btn{background:none;border:none;font-size:28px;color:#8b95a1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;line-height:1}.close-btn:hover{background-color:#f2f4f6;color:#4e5968}.search-container{display:flex;gap:8px;padding:16px 20px;border-bottom:1px solid #E5E8EB}.search-container input{flex:1;padding:12px 16px;border:1px solid #E5E8EB;border-radius:12px;font-size:15px;color:#191f28;outline:none;transition:all .2s ease}.search-container input:focus{border-color:#3182f6;background-color:#f9fafb}.search-container input::placeholder{color:#8b95a1}.search-container button{padding:12px 20px;background-color:#3182f6;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.search-container button:hover{background-color:#1b64da}.search-results{max-height:200px;overflow-y:auto;border-bottom:1px solid #E5E8EB;background-color:#f9fafb}.search-result-item{padding:16px 24px;border-bottom:1px solid #E5E8EB;cursor:pointer;transition:background-color .2s ease}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#ebf3ff}.place-name{font-size:15px;font-weight:600;color:#191f28;margin-bottom:4px}.place-address{font-size:13px;color:#4e5968}.map-container{width:100%;height:400px;border-bottom:1px solid #e0e0e0}.picker-info{padding:12px 24px;background-color:#f9fafb;border-bottom:1px solid #E5E8EB;font-size:13px;color:#4e5968;text-align:center;line-height:1.5}.selected-address{padding:14px 24px;background-color:#ebf3ff;border-bottom:1px solid #D4E4FF;font-size:14px;color:#3182f6;line-height:1.5}.selected-address strong{font-weight:700;margin-right:8px}.location-picker-footer{display:flex;gap:12px;padding:20px 24px 24px}.location-picker-footer button{flex:1;padding:16px;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.cancel-btn{background-color:#f2f4f6;color:#4e5968}.cancel-btn:hover{background-color:#e5e8eb}.confirm-btn{background-color:#3182f6;color:#fff}.confirm-btn:hover{background-color:#1b64da}.confirm-btn:disabled{background-color:#e5e8eb;color:#8b95a1;cursor:not-allowed}.cancel-btn:active,.confirm-btn:active{transform:scale(.96)}@media (max-width: 768px){.location-picker-modal{width:95%;max-height:95vh}.location-picker-header h2{font-size:1.2rem}.map-container{height:300px}.search-container input{font-size:.9rem}.search-container button{padding:10px 15px;font-size:.9rem}}.search-results::-webkit-scrollbar{width:6px}.search-results::-webkit-scrollbar-track{background:#f1f1f1}.search-results::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.search-results::-webkit-scrollbar-thumb:hover{background:#555}.next-btn{background-color:#3182f6;color:#fff}.next-btn:hover{background-color:#1b64da}.next-btn:disabled{background-color:#e5e8eb;color:#8b95a1;cursor:not-allowed}.previous-btn{background-color:#f2f4f6;color:#4e5968}.previous-btn:hover{background-color:#e5e8eb}.next-btn:active,.previous-btn:active{transform:scale(.96)}.path-drawing-info{padding:16px 24px;background-color:#f9fafb;border-bottom:1px solid #E5E8EB}.path-drawing-info p{margin:0 0 12px;font-size:14px;color:#4e5968;text-align:center}.path-stats{display:flex;justify-content:space-between;align-items:center;gap:12px}.path-stats span{font-size:14px;font-weight:600;color:#191f28}.remove-point-btn{padding:8px 16px;background-color:#ff6b6b;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.remove-point-btn:hover{background-color:#ff5252}.remove-point-btn:active{transform:scale(.95)}.run-recorder{width:100%;height:100%;display:flex;flex-direction:column;background-color:transparent;padding:0;overflow:hidden;pointer-events:none}.run-recorder>*{pointer-events:auto}.run-recorder h1{margin:0;padding:1rem;font-size:1.5rem;text-align:center;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;flex-shrink:0;position:relative;z-index:1}.location-error{background-color:#fff3cd;color:#856404;padding:.75rem 1rem;text-align:center;font-size:.9rem;border-bottom:1px solid #ffeaa7;flex-shrink:0;position:relative;z-index:1}.accuracy-info{background-color:#f8d7da;color:#721c24;padding:.5rem 1rem;text-align:center;font-size:.85rem;border-bottom:1px solid #f5c6cb;flex-shrink:0;overflow:hidden;animation:slideDown .5s ease-out;position:relative;z-index:1}@keyframes slideDown{0%{max-height:0;opacity:0;padding-top:0;padding-bottom:0}to{max-height:100px;opacity:1;padding-top:.5rem;padding-bottom:.5rem}}.map-full{flex:1;width:100%;position:relative}.map-small{width:100%;flex:1;min-height:0;position:relative}.start-button{position:absolute;bottom:calc(10% + 50px);left:50%;transform:translate(-50%);width:120px;height:120px;padding:0;font-size:20px;font-weight:700;color:#fff;background-color:#14c276;border:none;border-radius:24px;cursor:pointer;box-shadow:0 4px 16px #14c2764d;transition:all .2s cubic-bezier(.4,0,.2,1);z-index:100;letter-spacing:-.3px;display:flex;align-items:center;justify-content:center}.start-button:hover{background-color:#12a868;box-shadow:0 6px 20px #14c27666;transform:translate(-50%) translateY(-2px)}.start-button:active{transform:translate(-50%) scale(.96)}.recording-button{position:absolute;bottom:10%;left:50%;transform:translate(-50%);padding:18px 48px;font-size:18px;font-weight:700;color:#fff;background-color:#f04452;border:none;border-radius:16px;cursor:pointer;box-shadow:0 4px 16px #f044524d;transition:all .2s cubic-bezier(.4,0,.2,1);z-index:1;letter-spacing:-.3px;animation:pulse 1.5s ease-in-out infinite}.recording-button:hover{background-color:#d93a47;box-shadow:0 6px 20px #f0445266}.recording-button:active{transform:translate(-50%) scale(.96)}@keyframes pulse{0%,to{box-shadow:0 4px 16px #f044524d,0 0 #f04452b3}50%{box-shadow:0 4px 16px #f044524d,0 0 0 10px #f0445200}}.recording-info{position:absolute;bottom:56px;left:0;right:0;background-color:#fff;padding:8px 20px 24px;display:flex;flex-direction:column;justify-content:flex-start;-webkit-user-select:none;user-select:none;cursor:grab;box-shadow:0 -4px 16px #0000001f;border-radius:20px 20px 0 0;z-index:20;animation:slideUpFromBottom .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUpFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.recording-info:active{cursor:grabbing}.swipe-indicator{width:40px;height:4px;background-color:#e5e8eb;border-radius:2px;margin:8px auto 16px;flex-shrink:0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:4px}.info-item{text-align:center;padding:16px 0;border-bottom:1px solid #F2F4F6;border-right:1px solid #F2F4F6}.info-item:nth-child(2),.info-item:nth-child(4){border-right:none}.info-item:nth-child(3),.info-item:nth-child(4){border-bottom:none}.info-label{font-size:13px;color:#8b95a1;margin-bottom:6px;font-weight:500;letter-spacing:-.2px}.info-value{font-size:24px;font-weight:700;color:#191f28;letter-spacing:-.5px}.button-group{display:flex;gap:12px;margin-top:20px;justify-content:center;align-items:center;flex-shrink:0}.pause-button,.resume-button,.stop-button{padding:16px 32px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:12px;cursor:pointer;box-shadow:0 2px 8px #00000014;transition:all .2s cubic-bezier(.4,0,.2,1);flex-shrink:0;flex:1;min-width:100px}.pause-button{background-color:orange}.pause-button:hover{background-color:#ff8c00;box-shadow:0 4px 12px #ffa5004d}.resume-button{background-color:#14c276}.resume-button:hover{background-color:#12a868;box-shadow:0 4px 12px #14c2764d}.stop-button{background-color:#f04452}.stop-button:hover{background-color:#d93a47;box-shadow:0 4px 12px #f044524d}.pause-button:active,.resume-button:active,.stop-button:active{transform:scale(.96)}.refresh-location-button{position:absolute;bottom:calc(17% + 56px);right:20px;width:50px;height:50px;background-color:#ff8c42;border:none;border-radius:50%;cursor:pointer;box-shadow:0 4px 6px #0003;transition:all .3s ease;z-index:1}.refresh-location-button:hover{background-color:#ff7426;box-shadow:0 6px 8px #00000040;transform:scale(1.05)}.refresh-location-button:active{transform:scale(.95)}.refresh-location-button.refreshing{animation:spin 1s linear infinite;opacity:.7}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.summary-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-out;padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.summary-modal{background-color:#fff;border-radius:20px;padding:32px 24px;width:100%;max-width:420px;box-shadow:0 8px 24px #00000029;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.summary-modal h2{margin:0 0 24px;font-size:22px;text-align:center;color:#191f28;font-weight:700;letter-spacing:-.4px}.warning-message{text-align:center;font-size:14px;color:#f04452;background-color:#fef3f2;padding:12px 16px;border-radius:12px;margin-top:16px;margin-bottom:8px;line-height:1.5;font-weight:500}.modal-button-group{display:flex;gap:12px;margin-top:24px;justify-content:center;align-items:center}.save-button,.summary-modal .cancel-button{padding:16px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:12px;cursor:pointer;box-shadow:0 2px 8px #00000014;transition:all .2s cubic-bezier(.4,0,.2,1);flex:1;min-width:100px}.save-button{background-color:#3182f6}.save-button:hover{background-color:#1b64da;box-shadow:0 4px 12px #3182f64d}.summary-modal .cancel-button{background-color:#f2f4f6;color:#4e5968}.summary-modal .cancel-button:hover{background-color:#e5e8eb;box-shadow:0 2px 8px #00000014}.save-button:active,.summary-modal .cancel-button:active{transform:scale(.96)}.map-blur-overlay{position:absolute;top:65px;left:0;right:0;bottom:0;pointer-events:auto;cursor:pointer;opacity:1;transition:opacity .5s ease-out}.map-blur-overlay.fading{opacity:0}.map-blur-overlay:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);mask-image:radial-gradient(ellipse 400px 350px at 50% calc(100% - 180px),transparent 0%,transparent 20%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.7) 70%,rgba(0,0,0,.7) 100%);-webkit-mask-image:radial-gradient(ellipse 400px 350px at 50% calc(100% - 180px),transparent 0%,transparent 20%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.7) 70%,rgba(0,0,0,.7) 100%)}.chat-wrap{height:100%;width:100%;display:flex;flex-direction:column;background:#fff;box-sizing:border-box;position:absolute;top:0;left:0;right:0;bottom:0}.chat-sidebar{flex:1;display:flex;flex-direction:column;padding:6px 12px 0;box-sizing:border-box}@media (max-width: 480px){.chat-sidebar{padding:6px 8px 0;padding-bottom:env(safe-area-inset-bottom,0px)}}.chat-title{margin:4px 0 10px;font-size:18px;font-weight:800;letter-spacing:.02em;color:#111827}.chat-status,.chat-error{border-radius:12px;padding:8px 10px;font-size:13px;margin-bottom:8px}.chat-status{background:#e5edff;color:#1d3ddb}.chat-error{background:#ffe5e5;color:#b42318}.room-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.room-list::-webkit-scrollbar{width:0;height:0}.room-list{scrollbar-width:none}.room-item{display:flex;align-items:center;padding:10px 0;gap:10px;cursor:pointer;background:transparent;border-bottom:1px solid rgba(148,163,184,.2);transition:background .12s ease,transform .06s ease}.room-item:last-child{border-bottom:none}.room-item:hover{background:#f9fafb}.room-item:active{background:#eef2ff;transform:scale(.99)}.room-item:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.room-avatar{flex-shrink:0}.avatar-circle{width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#e5e7eb;color:#111827;font-weight:700;font-size:18px;text-transform:uppercase;border:1px solid rgba(148,163,184,.6)}.room-content{flex:1;min-width:0;display:flex;flex-direction:column}.room-header{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.room-title{font-size:14px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-time{font-size:11px;color:#9ca3af;flex-shrink:0}.room-footer{margin-top:2px;display:flex;align-items:center;justify-content:space-between;gap:6px}.room-preview{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-badge{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#2563eb;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.chat-empty{margin-top:30px;padding:10px 8px;border-radius:10px;text-align:center;font-size:13px;color:#6b7280;background:#f3f4ff}.room-item-wrapper{position:relative;overflow:hidden}.room-item-swipe{background:#fff;position:relative;z-index:2;touch-action:pan-y;-webkit-user-select:none;user-select:none}.room-delete-area{position:absolute;top:0;right:0;bottom:0;width:80px;display:flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;z-index:1}.room-delete-icon{font-size:16px;font-weight:800;pointer-events:none}.chat-leave-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:999}.chat-leave-modal{width:min(320px,90vw);background:#fff;border-radius:16px;padding:18px 16px 14px;box-shadow:0 18px 40px #0f172a4d;box-sizing:border-box;font-size:14px;color:#111827}.chat-leave-modal p{margin:0 0 14px;line-height:1.4}.chat-leave-modal-actions{display:flex;justify-content:flex-end;gap:8px}.chat-leave-modal-actions button{border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;border:none;cursor:pointer}.chat-leave-cancel{background:#e5e7eb;color:#374151}.chat-leave-confirm{background:#ef4444;color:#fff}.chat-leave-confirm:hover{filter:brightness(.95)}.chat-leave-cancel:hover{background:#d1d5db}.chat-detail{margin:0;height:100%;width:100%;display:flex;flex-direction:column;box-sizing:border-box;background:#fff;position:absolute;top:0;left:0;right:0;bottom:0}.message-frame{flex:1;display:flex;flex-direction:column;height:100%;box-sizing:border-box;background:#f5f7fb;border-radius:0;padding:8px 8px 10px}.frame-title{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:6px 6px 8px;margin:0 2px 6px;box-shadow:0 1px 3px #0f172a0f;border-radius:999px;background:#f8fafce6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.back-btn{border:none;outline:none;background:transparent;cursor:pointer;width:30px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#0f172a;transition:background .15s ease,transform .08s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.back-btn:hover{background:#e2e8f0e6;box-shadow:0 2px 4px #94a3b880}.back-btn:active{transform:scale(.94);box-shadow:none}.room-header{margin:0;font-size:15px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-list{flex:1 1 auto;margin:0;padding:8px 4px;list-style:none;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}.message-list li,.message-list .message-item{border-bottom:none!important;padding:0!important;margin:0!important}.message-list::-webkit-scrollbar{width:0;height:0}.message-list{scrollbar-width:none}.empty-msg{margin-top:40px;text-align:center;font-size:13px;color:#9ca3af}.chat-detail .message-item,.message-frame .message-item{display:flex;flex-direction:column;margin:0!important;padding:0!important;border-bottom:none!important}.message-item.mine{align-items:flex-end}.message-item.theirs{align-items:flex-start}.msg-top{display:flex;align-items:center;gap:4px;margin-bottom:3px}.msg-user{font-size:11px;font-weight:600;color:#64748b}.nickname{font-size:11px;color:#94a3b8}.chatt-context{display:inline-flex;align-items:flex-end;max-width:80%}.msg-text{order:1;display:inline-block;padding:8px 12px;border-radius:14px;font-size:14px;line-height:1.5;word-break:break-word;box-sizing:border-box}.msg-time{order:2;font-size:10px;color:#9ca3af;white-space:nowrap;margin-left:6px;align-self:flex-end}.message-item.theirs .chatt-context{justify-content:flex-start}.message-item.theirs .msg-text{background:#fff;color:#0f172a;border-radius:16px 16px 16px 4px;border:none;box-shadow:0 1px 2px #0000001a}.message-item.mine .chatt-context{justify-content:flex-end}.message-item.mine .msg-time{order:1;margin-left:0}.message-item.mine .msg-text{order:2;background:#ffe266;color:#111827;border-radius:16px 16px 4px;box-shadow:0 1px 2px #0000001a;border:none}.frame-composer{flex:0 0 auto;display:flex;align-items:flex-end;gap:6px;padding:8px 4px 0;margin:0 4px;border-top:1px solid rgba(148,163,184,.35)}.chat-input{flex:1;min-height:36px;max-height:80px;padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;font-size:13px;resize:none;outline:none;box-sizing:border-box;background:#fff;color:#0f172a;-webkit-appearance:none}.chat-input::placeholder{color:#9ca3af}.chat-input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb33,0 0 0 6px #2563eb0f}.send-btn{flex-shrink:0;border:none;outline:none;cursor:pointer;padding:0 16px;height:36px;border-radius:999px;font-size:13px;font-weight:600;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;transition:background .15s ease,transform .08s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.send-btn:hover{background:#1d4ed8;box-shadow:0 3px 8px #2563eb73}.send-btn:active{transform:scale(.96);box-shadow:none}.board__view:has(.chat-detail) .board__nav{display:none}@media (max-width: 768px){.chat-detail{padding-bottom:env(safe-area-inset-bottom,0px)}.frame-composer{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}}html,body,#root{height:100%}.ei-container{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:radial-gradient(circle at top,#e4f0ff 0,#d7e4f3 40%,#cfd9e6)}.ei-card{width:360px;max-width:100%;max-height:calc(100dvh - 48px);padding:18px 18px 96px;background:#fff;border-radius:24px;box-shadow:0 18px 40px #0f172a26,0 0 0 1px #94a3b82e;display:flex;flex-direction:column;overflow-y:auto;box-sizing:border-box;scroll-behavior:smooth}@supports (padding: max(0px)){.ei-card{padding-bottom:max(96px,env(safe-area-inset-bottom))}}.title-container{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.chanju{width:40px;height:40px;object-fit:contain}.title{font-size:17px;font-weight:700;color:#111827}.ei-avatar{width:132px;height:132px;margin:10px auto 28px;border-radius:999px;background:linear-gradient(145deg,#f9fbff,#f1f5fb);border:1.5px dashed #cbd5e1;box-shadow:0 12px 25px #94a3b84d;display:grid;place-items:center;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;color:#6b7280;transition:transform .12s ease-out,box-shadow .12s ease-out,border-color .12s ease-out,background .12s ease-out}.ei-avatar:hover{transform:translateY(-1px) scale(1.01);box-shadow:0 16px 32px #94a3b859;border-color:#93c5fd;background:linear-gradient(145deg,#fdfefe,#f3f7ff)}.ei-avatar:active{transform:translateY(0) scale(.99);box-shadow:0 10px 22px #94a3b840}.ei-avatar img{width:100%;height:100%;border-radius:999px;object-fit:cover}.ei-row{display:grid;grid-template-columns:88px 1fr;align-items:center;column-gap:12px;row-gap:4px;margin-bottom:10px}.ei-label{font-size:13px;font-weight:500;color:#4b5563}.ei-input,.ei-textarea{width:100%;max-width:260px;border-radius:10px;border:1px solid #dde5f1;background:#fff;padding:9px 11px;font-size:14px;color:#111827;outline:none;box-sizing:border-box;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}.ei-input::placeholder,.ei-textarea::placeholder{color:#9ca3af}.ei-input:focus,.ei-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f61a;background-color:#f9fbff}.ei-select-wrap{max-width:260px}.ei-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9ca3af 50%),linear-gradient(135deg,#9ca3af 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.ei-textarea-wrap{position:relative;width:100%;max-width:260px}.ei-textarea{resize:vertical;min-height:110px;line-height:1.4}.ei-counter{position:absolute;right:10px;bottom:8px;font-size:11px;color:#9ca3af}.ei-help{margin:3px 0 10px 88px;font-size:11.5px;color:#6b7280}.ei-help-error{color:#e11d48}.ei-error{border-color:#e11d48!important;background:#fff5f7!important}.ei-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:10px}.ei-btn{height:40px;padding:0 16px;border-radius:999px;border:1px solid #d1d5db;background:#fff;font-size:14px;font-weight:500;color:#374151;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s ease,border-color .12s ease,transform .08s ease,box-shadow .12s ease}.ei-btn:hover:not(:disabled){background:#f3f4f6;transform:translateY(-.5px);box-shadow:0 2px 5px #94a3b859}.ei-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 0 #0000}.ei-btn:disabled,.ei-btn[aria-disabled=true]{cursor:not-allowed;opacity:.6;box-shadow:none}.ei-btn.primary{border-color:#2563eb;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 8px 16px #2563eb59}.ei-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)}.ei-btn.ghost{border-color:#e5e7eb;background:#fff}@media (max-width: 480px){.ei-container{padding:12px}.ei-card{width:100%;border-radius:20px;padding:16px 14px 80px;box-shadow:0 12px 28px #0f172a2e,0 0 0 1px #94a3b833}.ei-row{grid-template-columns:1fr;row-gap:4px;margin-bottom:12px}.ei-help,.ei-help-error{margin-left:0}.ei-avatar{width:120px;height:120px}.ei-actions{flex-direction:column-reverse;align-items:stretch}.ei-btn{width:100%}}@media (min-width: 1024px){.ei-card{width:390px}}@media (prefers-reduced-motion: reduce){.ei-avatar,.ei-btn{transition:none}}.admin-login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2)}.admin-login-box{background:#fff;padding:3rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.admin-login-box h1{margin:0 0 .5rem;font-size:2rem;color:#2c3e50;text-align:center}.admin-login-subtitle{margin:0 0 2rem;font-size:.95rem;color:#7f8c8d;text-align:center}.admin-login-box form{display:flex;flex-direction:column;gap:1rem}.admin-login-box input{padding:.95rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}.admin-login-box input:focus{outline:none;border-color:#667eea}.admin-login-box button{padding:.95rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.admin-login-box button:hover{opacity:.9}.admin-login-box .error{color:#e74c3c;font-size:.9rem;margin:-.5rem 0 0;text-align:center}.admin-sidebar{width:250px;background-color:#2c3e50;color:#fff;display:flex;flex-direction:column;box-shadow:2px 0 5px #0000001a}.sidebar-header{padding:2rem 1.5rem;border-bottom:1px solid #34495e}.sidebar-header h2{margin:0;font-size:1.5rem}.sidebar-header p{margin:.5rem 0 0;font-size:.9rem;color:#95a5a6}.sidebar-nav{flex:1;padding:1rem 0}.sidebar-item{width:100%;padding:1rem 1.5rem;background:none;border:none;color:#fff;text-align:left;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;gap:1rem}.sidebar-item:hover{background-color:#34495e}.sidebar-item.active{background-color:#3498db;border-left:4px solid #2980b9}.sidebar-icon{font-size:1.5rem}.sidebar-label{font-size:1rem}.sidebar-footer{padding:1.5rem;border-top:1px solid #34495e}.sidebar-footer button{width:100%;padding:.75rem;background-color:#e74c3c;border:none;color:#fff;cursor:pointer;border-radius:4px;transition:background-color .2s}.sidebar-footer button:hover{background-color:#c0392b}.user-management{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.user-management h1{margin-top:0;color:#2c3e50}.filters input,.filters select{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.filters input{flex:1}.user-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.user-table th,.user-table td{padding:1rem;text-align:left;border-bottom:1px solid #ecf0f1}.user-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.user-table tr:hover{background-color:#f8f9fa}.status{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status.active{background-color:#d4edda;color:#155724}.status.suspended{background-color:#f8d7da;color:#721c24}.btn-suspend,.btn-activate,.btn-withdraw{padding:.5rem 1rem;margin-right:.5rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:opacity .2s}.btn-suspend{background-color:#f39c12;color:#fff}.btn-activate{background-color:#27ae60;color:#fff}.btn-withdraw{background-color:#95a5a6;color:#fff}.btn-suspend:hover,.btn-activate:hover,.btn-withdraw:hover{opacity:.8}.checkbox-col{width:50px;text-align:center}.checkbox-col input[type=checkbox]{cursor:pointer;width:18px;height:18px}.bulk-actions{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background-color:#e3f2fd;border-radius:8px;border-left:4px solid #2196f3}.selection-count{font-weight:600;color:#1976d2;margin-right:auto}.bulk-btn{padding:.6rem 1.2rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s;color:#fff}.bulk-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.bulk-suspend{background-color:#f39c12}.bulk-suspend:hover{background-color:#e67e22}.bulk-activate{background-color:#27ae60}.bulk-activate:hover{background-color:#229954}.bulk-save{background-color:#3498db}.bulk-save:hover{background-color:#2980b9}.party-management{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.party-management h1{margin-top:0;color:#2c3e50}.filters{display:flex;gap:1rem;margin-bottom:1.5rem}.filters button{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.filters button:hover{background-color:#2980b9}.party-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.party-table th,.party-table td{padding:1rem;text-align:left;border-bottom:1px solid #ecf0f1}.party-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.party-table tr:hover{background-color:#f8f9fa}.btn-detail,.btn-delete{padding:.5rem 1rem;margin-right:.5rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:opacity .2s}.btn-detail:hover,.btn-delete:hover{opacity:.8}.map-view{position:relative;width:100%;height:600px;border-radius:8px;overflow:hidden}.map-container{width:100%;height:100%}.party-detail-panel{position:absolute;top:20px;right:20px;width:350px;max-height:calc(100% - 40px);background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow-y:auto;z-index:100}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #ecf0f1;background-color:#f8f9fa;border-radius:8px 8px 0 0}.panel-header h3{margin:0;font-size:1.1rem;color:#2c3e50}.panel-body{padding:1rem}.panel-section{margin-bottom:1.5rem}.panel-section:last-child{margin-bottom:0}.panel-section h4{margin:0 0 .75rem;font-size:.95rem;color:#34495e;border-bottom:2px solid #3498db;padding-bottom:.3rem}.panel-section p{margin:.5rem 0;font-size:.9rem;color:#2c3e50;line-height:1.5}.panel-section strong{color:#2c3e50;margin-right:.5rem;font-weight:600}.action-buttons{display:flex;flex-direction:column;gap:.5rem}.btn-delete-panel,.btn-suspend-panel,.btn-withdraw-panel{padding:.75rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:600;transition:opacity .2s}.btn-delete-panel{background-color:#e74c3c;color:#fff}.btn-delete-panel:hover{opacity:.8}.btn-suspend-panel{background-color:#f39c12;color:#fff}.btn-suspend-panel:hover{opacity:.8}.btn-withdraw-panel{background-color:#95a5a6;color:#fff}.btn-withdraw-panel:hover{opacity:.8}.chatroom-management{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.chatroom-management h1{margin-top:0;color:#2c3e50}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;border-radius:8px;text-align:center}.stat-card h3{margin:0;font-size:.9rem;opacity:.9}.stat-card p{margin:.5rem 0 0;font-size:2rem;font-weight:700}.filters{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center}.tabs{display:flex;gap:.5rem;flex:1}.tab{padding:.75rem 1.5rem;background-color:#ecf0f1;color:#2c3e50;border:none;border-radius:4px;cursor:pointer;transition:all .2s;font-weight:500}.tab.active{background-color:#3498db;color:#fff}.tab:hover{background-color:#d4dce0}.tab.active:hover{background-color:#2980b9}.filters button:not(.tab){padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.filters button:not(.tab):hover{background-color:#2980b9}.chatroom-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.chatroom-table th,.chatroom-table td{padding:1rem;text-align:left;border-bottom:1px solid #ecf0f1}.chatroom-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.chatroom-table tr:hover{background-color:#f8f9fa}.type-badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.type-badge.private{background-color:#d4edda;color:#155724}.type-badge.group{background-color:#cce5ff;color:#004085}.btn-detail,.btn-messages,.btn-delete{padding:.5rem 1rem;margin-right:.5rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:opacity .2s}.btn-detail{background-color:#2196f3;color:#fff}.btn-messages{background-color:#4caf50;color:#fff}.btn-delete{background-color:#e74c3c;color:#fff}.btn-detail:hover,.btn-messages:hover,.btn-delete:hover{opacity:.8}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem}.pagination button{padding:.5rem 1rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer}.pagination button:disabled{background-color:#95a5a6;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;max-width:800px;max-height:90vh;width:90%;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.messages-modal{max-width:600px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #ecf0f1}.modal-header h2{margin:0;color:#2c3e50}.close-btn{background:none;border:none;font-size:2rem;cursor:pointer;color:#95a5a6;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#e74c3c}.modal-body{padding:1.5rem}.detail-section{margin-bottom:2rem}.detail-section h3{margin-top:0;margin-bottom:1rem;color:#34495e;border-bottom:2px solid #3498db;padding-bottom:.5rem}.detail-section p{margin:.5rem 0;color:#2c3e50}.detail-section strong{color:#2c3e50;margin-right:.5rem}.participants-table{width:100%;border-collapse:collapse;margin-top:1rem}.participants-table th,.participants-table td{padding:.75rem;text-align:left;border-bottom:1px solid #ecf0f1}.participants-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.modal-footer{padding:1.5rem;border-top:1px solid #ecf0f1;display:flex;justify-content:flex-end}.btn-close{padding:.75rem 1.5rem;background-color:#95a5a6;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.btn-close:hover{background-color:#7f8c8d}.messages-list{max-height:60vh;overflow-y:auto}.message-item{padding:1rem;border-bottom:1px solid #ecf0f1}.message-item:last-child{border-bottom:none}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.message-header strong{color:#2c3e50;font-size:.9rem}.message-time{color:#95a5a6;font-size:.8rem}.message-text{color:#34495e;line-height:1.5;white-space:pre-wrap;word-break:break-word}.test-user-creator{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.test-user-creator h1{margin-top:0;color:#2c3e50}.message{padding:1rem;margin-bottom:2rem;background-color:#d4edda;color:#155724;border-radius:6px;border:1px solid #c3e6cb}.creator-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.creator-section{padding:1.5rem;background-color:#f8f9fa;border-radius:8px}.creator-section h2{margin-top:0;font-size:1.25rem;color:#2c3e50}.creator-section form,.bulk-form{display:flex;flex-direction:column;gap:1rem}.creator-section input,.creator-section select,.bulk-form input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.creator-section button,.bulk-form button{padding:.75rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.creator-section button:hover,.bulk-form button:hover{background-color:#2980b9}.creator-section p{color:#7f8c8d;font-size:.95rem}.admin-dashboard{display:flex;height:100vh;background-color:#f5f5f5;overflow:hidden}.admin-content{flex:1;padding:2rem;overflow-y:auto}
