/* 局部接入沿用原站卡框、颜色和字体。旁白在正常文档流内，不遮住原卡牌。 */
.visit-companion{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:18px;width:min(760px,100%);margin:12px auto 28px;text-align:left}
.visit-companion[hidden]{display:none}
.companion-character{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 4px 8px;background:none;border:0;color:var(--ink);cursor:pointer;min-width:0}
.companion-character img{width:110px;height:110px;object-fit:contain;transition:transform .24s}
.companion-character:hover img{transform:rotate(-5deg) translateY(-3px)}
.companion-character:active img{transform:scale(.95)}
.companion-character span{font-size:10px;line-height:1.5;font-weight:700;text-align:center;text-wrap:balance}
.companion-message{position:relative;min-width:0;padding:17px 21px 15px;border:2px solid var(--ink);border-radius:12px;background:#fffefa;box-shadow:5px 6px 0 var(--shadow)}
.companion-caption{display:flex;gap:8px;align-items:center;justify-content:space-between}
.companion-caption>span{font-size:10px;font-weight:900;letter-spacing:.035em;color:#58718a}
.companion-caption button{min-height:36px;padding:5px 0 5px 12px;background:none;border:0;color:#526978;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font-size:11px;flex:none}
.companion-message>p{font-size:16px;line-height:1.8;font-weight:700;min-height:2.7em;margin:5px 0 10px;text-wrap:pretty}
.companion-message>small{font-size:10px;line-height:1.6;color:#637c8b}
.visit-companion.has-new-line .companion-message>p{animation:visit-line-in .24s ease both}
.visit-companion.is-quiet{grid-template-columns:58px minmax(0,1fr);max-width:540px;gap:10px}
.visit-companion.is-quiet .companion-character img{width:52px;height:52px}
.visit-companion.is-quiet .companion-character span,.visit-companion.is-quiet .companion-message>small{display:none}
.visit-companion.is-quiet .companion-message{padding:3px 14px;box-shadow:3px 4px 0 var(--shadow)}
.visit-companion.is-quiet .companion-caption button{min-height:44px}
.visit-tablet{position:relative;background:#fffefa;border:3px solid var(--ink);border-radius:18px;box-shadow:10px 12px 0 #2f3a4a1a;margin:40px auto 54px;padding:36px 42px 24px;text-align:left;width:min(1000px,100%)}
.tablet-heading{display:grid;grid-template-columns:112px minmax(0,1fr);gap:24px;align-items:center;margin-bottom:20px}
.tablet-art{width:112px;height:112px;object-fit:contain;transform:rotate(-5deg)}
.tablet-eyebrow{color:#66717b;font-size:11px;letter-spacing:.07em;font-weight:900;margin:0 0 13px}
#tablet-title{font-size:clamp(25px,3vw,38px);line-height:1.3;margin:0 0 12px;letter-spacing:-.03em}
#tablet-title span{display:block;text-wrap:balance}#tablet-title span:last-child{color:#4c7b96}
.chronicle-intro>p:last-child{font-size:13px;line-height:1.8;margin:0;color:#5d7280}
#final-narrator-slot .visit-companion{margin:16px 0 26px;width:100%;grid-template-columns:90px minmax(0,1fr)}
#final-narrator-slot .companion-character img{width:80px;height:80px}
#final-narrator-slot .companion-message{border-width:1px;box-shadow:none;background:#f2f7f8}
#final-narrator-slot .companion-message>p{font-size:14px;min-height:0}
#final-narrator-slot .visit-companion.is-quiet{grid-template-columns:52px minmax(0,1fr)}
#final-narrator-slot .visit-companion.is-quiet img{width:48px;height:48px}
.tablet-status{display:flex;gap:14px;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #2f3a4a28;font-size:11px;color:#536d7d;line-height:1.6;font-weight:800}
.visit-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:16px 0 30px;border-block:2px solid var(--ink)}
.visit-metrics>div{padding:20px 18px;min-width:0;border-right:1px solid #2f3a4a21}
.visit-metrics>div:nth-child(3n){border-right:0}.visit-metrics>div:nth-child(n+4){border-top:1px solid #2f3a4a21}
.visit-metrics dt{font-size:12px;line-height:1.55;color:#5a7180;font-weight:800}
.visit-metrics dd{font-size:clamp(26px,3vw,38px);line-height:1.3;font-weight:900;margin:7px 0 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.visit-metrics>div:first-child dd{color:#258ab0}
.tablet-story h4,.tablet-details h4{font-size:12px;font-weight:900;letter-spacing:.055em;margin:0 0 19px;line-height:1.7;color:#5b6f7a}
#visit-story{list-style:none;padding:0;margin:0 0 28px}
#visit-story li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px dashed #2f3a4a24}
#visit-story li:last-child{border-bottom:0}
.story-time{font-family:ui-monospace,Consolas,monospace;font-size:11px;line-height:2;color:#84632d;font-weight:700}
#visit-story p{margin:0;font-size:14px;line-height:1.85}
.tablet-details{border:1px solid #2f3a4a3d;border-radius:9px;background:#f6f9fa;overflow:hidden}
.tablet-details>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;cursor:pointer;min-height:56px;font-size:13px;font-weight:800;list-style:none}
.tablet-details>summary::-webkit-details-marker{display:none}
.tablet-details>summary::before{content:"+";font-size:22px;line-height:1;color:#4d6e80}
.tablet-details[open]>summary::before{content:"−"}
.tablet-details>summary>span:first-child{margin-right:auto}
#visit-record-count{font-size:10px;white-space:nowrap;font-weight:500;color:#5a7180}
.tablet-details-content{padding:8px 22px 24px;border-top:1px solid #2f3a4a25}
#visit-stat-detail{font-size:12px;line-height:2;margin:10px 0 28px;color:#4e6777}
.page-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px;margin:0 0 30px}
.page-times>div{display:flex;gap:8px;justify-content:space-between;padding:9px 0;border-bottom:1px solid #2f3a4a20;font-size:11px;line-height:1.5}
.page-times dd{margin:0;font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}
.record-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.record-toolbar h4{margin:0}
#visit-filter{font:inherit;font-size:11px;background:white;color:var(--ink);border:1px solid #728b99;border-radius:4px;min-height:44px;padding:9px;max-width:100%}
.record-limit{font-size:10px;line-height:1.8;color:#637783;margin:10px 0 14px}
.visit-log{list-style:none;padding:0 12px 0 0;margin:0;max-height:420px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;outline-offset:3px}
.visit-log li{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:10px;border-bottom:1px solid #2f3a4a18;padding:12px 0;align-items:start}
.visit-log time{font:10px/1.8 ui-monospace,Consolas,monospace;color:#6b7f89}
.visit-log p{margin:0;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.visit-log .event-narrator-line p{color:#7c5924}.visit-log .event-unlock p,.visit-log .event-synthesis p{font-weight:700}
.record-repeat{font-size:10px;white-space:nowrap;background:#e4edf0;padding:2px 5px;border-radius:3px;line-height:1.7}
.visit-secondary{margin:15px auto 0;display:block;padding:10px 15px;border:1px solid #728b99;border-radius:5px;background:#fff;cursor:pointer;font:inherit;font-size:12px;min-height:44px}
.visit-secondary[hidden]{display:none}
.visit-definition,.visit-privacy{font-size:11px;line-height:1.9;color:#576f7f;margin:22px 0 0}
.visit-vignette{font-size:10px;line-height:1.8;color:#6b7f89;margin:9px 0 0}
.visit-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.visit-companion button:focus-visible,.visit-tablet button:focus-visible,.visit-tablet summary:focus-visible,.visit-tablet select:focus-visible,.visit-log:focus-visible{outline:3px solid #1a83ae;outline-offset:5px}
@keyframes visit-line-in{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:760px){
 .visit-companion{grid-template-columns:76px minmax(0,1fr);gap:10px;margin:15px auto 25px}
 .companion-character img{width:75px;height:75px}.companion-character span{font-size:9px}
 .companion-message{padding:10px 13px 12px;border-radius:9px;box-shadow:3px 4px 0 var(--shadow)}
 .companion-caption{flex-wrap:wrap;gap:0}.companion-caption>span{font-size:9px}
 .companion-caption button{font-size:10px;min-height:44px;padding:5px 0;margin-left:auto}
 .companion-message>p{font-size:13px;line-height:1.9;min-height:0;margin:2px 0 8px}
 .companion-message>small{font-size:9px}
 .visit-companion.is-quiet{grid-template-columns:48px minmax(0,1fr);gap:9px}.visit-companion.is-quiet .companion-character img{width:46px;height:46px}
 .visit-tablet{padding:24px 19px 22px;margin:30px auto 38px;border-width:2px;border-radius:12px;box-shadow:5px 7px 0 #2f3a4a1a}
 .tablet-heading{grid-template-columns:60px minmax(0,1fr);gap:10px;align-items:start;margin-bottom:14px}
 .tablet-art{width:60px;height:70px}.tablet-eyebrow{font-size:9px;line-height:1.6;letter-spacing:.02em;margin-bottom:10px}
 #tablet-title{font-size:24px;line-height:1.4;letter-spacing:-.03em;margin-bottom:10px}
 .chronicle-intro>p:last-child{font-size:11px;line-height:1.9}
 #final-narrator-slot .visit-companion{grid-template-columns:52px minmax(0,1fr);gap:8px;margin:18px 0 23px}
 #final-narrator-slot .companion-character img{width:50px;height:50px}
 #final-narrator-slot .companion-character span{display:none}
 #final-narrator-slot .companion-message>p{font-size:12px}
 .tablet-status{font-size:9px;align-items:flex-start;gap:8px}
 .visit-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:13px 0 26px}
 .visit-metrics>div{padding:15px 10px}.visit-metrics>div:nth-child(3n){border-right:1px solid #2f3a4a21}
 .visit-metrics>div:nth-child(2n){border-right:0}.visit-metrics>div:nth-child(n+3){border-top:1px solid #2f3a4a21}
 .visit-metrics dt{font-size:10px}.visit-metrics dd{font-size:28px}
 #visit-story li{grid-template-columns:46px minmax(0,1fr);gap:8px;padding:11px 0}
 #visit-story p{font-size:12px;line-height:1.9}.story-time{font-size:10px}
 .tablet-story h4,.tablet-details h4{font-size:10px;letter-spacing:.025em}
 .tablet-details>summary{padding:13px 10px;gap:8px;font-size:11px}
 #visit-record-count{font-size:9px}
 .tablet-details-content{padding:7px 12px 17px}
 .page-times{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}.page-times>div{font-size:10px;flex-wrap:wrap;gap:4px}
 .record-toolbar{align-items:stretch;flex-direction:column}.record-toolbar label{align-self:flex-start}
 #visit-filter{font-size:10px}
 #visit-stat-detail{font-size:10px;line-height:2}
 .visit-log{padding-right:7px;max-height:360px}
 .visit-log li{grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:11px 0}
 .visit-log time{grid-column:1/-1;font-size:9px}.visit-log p{font-size:11px}
 .visit-privacy,.visit-definition{font-size:10px}.visit-vignette{font-size:9px}
}
@media(max-width:350px){
 .visit-companion{grid-template-columns:58px minmax(0,1fr);gap:8px}.companion-character img{width:56px;height:56px}
 .companion-character span{font-size:8px}.companion-message{padding:8px 10px}
 .companion-message>p{font-size:12px}
 .visit-tablet{padding-inline:13px}.tablet-heading{grid-template-columns:46px minmax(0,1fr);gap:7px}
 .tablet-art{width:46px;height:60px}#tablet-title{font-size:22px}
 #final-narrator-slot .visit-companion{grid-template-columns:46px minmax(0,1fr);gap:7px}
 #final-narrator-slot .companion-character img{width:40px;height:40px}
}
@media(prefers-reduced-motion:reduce){
 .visit-companion.has-new-line .companion-message>p{animation:none}
 .companion-character img{transition:none}.companion-character:hover img{transform:none}
}
