/* NEWS RAIL + QUICK START (wow #5). Docked LEFT beside the category rail so the right side stays free for INSPECT, legend, HQ. */
:root{--nw:304px}
.nr{position:fixed;z-index:7;left:calc(var(--railw) + var(--g) + 8px);top:calc(var(--topy) + var(--toph) + 12px);bottom:calc(var(--botb) + var(--both) + 10px);width:var(--nw);pointer-events:none}
body.l-open .nr{left:calc(var(--railw) + var(--g) + 8px + var(--lw) + 28px)} /* +20: room for the left panel's fold-in tab (ui-left.js #l-close) */
.nr-panel{pointer-events:auto;position:absolute;inset:0;display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);transition:transform .25s,opacity .2s;overflow:hidden}
.nr[data-open="0"] .nr-panel{transform:translateX(-14px);opacity:0;pointer-events:none;visibility:hidden;transition:transform .25s,opacity .2s,visibility 0s .25s}
.nr-grab{display:none}
.nr-h{display:flex;align-items:center;gap:8px;padding:10px 10px 8px 12px;border-bottom:1px solid var(--line2)}
.nr-h h2{flex:1;font:700 17px/1 var(--hd);letter-spacing:.18em;color:var(--m-hi);display:flex;align-items:center;gap:8px;white-space:nowrap}
.nr-h h2 small{font:400 10px var(--mono);letter-spacing:.16em;color:var(--dim);margin-left:2px;align-self:flex-end;padding-bottom:1px}
.nr-count{font-size:10px;letter-spacing:.08em;color:var(--cy2);white-space:nowrap}
.nr-x{width:26px;height:26px;border:1px solid var(--line);color:var(--cy2);font-size:18px;line-height:1;background:color-mix(in srgb,var(--cy) 6%,transparent)}
.nr-x:hover{border-color:var(--cy);color:var(--m-hi);background:color-mix(in srgb,var(--cy) 20%,transparent)}
.nr-live{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red);flex:none;animation:nrblink 1.6s infinite}
@keyframes nrblink{50%{opacity:.35}}
.nr-seg{display:flex;margin:8px 10px 0;border:1px solid var(--line)}
.nr-seg button{flex:1;padding:6px 4px;font-size:10px;letter-spacing:.14em;color:var(--dim);border-right:1px solid var(--line2);transition:.15s}
.nr-seg button:last-child{border-right:0}
.nr-seg button:hover{color:var(--m-hi);background:color-mix(in srgb,var(--cy) 10%,transparent)}
.nr-seg button.on{color:var(--m-hi);background:color-mix(in srgb,var(--cy) 24%,transparent);box-shadow:inset 0 -2px 0 var(--cy)}
.nr-seg.sm button{padding:4px 2px;font-size:9.5px}
.nr-q{display:flex;gap:6px;margin:8px 10px 0;align-items:stretch}
.nr-q input[type=search]{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:6px 8px;font:inherit;font-size:10.5px;letter-spacing:.08em}
.nr-q input[type=search]::placeholder{color:var(--mute)}
.nr-q input[type=search]:focus{outline:2px solid var(--cy2);outline-offset:1px;border-color:var(--cy)}
.nr-map{display:flex;align-items:center;gap:5px;font-size:9.5px;letter-spacing:.12em;color:var(--dim);cursor:pointer;white-space:nowrap}
.nr-map input{accent-color:var(--cy)}
.nr-map:has(input:checked){color:var(--cy2)}
.nr-chips{display:flex;gap:5px;margin:8px 10px 6px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin;scrollbar-color:var(--faint) transparent}
.nr-chip{flex:none;display:flex;align-items:center;gap:5px;padding:3px 7px;font-size:9.5px;letter-spacing:.1em;color:var(--dim);border:1px solid var(--line2);background:var(--panel);white-space:nowrap}
.nr-chip i{width:6px;height:6px;background:var(--c,var(--cy));display:block;opacity:.55}
.nr-chip small{font-size:10px;color:var(--mute)}
.nr-chip:hover{color:var(--m-hi);border-color:var(--c,var(--cy))}
.nr-chip.on{color:var(--m-hi);border-color:var(--c,var(--cy));background:color-mix(in srgb,var(--cy) 14%,transparent)}
.nr-chip.on i{opacity:1;box-shadow:0 0 6px var(--c,var(--cy))}
.nr-chip.on small{color:var(--cy2)}
.nr-list{position:relative;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--faint) transparent;border-top:1px solid var(--line2);overscroll-behavior:contain}
.nr-sizer{position:relative;width:100%}
.nr-row{position:absolute;left:0;right:0;height:100px;border-bottom:1px solid var(--line2);border-left:3px solid var(--c);background:transparent;transition:background .15s}
.nr-row:hover,.nr-row:focus-within{background:linear-gradient(90deg,color-mix(in srgb,var(--cy) 10%,transparent),transparent)}
.nr-row.sel{background:linear-gradient(90deg,color-mix(in srgb,var(--red) 18%,transparent),transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--red) 35%,transparent)}
.nr-row.new{animation:nrnew 1.6s ease-out 1}
@keyframes nrnew{0%{background:color-mix(in srgb,var(--red) 45%,transparent)}100%{background:transparent}}
.nr-main{display:flex;flex-direction:column;gap:3px;width:100%;height:100%;text-align:left;padding:8px 10px 8px 9px;overflow:hidden}
.nr-main:focus-visible{outline:2px solid var(--cy2);outline-offset:-2px}
.nr-meta{display:flex;align-items:center;gap:7px;font-size:9.5px;letter-spacing:.1em;color:var(--dim);white-space:nowrap;min-width:0}
.nr-tag{font-weight:400;color:var(--c);border:1px solid currentColor;padding:0 4px;font-size:10px;letter-spacing:.14em;flex:none;line-height:14px}
.nr-src{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;color:var(--m-ink2)}
.nr-meta time{flex:none;color:var(--cy2)}
.nr-new{font-style:normal;flex:none;color:#fff;background:var(--red);padding:0 4px;font-size:10px;letter-spacing:.14em;line-height:14px}
.nr-title{font:600 13.5px/1.22 var(--hd);letter-spacing:.03em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nr-loc{display:flex;align-items:center;gap:5px;font-size:9.5px;letter-spacing:.08em;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:auto;max-width:calc(100% - 128px)}
.nr-loc svg{flex:none;color:var(--c)}
.nr-row.nogeo .nr-loc{color:var(--mute)}
.nr-acts{position:absolute;right:6px;bottom:4px;display:flex;gap:4px}
.nr-fly,.nr-art{font-size:10px;letter-spacing:.14em;padding:2px 6px;border:1px solid var(--line);color:var(--cy2);background:var(--panel2);line-height:14px}
.nr-fly:hover,.nr-art:hover{border-color:var(--cy);color:var(--m-hi);background:color-mix(in srgb,var(--cy) 22%,transparent)}
.nr-fly:focus-visible,.nr-art:focus-visible{outline:2px solid var(--cy2);outline-offset:1px}
.nr-empty{padding:26px 16px;font-size:10.5px;letter-spacing:.1em;color:var(--dim);line-height:1.6;text-align:center}
.nr-empty b{display:block;color:var(--cy2);letter-spacing:.2em;margin-bottom:6px}
.nr-f{padding:6px 10px;font-size:10px;letter-spacing:.1em;color:var(--mute);border-top:1px solid var(--line2);line-height:1.4}
/* collapsed tab */
.nr-tab{pointer-events:auto;position:absolute;left:0;top:0;display:none;flex-direction:column;align-items:center;gap:8px;width:34px;padding:12px 0;background:var(--glass);border:1px solid var(--line);color:var(--cy2);backdrop-filter:blur(10px);clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.nr-tab:hover{border-color:var(--cy);color:var(--m-hi);background:var(--glass2)}
.nr-tab-t{writing-mode:vertical-rl;font:700 13px var(--hd);letter-spacing:.24em}
.nr-tab b{font-weight:400;font-size:10px;background:var(--red);color:#fff;padding:1px 4px;min-width:16px;text-align:center}
.nr-tab b[hidden]{display:none}
.nr[data-open="0"] .nr-tab{display:flex}
@media (max-width:1500px){ body.l-open .nr .nr-panel{display:none} body.l-open .nr .nr-tab{display:flex} body.l-open .nr{width:34px} }
@media (max-width:1100px){ :root{--nw:272px} }
/* hover pin on the globe (the target-lock reticle comes from INSPECT) */
#nr-pin{position:fixed;left:0;top:0;width:0;height:0;z-index:6;pointer-events:none;color:var(--c,#ff3b4a)}
#nr-pin[hidden]{display:none}
#nr-pin .b{position:absolute;width:9px;height:9px;border:2px solid currentColor}
#nr-pin .tl{left:-24px;top:-24px;border-right:0;border-bottom:0}#nr-pin .tr{left:15px;top:-24px;border-left:0;border-bottom:0}
#nr-pin .bl{left:-24px;top:15px;border-right:0;border-top:0}#nr-pin .br{left:15px;top:15px;border-left:0;border-top:0}
.nr-pin-r{position:absolute;left:-16px;top:-16px;width:32px;height:32px;border:1.5px solid currentColor;border-radius:50%;animation:nrpin 1.1s ease-out infinite}
@keyframes nrpin{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.5);opacity:0}}
#nr-pin em{position:absolute;left:24px;top:-8px;font-style:normal;font-size:10px;letter-spacing:.14em;color:var(--m-hi);background:var(--panel2);border:1px solid currentColor;padding:1px 6px;white-space:nowrap}
/* PRESETS (was QUICK START) */
#qs{position:fixed;z-index:6;left:50%;transform:translateX(-50%);top:calc(var(--topy) + var(--toph) + 12px);display:flex;align-items:center;gap:5px;max-width:calc(100vw - 2 * (var(--rw) + var(--g) + 20px));overflow-x:auto;scrollbar-width:none;padding:5px 7px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(8px)}
#qs::-webkit-scrollbar{display:none}
.qs-l{flex:none;font-size:10px;letter-spacing:.24em;color:var(--cy);padding-right:4px;white-space:nowrap}
#qs.bare .qs-l{color:var(--red2)}
.qs-b{flex:none;padding:5px 9px;font-size:10px;letter-spacing:.14em;color:var(--cy2);border:1px solid var(--line);background:color-mix(in srgb,var(--cy) 6%,transparent);white-space:nowrap;transition:.15s}
.qs-b:hover:not(:disabled){border-color:var(--cy);background:color-mix(in srgb,var(--cy) 22%,transparent);color:var(--m-hi)}
.qs-b.on{border-color:var(--cy);background:color-mix(in srgb,var(--cy) 30%,transparent);color:var(--m-hi);box-shadow:0 0 10px color-mix(in srgb,var(--cy) 30%,transparent)}
.qs-b.on::before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;vertical-align:1px;background:var(--m-hi);box-shadow:0 0 6px var(--cy2)} /* active preset: lit dot, tap again = off */
.qs-r{border-color:color-mix(in srgb,var(--red) 50%,transparent);color:var(--m-red-ink);background:color-mix(in srgb,var(--red) 8%,transparent)}
.qs-r:hover:not(:disabled){border-color:var(--red);background:color-mix(in srgb,var(--red) 28%,transparent)}
.qs-b.pulse{border-color:var(--red);color:var(--m-hi);animation:qspulse 1.25s ease-in-out 8}
@keyframes qspulse{0%,100%{box-shadow:0 0 0 transparent;background:color-mix(in srgb,var(--red) 12%,transparent)}50%{box-shadow:0 0 14px color-mix(in srgb,var(--red) 70%,transparent);background:color-mix(in srgb,var(--red) 38%,transparent)}}
.qs-b:disabled{opacity:.4;cursor:default}
.qs-b:focus-visible{outline:2px solid var(--cy2);outline-offset:1px}
.qs-l em{font-style:normal;color:var(--dim)}
@media (max-width:1180px){ .qs-l{display:none} }
@media (max-width:1760px){ .qs-l em{display:none} }
@media (max-width:1440px){ .qs-b{padding:5px 7px;letter-spacing:.1em} }
/* PHONE: the wire is a swipe-up sheet; quick start scrolls along the bottom beside the NEWS pill */
@media (max-width:760px), (max-height:500px) and (pointer:coarse){
  .nr{left:0;top:auto;bottom:0;width:0;height:0}
  body.l-open .nr{left:0}
  body.l-open .nr .nr-panel{display:flex}
  .nr-panel{position:fixed;left:0;right:0;bottom:calc(var(--botb) + var(--both) + 52px);top:auto;height:56vh;inset:auto 0 calc(var(--botb) + var(--both) + 52px) 0;clip-path:none;border-width:1px 0 0;border-top:2px solid var(--red);transform:translateY(calc(100% + 220px));opacity:1;visibility:hidden;z-index:7}
  .nr[data-open="0"] .nr-panel{transform:translateY(calc(100% + 220px));opacity:1;visibility:hidden}
  .nr[data-open="1"] .nr-panel{transform:none;visibility:visible;transition:transform .25s}
  .nr-grab{display:block;width:44px;height:4px;background:var(--faint);margin:8px auto 0;border-radius:2px;flex:none}
  .nr-tab,.nr[data-open="0"] .nr-tab,body.l-open .nr .nr-tab{display:flex;position:fixed;left:auto;right:var(--g);top:auto;bottom:calc(var(--botb) + var(--both) + 58px);width:auto;flex-direction:row;padding:7px 12px;gap:7px;clip-path:none;z-index:8;border-color:var(--red)}
  .nr[data-open="1"] .nr-tab{display:none}
  .nr-tab-t{writing-mode:horizontal-tb;font-size:12px;letter-spacing:.2em}
  .nr-x{display:block;transform:rotate(-90deg)}
  .nr-q{flex-wrap:wrap}
  #qs{left:var(--g);right:calc(var(--g) + 128px);transform:none;max-width:none;top:auto;bottom:calc(var(--botb) + var(--both) + 58px)}
  .qs-l{display:none}
  body.nr-open #qs{display:none}
  .nr-row{height:100px}
  .nr-fly,.nr-art{padding:6px 9px;font-size:10px}
  .nr-seg button{padding:9px 4px}
}
@media (max-height:500px) and (pointer:coarse){ .nr-panel{height:auto;inset:calc(var(--topy) + var(--toph) + 44px) auto calc(var(--botb) + var(--both) + 48px) 0;width:min(46vw,440px)} .nr-tab{bottom:calc(var(--botb) + var(--both) + 60px)!important} #qs{top:auto;bottom:calc(var(--botb) + var(--both) + 54px)} }
@media (prefers-reduced-motion:reduce){ .nr-live,.nr-pin-r,.nr-row.new{animation:none!important} }
/* CJ 10/10: #qs now holds only RESET TO BARE (preset chips removed) and hides while bare */
#qs[hidden]{display:none}
@media (max-width:760px), (max-height:500px) and (pointer:coarse){ #qs{right:auto} }
/* CJ 10/10: NEWS WIRE moved to a header toolbar button on desktop; the vertical side tab only survives on phones (bottom pill) */
.nr .nr-tab{display:none!important}
@media (max-width:760px), (max-height:500px) and (pointer:coarse){ .nr[data-open="0"] .nr-tab{display:flex!important} }
#tools .nrb{width:auto;padding:0 11px;display:flex;align-items:center;gap:7px;font:700 12px var(--hd);letter-spacing:.2em;color:var(--cy2);white-space:nowrap}
#tools .nrb b{font:400 10px var(--mono);letter-spacing:0;background:var(--red);color:#fff;padding:1px 4px;min-width:16px;text-align:center}
#tools .nrb b[hidden]{display:none}
#tools .nrb span.nrb-t{width:auto;height:auto}
#tools .nrb span.nr-live{width:7px;height:7px}
/* UX sweep tab-extras: 44px touch targets in the wire sheet */
@media (max-width:760px), (max-height:500px) and (pointer:coarse){
  .nr-x{width:44px;height:44px}
  .nr-seg button{min-height:44px}.nr-seg.sm button{min-height:44px;padding:10px 2px}
  .nr-q input[type=search]{min-height:44px;font-size:16px}
  .nr-chip{min-height:44px;padding:6px 10px;font-size:10px}.nr-chip small{font-size:10px}
  .nr-fly,.nr-art{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .nr-stories{min-height:44px;font-size:10px}
}
@media (max-width:760px) and (min-height:501px){ .nr-panel{height:68vh} }
@media (max-width:380px){ .nr-h{gap:5px;padding-left:10px}.nr-h h2{flex:1 1 auto;min-width:0;font-size:15px;letter-spacing:.12em}.nr-count{white-space:normal;max-width:70px;line-height:1.2}.nr-stories{padding:0 6px}.nr-x{flex:none}.nr-stories{flex:none} }
@media (max-height:500px) and (pointer:coarse){ .nr-seg button,.nr-seg.sm button,.nr-chip{min-height:30px;padding-top:3px;padding-bottom:3px}.nr-q input[type=search],.nr-stories,.nr-x{min-height:34px}.nr-x{width:34px;height:34px}.nr-h{padding-top:4px;padding-bottom:4px}.nr-seg{margin-top:4px}.nr-q{margin-top:4px}.nr-fly,.nr-art{min-height:34px} }
@media (max-height:500px) and (pointer:coarse){ .nr-panel{overflow-y:auto} .nr-list{flex:none;height:170px} }
/* light mode (CJ 10/13 polish): category tags are data colors, pull them toward ink on paper */
html[data-theme="light"] :is(.nr-tag,.nr-loc svg){color:color-mix(in srgb,var(--c) 40%,var(--ink))}
/* CJ 10/13 QA: the header pushed its own collapse button out of the panel; landscape phones had a 0px headline list */
.nr-x{flex:none} .nr-h h2{min-width:0} .nr-count{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-height:500px) and (pointer:coarse){ #nr-wins,#nr-chips{display:none} }
html[data-theme="light"] .nr-row.sel{background:linear-gradient(90deg,color-mix(in srgb,var(--red) 10%,transparent),transparent)}
