
.nukesim {
    display:grid;
    grid-template-columns:320px minmax(0, 1fr);
    gap:16px;
    padding:14px 18px 16px;
}
.nukesim-side { display:flex; flex-direction:column; gap:14px; }
.nkcontrols,
.nkeffects { display:flex; flex-direction:column; gap:8px; }
@media (max-width: 992px) {
        .nukesim { display:flex; flex-direction:column; gap:12px; }
        .nukesim-side,
        .nukesim-main { display:contents; }
        .nkcontrols { order:1; }
        .nkjumps,
        .nkmapwrap { order:2; }
        .nkeffects { order:3; }
        .nknote { order:4; }
        .nkactions { display:none; }
        .nkjumps { margin-bottom:0; }
        .nukesim .nknote { margin:0; }
}
.nukesim-side .nklabel {
    font-family:var(--font-mono);
    font-size:10px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--text-muted);
    margin-top:4px;
}
.nukesim-side input[type="number"],
.nukesim-side select {
    box-sizing:border-box;
    width:100%;
    padding:7px 10px;
    font-size:13.5px;
    border:1px solid var(--hairline);
    border-radius:6px;
    background:var(--panel);
    color:var(--text-color);
}
.nukesim-side input:focus,
.nukesim-side select:focus { outline:2px solid var(--signal); outline-offset:1px; }
.nkyield { display:flex; gap:6px; }
.nkyield input { flex:1; min-width:0; }
.nkyield select { width:auto; }
.nkmeta { font-size:12.5px; color:var(--text-muted); }
.nkmeta:empty { display:none; }
.nkquick { display:flex; flex-wrap:wrap; gap:6px; }
.nkquick button {
    display:inline-flex;
    align-items:baseline;
    gap:5px;
    font-size:12px;
    padding:4px 10px;
    border:1px solid var(--hairline);
    border-radius:999px;
    background:var(--panel);
    color:var(--text-color);
    cursor:pointer;
}
.nkquick button small { font-family:var(--font-mono); font-size:10px; color:var(--text-muted); }
.nkquick button:hover { border-color:var(--signal); }
.nkquick button.on { background:var(--signal-soft); border-color:var(--signal); color:var(--signal); }
.nkquick button.on small { color:var(--signal); }
.nkpicker { position:relative; }
.nkpicker-trigger {
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    padding:8px 12px;
    font-size:14px;
    text-align:left;
    border:1px solid var(--hairline);
    border-radius:6px;
    background:var(--panel);
    color:var(--text-color);
    cursor:pointer;
}
.nkpicker-trigger:hover { border-color:var(--signal); }
.nkpicker-trigger[aria-expanded="true"] { border-color:var(--signal); outline:2px solid var(--signal); outline-offset:1px; }
.nkpicker-trigger .cur { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nkpicker-trigger::after {
    content:"";
    flex:0 0 auto;
    width:0;
    height:0;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:5px solid currentColor;
    opacity:.55;
}
.nkpicker-pop {
    position:absolute;
    top:calc(100% + 4px);
    left:0;
    right:0;
    z-index:40;
    background:var(--panel);
    border:1px solid var(--hairline);
    border-radius:8px;
    box-shadow:var(--shadow-panel);
    overflow:hidden;
}
.nkpicker-search {
    box-sizing:border-box;
    width:100%;
    padding:9px 12px;
    font-size:13.5px;
    border:0;
    border-bottom:1px solid var(--hairline);
    background:var(--panel);
    color:var(--text-color);
}
.nkpicker-search:focus { outline:none; }
.nkpicker-list { max-height:288px; overflow-y:auto; }
.nkopt-group {
    position:sticky;
    top:0;
    font-family:var(--font-mono);
    font-size:9.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--text-muted);
    background:var(--panel);
    padding:8px 12px 3px;
}
.nkopt {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:10px;
    padding:6px 12px;
    font-size:13.5px;
    color:var(--text-color);
    cursor:pointer;
}
.nkopt .y { flex:0 0 auto; font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }
.nkopt:hover,
.nkopt.hl { background:var(--signal-soft); }
.nkopt.sel .nm { color:var(--signal); font-weight:600; }
.nkopt[hidden],
.nkopt-group[hidden] { display:none; }
.nkpicker-empty { padding:12px; font-size:13px; color:var(--text-muted); }
.nklink {
    align-self:flex-start;
    padding:0;
    font:inherit;
    font-size:12.5px;
    background:none;
    border:none;
    color:var(--signal);
    cursor:pointer;
    text-decoration:underline;
}
.nkburst { display:flex; gap:6px; }
.nkburst button,
.nkjumps button {
    font-family:var(--font-mono);
    font-size:11px;
    padding:3px 9px;
    border:1px solid var(--hairline);
    border-radius:999px;
    background:var(--panel);
    color:var(--text-color);
    cursor:pointer;
}
.nkburst button:hover,
.nkjumps button:hover { border-color:var(--signal); }
.nkburst button.on {
    background:var(--signal-soft);
    border-color:var(--signal);
    color:var(--signal);
}
.nkjumps { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.nkmapwrap { position:relative; }
.nukesim-map { height:520px; border-radius:8px; z-index:0; }
@media (max-width: 768px) {
        .nukesim-map { height:380px; }
}
.nukesim-map.leaflet-grab { cursor:crosshair; }
.nkmaphint {
    position:absolute;
    top:12px;
    left:50%;
    transform:translateX(-50%);
    z-index:500;
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--text-color);
    background:var(--panel);
    border:1px solid var(--hairline-strong);
    border-radius:999px;
    padding:6px 14px;
    box-shadow:var(--shadow-panel);
    pointer-events:none;
    white-space:nowrap;
}
@media (max-width: 576px) {
        .nkmaphint {
            top:auto;
            bottom:26px;
            font-size:10px;
            padding:5px 10px;
        }
}
.nkfire {
    position:absolute;
    bottom:30px;
    left:50%;
    transform:translateX(-50%);
    z-index:500;
    font-family:var(--font-mono);
    font-size:12px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#fff;
    background:var(--bad);
    border:0;
    border-radius:999px;
    padding:10px 22px;
    box-shadow:var(--shadow-panel);
    cursor:pointer;
}
.nkfire:hover { filter:brightness(1.1); }
.nkfire:focus-visible { outline:2px solid var(--signal); outline-offset:2px; }
.nkfire[hidden] { display:none; }
.nknote { font-size:12px; color:var(--text-muted); margin:10px 0 0; }
.nkhint { font-size:13px; color:var(--text-muted); margin:0; }
.nukerings { display:flex; flex-direction:column; gap:9px; }
.nkring {
    display:grid;
    grid-template-columns:12px minmax(0, 1fr);
    gap:8px;
    font-size:13px;
    line-height:1.35;
}
.nkring i {
    width:11px;
    height:11px;
    border-radius:50%;
    background:var(--dot-color, var(--text-muted));
    margin-top:3px;
}
.nkring .r { font-family:var(--font-mono); font-size:11.5px; color:var(--text-muted); }
.nkring small { display:block; color:var(--text-muted); font-size:11.5px; }
@keyframes nkfade { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
.nukerings.in .nkring { animation:nkfade .3s ease both; }
.nukerings.in .nkring:nth-child(2) { animation-delay:.05s; }
.nukerings.in .nkring:nth-child(3) { animation-delay:.10s; }
.nukerings.in .nkring:nth-child(4) { animation-delay:.15s; }
.nukerings.in .nkring:nth-child(5) { animation-delay:.20s; }
.nukerings.in .nkring:nth-child(6) { animation-delay:.25s; }
@media (prefers-reduced-motion: reduce) {
        .nukerings.in .nkring { animation:none; }
}
