:root{--ddt-bg:#0e1220;--ddt-bg-raised:#161c30;--ddt-bg-sunken:#0a0e19;--ddt-border:#2a3354;--ddt-text:#e8ecf8;--ddt-text-muted:#9aa5c8;--ddt-accent:#ffb020;--ddt-accent-strong:#ff8a00;--ddt-accent-text:#1a1200;--ddt-info:#4cc3ff;--ddt-success:#3ddc97;--ddt-danger:#ff5d73;--ddt-team-a:#4cc3ff;--ddt-team-b:#ff7a59;--ddt-radius:10px;--ddt-radius-sm:6px;--ddt-shadow:0 8px 30px #00000059;--ddt-font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ddt-focus:0 0 0 3px #4cc3ff8c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--ddt-bg:#f2f4fb;--ddt-bg-raised:#fff;--ddt-bg-sunken:#e7eaf5;--ddt-border:#cfd5ea;--ddt-text:#151a2e;--ddt-text-muted:#55608a;--ddt-accent:#c76a00;--ddt-accent-strong:#a85600;--ddt-accent-text:#fff;--ddt-info:#0a74b8;--ddt-success:#118a56;--ddt-danger:#c42a43;--ddt-team-a:#0a74b8;--ddt-team-b:#c24a28;--ddt-shadow:0 8px 24px #141e4626;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*,:before,:after{box-sizing:border-box}html,body{background:var(--ddt-bg);color:var(--ddt-text);font-family:var(--ddt-font);margin:0;line-height:1.45}a{color:var(--ddt-info)}:focus-visible{box-shadow:var(--ddt-focus);outline:none}.ddt-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.ddt-button{border-radius:var(--ddt-radius-sm);min-height:40px;font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;transition:transform 50ms,background .15s,opacity .15s;display:inline-flex}.ddt-button:active:not(:disabled){transform:translateY(1px)}.ddt-button:disabled{opacity:.55;cursor:not-allowed}.ddt-button--sm{min-height:32px;padding:0 12px;font-size:.875rem}.ddt-button--primary{background:var(--ddt-accent);color:var(--ddt-accent-text)}.ddt-button--primary:hover:not(:disabled){background:var(--ddt-accent-strong)}.ddt-button--secondary{background:var(--ddt-bg-sunken);color:var(--ddt-text);border-color:var(--ddt-border)}.ddt-button--secondary:hover:not(:disabled){border-color:var(--ddt-text-muted)}.ddt-button--danger{background:var(--ddt-danger);color:#fff}.ddt-button--ghost{color:var(--ddt-text-muted);background:0 0}.ddt-button--ghost:hover:not(:disabled){color:var(--ddt-text)}.ddt-field{flex-direction:column;gap:6px;display:flex}.ddt-field__label{font-size:.875rem;font-weight:600}.ddt-field__input{border:1px solid var(--ddt-border);border-radius:var(--ddt-radius-sm);background:var(--ddt-bg-sunken);min-height:42px;color:var(--ddt-text);font:inherit;padding:0 12px}.ddt-field__input::placeholder{color:var(--ddt-text-muted)}.ddt-field__input[aria-invalid=true]{border-color:var(--ddt-danger)}.ddt-field__hint{color:var(--ddt-text-muted);font-size:.8125rem}.ddt-field__error{color:var(--ddt-danger);font-size:.8125rem}.ddt-card{background:var(--ddt-bg-raised);border:1px solid var(--ddt-border);border-radius:var(--ddt-radius);box-shadow:var(--ddt-shadow)}.ddt-card__header{border-bottom:1px solid var(--ddt-border);padding:14px 18px;font-weight:700}.ddt-card__body{padding:18px}.ddt-card__footer{border-top:1px solid var(--ddt-border);padding:12px 18px}.ddt-badge{border:1px solid;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.ddt-badge--neutral{color:var(--ddt-text-muted)}.ddt-badge--success{color:var(--ddt-success)}.ddt-badge--danger{color:var(--ddt-danger)}.ddt-badge--info{color:var(--ddt-info)}.ddt-badge--accent{color:var(--ddt-accent)}.ddt-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite ddt-spin;display:inline-block}@keyframes ddt-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ddt-spinner{animation-duration:2s}}.ddt-modal__backdrop{z-index:50;background:#050812b3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.ddt-modal{width:min(520px,100%);max-height:90vh;overflow:auto}.ddt-meter{background:var(--ddt-bg-sunken);border:1px solid var(--ddt-border);border-radius:999px;height:14px;position:relative;overflow:hidden}.ddt-meter__fill{background:var(--ddt-success);height:100%;transition:width .25s}.ddt-meter--low .ddt-meter__fill{background:var(--ddt-danger)}.ddt-meter--mid .ddt-meter__fill{background:var(--ddt-accent)}.ddt-power{border-radius:var(--ddt-radius-sm);background:var(--ddt-bg-sunken);border:1px solid var(--ddt-border);-webkit-user-select:none;user-select:none;touch-action:none;height:18px;position:relative}.ddt-power--interactive{cursor:crosshair}.ddt-power__fill{border-radius:inherit;background:linear-gradient(90deg, var(--ddt-success), var(--ddt-accent), var(--ddt-danger));height:100%}.ddt-power__tick{background:var(--ddt-border);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.ddt-power__mark{pointer-events:none;width:0;margin-left:-1px;position:absolute;top:-5px;bottom:-5px}.ddt-power__mark--previous{border-left:2px dashed var(--ddt-text)}.ddt-power__mark--pinned{border-left:3px solid var(--ddt-info)}.ddt-power__mark--pinned:before{content:"";border:5px solid #0000;border-top-color:var(--ddt-info);position:absolute;top:-6px;left:-6px}.ddt-power__mark--hover{border-left:2px solid var(--ddt-info);opacity:.55}.ddt-power__hint{border-radius:var(--ddt-radius-sm);background:var(--ddt-bg-raised);color:var(--ddt-text);padding:0 4px;font-size:.7rem;line-height:1.4;position:absolute;bottom:100%;left:0;transform:translate(-50%,-2px)}.ddt-toasts{z-index:60;flex-direction:column;gap:8px;max-width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.ddt-toast{border-radius:var(--ddt-radius-sm);background:var(--ddt-bg-raised);border:1px solid var(--ddt-border);box-shadow:var(--ddt-shadow);border-left-width:4px;padding:12px 14px}.ddt-toast--success{border-left-color:var(--ddt-success)}.ddt-toast--error{border-left-color:var(--ddt-danger)}.ddt-toast--info{border-left-color:var(--ddt-info)}#app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--ddt-bg-raised);border-bottom:1px solid var(--ddt-border);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 20px;display:flex}.app-header__brand{color:var(--ddt-accent);letter-spacing:.04em;font-size:1.1rem;font-weight:800}.app-nav{flex-wrap:wrap;flex:1;gap:4px;display:flex}.app-nav a{border-radius:var(--ddt-radius-sm);color:var(--ddt-text-muted);padding:6px 12px;font-weight:600;text-decoration:none}.app-nav a:hover,.app-nav a.router-link-active{color:var(--ddt-text);background:var(--ddt-bg-sunken)}.app-user{align-items:center;gap:12px;font-size:.9rem;display:flex}.page-host{flex:1}.page{width:min(1200px,100%);margin:0 auto;padding:24px 16px 48px}.narrow{width:min(460px,100%);margin:48px auto 0}h1{margin:0 0 4px;font-size:1.6rem}h2{margin:0 0 8px;font-size:1.05rem}.stack{flex-direction:column;gap:16px;display:flex}.stack--sm{gap:8px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row--between{justify-content:space-between}.muted{color:var(--ddt-text-muted)}.error-text{color:var(--ddt-danger)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.banner{border-radius:var(--ddt-radius-sm);background:var(--ddt-bg-sunken);border:1px solid var(--ddt-border);margin:0;padding:10px 14px}.banner--error{border-color:var(--ddt-danger);color:var(--ddt-danger)}.banner--info{border-color:var(--ddt-info)}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--ddt-border);vertical-align:top;padding:8px 10px}.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--ddt-text-muted);font-size:.8rem}.table-wrap{overflow-x:auto}.select{border:1px solid var(--ddt-border);border-radius:var(--ddt-radius-sm);background:var(--ddt-bg-sunken);min-height:42px;color:var(--ddt-text);font:inherit;padding:8px 12px}.split{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (width<=860px){.split{grid-template-columns:1fr}}.version{text-align:left;background:var(--ddt-bg-sunken);border:1px solid var(--ddt-border);border-radius:var(--ddt-radius-sm);color:inherit;font:inherit;cursor:pointer;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.version:hover,.version--selected{border-color:var(--ddt-accent)}.version__meta{color:var(--ddt-text-muted);font-size:.8rem}.actions{background:var(--ddt-bg);border-top:1px solid var(--ddt-border);padding:12px 0;position:sticky;bottom:0}.params-section+.params-section{margin-top:20px}.params-section__title{text-transform:uppercase;letter-spacing:.06em;color:var(--ddt-text-muted);border-bottom:1px solid var(--ddt-border);margin:0 0 8px;padding-bottom:4px;font-size:.95rem}.params{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.param{border-radius:var(--ddt-radius-sm);border:1px solid #0000;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.param--changed{border-color:var(--ddt-accent);background:var(--ddt-bg-sunken)}.param__head{align-items:center;gap:8px;min-height:0;display:flex}.param__desc{color:var(--ddt-text-muted);margin:0;font-size:.85rem}.param__hint{color:var(--ddt-text-muted);font-size:.8rem}.param__check{align-items:center;gap:8px;display:flex}.audit-diff{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.audit-diff pre{background:var(--ddt-bg-sunken);border-radius:var(--ddt-radius-sm);max-height:260px;margin:4px 0 0;padding:8px;font-size:.8rem;overflow:auto}.authorship{color:var(--ddt-text-muted);flex-wrap:wrap;gap:4px 20px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.authorship strong{color:var(--ddt-text)}.filters{align-items:flex-end}.timeline{border-left:2px solid var(--ddt-border);flex-direction:column;gap:16px;margin:0;padding:0 0 0 16px;list-style:none;display:flex}.timeline__item{background:var(--ddt-bg-raised);border:1px solid var(--ddt-border);border-radius:var(--ddt-radius-sm);flex-direction:column;gap:6px;padding:12px 14px;display:flex;position:relative}.timeline__item:before{content:"";background:var(--ddt-accent);border-radius:50%;width:10px;height:10px;position:absolute;top:18px;left:-24px}.timeline__head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.timeline__meta{color:var(--ddt-text-muted);flex-wrap:wrap;gap:8px;font-size:.85rem;display:flex}.timeline__meta span:first-child{color:var(--ddt-text);font-weight:600}.timeline__raw summary{cursor:pointer;color:var(--ddt-text-muted);font-size:.8rem}.table--compact th,.table--compact td{padding:4px 8px;font-size:.9rem}.grid-form{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:16px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));align-items:start;gap:16px;display:grid}.combatant{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.grid-sources{grid-template-columns:140px repeat(2,minmax(220px,1fr));align-items:center;gap:12px 16px;display:grid}.field-label{font-size:.85rem;font-weight:600}.chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--ddt-accent);border-radius:999px;padding:4px 10px;font-size:.85rem}.pct{margin-left:.5em}.row--selected{background:var(--ddt-bg-sunken)}.table tbody tr[data-testid^=sim-step-]{cursor:pointer}.slider{flex:1;min-width:160px}.legend{border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700}.legend--a{color:#fff;background:#2f80ed}.legend--b{color:#1a1200;background:#f2994a}.sim-canvas{border:1px solid var(--ddt-border);border-radius:var(--ddt-radius-sm);background:#0a0e19;width:100%;height:auto}.sim-canvas__sky{fill:#0e1830}.sim-canvas__ground{fill:#5b4a32;stroke:#8d7347;stroke-width:2px}.sim-path polyline{stroke-width:3px;stroke-linejoin:round}.sim-path--a polyline{stroke:#4da3ff}.sim-path--b polyline{stroke:#ffab57;stroke-dasharray:8 5}.sim-path--faded{opacity:.35}.sim-impact{fill:#ff5d7340;stroke:#ff5d73;stroke-width:2px}.sim-body rect:first-child{stroke:#fff;stroke-width:2px}.sim-body--a rect:first-child{fill:#2f80ed}.sim-body--b rect:first-child{fill:#eb5757}.sim-body--dead{opacity:.35}.sim-hp-back{fill:#222}.sim-hp{fill:#3ddc97}.sim-label{fill:#e8ecf8;font-size:14px;font-weight:600}.sim-wind{fill:#9aa5c8;font-size:16px}
