/* D02/R2 presentation repair. Retain original palette, typefaces and animation controllers. */
body.d02-u04{--d02-nav-h:calc(61px + env(safe-area-inset-bottom,0px));--d02-sticky-h:0px;padding-bottom:calc(var(--d02-nav-h) + var(--d02-sticky-h) + 16px)}
body.d02-u04.d02-has-download{--d02-sticky-h:76px}
.d02-u04 .wrap{padding-bottom:0}
.d02-u04 .hd .logo{display:flex;flex-direction:row;align-items:center;gap:9px;min-width:0;flex:1}
.d02-u04 .hd .logo>img{flex:none;width:32px;height:32px}
.d02-u04 .hd .logo .d02-brand-copy{display:flex;flex-direction:column;gap:2px;min-width:0;margin:0;color:var(--text)}
.d02-u04 .hd .logo .d02-logo-title,.d02-u04 .hd .logo .logo-t{display:block;font-family:var(--mono),var(--sans);font-size:clamp(20px,6.16vw,24px);font-weight:700;line-height:1.15;color:var(--text);max-width:100%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d02-u04 .hd .logo .d02-brand-subtitle{display:block;font-family:var(--mono);font-size:9px;font-weight:400;line-height:1.4;letter-spacing:.12em;color:var(--mute);margin:0;white-space:nowrap}
.d02-u04 .hd .hd-r{flex:none}
.d02-u04 .intro h1{font-size:17px;font-weight:900;line-height:1.4;margin:0 0 8px}
.d02-u04 .intro .d02-intro{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.d02-u04 .d02-related-list{display:flex;flex-direction:column;gap:10px;padding:0 var(--px)}
.d02-u04 .d02-related-list>.news{margin:0}
.d02-u04 .d02-more,.d02-u04 .d02-fg-recommend>.btn-line,.d02-u04 .d02-fg-related .btn-line{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:12px var(--px) 0;padding:11px 16px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:transparent;font-size:13px;font-weight:700;text-align:center;line-height:1.5;text-decoration:none;transition:background .2s,border-color .2s,transform .2s}
.d02-u04 .d02-more:hover,.d02-u04 .d02-fg-recommend>.btn-line:hover,.d02-u04 .d02-fg-related .btn-line:hover{background:var(--panel);border-color:var(--mute)}
.d02-u04 .d02-more:active,.d02-u04 .d02-fg-recommend>.btn-line:active,.d02-u04 .d02-fg-related .btn-line:active{transform:translateY(1px)}
.d02-u04 .d02-fg-recommend>.d02-fg-section-title{margin:30px 0 14px;padding:0 var(--px);font-size:20px;font-weight:900;line-height:1.4}
.d02-u04 .ft{margin-top:32px}
.d02-u04 .tabbar{z-index:40;min-height:calc(61px + env(safe-area-inset-bottom,0px))}
.d02-u04 .sticky-dl{bottom:var(--d02-nav-h);z-index:41;min-height:76px;padding:10px 14px 12px}
.d02-u04 .d02-sticky-inner{padding:0;background:transparent;color:inherit}
.d02-u04 .d02-sticky-inner>img{width:42px;height:42px;object-fit:cover;flex:none}
.d02-u04 .d02-sticky-text h4{font-size:13px;line-height:1.4}
.d02-u04 .d02-sticky-text p{font-size:10px;line-height:1.5;color:var(--mute)}
.d02-u04 .sticky-dl .btn{flex:0 0 auto;min-height:44px;padding:0 12px;font-size:12px;white-space:nowrap}
.d02-u04 .d02-back-top{position:fixed;right:max(14px,calc((100vw - 480px)/2 + 14px));bottom:calc(var(--d02-nav-h) + var(--d02-sticky-h) + 12px);z-index:42;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--dark);box-shadow:0 3px 12px #0003;cursor:pointer}
.d02-u04 .toast{bottom:calc(var(--d02-nav-h) + var(--d02-sticky-h) + 12px)}
.d02-u04 .tabbar a:focus-visible,.d02-u04 .d02-back-top:focus-visible,.d02-u04 .d02-more:focus-visible{outline:2px solid var(--y);outline-offset:2px}
@media(max-width:350px){.d02-u04 .hd{gap:8px}.d02-u04 .hd-r{gap:5px}.d02-u04 .hd .live{font-size:9px}.d02-u04 .hd .logo .d02-brand-subtitle{font-size:8px;letter-spacing:.06em}.d02-u04 .sticky-dl{padding-left:10px;padding-right:10px}.d02-u04 .sticky-dl .btn{padding:0 9px}}
@media(prefers-reduced-motion:reduce){.d02-u04 .d02-more,.d02-u04 .d02-fg-recommend>.btn-line,.d02-u04 .d02-fg-related .btn-line{transition:none}}

/* Restore the source rank ticket gap and keep controls beside their content. */
.d02-u04[data-d02-page="rank"] .mast+.chips{margin-block-start:18px}
.d02-u04[data-d02-page="rank"] [data-d02-rank-sort]{margin-block-end:14px}
/* The CMS topic filter follows common entrances as its own spaced section. */
.d02-u04[data-d02-page="nav"] .d02-nav-filter-label{margin-block-start:18px}
/* Keep all sorting choices visible; only the collection heading wraps. */
.d02-u04.d02-collection .d02-collection-list-title{flex-wrap:wrap;row-gap:12px}
@media(max-width:380px){.d02-u04[data-d02-fg] .priv-ft>div{flex-direction:column;align-items:stretch}.d02-u04[data-d02-fg] .priv-ft>div>.btn{flex:none;width:100%;min-width:0}}

/* UI feedback u09: only current FG body and guide heading; native ticket tokens. */
.d02-u04[data-d02-fg] .d02-fg-main .pane>.px:first-child{padding-block-start:24px}
.d02-u04[data-d02-fg] [data-d02-content] .dg-sec>h2,
.d02-u04[data-d02-fg] [data-d02-content]>h2{font-family:var(--sans);font-size:18px;font-weight:900;line-height:1.5;color:var(--paper);padding:4px 0 10px 12px;border-inline-start:4px solid var(--y);border-block-end:1px dashed var(--line);margin:24px 0 14px}
.d02-u04[data-d02-fg] [data-d02-content] .dg-sec>h2:first-child,
.d02-u04[data-d02-fg] [data-d02-content]>h2:first-child{margin-block-start:0}
.d02-u04[data-d02-fg] [data-d02-content] .howto-step{display:grid;grid-template-columns:4.5em minmax(0,1fr);align-items:start;gap:12px;padding:14px 0}
.d02-u04[data-d02-fg] [data-d02-content] .step-badge{display:flex;align-items:center;justify-content:center;min-height:32px;padding:5px 6px;font-size:12px;line-height:1.5;white-space:nowrap;word-break:normal;overflow-wrap:normal}
.d02-u04[data-d02-fg] [data-d02-content] .step-body{min-width:0;text-align:start}
.d02-u04[data-d02-fg] [data-d02-content] .step-body>strong{display:block;font:800 15px/1.6 var(--sans);margin:0 0 8px}
.d02-u04[data-d02-fg] [data-d02-content] .step-body>p{margin:0;color:var(--mute)}
.d02-u04 .d02-guide-list-title{flex-wrap:wrap;row-gap:12px}
.d02-u04 .d02-guide-list-title>[data-seg]{margin-inline-start:auto;max-width:100%}
/* Fixed UI is absent until ready and does not cover the contact actions. */
.d02-u04 .d02-back-top{visibility:hidden;pointer-events:none}
.d02-u04 .d02-back-top[data-d02-backtop-visible]{visibility:visible;pointer-events:auto}
