/* Reusable in-game message boxes (see message-box.js) */
.message-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;background:#0008;overflow:auto}
.message-backdrop>dialog.message-hosted{position:static;display:block;margin:0;max-width:100%;max-height:calc(100dvh - 24px);overflow:auto;inset:auto}
.message-box{width:min(360px,100%);background:#e9e9df;color:#222;border:2px solid #151515;border-radius:7px;box-shadow:inset 0 0 0 1px #fff,4px 5px #0005;font:12px Arial,Helvetica,sans-serif;overflow:hidden}
.message-titlebar{position:relative;height:30px;display:flex;justify-content:center;align-items:center;background:linear-gradient(#438ca6 0,#438ca6 50%,#327b96 51%);color:#fff;border-bottom:1px solid #173e4e;box-shadow:inset 0 1px #80acbc;user-select:none}
.message-titlebar strong{font-size:12px;text-shadow:0 1px #215d73;padding:0 30px}
.message-titlebar .hotel-close{position:absolute;right:7px;top:5px;width:19px;height:19px;background:linear-gradient(#df5c49,#ae2116);border:1px solid #fff;border-radius:3px;box-shadow:0 0 0 1px #61261a;color:#fff;font:bold 15px/14px Arial;padding:0;cursor:pointer}
.message-body{padding:16px 18px 6px}.message-body p{margin:0 0 8px;color:#333;line-height:1.4;overflow-wrap:anywhere}
.message-danger .message-titlebar,.message-box:has(.message-danger) .message-titlebar{background:linear-gradient(#c9533f 0,#c9533f 50%,#a93a29 51%)}
.message-form{display:flex;flex-direction:column;gap:6px;margin-top:6px}.message-form label{display:flex;flex-direction:column;gap:4px;color:#333}.message-form input{padding:6px 8px;background:#fff;color:#222;color-scheme:light;border:1px solid #888;border-radius:3px;font:12px Arial}.message-form small{color:#666}
.message-buttons{display:flex;justify-content:flex-end;gap:8px;padding:10px 18px 14px}
.message-button{min-width:84px;height:25px;padding:0 12px;border-radius:4px;font:bold 12px Arial;cursor:pointer}
.message-button.hotel-button{margin:0;width:auto;padding:0 12px;border:1px solid #111;background:linear-gradient(#fafaf6,#c7c7c0);box-shadow:inset 1px 1px #fff;color:#111}
.message-button.message-primary{min-width:100px}
.message-button.message-danger{background:linear-gradient(#df5c49 0,#df5c49 50%,#ae2116 50%);border:2px solid #61261a;box-shadow:inset 0 1px #f79683;color:#fff}
.message-notices{position:fixed;left:16px;bottom:124px;z-index:90;display:flex;flex-direction:column;gap:6px;align-items:flex-start;pointer-events:none;width:min(360px,calc(100vw - 32px))}
.message-notice{pointer-events:auto;cursor:pointer;width:100%;background:#fff6d0;border:1px solid #111;border-radius:4px;box-shadow:2px 3px #0005;font:12px Arial;color:#40391c;overflow:hidden}
.message-notice strong{display:block;padding:3px 10px;background:linear-gradient(#438ca6 0,#438ca6 50%,#327b96 51%);color:#fff;font-size:11px;text-shadow:0 1px #215d73}.message-notice span{display:block;padding:7px 10px;overflow-wrap:anywhere}
.message-notice.message-danger strong{background:linear-gradient(#c9533f 0,#c9533f 50%,#a93a29 51%)}
/* Furniture settings dialog (admin) */
.message-box.fse-box{width:min(780px,100%);max-height:calc(100dvh - 24px);overflow:auto}
.fse{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.fse-section{border:1px solid #a6a69c;border-radius:4px;background:#deded5;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.fse-section legend{font-weight:bold;color:#444;padding:0 4px}.fse-section small{color:#555}
.fse-toggle{display:flex;align-items:center;gap:6px;color:#222}.fse-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 12px}.fse-grid label,.fse-section>label{display:flex;flex-direction:column;gap:3px;color:#333}.fse-grid label.fse-toggle{flex-direction:row}
.fse input[type=number],.fse select{padding:4px 6px;border:1px solid #888;border-radius:3px;background:#fff;color:#222}.fse input[type=color]{width:100%;height:30px;padding:2px}
.fse-canvas{width:100%;max-width:420px;align-self:center;border:1px solid #111;border-radius:4px;cursor:crosshair;touch-action:none;image-rendering:pixelated}
.fse-rects{display:flex;flex-direction:column;gap:3px}.fse-rect{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 6px;background:#fff;border:1px solid #bbb;border-radius:3px}.fse .hotel-button{width:auto;margin:0;padding:3px 10px}
/* Furniture settings dialog (admin) */
.message-box.fse-box{width:min(780px,100%);max-height:calc(100dvh - 24px);overflow:auto}
.fse{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.fse-section{border:1px solid #a6a69c;border-radius:4px;background:#deded5;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.fse-section legend{font-weight:bold;color:#444;padding:0 4px}.fse-section small{color:#555}
.fse-toggle{display:flex;align-items:center;gap:6px;color:#222}.fse-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 12px}.fse-grid label,.fse-section>label{display:flex;flex-direction:column;gap:3px;color:#333}.fse-grid label.fse-toggle{flex-direction:row}
.fse input[type=number],.fse select{padding:4px 6px;border:1px solid #888;border-radius:3px;background:#fff;color:#222}.fse input[type=color]{width:100%;height:30px;padding:2px}
.fse-canvas{width:100%;max-width:420px;align-self:center;border:1px solid #111;border-radius:4px;cursor:crosshair;touch-action:none;image-rendering:pixelated}
.fse-rects{display:flex;flex-direction:column;gap:3px}.fse-rect{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 6px;background:#fff;border:1px solid #bbb;border-radius:3px}.fse .hotel-button{width:auto;margin:0;padding:3px 10px}
.fse .fse-toggle,.fse-section>label.fse-toggle,.fse-grid label.fse-toggle{flex-direction:row;align-items:center}
/* Room layout editor */
.message-box.le-box{width:min(620px,100%);max-height:calc(100dvh - 24px);overflow:auto}
.le{display:flex;flex-direction:column;gap:8px;margin-top:4px;color:#222}
.le-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.le-controls label{display:flex;flex-direction:column;gap:3px}.le select,.le input[type=checkbox]{font:12px Arial}.le select{padding:4px 6px;border:1px solid #888;border-radius:3px;background:#fff;color:#222}
.le-tools{display:flex;flex-wrap:wrap;gap:6px}.le .hotel-button{width:auto;margin:0;padding:4px 10px}.le .hotel-button.selected{background:linear-gradient(#a9d3e4,#6fb0cc);font-weight:bold}
.le-grid-wrap{overflow:auto;max-height:340px;padding:4px;background:#1f2b31;border:1px solid #111;border-radius:4px;align-self:flex-start;max-width:100%}.le-grid{display:block;cursor:crosshair;touch-action:none}
.le-door{border:1px solid #a6a69c;border-radius:4px;background:#deded5;padding:6px 10px;display:flex;flex-wrap:wrap;gap:6px 14px}.le-door legend{font-weight:bold;padding:0 4px}.le-door label{display:flex;gap:4px;align-items:center}.le-door .le-check{flex-basis:100%}
.le-info{margin:0;font-size:11px;color:#444}.le-info.invalid{color:#b00020;font-weight:bold}.le-preview{align-self:center;max-width:100%;background:#cdd8dc;border:1px solid #111;border-radius:4px}
.shape-settings p{margin:0 0 6px;font-size:11px}.shape-settings .hotel-button{width:auto;margin:0;padding:4px 10px}
#create-room .le-door label,.le-door label{display:flex;flex-direction:row;align-items:center;gap:6px;font:12px Arial;margin:0}
#create-room .le-controls label,.le-controls label{display:flex;flex-direction:column;gap:3px;font:12px Arial;margin:0}
#create-room .le{max-width:560px}
/* Pixel mask editor */
.fse-paint{width:100%;max-width:640px;align-self:center;border:1px solid #111;border-radius:4px;cursor:crosshair;touch-action:none;image-rendering:pixelated;outline:none}.fse-paint:focus-visible{outline:2px dotted #0b6fa4}
.fse-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end}.fse-tools label{display:flex;flex-direction:column;gap:2px}.fse-tools input[type=number]{width:60px}.fse .hotel-button.selected{background:linear-gradient(#a9d3e4,#6fb0cc);font-weight:bold}.fse-zoom{min-width:36px;text-align:center;font-weight:bold;align-self:center}.fse-counter{color:#555}

.message-error{color:#b3261e;font-weight:700}.message-form input[aria-invalid=true]{border-color:#b3261e}

.fse-tabs{position:sticky;top:-1px;z-index:1;background:inherit;flex-wrap:wrap}.fse [hidden]{display:none!important}

.message-drag-handle{cursor:grab;touch-action:none}.message-drag-handle.dragging{cursor:grabbing}.message-box.fse-box>.message-titlebar{position:sticky;top:0;z-index:2}
