html {
    height: 95%
}

body {
    margin: 0;
    padding: 0;
    font-family: arial;
    font-size: 12px;
    height: 100%;
    background: #e8e8e8
}

label {
    display: inline-block;
    margin-bottom: 3px
}

/* ---------- Lobby ---------- */

#lobby {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #bdbdbd
}

#lobby-card {
    background: white;
    border-radius: 12px;
    padding: 36px 40px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    min-width: 320px;
    max-width: 400px;
    text-align: center
}

#lobby-card h2 {
    margin: 0 0 24px;
    font-size: 24px;
    color: #333
}

.lobby-field {
    margin-bottom: 14px;
    text-align: left
}

.lobby-field label {
    display: block;
    margin-bottom: 4px;
    font-weight: bold;
    font-size: 13px;
    color: #555
}

.lobby-field input,
.lobby-field select {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-radius: 6px;
    box-sizing: border-box
}

.lobby-field input:focus,
.lobby-field select:focus {
    outline: none;
    border-color: #007b00;
    box-shadow: 0 0 0 2px rgba(102,126,234,0.25)
}

#lobby-buttons {
    display: flex;
    gap: 10px;
    margin-bottom: 16px
}

.lobby-btn {
    flex: 1;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: bold;
    border: 2px solid #007b00;
    border-radius: 8px;
    cursor: pointer;
    background: white;
    color: #007b00;
    transition: all 0.15s
}

.lobby-btn:hover {
    background: #f0fff1
}

.lobby-btn-primary {
    background: #007b00;
    color: white
}

.lobby-btn-primary:hover {
    background: #649d64
}

.lobby-panel {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #eee
}

#lobby-error {
    margin-top: 12px;
    padding: 8px 12px;
    background: #fee;
    color: #c00;
    border-radius: 6px;
    font-size: 13px
}

#waiting-panel p {
    color: #555;
    font-size: 15px
}

/* ---------- Info Bar ---------- */

#info-bar {
    padding: 10px 16px;
    background: #333;
    color: #ddd;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap
}

.info-sep {
    color: #666;
    margin: 0 4px
}

.info-sep-text {
    color: #999;
    margin: 0 2px
}

#new-game-link {
    color: #6ea8fe;
    text-decoration: underline;
    cursor: pointer;
    margin-left: auto
}

#new-game-link:hover {
    color: #9ec5fe
}

/* ---------- Game Wrapper ---------- */

#game-wrapper {
    text-align: center
}

#game-container {
    position: relative;
    margin: 16px auto;
    display: inline-block
}

/* ---------- Disconnect Overlay ---------- */

#disconnect-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.55);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100
}

#disconnect-message {
    background: white;
    padding: 28px 40px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: bold;
    color: #c00;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    text-align: center
}

/* ---------- Remote Cursor ---------- */

#remote-cursor {
    position: fixed;
    pointer-events: none;
    z-index: 50
}

#remote-cursor-icon {
    display: block;
    width: 24px;
    height: 24px;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.4))
}

#remote-cursor-name {
    font-size: 10px;
    font-weight: bold;
    white-space: nowrap;
    margin-top: 1px;
    margin-left: 6px;
    text-shadow: 0 0 3px white, 0 0 3px white
}

#game {
    background-color: silver;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -moz-tap-highlight-color: rgba(0,0,0,0);
    -ms-tap-highlight-color: rgba(0,0,0,0);
    touch-action: manipulation;
    -webkit-touch-callout: none;
    position: relative
}

#game div {
    float: left;
    line-height: 0;
    font-size: 0
}


.flag-animation {
    position: absolute;
    pointer-events: none;
    transition: top .3s,left .3s,width .3s,height .3s,opacity .3s;
    -webkit-transition: top .3s,left .3s,width .3s,height .3s,opacity .3s;
    -moz-transition: top .3s,left .3s,width .3s,height .3s,opacity .3s;
    -ms-transition: top .3s,left .3s,width .3s,height .3s,opacity .3s
}

.z100 #game div {
    background-image: url('sprite100.gif')
}

.night-mode .z100 #game div {
    background-image: url('sprite100-night.gif')
}

.z100 .time0 {
    background-position: 0 0;
    width: 13px;
    height: 23px
}

.z100 .time1 {
    background-position: -13px 0;
    width: 13px;
    height: 23px
}

.z100 .time2 {
    background-position: -26px 0;
    width: 13px;
    height: 23px
}

.z100 .time3 {
    background-position: -39px 0;
    width: 13px;
    height: 23px
}

.z100 .time4 {
    background-position: -52px 0;
    width: 13px;
    height: 23px
}

.z100 .time5 {
    background-position: -65px 0;
    width: 13px;
    height: 23px
}

