:root{font-family:system-ui,sans-serif;color:#e8f3f0;background:#07100f;line-height:1.35}*{box-sizing:border-box}body{margin:0}main{max-width:1100px;margin:auto;padding:18px}.eyebrow{color:#7de3c7;letter-spacing:.12em;font-size:.76rem;margin:0}h1{margin:.15rem 0;font-size:2rem}h2{font-size:1.05rem;margin:0 0 .8rem;color:#7de3c7}.file,button{background:#116b5c;color:#fff;border:0;border-radius:8px;padding:.75rem 1rem;font-weight:700;display:inline-block;cursor:pointer}.file input{display:none}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}article{background:#10201d;border:1px solid #28584e;border-radius:12px;padding:15px}label{display:block;font-size:.86rem;margin:.55rem 0}select,input{width:100%;margin-top:.22rem;background:#07100f;color:#e8f3f0;border:1px solid #3a776c;border-radius:7px;padding:.65rem;font-size:1rem}.details{font-size:.9rem;color:#bdd2cc;margin:.75rem 0;white-space:pre-line}.magazine-row{display:flex;align-items:end;gap:6px;margin:.55rem 0}.magazine-row button{padding:.65rem .7rem;background:#254d46;white-space:nowrap}.magazine-number{flex:1;margin:0}.roll{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:12px}.hint{font-size:.8rem;color:#9ab5ae}.toggle{display:flex;gap:.6rem;align-items:center;padding:.7rem;border:1px solid #3a776c;border-radius:7px;background:#0b1917}.toggle input{width:1.2rem;height:1.2rem;margin:0}.target-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:.8rem 0}.wound-picker{grid-template-columns:repeat(6,1fr);margin:.35rem 0 .8rem}.target-choice{margin:0;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.65rem .3rem;border:1px solid #3a776c;border-radius:7px;background:#0b1917;font-size:.82rem}.target-choice input{width:1rem;margin:0}.target-choice:has(input:checked){border-color:#7de3c7;background:#173a33}.target-choice:has(input:disabled){opacity:.82}
.header-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;max-width:920px;margin-top:8px}.header-actions button,.header-actions .file{width:100%;min-height:46px;padding:.6rem .7rem;text-align:center;white-space:nowrap}.header-actions #save-browser{background:#116b5c}.header-actions #load-browser{background:#347f54}.header-actions #open-help{background:#286783}.header-actions #toggle-fullscreen{background:#5a4b91}.header-actions .hint{grid-column:1/-1;margin-left:2px}.header-icon{width:1rem;height:1rem;margin-right:.35rem;vertical-align:-.16rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

#result-panel,#history-panel{background:#0a1c32;border-color:#387ab0}#history-panel h2{color:#8ad2ff}.result{background:#07142a;border:2px solid #55b9ff;box-shadow:0 0 24px #1268a980;border-radius:10px;padding:14px;min-height:190px}.result-label{color:#8ad2ff;font-size:.78rem;letter-spacing:.12em;font-weight:800}.target-value{font-size:1.45rem;font-weight:900;color:#fff;margin:.2rem 0 .6rem}.modifier-list{display:grid;grid-template-columns:1fr auto;gap:.2rem .8rem;color:#bcd1e8;font-size:.8rem;border-top:1px solid #2d5070;padding-top:.6rem}.modifier-list strong{color:#e7f5ff}.tacnet-status{color:#a6f2d6;font-size:.8rem;margin-top:.5rem}.damage-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:1rem}.damage-grid div{background:#0c2947;border:1px solid #499cdc;border-radius:8px;padding:.7rem}.damage-grid span{display:block;color:#8ed1ff;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.damage-grid strong{display:block;color:#fff;font-size:1.15rem;margin-top:.15rem}.damage-note{margin:.7rem 0 0;color:#9cb6cc;font-size:.75rem}.roll-result{margin-top:12px;padding:12px;border-radius:8px;background:#183a33;color:#effff9;font-weight:800;white-space:pre-line;font-size:1rem}.roll-result.is-success{background:#123d2d;border:2px solid #4edc99;color:#eafff3}.roll-result.is-failure{background:#451c24;border:2px solid #f06b78;color:#fff0f2}.outcome{font-size:1.28rem;font-weight:950;letter-spacing:.06em}.is-success .outcome{color:#6ff0ae}.is-failure .outcome{color:#ff8b98}.outcome-details{margin-top:.15rem;font-size:.83rem;font-weight:650}.applied-damage{display:grid;grid-template-columns:1fr auto;gap:.15rem .75rem;align-items:end;margin-top:.7rem;padding-top:.65rem;border-top:1px solid #5abf91}.applied-damage span{grid-column:1/-1;color:#b5f2d1;font-size:.82rem}.applied-damage strong{font-size:2rem;line-height:1;color:#fff;letter-spacing:.02em}.applied-damage b{font-size:1.15rem;color:#a8e8ff;white-space:nowrap}.history{margin:0;padding-left:1.3rem;display:grid;gap:.55rem;font-size:.86rem;color:#d8eaff}.history li{padding-bottom:.45rem;border-bottom:1px solid #355878}.history-damage{font-size:1.14rem;color:#fff}.history small{display:block;color:#9ebcd6;margin-top:.18rem}

