/* HOTFIX 031 — Denser visual rhythm, compact codex reader and letters registry.
   Does NOT touch map canvases, the character hero, chat scroll area or gameplay data. */
#app .ninja-v04.game-layout:is(.route-guide,.route-letters,.route-services,.route-boards,.route-missions,.route-market,.route-bank,.route-characters) .workspace>main#main{
 padding:12px clamp(12px,1.8vw,26px) 26px!important;
 box-sizing:border-box!important;
}
#app .ninja-v04.game-layout:is(.route-guide,.route-letters,.route-services,.route-boards,.route-missions,.route-market,.route-bank,.route-characters) .page-heading{
 min-height:0!important;padding:11px 19px!important;margin:0 0 14px!important;gap:12px!important;
 border-bottom:1px solid #886546!important;
}
#app .ninja-v04.game-layout:is(.route-guide,.route-letters,.route-services,.route-boards,.route-missions,.route-market,.route-bank,.route-characters) .page-heading h1{
 font-size:clamp(24px,2.2vw,34px)!important;line-height:1.15!important;margin:3px 0!important;
}
#app .ninja-v04.game-layout:is(.route-guide,.route-letters,.route-services,.route-boards,.route-missions,.route-market,.route-bank,.route-characters) .page-heading p{
 font-size:12px!important;line-height:1.5!important;margin:4px 0!important;
}
#app .ninja-v04.game-layout:is(.route-guide,.route-letters,.route-services,.route-boards,.route-missions,.route-market,.route-bank,.route-characters) .page-heading small{
 font-size:10px!important;letter-spacing:.12em!important;
}
/* Card density: reduce empty space while retaining 13px+ body and usable controls. */
#app .ninja-v04.game-layout:is(.route-boards,.route-services,.route-missions,.route-bank,.route-characters) #main .panel{
 padding:clamp(12px,1.35vw,19px)!important;margin-block:8px!important;
}
#app .ninja-v04.game-layout:is(.route-boards,.route-services,.route-missions,.route-bank,.route-characters) #main .panel h2{
 font-size:clamp(21px,1.9vw,29px)!important;line-height:1.2!important;margin:0 0 9px!important;
}
#app .ninja-v04.game-layout:is(.route-boards,.route-services,.route-missions,.route-bank,.route-characters) #main .panel :is(p,li){
 line-height:1.52!important;
}
#app .ninja-v04.game-layout.route-services .service-hall .service-grid{
 gap:11px!important;grid-template-columns:repeat(auto-fit,minmax(235px,1fr))!important;
}
#app .ninja-v04.game-layout.route-services .service-hall .service-tile{
 min-height:94px!important;padding:13px 15px!important;gap:12px!important;
}
#app .ninja-v04.game-layout.route-services .service-hall .service-tile .service-seal{
 width:43px!important;height:43px!important;flex:0 0 43px!important;font-size:23px!important;
}
#app .ninja-v04.game-layout.route-services .service-hall .service-tile-info b{font-size:17px!important}
#app .ninja-v04.game-layout.route-services .service-hall .service-tile-info small{font-size:11px!important}
#app .ninja-v04.game-layout.route-boards #main .forum-directory{
 max-width:1090px!important;margin:0 auto 20px!important;padding:0 4px!important;
}
#app .ninja-v04.game-layout.route-boards #main .forum-directory-group{margin:12px 0!important}
#app .ninja-v04.game-layout.route-boards #main .forum-directory-group>header{padding:9px 16px!important}
#app .ninja-v04.game-layout.route-boards #main .board-directory-row{padding:9px 12px!important;min-height:44px!important}
/* ======================================
   GUIDE - categories + chapters + reading page
   ====================================== */
