/* Monocraft and Fusion Pixel: SIL OFL, bundled locally. */
@font-face{font-family:CraftMono;src:url('./fonts/Monocraft.ttf') format('truetype');font-style:normal;font-weight:400 900;font-display:swap;unicode-range:U+0000-024F}
@font-face{font-family:CraftCJK;src:url('./fonts/FusionPixel-zh-hans.woff2') format('woff2');font-style:normal;font-weight:400 900;font-display:swap}
:root{--craft-font:CraftMono,CraftCJK,monospace}
body{font-family:var(--craft-font);font-size:16px;line-height:1.65}
body :is(button,input,select,textarea,h1,h2,h3,strong,small,span,p,a,label,kbd,summary,div){font-family:var(--craft-font)}
.hero h1{font-family:var(--craft-font);font-weight:400;line-height:1.5}
.brand strong,.brand small,.game-title,.world-label,.voxel-label,.voxel-slot small{font-family:var(--craft-font)}
.node-name{font-size:18px;line-height:1.5}
.node-meta{line-height:1.6}.node-header-actions{flex-wrap:wrap;justify-content:flex-end;max-width:105px}
.node-card .meter-label,.resource-grid .meter-label,.node-card .card-network>div>strong{font-size:16px}
.resource-grid .metric-foot{white-space:normal;overflow-wrap:anywhere}
.card-network>div{grid-template-columns:minmax(0,1fr)}.card-network>div>strong{text-align:left}
.node-facts{flex-wrap:wrap}.card-bottom{flex-wrap:wrap}.meter-label{flex-wrap:wrap;gap:2px 6px}
.ping-summary,.node-grid.list .ping-summary{font-size:14px;grid-template-columns:minmax(0,1fr) auto 62px}
.loss-track-row,.node-grid.list .loss-track-row{grid-template-columns:32px minmax(0,1fr) 58px;font-size:14px}
.route-item-label,.route-badge{overflow-wrap:anywhere}.route-item-icon{width:20px;height:20px}
.node-grid.list .latency-heading,.node-grid.list .latency-note{font-size:14px}
#ip-quality-popup{width:min(360px,calc(100vw - 20px));font-size:16px;line-height:1.7;padding:16px}
#ip-quality-popup p,#ip-quality-popup small,#ip-quality-popup a{font-size:14px;line-height:1.7}
#ip-quality-popup .quality-risk{font-size:16px}#ip-quality-popup .quality-score{font-size:36px;line-height:1.3}
#ip-quality-popup .coffee-section{padding-top:12px}.quality-title{font-size:18px}
.search .form-input,.tools select.form-input,.tab.button-normal{font-size:14px}
.connection,.inventory-footer,.section-heading{flex-wrap:wrap}.stat{min-width:0}.stat>div{min-width:0}.stat-label{white-space:normal}
@media(min-width:701px) and (max-width:1250px){
.node-grid:not(.list){grid-template-columns:repeat(2,minmax(0,1fr))}
.node-grid.list .node-card{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"identity resources network" "routes resources facts" "tags bottom traffic" "latency latency latency";gap:10px 14px}
.node-grid.list .latency-panel{border-left:0;border-top:1px dashed var(--line);padding:8px 0 0}
.node-grid.list .latency-rows{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
}
@media(max-width:850px) and (min-width:701px){.node-grid.list .latency-rows{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.node-name{font-size:16px}.node-header-actions{max-width:90px}.brand small{font-size:10px}.nav-wrap{flex-wrap:wrap}.nav-wrap nav{flex-wrap:wrap}.summary .stat{gap:8px}.stat .network-stat{font-size:16px}.stat-icon{display:none}.hero .eyebrow{flex-wrap:wrap}.hero .edition{display:none}.voxel-label{max-width:65%;font-size:12px}.voxel-slot small,.voxel-slot kbd{font-size:12px}.node-grid{grid-template-columns:minmax(0,1fr)}}
.node-header-actions{display:grid;grid-template-columns:auto auto;gap:5px;max-width:none;align-items:center}.node-header-actions>.badge{grid-column:1/-1;text-align:center;justify-self:end}.node-header-actions>.quality-panel{grid-column:1}.node-header-actions>.unlock-panel{grid-column:2}

/* Wide desktop inventory: keep three columns and give each card the extra room. */
@media(min-width:901px){.shell,.nav-wrap{max-width:1400px;width:90%;padding-left:22px;padding-right:22px}}
@media(min-width:1251px){.node-grid:not(.list){grid-template-columns:repeat(3,minmax(0,1fr))}}

/* More compact desktop framing, without shrinking readable labels. */
@media(min-width:901px){.shell{padding-top:22px}.node-grid{gap:14px}.node-card{padding:15px}.nav-wrap{min-height:78px}.hero{min-height:360px;padding:28px 30px;margin-bottom:22px}.summary{margin-bottom:28px}.stat{padding:18px 16px}.section-heading{margin-bottom:16px}.toolbar{margin-bottom:16px}}

/* Keep regional vote evidence in the tooltip and route details. */
.route-badge>.route-uncertain{display:none}
@media(min-width:901px){.node-grid{gap:12px}.node-card{padding:14px}.hero{min-height:330px;padding:24px 28px}.route-badge{padding:4px 5px}}

/* Compact route labels remain on one line. */
.route-badge .route-evidence-list .route-item-label{font-size:12px;gap:3px;white-space:nowrap;min-width:0;width:100%}
.route-badge .route-evidence-list .route-item-label>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;overflow-wrap:normal}
.route-badge .route-item-icon{width:14px;height:14px;flex-shrink:0}
@media(max-width:400px){.route-badge .route-evidence-list .route-item-label{font-size:11px;gap:2px}.route-badge .route-item-icon{width:12px;height:12px}}
/* Compact visual proportions; retain readable monitoring text. */
@media(min-width:901px){
.shell,.nav-wrap{max-width:1320px;width:92%;padding-left:20px;padding-right:20px}
.nav-wrap{min-height:66px}.brand img{width:32px;height:36px}.brand strong{font-size:18px}.brand small{font-size:11px;margin-top:3px}.nav-wrap nav{gap:8px}
.shell{padding-top:18px}.hero{min-height:270px;padding:20px 26px;margin-bottom:18px}.hero-copy{max-width:520px}.game-title{font-size:34px}.hero h1{font-size:30px;margin:10px 0 8px}.hero p{font-size:14px;margin-bottom:16px}.hero-note{margin-top:12px}.hero .button-primary{min-height:38px;padding:7px 16px 11px;font-size:14px}
.summary{margin-bottom:22px}.stat{padding:12px 14px;gap:10px}.stat-icon{width:30px;height:30px;font-size:20px}.stat strong{font-size:25px}.stat .network-stat{font-size:18px}
.section-heading{margin-bottom:12px}.section-heading h2{font-size:20px}.toolbar{margin-bottom:12px}.node-grid{gap:12px}.node-card{padding:12px}.node-name{font-size:16px}.node-emblem{width:32px!important;height:30px}.node-emblem .pixel-flag{width:30px;height:26px}.node-identity{gap:7px}
.node-card .card-heading{padding-bottom:7px}.node-card .meter-label,.resource-grid .meter-label,.node-card .card-network>div>strong{font-size:14px}.resource-grid{gap:8px 10px}.node-card .card-network{margin-top:9px;padding:7px 8px;gap:8px}.node-card .card-tags{margin:5px 0}.route-panel{margin-top:7px}.latency-panel{margin-top:8px;padding-top:7px}.latency-rows{gap:4px}.node-facts{margin:4px 0 7px}.node-card .card-bottom{margin-top:6px}.footer{margin-top:28px;padding:18px 0}
}
