:root{color-scheme:dark;--bg-dark: #0b0f14;--bg-card: #141b24;--bg-hover: #1a2332;--border-color: rgba(255, 255, 255, .08);--text-primary: #eaeaea;--text-secondary: #a0a0a0;--accent-green: #4ade80;--accent-red: #ef4444;--accent-blue: #3b82f6}*{box-sizing:border-box}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .4s ease-in-out}body{margin:0;background:var(--bg-dark);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}.app{min-height:100vh;padding:20px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:12px}.header-content{display:flex;align-items:center;gap:12px}.logo-icon{width:36px;height:36px;flex-shrink:0}.app-header h1{margin:0;font-size:22px;font-weight:700;line-height:1}.export-import{display:flex;gap:8px}.export-import button{padding:8px 14px;font-size:13px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .15s ease}.export-import-menu{display:none;padding:8px 12px;font-size:13px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer}@media (max-width: 640px){.export-import button{display:none}.export-import-menu{display:block}}.export-import button:hover{background:var(--bg-hover);border-color:#ffffff26}.app-main{max-width:1400px;margin:0 auto}.teams-section{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px;align-items:start}@media (max-width: 768px){.teams-section{grid-template-columns:1fr}}.team-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px}.team-container h2{margin:0 0 16px;font-size:18px}.team-panel{display:flex;flex-direction:column;gap:16px}.team-header{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width: 640px){.team-header{grid-template-columns:1fr;gap:8px}}.team-header label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-secondary)}.team-header select{width:100%;padding:8px;background:var(--bg-dark);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:14px}.team-header select:hover{border-color:var(--accent-blue)}.unit-list{display:flex;flex-direction:column;gap:10px}.unit-list h3{margin:0;font-size:14px;text-transform:uppercase;color:var(--text-secondary)}.empty-roster{margin:0;padding:12px;background:#0003;border-radius:6px;color:var(--text-secondary);font-size:13px;text-align:center}.unit-list ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.unit-row{display:flex;align-items:center;gap:8px;padding:10px;background:#0003;border-radius:6px;font-size:13px}@media (max-width: 640px){.unit-row{flex-direction:column;align-items:stretch;gap:8px}}.unit-row-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0}@media (max-width: 640px){.unit-row-main{flex-wrap:nowrap;width:100%}}.unit-icon{width:24px;height:24px;flex-shrink:0;border-radius:3px}.unit-name-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:80px;word-break:break-word}.unit-name{font-weight:500;display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.unit-display-name{font-size:11px;color:var(--text-secondary);font-weight:400}@media (max-width: 640px){.unit-name-info{min-width:100%}}.unit-name{flex:1;font-weight:500}.unit-count{width:50px;padding:6px;background:var(--bg-dark);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;text-align:center;font-size:12px}.unit-tier{width:80px;padding:6px;background:var(--bg-dark);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:12px}.remove-button{padding:4px 8px;background:#ef44441a;color:var(--accent-red);border:1px solid rgba(239,68,68,.3);border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}.remove-button:hover{background:#ef444433}.quick-add{display:flex;flex-direction:column;gap:8px}.quick-add p{margin:0;font-size:12px;text-transform:uppercase;color:var(--text-secondary)}.button-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.add-unit-button{padding:8px;background:#4ade801a;color:var(--accent-green);border:1px solid rgba(74,222,128,.3);border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s}.add-unit-button:hover{background:#4ade8033;border-color:var(--accent-green)}.controls-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;justify-content:center}.sim-options{display:flex;flex-direction:column;gap:10px}.sim-options label{display:flex;flex-direction:column;gap:6px;font-size:12px;text-transform:uppercase;color:var(--text-secondary)}.sim-options input{padding:8px;background:var(--bg-dark);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:14px}.sim-options input:disabled{opacity:.5;cursor:not-allowed}.run-button{padding:12px 24px;background:var(--accent-blue);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;min-height:50px}.run-button:hover:not(:disabled){background:#2563eb;transform:translateY(-2px)}.run-button:disabled{opacity:.5;cursor:not-allowed}.error-message{padding:12px;background:#ef44441a;color:var(--accent-red);border:1px solid rgba(239,68,68,.3);border-radius:6px;font-size:13px}.simulation-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:30px;display:flex;flex-direction:column;gap:12px}.simulation-controls{display:flex;gap:12px;align-items:center;justify-content:center}.settings-button{padding:12px 20px;background:#94a3b81a;color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.settings-button:hover:not(:disabled){background:#94a3b833;border-color:var(--accent-blue)}.settings-button:disabled{opacity:.5;cursor:not-allowed}.results-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px}.results-section h2{margin:0 0 16px;font-size:18px}.results-panel{display:flex;flex-direction:column;gap:20px}.result-summary{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center}.team-result{padding:16px;border-radius:8px;border:1px solid var(--border-color)}.team-result.winner{background:#4ade800d;border-color:#4ade8033}.team-result.loser{background:#ef44440d;border-color:#ef444433}.team-result h3{margin:0 0 8px;font-size:16px}.result-label{margin:0 0 8px;font-size:14px;font-weight:600}.team-result.winner .result-label{color:var(--accent-green)}.team-result.loser .result-label{color:var(--accent-red)}.survivors,.damage,.dps{margin:4px 0;font-size:13px;color:var(--text-secondary)}.vs-divider{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-secondary);min-width:60px}.timeline-container{background:#0003;border-radius:8px;padding:12px}.timeline-container h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;color:var(--text-secondary)}.timeline-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}.timeline-stats p{margin:0;font-size:12px;color:var(--text-secondary)}.timeline-details{cursor:pointer}.timeline-details summary{padding:8px;background:#ffffff0d;border-radius:4px;font-size:12px;font-weight:600;-webkit-user-select:none;user-select:none}.timeline-details summary:hover{background:#ffffff1a}.timeline-list{margin-top:8px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.timeline-point{display:flex;align-items:center;gap:12px;padding:6px 8px;background:#0000001a;border-radius:4px;font-size:11px;color:var(--text-secondary)}.time{min-width:50px;font-weight:600;color:var(--accent-blue)}.unit-count{flex:1}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{position:relative;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:32px;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}@media (max-width: 640px){.modal-card{padding:20px;margin:20px;border-radius:8px}}.modal-card h2{margin:0 0 24px;font-size:28px;color:var(--text-primary)}.modal-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:var(--text-secondary);font-size:32px;line-height:1;cursor:pointer;padding:4px 8px;transition:color .2s}.modal-close:hover{color:var(--text-primary)}.about-section{margin-bottom:24px}.about-section:last-of-type{margin-bottom:32px}.about-section h3{margin:0 0 12px;font-size:18px;color:var(--accent-blue);font-weight:600}.about-section p{margin:0 0 12px;color:var(--text-secondary);line-height:1.6}.about-section p:last-child{margin-bottom:0}.about-section ul{margin:8px 0;padding-left:24px;color:var(--text-secondary)}.about-section li{margin:6px 0;line-height:1.6}.note{padding:12px;background:#3b82f61a;border-left:3px solid var(--accent-blue);border-radius:4px;font-size:14px}.disclaimer{padding:12px;background:#ef44441a;border-left:3px solid var(--accent-red);border-radius:4px;font-size:14px}.feedback-link{display:inline-block;margin-top:8px;color:var(--accent-blue);text-decoration:none;font-weight:500;transition:color .2s}.feedback-link:hover{color:#60a5fa;text-decoration:underline}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid var(--border-color)}.btn-primary{background:var(--accent-blue);color:#fff;border:none;padding:10px 24px;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#2563eb}.team-panel{background:#141b24;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px}.team-panel h2{margin:0 0 10px;font-size:18px}.team-panel h3{margin:0 0 8px;font-size:16px}.row{display:flex;gap:10px;align-items:end;margin-bottom:10px}.row label{font-size:12px;opacity:.85}select,input[type=number]{background:#0f1520;color:#eaeaea;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px;outline:none}button{background:#1f2c3d;color:#eaeaea;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px 14px;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.muted{opacity:.7;font-size:13px}.team-header{display:grid;grid-template-columns:1fr 90px;gap:12px;align-items:end;margin-bottom:10px}.team-upgrades{margin-top:10px}.tech-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;font-weight:700;opacity:.95;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:6px}.tech-section-header:hover{opacity:1}.tech-icon{font-size:16px}.tech-count{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;font-size:11px}.blacksmith-summary{margin-left:auto;font-size:12px;opacity:.7;font-weight:400}.team-upgrade-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.upgrade-item{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:6px;background:#101826;border:1px solid rgba(255,255,255,.08);font-size:12px;opacity:.95;cursor:pointer;white-space:nowrap}.upgrade-item:hover{background:#1a2433}.upgrade-item input{cursor:pointer}.tech-groups{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:10px}.tech-group{display:flex;align-items:center;gap:10px}.tech-group-label{font-size:11px;font-weight:600;opacity:.65;min-width:90px;text-align:right}.tech-tier-row{display:flex;gap:4px}.tech-tier-item{display:flex;align-items:center;justify-content:center;width:38px;height:32px;border-radius:6px;background:#101826;border:1px solid rgba(255,255,255,.08);cursor:pointer;position:relative;transition:all .15s ease}.tech-tier-item:hover{background:#1a2433;border-color:#ffffff26}.tech-tier-item input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%}.tech-tier-item:has(input:checked){background:#2563eb;border-color:#3b82f6}.tech-tier-item:has(input:checked):hover{background:#1d4ed8;border-color:#60a5fa}.tech-tier-item input:checked~.tier-label{color:#fff;font-weight:700;opacity:1}.tech-tier-item .tier-label{font-size:11px;font-weight:600;opacity:.7;pointer-events:none}.team-upgrade-list-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-bottom:10px}.upgrade-item-compact{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;background:#101826;border:1px solid rgba(255,255,255,.08);font-size:11px;opacity:.95;cursor:pointer}.upgrade-item-compact:hover{background:#1a2433}.upgrade-item-compact input{cursor:pointer;flex-shrink:0}.unit-add{margin-top:14px}.unit-add h3{margin:0 0 8px;font-size:16px}.unit-add-row{display:flex;gap:10px;align-items:center}.unit-select{flex:1}.unit-count{width:80px;text-align:center}.add-button{white-space:nowrap}.team-summary-card{margin-top:10px;background:#10182699;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px}.team-summary-title{font-size:12px;font-weight:800;opacity:.9;margin-bottom:8px}.team-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:13px}.team-summary-cell{display:flex;align-items:center;gap:8px}.res-icon{width:18px;display:inline-flex;justify-content:center}.resFood{color:#ff9d52}.resWood{color:#8db973}.resGold{color:#ffd966}.resStone{color:#999}.resOliveoil{color:#c0a85f}.unit-list{margin-top:14px}.unit-list h3{margin:0 0 8px;font-size:16px}.unit-list ul{list-style:none;padding:0;margin:0}.empty-roster{opacity:.7;font-style:italic;padding:20px;text-align:center}.unit-row{display:flex;flex-direction:column;gap:0;margin-top:10px;background:#101826;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px}.unit-row-header{display:flex;gap:12px;align-items:center;width:100%}.unit-icon{width:44px;height:44px;min-width:44px;object-fit:contain;border-radius:8px;background:#ffffff08}.unit-name-count{display:flex;flex-direction:column;flex:1;min-width:0}.unit-name{font-weight:700;display:inline-flex;align-items:center;gap:8px}.unit-display-name{font-size:12px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-row-header .unit-count{width:60px}.unit-tier{min-width:100px}.remove-button{background:#2a1f1f;border-color:#ff64644d;padding:8px 10px}.remove-button:hover:not(:disabled){background:#3a2525;border-color:#ff646480}.unit-stats-row{display:flex;gap:20px;margin-top:10px;padding:10px 0 12px;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px;opacity:.95}.stat-item{display:flex;align-items:center;gap:6px}.stat-label{font-weight:600;min-width:50px;opacity:.8}.stat-value{color:#a8d5ff;font-weight:500}.dps-mode-select{margin-left:4px;padding:2px 6px;font-size:11px}.unit-techs{margin-top:12px;padding-top:0;border-top:none;display:flex;flex-wrap:wrap;gap:8px}@media (max-width: 640px){.unit-row{padding:8px}.unit-row-header{gap:8px;flex-wrap:wrap}.unit-icon{width:36px;height:36px;min-width:36px}.unit-name-count{flex:1;min-width:120px}.unit-count{width:50px!important}.unit-tier{flex:1;min-width:80px}.remove-button{padding:6px 8px!important}.unit-stats-row{gap:12px;margin-top:8px;flex-wrap:wrap}.stat-item{flex:0 1 calc(50% - 6px)}.stat-label{min-width:40px}.unit-techs{margin-top:8px;gap:6px}.upgrade-item{font-size:12px;padding:4px 8px!important}}
