{% from "components/_tabs.html" import tabs_intro %}
<header class="page-heading"><p class="eyebrow">GUERRA PLANETARIA</p><h1>Invasiones, ocupación y liberación</h1><p>Recluta fuerzas, transporta suministros, resuelve asaltos por fases y elige entre ocupar, integrar, vasallizar o liberar. También puedes obtener una rendición diplomática.</p></header>
<div data-tab-scope="invasions" data-tab-auto>
{{ tabs_intro('invasions', 'Apartados de invasiones', 'Separa guarnición, lanzamiento, campañas, ocupaciones y vasallajes.') }}

<div class="notice notice-warning"><strong>La defensa orbital y la terrestre son sistemas distintos.</strong> Los láseres y lanzamisiles del Astillero detienen naves; esta guarnición combate después de un desembarco. El aviso enemigo concede 30 segundos antes de la primera ronda y cada ronda posterior tarda otros 30 segundos.</div>
<section class="panel" aria-labelledby="recruit-title"><h2 id="recruit-title">Guarnición de {{ planet.name }}</h2>{% if current_ground_force %}<p><strong>Disponibles:</strong> {{ current_ground_force.soldiers }} soldados, {{ current_ground_force.armor }} blindados, moral {{ current_ground_force.morale|round(1) }} y {{ current_ground_force.supplies }} suministros.</p>{% else %}<p class="notice notice-warning">Este planeta no tiene una guarnición organizada.</p>{% endif %}<dl class="settings-list"><div><dt>Soldado</dt><dd>8 metal + 3 cristal; consume 1 habitante. Máximo: 20 % de la población por reclutamiento.</dd></div><div><dt>Blindado</dt><dd>160 metal + 80 cristal + 30 deuterio; multiplica la fuerza terrestre.</dd></div><div><dt>Suministro</dt><dd>1 deuterio; mantiene la potencia y permite enviar la invasión.</dd></div></dl><form method="post" action="{{ url_for('ground_recruit_action') }}" class="form-grid"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><label>Soldados <input type="number" name="soldiers" min="0" max="100000" value="25"></label><label>Blindados <input type="number" name="armor" min="0" max="10000" value="2"></label><label>Suministros <input type="number" name="supplies" min="0" max="1000000" value="100"></label><button class="button button-primary" type="submit">Reclutar y equipar la guarnición</button></form></section>

<section class="panel" aria-labelledby="launch-invasion-title"><h2 id="launch-invasion-title">Lanzar invasión</h2><form method="post" action="{{ url_for('invasion_launch_action') }}" class="form-grid"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><label>Objetivo <select name="target_planet_id">{% for target in invasion_targets %}<option value="{{ target.id }}">{{ target.empire_name }} · {{ target.name }} [{{ target.galaxy }}:{{ target.system }}:{{ target.position }}] · relación {{ target.relation_status }}</option>{% endfor %}</select></label><label>Soldados <input type="number" name="soldiers" min="1" value="100"></label><label>Blindados <input type="number" name="armor" min="0" value="5"></label><label>Suministros <input type="number" name="supplies" min="1" value="500"></label><label>Política tras la victoria <select name="policy"><option value="occupy">Ocupar</option><option value="integrate">Integrar</option><option value="vassalize">Vasallizar</option><option value="liberate">Liberar</option></select></label><button class="button button-danger" type="submit">Lanzar contra un imperio en guerra</button></form><form method="post" action="{{ url_for('invasion_pressure_action') }}" class="inline-form"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><label>Rendición pacífica <select name="target_planet_id">{% for target in invasion_targets %}<option value="{{ target.id }}">{{ target.empire_name }} · {{ target.name }}</option>{% endfor %}</select></label><button class="button" type="submit">Ejercer presión diplomática</button></form></section>

<section class="panel" aria-labelledby="campaigns-title"><h2 id="campaigns-title">Campañas e informes terrestres</h2>{% if invasions %}<div class="card-grid">{% for invasion in invasions %}<article class="entity-card"><p class="eyebrow">{{ 'DEFENSA' if invasion.defender_empire_id == empire.id else 'ATAQUE' }}</p><h3>{{ invasion.target_name or 'Planeta objetivo' }}</h3><p>De {{ invasion.source_name or 'origen desconocido' }} · atacante {{ invasion.attacker_name }} · defensor {{ invasion.defender_name }}.</p><p>Fase {{ invasion.phase }}, estado {{ invasion.status }}, {{ invasion.soldiers }} soldados y {{ invasion.armor }} blindados restantes. {{ invasion.outcome or 'Siguiente fase: ' ~ (invasion.next_phase_at|date_label) }}</p>{% if invasion.rounds %}<details><summary>Informe completo de {{ invasion.rounds|length }} {{ 'ronda' if invasion.rounds|length == 1 else 'rondas' }}</summary><ol>{% for round in invasion.rounds %}<li><strong>Ronda {{ round.round }}:</strong> potencia atacante {{ round.attack_power }}, defensora {{ round.defense_power }} y fortificación {{ round.fortification_percent }} %. Bajas: {{ round.attacker_losses }} atacantes y {{ round.defender_losses }} defensores. Supervivientes: {{ round.attacker_after }} / {{ round.defender_after }}.</li>{% endfor %}</ol></details>{% endif %}</article>{% endfor %}</div>{% else %}<p>No hay campañas ni informes terrestres.</p>{% endif %}</section>

<section class="panel" aria-labelledby="occupations-title"><h2 id="occupations-title">Ocupaciones</h2>{% if occupations %}<div class="card-grid">{% for item in occupations %}<article class="entity-card"><h3>{{ item.planet_name }}</h3><p>Anterior administración: {{ item.former_empire_name }}. Resistencia {{ item.resistance|round(1) }}; coste administrativo {{ item.administration_cost }}; política {{ item.policy }}.</p><form method="post" action="{{ url_for('occupation_manage_action') }}" class="inline-form"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><input type="hidden" name="planet_id" value="{{ item.planet_id }}"><label>Medida <select name="occupation_action"><option value="negotiate">Negociar por 5 de influencia</option><option value="relief">Enviar 1.000 alimentos</option><option value="release">Liberar planeta</option></select></label><button class="button" type="submit">Aplicar</button></form></article>{% endfor %}</div>{% else %}<p>No administras ocupaciones.</p>{% endif %}</section>

<section class="panel" aria-labelledby="vassalages-title"><h2 id="vassalages-title">Vasallajes</h2>{% if vassalages %}<div class="card-grid">{% for item in vassalages %}<article class="entity-card"><h3>{{ item.subject_name }}</h3><p>Estado {{ item.status }}; autonomía {{ item.autonomy|round(1) }} %; tributo {{ (item.tribute_rate * 100)|round(1) }} % de los créditos disponibles por ciclo.</p>{% if item.status == 'active' %}<form method="post" action="{{ url_for('vassalage_manage_action') }}" class="inline-form"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><input type="hidden" name="subject_empire_id" value="{{ item.subject_empire_id }}"><label>Medida <select name="vassalage_action"><option value="autonomy">Conceder autonomía por 5 de influencia</option><option value="tribute">Exigir más tributo</option><option value="release">Reconocer su soberanía</option></select></label><button class="button" type="submit">Aplicar al vasallo</button></form>{% endif %}</article>{% endfor %}</div>{% else %}<p>No tienes imperios vasallos. Esta condición puede imponerse al vencer una invasión terrestre.</p>{% endif %}</section>
</div>