@media(max-width:700px){main{padding:12px}.grid{grid-template-columns:1fr}.roll{grid-template-columns:1fr}.target-picker{grid-template-columns:repeat(3,1fr)}.magazine-row button{min-width:46px}button,.file{min-height:48px}}
.wound-picker .target-choice:nth-last-child(-n+2){display:none}
.roll-result.is-critical-success{border-color:#ffd166;box-shadow:0 0 18px #e3a92788}.roll-result.is-critical-success .outcome{color:#ffe29a}.roll-result.is-critical-failure{border-color:#ff9f43;box-shadow:0 0 18px #c35f1988}.roll-result.is-critical-failure .outcome{color:#ffc36f}
h2{display:flex;align-items:center;gap:.5rem}.card-icon{width:1.15rem;height:1.15rem;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.weapon-identity{display:flex;align-items:center;gap:.4rem;color:#e9fffa}.weapon-icon{width:1rem;height:1rem;stroke:#7de3c7;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.details small{display:block;margin-top:.3rem;color:#8bb6aa}.chip-icon{width:.9rem;height:.9rem;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.16rem}.magazine-status{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.35rem .5rem;padding:.5rem .65rem;border:1px solid #397b6d;border-radius:8px;background:#0a1917;color:#c7eee5}.magazine-status i{height:.34rem;border-radius:99px;background:linear-gradient(90deg,#55deb5 var(--mag-level),#173a33 var(--mag-level));grid-column:1/-1}.magazine-status em{grid-column:1/-1;font-style:normal;font-size:.75rem;color:#9fc3ba}.magazine-status.low{border-color:#d6a94b;color:#ffe0a1}.magazine-status.empty{border-color:#d5636e;color:#ffc0c7}.active-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.1rem 0 .7rem}.modifier-chip,.sensor-chip{display:inline-flex;align-items:center;gap:.28rem;padding:.28rem .45rem;border-radius:999px;font-size:.72rem;line-height:1.15;background:#15342e;border:1px solid #347467;color:#d2f8ef}.modifier-chip.negative{background:#3d2729;border-color:#8f4b54;color:#ffd1d6}.modifier-chip.positive{background:#183f34;border-color:#438a76;color:#d7ffef}.modifier-chip.neutral{background:#172b3b;border-color:#3a718d;color:#d1eaff}.sensor-chip{margin:.16rem .22rem .16rem 0;background:#172b3b;border-color:#3a718d;color:#d1eaff}.sensor-chip b{color:#fff}.outcome-line{display:flex;align-items:center;gap:.5rem}.outcome-icon{width:1.5rem;height:1.5rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.is-success .outcome-icon{color:#6ff0ae}.is-failure .outcome-icon{color:#ff8b98}.is-critical-success .outcome-icon{color:#ffe29a}.is-critical-failure .outcome-icon{color:#ffc36f}
.result-magazine{display:flex;align-items:center;gap:.4rem;margin:.2rem 0 .65rem;padding:.42rem .55rem;border:1px solid #397b6d;border-radius:8px;background:#0a201c;color:#c7eee5;font-size:.78rem}.result-magazine strong{margin-left:auto;font-size:1rem;color:#fff}.result-magazine.low{border-color:#d6a94b;color:#ffe0a1}.result-magazine.empty{border-color:#d5636e;color:#ffc0c7}
.attack-scope{display:flex;align-items:center;gap:.35rem;margin:.1rem 0 .55rem;padding:.42rem .55rem;border:1px solid #4e84a8;border-radius:8px;background:#102b42;color:#d5ecff;font-size:.76rem}.attack-scope b{color:#fff}.attack-scope span{color:#a8c7dd}
.compact-fields{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.attack-type{display:inline-flex;align-items:center;gap:.22rem;margin-left:auto;padding:.18rem .4rem;border:1px solid currentColor;border-radius:999px;font-size:.63rem;letter-spacing:.06em;line-height:1.1;font-weight:850}.type-icon{width:.76rem;height:.76rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.attack-type.melee{color:#ffba75;background:#3d271b}.attack-type.ranged{color:#83d9ff;background:#172e42}.attack-type.beam{color:#ff9fda;background:#43243b}.attack-type.seeker,.attack-type.grenade{color:#ffd26f;background:#423716}.attack-type.spray{color:#a8f18c;background:#244128}
#target-picker{grid-template-columns:repeat(3,1fr)}
@media(max-width:420px){.compact-fields{grid-template-columns:1fr}.weapon-identity{flex-wrap:wrap}.attack-type{margin-left:0}}
.help-dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 24px);border:1px solid #55b9ff;border-radius:12px;background:#08182a;color:#e7f4ff;padding:1.25rem 1.35rem;box-shadow:0 18px 70px #000b}.help-dialog::backdrop{background:#000b}.help-dialog h2{color:#8ad2ff;margin-right:2rem}.help-dialog details{border-top:1px solid #2b5473;padding:.65rem 0}.help-dialog summary{cursor:pointer;font-weight:800;color:#d8efff}.help-dialog p{margin:.45rem 0;color:#c3d9e8;font-size:.92rem}.help-close{float:right;background:#354f68;padding:.32rem .62rem;font-size:1.25rem;line-height:1}
.target-damage-list{display:grid;gap:.35rem;margin-top:.65rem;padding-top:.6rem;border-top:1px solid #5abf91}.target-damage-list div{display:grid;grid-template-columns:1fr auto auto;gap:.45rem;align-items:center;padding:.4rem .5rem;border:1px solid #397b6d;border-radius:7px;background:#0d2c23;color:#d7faec;font-size:.82rem}.target-damage-list strong{font-size:1.05rem;color:#fff}.target-damage-list b{color:#a8e8ff;white-space:nowrap}
.area-summary,.area-result{display:flex;align-items:flex-start;gap:.4rem;margin-top:.65rem;padding:.5rem .6rem;border:1px solid #9a7a44;border-radius:8px;background:#342815;color:#ffe5b2;font-size:.78rem}.area-result{border-color:#e6b85c;background:#3d2d13;color:#fff0c9;font-weight:750}.history-area{color:#f1cb80}
@media(max-width:700px){.header-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.header-actions .file{grid-column:1/-1}.help-dialog{padding:1rem}}