.z100 .time6 {
    background-position: -78px 0;
    width: 13px;
    height: 23px
}

.z100 .time7 {
    background-position: -91px 0;
    width: 13px;
    height: 23px
}

.z100 .time8 {
    background-position: -104px 0;
    width: 13px;
    height: 23px
}

.z100 .time9 {
    background-position: -117px 0;
    width: 13px;
    height: 23px
}

.z100 .time- {
    background-position: -130px 0;
    width: 13px;
    height: 23px
}

.z100 .open0 {
    background-position: 0 -23px;
    width: 16px;
    height: 16px
}

.z100 .open1 {
    background-position: -16px -23px;
    width: 16px;
    height: 16px
}

.z100 .open2 {
    background-position: -32px -23px;
    width: 16px;
    height: 16px
}

.z100 .open3 {
    background-position: -48px -23px;
    width: 16px;
    height: 16px
}

.z100 .open4 {
    background-position: -64px -23px;
    width: 16px;
    height: 16px
}

.z100 .open5 {
    background-position: -80px -23px;
    width: 16px;
    height: 16px
}

.z100 .open6 {
    background-position: -96px -23px;
    width: 16px;
    height: 16px
}

.z100 .open7 {
    background-position: -112px -23px;
    width: 16px;
    height: 16px
}

.z100 .open8 {
    background-position: -128px -23px;
    width: 16px;
    height: 16px
}

.z100 .blank {
    background-position: 0 -39px;
    width: 16px;
    height: 16px
}

.z100 .bombflagged {
    background-position: -16px -39px;
    width: 16px;
    height: 16px
}

.z100 .bombdeath {
    background-position: -32px -39px;
    width: 16px;
    height: 16px
}

.z100 .bombmisflagged {
    background-position: -48px -39px;
    width: 16px;
    height: 16px
}

.z100 .bombrevealed {
    background-position: -64px -39px;
    width: 16px;
    height: 16px
}

.z100 .question {
    background-position: -80px -39px;
    width: 16px;
    height: 16px
}

.z100 .questionpressed {
    background-position: -96px -39px;
    width: 16px;
    height: 16px
}

.z100 .facesmile {
    background-position: 0 -55px;
    width: 26px;
    height: 26px
}

.z100 .facepressed {
    background-position: -26px -55px;
    width: 26px;
    height: 26px
}

.z100 .faceooh {
    background-position: -52px -55px;
    width: 26px;
    height: 26px
}

.z100 .facedead {
    background-position: -78px -55px;
    width: 26px;
    height: 26px
}

.z100 .facewin {
    background-position: -104px -55px;
    width: 26px;
    height: 26px
}

.z100 .bordertl {
    background-position: 0 -81px;
    width: 10px;
    height: 10px
}

.z100 .bordertr {
    background-position: -10px -81px;
    width: 10px;
    height: 10px
}

.z100 .borderbl {
    background-position: -20px -81px;
    width: 10px;
    height: 10px
}

.z100 .borderbr {
    background-position: -30px -81px;
    width: 10px;
    height: 10px
}

.z100 .bordertb {
    background-position: -40px -81px;
    width: 16px;
    height: 10px
}

.z100 .borderjointl {
    background-position: -56px -81px;
    width: 10px;
    height: 10px
}

.z100 .borderjointr {
    background-position: -66px -81px;
    width: 10px;
    height: 10px
}

.z100 .borderlr {
    background-position: -134px -39px;
    width: 10px;
    height: 16px
}

.z100 .borderlrlong {
    background-position: -134px -39px;
    width: 10px;
    height: 32px
}

.z100 #mines_hundreds {
    margin: 4px 0 5px 6px
}

.z100 #mines_tens {
    margin: 4px 0 5px 0
}

.z100 #mines_ones {
    margin: 4px 0 5px 0
}

.z100 #seconds_hundreds {
    margin: 4px 0 5px 0
}

.z100 #seconds_tens {
    margin: 4px 0 5px 0
}

.z100 #seconds_ones {
    margin: 4px 6px 5px 0
}

.z100 #face {
    margin-top: 3px;
    margin-bottom: 3px
}

.z100 .dialog {
    left: 16px;
    top: 74px
}

.z150 #game div {
    background-image: url('sprite150.gif')
}

.night-mode .z150 #game div {
    background-image: url('sprite150-night.gif')
}

.z150 .time0 {
    background-position: 0 0;
    width: 20px;
    height: 35px
}

.z150 .time1 {
    background-position: -20px 0;
    width: 20px;
    height: 35px
}

.z150 .time2 {
    background-position: -39px 0;
    width: 20px;
    height: 35px
}

