body { font-family: "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", sans-serif; padding-bottom: 28px; }
.manual h1 { font-size: 1.4rem; font-weight: 700; margin: 1rem 0 .5rem; }
.manual h2 { font-size: 1.15rem; font-weight: 700; margin: 1.2rem 0 .4rem; border-bottom: 1px solid #e2e8f0; }
.manual h3 { font-weight: 700; margin: .8rem 0 .3rem; }
.manual table { border-collapse: collapse; margin: .5rem 0; font-size: .85rem; }
.manual th, .manual td { border: 1px solid #e2e8f0; padding: .25rem .5rem; text-align: left; }
.manual pre { background: #0f172a; color: #e2e8f0; padding: .75rem; border-radius: .375rem; overflow-x: auto; font-size: .8rem; }
.manual code { font-size: .85em; }
.manual ul, .manual ol { padding-left: 1.4rem; list-style: disc; }
.manual ol { list-style: decimal; }
.manual p { margin: .4rem 0; }
.prose ul { list-style: disc; padding-left: 1.2rem; } .prose ol { list-style: decimal; padding-left: 1.2rem; } .prose h2,.prose h3 { font-weight: 700; margin-top: .6rem; } .prose p { margin: .4rem 0; }
@media print { aside, header, #bulkbar, button, .fixed, .no-print { display: none !important; } #insight-report .ins-ev { display: inline-block !important; } #insight-report section, .ins-imp { break-inside: avoid; } #insight-report { max-width: none; } }

/* 通信中の表示 */
#busy-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none;opacity:0;transition:opacity .2s;background:linear-gradient(90deg,transparent,#0ea5e9,#38bdf8,transparent);background-size:40% 100%;background-repeat:no-repeat}
#busy-bar.on{opacity:1;animation:busy-slide 1s linear infinite}
@keyframes busy-slide{from{background-position:-40% 0}to{background-position:140% 0}}
body.is-busy{cursor:progress}
.btn-busy{position:relative;opacity:.7;pointer-events:none}
.btn-busy::after{content:"";display:inline-block;width:.9em;height:.9em;margin-left:.4em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
button:disabled{opacity:.6;cursor:not-allowed}
@media (prefers-reduced-motion: reduce){#busy-bar.on{animation:none;background:#0ea5e9}.btn-busy::after{animation:none}}
