/* JAVIS Product Detail (V1 FULL "Product Detail" screen, option A). Dashboard header + tabs + panels in the app shell;
 * the article body below keeps its own (scoped, dark-mapped) CSS. Tokens: javis-directory.css :root (--jd-*). */
.jp{--jp-head:64px}
.jp-crumbs{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.jp-crumbs .jd-back{margin:0}
.jp-crumbs nav{display:flex;gap:8px;font-size:13px;color:var(--jd-muted);flex-wrap:wrap}
.jp-crumbs nav a{color:var(--jd-muted)}.jp-crumbs nav a:hover{color:var(--jd-text)}
.jp-crumbs nav [aria-current]{color:var(--jd-text)}

.jp-head{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:22px;align-items:stretch;margin-bottom:18px}
.jp-id{display:flex;gap:22px;align-items:flex-start;min-width:0}
.jp-logo{flex:0 0 120px;height:120px;border-radius:18px;background:var(--jd-panel2);border:1px solid var(--jd-line);display:grid;place-items:center;overflow:hidden}
.jp-logo .jd-logo{width:72px;height:72px;border-radius:14px;object-fit:contain}
.jp-logo .jd-logo--mono{display:grid;place-items:center;font-size:34px;font-weight:800;color:var(--jd-gold);background:none}
.jp-logo .jd-logo[hidden]{display:none}
.jp-id__text{min-width:0}
.jp-id__top{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.jp-pill{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--jd-gold);background:rgba(231,187,85,.12);border:1px solid rgba(231,187,85,.35);border-radius:999px;padding:3px 9px}
.jp-checked{display:inline-flex;gap:5px;align-items:center;font-size:12.5px;font-weight:700;color:var(--jd-gold);border:1px solid rgba(231,187,85,.35);border-radius:999px;padding:3px 10px}
.jp-name{font-size:40px;line-height:1.1;font-weight:800;letter-spacing:-.02em;color:#fff;margin:0 0 4px}
.jp-cat{margin:0 0 6px;font-size:15px;font-weight:600;color:#c3cad0}.jp-cat span{color:var(--jd-muted);margin:0 4px}
.jp-tagline{margin:0 0 10px;font-size:15.5px;color:#c3cad0;max-width:720px}
.jp-facts{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 16px;font-size:14px;color:var(--jd-muted)}
.jp-facts span{display:inline-flex;gap:7px;align-items:center}.jp-facts b{color:var(--jd-text);font-weight:700}
.jp-ctas{display:flex;gap:12px;flex-wrap:wrap}
.jp-ctas .j-btn{display:inline-flex;gap:8px;align-items:center;min-height:44px;padding:10px 22px;border-radius:8px;font-weight:700}
.jp-btn--ghost{background:transparent;border:1px solid var(--jd-line2);color:var(--jd-text)}
.jp-btn--ghost:hover{border-color:var(--jd-gold);color:#fff}

.jp-score{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;background:var(--jd-panel);border:1px solid var(--jd-line);border-radius:14px;padding:20px 22px}
.jp-score__label{margin:0 0 6px;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--jd-text)}
.jp-score__num{margin:0;font-size:54px;line-height:1;font-weight:800;color:var(--jd-gold)}
.jp-score__num span{font-size:22px;color:var(--jd-muted);font-weight:600;margin-left:4px}
.jp-bar{height:6px;background:var(--jd-line);border-radius:99px;overflow:hidden;margin:12px 0 10px}
.jp-bar span{display:block;height:100%;background:var(--jd-gold);border-radius:99px}
.jp-score__note{margin:0;font-size:12.5px;line-height:1.45;color:var(--jd-muted)}
.jp-score__rows{margin:0;border-left:1px solid var(--jd-line);padding-left:20px;display:flex;flex-direction:column;justify-content:center;gap:9px}
.jp-score__rows div{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0}
.jp-score__rows dt{font-size:13.5px;color:var(--jd-text);font-weight:600}
.jp-score__rows dd{margin:0;font-size:12.5px;font-weight:700;text-align:right;max-width:58%;line-height:1.35;padding:2px 9px;border-radius:999px;border:1px solid var(--jd-line2);color:#c3cad0}
.jp-score__rows dd.is-top{color:var(--jd-gold);border-color:rgba(231,187,85,.45)}
.jp-score__rows dd.is-good{color:var(--jd-green);border-color:rgba(78,201,138,.4)}
.jp-score__rows dd.is-fact{border:0;padding:0;border-radius:0;color:var(--jd-text);font-weight:600}
.jp-score__rows dd.is-low{color:#f08a8a;border-color:rgba(240,138,138,.4)}

.jp-tabs{position:sticky;top:var(--jp-head);z-index:30;display:flex;gap:4px;background:rgba(10,13,16,.96);backdrop-filter:blur(8px);border:1px solid var(--jd-line);border-radius:12px;padding:0 10px;margin-bottom:22px;overflow-x:auto;scrollbar-width:none}
.jp-tabs::-webkit-scrollbar{display:none}
.jp-tabs a{flex:1 0 auto;text-align:center;padding:14px 18px 12px;font-size:14px;font-weight:600;color:#c3cad0;border-bottom:3px solid transparent;white-space:nowrap}
.jp-tabs a:hover{color:#fff}
.jp-tabs a.is-active{color:var(--jd-gold);border-bottom-color:var(--jd-gold)}
.jr-art [id],.jp [id]{scroll-margin-top:calc(var(--jp-head) + 64px)}

/* Article chrome now carried by the dashboard: the article's own site header, tab bar and score box. Hidden, not removed. */
.jp .jr-art > header,.jp .jr-art .hero nav.tabs,.jp .jr-art .hero .scorebox{display:none}
.jp .jr-art .hero-grid{grid-template-columns:minmax(0,1fr)}
.jp .jr-art .hero{border:1px solid var(--jd-line);border-radius:14px;padding-bottom:26px;margin-bottom:22px}
.jp .jr-art .wrap{max-width:none;padding:0 22px}
.jp .jr-art .wrap.layout{padding:0}
.jp .jr-art .hero .wrap{padding:0 26px}
.jp .jr-art .footer{border-radius:14px}
.jp .jr-art{display:block;min-width:0}

.jp-panels{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;margin:28px 0 18px}
.jp-panel{background:var(--jd-panel);border:1px solid var(--jd-line);border-radius:14px;padding:18px 20px;min-width:0}
.jp-panel__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.jp-panel__head h2{margin:0;font-size:18px;color:#fff}
.jp-alts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.jp-alt{background:var(--jd-panel2);border:1px solid var(--jd-line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.jp-alt__id{display:flex;gap:10px;align-items:center;color:var(--jd-text)}
.jp-alt__id .jd-logo{width:40px;height:40px;border-radius:10px;flex:0 0 40px}
.jp-alt__id b{display:block;font-size:14.5px}.jp-alt__id em{font-style:normal;font-weight:800;color:var(--jd-gold)}.jp-alt__id small{color:var(--jd-muted);font-weight:600}
.jp-alt p{margin:0;font-size:12.5px;line-height:1.45;color:var(--jd-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jp-alt__cmp{margin-top:auto;font-size:12.5px;font-weight:700;color:#c3cad0;border-top:1px solid var(--jd-line);padding-top:8px}
.jp-alt__cmp:hover{color:var(--jd-gold)}
.jp-ev{margin:0;display:flex;flex-direction:column}
.jp-ev div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--jd-line);font-size:13.5px}
.jp-ev div:last-child{border-bottom:0}
.jp-ev dt{color:var(--jd-muted)}.jp-ev dd{margin:0;color:var(--jd-text);overflow-wrap:anywhere}.jp-ev a{color:#8dbcec}
.jp-empty{margin:0;color:var(--jd-muted);font-size:14px}

.jp-verdict{display:flex;gap:16px;align-items:center;background:var(--jd-panel);border:1px solid rgba(231,187,85,.45);border-radius:14px;padding:16px 22px}
.jp-verdict__icon{color:var(--jd-gold);flex:0 0 auto}
.jp-verdict strong{color:var(--jd-gold);font-size:17px;white-space:nowrap;padding-right:16px;border-right:1px solid var(--jd-line)}
.jp-verdict p{margin:0;flex:1;font-size:14.5px;color:var(--jd-text)}
.jp-verdict__score{flex:0 0 auto;font-weight:800;color:#111;background:var(--jd-gold);border-radius:999px;padding:5px 14px}

.jp-score__main,.jp-score__rows{min-width:0}
@media(max-width:1300px){.jp-head{grid-template-columns:minmax(0,1fr)}.jp-score{max-width:760px}}
@media(max-width:1023px){.jp-panels{grid-template-columns:1fr}}
@media(max-width:767px){
 .jp-crumbs nav{display:none}
 .jp-id{gap:14px}.jp-logo{flex-basis:64px;height:64px;border-radius:14px}.jp-logo .jd-logo{width:44px;height:44px}
 .jp-name{font-size:30px}.jp-facts{gap:14px}
 .jp-ctas .j-btn{flex:1 1 auto;justify-content:center}
 .jp-score{grid-template-columns:minmax(0,1fr);padding:16px}.jp-score__rows{border-left:0;padding-left:0;border-top:1px solid var(--jd-line);padding-top:12px}
 .jp-score__num{font-size:44px}
 .jp-tabs{margin:0 -16px 18px;border-radius:0;border-left:0;border-right:0}
 .jp-tabs a{flex:0 0 auto;padding:12px 12px 10px}
 .jp .jr-art .hero .wrap,.jp .jr-art .wrap{padding:0 14px}
 .jp-alts{grid-template-columns:1fr}
 .jp-ev div{grid-template-columns:1fr;gap:2px}
 .jp-verdict{flex-wrap:wrap}.jp-verdict strong{border-right:0;padding-right:0}.jp-verdict p{flex-basis:100%}
}
.jp-head--solo{grid-template-columns:minmax(0,1fr)}
.jp .jr-art--paper{background:#f6f6f2;color:#171914;border-radius:14px;overflow:hidden;color-scheme:light}
.jp-score__rows dd:not(.is-fact){white-space:nowrap;max-width:none}
/* Batch 4 (2026-10-04). (a) Pipeline labels (div.visual-tag: DATA_VISUAL, OFFICIAL_MEDIA…) are for the visual-count lock,
 * not for readers; data-visual-type stays in the markup for the count. */
.jp .jr-art .visual-tag{display:none}
/* (c) Scroll hint on wide tables: where tables scroll (<=960px, see the mobile safety net), a gold edge appears on the side
 * that has more content, CSS only (covers scroll with the content; shadows stay with the box). Golden (dark) bodies only. */
@media(max-width:960px){
 .jp .jr-art:not(.jr-art--paper) .layout table{background:
  linear-gradient(90deg,#10161a 30%,rgba(16,22,26,0)) left center/40px 100% no-repeat local,
  linear-gradient(270deg,#10161a 30%,rgba(16,22,26,0)) right center/40px 100% no-repeat local,
  linear-gradient(90deg,rgba(231,187,85,.45),rgba(231,187,85,0)) left center/16px 100% no-repeat scroll,
  linear-gradient(270deg,rgba(231,187,85,.45),rgba(231,187,85,0)) right center/16px 100% no-repeat scroll;
  background-color:#10161a}
}
/* Batch 6 (2026-10-04): QA-style badges and TRUST STATUS box hidden; data-driven trust line in the dashboard. */
.jp .jr-art .jp-qa{display:none}
.jp-trust{margin:0 0 14px;font-size:12.5px;line-height:1.55;color:var(--jd-muted)}
.jp-trust span+span::before{content:"·";margin:0 8px;color:var(--jd-line2)}
.jp-pill--disc{color:#f0a77a;background:rgba(240,167,122,.12);border-color:rgba(240,167,122,.4)}
.jp-score__num--status{font-size:30px;color:#f0a77a;margin-top:6px}
/* Batch 8a (2026-10-04): JAVIS byline + author box on reviews; About/Contact; 5-column footer + social row. */
.jp-by{margin:0 0 6px;font-size:13px;color:#c3cad0}.jp-by a{color:var(--jd-gold);font-weight:700}
.jp-author{display:flex;gap:16px;align-items:flex-start;background:var(--jd-panel);border:1px solid var(--jd-line);border-radius:14px;padding:18px 20px;margin:28px 0 0}
.jp-author__mark{flex:0 0 48px;height:48px;border-radius:12px;display:grid;place-items:center;background:rgba(231,187,85,.12);color:var(--jd-gold);font-weight:800;font-size:22px;border:1px solid rgba(231,187,85,.35)}
.jp-author p{margin:0 0 8px;color:#c3cad0;font-size:14px;line-height:1.55}.jp-author__name{color:#fff!important;font-weight:800;font-size:15px!important}.jp-author__name span{color:var(--jd-muted);font-weight:600}
.jp-author__links a{color:var(--jd-gold)}
.ja-lead{font-size:18px;color:#c3cad0;max-width:760px}
.ja-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 28px}
.ja-stats div{background:var(--jd-panel,#10161a);border:1px solid var(--jd-line,#232b32);border-radius:12px;padding:14px}
.ja-stats b{display:block;font-size:26px;color:var(--jd-gold,#e7bb55)}.ja-stats span{font-size:13px;color:var(--jd-muted,#9aa3ab)}
.ja-mail{font-size:22px;font-weight:800}.ja-mail a{color:var(--jd-gold,#e7bb55)}.ja-note{color:var(--jd-muted,#9aa3ab);font-size:14px}
.j-footer__grid--5{grid-template-columns:1.6fr repeat(4,minmax(0,1fr))}
.j-footer__social{display:flex;flex-wrap:wrap;gap:8px 18px;margin:18px 0 6px;font-size:13px}.j-footer__social a{color:#c3cad0}.j-footer__social a:hover{color:var(--jd-gold,#e7bb55)}
@media(max-width:900px){.j-footer__grid--5{grid-template-columns:1fr 1fr}.ja-stats{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.j-footer__grid--5{grid-template-columns:1fr}.jp-author{flex-direction:column}}
