/* Praetorians HD Remaster main menu. Positions are measured from the original
   1920x1080 screens; the page scales uniformly with --m-scale. Artwork comes
   from the Remaster's TorusUI textures (assets/menu-original). */
@font-face{font-family:'Praetorians Times';src:url('../assets/hd/interface/times.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Praetorians Times';src:url('../assets/hd/interface/timesbd.ttf') format('truetype');font-weight:700;font-display:swap}
#game[hidden],#menuApp[hidden]{display:none!important}
#menuApp{--m-scale:1;position:fixed;inset:0;z-index:1000;isolation:isolate;overflow:hidden;background:#3a1d17;color:#fff;
 font:400 20px 'Praetorians Times','Times New Roman',serif;
 cursor:url('../assets/menu-original/Game/Cursores/FlechaMenu.png') 4 2,auto}
/* Base resets carry no specificity (:where) so component styles below win. */
:where(#menuApp) *,:where(#menuApp) *:before,:where(#menuApp) *:after{box-sizing:border-box}
:where(#menuApp) :is(button,input,select){font:inherit;cursor:inherit}
:where(#menuApp) button{color:inherit;background:none;border:0;padding:0;margin:0}
:where(#menuApp) button:disabled{opacity:.35}
#menuApp button:focus-visible,#menuApp input:focus-visible,#menuApp select:focus-visible{outline:1px dotted #f2c76d;outline-offset:3px}
.m-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.m-page{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform:translate(-50%,-50%) scale(var(--m-scale));transform-origin:50% 50%}
.m-page>*{position:absolute}
.m-logo{left:450px;top:74px;width:1021px;pointer-events:none;user-select:none}
.m-eagle{left:818px;top:300px;width:284px;pointer-events:none;user-select:none;z-index:3}
/* The original 9-slice frame: thin double line, corner studs, 50% black fill. */
.m-panel{border:32px solid transparent;border-image:url('../assets/menu-original/Game/TorusUI/MainMenu/MenuPanel.png') 32 fill stretch;pointer-events:none}
.m-panel-small{left:460px;top:452px;width:1000px;height:500px}
.m-panel-wide{left:100px;top:452px;width:1720px;height:500px}
/* Centred choices (main menu, un joueur, multijoueur, pause). */
.m-column{left:460px;top:561px;width:1000px;display:flex;flex-direction:column;align-items:center}
.m-heading{color:#e8a43a;font-size:34px;line-height:48px;margin:-32px 0 10px}
.m-item{display:block;font-size:34px!important;line-height:48px;color:#b9b1ad;letter-spacing:.01em;text-shadow:1px 1px 2px #0008;transition:color .08s}
.m-column:not(:hover) .m-item:first-of-type,.m-item:hover,.m-item:focus-visible{color:#fff}
.m-column-pill{margin-top:55px}
.m-heading~.m-column-pill{margin-top:55px}
.m-pill{display:inline-block;min-width:108px;height:31px;padding:0 14px!important;border:2px solid #bdb5b0!important;border-radius:9px;background:#0000002e!important;color:#d7d1cd;font-size:19px!important;line-height:27px;letter-spacing:.02em;text-shadow:1px 1px 1px #0009}
.m-pill:not(:disabled):hover{color:#fff;border-color:#fff!important}
.m-corner{top:985px}
.m-corner-left{left:105px}
.m-corner-right{right:105px}
.m-corner-group{display:flex;gap:14px}
.m-social{left:20px;top:974px;width:380px;height:76px;display:flex;align-items:center;justify-content:space-around;padding:0 8px;background:#000000b8;border:1px solid #ffffff59}
.m-social img{width:56px;height:56px}
/* Lists with the thin white scrollbar of the original. */
.m-subheading{color:#e8a43a;font-size:22px;line-height:26px}
.m-list{position:relative;margin-top:14px;height:340px;overflow-y:auto;overflow-x:hidden;padding-right:22px;scrollbar-width:thin;scrollbar-color:#f4f0ec transparent}
.m-list::-webkit-scrollbar{width:6px}.m-list::-webkit-scrollbar-thumb{background:#f4f0ec}.m-list::-webkit-scrollbar-track{background:transparent}
.m-list-item{display:block;width:100%;text-align:left;font-size:21px!important;line-height:25px;color:#a69d98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:1px 1px 1px #0008}
.m-list-item:hover{color:#ddd6d2}
.m-list-item.current{color:#fff}
.m-divider{width:1px;background:#ffffff4d}
/* Campaign */
.m-missions{left:150px;top:522px;width:404px}
.m-divider-campaign{left:561px;top:503px;height:400px}
.m-briefing{left:572px;top:503px;width:872px;height:400px}
.m-title{color:#e8a43a;font-size:32px;line-height:36px}
.m-mission-name{margin-top:22px;font-weight:700;font-size:21px;line-height:26px}
.m-text{margin-top:12px;font-size:20px;line-height:25px;color:#f4efe9}
.m-text p{margin:0 0 25px}
.m-muted{color:#c9bfb9;font-size:19px;line-height:25px}
.m-difficulty{position:absolute;left:0;top:333px}
.m-difficulty-value{margin:10px 0 0 10px;font-size:21px!important;line-height:26px;display:inline-flex;align-items:center;gap:10px}
.m-difficulty-value:hover{color:#ffe1a6}
.m-campaign-ai-note{max-width:470px;margin:8px 0 0 10px;font-size:14px;line-height:17px;color:#d2c5b8}
/* Small legion banner beside the difficulty, as in the original. */
.m-banner{display:inline-block;width:20px;height:26px;background:linear-gradient(#c2261c,#8c1410);border:2px solid #e3b44a;border-top-width:3px;clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);box-shadow:inset 0 0 0 2px #f2c460}
.m-campaign-art{left:1467px;top:502px;width:303px;height:401px;object-fit:cover}
/* Map selection (escarmouche / multijoueur) */
.m-maps{left:510px;top:522px;width:404px}
.m-maps .m-list-item{font-size:20.5px!important;line-height:24px}
.m-divider-maps{left:920px;top:503px;height:400px}
.m-map-art{left:936px;top:556px;width:474px;height:auto;aspect-ratio:720/448}
.m-map-base{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.m-map-villages{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.m-map-village{filter:drop-shadow(0 1px 1px #000) drop-shadow(0 0 .5px #000)}
/* Generic wide panels (options, lobby, credits, saves). */
.m-content{left:150px;top:500px;width:1620px;height:405px;overflow:auto;font-size:20px;line-height:26px}
.m-content .m-title{margin-bottom:22px}
.m-two-columns,.menu-options-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.menu-options-columns label{display:flex;align-items:center;gap:12px;margin:10px 0;color:#efe8e2}
.menu-options-columns input{accent-color:#e8a43a}
.menu-options-actions{display:flex;gap:16px;margin-top:10px}
.menu-options-columns label.m-render-budget{align-items:flex-start;flex-direction:column;gap:4px;margin:8px 0 0}
.m-render-budget select{width:390px;height:35px;padding:2px 10px;background:#0006;border:1px solid #bdb5b0;color:#fff;font:20px 'Praetorians Times','Times New Roman',serif}
.m-render-budget select option{background:#33221c;color:#fff}
.m-render-hint{max-width:670px;margin:7px 0 8px;color:#c9bfb9;font-size:17px;line-height:21px}
.menu-field{display:block;margin:6px 0 20px;color:#e8a43a}
.menu-field input,.menu-field select{display:block;width:80%;margin-top:8px;padding:6px 10px;background:#0000005c;border:1px solid #bdb5b0;color:#fff}
.menu-field select option{background:#2a1813}
.menu-field span{color:#fff}
.m-room-art{position:relative;min-height:320px}
.m-room-art .m-map-art{position:relative;left:auto;top:auto;width:100%;max-width:520px}
.menu-table-head{display:grid;grid-template-columns:60% 20% 20%;color:#e8a43a;padding:10px 0;border-bottom:1px solid #ffffff4d}
.menu-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:260px;text-align:center;color:#c9bfb9}
.menu-table-empty strong{font-weight:400;font-size:22px;color:#fff}
.m-credits p{margin:0 0 14px}
.menu-status{left:0;right:0;top:1046px;text-align:center;color:#ffd994;font-size:18px;text-shadow:0 1px 3px #000}
.menu-motion-reduced *{transition:none!important;animation:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Skirmish roster, using the same frame and column positions as the Remaster. */
.m-skirmish-details{left:150px;top:503px;width:400px;height:400px}
.m-map-details-heading{margin-top:15px}
.m-skirmish-details .m-map-art{position:absolute;left:38px;top:76px;width:320px;height:194px}
.m-skirmish-map-name{position:absolute;left:0;top:274px;width:400px;min-height:28px;max-height:42px;overflow:hidden;font-size:20px;line-height:21px;text-transform:uppercase}
.m-skirmish-difficulty{position:absolute;left:0;top:320px;width:400px}
.m-difficulty-choices{display:flex;justify-content:space-between;gap:8px;margin-top:9px;width:400px}
.m-difficulty-choice{font-size:19px!important;line-height:28px;color:#aaa09a!important;white-space:nowrap}
.m-difficulty-choice[aria-pressed="true"]{color:#fff!important}
.m-difficulty-choice:hover{color:#ffe1a6!important}
.m-difficulty-master[aria-pressed="true"]{color:#ffd68f!important;text-shadow:0 0 12px #e078374d}
.m-difficulty-description{margin:5px 0 0;color:#d2c5b8;font-size:16px;line-height:18px;min-height:36px}
.m-divider-skirmish{left:560px;top:503px;height:400px}
.m-skirmish-roster{left:574px;top:503px;width:1210px;height:400px}
.m-player-head,.m-player-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 180px 205px 55px;align-items:center}
.m-player-head{height:40px;color:#ead29d;font-size:21px;line-height:26px}
.m-player-head>span:not(:first-child){text-align:center}
.m-player-row{height:40px;font-size:21px;line-height:28px}
.m-player-name{display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#menuApp input.m-player-name{padding:2px 8px 2px 0;border:1px solid transparent;background:transparent;color:#f3be4f;border-radius:2px;height:34px;font-size:21px;line-height:28px}
#menuApp input.m-player-name:hover,#menuApp input.m-player-name:focus{border-bottom-color:#e8a43a70;background:#0002}
.m-player-color,.m-player-team,.m-player-race,.m-player-remove{display:flex;align-items:center;justify-content:center;min-width:0}
#menuApp .m-player-row select{appearance:none;-webkit-appearance:none;box-shadow:none;border:0;border-radius:0;background-color:transparent;color:#fff;font-family:inherit;font-size:21px;line-height:28px;margin:0;padding:2px 6px;height:34px;width:auto;min-width:0;text-align:center;cursor:inherit}
#menuApp .m-player-row select:hover,#menuApp .m-player-row select:focus-visible{background-color:#ffffff12}
#menuApp .m-player-row select option{background:#33221c;color:#fff;text-align:left;font-size:19px}
#menuApp .m-player-color select{width:34px;height:34px;padding:0;border:1px solid #c9bbb0;outline-offset:3px;background:var(--player-color);color:transparent;box-shadow:inset 0 0 0 1px #000b}
#menuApp .m-player-color select:hover,#menuApp .m-player-color select:focus-visible{background:var(--player-color);border-color:#fff}
.m-player-team{gap:12px}
.m-team-members{display:flex;align-items:center;justify-content:center;min-width:80px;height:29px}
.m-team-members img{flex:none;width:17px;height:29px;object-fit:contain}
.m-team-members img+img{margin-left:-8px}
.m-team-emblem{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border:1px solid #b5a69b;background:#0008;color:#dbcbb5}
.m-team-emblem>img{width:31px;height:31px;object-fit:contain;pointer-events:none}
.m-team-emblem:hover{border-color:#fff;background:#ffffff12}
#menuApp .m-team-emblem select{position:absolute;inset:0;width:100%;height:100%;padding:0;color:transparent;background:transparent;text-align:left}
#menuApp .m-team-emblem select:hover,#menuApp .m-team-emblem select:focus-visible{background:transparent}
.m-player-race{padding-left:8px}
#menuApp .m-player-race select{width:181px;padding:2px 1px;font-size:20px}
.m-player-remove button{display:flex;align-items:center;justify-content:center;width:36px;height:36px}
.m-player-remove img{width:32px;height:32px;object-fit:contain}
.m-player-remove button:not(:disabled):hover{filter:brightness(1.35)}
.m-team-help{margin-top:8px;color:#cbbbae;font-size:16px;line-height:22px;text-align:right;padding-right:55px}
.m-setup-invalid{color:#ffd994}