.z150 .time3 {
    background-position: -59px 0;
    width: 20px;
    height: 35px
}

.z150 .time4 {
    background-position: -78px 0;
    width: 20px;
    height: 35px
}

.z150 .time5 {
    background-position: -98px 0;
    width: 20px;
    height: 35px
}

.z150 .time6 {
    background-position: -117px 0;
    width: 20px;
    height: 35px
}

.z150 .time7 {
    background-position: -137px 0;
    width: 20px;
    height: 35px
}

.z150 .time8 {
    background-position: -156px 0;
    width: 20px;
    height: 35px
}

.z150 .time9 {
    background-position: -176px 0;
    width: 20px;
    height: 35px
}

.z150 .time- {
    background-position: -195px 0;
    width: 20px;
    height: 35px
}

.z150 .open0 {
    background-position: 0 -35px;
    width: 24px;
    height: 24px
}

.z150 .open1 {
    background-position: -24px -35px;
    width: 24px;
    height: 24px
}

.z150 .open2 {
    background-position: -48px -35px;
    width: 24px;
    height: 24px
}

.z150 .open3 {
    background-position: -72px -35px;
    width: 24px;
    height: 24px
}

.z150 .open4 {
    background-position: -96px -35px;
    width: 24px;
    height: 24px
}

.z150 .open5 {
    background-position: -120px -35px;
    width: 24px;
    height: 24px
}

.z150 .open6 {
    background-position: -144px -35px;
    width: 24px;
    height: 24px
}

.z150 .open7 {
    background-position: -168px -35px;
    width: 24px;
    height: 24px
}

.z150 .open8 {
    background-position: -192px -35px;
    width: 24px;
    height: 24px
}

.z150 .blank {
    background-position: 0 -59px;
    width: 24px;
    height: 24px
}

.z150 .bombflagged {
    background-position: -24px -59px;
    width: 24px;
    height: 24px
}

.z150 .bombdeath {
    background-position: -48px -59px;
    width: 24px;
    height: 24px
}

.z150 .bombmisflagged {
    background-position: -72px -59px;
    width: 24px;
    height: 24px
}

.z150 .bombrevealed {
    background-position: -96px -59px;
    width: 24px;
    height: 24px
}

.z150 .question {
    background-position: -120px -59px;
    width: 24px;
    height: 24px
}

.z150 .questionpressed {
    background-position: -144px -59px;
    width: 24px;
    height: 24px
}

.z150 .facesmile {
    background-position: 0 -83px;
    width: 39px;
    height: 39px
}

.z150 .facepressed {
    background-position: -39px -83px;
    width: 39px;
    height: 39px
}

.z150 .faceooh {
    background-position: -78px -83px;
    width: 39px;
    height: 39px
}

.z150 .facedead {
    background-position: -117px -83px;
    width: 39px;
    height: 39px
}

.z150 .facewin {
    background-position: -156px -83px;
    width: 39px;
    height: 39px
}

.z150 .bordertl {
    background-position: 0 -122px;
    width: 15px;
    height: 15px
}

.z150 .bordertr {
    background-position: -15px -122px;
    width: 15px;
    height: 15px
}

.z150 .borderbl {
    background-position: -30px -122px;
    width: 15px;
    height: 15px
}

.z150 .borderbr {
    background-position: -45px -122px;
    width: 15px;
    height: 15px
}

.z150 .bordertb {
    background-position: -60px -122px;
    width: 24px;
    height: 15px
}

.z150 .borderjointl {
    background-position: -84px -122px;
    width: 15px;
    height: 15px
}

.z150 .borderjointr {
    background-position: -99px -122px;
    width: 15px;
    height: 15px
}

.z150 .borderlr {
    background-position: -201px -59px;
    width: 15px;
    height: 24px
}

.z150 .borderlrlong {
    background-position: -201px -59px;
    width: 15px;
    height: 48px
}

.z150 #mines_hundreds {
    margin: 6px 0 7px 9px
}

.z150 #mines_tens {
    margin: 6px 0 7px 0
}

.z150 #mines_ones {
    margin: 6px 0 7px 0
}

.z150 #seconds_hundreds {
    margin: 6px 0 7px 0
}

.z150 #seconds_tens {
    margin: 6px 0 7px 0
}

.z150 #seconds_ones {
    margin: 6px 9px 7px 0
}

.z150 #face {
    margin-top: 4px;
    margin-bottom: 5px
}

.z150 .dialog {
    left: 24px;
    top: 102px
}

.z200 #game div {
    background-image: url('sprite200.gif')
}

.night-mode .z200 #game div {
    background-image: url('sprite200-night.gif')
}

.z200 .time0 {
    background-position: 0 0;
    width: 26px;
    height: 46px
}

