.siv-dialog {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  color: #fff;
  background: transparent;
  overflow: hidden;
  overscroll-behavior: contain;
}
.siv-dialog::backdrop { background: rgba(12, 14, 18, .93); }
.siv-dialog:not([open]) { display: none; }
.siv-surface { display: flex; flex-direction: column; width: 100%; height: 100%; min-width: 0; min-height: 0; }
.siv-toolbar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));
  background: rgba(20, 22, 28, .96);
  box-sizing: border-box;
}
.siv-title { flex: 1; min-width: 0; margin: 0; color: #fff; font: 600 15px/1.4 system-ui, sans-serif; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.siv-counter { flex: 0 0 auto; color: #c9cdd6; font: 500 13px/1.4 system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.siv-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  background: rgba(34, 37, 45, .88);
  color: #fff;
  font: 400 32px/1 system-ui, sans-serif;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.siv-button:hover { background: rgba(68, 73, 84, .95); }
.siv-button:active { background: rgba(83, 89, 103, .98); }
.siv-button:focus-visible { outline: 3px solid #ff9b78; outline-offset: 4px; }
.siv-button[hidden] { display: none; }
.siv-close { font-size: 28px; }
.siv-stage {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  padding: 16px max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  box-sizing: border-box;
}
.siv-image { display: block; flex: 0 1 auto; width: auto; height: auto; max-width: 100%; max-height: 100%; margin: 0; border: 0; object-fit: contain; border-radius: 0; user-select: none; -webkit-user-drag: none; }
.siv-previous, .siv-next { position: absolute; top: 50%; transform: translateY(-50%); box-shadow: 0 2px 12px rgba(0, 0, 0, .25); }
.siv-previous { left: max(12px, env(safe-area-inset-left)); }
.siv-next { right: max(12px, env(safe-area-inset-right)); }
@media (max-height: 420px) {
  .siv-toolbar { min-height: 56px; padding-top: max(6px, env(safe-area-inset-top)); padding-bottom: 6px; }
  .siv-stage { padding-top: 8px; padding-bottom: max(8px, env(safe-area-inset-bottom)); }
}
