@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Outfit:wght@400;600;700;800&family=Fredoka:wght@400;600;700&display=swap";:root{--color-bg: #e8f5e9;--color-bg-2: #c8e6c9;--color-bg-3: #a5d6a7;--color-surface: #ffffff;--color-surface-2: #f1f8f5;--color-border: #81c784;--color-border-2: #4caf50;--color-gold: #2e7d32;--color-gold-light: #4caf50;--color-gold-dark: #1b5e20;--color-gold-glow: rgba(46, 125, 50, .15);--color-tennis-ball: #c6e325;--color-tennis-ball-glow: rgba(198, 227, 37, .3);--color-white: #ffffff;--color-text-primary: #1b2e22;--color-text-secondary: #3e5a47;--color-text-muted: #78909c;--color-success: #2ecc71;--color-warning: #f1c40f;--color-danger: #e74c3c;--color-info: #3498db;--font-heading: "Fredoka", "Outfit", "Noto Sans JP", sans-serif;--font-body: "Noto Sans JP", "Fredoka", sans-serif;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 2px 4px rgba(27, 94, 32, .05);--shadow-md: 0 8px 16px rgba(27, 94, 32, .08);--shadow-lg: 0 16px 32px rgba(27, 94, 32, .12);--shadow-gold: 0 0 20px rgba(139, 195, 74, .4);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;height:auto}ul{list-style:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg-2)}::-webkit-scrollbar-thumb{background:var(--color-border-2);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gold-dark)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding-top:64px}.container{max-width:1100px;margin:0 auto;padding:0 var(--spacing-md)}.header{position:fixed;top:0;left:0;right:0;z-index:100;height:64px;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);display:flex;align-items:center}.header-inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1100px;margin:0 auto;padding:0 var(--spacing-md)}.logo{display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-heading);font-size:1.25rem;font-weight:800;color:var(--color-gold);text-shadow:0 0 20px rgba(212,168,67,.5);letter-spacing:-.02em}.logo-racket{font-size:1.4rem;filter:drop-shadow(0 0 8px var(--color-tennis-ball-glow))}.header-nav{display:flex;align-items:center;gap:var(--spacing-xs)}.nav-link{display:flex;align-items:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast)}.nav-link:hover,.nav-link.active{color:var(--color-text-primary);background:var(--color-surface)}.nav-link.active{color:var(--color-gold)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:100;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--color-border);padding:var(--spacing-sm) 0}.bottom-nav-items{display:flex;justify-content:space-around;align-items:center}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-size:.625rem;font-weight:500;color:var(--color-text-secondary);background:none;border:none;transition:color var(--transition-fast)}.bottom-nav-item.active{color:var(--color-gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:10px 20px;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;border:none;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-tennis-ball);color:var(--color-text-primary);border:1px solid var(--color-gold-light);box-shadow:0 2px 12px var(--color-tennis-ball-glow);font-weight:700}.btn-primary:hover:not(:disabled){background:#d4f230;box-shadow:0 4px 20px #c6e32599;transform:translateY(-1px)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-2)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--color-surface);color:var(--color-text-primary)}.btn-danger{background:#f8717126;color:var(--color-danger);border:1px solid rgba(248,113,113,.3)}.btn-danger:hover:not(:disabled){background:#f8717140}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-full{width:100%}.btn-icon{padding:8px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-normal)}.card:hover{border-color:var(--color-border-2);box-shadow:var(--shadow-md)}.card-clickable{cursor:pointer}.card-clickable:hover{border-color:#d4a84366;box-shadow:0 4px 20px #0006,0 0 0 1px #d4a84326;transform:translateY(-2px)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.form-label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.form-input,.form-textarea,.form-select{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 16px;color:var(--color-text-primary);font-size:.9375rem;transition:all var(--transition-fast);width:100%}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px #d4a84326}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.form-error{font-size:.8125rem;color:var(--color-danger);margin-top:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-gold{background:#d4a84326;color:var(--color-gold);border:1px solid rgba(212,168,67,.3)}.badge-blue{background:#60a5fa26;color:var(--color-info);border:1px solid rgba(96,165,250,.3)}.badge-green{background:#4ade8026;color:var(--color-success);border:1px solid rgba(74,222,128,.3)}.badge-red{background:#f8717126;color:var(--color-danger);border:1px solid rgba(248,113,113,.3)}.badge-gray{background:#4a55684d;color:var(--color-text-secondary);border:1px solid var(--color-border)}.avatar{border-radius:var(--radius-full);object-fit:cover;background:var(--color-surface-2);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);overflow:hidden;flex-shrink:0}.avatar-sm{width:32px;height:32px;font-size:.875rem}.avatar-md{width:40px;height:40px;font-size:1rem}.avatar-lg{width:56px;height:56px;font-size:1.25rem}.avatar-xl{width:80px;height:80px;font-size:1.75rem}.stars{display:inline-flex;gap:2px;color:var(--color-gold)}.divider{height:1px;background:var(--color-border);margin:var(--spacing-lg) 0}.page-header{padding:var(--spacing-xl) 0 var(--spacing-lg)}.page-title{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;color:var(--color-text-primary)}.page-subtitle{font-size:.9375rem;color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.post-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all var(--transition-normal);display:flex;flex-direction:column;gap:var(--spacing-md)}.post-card:hover{border-color:#d4a84366;box-shadow:0 4px 24px #0006,0 0 0 1px #d4a8431a;transform:translateY(-2px)}.post-card-header{display:flex;align-items:center;gap:var(--spacing-sm)}.post-card-user{flex:1;min-width:0}.post-card-nickname{font-size:.875rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-card-meta{font-size:.75rem;color:var(--color-text-muted)}.post-card-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);line-height:1.4}.post-card-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.items-section{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.items-section-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:3px 8px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0}.items-section-label.offer{background:#d4a84326;color:var(--color-gold);border:1px solid rgba(212,168,67,.3)}.items-section-label.wanted{background:#60a5fa26;color:var(--color-info);border:1px solid rgba(96,165,250,.3)}.items-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1}.item-chip{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 10px;font-size:.8125rem;color:var(--color-text-secondary)}.notif-dot{position:relative}.notif-dot:after{content:"";position:absolute;top:2px;right:2px;width:8px;height:8px;background:var(--color-danger);border-radius:50%;border:2px solid var(--color-bg)}.loading-spinner{display:inline-block;width:24px;height:24px;background-color:var(--color-tennis-ball);border:2px solid var(--color-gold-dark);border-radius:50%;position:relative;animation:spin .8s linear infinite;box-shadow:0 0 10px var(--color-tennis-ball-glow);overflow:hidden}.loading-spinner:before,.loading-spinner:after{content:"";position:absolute;border:1.5px solid rgba(255,255,255,.9);border-radius:50%;width:18px;height:18px}.loading-spinner:before{top:-5px;left:-5px}.loading-spinner:after{bottom:-5px;right:-5px}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:flex;align-items:center;justify-content:center;min-height:50vh;flex-direction:column;gap:var(--spacing-md);color:var(--color-text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-xl);text-align:center;gap:var(--spacing-md);color:var(--color-text-secondary)}.empty-state-icon{font-size:3rem;opacity:.4}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);background:radial-gradient(ellipse at 50% 0%,rgba(212,168,67,.08) 0%,transparent 60%),var(--color-bg)}.auth-card{width:100%;max-width:440px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-lg)}.auth-logo{text-align:center;margin-bottom:var(--spacing-xl)}.auth-logo-text{font-family:var(--font-heading);font-size:1.75rem;font-weight:800;color:var(--color-gold);text-shadow:0 0 30px rgba(212,168,67,.4)}.auth-logo-sub{font-size:.875rem;color:var(--color-text-secondary);margin-top:4px}.auth-title{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.step-indicator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.step-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:all var(--transition-normal)}.step-dot.active{background:var(--color-gold);box-shadow:0 0 8px #d4a84380;width:24px;border-radius:4px}.search-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;align-items:center;gap:var(--spacing-sm);padding:0 var(--spacing-md);transition:all var(--transition-fast)}.search-bar:focus-within{border-color:var(--color-gold);box-shadow:0 0 0 3px #d4a8431a}.search-bar input{flex:1;background:none;border:none;outline:none;color:var(--color-text-primary);font-size:.9375rem;padding:12px 0}.search-bar input::placeholder{color:var(--color-text-muted)}.filter-bar{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.filter-chip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:6px 16px;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.filter-chip:hover{border-color:var(--color-gold-dark);color:var(--color-gold)}.filter-chip.active{background:#d4a84326;border-color:#d4a84366;color:var(--color-gold)}.chat-layout{display:flex;height:calc(100vh - 64px);overflow:hidden}.chat-sidebar{width:320px;border-right:1px solid var(--color-border);overflow-y:auto;flex-shrink:0}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--spacing-md);background:var(--color-bg-2)}.messages-area{flex:1;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.message-bubble{max-width:70%;padding:10px 14px;border-radius:var(--radius-lg);font-size:.9375rem;line-height:1.5;word-break:break-word}.message-bubble.sent{background:linear-gradient(135deg,var(--color-gold-dark),var(--color-gold));color:#0a0e1a;margin-left:auto;border-bottom-right-radius:var(--radius-sm)}.message-bubble.received{background:var(--color-surface-2);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-sm)}.chat-input-area{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);background:var(--color-bg-2);display:flex;gap:var(--spacing-sm);align-items:flex-end}.chat-input{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 14px;color:var(--color-text-primary);font-size:.9375rem;resize:none;max-height:120px;transition:border-color var(--transition-fast)}.chat-input:focus{outline:none;border-color:var(--color-gold)}.trade-flow{display:flex;flex-direction:column;gap:var(--spacing-sm);margin:var(--spacing-lg) 0}.trade-flow-step{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-2)}.trade-flow-step.active{border-color:#d4a84366;background:#d4a8430d}.trade-flow-step.completed{border-color:#4ade804d;background:#4ade800d}.flow-number{width:28px;height:28px;border-radius:50%;background:var(--color-border);display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;flex-shrink:0}.trade-flow-step.active .flow-number{background:var(--color-gold);color:#0a0e1a}.trade-flow-step.completed .flow-number{background:var(--color-success);color:#0a0e1a}.hero{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);background:radial-gradient(ellipse at 50% 0%,rgba(212,168,67,.12) 0%,transparent 70%)}.hero-title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.2;margin-bottom:var(--spacing-md)}.hero-title .highlight{color:var(--color-gold);text-shadow:0 0 40px rgba(212,168,67,.5)}.hero-subtitle{font-size:1.0625rem;color:var(--color-text-secondary);max-width:540px;margin:0 auto var(--spacing-xl);line-height:1.8}.grid-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-md)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-xl)}.tab-btn{padding:var(--spacing-md) var(--spacing-lg);font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition-fast)}.tab-btn:hover{color:var(--color-text-primary)}.tab-btn.active{color:var(--color-gold);border-bottom-color:var(--color-gold)}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:.9rem;margin-bottom:var(--spacing-md)}.alert-error{background:#f871711a;border:1px solid rgba(248,113,113,.3);color:var(--color-danger)}.alert-success{background:#4ade801a;border:1px solid rgba(74,222,128,.3);color:var(--color-success)}.alert-info{background:#60a5fa1a;border:1px solid rgba(96,165,250,.3);color:var(--color-info)}.section-title{font-size:1rem;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm)}.section-title:after{content:"";flex:1;height:1px;background:var(--color-border)}.profile-header{display:flex;align-items:flex-start;gap:var(--spacing-lg);padding:var(--spacing-xl) 0}.profile-info{flex:1}.profile-name{font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.profile-stats{display:flex;gap:var(--spacing-xl);margin-top:var(--spacing-md)}.stat-item{text-align:center}.stat-value{font-size:1.5rem;font-weight:700;color:var(--color-gold)}.stat-label{font-size:.75rem;color:var(--color-text-muted);margin-top:2px}@media (max-width: 768px){.header-nav{display:none}.bottom-nav{display:block}.main-content{padding-bottom:70px}.chat-sidebar{display:none}.chat-sidebar.show{display:block;width:100%}.grid-posts{grid-template-columns:1fr}.profile-header{flex-direction:column}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.text-gold{color:var(--color-gold)}.text-secondary{color:var(--color-text-secondary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
