.roster-entry{display:flex;gap:10px;align-items:center;padding:12px;margin-bottom:12px;border:1px solid #ac8648;background:linear-gradient(120deg,#d9bf80,#ecdbac)}.roster-entry .roster-entry-name{flex:1;min-width:0}.roster-entry strong{display:block;color:#533822;font-size:18px}.roster-entry small{display:block;color:#80663f}.roster-entry .button-row{gap:5px}.general-intro{padding:6px 0 12px;border-bottom:1px solid #a68a50}.general-intro h2{font-size:24px;color:#533822;margin:8px 0}.general-intro p{font-size:12px;line-height:1.8;color:#725938}.general-catalog{display:grid;gap:15px;margin-top:15px}.general-card{background:linear-gradient(135deg,#efddb0,#d6bd85);border:1px solid #94713a;padding:13px;box-shadow:inset 0 0 0 3px #e8d6aa}.general-card header{display:flex;align-items:center;gap:10px}.general-card h3{font-size:23px;color:#684322;margin:4px 0}.general-card header>div>span:last-child{font-size:12px;color:#705c3e}.general-skill{padding:10px;background:#6b512415;border-left:3px solid #b78e45}.general-skill b{color:#674220}.general-skill p{font-size:12px;line-height:1.6;margin:5px 0}.general-requirements{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;font-size:12px}.general-ready{color:#386242;font-weight:700;font-size:12px}.nickname-dialog{width:min(400px,calc(100vw - 32px));color:#503b22;background:#e6d3a6;border:3px double #9c7d43;padding:24px}.nickname-dialog::backdrop{background:#15160fbb}.nickname-dialog h2{margin:0 0 15px;font-size:22px}.nickname-dialog label{display:block;margin:8px 0}.nickname-dialog input{width:100%;box-sizing:border-box}.nickname-dialog p{font-size:12px;line-height:1.7}.nickname-dialog .button-row{justify-content:flex-end}.nickname-hint.error{color:#953726}.rarity-badge{display:inline-flex;align-items:center;font-size:10px;line-height:1.4;padding:2px 6px;border:1px solid currentColor;border-radius:2px;font-weight:bold;white-space:nowrap}.rarity-normal{color:#655a43}.rarity-uncommon{color:#397344}.rarity-rare{color:#305d98}.rarity-epic{color:#79458f}.rarity-legendary{color:#9e570d;background:#f5d68c55}.equipment-cell.rarity-uncommon{border-color:#67966b}.equipment-cell.rarity-rare{border-color:#5384b7}.equipment-cell.rarity-epic{border-color:#9362a7}.equipment-cell.rarity-legendary{border-color:#c68c24;box-shadow:inset 0 0 12px #d7a64444}.equipment-cell .rarity-badge{position:absolute;top:3px;left:3px;font-size:8px;padding:1px 3px}.gear-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}.gear-filters label{font-size:11px;color:#6c5334;display:flex;flex-direction:column;gap:5px}.gear-filters select,.gear-filters input{min-width:0;width:100%;box-sizing:border-box}.gear-filters .gear-search{grid-column:1/-1}.gear-catalog-count{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0;font-size:12px}.gear-page{display:flex;justify-content:center;gap:12px;align-items:center;margin:12px 0}.recipe-stats{font-size:11px;color:#644e33;line-height:1.7}.battle-tactics{position:absolute;z-index:5;bottom:31px;right:12px;width:min(390px,calc(100% - 24px));padding:7px;background:#242415e8;border:1px solid #9d7f43;box-shadow:0 3px 15px #0007}.battle-tactics[hidden]{display:none}.tactics-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#dbc58c;font-size:10px;margin-bottom:5px}.tactics-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.tactics-buttons button{font-size:11px;min-height:35px;padding:5px 3px;background:linear-gradient(#54452d,#332b20);color:#e6d5a4;border:1px solid #89723f}.tactics-buttons button.selected{border-color:#f1cf7a;box-shadow:inset 0 0 8px #dcb25f44}.tactics-buttons button:disabled{opacity:.55}.command-sending{color:#dbc884}.equipment-rarity-filter{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.equipment-rarity-filter button{font-size:10px;padding:5px 7px;min-height:28px}.nickname-link{font-size:11px;padding:5px 8px;min-height:29px}.general-nav{display:flex;gap:6px;margin-bottom:12px}.general-nav button{flex:1}.craft-card-header{display:flex;gap:8px;align-items:center}.craft-card-header h3{flex:1}.battle-order-note{color:#bca775;font-size:9px;margin-top:5px;line-height:1.5}@media(min-width:1000px){.general-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}.sheet:has(.general-catalog){width:min(1040px,calc(100% - 130px));max-width:none}}@media(max-width:640px){.roster-entry{padding:9px;flex-wrap:wrap}.roster-entry .button-row{width:100%}.roster-entry .button-row button{flex:1}.battle-tactics{bottom:30px;right:7px;width:calc(100% - 14px);padding:5px}.tactics-buttons button{font-size:10px;min-height:32px}.general-card{padding:10px}.gear-filters{gap:5px}.nickname-dialog{padding:18px}.general-card h3{font-size:21px}}
.general-intro .eyebrow,.general-card .eyebrow{color:#80603a}.equipment-catalog-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;font-size:12px;color:#71562e}.equipment-rarity-filters{flex-wrap:wrap}.equipment-rarity-filters button{flex:1 1 60px}.equipment-cell .equipped-badge{top:auto;bottom:2px;left:2px;font-size:9px}.equipment-detail header .rarity-badge{color:inherit}.tactics-buttons button{min-height:40px}
/* Two battle-command rows need their own space above the desktop menu. */
@media(min-width:641px){.game-shell:has(#commands [data-action="battle-item"]){--dock-height:190px}}

/* 천하행: five visible destinations, with the rest explained in a menu sheet. */
.navigation{grid-template-columns:repeat(5,minmax(0,1fr));height:54px;gap:4px;overflow:hidden}
.navigation button{height:54px;min-height:44px;flex-direction:column;gap:4px;padding:5px 2px}
.navigation .menu-icon{width:21px;height:21px}
.navigation .menu-label{max-width:none;white-space:nowrap;font-size:10px;line-height:14px;letter-spacing:-.3px}
.sheet-heading{gap:9px;flex-shrink:0}
.sheet-heading>div{flex:1;min-width:0}
.sheet-heading .icon-button,.sheet-back{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:27px;background:linear-gradient(#51402a,#302419);color:#f0d9a5;border:1px solid #a0804b;border-radius:2px}
.sheet-back{font-family:Arial,sans-serif;font-size:34px;line-height:36px}
.sheet-heading h1{letter-spacing:0}
.menu-sheet{width:min(550px,calc(100% - 132px))}
.menu-intro{font-size:12px;line-height:1.65;color:#705a38;margin:0 0 14px}
.menu-group{margin:0 0 18px}
.menu-group h2{font-size:13px;letter-spacing:1px;color:#77542b;border-bottom:1px solid #a78a54;padding:0 0 7px;margin:0 0 7px}
.menu-links{display:grid;grid-template-columns:1fr;gap:6px}
.sheet-content .menu-link{display:flex;align-items:center;gap:12px;text-align:left;min-height:62px;width:100%;padding:10px 12px;background:linear-gradient(115deg,#f0e3bf,#decca1);color:#533b21;border:1px solid #ab8c54;border-radius:3px;box-shadow:inset 0 0 0 1px #fff5d755}
.sheet-content .menu-link:hover:enabled{background:#f5e7bf;border-color:#785329;color:#382711}
.menu-link>.menu-icon{width:25px;height:25px;color:#916b33;stroke-width:1.6}
.menu-link>span:not(.menu-chevron){flex:1;min-width:0}
.menu-link strong{display:block;font-size:14px;line-height:1.35;margin-bottom:4px}
.menu-link small{display:block;font-size:11px;line-height:1.5;color:#786345;white-space:normal}
.menu-chevron{font-family:serif;font-size:26px;color:#977239}
.sheet-content .menu-help{width:100%;min-height:46px;display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12px}
.journey-guide{position:absolute;bottom:38px;left:120px;z-index:4;width:min(335px,calc(100% - 142px));padding:10px 12px 12px;background:linear-gradient(135deg,#32291bf5,#211b14f5);border:1px solid #b18c4e;box-shadow:0 5px 20px #0005,inset 0 0 0 3px #e3bc6e10;color:#ebd6a7;border-radius:3px}
.journey-guide header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:-7px}
.journey-guide header strong{font-size:14px;color:#f3d897}
.journey-guide header button{width:44px;min-width:44px;min-height:44px;height:44px;font-size:24px;padding:0;background:none;border:0;color:#d4bc8e}
.journey-guide p{font-size:12px;color:#cdbd9e;line-height:1.65;margin:0 0 10px}
.guide-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.guide-actions button{min-width:0;min-height:44px;font-size:11px;padding:6px 3px;border-radius:2px}
.auth-account-note{font-size:11px;line-height:1.65;color:#b8aa89;margin:2px 0 10px}
.auth-title em{display:inline}
.map-button small{display:block;color:#e7d3a5;font-size:11px}
.confirmation,.nickname-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.confirmation .button-row button,.nickname-dialog .button-row button{min-height:44px}
@media(min-width:641px){
  .commands button{min-height:44px}
  .game-shell:has(#commands [data-action="battle-item"]){--dock-height:190px}
  .menu-sheet .sheet-content{padding:15px 18px}
}
@media(max-width:640px){
  :root{--dock-height:164px}
  .navigation{position:static;width:100%;height:60px;min-height:60px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:4px 6px;overflow:hidden}
  .navigation button{width:auto;min-width:0;min-height:50px;height:50px;gap:2px;padding:4px 1px}
  .navigation .menu-icon{width:20px;height:20px}
  .navigation .menu-label{font-size:11px;max-width:none;line-height:16px}
  .sheet,.menu-sheet{width:calc(100% - 12px);inset:6px}
  .sheet-heading{padding:7px;min-height:60px;gap:8px}
  .sheet-heading .icon-button,.sheet-back{width:44px;min-width:44px;height:44px;min-height:44px}
  .sheet-heading .eyebrow{font-size:9px}
  .sheet-heading h1{font-size:18px}
  .sheet-content{padding:12px}
  .sheet-content button,.sheet-content .mini-card button,.sheet-content input,.sheet-content select,.sheet-content textarea{min-height:44px}
  .sheet-content .menu-link{min-height:64px;padding:10px}
  .menu-intro{font-size:12px}
  .menu-link small{font-size:11px}
  .journey-guide{left:10px;bottom:32px;width:calc(100% - 20px);padding:8px 11px 10px}
  .journey-guide header strong{font-size:13px}
  .journey-guide p{font-size:11px;line-height:1.6;margin-bottom:8px}
  .guide-actions button{font-size:12px}
  .command-deck{grid-template-rows:94px 48px}
  .commands,.commands:has([data-action="battle-item"]){min-height:44px}
  .commands button{min-height:44px!important;font-size:10px}
  .tactics-buttons button{min-height:44px}
  .map-button{min-height:44px;min-width:82px;top:112px}
  .auth-backdrop{overflow-y:auto;align-items:flex-start;padding-top:max(22px,env(safe-area-inset-top))}
  .auth-card{margin:auto}
  .auth-form{padding:18px 21px}
  .auth-form .muted{line-height:1.7}
}
@media(max-width:640px) and (max-height:650px){
  .journey-guide{bottom:27px;padding-top:3px}
  .journey-guide p{margin-bottom:6px;font-size:10px}
  .journey-guide p br{display:none}
  .guide-actions button{font-size:11px}
}
@media(min-width:641px) and (max-height:600px){
  .game-shell{min-height:0}
  .game-main{min-height:0}
  .menu-sheet{width:min(550px,calc(100% - 120px));right:8px;top:6px;bottom:6px}
  .sheet-heading{padding:5px 8px;min-height:58px}
  .menu-sheet .sheet-content{padding:9px 12px}
  .menu-intro{margin-bottom:10px}
  .journey-guide{bottom:29px;left:115px;width:320px;padding-top:3px}
  .journey-guide p br{display:none}
}
