:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.adjustments-tab{width:100%}.adjustments-tab h3{margin-top:0;margin-bottom:1rem;color:#1f2937;font-size:1.25rem;font-weight:600}.adjustments-tab h4{margin-top:1.5rem;margin-bottom:1rem;color:#374151;font-size:1.125rem;font-weight:600}.adjustments-tab h5{margin-top:1rem;margin-bottom:.75rem;color:#4b5563;font-size:1rem;font-weight:600}.adjustments-locked-notice{background-color:#fef3c7;border:1px solid #f59e0b;border-radius:6px;padding:1rem;margin-bottom:1.5rem}.adjustments-locked-notice p{margin:0 0 .5rem;color:#92400e;font-weight:500}.adjustments-locked-notice small{color:#78350f;font-size:.875rem}.current-adjustments-summary{background-color:#f0f9ff;border:1px solid #0ea5e9;border-radius:6px;padding:1rem;margin-bottom:1.5rem}.adjustments-overview{display:flex;flex-direction:column;gap:1rem}.current-builds-overview,.current-disbands-overview{background-color:#fff;border-radius:4px;padding:.75rem}.adjustment-list{list-style:none;padding:0;margin:0}.adjustment-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border:1px solid #e5e7eb;border-radius:4px;margin-bottom:.5rem;background-color:#f9fafb;justify-content:space-between;flex-wrap:wrap}.adjustment-item:last-child{margin-bottom:0}.adjustment-icon{font-size:1.25rem}.adjustment-details{flex:1;font-size:.875rem;color:#374151;min-width:0}.adjustment-status.submitted{color:#059669;font-weight:500;font-size:.875rem;white-space:nowrap}.builds-section{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:1rem;margin-bottom:1.5rem}.pending-builds{margin-bottom:1rem}.pending-build-form{display:flex;gap:.75rem;align-items:center;padding:.75rem;background-color:#fff;border:1px solid #d1d5db;border-radius:4px;margin-bottom:.5rem}.pending-build-form:last-child{margin-bottom:0}.pending-build-form select{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;background-color:#fff;color:#374151}.pending-build-form select option{color:#374151;background-color:#fff}.pending-build-form select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.add-build-button{background-color:#10b981;color:#fff;border:none;padding:.75rem 1rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.add-build-button:hover:not(:disabled){background-color:#059669}.add-build-button:disabled{opacity:.5;cursor:not-allowed}.remove-build-button{background-color:#ef4444;color:#fff;border:none;padding:.5rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.remove-build-button:hover:not(:disabled){background-color:#dc2626}.remove-build-button:disabled{opacity:.5;cursor:not-allowed}.disbands-section{background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:1rem;margin-bottom:1.5rem}.pending-disbands{margin-bottom:1rem}.pending-disband-list{list-style:none;padding:0;margin:0}.pending-disband-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background-color:#fff;border:1px solid #f87171;border-radius:4px;margin-bottom:.5rem}.pending-disband-item:last-child{margin-bottom:0}.available-troops{background-color:#fff;border-radius:4px;padding:.75rem}.disband-option{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border:1px solid #e5e7eb;border-radius:4px;margin-bottom:.5rem;background-color:#f9fafb}.disband-option:last-child{margin-bottom:0}.troop-info{font-size:.875rem;color:#374151}.select-disband-button{background-color:#f59e0b;color:#fff;border:none;padding:.5rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.select-disband-button:hover:not(:disabled){background-color:#d97706}.select-disband-button:disabled{opacity:.5;cursor:not-allowed}.remove-disband-button{background-color:#6b7280;color:#fff;border:none;padding:.5rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.remove-disband-button:hover:not(:disabled){background-color:#4b5563}.remove-disband-button:disabled{opacity:.5;cursor:not-allowed}.submit-adjustments-section{background-color:#f0f9ff;border:2px solid #3b82f6;border-radius:6px;padding:1.5rem;text-align:center;margin-bottom:1.5rem}.submit-all-adjustments-button{background-color:#3b82f6;color:#fff;border:none;padding:1rem 2rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin-bottom:.5rem}.submit-all-adjustments-button:hover:not(:disabled){background-color:#2563eb}.submit-all-adjustments-button:disabled{opacity:.5;cursor:not-allowed}.submit-help-text{margin:0;font-size:.875rem;color:#6b7280}.no-adjustments{background-color:#f0fdf4;border:1px solid #22c55e;border-radius:6px;padding:1rem;text-align:center;color:#15803d}.adjustments-complete{background-color:#f0fdf4;border:2px solid #22c55e;border-radius:6px;padding:1rem;text-align:center;color:#15803d;font-weight:500}.adjustments-complete p{margin:0;font-size:1rem}.player-adjustments-section{margin-top:1rem}.player-adjustments-section h3{color:#1f2937;margin-bottom:.5rem}.player-adjustments-section p{color:#6b7280;margin-bottom:1.5rem;line-height:1.5}@media (max-width: 768px){.pending-build-form{flex-direction:column;align-items:stretch}.pending-build-form select{margin-bottom:.5rem}.disband-option,.pending-disband-item{flex-direction:column;gap:.5rem;align-items:stretch;text-align:center}.submit-adjustments-section{padding:1rem}.submit-all-adjustments-button{width:100%;padding:.75rem 1rem}}.pending-builds,.pending-disbands{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.adjustment-actions{display:flex;gap:.5rem;margin-left:auto}.edit-adjustment-button{background-color:#3b82f6;color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.edit-adjustment-button:hover:not(:disabled){background-color:#2563eb}.edit-adjustment-button:disabled{opacity:.5;cursor:not-allowed}.delete-adjustment-button{background-color:#ef4444;color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.delete-adjustment-button:hover:not(:disabled){background-color:#dc2626}.delete-adjustment-button:disabled{opacity:.5;cursor:not-allowed}.cancel-edit-button{background-color:#6b7280;color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.cancel-edit-button:hover:not(:disabled){background-color:#4b5563}.cancel-edit-button:disabled{opacity:.5;cursor:not-allowed}.edit-indicator{font-size:.75rem;color:#3b82f6;font-weight:500;background-color:#eff6ff;padding:.25rem .5rem;border-radius:4px;border:1px solid #bfdbfe;white-space:nowrap}.pending-build-form.editing-existing{background-color:#eff6ff;border-color:#3b82f6}.pending-build-form.new-build{background-color:#f0fdf4;border-color:#10b981}.pending-build-form select:focus,.add-build-button:focus,.remove-build-button:focus,.select-disband-button:focus,.remove-disband-button:focus,.submit-all-adjustments-button:focus,.edit-adjustment-button:focus,.delete-adjustment-button:focus,.cancel-edit-button:focus{outline:2px solid #3b82f6;outline-offset:2px}.game-tabs{width:100%;margin-top:1rem}.tabs-header{display:flex;border-bottom:2px solid #e5e7eb;background-color:#f9fafb;border-radius:8px 8px 0 0;overflow-x:auto;padding:0 .5rem}.tab-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:none;background:none;cursor:pointer;font-size:.875rem;font-weight:500;color:#6b7280;border-bottom:3px solid transparent;transition:all .2s ease;white-space:nowrap;min-width:fit-content}.tab-button:hover{color:#374151;background-color:#f3f4f6}.tab-button.active{color:#3b82f6;border-bottom-color:#3b82f6;background-color:#fff}.tab-icon{font-size:1rem}.tab-label{font-weight:inherit}.tab-badge{background-color:#ef4444;color:#fff;font-size:.75rem;font-weight:600;padding:.125rem .375rem;border-radius:9999px;min-width:1.25rem;text-align:center}.tab-button.active .tab-badge{background-color:#3b82f6}.tab-button:not(.active) .tab-badge{background-color:#6b7280}.tabs-content{background-color:#fff;border:1px solid #e5e7eb;border-top:none;border-radius:0 0 8px 8px;padding:1rem;min-height:400px}h3{color:#333}.orders-tab,.retreats-tab,.adjustments-tab,.game-master-tab{width:100%}.orders-tab h3,.retreats-tab h3,.adjustments-tab h3,.game-master-tab h3{margin-top:0;margin-bottom:1rem;color:#1f2937;font-size:1.25rem;font-weight:600}.game-master-tab .start-game-section,.game-master-tab .phase-controls-section{margin-bottom:2rem;padding:1rem;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.game-master-tab h4{margin-top:0;margin-bottom:1rem;color:#374151;font-size:1.125rem;font-weight:600}.phase-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:.5rem}.deadline-controls,.set-deadline{display:flex;gap:.5rem;align-items:center}.deadline-input{width:80px;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem}.start-game-button,.lock-phase-button,.resolve-phase-button,.execute-phase-button,.set-deadline-button,.clear-deadline-button{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.start-game-button{background-color:#10b981;color:#fff}.start-game-button:hover:not(:disabled){background-color:#059669}.lock-phase-button{background-color:#f59e0b;color:#fff}.lock-phase-button:hover:not(:disabled){background-color:#d97706}.resolve-phase-button,.execute-phase-button{background-color:#3b82f6;color:#fff}.resolve-phase-button:hover:not(:disabled),.execute-phase-button:hover:not(:disabled){background-color:#2563eb}.set-deadline-button,.clear-deadline-button{background-color:#6b7280;color:#fff}.set-deadline-button:hover:not(:disabled),.clear-deadline-button:hover:not(:disabled){background-color:#4b5563}.start-game-button:disabled,.lock-phase-button:disabled,.resolve-phase-button:disabled,.execute-phase-button:disabled,.set-deadline-button:disabled,.clear-deadline-button:disabled{opacity:.5;cursor:not-allowed}.start-game-conditions,.lock-phase-description,.resolve-phase-description,.execute-phase-description{margin-top:.5rem;font-size:.875rem;color:#6b7280;line-height:1.4}.error-message{margin-top:.5rem;padding:.5rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;font-size:.875rem}.tabs-content{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-button{position:relative;overflow:hidden}.tab-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.tab-button:hover:before{left:100%}.tab-button.active{box-shadow:0 2px 4px #3b82f61a}@media (max-width: 768px){.tabs-header{padding:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tabs-header::-webkit-scrollbar{display:none}.tab-button{padding:.5rem .75rem;font-size:.8rem;min-width:60px}.tab-label{display:none}.tab-icon{font-size:1.2rem}.phase-controls{flex-direction:column;align-items:stretch;gap:.75rem}.deadline-controls{justify-content:center}.tabs-content{padding:1rem;min-height:300px}}@media (max-width: 480px){.tab-button{padding:.4rem .5rem;min-width:50px}.tab-badge{font-size:.7rem;padding:.1rem .3rem}.tabs-content{padding:.5rem}}.retreats-locked-notice,.adjustments-locked-notice{padding:.75rem;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:4px;margin-bottom:1rem}.retreats-locked-notice p,.adjustments-locked-notice p{margin:0;color:#92400e;font-weight:500}.game-info-tab .info-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.game-info-tab h4{margin:0 0 1rem;color:#1e293b;font-size:1.125rem;font-weight:600}.game-id-display{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.game-id{background:#1e293b;color:#f1f5f9;padding:.5rem .75rem;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;letter-spacing:1px}.copy-button{background:#3b82f6;color:#fff;border:none;padding:.5rem;border-radius:4px;cursor:pointer;font-size:1rem}.copy-button:hover{background:#2563eb}.game-id-description{color:#64748b;font-size:.875rem;margin:0}.game-status{display:flex;align-items:center;gap:.75rem}.status-indicator{font-size:1.5rem}.status-details{display:flex;flex-direction:column}.status-text{font-weight:600;color:#1e293b}.status-time{color:#64748b;font-size:.875rem}.game-settings{display:flex;flex-direction:column;gap:.5rem}.setting-item{display:flex;justify-content:space-between}.setting-label{color:#64748b}.setting-value{font-weight:600;color:#1e293b}.players-tab .loading-notice{display:flex;align-items:center;gap:.5rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;padding:.75rem;margin-bottom:1rem;color:#92400e}.loading-indicator{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.player-group{margin-bottom:2rem}.player-group h4{margin:0 0 1rem;color:#1e293b;font-size:1.125rem;font-weight:600;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.players-grid,.empty-slots,.spectators-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.players-grid+.empty-slots{margin-top:1rem}.player-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;transition:all .2s ease}.player-card:hover{box-shadow:0 4px 12px #0000001a;border-color:#3b82f6}.game-master-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.game-master-card .player-name{color:#fff}.game-master-card .player-role{color:#fffc}.spectator-card{background:#f8fafc;border-color:#cbd5e1}.empty-slot{background:#f8fafc;border:2px dashed #cbd5e1;opacity:.7}.player-avatar{font-size:2rem;min-width:3rem;text-align:center}.player-details{flex:1;display:flex;flex-direction:column;gap:.25rem}.player-name{font-weight:600;color:inherit}.player-role{font-size:.875rem;color:#666;opacity:.7}.faction-select{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;background:#fff}.faction-select.faction-assigned{border-color:#10b981;background-color:#f0fdf4}.faction-select.faction-unassigned{border-color:#f59e0b;background-color:#fffbeb}.faction-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.faction-badge.assigned{background:#dcfce7;color:#166534}.faction-badge.unassigned{background:#fef3c7;color:#92400e}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-align:center}.status-badge.gm{background:#8b5cf6;color:#fff}.status-badge.spectator{background:#64748b;color:#fff}.status-badge.empty{background:#f3f4f6;color:#6b7280}.add-bot-section{margin-top:1rem;display:flex;justify-content:center}.add-bot-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.add-bot-button:hover:not(:disabled){background:#2563eb}.add-bot-button:disabled{background:#9ca3af;cursor:not-allowed}.bot-icon{font-size:1rem}.empty-state{text-align:center;padding:2rem;color:#6b7280}.empty-icon{font-size:3rem;display:block;margin-bottom:.5rem}.game-requirements{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;padding:1rem;margin-top:1rem}.requirements-list{display:flex;flex-direction:column;gap:.5rem}.requirement{display:flex;align-items:center;gap:.5rem}.requirement.met{color:#166534}.requirement.unmet{color:#dc2626}.requirement-icon{font-size:1rem}.token-tab .info-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.token-tab h4{margin:0 0 1rem;color:#1e293b;font-size:1.125rem;font-weight:600}.user-details{display:flex;flex-direction:column;gap:.5rem}.user-item{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #f1f5f9}@media (max-width: 768px){.user-item{flex-direction:column;align-items:flex-start}}.user-label{color:#64748b;font-weight:500}.user-value{color:#1e293b;font-weight:600}.token-status{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding:.75rem;background:#fff;border-radius:6px;border:1px solid #e2e8f0}.status-indicator{display:flex;align-items:center;gap:.5rem}.status-indicator.active .status-dot{background:#10b981}.status-indicator.expired .status-dot{background:#ef4444}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{font-weight:600}.expiry-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.expiry-label{font-size:.75rem;color:#64748b}.expiry-time{font-weight:600;color:#f59e0b}.token-input-group{display:flex;gap:.5rem;align-items:center}.token-input{flex:1;padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;background:#f9fafb}.toggle-visibility-button,.token-actions button{background:#6b7280;color:#fff;border:none;padding:.5rem;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background-color .2s ease}.toggle-visibility-button:hover{background:#4b5563}.token-details{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.detail-item{display:flex;justify-content:space-between;margin-bottom:.5rem}.detail-label{color:#64748b}.detail-value{color:#1e293b;font-weight:600}.no-token{text-align:center;padding:2rem;color:#6b7280}.no-token-icon{font-size:3rem;display:block;margin-bottom:.5rem}.token-actions{display:flex;gap:1rem;margin-bottom:1rem}.refresh-token-button{background:#3b82f6;color:#fff}.refresh-token-button:hover:not(:disabled){background:#2563eb}.refresh-token-button:disabled{background:#9ca3af;cursor:not-allowed}.logout-button{background:#ef4444;color:#fff}.logout-button:hover{background:#dc2626}.action-descriptions{margin-top:1rem}.action-description{font-size:.875rem;color:#64748b;margin-bottom:.5rem}.security-notice{background:#fef2f2;border-color:#fecaca}.security-content{color:#7f1d1d}.security-tips{margin:.5rem 0 0 1rem;color:#991b1b}.security-tips li{margin-bottom:.25rem}.copy-notification{position:fixed;bottom:1rem;right:1rem;background:#10b981;color:#fff;padding:.75rem 1rem;border-radius:6px;font-weight:600;box-shadow:0 10px 25px #0000001a;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.phase-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.phase-details{display:flex;align-items:center;gap:.5rem}.phase-year{font-size:1.25rem;font-weight:700;color:#1e293b}.phase-season{font-size:1.125rem;font-weight:600;color:#3b82f6;text-transform:capitalize}.phase-locked{font-size:.875rem;color:#ef4444;font-weight:600}.phase-deadline{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;background:#fef3c7;padding:.5rem .75rem;border-radius:6px;border:1px solid #f59e0b}.deadline-label{font-size:.75rem;color:#92400e;font-weight:500}.deadline-time{font-size:1.125rem;font-weight:700;color:#92400e;font-family:Monaco,Menlo,Ubuntu Mono,monospace}@media (max-width: 768px){.players-grid,.empty-slots,.spectators-list{grid-template-columns:1fr}.player-card{padding:.4rem}.token-input-group{flex-direction:column;align-items:stretch}.token-actions{flex-direction:column}.token-status{flex-direction:column;align-items:stretch;gap:.5rem}.game-id-display{flex-direction:column;align-items:stretch}.setting-item{flex-direction:column;gap:.25rem}}.player-actions{display:flex;gap:.5rem;margin-top:.5rem}.promote-spectator-button{background:#059669;color:#fff;border:none;padding:.375rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.375rem;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.promote-spectator-button:hover:not(:disabled){background:#047857;transform:translateY(-1px)}.promote-spectator-button:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.promote-icon{font-size:.875rem}.spectator-card{display:flex;flex-direction:column;gap:0}.spectator-main-content{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;width:100%}.spectator-card .player-actions{border-top:1px solid #e5e7eb;padding-top:.75rem;margin-top:.75rem;width:100%}@media (max-width: 768px){.player-actions{flex-direction:column;gap:.375rem}.promote-spectator-button{font-size:.8rem;padding:.3rem .6rem}.promote-controls{flex-direction:column;gap:.5rem}.target-player-select{font-size:.8rem}.spectator-main-content{grid-template-columns:auto 1fr;gap:.5rem}.spectator-card .player-status{grid-column:1 / -1;margin-top:.5rem;justify-self:start}}.promote-spectator-section{width:100%}.promote-controls{display:flex;gap:.5rem;align-items:center}.target-player-select{flex:1;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff;color:#111827;cursor:pointer;transition:border-color .2s ease}.target-player-select:hover:not(:disabled){border-color:#9ca3af}.target-player-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.target-player-select:disabled{background:#f9fafb;cursor:not-allowed;color:#6b7280}.target-player-select option{color:#111827;background:#fff;padding:.5rem}.promote-info{margin-bottom:.75rem}.promote-description{font-size:.75rem;color:#6b7280;font-style:italic;line-height:1.4;display:block}#root{width:100%;max-width:1280px;margin:0 auto;text-align:center}.app{display:flex;align-items:center;justify-content:center}.app.loading{background-color:#f8f9fa}.loading-container{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.loading-container h2{color:#333;margin-bottom:1rem}.loading-container p{color:#666;margin:0}.current-adjustments-summary{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;padding:1rem;margin-bottom:2rem;box-shadow:0 2px 4px #0000001a}.current-adjustments-summary h4{color:#2c3e50;margin-bottom:1rem;font-size:1.2rem;border-bottom:2px solid #3498db;padding-bottom:.5rem}.adjustments-overview{display:grid;gap:1rem}.current-builds-overview,.current-disbands-overview{background:#fff;border-radius:6px;padding:1rem;border-left:4px solid #27ae60}.current-disbands-overview{border-left-color:#e74c3c}.current-builds-overview h5,.current-disbands-overview h5{color:#2c3e50;margin-bottom:.75rem;font-size:1rem}.adjustment-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.adjustment-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8f9fa;border-radius:4px;border:1px solid #dee2e6}.build-item{border-left:3px solid #27ae60}.disband-item{border-left:3px solid #e74c3c}.adjustment-icon{font-size:1.2rem;min-width:24px;text-align:center}.adjustment-details{flex-grow:1;text-align:left;color:#2c3e50}.adjustment-status.submitted{color:#27ae60;font-weight:600;font-size:.9rem}.troop-adjustment-form{max-width:800px;margin:0 auto}.adjustments-locked-notice{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:1rem;margin-bottom:1.5rem;color:#856404}.builds-section,.disbands-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.no-adjustments{background:#d1ecf1;border:1px solid #bee5eb;border-radius:6px;padding:1rem;color:#0c5460;text-align:center}.registration-form{max-width:400px;width:100%;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.registration-form h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.form-group input{width:100%;padding:.75rem;border:2px solid #e1e5e9;border-radius:4px;font-size:1rem;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#007bff}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed}.registration-form button[type=submit]{width:100%;padding:.75rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.registration-form button[type=submit]:hover:not(:disabled){background-color:#0056b3}.registration-form button[type=submit]:disabled{background-color:#6c757d;cursor:not-allowed}.user-dashboard{width:100%;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;text-align:center}.user-dashboard.loading{display:flex;align-items:center;justify-content:center;min-height:200px}.user-dashboard.error{color:#dc3545}.user-info h1{color:#333;margin-bottom:1rem;font-size:2rem}.user-details{color:#666;margin-bottom:2rem;font-size:1.1rem}.user-actions{display:flex;justify-content:center;gap:1rem}.logout-button{padding:.75rem 1.5rem;background-color:#dc3545;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s ease}.logout-button:hover{background-color:#c82333}.error-message{color:#dc3545;font-size:.875rem;margin-top:.5rem}.registration-form .error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;padding:.75rem;margin-top:1rem}.order-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;padding:.75rem;margin-top:1rem;display:flex;align-items:center;gap:.5rem}.order-error .error-icon{font-size:1rem;flex-shrink:0}.order-error .error-content{color:#721c24;font-size:.875rem;margin:0;line-height:1.4}.order-error .error-content strong{font-weight:600}@media (max-width: 768px){.app,.registration-form{padding:1rem}.user-info h1{font-size:1.5rem}}.app{transition:all .3s ease}.registration-form,.user-dashboard,.loading-container{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.user-dashboard{max-width:800px;width:100%;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;text-align:left}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #e1e5e9}.dashboard-header .user-info{text-align:left}.dashboard-header .user-info h1{margin-bottom:.5rem}.dashboard-header .user-details{margin-bottom:0}.header-actions{display:flex;gap:1rem}.dashboard-content{padding:.5rem}.game-lobby{max-width:500px;margin:0 auto}.lobby-header{text-align:center;margin-bottom:2rem}.lobby-header h2{color:#333;margin-bottom:.5rem}.lobby-header p{color:#666;margin:0}.lobby-actions{display:flex;flex-direction:column;gap:2rem}.create-game-section{text-align:center}.divider{text-align:center;position:relative;margin:1rem 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:#e1e5e9}.divider span{background:#fff;padding:0 1rem;color:#666;font-size:.875rem}.join-game-section{text-align:center}.join-game-form{max-width:300px;margin:0 auto;text-align:left}.form-actions{display:flex;gap:1rem;margin-top:1rem}.primary-button{padding:.75rem 1.5rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s ease;font-weight:500}.primary-button:hover:not(:disabled){background-color:#0056b3}.primary-button:disabled{background-color:#6c757d;cursor:not-allowed}.secondary-button{padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s ease;font-weight:500}.secondary-button:hover:not(:disabled){background-color:#545b62}.secondary-button:disabled{background-color:#adb5bd;cursor:not-allowed}.game-id-input{width:100%;padding:.75rem;border:2px solid #e1e5e9;border-radius:4px;font-size:1rem;transition:border-color .2s ease;box-sizing:border-box}.game-id-input:focus{outline:none;border-color:#007bff}.game-dashboard{margin:0 auto}.game-dashboard.loading,.game-dashboard.error,.game-dashboard.no-game{text-align:center;padding:2rem}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e1e5e9}.game-header h2{color:#333;margin:0}.leave-game-button{padding:.5rem 1rem;background-color:#dc3545;color:#fff;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s ease}.leave-game-button:hover{background-color:#c82333}.game-info{display:flex;flex-direction:column;gap:2rem}.game-id-section{text-align:center;padding:1rem;background-color:#f8f9fa;border-radius:8px}.game-id-section h3{color:#333;margin-bottom:1rem}.game-id{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:1.25rem;font-weight:700;color:#007bff;background-color:#fff;padding:.75rem 1rem;border-radius:4px;border:2px solid #e1e5e9;margin-bottom:.5rem;display:inline-block}.game-id-section small{color:#666;font-size:.875rem}.players-section h3{color:#333;margin-bottom:1rem}.players-list{display:flex;flex-direction:column;gap:.75rem}.player-info{display:flex;align-items:center;gap:1rem}.player-name{font-weight:500;color:#333}.player-kind{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.player-kind.player{background-color:#d4edda;color:#155724}.player-kind.game-master{background-color:#fff3cd;color:#856404}.player-kind.spectator{background-color:#d1ecf1;color:#0c5460}.player-faction{font-size:.875rem;color:#666;font-style:italic}.player-faction-section{display:flex;align-items:center;min-height:1.5rem}.faction-select{padding:.375rem .75rem;border:1px solid #ced4da;border-radius:4px;font-size:.875rem;background-color:#fff;color:#333;cursor:pointer;transition:border-color .25s ease-in-out,box-shadow .25s ease-in-out,background-color .25s ease-in-out,font-weight .15s ease-in-out,color .25s ease-in-out;min-width:140px}.faction-select.faction-assigned{background-color:#e7f3ff;border-color:#007bff;font-weight:500;color:#0d47a1;box-shadow:0 0 0 1px #007bff1a}.faction-select:focus{outline:none;border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40}.faction-select:disabled{background-color:#e9ecef;opacity:.65;cursor:not-allowed}.faction-select option{padding:.375rem .75rem}.assignment-loading{font-size:.75rem;color:#007bff;font-weight:400;font-style:italic;opacity:.8}.game-actions{margin-top:2rem;text-align:center;display:flex;flex-direction:column;gap:1rem;align-items:center}.back-button{padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s ease}.back-button:hover{background-color:#545b62}.start-game-button{padding:.75rem 1.5rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin-bottom:.5rem}.start-game-button:hover:not(:disabled){background-color:#218838}.start-game-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.error-message{color:#dc3545;margin:.5rem 0 0;font-size:.9rem;text-align:center}.start-game-section{display:flex;flex-direction:column;align-items:center;gap:.5rem}.start-game-conditions{color:#6c757d;font-size:.85rem;margin:0;text-align:center;max-width:300px}.lock-phase-button{padding:.75rem 1.5rem;background-color:#ffc107;color:#212529;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin-bottom:.5rem}.lock-phase-button:hover:not(:disabled){background-color:#e0a800}.lock-phase-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.lock-phase-section{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1rem}.phase-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center}.deadline-controls,.set-deadline{display:flex;align-items:center;gap:.5rem}.deadline-input{width:80px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.set-deadline-button,.clear-deadline-button{padding:.5rem 1rem;background-color:#17a2b8;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.set-deadline-button:hover:not(:disabled),.clear-deadline-button:hover:not(:disabled){background-color:#138496}.set-deadline-button:disabled,.clear-deadline-button:disabled{background-color:#6c757d;cursor:not-allowed}.clear-deadline-button{background-color:#dc3545}.clear-deadline-button:hover:not(:disabled){background-color:#c82333}.phase-deadline-countdown{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;padding:.75rem;margin-bottom:1rem;text-align:center}.deadline-message{margin:0;color:#856404;font-weight:600;font-size:1rem}.lock-phase-description{color:#6c757d;font-size:.85rem;margin:0;text-align:center;max-width:300px}.game-status{margin-top:.75rem;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:.25rem}.game-status.started{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.game-status small{font-weight:400;font-size:.75rem;opacity:.8}.current-phase-section{text-align:center;padding:1rem;background-color:#e8f5e8;border-radius:8px;border:1px solid #c3e6cb}.current-phase-section h3{color:#155724;margin-bottom:1rem;font-size:1.1rem;font-weight:600}.phase-info{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap}.phase-label{font-size:1.5rem;font-weight:700;color:#155724;background-color:#fff;padding:.5rem 1rem;border-radius:6px;border:2px solid #c3e6cb;min-width:80px;text-align:center}.phase-season{font-size:1.25rem;font-weight:600;color:#155724;background-color:#fffc;padding:.5rem 1rem;border-radius:6px;border:1px solid #c3e6cb;text-transform:capitalize}.token-section{padding:1rem;background-color:#f8f9fa;border-bottom:1px solid #e1e5e9}.token-status{padding:20px;border:1px solid #ddd;border-radius:8px;max-width:400px;font-family:Arial,sans-serif;margin:0 auto}.token-status.not-authenticated{background-color:#fef2f2;border-color:#fca5a5;color:#dc2626}.token-status .user-info{margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e5e7eb}.token-status .user-info h3{margin:0 0 5px;color:#1f2937}.token-status .user-info p{margin:0;color:#6b7280;font-size:14px}.token-status .token-info h4{margin:0 0 15px;color:#374151}.token-status .status-row{display:flex;align-items:center;gap:8px;margin-bottom:15px}.token-status .status-indicator{width:12px;height:12px;border-radius:50%;display:inline-block}.token-status .status-indicator.green{background-color:#10b981}.token-status .status-indicator.red{background-color:#ef4444}.token-status .status-text{font-weight:600;color:#374151}.token-status .expiry-info p{margin:5px 0;font-size:14px;color:#6b7280}.token-status .expired-warning{background-color:#fef3c7;border:1px solid #f59e0b;border-radius:4px;padding:10px;margin:15px 0;font-size:14px;color:#92400e}.token-status .token-actions{margin-top:20px;padding-top:15px;border-top:1px solid #e5e7eb}.token-status .refresh-button{background-color:#3b82f6;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s}.token-status .refresh-button:hover:not(:disabled){background-color:#2563eb}.token-status .refresh-button:disabled{background-color:#9ca3af;cursor:not-allowed}@media (max-width: 768px){.dashboard-header{flex-direction:column;gap:1rem;text-align:center}.dashboard-header .user-info{text-align:center}.game-header{flex-direction:column;gap:1rem;text-align:center}.player-card{align-items:flex-start;gap:.5rem}.form-actions{flex-direction:column}.game-info{gap:1.5rem}.current-phase-section{padding:1rem}.phase-info{gap:.75rem}.phase-year{font-size:1.25rem;min-width:60px}.phase-season{font-size:1.1rem}.token-section{padding:1rem}}.troops-section{padding:1rem;background-color:#f0f8ff;border-radius:8px;border:1px solid #b3d9ff}.troops-section h3{color:#0056b3;margin-bottom:1.5rem;font-size:1.1rem;font-weight:600;text-align:center}.troops-by-player{display:flex;flex-direction:column;gap:1.5rem}.player-troops{background-color:#fff;border-radius:6px;border:1px solid #d1ecf1;overflow:hidden}.player-troops-header{background-color:#e8f4f8;color:#0c5460;margin:0;padding:.75rem 1rem;font-size:1rem;font-weight:600;border-bottom:1px solid #d1ecf1}.troops-list{padding:1rem;display:flex;flex-direction:column;gap:.75rem}.troop-card{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background-color:#f8f9fa;border-radius:4px;border:1px solid #e1e5e9;transition:box-shadow .2s ease}.troop-card:hover{box-shadow:0 2px 4px #0000001a}.troop-kind{display:flex;align-items:center;gap:.5rem;font-weight:600;min-width:80px}.troop-kind.army{color:#8b4513}.troop-kind.fleet{color:#1e3a8a}.troop-location{color:#495057;font-weight:500;font-size:.95rem}@media (max-width: 768px){.troops-section{padding:1rem 0}.troops-list{padding:.75rem}.troop-card{padding:.5rem .75rem;flex-direction:column;align-items:flex-start;gap:.5rem}.troop-kind{min-width:auto}}.phase-locked{color:#ff6b6b;font-weight:500}.loading-orders{color:#666;font-style:italic}.your-troops{color:#2196f3;font-weight:500}.troop-card-with-orders{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1rem;margin-bottom:.75rem}.troop-order-form{display:flex;flex-direction:column;gap:1rem}.troop-order-form .troop-info{display:flex;align-items:center;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e9ecef;font-weight:500}.order-form{display:flex;flex-direction:column;gap:.75rem}.order-form .form-group{display:flex;flex-direction:column;gap:.25rem}.order-form .form-group label{font-weight:500;color:#333;font-size:.875rem}.order-form .form-group .form-help{font-size:.75rem;color:#6c757d;font-style:italic;margin-top:.25rem;line-height:1.3}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.order-type-select,.target-location-select,.target-troop-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.875rem}.target-location-select optgroup{font-weight:700;font-style:normal;background-color:#f8f9fa;color:#495057;padding:.25rem 0}.target-location-select option{font-weight:400;padding:.25rem .5rem}.target-troop-select optgroup{font-weight:700;font-style:normal;background-color:#f8f9fa;color:#495057;padding:.25rem 0}.target-troop-select option{font-weight:400;padding:.25rem .5rem}.order-type-select:focus,.target-location-select:focus,.target-troop-select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a}.form-actions{display:flex;justify-content:flex-start}.submit-order-button{padding:.5rem 1rem;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500}.submit-order-button:hover:not(:disabled){background:#218838}.submit-order-button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.read-only-order{padding:.75rem;background:#f8f9fa;border-radius:4px;border-left:4px solid #17a2b8}.order-display-header{margin-bottom:.5rem;color:#495057;font-size:.875rem}.current-order{display:flex;flex-direction:column;gap:.5rem}.order-main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.order-outcome-wrapper{margin-top:.25rem}.order-meta{margin-top:.25rem;padding-top:.25rem;border-top:1px solid #dee2e6}.order-timestamp{color:#6c757d;font-size:.75rem}.order-kind{background:#17a2b8;color:#fff;padding:.25rem .5rem;border-radius:3px;font-size:.75rem;font-weight:500}.order-target{color:#495057;font-weight:500}.order-outcome{padding:.25rem .5rem;border-radius:3px;font-size:.75rem;font-weight:500}.order-outcome.success{background:#d4edda;color:#155724}.order-outcome.fail{background:#dc3545;color:#fff;font-weight:600}.order-outcome.pending{background:#ffc107;color:#212529;font-weight:600}.order-outcome.dislodged{background:#fd7e14;color:#fff;font-weight:600}.order-outcome.retreat{background:#0dcaf0;color:#212529;font-weight:600}.order-outcome.destroyed{background:#721c24;color:#fff;font-weight:600}.no-order{text-align:center;color:#6c757d;font-style:italic}@media (max-width: 768px){.troop-card-with-orders{padding:.75rem;margin-bottom:.5rem}.troop-order-form .troop-info{flex-direction:column;align-items:flex-start;gap:.5rem}.current-order{flex-direction:column;align-items:flex-start;gap:.25rem}}.order-count{color:#6c757d;font-weight:500;font-size:.875rem;padding:.25rem .5rem;background:#e9ecef;border-radius:12px;margin-left:.5rem;transition:background-color .2s ease;white-space:nowrap}.order-count-complete{background:#d4edda;color:#155724;font-weight:600}.order-count-no-troops{background:#fff3cd;color:#856404;font-style:italic}.loading-order-status,.loading-all-orders{color:#888;font-style:italic;font-size:.9em}.player-retreats-section{background-color:#fff3cd;border:2px solid #f39c12;border-radius:8px;padding:20px;margin:16px 0}.player-retreats-section h3{color:#b7950b;margin:0 0 12px;font-size:1.2em;font-weight:700}.player-retreats-section p{color:#b7950b;margin:0 0 16px}.player-adjustments-section{background-color:#e8f4fd;border:2px solid #007bff;border-radius:8px;padding:20px;margin:16px 0;color:#004085}.player-adjustments-section h3{color:#004085;margin:0 0 12px;font-size:1.2em;font-weight:700}.player-adjustments-section p{color:#004085;margin:0 0 16px}.player-adjustments-section .troop-adjustment-form{color:#333}.player-adjustments-section .troop-adjustment-form h4{color:#004085;margin-bottom:1rem}.player-adjustments-section .builds-section,.player-adjustments-section .disbands-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem;margin-bottom:1.5rem;color:#333}.player-adjustments-section .builds-section h4,.player-adjustments-section .disbands-section h4{color:#004085;margin-bottom:1rem}.player-adjustments-section .no-adjustments{background:#d1ecf1;border:1px solid #bee5eb;border-radius:6px;padding:1rem;color:#0c5460;text-align:center}.retreats-locked-notice{background-color:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;padding:12px;margin-bottom:16px}.retreats-locked-notice p{color:#0c5460;margin:0}.dislodged-troops{display:flex;flex-direction:column;gap:12px}.retreat-status{margin-top:8px;font-size:.9em}.retreat-status .no-retreat{color:#e74c3c;font-style:italic}.retreat-status .has-retreat{color:#27ae60;font-weight:500}.retreat-status .outcome{margin-left:8px;padding:2px 6px;border-radius:8px;font-size:.8em;font-weight:700}.retreat-status .outcome.retreat{background-color:#d5f4e6;color:#27ae60}.retreat-status .outcome.disbanded{background-color:#fadbd8;color:#e74c3c}@media (max-width: 768px){.player-retreats-section,.player-adjustments-section{padding:16px;margin:12px 0}.player-adjustments-section .builds-section,.player-adjustments-section .disbands-section{padding:1rem;margin-bottom:1rem}.dislodged-troops{gap:8px}}.troop-retreat-form{border:2px solid #e74c3c;border-radius:8px;padding:16px;margin:8px 0;background-color:#fdf2f2}.troop-retreat-form .troop-info h4{margin:0 0 8px;color:#c0392b;font-weight:700}.troop-retreat-form .dislodged-notice{margin:0 0 16px;color:#e74c3c;font-weight:500}.troop-retreat-form .existing-retreat{background-color:#fff;padding:12px;border-radius:4px;margin-bottom:16px;border-left:4px solid #3498db}.troop-retreat-form .existing-retreat p{margin:0}.troop-retreat-form .outcome{margin-left:8px;padding:2px 8px;border-radius:12px;font-size:.8em;font-weight:700}.troop-retreat-form .outcome.retreat{background-color:#d5f4e6;color:#27ae60}.troop-retreat-form .outcome.disbanded{background-color:#fadbd8;color:#e74c3c}.troop-retreat-form .retreat-form{background-color:#fff;padding:16px;border-radius:4px}.troop-retreat-form .form-group:last-of-type{margin-bottom:0}.troop-retreat-form .form-group{margin-bottom:16px}.troop-retreat-form .form-group label{display:block;margin-bottom:4px;font-weight:500;color:#2c3e50}.troop-retreat-form .form-group select{width:100%;padding:8px 12px;border:1px solid #bdc3c7;border-radius:4px;font-size:14px;background-color:#fff;color:#333}.troop-retreat-form .form-group select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.troop-retreat-form .form-group select:disabled{background-color:#ecf0f1;color:#7f8c8d;cursor:not-allowed}.troop-retreat-form .form-group select optgroup{font-weight:700;font-style:normal;background-color:#f8f9fa;color:#495057;padding:.25rem 0}.troop-retreat-form .form-group select option{font-weight:400;padding:.25rem .5rem;color:#333;background-color:#fff}.troop-retreat-form .error-message{background-color:#fadbd8;color:#e74c3c;padding:8px 12px;border-radius:4px;margin-bottom:16px;font-size:14px}.troop-retreat-form .form-actions{text-align:right}.troop-retreat-form .submit-retreat-btn{background-color:#e74c3c;color:#fff;border:none;padding:10px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.troop-retreat-form .submit-retreat-btn:hover:not(:disabled){background-color:#c0392b}.troop-retreat-form .submit-retreat-btn:disabled{background-color:#bdc3c7;cursor:not-allowed}.troop-retreat-form .locked-notice{background-color:#fff;padding:16px;border-radius:4px;text-align:center;color:#7f8c8d}.troop-retreat-form .locked-notice p{margin:0}.retreat-management{background-color:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:20px;margin:16px 0;color:#2c3e50}.retreat-management h3{margin:0 0 16px;color:#2c3e50;border-bottom:2px solid #e74c3c;padding-bottom:8px}.retreat-management .no-retreats{text-align:center;padding:32px;color:#7f8c8d;background-color:#f8f9fa;border-radius:4px}.retreat-management .retreat-status{display:flex;gap:24px;padding:16px;background-color:#f8f9fa;border-radius:4px;margin-bottom:16px;flex-wrap:wrap;color:#2c3e50}.retreat-management .status-item{display:flex;align-items:center;gap:8px;color:#2c3e50}.retreat-management .status-badge{padding:4px 12px;border-radius:12px;font-size:.85em;font-weight:700}.retreat-management .status-badge.open{background-color:#fff3cd;color:#856404}.retreat-management .status-badge.locked{background-color:#d1ecf1;color:#0c5460}.retreat-management .status-badge.resolved{background-color:#d4edda;color:#155724}.retreat-management .error-message{background-color:#fadbd8;color:#e74c3c;padding:12px;border-radius:4px;margin-bottom:16px}.retreat-management .success-message{background-color:#d4edda;color:#155724;padding:12px;border-radius:4px;margin-bottom:16px}.retreat-management .gm-actions{display:flex;gap:12px;margin-bottom:20px}.retreat-management .action-btn{padding:10px 20px;border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s}.retreat-management .lock-btn{background-color:#f39c12;color:#fff}.retreat-management .lock-btn:hover:not(:disabled){background-color:#e67e22}.retreat-management .resolve-btn{background-color:#27ae60;color:#fff}.retreat-management .resolve-btn:hover:not(:disabled){background-color:#229954}.retreat-management .action-btn:disabled{background-color:#bdc3c7;color:#7f8c8d;cursor:not-allowed}.retreat-management .loading{text-align:center;padding:32px;color:#7f8c8d}.retreat-management .retreat-details h4{margin:0 0 16px;color:#2c3e50}.retreat-management .retreat-list{display:flex;flex-direction:column;gap:12px;color:#2c3e50}.retreat-management .retreat-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border:1px solid #e1e8ed;border-radius:4px;background-color:#fafbfc;color:#2c3e50}.retreat-management .troop-info{display:flex;flex-direction:column;gap:4px;color:#2c3e50}.retreat-management .player-name{font-size:.9em;color:#7f8c8d}.retreat-management .retreat-info{display:flex;align-items:center;gap:12px}.retreat-management .retreat-location{font-weight:500;color:#2c3e50}.retreat-management .no-retreat{color:#e74c3c;font-style:italic}.retreat-management .has-retreat{color:#27ae60;font-weight:500}.retreat-management .outcome{padding:4px 8px;border-radius:12px;font-size:.8em;font-weight:700}.retreat-management .outcome.retreat{background-color:#d5f4e6;color:#27ae60}.retreat-management .outcome.disbanded{background-color:#fadbd8;color:#e74c3c}@media (max-width: 768px){.retreat-management .retreat-status{flex-direction:column;gap:12px}.retreat-management .retreat-item{flex-direction:column;align-items:flex-start;gap:8px}.retreat-management .gm-actions{flex-direction:column}}.adjustment-management{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px;margin:20px 0;color:#212529}.adjustment-management h3{color:#495057;font-size:1.5em;margin-bottom:16px;border-bottom:2px solid #007bff;padding-bottom:8px}.adjustment-management.no-adjustments{background-color:#e7f3ff;border-color:#007bff}.adjustment-management.no-adjustments p{color:#0056b3;font-style:italic}.adjustments-resolved-notice,.adjustments-open-notice{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;padding:12px;margin-bottom:16px;color:#155724}.adjustments-resolved-notice strong,.adjustments-open-notice strong{color:#0f5132}.adjustments-resolved-notice small,.adjustments-open-notice small{color:#6f8a6b;display:block;margin-top:4px}.adjustment-status-overview{background-color:#fff;border:1px solid #dee2e6;border-radius:4px;padding:16px;margin:16px 0}.adjustment-status-overview h4{color:#495057;margin-bottom:12px;font-size:1.2em}.status-summary p{color:#6c757d;margin:8px 0}.status-summary .all-complete{color:#28a745;font-weight:700}.player-adjustment-details{margin:20px 0}.player-adjustment-details h4{color:#495057;font-size:1.2em;margin-bottom:16px}.player-adjustment-status{background-color:#fff;border:1px solid #dee2e6;border-radius:4px;padding:16px;margin-bottom:16px}.player-header h5{color:#343a40;margin-bottom:12px;font-size:1.1em}.status-complete{color:#28a745}.status-incomplete{color:#ffc107}.adjustment-requirements{margin:12px 0}.builds-requirement,.disbands-requirement{display:flex;gap:12px;align-items:center;margin:8px 0;color:#6c757d}.requirement-met{color:#28a745}.requirement-pending{color:#ffc107}.submitted-adjustments{margin-top:16px;padding-top:12px;border-top:1px solid #e9ecef}.submitted-adjustments h6{color:#495057;margin-bottom:8px}.builds-list,.disbands-list{margin:8px 0}.builds-list strong,.disbands-list strong{color:#495057}.builds-list ul,.disbands-list ul{margin:4px 0 0 16px;color:#6c757d}.submitted-adjustments .no-adjustments{color:#6c757d;font-style:italic}.adjustment-actions{margin-top:20px;padding-top:16px;border-top:2px solid #e9ecef}.lock-adjustments-section,.resolve-adjustments-section{margin:16px 0}.lock-adjustments-button,.resolve-adjustments-button{background-color:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500}.lock-adjustments-button:hover:not(:disabled),.resolve-adjustments-button:hover:not(:disabled){background-color:#0056b3}.lock-adjustments-button:disabled,.resolve-adjustments-button:disabled{background-color:#6c757d;cursor:not-allowed}.action-description{color:#6c757d;font-size:14px;margin-top:8px;line-height:1.4}@media (max-width: 768px){.adjustment-management{padding:16px;margin:16px 0}.builds-requirement,.disbands-requirement{flex-direction:column;align-items:flex-start;gap:4px}.adjustment-actions{padding-top:12px}}
