/* AlltagsPilot V12.3 – Ambient Midnight
   Purely visual, battery-conscious motion: transform/opacity only, no timers,
   networks, canvas or location access. Layer is behind ALL interactive content. */
body {position:relative; isolation:isolate;}
body::before {
  content:"";
  position:fixed;
  inset:-24vmax;
  pointer-events:none;
  z-index:0;
  opacity:.76;
  background:
    radial-gradient(ellipse 28% 30% at 19% 28%,rgba(62,194,180,.19) 0%,rgba(38,135,148,.08) 44%,transparent 76%),
    radial-gradient(ellipse 29% 32% at 80% 43%,rgba(91,135,218,.17) 0%,rgba(62,98,159,.07) 49%,transparent 78%),
    radial-gradient(ellipse 32% 27% at 47% 80%,rgba(53,155,170,.11) 0%,transparent 74%);
  transform:translate3d(0,0,0) scale(1);
  transform-origin:center;
  animation: ap123-ambient-drift 30s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
/* Ensures ambient effects never overlap text, dialogs, controls or dock. */
body > .app {position:relative; z-index:1;}
@keyframes ap123-ambient-drift {
  0%   {transform:translate3d(-1.2%, -1.0%, 0) scale(1.00);opacity:.56}
  50%  {transform:translate3d(2.4%, 1.7%, 0) scale(1.025);opacity:.80}
  100% {transform:translate3d(-1%, 2%, 0) scale(1.015);opacity:.67}
}
html[data-ap-bg-motion="off"] body::before {
  animation:none!important;
  transform:none!important;
  opacity:.38;
  will-change:auto;
}
/* Preserve the optional light theme with much calmer hues. */
html[data-v8-theme="light"] body::before {
  background:
    radial-gradient(ellipse 30% 30% at 21% 23%,rgba(85,197,171,.14),transparent 78%),
    radial-gradient(ellipse 30% 28% at 82% 48%,rgba(119,157,213,.12),transparent 76%);
  opacity:.38;
}
/* This animation respects battery/accessibility preferences. */
@media (prefers-reduced-motion:reduce) {
  body::before {animation:none!important;transform:none!important;opacity:.30;will-change:auto;}
}
/* Accessible, optional motion switch under Settings. */
.ap123-option-row{display:flex;align-items:center;justify-content:space-between;gap:18px}
.ap123-option-copy{min-width:0;flex:1}
.ap123-option-copy p{margin:8px 0 0;color:#acbfd0;line-height:1.55;font-size:13px}
.ap123-switch{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:60px;height:48px;cursor:pointer}
.ap123-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.ap123-switch-track{width:52px;height:30px;background:#33475b;border:1px solid #577188;border-radius:99px;transition:background .2s ease,border-color .2s ease;position:relative}
.ap123-switch-track::before{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#dae7f3;transition:transform .2s ease}
.ap123-switch input:checked + .ap123-switch-track{background:#70d5c5;border-color:#96e6d9}
.ap123-switch input:checked + .ap123-switch-track::before{transform:translateX(22px);background:#0b2330}
.ap123-switch input:focus-visible + .ap123-switch-track{outline:3px solid #a9ffea;outline-offset:4px}
.ap123-motion-status{font-size:12px;color:#9ecfcb;margin:8px 0 0}
html[data-v8-theme="light"] .ap123-option-copy p{color:#455d70}
html[data-v8-theme="light"] .ap123-motion-status{color:#2b6f69}
@media(max-width:420px){.ap123-option-row{gap:9px}.ap123-option-copy h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.ap123-switch-track,.ap123-switch-track::before{transition:none}}
