/* ROSA GAMES — shared tokens and reusable components. Themes own their artwork. */
:root{
 --rosa-bg:#061923;--rosa-panel:#082E35;--rosa-sapphire:#073C63;
 --rosa-gold:#D7A64B;--rosa-gold-light:#FFE2A0;--rosa-gold-warm:#E9B86C;
 --rosa-ivory:#F8E8CC;--rosa-crystal:#27B6E6;
 --rosa-text:#F8E8CC;--rosa-text-muted:#B8C9C8;--rosa-danger:#D84C43;--rosa-success:#65C99B;
 --rosa-radius-sm:10px;--rosa-radius-md:16px;--rosa-radius-lg:24px;
 --rosa-shadow:0 12px 35px rgba(0,0,0,.45);
 --rosa-gold-border:1px solid rgba(215,166,75,.8);
 /* Existing portal/game typefaces retained; no new remote font dependency. */
 --rosa-font-interface:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 --rosa-font-display:Georgia,'Times New Roman',serif;
 --rosa-font-numbers:var(--rosa-font-interface);
 --rosa-menu-fill:linear-gradient(110deg,#03121e,#08273d,#03121e);
 --rosa-menu-item-fill:linear-gradient(110deg,#102c40,#041421);
 --rosa-panel-fill:var(--rosa-menu-fill);
 --rosa-primary-fill:linear-gradient(var(--rosa-gold-light),var(--rosa-gold-warm) 48%,var(--rosa-gold));
 --rosa-duration:200ms;--rosa-focus:var(--rosa-crystal);
}
.rosa-game{--gold:var(--rosa-gold);--text:var(--rosa-text);--muted:var(--rosa-text-muted);color:var(--rosa-text);font-family:var(--rosa-font-interface);}
.rosa-game .rosa-panel{background:var(--rosa-panel-fill);border:var(--rosa-gold-border);border-radius:var(--rosa-radius-md);box-shadow:inset 0 1px #ffe2a01c,var(--rosa-shadow);}
.rosa-game .rosa-title{font-family:var(--rosa-font-display);font-weight:700;font-style:normal;background-image:linear-gradient(var(--rosa-ivory),var(--rosa-gold-light) 24%,var(--rosa-gold) 57%,var(--rosa-gold-light) 70%,#976322);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;}
.rosa-game .rosa-button{font-family:var(--rosa-font-interface);min-height:44px;border:var(--rosa-gold-border);border-radius:var(--rosa-radius-sm);background:var(--rosa-panel-fill);color:var(--rosa-text);font-size:clamp(13px,1.05vw,16px);font-weight:600;line-height:1.35;transition:box-shadow var(--rosa-duration),filter var(--rosa-duration),transform var(--rosa-duration);}
.rosa-game .rosa-button--primary{background:var(--rosa-primary-fill);color:var(--rosa-bg);border-color:var(--rosa-gold-light);box-shadow:inset 0 1px #fff9,0 5px 16px #0005;}
.rosa-game .rosa-button:hover:not(:disabled){border-color:var(--rosa-gold-light);box-shadow:inset 0 1px #ffe2a02b,0 0 14px #d7a64b33;}
.rosa-game .rosa-button:active:not(:disabled){transform:scale(.975);}
.rosa-game .rosa-button:disabled{opacity:.43;cursor:default;filter:saturate(.45);}
.rosa-game :is(button,a,input,select,summary):focus-visible{outline:3px solid var(--rosa-focus);outline-offset:3px;}
.rosa-game .rosa-icon-button{min-width:44px;min-height:44px;}
.rosa-game .rosa-header{padding-top:max(8px,env(safe-area-inset-top));color:var(--rosa-text);background:var(--rosa-panel-fill);border-color:var(--rosa-gold);}
.rosa-game .rosa-header-nav{display:flex;align-items:stretch;justify-content:center;flex:1;gap:6px;}
.rosa-game .rosa-header-nav .rosa-button{border:0;border-radius:0;background:none;box-shadow:none;font-size:clamp(13px,1vw,16px);padding-inline:12px;min-width:80px;max-width:145px;}
.rosa-game .rosa-header-nav .rosa-current{background:radial-gradient(ellipse at bottom,#d7a64b4a,transparent 75%);box-shadow:0 2px var(--rosa-gold-light);color:var(--rosa-gold-light);}
.rosa-game .rosa-brand img{height:auto;object-fit:contain;}
.rosa-game .rosa-header-actions .rosa-button{padding:10px;border-radius:50%;}
.rosa-game .rosa-header-actions .rosa-button>span:first-child{display:block;width:22px;height:22px;}
.rosa-game .rosa-header-actions .rosa-button>span:first-child svg{width:22px;height:22px;}
.rosa-game .rosa-stats-panel :is(strong,output,dd){font-family:var(--rosa-font-numbers);font-variant-numeric:tabular-nums;}
.rosa-game .rosa-settings-modal{border-radius:var(--rosa-radius-lg);background:var(--rosa-panel-fill);border:var(--rosa-gold-border);}
.rosa-game .rosa-settings-modal :is(h2,h3){font-family:var(--rosa-font-display);font-size:clamp(23px,2vw,29px);color:var(--rosa-gold-light);}
.rosa-game .rosa-theme-selector{border-radius:var(--rosa-radius-sm);border-color:var(--rosa-gold);min-height:44px;}
.rosa-game .rosa-game-board{font-variant-numeric:tabular-nums;}
.rosa-game .rosa-victory-modal{box-shadow:inset 0 0 30px #d7a64b20,var(--rosa-shadow),0 0 25px #d7a64b33;}
.rosa-game :is(.mj-main,.ms-main,.game-dialog-content){padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));}
/* Readable controls; cells retain their game-specific geometry. */
.rosa-game :is(.mj-modes button,.ms-levels button){min-height:52px;}
.rosa-game :is(.mj-modes button,.ms-levels button strong){font-size:clamp(12px,1vw,15px);}
.rosa-game :is(.ms-levels button small,.mj-stats span,.ms-counters span){font-size:clamp(11px,.9vw,13px);}
.rosa-game .ms-header .ms-control-icon{display:block;width:28px;height:28px;}
.rosa-game .ms-header .ms-control-icon svg{width:100%;height:100%;}
@media(max-width:900px){.rosa-game .rosa-header-nav{flex-basis:100%;}.rosa-game .rosa-header-nav .rosa-button{flex:1;max-width:none;}.rosa-game .rosa-header-actions{margin-left:auto;}}
@media(max-width:760px){
 .rosa-game .rosa-header-nav .rosa-button{min-width:0;font-size:13px;padding:7px 5px;min-height:62px;}
 .rosa-game .rosa-header-nav [data-button-label]{position:static;width:auto;height:auto;clip-path:none;overflow:visible;}
 .rosa-game :is(.mj-modes,.ms-levels){grid-template-columns:repeat(2,minmax(0,1fr));}
 .rosa-game :is(.mj-modes button,.ms-levels button){min-height:60px;}
 .rosa-game .mj-controls{grid-template-columns:repeat(3,minmax(0,1fr));}
 .rosa-game .ms-bottom{grid-template-columns:repeat(2,minmax(0,1fr));}
 .rosa-game .ms-right{grid-template-columns:1fr;}
 .rosa-game .ms-tools{grid-template-columns:1fr 1fr;gap:10px;}
 .rosa-game .ms-tools button{grid-column:auto!important;min-height:48px;font-size:13px;}
 .rosa-game .ms-tools b{display:none;}
 .rosa-game .ms-time output{font-size:25px;}
 .rosa-game .mj-controls .rosa-button{font-size:12px;}
 .rosa-game .ms-levels button small{font-size:11px;}
 .rosa-game .ms-levels button{flex-direction:row;text-align:left;justify-content:center;gap:9px;}
 .rosa-game .ms-levels svg{width:25px;height:25px;}
}
@media(prefers-reduced-motion:reduce){.rosa-game *, .rosa-game *::before,.rosa-game *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
#game-dialog.rosa-game #game-title.rosa-title{font-family:var(--rosa-font-display);font-style:normal;font-weight:700;font-size:clamp(40px,4.3vw,64px);line-height:1.1;}
#game-dialog.rosa-game .rosa-header{gap:15px;}#game-dialog.rosa-game .rosa-brand img{display:block;width:140px;height:auto;}
.rosa-game .ms-header nav .ms-control-icon svg{width:28px;height:28px;}
.rosa-game :is(.mj-controls,.ms-bottom) .rosa-button svg{width:26px;height:26px;}
.rosa-naval-theme{--rosa-font-interface:var(--font-body);--rosa-font-display:var(--font-display);--bg-dark:var(--rosa-bg);--accent-gold:var(--rosa-gold);--text-primary:var(--rosa-text);--text-muted:var(--rosa-text-muted);--accent-red:var(--rosa-danger);--accent-green:var(--rosa-success);}
.rosa-naval-theme :is(.top-ctrl-btn,.tactical-btn,.weather-pill-btn){min-height:44px;}
@media(max-width:760px){#game-dialog.rosa-game .rosa-brand img{width:104px;}#game-dialog.rosa-game .rosa-header{flex-wrap:wrap;padding:10px max(10px,env(safe-area-inset-left));}.rosa-game .mj-modes button>span:first-child{width:25px;height:25px;}.rosa-game .mj-dashboard span{font-size:12px;}.rosa-game .mj-tagline{font-size:10px;letter-spacing:.7px;}}
@media(max-width:760px){
 .rosa-game .ms-center,.rosa-game .mj-center{order:1;}
 .rosa-game .ms-levels,.rosa-game .mj-sidebar{order:2;}
 .rosa-game .ms-right,.rosa-game .mj-side-actions{order:3;}
 .rosa-game .ms-rules{order:4;}
 .rosa-game .ms-title>img{height:65px;width:115px;}
 .rosa-game .rosa-header-nav .rosa-button>span:last-child{max-width:100%;overflow-wrap:anywhere;}
}
@media(max-width:760px){.rosa-game .ms-main{display:flex;flex-direction:column;align-items:stretch;}.rosa-game :is(.ms-center,.ms-levels,.ms-right){width:100%;}.rosa-game .ms-right{display:grid;}.rosa-game .ms-levels{display:grid;margin-top:0;}}
#game-dialog.rosa-game .game-tabs{max-width:100%;flex-wrap:wrap;width:fit-content;}
@media(max-width:760px){#game-dialog.rosa-game .game-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;border-radius:var(--rosa-radius-md);}#game-dialog.rosa-game .game-tabs .rosa-button{min-width:0;padding-inline:10px;font-size:13px;}}
.rosa-stats-panel{font-variant-numeric:tabular-nums;}.rosa-svg{display:inline-block;vertical-align:middle;width:24px;height:24px;color:var(--rosa-gold-light);filter:drop-shadow(0 1px 1px #0008);}.rosa-naval-theme .choice-icon .rosa-svg{width:38px;height:38px;}.rosa-naval-theme .weather-modal-btn .rosa-svg{width:22px;height:22px;margin-right:5px;}.rosa-naval-theme [data-rosa-icon]{display:inline-flex;align-items:center;justify-content:center;}
/* Baseline structure also works for a future game without a theme adapter. */
.rosa-game .rosa-header{display:flex;align-items:center;gap:16px;}
.rosa-game .rosa-header-nav .rosa-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;}
.rosa-game .rosa-header-actions{display:flex;gap:8px;}
.rosa-game .rosa-control-icon{display:block;width:26px;height:26px;}
.rosa-game .rosa-control-icon svg{width:100%;height:100%;}
@media(max-width:900px){.rosa-game .rosa-header{flex-wrap:wrap;}}