#app .ninja-v04.game-layout.route-guide #main .guide-book{
 box-sizing:border-box!important;width:min(100%,1130px)!important;max-width:1130px!important;
 margin:5px auto 24px!important;padding:0 0 20px!important;
 background:#1e2d28!important;color:#f5dab1!important;
 border:1px solid #9b7549!important;box-shadow:0 11px 22px #050c0b55!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-book-heading{
 display:flex!important;gap:15px!important;align-items:center!important;
 padding:15px 23px!important;border-bottom:1px solid #a27d50!important;
 background:linear-gradient(110deg,#233d34,#182923)!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-book-symbol{
 display:grid!important;place-items:center!important;flex:0 0 51px!important;
 width:51px!important;height:51px!important;border:1px solid #c49b65!important;
 background:#422e24!important;border-radius:50%!important;font-size:29px!important;color:#ffdc9b!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-book-heading small{
 color:#edb879!important;font-size:10px!important;letter-spacing:.16em!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-book-heading h1{
 margin:2px 0!important;font:700 clamp(25px,2.7vw,36px)/1.1 'Cormorant Garamond',Georgia,serif!important;
 color:#ffe0b1!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-book-heading p{
 margin:2px 0!important;color:#e0c6a1!important;font-size:12px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-navigation{
 padding:11px 22px 8px!important;background:#223930!important;border-bottom:1px solid #6c654d!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-category-tabs{
 display:flex!important;flex-wrap:wrap!important;justify-content:center!important;
 gap:6px!important;padding:0 0 11px!important;border-bottom:1px solid #8b704e!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-category-tab{
 cursor:pointer!important;border:1px solid transparent!important;border-radius:3px!important;
 padding:8px 16px!important;min-height:39px!important;background:transparent!important;
 color:#f3d4ab!important;font-size:13px!important;font-weight:700!important;
 transition:background .14s ease,color .14s ease;
}
#app .ninja-v04.game-layout.route-guide #main .guide-category-tab:hover{
 background:#3b5c4d!important;border-color:#876d4c!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-category-tab.active{
 background:#7b3e2d!important;border-color:#c19766!important;color:#fff0d1!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-navigation{
 display:flex!important;align-items:center!important;justify-content:space-between!important;
 flex-wrap:wrap!important;gap:11px!important;padding:10px 0 2px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-tabs{
 flex:1 1 430px!important;display:flex!important;flex-wrap:wrap!important;gap:5px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-link{
 min-height:35px!important;padding:7px 11px!important;
 border:1px solid #706d53!important;background:#2b473a!important;
 color:#e8ccaa!important;font-size:12px!important;cursor:pointer!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-link:hover{
 border-color:#d0a473!important;background:#3b604c!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-link.active{
 border-color:#e0aa6b!important;color:#fff0c6!important;background:#7d4030!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-search-wrap{
 display:flex!important;align-items:center!important;gap:8px!important;flex:0 1 260px!important;
 min-width:190px!important;margin:0!important;padding:0!important;background:transparent!important;
 color:#e7cda5!important;font-size:11px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-search-wrap>span{
 color:#dfc397!important;white-space:nowrap!important;font-size:11px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-search-wrap>input{
 box-sizing:border-box!important;min-width:0!important;width:100%!important;min-height:36px!important;
 background:#f1e3c8!important;color:#263f33!important;border:1px solid #a38862!important;
 border-radius:2px!important;padding:7px 10px!important;font-size:12px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-book-main{padding:12px clamp(14px,3.2vw,39px) 0!important}
#app .ninja-v04.game-layout.route-guide #main .guide-book-meta{
 display:flex!important;align-items:center!important;justify-content:space-between!important;
 gap:8px!important;margin:2px 0 7px!important;padding:0 0 9px!important;
 border-bottom:1px solid #736a50!important;letter-spacing:.13em!important;
 font-size:10px!important;color:#d3ac76!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter{max-width:100%!important;min-width:0!important}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-heading{
 text-align:center!important;padding:9px 4px 12px!important;margin:0 0 10px!important;
 border-bottom:1px solid #99734f!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-heading small{
 display:block!important;color:#c9a479!important;font-size:10px!important;letter-spacing:.14em!important;
 text-transform:uppercase!important;margin-bottom:5px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter-heading h2{
 color:#ffe0ae!important;margin:0!important;
 font:700 clamp(25px,2.65vw,36px)/1.16 'Cormorant Garamond',Georgia,serif!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter .guide-rich-body{
 gap:12px!important;line-height:1.68!important;font-size:13px!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-chapter .guide-rich-body .guide-text-block{
 line-height:1.7!important;
}
#app .ninja-v04.game-layout.route-guide #main .guide-no-results{
 margin:24px auto!important;color:#efd0a6!important;text-align:center!important;font-size:13px!important;
}
/* Ensure display: none wins over broad legacy selectors on both nav and chapter. */
#app .ninja-v04.game-layout.route-guide #main .guide-book [hidden]{display:none!important}
/* ======================================
   LETTERS — centered compact register
   ====================================== */
#app .ninja-v04.game-layout.route-letters #main .letters-archive{
 box-sizing:border-box!important;width:min(100%,930px)!important;max-width:930px!important;
 margin:5px auto 20px!important;background:#1d2d29!important;
 border:1px solid #a07a52!important;box-shadow:0 12px 26px #07100e77!important;
 padding:0 0 18px!important;color:#efdbb8!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-archive-heading{
 display:flex!important;align-items:center!important;justify-content:space-between!important;
 flex-wrap:wrap!important;gap:12px!important;padding:13px 19px!important;
 background:#223a31!important;border-top:4px solid #8c3e30!important;
 border-bottom:2px solid #b18551!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-archive-heading small{
 letter-spacing:.13em!important;font-size:10px!important;color:#e9bb86!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-archive-heading h1{
 font:700 clamp(24px,2.4vw,34px)/1.16 'Cormorant Garamond',Georgia,serif!important;
 margin:2px 0!important;color:#f9dcb0!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-archive-heading p{
 margin:0!important;color:#d7b999!important;font-size:11px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-archive-heading .button{
 flex:none!important;min-height:37px!important;margin:0!important;
 background:#71352d!important;color:#fff1cf!important;border:1px solid #bd8e55!important;
 font-size:11px!important;padding:8px 13px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-ledger{
 margin:14px clamp(10px,2vw,20px) 0!important;
 border:1px solid #93734c!important;background:#1c2b26!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-ledger-head{
 display:grid!important;grid-template-columns:minmax(135px,1.1fr) minmax(120px,1.8fr) 125px!important;
 gap:11px!important;padding:8px 14px 8px 49px!important;
 background:#70382d!important;color:#ffe1b4!important;
 font-size:10px!important;letter-spacing:.11em!important;font-weight:800!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox{display:block!important;margin:0!important;padding:0!important}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-row{
 box-sizing:border-box!important;display:grid!important;
 grid-template-columns:26px minmax(135px,1.1fr) minmax(120px,1.8fr) 125px!important;
 align-items:center!important;gap:11px!important;min-height:51px!important;
 margin:0!important;padding:8px 12px!important;
 background:#273d34!important;border:0!important;border-bottom:1px solid #715e49!important;
 color:#f5dab4!important;text-decoration:none!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-row:nth-child(even){background:#2c4238!important}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-row:hover{background:#475746!important;box-shadow:inset 3px 0 #e5b375!important}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-seal{
 width:23px!important;height:23px!important;min-width:23px!important;
 background:#663329!important;border:1px solid #b38354!important;
 border-radius:2px!important;color:#f8d7ac!important;font-size:13px!important;line-height:1!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-person{display:grid!important;gap:1px!important;min-width:0!important}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-person strong{
 color:#ffe0b4!important;font-size:13px!important;font-weight:800!important;
 white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-person small{
 font-size:10px!important;color:#c9b093!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-preview{
 display:block!important;min-width:0!important;font-size:12px!important;color:#f2d0a6!important;
 white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-date{
 color:#d1bb9e!important;font-size:11px!important;text-align:right!important;white-space:nowrap!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-conversation .letters-feed{
 box-sizing:border-box!important;max-height:420px!important;height:min(46dvh,420px)!important;
 min-height:200px!important;overflow-y:auto!important;margin:12px 15px!important;padding:11px 13px!important;
 background:#142520!important;border:1px solid #92704b!important;gap:9px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-conversation .letter-bubble{
 box-sizing:border-box!important;max-width:84%!important;min-width:0!important;
 padding:9px 12px!important;margin:0!important;border-radius:5px!important;
 font-size:12px!important;line-height:1.6!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-conversation .letter-bubble small{
 font-size:10px!important;margin-bottom:5px!important;padding-bottom:3px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-conversation .letter-bubble .bb-rendered{
 font-size:12px!important;line-height:1.6!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-conversation .letters-composer{
 margin:0 15px!important;padding:11px 13px!important;
 background:#22392f!important;border:1px solid #98744d!important;
 display:grid!important;gap:7px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-composer .letters-editor-title{
 font-size:10px!important;letter-spacing:.13em!important;color:#d9b88a!important;font-weight:800!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-composer .bb-toolbar{
 display:flex!important;flex-wrap:wrap!important;gap:5px!important;margin:0!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-composer .bb-toolbar button{
 min-height:30px!important;padding:4px 9px!important;font-size:11px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-composer>label{
 color:#f0d3ac!important;font-size:11px!important;margin:0!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-composer textarea{
 box-sizing:border-box!important;width:100%!important;min-height:72px!important;
 height:82px!important;max-height:180px!important;resize:vertical!important;
 background:#f6e7d0!important;color:#263b30!important;padding:10px!important;
 font-size:13px!important;
}
#app .ninja-v04.game-layout.route-letters #main .letters-composer button[type=submit]{
 justify-self:end!important;min-height:37px!important;padding:7px 15px!important;font-size:11px!important;
}
/* Keep touch targets comfortably interactive; keep map, chat scene and character cover unchanged. */
@media(max-width:700px){
 #app .ninja-v04.game-layout.route-guide #main .guide-book-heading{padding:11px 13px!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-navigation{padding:9px 11px!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-category-tabs{justify-content:flex-start!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-category-tab{padding:8px 11px!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-chapter-navigation{display:grid!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-chapter-tabs{flex:none!important;min-width:0!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-search-wrap{flex:none!important;width:100%!important}
 #app .ninja-v04.game-layout.route-guide #main .guide-book-main{padding-inline:13px!important}
 #app .ninja-v04.game-layout.route-letters #main .letters-ledger-head{display:none!important}
 #app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-row{
  grid-template-columns:24px minmax(0,1fr) auto!important;gap:7px!important;
 }
 #app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-preview{
  grid-column:2 / -1!important;grid-row:2!important;
 }
 #app .ninja-v04.game-layout.route-letters #main .letters-inbox .letter-date{
  grid-column:3!important;grid-row:1!important;font-size:10px!important;
 }
 #app .ninja-v04.game-layout.route-letters #main .letters-conversation .letters-feed{margin:9px 8px!important}
 #app .ninja-v04.game-layout.route-letters #main .letters-conversation .letters-composer{margin:0 8px!important}
}
@media(prefers-reduced-motion:reduce){
 #app .ninja-v04.game-layout.route-guide #main .guide-category-tab{transition:none!important}
}

/* Additional density outside maps, sheets and gameplay: bank, mission and market listings. */
#app .ninja-v04.game-layout.route-market #main .market-hall{
 width:min(100%,1110px)!important;max-width:1110px!important;margin:0 auto 24px!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall>.market-list{
 display:grid!important;gap:11px!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-item{
 margin:0!important;padding:12px 15px!important;
 background:#22332d!important;border:1px solid #9e784f!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-item>header{
 margin:0 0 8px!important;padding:0 0 7px!important;
 border-bottom:1px solid #87694a!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-item h3{
 font-size:20px!important;line-height:1.2!important;margin:2px 0!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-item-body{
 display:grid!important;grid-template-columns:150px minmax(0,1fr)!important;gap:15px!important;
 align-items:start!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-art{
 width:150px!important;max-width:100%!important;min-height:145px!important;max-height:180px!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-art img{
 width:100%!important;height:100%!important;max-height:180px!important;object-fit:contain!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-copy{
 min-width:0!important;display:grid!important;gap:9px!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-copy>p{
 font-size:13px!important;line-height:1.55!important;margin:0!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-tags{
 display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:0!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-copy footer{
 display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:9px!important;
 margin:0!important;padding:9px 11px!important;
}
#app .ninja-v04.game-layout.route-market #main .market-hall .market-copy footer .button{
 min-height:36px!important;padding:6px 11px!important;font-size:11px!important;
}
#app .ninja-v04.game-layout.route-missions #main>.cards{
 box-sizing:border-box!important;max-width:1130px!important;margin:0 auto!important;
 gap:10px!important;
}
#app .ninja-v04.game-layout.route-missions #main .mission-card{
 min-height:0!important;gap:12px!important;padding:14px 17px!important;margin:0!important;
 background:#22342e!important;color:#f0d3ad!important;
 border:1px solid #977149!important;border-radius:3px!important;
}
#app .ninja-v04.game-layout.route-missions #main .mission-rank{
 font-size:19px!important;padding:7px 10px!important;min-width:45px!important;
 background:#613b2f!important;color:#fbd9a9!important;border:1px solid #a47a53!important;
}
#app .ninja-v04.game-layout.route-missions #main .mission-card h3{
 margin:2px 0 5px!important;font-size:18px!important;color:#ffe0b5!important;
}
#app .ninja-v04.game-layout.route-missions #main .mission-card p{
 font-size:13px!important;line-height:1.48!important;margin:0 0 7px!important;color:#dec8a7!important;
}
#app .ninja-v04.game-layout.route-bank #main .bank-center{width:min(100%,925px)!important;max-width:925px!important}
#app .ninja-v04.game-layout.route-bank #main .bank-panel{
 min-height:0!important;padding:13px 17px!important;gap:12px!important;
}
#app .ninja-v04.game-layout.route-bank #main .bank-panel h2{
 margin:3px 0!important;font-size:clamp(23px,2.5vw,35px)!important;
}
#app .ninja-v04.game-layout.route-bank #main .bank-center .form-panel{padding:14px 16px!important}
#app .ninja-v04.game-layout.route-characters #main #character-list{gap:9px!important}
#app .ninja-v04.game-layout.route-characters #main #character-list .person-card{
 padding:11px 14px!important;min-height:0!important;gap:11px!important;
}
#app .ninja-v04.game-layout.route-characters #main #character-list .person-card h3{
 font-size:17px!important;margin:0 0 4px!important;
}
@media(max-width:700px){
 #app .ninja-v04.game-layout.route-market #main .market-hall .market-item-body{
  grid-template-columns:105px minmax(0,1fr)!important;gap:10px!important;
 }
 #app .ninja-v04.game-layout.route-market #main .market-hall .market-art{
  width:105px!important;min-height:105px!important;max-height:140px!important;
 }
 #app .ninja-v04.game-layout.route-bank #main .bank-panel{gap:8px!important;flex-wrap:wrap!important}
 #app .ninja-v04.game-layout.route-missions #main .mission-card{padding:11px!important}
}
