/* Reused current QE project-window and messenger gate chrome; page theme is retained. */
:root{--qe-grid-x:28px;--qe-grid-y:28px}
html[data-theme] body>.qe-gate-panel#password-dialog{width:min(300px,calc(100vw - 40px));aspect-ratio:auto;max-height:none;min-height:0;padding:0;gap:10px;overflow:visible;background:none;border:none;align-items:stretch;transform:translate(-50%,-50%);box-shadow:none}
#password-dialog.qe-gate-panel .qe-gate-title{align-self:flex-start;position:relative;width:auto;max-width:90%;padding:13px 18px;border-radius:18px 18px 18px 4px;background:#1769da;color:#fff;font:400 13px/1.4 var(--body);letter-spacing:0;text-transform:none}

#password-dialog.qe-gate-panel .gate-form{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:0;align-items:center;width:100%;padding:5px 5px 5px 15px;background:#30343a;border:1px solid #71777e;border-radius:23px;margin:0}
#password-dialog.qe-gate-panel .gate-lab{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
#password-dialog.qe-gate-panel .gate-input{width:100%;padding:7px 4px;min-height:34px;border:0;background:transparent;color:#f0f0ee;border-radius:5px;font:400 14px/1.3 var(--body)}
#password-dialog.qe-gate-panel .gate-input::placeholder{color:#c2c6cb}
#password-dialog.qe-gate-panel .gate-input:focus{outline:1px solid #c6d7f5;outline-offset:1px}
#password-dialog.qe-gate-panel .gate-go{display:grid;place-items:center;padding:0;width:34px;height:34px;min-height:34px;border-radius:50%;background:#1769da;color:#fff;font:400 24px/1 Arial,sans-serif}
#password-dialog.qe-gate-panel .gate-msg:empty{display:none}
#password-dialog.qe-gate-panel .gate-msg{grid-column:1/-1;padding:8px 6px 4px;font:400 10px/1.4 var(--body);text-transform:none;letter-spacing:0;color:#f7aab6}
html[data-theme] body #password-dialog.qe-gate-panel .qe-gate-hint{margin:0 8px;color:#d4d7db;font:400 9px/1.5 var(--body);letter-spacing:0;text-align:right}
/* Windows occupy an integer number of the same lattice modules. JS snaps their origins. */
.qe-window{--window-columns:16;--window-rows:14;position:fixed;inset:auto;margin:0;width:min(calc(var(--window-columns)*var(--qe-grid-x)),calc(100vw - 32px));height:min(calc(var(--window-rows)*var(--qe-grid-y)),calc(100svh - 64px));max-width:none;max-height:none;padding:0;border:1px solid #82878d;background:#24272b;color:#f0f0ee;box-shadow:0 24px 90px #0008;overflow:hidden}
.qe-window::backdrop{background:rgba(15,17,20,.68);backdrop-filter:blur(4px)}
.qe-window[open]{display:flex;flex-direction:column}
.qe-window-bar{display:flex;align-items:center;flex:none;gap:12px;min-height:40px;padding:7px 12px;border-bottom:1px solid #757b82;background:#24272b;color:#f0f0ee;font:400 9px/1.4 var(--body);letter-spacing:.13em;text-transform:uppercase}
.qe-window-close{width:28px;height:28px;flex:none;padding:0;border:1px solid #90959b;border-radius:0;color:inherit;background:transparent;font:400 19px/1 Arial,sans-serif;cursor:pointer}
.qe-window-close:hover{background:#41464d}
.qe-window-bar p{margin:0!important;color:inherit!important;font:inherit!important}
.qe-window-body{min-height:0;overflow:auto;overscroll-behavior:contain;flex:1}
.qe-window :focus-visible{outline:2px solid currentColor;outline-offset:3px}

@media(max-width:600px){.qe-window{width:calc(100vw - 24px);height:calc(100svh - 32px)}.qe-window-bar{font-size:8px;letter-spacing:.08em}#password-dialog.qe-gate-panel .gate-input{font-size:16px}}
html[data-theme] body.qe-home.qe-interior-open>.qe-cover-drawing{display:none!important}
html[data-theme] body.qe-interior-open>#password-dialog,html[data-theme] body.qe-interior-open>.qe-home-blurb{visibility:hidden;pointer-events:none}

/* The messenger input stays dark; its helper sits on the selected page ground. */
#password-dialog.qe-gate-panel .gate-lab{color:#f0f0ee}
html[data-theme] body #password-dialog.qe-gate-panel .qe-gate-hint{color:var(--muted)}

/* Keep password entry at a non-zooming size on touch devices in either orientation. */
@media(pointer:coarse){#password-dialog.qe-gate-panel .gate-input{font-size:16px}}
