.pe-programs[hidden],.pe-programs [hidden],.pe-access-dialog [hidden],.landing-page .landing-actions[hidden]{display:none!important}
.landing-page[data-pe-authorized="true"] .landing-info{display:none!important}
.pe-programs{position:relative;z-index:2;width:100%;margin:24px auto;padding:20px;border:1px solid #455b4e;border-radius:12px;background:rgba(24,39,31,.5);color:#e6efe7;box-shadow:0 8px 28px #0008;text-align:left;color-scheme:dark}
.pe-programs-heading,.pe-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pe-programs h2,.pe-access-dialog h2{font-size:20px;line-height:1.35;margin:0}
.pe-account{margin:10px 0 18px;overflow-wrap:anywhere;color:#b0c5b5}
.pe-programs input,.pe-access-dialog input{display:block;width:100%;box-sizing:border-box;margin:7px 0 16px;padding:11px 12px;border:1px solid #61796a;border-radius:5px;background:#0c1912;color:#f0f6f0;font:inherit;caret-color:#76dc98}
.pe-programs input::placeholder,.pe-access-dialog input::placeholder{color:#9eb3a5;opacity:1}
.pe-programs label,.pe-access-dialog label{display:block;font-size:14px;font-weight:500}
.pe-table-scroll{max-height:440px;overflow:auto;border:1px solid #43594a;border-radius:6px;background:transparent}
.pe-table{width:100%;border-collapse:collapse;font-size:14px}
.pe-table th{position:sticky;top:0;background:rgba(42,62,48,.5);color:#e5eee5;text-align:left;font-weight:600;z-index:1}
.pe-table td,.pe-table th{padding:11px 12px;border-bottom:1px solid #344a3b}
.pe-table td:first-child{overflow-wrap:anywhere;min-width:140px}
.pe-table tr:hover{background:#223b2a}
.pe-table td:nth-child(2){white-space:nowrap}
.pe-open-program{display:inline-block;color:#8be0a2!important;font-weight:600;text-decoration:underline}
.pe-empty{margin:14px 0;font-size:14px}
.pe-program-actions,.pe-submit-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.pe-button,.pe-mode,.pe-signout,.pe-close{font:inherit;cursor:pointer}
.pe-button{border:1px solid #187438;border-radius:6px;background:#148b3d;color:white;padding:10px 18px;min-height:43px;font-weight:600;line-height:1.4}
.pe-button-secondary{background:#263d2e;color:#e0eee1;border-color:#607b65}
.pe-button:disabled,.pe-mode:disabled{opacity:.55;cursor:wait}
.pe-signout{background:transparent;border:0;color:#a5d9b2;text-decoration:underline;padding:8px}
.pe-access-dialog{position:fixed;inset:0;box-sizing:border-box;width:440px;height:var(--pe-access-height,520px);scrollbar-gutter:stable;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);margin:auto;padding:0;border:1px solid #607b68;border-radius:12px;background:rgba(24,39,31,.95);color:#e6efe7;box-shadow:0 14px 60px #000a;font-family:Roboto,Arial,sans-serif;overflow:auto;color-scheme:dark}
.pe-access-dialog::backdrop{background:rgba(0,15,6,.7)}
.pe-dialog-heading{padding:18px 22px;background:transparent;border-bottom:1px solid #4a6352}
.pe-close{border:0;background:transparent;font-size:28px;color:#c7decc;line-height:1;padding:6px}
.pe-access-modes{display:flex;gap:7px;flex-wrap:wrap;padding:18px 22px 0}
.pe-mode{border:1px solid #526e5a;border-radius:5px;padding:9px 12px;color:#caddce;background:#203629;font-size:13px;line-height:1.4}
.pe-mode[aria-pressed=true]{background:#247d3f;border-color:#247d3f;color:white}
.pe-access-form{padding:4px 22px 22px}
.pe-instructions{font-size:14px;line-height:1.5;margin:16px 0}
.pe-access-message{font-size:14px;line-height:1.5;color:#9ae2af;margin:10px 0;overflow-wrap:anywhere}
.pe-error,.pe-list-error{color:#ffaba2}
.pe-programs :focus-visible,.pe-access-dialog :focus-visible{outline:3px solid #3c9952;outline-offset:3px}
@media(max-width:600px){.pe-programs{padding:12px;margin:18px 0}.pe-programs h2,.pe-access-dialog h2{font-size:17px}.pe-table td,.pe-table th{padding:9px 7px;font-size:12px}.pe-programs-heading{align-items:flex-start}.pe-access-modes{display:grid;grid-template-columns:1fr;padding:14px 16px 0}.pe-access-form{padding:0 16px 16px}.pe-dialog-heading{padding:14px 16px}.pe-submit-actions{flex-direction:column}.pe-account{font-size:13px}}
/* Match the existing creation dialog to email access, including Vuetify light defaults. */
.landing-dialog .landing-dialog-card{background:#18271f!important;border-color:#607b68!important;color:#e6efe7!important;color-scheme:dark}
.landing-dialog .landing-dialog-title{background:linear-gradient(#334b3b,#243a2c)!important;border-bottom-color:#4a6352!important;color:#e6efe7!important}
.landing-dialog .landing-dialog-body{color:#e6efe7!important}
.landing-dialog .landing-dialog-body .v-input__slot{background:#0c1912!important}
.landing-dialog .landing-dialog-body fieldset{border-color:#61796a!important}
.landing-dialog .landing-dialog-body input{color:#f0f6f0!important;caret-color:#76dc98!important}
.landing-dialog .landing-dialog-body .v-label{color:#b9d1c0!important}
.landing-dialog .landing-dialog-body .v-messages{color:#b9d1c0!important}
.landing-dialog .landing-dialog-body .error--text,.landing-dialog .landing-dialog-body .error--text .v-messages{color:#ffaba2!important}
.landing-dialog .landing-dialog-actions{background:#142219!important;border-top-color:#405947!important}
.landing-dialog .landing-dialog-link{background:#263d2e!important;color:#b8e0c1!important}
.landing-dialog .landing-create-card{background:rgba(24,39,31,.95)!important}
.landing-create-card .landing-dialog-title{position:relative;background:transparent!important;padding-right:54px!important}
.pe-create-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);padding:6px;border:0;background:transparent;color:#c7decc;font:28px/1 Arial,sans-serif;cursor:pointer}
.pe-create-close:focus-visible{outline:2px solid #76dc98;outline-offset:2px}
.landing-create-card .landing-dialog-actions{display:flex!important;justify-content:flex-end!important;background:transparent!important}
.landing-create-card .landing-dialog-actions [hidden]{display:none!important}
/* Retro pushbuttons: flat upper face with crisp right and lower side walls. */
.pe-programs .pe-retro-button,
.pe-access-dialog .pe-button,
.pe-access-dialog .pe-mode,
.landing-dialog .landing-dialog-actions .v-btn{
  --pe-key-light:0;
  position:relative;
  isolation:isolate;
  min-height:44px!important;
  border:1px solid #080a09!important;
  border-radius:3px!important;
  padding:7px 20px 11px!important;
  background:#050805!important;
  color:#c1c4bf!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:14px!important;
  font-weight:600!important;
  letter-spacing:.01em!important;
  line-height:1.35!important;
  text-transform:none!important;
  text-shadow:none!important;
  transform:none!important;
  box-shadow:0 2px 3px #0009!important;
  transition:color .16s ease,text-shadow .16s ease!important;
}
.pe-programs .pe-retro-button::after,
.pe-access-dialog .pe-button::after,
.pe-access-dialog .pe-mode::after,
.landing-dialog .landing-dialog-actions .v-btn::after{
  content:'';
  position:absolute;
  inset:3px 7px 7px 3px;
  z-index:-1;
  pointer-events:none;
  border:0;
  border-top:1px solid #d3ddc578;
  border-right:1px solid #99ac8155;
  border-bottom:1px solid #0b1007;
  border-radius:3px;
  background:linear-gradient(115deg,#2b3126 0%,#252c20 62%,#21291b 100%);
  box-shadow:inset 1px 0 0 #dce5c524,inset 0 0 10px rgba(0,146,61,calc(var(--pe-key-light) * .06));
  transform:translate(calc(var(--pe-key-travel,0) * 1px),calc(var(--pe-key-travel,0) * 2.5px));
  transition:border-color .16s ease,box-shadow .1s ease;
}
.pe-access-dialog .pe-mode{padding-left:15px!important;padding-right:15px!important}
.pe-programs .pe-retro-button.pe-key-down,.pe-programs .pe-retro-button.pe-key-flash,.pe-access-dialog .pe-mode[aria-pressed=true],.pe-access-dialog .pe-key-down,.pe-access-dialog .pe-key-flash,.landing-dialog .pe-key-down,.landing-dialog .pe-key-flash{--pe-key-light:1;color:#1cdb72!important;text-shadow:none!important}
.landing-dialog .landing-dialog-actions .v-btn::before{display:none!important}
.landing-dialog .landing-dialog-actions .v-btn .v-btn__content{font:inherit!important;letter-spacing:inherit!important;text-shadow:inherit!important}
.pe-key-legend,.landing-dialog .landing-dialog-actions .v-btn .v-btn__content{display:inline-block;position:relative;left:-2px;transform:translate(calc(var(--pe-key-travel,0) * 1px),calc(var(--pe-key-travel,0) * 2.5px));pointer-events:none}
/* Two solid planes meet at one clean diagonal; no stacked outline shadows. */
.pe-key-depth{position:absolute;inset:0;z-index:-2;pointer-events:none;--pe-depth-x:calc(var(--pe-key-travel,0) * 1px);--pe-depth-y:calc(var(--pe-key-travel,0) * 2.5px)}
.pe-key-depth::before,.pe-key-depth::after{content:'';position:absolute;inset:0;pointer-events:none}
.pe-key-depth::before{background:linear-gradient(180deg,#3e4737,#303b28);clip-path:polygon(calc(100% - 7px + var(--pe-depth-x)) calc(3px + var(--pe-depth-y)),calc(100% - 3px) 7px,calc(100% - 3px) calc(100% - 3px),calc(100% - 7px + var(--pe-depth-x)) calc(100% - 7px + var(--pe-depth-y)))}
.pe-key-depth::after{background:linear-gradient(180deg,#1b2315,#11180c);clip-path:polygon(calc(3px + var(--pe-depth-x)) calc(100% - 7px + var(--pe-depth-y)),calc(100% - 7px + var(--pe-depth-x)) calc(100% - 7px + var(--pe-depth-y)),calc(100% - 3px) calc(100% - 3px),7px calc(100% - 3px))}
/* Light transmitted through glass lettering: reflective lip, emerald body, dark edge. */
.pe-access-dialog :is(.pe-mode[aria-pressed=true],.pe-key-down,.pe-key-flash) .pe-key-legend,
.landing-dialog :is(.pe-key-down,.pe-key-flash) .v-btn__content,
.pe-programs :is(.pe-key-down,.pe-key-flash) .pe-key-legend{
  background:linear-gradient(180deg,#9bf5bb 0%,#49e88e 23%,#14c565 24%,#22de78 72%,#08aa4c 100%);
  background-clip:text;
  -webkit-background-clip:text;
  color:transparent!important;
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:.12px #0a9b47;
  text-shadow:none!important;
  filter:drop-shadow(0 0 .35px #00b74c66);
}
.pe-access-dialog .pe-button{min-width:160px}
.landing-dialog .landing-dialog-actions .v-btn{min-width:136px!important}
@media(prefers-reduced-motion:reduce){.pe-access-dialog .pe-button,.pe-access-dialog .pe-mode,.landing-dialog .landing-dialog-actions .v-btn,.pe-access-dialog .pe-button::after,.pe-access-dialog .pe-mode::after,.landing-create-card .v-btn::after{transition:none!important}}
/* Only desktop pointer hover illuminates the landmarks; mobile rules stay intact. */
@media(min-width:601px) and (hover:hover) and (pointer:fine){
  .monument-landmark:not(.wind-landmark),.voltmeter-trigger,.landing-page .landing-background-wind{transition:filter .18s ease,opacity .18s ease}
  .monument-landmark:not(.wind-landmark):hover,.monument-landmark:not(.wind-landmark):focus-visible{opacity:1;filter:brightness(1.3) drop-shadow(0 0 5px #b4efcc99)}
  .voltmeter-trigger:hover,.voltmeter-trigger:focus-visible{filter:brightness(1.18) drop-shadow(0 0 6px #b4efcc88)}
  .landing-page:has(.wind-landmark:hover) .landing-background-wind,.landing-page:has(.wind-landmark:focus-visible) .landing-background-wind{filter:brightness(1.35) drop-shadow(0 0 7px #b4efccaa)}
}
@media(prefers-reduced-motion:reduce){.monument-landmark:not(.wind-landmark),.voltmeter-trigger,.landing-page .landing-background-wind{transition:none!important}}
.pe-rso-trigger{cursor:help;text-decoration:underline dotted #8eaf98;text-underline-offset:4px;text-decoration-thickness:1px}
.pe-rso-trigger:hover,.pe-rso-trigger:focus-visible{color:#c9f3d6;outline:none;text-decoration-color:#a8e7bb}
.pe-rso-trigger:focus-visible{outline:1px solid #8fbc9b;outline-offset:3px;border-radius:2px}
.pe-rso-tooltip{position:fixed;inset:auto;margin:0;z-index:2147483647;width:430px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;padding:18px 20px;border:1px solid #648470;border-radius:10px;background:#16271e;color:#e4eee6;box-shadow:0 10px 32px #0009;font:14px/1.5 Arial,Helvetica,sans-serif;text-align:left;color-scheme:dark}
.pe-rso-tooltip[hidden]{display:none!important}
.pe-rso-tooltip .pe-rso-tip-title{display:block;margin-bottom:10px;font-size:16px;color:#c6f1d3}
.pe-rso-tooltip p{margin:0 0 10px}
.pe-rso-tooltip p:last-child{margin-bottom:0}
.pe-rso-tooltip .pe-rso-tip-note{padding-top:11px;border-top:1px solid #3e5c47;color:#b2edc4}
.landing-page .landing-header > .pe-rso-header-trigger{display:block!important;visibility:visible!important;opacity:1!important;position:absolute;z-index:31;left:31%;top:67%;width:34%;height:11%;padding:0;border:0;border-radius:3px;background:transparent;cursor:help;text-decoration:none}
@media(max-width:600px){.landing-page .landing-header > .pe-rso-header-trigger{left:24%;top:71%;width:52%;height:11%}}
/* A shared desktop hover response; selected key lighting remains stronger. */
.landing-actions .instrument-photo::after{transition:filter .18s ease}
@media(hover:hover) and (pointer:fine){
  .landing-actions .instrument-photo.pe-rim-hover::after,
  .landing-actions .landing-action:focus-visible .instrument-photo::after{filter:brightness(1.22) drop-shadow(0 0 3px #a5e7ba99) drop-shadow(0 0 10px #3bbf744d)}
  .pe-access-dialog .pe-close:hover,.pe-create-close:hover,.pe-signout:not(.pe-retro-button):hover{color:#c8f5d6;filter:drop-shadow(0 0 4px #63dc9180)}
  .pe-access-dialog input:hover,.pe-programs input:hover{border-color:#89b99a;box-shadow:0 0 0 1px #72cf9133,0 0 8px #39b86b26}
  .landing-dialog .landing-dialog-body .v-input:hover .v-input__slot{box-shadow:0 0 0 1px #72cf914d,0 0 9px #39b86b26!important}
  .landing-page a:not(.pe-retro-button):hover,.pe-open-program:not(.pe-retro-button):hover{color:#c6f5d4!important;text-decoration:underline;text-underline-offset:3px;text-shadow:0 0 5px #57cc8673}
  .pe-rso-trigger:hover{text-shadow:0 0 4px #63cf8873}
}
@media(prefers-reduced-motion:reduce){.landing-actions .instrument-photo::after{transition:none!important}}

.pe-programs .pe-retro-button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;text-decoration:none!important;vertical-align:middle;cursor:pointer}
.pe-programs .pe-button.pe-retro-button{min-width:136px}
.pe-programs .pe-open-program.pe-retro-button{min-width:98px;white-space:nowrap}
.pe-programs .pe-retro-button.pe-signout{font-size:13px!important;padding-left:14px!important;padding-right:14px!important}
.pe-table th:last-child,.pe-table td:last-child{width:122px;text-align:center;vertical-align:middle}
.pe-table td:last-child{white-space:nowrap}
/* Vuetify's native ripple stays on the moving surface, inside the fixed socket. */
.pe-retro-button .v-ripple__container{inset:3px 7px 7px 3px;width:auto!important;height:auto!important;border-radius:3px;transform:translate(calc(var(--pe-key-travel,0) * 1px),calc(var(--pe-key-travel,0) * 2.5px))}
.pe-retro-button .pe-key-legend,.pe-retro-button .v-btn__content{z-index:1}
@media(prefers-reduced-motion:reduce){.pe-retro-button .v-ripple__animation{transition:none!important}}

/* White socket edges stay visible at rest; a pressed key adds a little light. */
.pe-retro-button::before,.landing-dialog .landing-dialog-actions .v-btn::before{display:block!important;content:'';position:absolute;inset:1px;z-index:-3;pointer-events:none;border-radius:2px;background:transparent;box-shadow:inset 0 0 2px #ffffff59,inset 0 0 4px #ffffff24;opacity:1}

.pe-retro-button:is([aria-pressed=true],.pe-key-down,.pe-key-flash)::before,.landing-dialog .landing-dialog-actions .v-btn:is(.pe-key-down,.pe-key-flash)::before{box-shadow:inset 0 0 2px #ffffff80,inset 0 0 5px #ffffff40}

/* LampOld.vue from BP's schedule: metal holder, ribbed glass and nested reflection. */
.pe-access-modes{display:grid;grid-template-columns:1fr;gap:7px}
.pe-mode-control{display:flex;align-items:center;min-width:0}
.pe-mode-control .pe-mode{flex:1;min-width:0}
.pe-mode-lamp{position:relative;display:inline-block;flex:0 0 25px;box-sizing:border-box;width:25px;height:37px;margin-right:7px;padding:2px 0 0 2px;border:1px solid #00000087;border-radius:8px;background:#35353575;box-shadow:inset 0 1px 0 #6d6d6dbf,inset 0 -1px 0 #6d6d6dbf,inset -1px 0 0 #6d6d6dbf,inset 1px 0 3px #7e7e7e;pointer-events:none}
.pe-lamp-glass{position:relative;display:block;box-sizing:border-box;margin-left:-1px;height:32px;width:21px;padding-top:5px;overflow:hidden;border:1px solid #22222275;border-radius:9px}
.pe-lamp-color{position:relative;display:inline-block;width:200%;height:200%;left:-20%;top:-10%;margin-top:-5px;background:linear-gradient(#000,transparent 1px),linear-gradient(90deg,#000,transparent 1px),#494949;background-size:2px 2px;background-position:center}
.pe-lamp-reflection,.pe-lamp-reflection span{position:absolute;display:inline-block;width:14px;height:16px;border-radius:100px;background:#ffffff61;filter:blur(3px);box-shadow:0 0 27px #0000004a,7px 7px 17px #00000096,-7px -7px 17px #0000004a}
.pe-lamp-reflection{left:17%;top:20%;opacity:.27}
.pe-lamp-reflection span{left:0;top:0;transform:scale(.9)}
.pe-lamp-reflection span span{transform:scale(.8)}
.pe-lamp-reflection span span span{transform:scale(.7)}
.pe-lamp-reflection span span span span{transform:scale(.6)}
.pe-mode-control:has(.pe-mode[aria-pressed=true]) .pe-lamp-color{background:linear-gradient(#00690e,transparent 1px),linear-gradient(90deg,#081d0d,transparent 1px),#00ff00;background-size:2px 2px;background-position:center;box-shadow:inset 3px 3px 10px #000,inset -10px -14px 7px #000000b0,inset -11px -5px 6px #000000fc,inset -16px -20px 8px #000c,inset 4px -7px 5px #161616cc}
/* Light under the pressed face, contained inside its crisp physical edges. */
:is(.pe-access-dialog,.pe-programs,.landing-dialog) .pe-retro-button:is([aria-pressed=true],.pe-key-down,.pe-key-flash)::after{background:linear-gradient(180deg,#55e59330 0%,#55e59338 50%,#55e59330 100%),linear-gradient(115deg,#2b3126 0%,#252c20 62%,#21291b 100%);box-shadow:inset 1px 0 0 #dce5c52e,inset 0 1px 0 #d4f7df24,inset 0 0 7px #5cde8a38}
