*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0e1a;--bg-secondary: #111827;--bg-card: #151c2e;--bg-card-hover: #1a2340;--bg-input: #1e293b;--border: #1e293b;--border-light: #2d3a52;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--accent: #f59e0b;--accent-dim: rgba(245, 158, 11, .15);--accent-glow: rgba(245, 158, 11, .3);--success: #22c55e;--success-dim: rgba(34, 197, 94, .15);--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .15);--info: #3b82f6;--info-dim: rgba(59, 130, 246, .15);--purple: #a855f7;--purple-dim: rgba(168, 85, 247, .15);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow: 0 2px 8px rgba(0,0,0,.3);--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-height: 64px;--resource-height: 72px}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-size:14px;line-height:1.4}.app-layout{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 8px)}.resource-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:6px 12px;flex-shrink:0}.resource-bar-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.resource-moonite,.resource-power{display:flex;align-items:center;gap:4px;font-weight:600;font-size:15px}.moonite-icon,.power-icon{font-size:16px}.moonite-value{color:var(--accent)}.power-value{color:var(--info)}.resource-bar-items{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.resource-bar-items::-webkit-scrollbar{display:none}.resource-item{display:flex;align-items:center;gap:4px;min-width:0;flex-shrink:0}.resource-icon{font-size:12px}.resource-info{display:flex;flex-direction:column;gap:1px}.resource-amount{font-size:11px;font-weight:600;white-space:nowrap}.resource-bar-fill-wrap{width:36px;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.resource-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.resource-critical .resource-bar-fill-wrap{animation:pulse-critical 1.5s ease-in-out infinite}@keyframes pulse-critical{0%,to{opacity:1}50%{opacity:.5}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;z-index:100}.nav-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;position:relative;transition:color .2s}.nav-tab-active{color:var(--accent)}.nav-icon{font-size:20px;line-height:1}.nav-label{font-weight:500}.nav-badge{position:absolute;top:2px;right:4px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;background:var(--bg-card);color:var(--text-primary);transition:all .15s ease;white-space:nowrap}.btn:active{transform:scale(.96);opacity:.9}.btn:disabled{opacity:.4;pointer-events:none}.btn-primary{background:linear-gradient(135deg,var(--accent),#d97706);color:#000}.btn-accent{background:var(--accent-dim);color:var(--accent);border:1px solid rgba(245,158,11,.3)}.btn-danger{background:var(--danger-dim);color:var(--danger);border:1px solid rgba(239,68,68,.3)}.btn-success{background:var(--success-dim);color:var(--success);border:1px solid rgba(34,197,94,.3)}.btn-sm{padding:6px 12px;font-size:12px}.btn-xs{padding:4px 8px;font-size:11px;border-radius:6px}.btn-lg{padding:14px 24px;font-size:16px;width:100%;border-radius:var(--radius)}.btn-decision{background:var(--bg-card);border:1px solid var(--border-light);padding:12px 16px;text-align:left;width:100%;margin-bottom:8px}.btn-decision:active{background:var(--accent-dim);border-color:var(--accent)}.input{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.textarea{resize:none;min-height:80px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .15s ease}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;animation:slideUp .2s ease;padding-bottom:calc(var(--safe-bottom) + 16px)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.modal-header h3{font-size:16px;font-weight:700}.modal-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px}.modal-body{padding:16px 20px}.modal-actions{padding:12px 20px;border-top:1px solid var(--border)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100px)}to{transform:translateY(0)}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:100dvh;gap:24px}.loading-moon{position:relative;width:60px;height:60px}.moon-body{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fbbf24,#92400e);animation:moonPulse 2s ease-in-out infinite}.moon-glow{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;background:radial-gradient(circle,var(--accent-glow),transparent 70%);animation:moonGlow 2s ease-in-out infinite alternate}@keyframes moonPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes moonGlow{0%{opacity:.3}to{opacity:.7}}.loading-text{color:var(--text-secondary);font-size:14px}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:100dvh;gap:16px;padding:24px;text-align:center}.error-icon{font-size:64px}.error-msg{color:var(--text-secondary);max-width:300px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:12px}.toast-container{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);animation:toastIn .3s ease;pointer-events:auto;max-width:320px}.toast-success{border-color:var(--success)}.toast-error{border-color:var(--danger)}.toast-info{border-color:var(--info)}.toast-icon{font-size:14px;font-weight:700}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--info)}.toast-msg{font-size:13px}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.page-title{font-size:18px;font-weight:700;padding:16px 16px 8px}.crisis-banner{padding:0 12px}.crisis-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:6px;font-size:12px;font-weight:500}.crisis-warning{background:#f59e0b1f;color:var(--accent)}.crisis-critical{background:var(--danger-dim);color:var(--danger)}.crisis-icon{font-size:14px}.dashboard-page{padding:8px 0}.dash-section{padding:8px 16px}.dash-section-header{display:flex;justify-content:space-between;align-items:center}.dash-section-title{font-size:14px;font-weight:700;color:var(--text-secondary);margin-bottom:8px}.colony-overview{background:var(--bg-card);border-radius:var(--radius);padding:16px;border:1px solid var(--border)}.colony-hq-badge{display:flex;align-items:center;gap:8px;margin-bottom:12px}.hq-icon{font-size:24px}.hq-level{font-size:18px;font-weight:700;color:var(--accent)}.colony-stats-row{display:flex;gap:12px}.colony-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--bg-input);border-radius:var(--radius-sm);padding:8px}.stat-icon{font-size:16px}.stat-value{font-size:13px;font-weight:700}.stat-label{font-size:10px;color:var(--text-muted)}.newbie-shield{margin-top:10px;padding:8px 12px;background:var(--info-dim);border-radius:var(--radius-sm);font-size:12px;color:var(--info);display:flex;align-items:center;gap:4px}.active-processes{display:flex;flex-direction:column;gap:6px}.process-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.process-icon{font-size:20px}.process-name{font-size:13px;font-weight:600}.collect-cards{display:flex;gap:8px;flex-wrap:wrap}.collect-card{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--success-dim);border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-weight:600;color:var(--success)}.buildings-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.building-mini-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .2s}.building-mini-card:active{border-color:var(--accent)}.building-mini-icon{font-size:22px}.building-mini-name{font-size:10px;color:var(--text-secondary);text-align:center}.building-mini-level{font-size:11px;font-weight:700;color:var(--accent)}.building-add{border-style:dashed;opacity:.6}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick-action{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.quick-action:active{background:var(--bg-card-hover);transform:scale(.96)}.qa-icon{font-size:22px}.qa-label{font-size:10px;color:var(--text-secondary)}.sector-info-card{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.sector-info-icon{font-size:20px}.sector-info-name{font-weight:600;font-size:13px}.sector-info-bonus{font-size:11px;color:var(--success)}.sector-info-zone{margin-left:auto;font-weight:700;color:var(--accent)}.event-modal{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.event-icon-large{font-size:48px}.event-title{font-size:16px;font-weight:700}.event-desc{color:var(--text-secondary);font-size:13px}.event-effects{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.event-effect{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.event-effect.positive{background:var(--success-dim);color:var(--success)}.event-effect.negative{background:var(--danger-dim);color:var(--danger)}.buildings-page{padding:8px 0}.layer-tabs{display:flex;padding:0 16px 8px;gap:8px}.layer-tab{flex:1;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;text-align:center;transition:all .2s}.layer-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.collect-all-btn{margin:0 16px 8px;width:calc(100% - 32px)}.buildings-list{padding:0 16px;display:flex;flex-direction:column;gap:8px}.building-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .2s}.building-card:active{border-color:var(--accent)}.building-upgrading{border-color:var(--info);border-style:dashed}.building-ready{border-color:var(--success)}.building-icon-lg{font-size:28px}.building-card-center{flex:1;min-width:0}.building-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px}.building-level{font-size:12px;color:var(--accent);font-weight:700}.building-production{font-size:11px;color:var(--success);margin-top:2px}.building-new{border-style:dashed;justify-content:center;opacity:.7;gap:8px}.building-new-text{font-size:14px;color:var(--text-secondary)}.building-detail{display:flex;flex-direction:column;gap:12px}.building-detail-level{font-size:14px}.hp-bar{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:4px}.hp-fill{height:100%;background:var(--success);border-radius:3px;transition:width .3s}.construct-list{display:flex;flex-direction:column;gap:8px}.construct-item{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;transition:border-color .2s}.construct-item:active{border-color:var(--accent)}.construct-icon{font-size:24px}.construct-name{font-weight:600}.construct-cost{font-size:11px;color:var(--text-muted)}.construct-locked{color:var(--danger);font-size:11px;font-weight:600;margin-left:auto}.units-page{padding:8px 16px}.units-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.unit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;align-items:center;gap:4px}.unit-training{border-color:var(--info)}.unit-header{display:flex;align-items:center;gap:6px}.unit-icon{font-size:24px}.unit-count{font-size:18px;font-weight:700}.unit-name{font-size:11px;color:var(--text-secondary)}.unit-training-info{display:flex;flex-direction:column;align-items:center;gap:4px}.unit-training-label{font-size:10px;color:var(--info)}.unit-stats{display:flex;gap:8px;font-size:10px;color:var(--text-muted)}.train-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.train-section h3{font-size:14px;margin-bottom:10px}.train-types{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.train-type{display:flex;align-items:center;gap:10px;padding:10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;transition:border-color .2s}.train-type.selected{border-color:var(--accent);background:var(--accent-dim)}.train-icon{font-size:20px}.train-name{font-weight:600;font-size:13px}.train-cost{font-size:11px;color:var(--text-muted)}.train-controls{display:flex;flex-direction:column;gap:8px;align-items:center}.train-counter{display:flex;align-items:center;gap:8px}.train-count-display{font-size:20px;font-weight:700;min-width:40px;text-align:center}.pvp-page{padding:8px 16px}.pvp-tabs{display:flex;gap:8px;margin-bottom:12px}.pvp-tab{flex:1;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;text-align:center}.pvp-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.pvp-stats{display:flex;gap:8px;margin-bottom:16px}.pvp-stat{flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;text-align:center}.pvp-stat-value{display:block;font-size:18px;font-weight:700}.pvp-stat-label{font-size:10px;color:var(--text-muted)}.pvp-section{margin-bottom:16px}.pvp-section h3{font-size:14px;margin-bottom:8px}.pvp-input-row{display:flex;gap:8px}.pvp-input-row .input{flex:1}.attack-card{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px}.attack-target{font-weight:600}.battle-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px}.battle-win{border-left:3px solid var(--success)}.battle-loss{border-left:3px solid var(--danger)}.battle-result{font-size:20px}.battle-opponent{font-weight:600;font-size:13px}.battle-time{font-size:11px;color:var(--text-muted)}.battle-loot{margin-left:auto;display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--success)}.unit-select-list{display:flex;flex-direction:column;gap:8px}.unit-select-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.unit-select-name{font-weight:600;font-size:13px}.unit-select-controls{display:flex;align-items:center;gap:6px}.unit-select-count{font-size:16px;font-weight:700;min-width:24px;text-align:center}.expedition-page{padding:8px 16px}.expedition-active{display:flex;flex-direction:column;gap:12px}.expedition-header-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.expedition-depth-icon{font-size:32px}.expedition-progress{font-size:12px;color:var(--text-secondary)}.expedition-node{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);padding:16px}.node-type{font-size:12px;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:8px}.node-description{color:var(--text-secondary);font-size:13px;margin-bottom:12px}.node-decisions{display:flex;flex-direction:column}.expedition-loot{background:var(--success-dim);border-radius:var(--radius-sm);padding:12px}.expedition-loot h4{margin-bottom:6px;font-size:13px}.loot-item{display:inline-block;margin-right:12px;font-size:12px;color:var(--success);font-weight:600}.expedition-abandon{align-self:center}.expedition-start-section{text-align:center;padding:40px 20px}.expedition-desc{color:var(--text-secondary);margin-bottom:20px}.expedition-history{margin-top:16px}.expedition-history h3{margin-bottom:8px;font-size:14px}.expedition-history-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px}.expedition-hist-icon{font-size:18px}.expedition-hist-info{flex:1;display:flex;gap:8px;font-size:13px}.expedition-hist-date{font-size:11px;color:var(--text-muted)}.expedition-status{font-weight:600}.status-completed{color:var(--success)}.status-abandoned,.status-failed{color:var(--danger)}.depth-selector{display:flex;gap:8px;margin-bottom:16px}.depth-btn{flex:1;padding:10px 6px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:16px;cursor:pointer;text-align:center}.depth-btn.selected{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.clan-page{padding:8px 16px}.clan-tabs{display:flex;gap:8px;margin-bottom:12px}.clan-tab{flex:1;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;text-align:center}.clan-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.clan-header-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px}.clan-emblem{font-size:14px;font-weight:900;background:var(--accent-dim);color:var(--accent);width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:2px solid var(--accent)}.clan-header-info h2{font-size:16px}.clan-power{font-size:12px;color:var(--info)}.clan-members-count{font-size:12px;color:var(--text-muted)}.clan-description{color:var(--text-secondary);font-size:13px;margin-bottom:12px}.clan-job-section{margin-bottom:16px}.clan-job-section h3{font-size:14px;margin-bottom:8px}.job-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.job-btn{padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;text-align:center}.job-btn.selected{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.clan-members h3{font-size:14px;margin-bottom:8px}.clan-member{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.member-role{font-size:14px}.member-name{flex:1;font-weight:500}.member-power{font-size:11px;color:var(--text-muted)}.member-job{font-size:14px}.clan-leave{margin-top:16px}.no-clan{text-align:center;padding:40px 20px}.no-clan-icon{font-size:48px;margin-bottom:12px}.no-clan p{color:var(--text-secondary);margin-bottom:20px}.clan-list{display:flex;flex-direction:column;gap:8px}.clan-list-card{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.clan-list-tag{font-size:12px;font-weight:800;background:var(--accent-dim);color:var(--accent);width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center}.clan-list-info{flex:1}.clan-list-name{font-weight:600;font-size:14px}.clan-list-stats{font-size:11px;color:var(--text-muted)}.create-clan-form{display:flex;flex-direction:column;gap:10px}.create-clan-form label{font-size:12px;font-weight:600;color:var(--text-secondary)}.commander-page{padding:8px 16px}.commander-tabs{display:flex;gap:4px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.commander-tabs::-webkit-scrollbar{display:none}.commander-tab{padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.commander-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.player-card{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,var(--bg-card),#1a1f35);border:1px solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:16px}.avatar-frame{width:64px;height:64px;border-radius:50%;background:var(--accent-dim);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center}.avatar-icon{font-size:32px}.player-name{font-size:16px;font-weight:700}.player-clan-tag{font-size:12px;color:var(--accent);font-weight:600}.player-profession{font-size:13px;color:var(--text-secondary);margin-top:2px}.no-profession{color:var(--text-muted);font-style:italic}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.stat-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.stat-card-icon{font-size:20px}.stat-card-value{font-size:16px;font-weight:700}.stat-card-label{font-size:10px;color:var(--text-muted)}.commander-actions{display:flex;gap:8px}.achievements-list{display:flex;flex-direction:column;gap:8px}.achievement-card{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);opacity:.5}.achievement-card.unlocked{opacity:1;border-color:var(--accent)}.achievement-icon{font-size:20px}.achievement-name{font-weight:600;font-size:13px}.achievement-desc{font-size:11px;color:var(--text-muted)}.achievement-progress{display:flex;align-items:center;gap:6px;margin-top:4px}.progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:2px}.medals-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.medal-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.medal-icon{font-size:28px}.medal-name{font-weight:600;font-size:12px}.medal-desc{font-size:10px;color:var(--text-muted)}.lb-type-selector{display:flex;gap:6px;margin-bottom:12px}.lb-list{display:flex;flex-direction:column;gap:4px}.lb-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.lb-me{border-color:var(--accent);background:var(--accent-dim)}.lb-rank{font-size:14px;min-width:30px}.lb-name{flex:1;font-weight:500;font-size:13px}.lb-value{font-weight:700;color:var(--accent)}.profession-list{display:flex;flex-direction:column;gap:8px}.profession-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%}.profession-card.current{border-color:var(--accent);background:var(--accent-dim)}.profession-card:active{border-color:var(--accent)}.prof-icon{font-size:28px}.prof-name{font-weight:600;font-size:14px}.prof-desc{font-size:11px;color:var(--text-muted)}.chat-page{display:flex;flex-direction:column;height:calc(100vh - var(--resource-height) - var(--nav-height) - var(--safe-bottom));height:calc(100dvh - var(--resource-height) - var(--nav-height) - var(--safe-bottom))}.chat-tabs{display:flex;gap:8px;padding:8px 16px;flex-shrink:0}.chat-tab{flex:1;padding:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;text-align:center}.chat-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.chat-messages{flex:1;overflow-y:auto;padding:8px 16px;display:flex;flex-direction:column;gap:6px}.chat-empty{text-align:center;margin-top:40px}.chat-msg{padding:8px 12px;background:var(--bg-card);border-radius:var(--radius-sm);max-width:85%}.chat-msg-mine{align-self:flex-end;background:var(--accent-dim)}.chat-msg-header{display:flex;justify-content:space-between;gap:8px;margin-bottom:2px}.chat-msg-name{font-size:11px;font-weight:600;color:var(--accent)}.chat-msg-time{font-size:10px;color:var(--text-muted)}.chat-msg-text{font-size:13px;word-break:break-word}.chat-input-bar{display:flex;gap:8px;padding:8px 16px;background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}.chat-input{flex:1;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:20px;color:var(--text-primary);font-size:14px;outline:none}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);border:none;color:#000;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-send-btn:disabled{opacity:.3}.map-page-full{position:relative;display:flex;flex-direction:column;height:calc(100vh - var(--resource-height) - var(--nav-height) - var(--safe-bottom));height:calc(100dvh - var(--resource-height) - var(--nav-height) - var(--safe-bottom));overflow:hidden}.map-my-badge{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:15;display:flex;align-items:center;gap:6px;padding:6px 14px;background:#0f1423d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--success);border-radius:20px;font-size:12px;font-weight:600;color:var(--success);white-space:nowrap}.map-my-dot{font-size:14px}.map-info-panel{position:absolute;bottom:0;left:0;right:0;background:#0f1423f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border-light);border-radius:20px 20px 0 0;padding:16px 20px calc(8px + var(--safe-bottom));z-index:20;transform:translateY(100%);transition:transform .35s cubic-bezier(.23,1,.32,1)}.map-info-visible{transform:translateY(0)}.map-nearby-mini{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.map-nearby-title{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.map-nearby-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}.map-nearby-power{font-size:11px;color:var(--text-muted)}.globe-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);font-size:13px}.map-page{padding:8px 16px}.map-my-location{display:flex;align-items:center;gap:10px;padding:12px;background:var(--accent-dim);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius);margin-bottom:12px}.location-icon{font-size:20px}.location-zone{font-size:11px;color:var(--text-secondary)}.map-section{margin-bottom:16px}.map-section h3{font-size:14px;margin-bottom:8px}.sectors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sector-tile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;position:relative;text-align:center}.sector-tile:active{border-color:var(--accent)}.sector-mine{border-color:var(--accent);background:var(--accent-dim)}.sector-selected{border-color:var(--info)}.sector-locked{opacity:.4;cursor:default}.sector-bonus-icon{font-size:18px}.sector-tile-name{font-size:9px;color:var(--text-secondary)}.sector-mine-badge{position:absolute;top:2px;right:2px;font-size:10px}.sector-detail{padding:14px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius)}.sector-detail h3{margin-bottom:8px}.sector-detail-row{font-size:13px;color:var(--text-secondary);margin-bottom:4px}.nearby-list{display:flex;flex-direction:column;gap:4px}.nearby-player{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}.nearby-name{flex:1}.nearby-power{font-size:11px;color:var(--text-muted)}.nearby-zone{font-size:11px;color:var(--accent);font-weight:600}.notifications-page{padding:8px 16px}.notifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.notifications-list{display:flex;flex-direction:column;gap:6px}.notification-card{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);position:relative;cursor:pointer}.notification-unread{background:var(--bg-card-hover);border-color:var(--border-light)}.notification-icon{font-size:18px;flex-shrink:0}.notification-title{font-weight:600;font-size:13px}.notification-body{font-size:12px;color:var(--text-secondary);margin-top:2px}.notification-time{font-size:10px;color:var(--text-muted);margin-top:4px}.notification-dot{position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.transfer-page{padding:8px 16px}.transfer-balance{margin-bottom:12px}.balance-card{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,var(--bg-card),#1a1f35);border:1px solid var(--accent);border-radius:var(--radius)}.balance-icon{font-size:32px}.balance-label{font-size:12px;color:var(--text-muted)}.balance-value{font-size:24px;font-weight:700;color:var(--accent)}.transfer-tabs{display:flex;gap:6px;margin-bottom:12px}.transfer-tab{flex:1;padding:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;text-align:center}.transfer-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.transfer-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.transfer-info{margin-bottom:12px}.transfer-info p{font-size:13px}.transfer-rate{color:var(--accent);font-weight:600}.transfer-limit{color:var(--text-muted);font-size:12px}.transfer-input-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.transfer-input{flex:1}.transfer-preview{font-size:14px;font-weight:600;color:var(--accent);white-space:nowrap}.transfer-presets{display:flex;gap:6px;margin-bottom:12px}.transfer-history{display:flex;flex-direction:column;gap:6px}.transfer-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.transfer-dir-icon{font-size:16px}.transfer-row-info{flex:1}.transfer-row-amounts{font-size:13px;font-weight:500}.transfer-row-time{font-size:11px;color:var(--text-muted)}.transfer-status{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.status-completed{background:var(--success-dim);color:var(--success)}.status-pending{background:var(--accent-dim);color:var(--accent)}.status-failed{background:var(--danger-dim);color:var(--danger)}.crafting-page{padding:8px 16px}.craft-result{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:12px;font-size:13px}.craft-success{background:var(--success-dim);border:1px solid rgba(34,197,94,.3)}.craft-fail{background:var(--danger-dim);border:1px solid rgba(239,68,68,.3)}.craft-result-icon{font-size:18px}.pity-bonus{font-size:11px;color:var(--accent);margin-left:auto}.recipes-list{display:flex;flex-direction:column;gap:8px}.recipe-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.recipe-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid}.recipe-name{font-weight:600;font-size:14px}.recipe-rarity{font-size:11px;font-weight:700;text-transform:uppercase}.recipe-cost{display:flex;gap:8px;margin-bottom:6px}.recipe-cost-item{font-size:12px;color:var(--text-secondary)}.recipe-chance{font-size:12px;color:var(--text-muted);margin-bottom:8px}.welcome-screen{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 0;width:100%;max-width:400px}.welcome-moon{font-size:64px;margin-bottom:8px;animation:moonPulse 3s ease-in-out infinite}.welcome-title{font-size:28px;font-weight:800;letter-spacing:1px;color:var(--accent);margin-bottom:6px}.welcome-tagline{font-size:13px;color:var(--text-secondary);margin-bottom:28px;line-height:1.5;padding:0 8px}.welcome-features{width:100%;display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.welcome-feature{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);text-align:left;font-size:13px}.welcome-feature-icon{font-size:22px;flex-shrink:0}.welcome-disclaimer{width:100%;padding:14px 16px;background:#f59e0b0f;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius);margin-bottom:24px}.welcome-disclaimer p{font-size:11px;color:var(--text-muted);line-height:1.6}.welcome-accept-btn{width:100%}.sector-select-page{display:flex;flex-direction:column;align-items:center;padding:16px;height:100vh;height:100dvh;overflow:hidden;position:relative;background:radial-gradient(ellipse at center,#0d1225,#060810)}.sector-zoom-transition{justify-content:center;padding:0}.zoom-moon-anim{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoom-moon-circle{width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e8e0d0,#a8a090 50%,#6a6460);animation:zoomInMoon 1.2s cubic-bezier(.23,1,.32,1) forwards;box-shadow:0 0 60px #c8beaa66,0 0 120px #c8beaa26}@keyframes zoomInMoon{0%{transform:scale(1);opacity:.7}30%{opacity:1}to{transform:scale(12);opacity:0}}.zoom-stars{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(1px 1px at 20% 30%,white 100%,transparent),radial-gradient(1px 1px at 40% 70%,white 100%,transparent),radial-gradient(1px 1px at 60% 20%,white 100%,transparent),radial-gradient(1px 1px at 80% 50%,white 100%,transparent),radial-gradient(1px 1px at 15% 80%,rgba(255,255,255,.7) 100%,transparent),radial-gradient(1px 1px at 70% 90%,rgba(255,255,255,.5) 100%,transparent);animation:fadeOut 1.2s ease-out forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.sector-globe-active{padding:0;animation:fadeIn .6s ease-out}.sector-globe-header{text-align:center;padding:12px 16px 0;z-index:10;position:relative}.sector-globe-header h2{font-size:18px;margin-bottom:4px;color:var(--text-primary)}.sector-globe-header p{font-size:12px;color:var(--text-secondary)}.moon-globe-container{width:100%;flex:1;min-height:300px;position:relative;touch-action:none}.moon-globe-container canvas{touch-action:none}.moon-globe-tooltip{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#0f1423e6;border:1px solid var(--accent);border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;font-weight:600;color:var(--accent);pointer-events:none;white-space:nowrap;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sector-info-panel{position:absolute;bottom:0;left:0;right:0;background:#0f1423f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border-light);border-radius:20px 20px 0 0;padding:16px 20px calc(16px + var(--safe-bottom));z-index:20;transform:translateY(100%);transition:transform .35s cubic-bezier(.23,1,.32,1)}.sector-info-visible{transform:translateY(0)}.sector-info-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}.sector-info-icon{font-size:32px;flex-shrink:0}.sector-info-text{flex:1}.sector-info-name{font-weight:700;font-size:16px;margin-bottom:2px}.sector-info-bonus{font-size:13px;color:var(--success);font-weight:600}.sector-info-slots{font-size:12px;color:var(--text-muted);text-align:right;white-space:nowrap}.sector-confirm-btn{width:100%;margin-bottom:6px}.sector-note{text-align:center;font-size:11px;color:var(--text-muted)}.moon-map-2d{flex:1;display:flex;align-items:center;justify-content:center;padding:8px;width:100%;min-height:0}.moon-disk{position:relative;width:min(85vw,85vh,380px);height:min(85vw,85vh,380px);border-radius:50%;overflow:visible;flex-shrink:0}.moon-disk-img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:25% center;pointer-events:none;filter:brightness(1.1) contrast(1.05);box-shadow:0 0 40px #c8beaa26,0 0 80px #c8beaa14}.moon-disk-texture{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background-image:url(/moon-texture.jpg);background-size:200% 100%;background-position:25% center;background-repeat:repeat-x;filter:brightness(1.1) contrast(1.05);box-shadow:0 0 40px #c8beaa26,0 0 80px #c8beaa14;pointer-events:none}.moon-marker{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;z-index:5;background:none;border:none;padding:4px;-webkit-tap-highlight-color:transparent}.moon-marker-dot{width:14px;height:14px;border-radius:50%;background:var(--marker-color, #f59e0b);border:2px solid rgba(255,255,255,.8);box-shadow:0 0 8px var(--marker-color, #f59e0b),0 0 16px #00000080;transition:all .2s;flex-shrink:0}.moon-marker-label{font-size:8px;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.7);white-space:nowrap;pointer-events:none;max-width:70px;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.moon-marker-hovered .moon-marker-dot{transform:scale(1.3);box-shadow:0 0 12px var(--marker-color),0 0 24px var(--marker-color)}.moon-marker-selected .moon-marker-dot{width:18px;height:18px;border-width:3px;animation:markerPulse 1.5s ease-in-out infinite;box-shadow:0 0 16px var(--marker-color),0 0 32px var(--marker-color)}.moon-marker-selected .moon-marker-label{font-size:10px;color:var(--marker-color)}.moon-marker-mine .moon-marker-dot{width:16px;height:16px;border-color:#22c55e;animation:markerPulse 2s ease-in-out infinite}.moon-marker-mine .moon-marker-label{color:#22c55e;font-size:9px}@keyframes markerPulse{0%,to{box-shadow:0 0 16px var(--marker-color),0 0 32px var(--marker-color)}50%{box-shadow:0 0 24px var(--marker-color),0 0 48px var(--marker-color)}}.moon-marker-dimmed{transform:scale(.7)}.moon-marker-dimmed .moon-marker-dot{width:6px;height:6px;box-shadow:none}.moon-zoom-indicator{position:absolute;bottom:12px;right:12px;display:flex;flex-direction:column;gap:4px;z-index:15}.moon-zoom-btn{width:36px;height:28px;border:1px solid var(--border-light);border-radius:6px;background:#0f1423d9;color:var(--text-secondary);font-size:11px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-tap-highlight-color:transparent}.moon-zoom-btn-active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.sector-map-active{padding:0;animation:fadeIn .6s ease-out}.sector-select-cards{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 16px;padding-bottom:calc(24px + var(--safe-bottom))}.sector-header{text-align:center;margin-bottom:24px}.sector-moon-icon{font-size:48px;margin-bottom:12px}.sector-header h1{font-size:22px;margin-bottom:8px}.sector-subtitle{color:var(--text-secondary);font-size:13px;max-width:320px}.sector-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%;max-width:400px;margin-bottom:24px}.sector-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s;text-align:center}.sector-card:active{transform:scale(.97)}.sector-card-selected{border-color:var(--accent);background:var(--accent-dim)}.sector-card-icon{font-size:28px}.sector-card-name{font-weight:600;font-size:13px}.sector-card-bonus{font-size:11px;color:var(--success)}.sector-card-slots{font-size:10px;color:var(--text-muted)}.sector-confirm{text-align:center;width:100%;max-width:400px}.sector-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#0f1423cc;border:1px solid var(--border);border-radius:20px;padding:8px 20px;font-size:12px;color:var(--text-secondary);white-space:nowrap;z-index:10;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;text-align:center}.empty-icon{font-size:40px;opacity:.5}.empty-text{color:var(--text-muted);text-align:center;padding:20px}.timer{display:inline-flex;align-items:center;gap:4px;font-size:12px}.timer-label{color:var(--text-muted)}.timer-value{font-family:SF Mono,Monaco,Menlo,monospace;font-weight:700;color:var(--info)}