.z200 .time1 {
    background-position: -26px 0;
    width: 26px;
    height: 46px
}

.z200 .time2 {
    background-position: -52px 0;
    width: 26px;
    height: 46px
}

.z200 .time3 {
    background-position: -78px 0;
    width: 26px;
    height: 46px
}

.z200 .time4 {
    background-position: -104px 0;
    width: 26px;
    height: 46px
}

.z200 .time5 {
    background-position: -130px 0;
    width: 26px;
    height: 46px
}

.z200 .time6 {
    background-position: -156px 0;
    width: 26px;
    height: 46px
}

.z200 .time7 {
    background-position: -182px 0;
    width: 26px;
    height: 46px
}

.z200 .time8 {
    background-position: -208px 0;
    width: 26px;
    height: 46px
}

.z200 .time9 {
    background-position: -234px 0;
    width: 26px;
    height: 46px
}

.z200 .time- {
    background-position: -260px 0;
    width: 26px;
    height: 46px
}

.z200 .open0 {
    background-position: 0 -46px;
    width: 32px;
    height: 32px
}

.z200 .open1 {
    background-position: -32px -46px;
    width: 32px;
    height: 32px
}

.z200 .open2 {
    background-position: -64px -46px;
    width: 32px;
    height: 32px
}

.z200 .open3 {
    background-position: -96px -46px;
    width: 32px;
    height: 32px
}

.z200 .open4 {
    background-position: -128px -46px;
    width: 32px;
    height: 32px
}

.z200 .open5 {
    background-position: -160px -46px;
    width: 32px;
    height: 32px
}

.z200 .open6 {
    background-position: -192px -46px;
    width: 32px;
    height: 32px
}

.z200 .open7 {
    background-position: -224px -46px;
    width: 32px;
    height: 32px
}

.z200 .open8 {
    background-position: -256px -46px;
    width: 32px;
    height: 32px
}

.z200 .blank {
    background-position: 0 -78px;
    width: 32px;
    height: 32px
}

.z200 .bombflagged {
    background-position: -32px -78px;
    width: 32px;
    height: 32px
}

.z200 .bombdeath {
    background-position: -64px -78px;
    width: 32px;
    height: 32px
}

.z200 .bombmisflagged {
    background-position: -96px -78px;
    width: 32px;
    height: 32px
}

.z200 .bombrevealed {
    background-position: -128px -78px;
    width: 32px;
    height: 32px
}

.z200 .question {
    background-position: -160px -78px;
    width: 32px;
    height: 32px
}

.z200 .questionpressed {
    background-position: -192px -78px;
    width: 32px;
    height: 32px
}

.z200 .facesmile {
    background-position: 0 -110px;
    width: 52px;
    height: 52px
}

.z200 .facepressed {
    background-position: -52px -110px;
    width: 52px;
    height: 52px
}

.z200 .faceooh {
    background-position: -104px -110px;
    width: 52px;
    height: 52px
}

.z200 .facedead {
    background-position: -156px -110px;
    width: 52px;
    height: 52px
}

.z200 .facewin {
    background-position: -208px -110px;
    width: 52px;
    height: 52px
}

.z200 .bordertl {
    background-position: 0 -162px;
    width: 20px;
    height: 20px
}

.z200 .bordertr {
    background-position: -20px -162px;
    width: 20px;
    height: 20px
}

.z200 .borderbl {
    background-position: -40px -162px;
    width: 20px;
    height: 20px
}

.z200 .borderbr {
    background-position: -60px -162px;
    width: 20px;
    height: 20px
}

.z200 .bordertb {
    background-position: -80px -162px;
    width: 32px;
    height: 20px
}

.z200 .borderjointl {
    background-position: -112px -162px;
    width: 20px;
    height: 20px
}

.z200 .borderjointr {
    background-position: -132px -162px;
    width: 20px;
    height: 20px
}

.z200 .borderlr {
    background-position: -268px -78px;
    width: 20px;
    height: 32px
}

.z200 .borderlrlong {
    background-position: -268px -78px;
    width: 20px;
    height: 64px
}

.z200 #mines_hundreds {
    margin: 8px 0 10px 12px
}

.z200 #mines_tens {
    margin: 8px 0 10px 0
}

.z200 #mines_ones {
    margin: 8px 0 10px 0
}

.z200 #seconds_hundreds {
    margin: 8px 0 10px 0
}

.z200 #seconds_tens {
    margin: 8px 0 10px 0
}

.z200 #seconds_ones {
    margin: 8px 12px 10px 0
}

.z200 #face {
    margin-top: 6px;
    margin-bottom: 6px
}

.z200 .dialog {
    left: 30px;
    top: 130px
}

