@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
  --bg-color: #050505;
  --panel-bg: #0b0b0c;
  --border-color: #1f1f23;
  --border-hover: #323238;
  --text-primary: #fafafa;
  --text-secondary: #71717a;
  --success-color: #10b981;
  --error-color: #ef4444;
  --shadow-color: rgba(0, 0, 0, 0.4);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}

html {
  background-color: var(--bg-color);
}

body {
  background-color: transparent;
  color: var(--text-primary);
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow-x: hidden;
}

body::before,
body::after {
  content: "";
  position: fixed;
  pointer-events: none;
}

body::before {
  inset: 0;
  z-index: -2;
}

body::after {
  inset: 0;
  z-index: -1;
}

/* Premium Layout Container */
.container {
  width: 100%;
  max-width: 1050px;
  padding: 24px;
}

/* Flat Minimal Panels */
.glass-panel {
  background: var(--panel-bg);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  box-shadow: 0 10px 30px var(--shadow-color);
  padding: 32px;
  transition: border-color 0.2s;
}

/* Smooth snap-back when leaving the card */
.glass-panel.tilt-resetting {
  transition: border-color 0.2s, transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* LOGIN VIEW */
.login-card {
  max-width: 420px;
  margin: 0 auto;
  text-align: center;
  padding: 44px 36px;
  border-radius: 24px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.logo-icon {
  width: 76px;
  height: 76px;
  margin: 0 auto 24px auto;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.04), inset 0 0 10px rgba(255, 255, 255, 0.04);
  animation: logoPulse 4s ease-in-out infinite;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
}

.logo-icon:hover {
  transform: scale(1.05);
  box-shadow: 0 0 32px rgba(255, 255, 255, 0.12), inset 0 0 16px rgba(255, 255, 255, 0.1);
}

@keyframes logoPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(255, 255, 255, 0.04), inset 0 0 10px rgba(255, 255, 255, 0.04); }
  50% { box-shadow: 0 0 36px rgba(255, 255, 255, 0.1), inset 0 0 16px rgba(255, 255, 255, 0.08); }
}

.logo-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

h1, h2, h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.login-card h1 {
  font-size: 24px;
  margin-bottom: 8px;
  color: var(--text-primary);
}

.login-card p {
  color: var(--text-secondary);
  font-size: 13px;
  margin-bottom: 24px;
}

/* Inputs & Form Controls */
.input-wrapper {
  position: relative;
  margin-bottom: 16px;
}

.input-wrapper svg {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  stroke: var(--text-secondary);
  transition: stroke 0.25s, transform 0.25s;
}

.input-field {
  width: 100%;
  padding: 13px 14px 13px 45px;
  background: rgba(18, 18, 20, 0.75);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  color: var(--text-primary);
  font-size: 15px;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
  backdrop-filter: blur(8px);
}

.input-field:focus {
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(24, 24, 28, 0.9);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.06), 0 4px 16px rgba(0, 0, 0, 0.4);
}

.input-field:focus + svg {
  stroke: var(--text-primary);
  transform: translateY(-50%) scale(1.08);
}

.pin-entry {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 8px 44px 8px 12px;
  background: #121214;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  cursor: text;
  transition: border-color 0.2s, background 0.2s;
}

.pin-entry:focus-within {
  border-color: #52525b;
  background: #151518;
}

.pin-hidden-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.01;
  border: 0;
  background: transparent;
  color: transparent;
  caret-color: transparent;
  border: 0;
  outline: none;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}

.pin-hidden-input:focus,
.pin-hidden-input:focus-visible {
  outline: none;
  box-shadow: none;
}

.pin-slots {
  display: grid;
  grid-template-columns: repeat(4, 38px);
  gap: 8px;
  width: 100%;
  justify-content: center;
  pointer-events: none;
}

.pin-slot {
  height: 34px;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pin-slot.filled::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--text-primary);
}

.pin-slot.active {
  border-color: #71717a;
}

.pin-entry svg {
  position: absolute;
  right: 14px;
  width: 18px;
  height: 18px;
  stroke: var(--text-secondary);
  pointer-events: none;
}

.trusted-browser-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 8px;
  background: rgba(16, 185, 129, 0.08);
  color: #a7f3d0;
  font-size: 12px;
  font-weight: 600;
}

.trusted-key-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
}

.trusted-key-icon svg {
  width: 18px;
  height: 18px;
}

.file-search-meta {
  margin: -4px 0 10px;
  color: var(--text-secondary);
  font-size: 11px;
}

/* Solid Minimal Buttons */
.btn-primary {
  width: 100%;
  padding: 12px;
  background: #ffffff;
  border: none;
  border-radius: 8px;
  color: #000000;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background 0.2s;
}

.btn-primary:hover {
  background: #e4e4e7;
}

/* VAULT/DASHBOARD VIEW */
.vault-panel {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#files-tab-content, #drop-tab-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.vault-header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 16px;
}

.vault-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-right: auto;
}

.brand-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid var(--border-color);
}

.brand-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.brand-title h2 {
  font-size: 18px;
  line-height: 1.2;
}

.brand-title span {
  font-size: 11px;
  color: var(--text-secondary);
}

.btn-logout {
  padding: 8px 12px;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
}

.btn-logout:hover {
  background: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.3);
  color: var(--error-color);
}

body.modal-open .theme-picker {
  display: none;
}

html.arcade-playing,
body.arcade-playing {
  overflow: hidden !important;
  overscroll-behavior: none;
  touch-action: none;
}

.theme-picker {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 1200;
}

/* Compact global activity surface */
.vault-island {
  position: fixed;
  top: max(12px, calc(env(safe-area-inset-top) + 8px));
  left: 50%;
  z-index: 1300;
  width: min(380px, calc(100vw - 28px));
  color: #f8fafc;
  background: rgba(7, 9, 14, .9);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(255, 255, 255, .06);
  backdrop-filter: blur(22px) saturate(1.25);
  -webkit-backdrop-filter: blur(22px) saturate(1.25);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -18px) scale(.86);
  transform-origin: 50% 0;
  transition: opacity 220ms ease, transform 420ms cubic-bezier(.16, 1, .3, 1), border-radius 320ms ease;
  overflow: hidden;
}

.vault-island.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}

.vault-island.expanded {
  border-radius: 16px;
}

.vault-island-compact {
  width: 100%;
  min-height: 50px;
  padding: 8px 11px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 9px;
  color: inherit;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
}

.vault-island-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #7dd3fc;
  background: rgba(56, 189, 248, .12);
}

.vault-island-icon.success {
  color: #6ee7b7;
  background: rgba(16, 185, 129, .13);
}

.vault-island-icon.error {
  color: #fda4af;
  background: rgba(244, 63, 94, .14);
}

.vault-island-icon.timer {
  color: #c4b5fd;
  background: rgba(139, 92, 246, .14);
}

.vault-island-icon svg {
  width: 17px;
  height: 17px;
}

.vault-island-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.vault-island-copy strong,
.vault-island-copy small {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vault-island-copy strong {
  font-size: 12px;
  font-weight: 700;
}

.vault-island-copy small {
  color: rgba(226, 232, 240, .58);
  font-size: 10px;
}

.vault-island-progress-label {
  color: rgba(226, 232, 240, .72);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

.vault-island-chevron {
  width: 16px;
  transition: transform 260ms cubic-bezier(.22, 1, .36, 1);
  opacity: .55;
}

.vault-island.expanded .vault-island-chevron {
  transform: rotate(180deg);
}

.vault-island-progress {
  height: 2px;
  margin: 0 11px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
}

.vault-island-progress span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #38bdf8, #8b5cf6);
  transition: width 220ms ease;
}

.vault-island-progress:not(.active) {
  display: none;
}

.vault-island-items {
  display: grid;
  gap: 6px;
  max-height: 0;
  padding: 0 8px;
  opacity: 0;
  overflow: auto;
  transition: max-height 360ms cubic-bezier(.22, 1, .36, 1), opacity 180ms ease, padding 260ms ease;
}

.vault-island.expanded .vault-island-items {
  max-height: min(320px, 55vh);
  padding: 7px 8px 9px;
  opacity: 1;
}

.vault-island-item {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border-radius: 11px;
  background: rgba(255, 255, 255, .045);
}

.vault-island-item-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #7dd3fc;
  background: rgba(56, 189, 248, .1);
}

.vault-island-item-icon svg {
  width: 14px;
  height: 14px;
}

.vault-island-item-icon.success {
  color: #6ee7b7;
  background: rgba(16, 185, 129, .11);
}

.vault-island-item-icon.error {
  color: #fda4af;
  background: rgba(244, 63, 94, .12);
}

.vault-island-item-icon.timer {
  color: #c4b5fd;
  background: rgba(139, 92, 246, .12);
}

.vault-island-item-copy {
  min-width: 0;
}

.vault-island-item-copy strong,
.vault-island-item-copy small {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vault-island-item-copy strong {
  font-size: 11px;
}

.vault-island-item-copy small {
  margin-top: 2px;
  color: rgba(226, 232, 240, .52);
  font-size: 9px;
}

.vault-island-item-value {
  font-size: 9px;
  color: rgba(226, 232, 240, .68);
  font-variant-numeric: tabular-nums;
}

body[data-skin="paper-desk"] .vault-island {
  color: #2f271f;
  background: rgba(255, 250, 240, .94);
  border-color: rgba(91, 67, 36, .22);
  box-shadow: 0 18px 42px rgba(77, 54, 25, .2), inset 0 1px 0 #fff;
}

body[data-skin="paper-desk"] .vault-island-copy small,
body[data-skin="paper-desk"] .vault-island-progress-label,
body[data-skin="paper-desk"] .vault-island-item-value,
body[data-skin="paper-desk"] .vault-island-item-copy small {
  color: rgba(70, 52, 34, .62);
}

body[data-skin="paper-desk"] .vault-island-item {
  background: rgba(122, 90, 52, .07);
}

body[data-skin="rainy-study"] .vault-island {
  background: rgba(8, 20, 23, .92);
  border-color: rgba(90, 190, 178, .22);
  box-shadow: 0 18px 48px rgba(0, 8, 12, .42), inset 0 1px 0 rgba(180, 255, 245, .05);
}

@media (max-width: 600px) {
  .vault-island {
    top: max(9px, calc(env(safe-area-inset-top) + 6px));
    width: calc(100vw - 20px);
  }
}

.theme-picker-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  background: rgba(18, 18, 20, 0.86);
  color: var(--text-primary);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.theme-picker-btn:hover,
.theme-picker.open .theme-picker-btn {
  background: #1a1a1d;
  border-color: var(--border-hover);
  transform: translateY(-1px);
}

.theme-picker-btn svg {
  width: 14px;
  height: 14px;
  transition: transform 0.2s;
}

.theme-picker.open .theme-picker-btn svg {
  transform: rotate(180deg);
}

.theme-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 168px;
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 6px;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  background: rgba(11, 11, 12, 0.96);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.theme-picker.open .theme-menu {
  display: flex;
}

.theme-menu-option {
  width: 100%;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  padding: 9px 10px;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.theme-menu-option:hover {
  background: #18181b;
  color: var(--text-primary);
}

.theme-menu-option.active {
  background: #ffffff;
  color: #050505;
}

@media (max-width: 620px) {
  .vault-header {
    gap: 10px;
    flex-wrap: wrap;
  }

  .theme-picker {
    top: 12px;
    right: 12px;
  }

  .theme-picker-btn {
    min-height: 34px;
    padding: 7px 10px;
  }

  .theme-menu {
    min-width: 154px;
  }
}

/* Storage widget */
.storage-widget {
  background: #121214;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px;
}

.storage-info {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 8px;
}

.storage-bar-bg {
  height: 4px;
  background: #1f1f23;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}

.storage-bar-fill {
  height: 100%;
  background: #ffffff; /* Solid white progress fill */
  width: 0%;
  border-radius: 2px;
  transition: width 0.4s ease;
}

/* Stats Section */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.stat-card {
  background: #121214;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.stat-icon {
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
}

.stat-icon svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
}

/* System Status Pulse Icon */
.stat-icon-pulse {
  width: 32px;
  height: 32px;
  background: rgba(16, 185, 129, 0.03); /* subtle green */
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.status-pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #10b981;
  position: relative;
  display: inline-block;
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
}

.status-pulse-dot::after {
  content: '';
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: inherit;
  position: absolute;
  top: 0;
  left: 0;
  animation: pulseDot 1.8s infinite ease-in-out;
}

@keyframes pulseDot {
  0% { transform: scale(1); opacity: 1; }
  100% { transform: scale(3.2); opacity: 0; }
}

.status-pulse-dot.error-status {
  background-color: #ef4444 !important;
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.5) !important;
}

.stat-icon-pulse.error-bg {
  background: rgba(239, 68, 68, 0.03) !important;
}

.stat-info p {
  font-size: 11px;
  color: var(--text-secondary);
}

.stat-info h4 {
  font-size: 15px;
  font-weight: 600;
  margin-top: 1px;
}

/* Drag and Drop Zone */
.upload-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.drop-zone {
  border: 1px dashed var(--border-color);
  border-radius: 12px;
  padding: 24px 16px;
  text-align: center;
  background: transparent;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: all 0.2s;
}

.drop-zone:hover, .drop-zone.dragover {
  border-color: #52525b;
  background: rgba(255, 255, 255, 0.01);
}

.drop-zone-icon {
  width: 36px;
  height: 36px;
  margin: 0 auto 10px auto;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  transition: color 0.2s;
}

.drop-zone:hover .drop-zone-icon, .drop-zone.dragover .drop-zone-icon {
  color: var(--text-primary);
}

.drop-zone-icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
}

.drop-zone h3 {
  font-size: 14px;
  margin-bottom: 4px;
  color: var(--text-primary);
}

.drop-zone p {
  font-size: 12px;
  color: var(--text-secondary);
}

.file-select-input {
  display: none;
}

/* Upload Progress / Action Area */
.upload-action-bar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #121214;
  border: 1px solid var(--border-color);
  padding: 14px;
  border-radius: 12px;
}

.upload-action-top {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.selected-file-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  font-size: 13px;
  overflow: hidden;
}

.selected-file-info svg {
  width: 18px;
  height: 18px;
  stroke: var(--text-secondary);
  flex-shrink: 0;
}

.selected-file-name {
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.selected-file-size {
  color: var(--text-secondary);
  font-size: 11px;
}

.btn-upload {
  padding: 8px 16px;
  background: #ffffff;
  border: none;
  border-radius: 6px;
  color: #000000;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s;
}

.btn-upload:hover {
  background: #e4e4e7;
}

/* Real-Time Upload Progress Tracker */
.upload-progress-container {
  width: 100%;
  margin-top: 4px;
}

.upload-progress-text {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}

.upload-progress-bar-bg {
  height: 4px;
  background: #1f1f23;
  border-radius: 2px;
  overflow: hidden;
}

.upload-progress-bar-fill {
  height: 100%;
  background: #ffffff; /* Solid White */
  width: 0%;
  transition: width 0.1s linear;
}

/* File list area */
.files-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.files-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.files-section-header h3 {
  font-size: 16px;
  font-weight: 500;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.file-actions-menu {
  position: relative;
  order: 3;
}

.file-actions-menu > summary {
  list-style: none;
}

.file-actions-menu > summary::-webkit-details-marker {
  display: none;
}

.file-actions-menu > summary svg {
  fill: currentColor;
  stroke: none;
}

.file-actions-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 120;
  width: 175px;
  padding: 6px;
  background: var(--panel-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: 0 14px 32px var(--shadow-color);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.file-actions-popover .glass-btn {
  width: 100%;
  margin: 0 !important;
  padding: 9px 12px;
  border: 0 !important;
  border-radius: 8px;
  background: transparent !important;
  box-shadow: none !important;
  justify-content: flex-start;
  font-size: 13px;
  font-weight: 500;
  text-align: left;
  color: var(--text-primary) !important;
}

.file-actions-popover .glass-btn svg {
  stroke: currentColor;
}

.file-actions-popover .glass-btn + .glass-btn {
  margin-top: 3px !important;
}

.file-actions-popover .glass-btn:hover,
.file-actions-popover .glass-btn:active {
  background: rgba(125, 125, 125, 0.12) !important;
  transform: none;
}

.file-search-bar {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 6px;
}

.file-search-input {
  width: 100%;
  height: 38px;
  margin: 0;
  padding: 8px 34px 8px 14px;
  font-size: 13px;
}

/* Secondary Action Buttons */
.btn-sec {
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.btn-sec:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.25);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08);
  color: #ffffff;
  transform: translateY(-1px);
}

.btn-sec:active {
  transform: translateY(0);
}

.btn-sec svg {
  width: 15px;
  height: 15px;
  stroke: var(--text-secondary);
  fill: none;
  transition: all 0.25s ease;
}

.btn-sec:hover svg {
  stroke: #ffffff;
  transform: scale(1.05);
}

/* Animate the plus lines inside the folder SVG */
.btn-sec svg line {
  transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), stroke-width 0.25s;
  transform-origin: 12px 14px;
}

.btn-sec:hover svg line {
  transform: rotate(90deg);
  stroke-width: 2.5px;
}

.btn-refresh {
  background: none;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.btn-refresh:hover {
  background: #121214;
  color: var(--text-primary);
}

.btn-refresh svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
}

/* Folder creation inline panel */
.folder-creator {
  display: flex;
  gap: 8px;
  background: #121214;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 10px;
  animation: fadeIn 0.2s;
}

.folder-creator input {
  flex: 1;
  padding: 8px 12px;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  color: #fff;
  font-size: 16px;
  outline: none;
}

.folder-creator input:focus {
  border-color: #52525b;
}

.btn-save {
  --primary-color: #38bdf8; /* premium sky blue */
  --secondary-color: #ffffff;
  --hover-color: #0284c7; /* deep sky blue */
  --arrow-width: 8px;
  --arrow-stroke: 2px;
  box-sizing: border-box;
  border: none;
  border-radius: 8px;
  color: var(--secondary-color);
  padding: 8px 16px;
  background: var(--primary-color);
  display: inline-flex;
  transition: background 0.2s;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
}

.btn-save .arrow-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
}

.btn-save .arrow {
  margin-top: 1px;
  width: var(--arrow-width);
  background: var(--secondary-color);
  height: var(--arrow-stroke);
  position: relative;
  transition: 0.2s;
}

.btn-save .arrow::before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  border: solid var(--secondary-color);
  border-width: 0 var(--arrow-stroke) var(--arrow-stroke) 0;
  display: inline-block;
  top: -3px;
  right: 3px;
  transition: 0.2s;
  padding: 3px;
  transform: rotate(-45deg);
}

.btn-save:hover {
  background-color: var(--hover-color);
}

.btn-save:hover .arrow {
  background: var(--secondary-color);
}

.btn-save:hover .arrow::before {
  right: 0;
}

/* Breadcrumbs Navigation */
.breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 12px;
  color: var(--text-secondary);
  background: #121214;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border-color);
}

.breadcrumb-item {
  cursor: pointer;
  font-weight: 500;
  transition: color 0.2s;
}

.breadcrumb-item:hover {
  color: var(--text-primary);
}

.breadcrumb-separator {
  color: #323238;
  font-size: 10px;
}

.breadcrumb-active {
  color: var(--text-primary);
  font-weight: 600;
  cursor: default;
}

/* File List UI */
.file-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  list-style: none;
  padding-right: 4px;
}

@media (min-width: 769px) {
  #files-tab-content .file-list {
    max-height: min(42vh, 420px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* Custom Scrollbar */
.file-list::-webkit-scrollbar {
  width: 4px;
}
.file-list::-webkit-scrollbar-track {
  background: transparent;
}
.file-list::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 10px;
}
.file-list::-webkit-scrollbar-thumb:hover {
  background: var(--border-hover);
}

.file-item {
  display: flex;
  align-items: center;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 8px 14px;
  transition: all 0.15s;
}

.file-item:hover {
  background: #121214;
  border-color: var(--border-hover);
}

/* Folder and Previewable Item Specifics */
.file-item.folder-row,
.file-item.previewable-row {
  cursor: pointer;
}

.file-icon {
  width: 32px;
  height: 32px;
  background: transparent;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
  flex-shrink: 0;
  color: var(--text-secondary);
}

.file-item:hover .file-icon {
  color: var(--text-primary);
}

.file-item.folder-row .file-icon {
  color: #fca311;
  background: rgba(252, 163, 17, 0.05);
  border-radius: 6px;
}

.file-item.folder-row:hover .file-icon {
  color: #ffb703;
  background: rgba(252, 163, 17, 0.1);
}

.file-icon svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
}

.file-item.folder-row .file-icon svg {
  fill: #fca311; /* Warm orange fill */
  stroke: #fca311;
}

.file-item.folder-row:hover .file-icon svg {
  fill: #ffb703;
  stroke: #ffb703;
}

.file-details {
  flex: 1;
  overflow: hidden;
  margin-right: 12px;
}

.file-name {
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.file-meta {
  display: flex;
  gap: 10px;
  font-size: 11px;
  color: var(--text-secondary);
}

.action-buttons {
  display: flex;
  align-items: center;
  gap: 4px;
}

.btn-download, .btn-delete {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}

.btn-download:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: #000000;
}

.btn-delete:hover {
  background: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.3);
  color: var(--error-color);
}

.btn-download svg, .btn-delete svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
}

/* Action buttons: primary + more menu */
.actions-primary {
  display: flex;
  align-items: center;
  gap: 4px;
}
.actions-more {
  position: relative;
  display: flex;
  align-items: center;
}
.btn-more {
  display: none;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
  font-size: 14px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 1px;
}
.btn-more:hover {
  background: #121214;
  border-color: var(--border-hover);
  color: var(--text-primary);
}
.more-dropdown {
  display: none;
}

.empty-state {
  text-align: center;
  padding: 30px 16px;
  background: transparent;
  border: 1px dashed var(--border-color);
  border-radius: 10px;
  color: var(--text-secondary);
  font-size: 12px;
}

/* Status Notifications */
.status-msg {
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  animation: fadeIn 0.2s;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.status-msg span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}

.status-msg svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.status-msg.success {
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.2);
  color: var(--success-color);
}

.status-msg.error {
  background: rgba(239, 68, 68, 0.06);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: var(--error-color);
}

.status-msg.info {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border-color);
  color: var(--text-primary);
}

/* Global Utilities */
.hidden {
  display: none !important;
}

/* Skeleton Loading */
.skeleton {
  background: linear-gradient(90deg, #1f1f23 0%, #2a2a30 50%, #1f1f23 100%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: 4px;
}
@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.skeleton-file-item {
  display: flex;
  align-items: center;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 8px 14px;
}
.skeleton-icon {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  margin-right: 12px;
  flex-shrink: 0;
}
.skeleton-name {
  height: 12px;
  width: 40%;
  margin-bottom: 6px;
}
.skeleton-meta {
  height: 10px;
  width: 25%;
}
.skeleton-note-item {
  padding: 12px;
  background: rgba(255, 255, 255, 0.01);
  border: 1px solid var(--border-color);
  border-radius: 8px;
}
.skeleton-note-title {
  height: 13px;
  width: 70%;
  margin-bottom: 8px;
}
.skeleton-note-preview {
  height: 10px;
  width: 90%;
}

/* Spinners and loaders */
.spinner {
  animation: spin 1s linear infinite;
  display: inline-block;
  transform-origin: center;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Responsive Media Queries */
@media (max-width: 600px) {
  .glass-panel {
    padding: 20px;
  }
  .stats-grid {
    grid-template-columns: 1fr;
  }
  .vault-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .btn-logout {
    align-self: flex-end;
  }
}

/* Preview Modal Overlay */
.preview-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  backdrop-filter: blur(8px);
  animation: fadeIn 0.2s ease;
}

/* Modal Content Container */
.preview-modal-content {
  background: #0b0b0c;
  border: 1px solid var(--border-color);
  border-radius: 16px;
  width: 90%;
  max-width: 90vw;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
}

/* Close Button */
.preview-close-btn {
  position: absolute;
  top: 12px;
  right: 16px;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  font-size: 24px;
  cursor: pointer;
  z-index: 1010;
  transition: color 0.2s;
}

.preview-close-btn:hover {
  color: var(--text-primary);
}

.confirm-modal-content {
  width: min(92vw, 420px);
  max-width: 420px;
  padding: 24px;
  box-sizing: border-box;
}

.confirm-modal-content h3 {
  margin: 0 36px 12px 0;
  color: var(--text-primary);
  font-size: 18px;
  font-weight: 650;
}

.confirm-modal-content p {
  margin: 0 0 24px;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.5;
  word-break: break-word;
}

.confirm-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.confirm-modal-actions button {
  width: auto;
  height: auto;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
}

#confirm-modal-cancel {
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  cursor: pointer;
}

#confirm-modal-cancel:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--text-primary);
}

.confirm-danger-btn {
  background: rgba(239, 68, 68, 0.16);
  border-color: rgba(239, 68, 68, 0.45);
  color: #fecaca;
}

@media (max-width: 560px) {
  .confirm-modal-content {
    width: calc(100vw - 32px);
    padding: 22px;
  }

  .confirm-modal-actions {
    flex-direction: column-reverse;
  }

  .confirm-modal-actions button {
    width: 100%;
    justify-content: center;
  }
}

/* Loading Box */
.preview-loading {
  padding: 60px 40px;
  text-align: center;
  color: var(--text-secondary);
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

/* Modal Body */
.preview-body {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 24px;
  overflow: auto;
  background: #000000;
  min-height: 300px;
}

.preview-body img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 8px;
}

.preview-body video {
  max-width: 100%;
  max-height: 80vh;
  border-radius: 8px;
  outline: none;
}

/* Immersive file preview (scoped so regular dialogs keep their compact layout) */
#preview-modal {
  box-sizing: border-box;
  padding: clamp(12px, 2vw, 28px);
}

#preview-modal > .preview-modal-content {
  width: min(96vw, 1600px);
  max-width: none;
  height: min(92dvh, 1000px);
  max-height: none;
}

#preview-modal .preview-body {
  min-height: 0;
  padding: clamp(12px, 1.5vw, 24px);
  overscroll-behavior: contain;
  position: relative;
}

.passkey-action {
  width: 100%;
  min-height: 52px;
  margin-top: 14px;
  padding: 10px 16px;
  border: 1px solid rgba(56, 189, 248, .34);
  border-radius: 12px;
  background: rgba(56, 189, 248, .1);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  cursor: pointer;
}

.passkey-action span {
  font-size: 13px;
  font-weight: 700;
}

.passkey-action small {
  color: var(--text-secondary);
  font-size: 10px;
}

.passkey-action:disabled,
.passkey-setup-btn:disabled {
  opacity: .58;
  cursor: wait;
}

.passkey-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0;
  color: var(--text-secondary);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.passkey-divider::before,
.passkey-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border-color);
}

.passkey-setup-btn svg {
  width: 16px;
  height: 16px;
}

.passkey-setup-btn.is-enabled {
  color: #a7f3d0;
  border-color: rgba(16, 185, 129, .35);
  background: rgba(16, 185, 129, .08);
}

#preview-modal .preview-body.is-dragging {
  will-change: transform, opacity;
}

#preview-modal[data-preview-kind="video"] .preview-body,
#preview-modal[data-preview-kind="image"] .preview-body,
#preview-modal[data-preview-kind="pdf"] .preview-body {
  padding: 0;
  overflow: hidden;
}

#preview-modal .preview-body img,
#preview-modal .preview-body video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  border-radius: 0;
  background: #000;
}

#preview-modal .preview-body img.preview-zoomable-image {
  touch-action: none;
  user-select: none;
  -webkit-user-drag: none;
  transform-origin: center;
  transition: transform 180ms cubic-bezier(.22, .8, .28, 1);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

#preview-modal .preview-body.is-dragging img.preview-zoomable-image,
#preview-modal .preview-body img.preview-zoomable-image.is-gesturing {
  transition: none;
  will-change: transform;
}

#preview-modal .preview-body.video-buffering::before {
  content: '';
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -28px 0 0 -14px;
  border: 3px solid rgba(255, 255, 255, .25);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .75s linear infinite;
  pointer-events: none;
}

#preview-modal.preview-chrome-hidden {
  padding: 0;
  background: #000;
  backdrop-filter: none;
}

#preview-modal.preview-chrome-hidden > .preview-modal-content {
  width: 100vw;
  height: 100dvh;
  border: 0;
  border-radius: 0;
  background: #000;
}

#preview-modal.preview-chrome-hidden .preview-close-btn,
#preview-modal.preview-chrome-hidden .preview-nav-btn,
#preview-modal.preview-chrome-hidden .preview-footer {
  opacity: 0;
  pointer-events: none;
}

#preview-modal .preview-close-btn,
#preview-modal .preview-nav-btn,
#preview-modal .preview-footer {
  transition: opacity 160ms ease;
}

#preview-modal .preview-body.video-buffering::after {
  content: 'Video wird geladen…';
  position: absolute;
  z-index: 3;
  top: calc(50% + 12px);
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 10px;
  border-radius: 999px;
  color: #fff;
  background: rgba(0, 0, 0, .62);
  font-size: 12px;
  white-space: nowrap;
  pointer-events: none;
}

#preview-modal[data-preview-kind="pdf"] .preview-body iframe {
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
}

#preview-modal .preview-footer {
  min-height: 52px;
  flex: 0 0 auto;
  padding: 10px 64px 10px 18px;
  background: rgba(11, 11, 12, 0.96);
}

#preview-modal #preview-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#preview-modal .preview-close-btn {
  width: 44px;
  height: 44px;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  padding: 0 0 3px;
  border-radius: 50%;
  color: #fff;
  background: rgba(0, 0, 0, 0.62);
  border: 1px solid rgba(255, 255, 255, 0.18);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  touch-action: manipulation;
}

#preview-modal .preview-nav-btn {
  width: 48px;
  height: 48px;
  background: rgba(0, 0, 0, 0.58);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  touch-action: manipulation;
}

/* Footer Title */
.preview-footer {
  padding: 12px 16px;
  border-top: 1px solid var(--border-color);
  font-size: 12px;
  color: var(--text-secondary);
  text-align: center;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Navigation Buttons (Side Chevrons) */
.preview-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid var(--border-color);
  color: var(--text-primary);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1010;
  transition: all 0.2s ease-in-out;
  outline: none;
}

.preview-nav-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: #52525b;
}

.preview-nav-btn svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  fill: none;
}

.preview-nav-btn.left {
  left: 16px;
}

.preview-nav-btn.right {
  right: 16px;
}

@media (max-width: 768px) {
  .preview-modal-content {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100vh;
    border-radius: 0;
    border: none;
  }
  .preview-body {
    padding: 16px;
    min-height: 200px;
  }
  .preview-body img,
  .preview-body video {
    max-height: 80vh;
  }
  .preview-close-btn {
    top: 8px;
    right: 8px;
    font-size: 28px;
    background: rgba(0, 0, 0, 0.5);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .preview-footer {
    font-size: 11px;
    padding: 10px 16px;
  }
  .preview-nav-btn {
    width: 36px;
    height: 36px;
  }
  .preview-nav-btn.left {
    left: 8px;
  }
  .preview-nav-btn.right {
    right: 8px;
  }

  #preview-modal {
    width: 100%;
    height: 100dvh;
    padding: 0;
    align-items: stretch;
  }

  #preview-modal > .preview-modal-content {
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }

  #preview-modal .preview-body {
    padding: 12px;
  }

  #preview-modal[data-preview-kind="video"] .preview-body,
  #preview-modal[data-preview-kind="image"] .preview-body,
  #preview-modal[data-preview-kind="pdf"] .preview-body {
    padding: 0;
  }

  #preview-modal .preview-footer {
    min-height: calc(52px + env(safe-area-inset-bottom));
    padding: 10px 58px calc(10px + env(safe-area-inset-bottom)) 14px;
  }

  #preview-modal .preview-close-btn {
    top: max(8px, env(safe-area-inset-top));
    right: max(8px, env(safe-area-inset-right));
    width: 46px;
    height: 46px;
  }

  #preview-modal .preview-nav-btn {
    width: 44px;
    height: 52px;
    border-radius: 14px;
  }

  #preview-modal .preview-nav-btn.left {
    left: max(6px, env(safe-area-inset-left));
  }

  #preview-modal .preview-nav-btn.right {
    right: max(6px, env(safe-area-inset-right));
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  #preview-modal .preview-footer {
    min-height: 44px;
    padding-top: 6px;
    padding-bottom: max(6px, env(safe-area-inset-bottom));
  }

  #preview-modal .preview-nav-btn {
    height: 44px;
  }
}

/* Thumbnail Styles inside File List */
.file-thumbnail-placeholder {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  margin-right: 12px;
  color: var(--text-secondary);
}

.file-thumbnail-placeholder svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
}

.file-thumbnail-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 5px;
  animation: fadeIn 0.2s ease;
}

/* Vault Tabs & NevoDrop Layout */
.vault-tabs {
  display: flex;
  gap: 8px;
  background: rgba(18, 18, 20, 0.5);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 6px;
  margin-bottom: 24px;
  backdrop-filter: blur(10px);
}
.tab-btn {
  flex: 1;
  padding: 10px;
  background: transparent;
  border: none;
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.tab-btn:hover {
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.05);
}
.tab-btn.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
:root {
  --primary-purple: #8b5cf6;
  --primary-purple-hover: #7c3aed;
}
.drop-panel {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 24px;
  animation: fadeIn 0.2s ease;
}
@media (max-width: 768px) {
  .drop-panel {
    grid-template-columns: 1fr;
  }

  .vault-tabs {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .vault-tabs::-webkit-scrollbar {
    display: none;
  }

  .vault-tabs .tab-btn {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    padding-inline: 16px;
    white-space: nowrap;
    scroll-snap-align: center;
  }
}
.drop-divider {
  display: flex;
  align-items: center;
  text-align: center;
  color: var(--text-secondary);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  margin: 24px 0;
}
.drop-divider::before, .drop-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid var(--border-color);
}
.drop-divider:not(:empty)::before {
  margin-right: .5em;
}
.drop-divider:not(:empty)::after {
  margin-left: .5em;
}
.drop-text-area-container textarea {
  width: 100%;
  background: #121214;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  padding: 12px;
  font-size: 14px;
  outline: none;
  resize: none;
  box-sizing: border-box;
  font-family: inherit;
  transition: border-color 0.2s;
}
.drop-text-area-container textarea:focus {
  border-color: var(--primary-purple);
}
.polling-indicator {
  font-size: 12px;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.pulse-dot {
  width: 8px;
  height: 8px;
  background: #10b981;
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  animation: pulse 1.6s infinite;
}
@keyframes pulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}
.drop-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(18, 18, 20, 0.4);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 12px;
  transition: all 0.2s;
}
.drop-card-left {
  display: flex;
  align-items: center;
  gap: 12px;
  overflow: hidden;
}
.drop-card-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.drop-card-subtitle {
  font-size: 11px;
  color: var(--text-secondary);
}
.drop-actions {
  display: flex;
  gap: 6px;
}
.btn-accept {
  background: var(--primary-purple);
  border: 1px solid var(--primary-purple);
  color: #fff;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.btn-accept:hover {
  background: var(--primary-purple-hover);
}
.btn-decline {
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.btn-decline:hover {
  border-color: var(--error-color);
  color: var(--error-color);
}

/* Device Selector Cards */
.device-card {
  flex: 1;
  min-width: 110px;
  max-width: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(18, 18, 20, 0.4);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
  box-sizing: border-box;
}
.device-card:hover {
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--border-hover);
}
.device-card.selected {
  border-color: var(--primary-purple);
  background: rgba(139, 92, 246, 0.1);
  box-shadow: 0 4px 15px rgba(139, 92, 246, 0.15);
}
.device-card-icon {
  margin-bottom: 8px;
  color: var(--text-secondary);
  transition: color 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.device-card.selected .device-card-icon {
  color: var(--primary-purple);
}
.device-card-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-primary);
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* SECURE NOTES VIEW */
.notes-panel {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 20px;
  min-height: 0;
  max-height: calc(100vh - 280px);
  margin-top: 10px;
}

.notes-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-right: 1px solid var(--border-color);
  padding-right: 20px;
  overflow-y: auto;
}

.notes-list {
  list-style: none;
  padding: 6px 2px 2px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  flex: 1;
}

.note-item {
  padding: 12px;
  background: rgba(255, 255, 255, 0.01);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
}

.note-item:hover {
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--border-hover);
}

.note-item.selected {
  border-color: var(--primary-purple);
  background: rgba(139, 92, 246, 0.08);
}

.note-item-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.note-item-preview {
  font-size: 11px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.note-item-date {
  font-size: 9px;
  color: rgba(255, 255, 255, 0.3);
  margin-top: 6px;
  text-align: right;
}

/* Editor Container */
.note-editor-container {
  display: flex;
  flex-direction: column;
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 20px;
  gap: 16px;
  height: auto;
  align-self: start;
  max-height: calc(100vh - 280px);
  box-sizing: border-box;
  overflow: hidden;
}

.note-title-input {
  background: transparent;
  border: none;
  font-size: 18px;
  font-weight: 700;
  color: var(--text-primary);
  outline: none;
  border-bottom: 1px solid transparent;
  padding: 4px 20px;
  transition: border-color 0.2s;
}

.note-title-input:focus {
  border-bottom-color: var(--border-color);
}

.note-editor-textarea {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  resize: none;
  outline: none;
  font-size: 14px;
  line-height: 1.85;
  color: var(--text-primary);
  font-family: inherit;
  box-sizing: border-box;
  cursor: text;
  caret-color: var(--text-primary);
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: pre-wrap;
  padding: 16px 20px;
  min-height: 96px !important;
  height: auto;
  max-height: min(48vh, 520px);
  overflow-y: auto;
}

#note-editor-fields {
  flex: 0 1 auto !important;
}

body[data-skin="dark"] .note-editor-textarea,
body[data-skin="dark"] #note-editor-content {
  line-height: 32px !important;
  padding: 0 20px 16px !important;
  background:
    linear-gradient(to bottom, transparent 24px, rgba(255, 255, 255, 0.07) 25px, transparent 26px) !important;
  background-size: 100% 32px !important;
  background-position: 0 0 !important;
  background-attachment: local !important;
}

.note-editor-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--border-color);
  padding-top: 12px;
  font-size: 11px;
}

.note-save-status {
  color: var(--text-secondary);
  font-style: italic;
  display: flex;
  align-items: center;
  gap: 6px;
  padding-left: 8px;
}

.note-actions {
  display: flex;
  gap: 8px;
}

.note-btn-action {
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  color: var(--text-primary);
  font-size: 11px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 4px;
}

.note-btn-action:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--border-hover);
}

.note-btn-action.delete:hover {
  background: rgba(239, 68, 68, 0.15);
  border-color: #ef4444;
  color: #f87171;
}

.vault-key-text-action {
  display: block;
  width: fit-content;
  margin: -2px auto 0;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  text-decoration: none;
}

.vault-key-text-action:hover {
  color: var(--text-primary);
  text-decoration: underline;
}

@media (min-width: 769px) {
  .notes-panel {
    height: calc(100vh - 240px);
    min-height: 420px;
    max-height: 720px;
  }

  .note-editor-container {
    align-self: stretch;
    height: 100%;
    max-height: none;
  }

  #note-editor-fields {
    flex: 1 1 auto !important;
  }

  .note-editor-textarea {
    flex: 1 1 auto;
    min-height: 220px !important;
    max-height: none;
  }
}

/* Mobile responsive layout */
@media (max-width: 768px) {
  .notes-panel {
    grid-template-columns: 1fr;
    height: calc(100vh - 250px);
    position: relative;
    overflow: hidden;
  }
  
  .notes-sidebar {
    border-right: none;
    padding-right: 0;
    height: 100%;
  }

  .note-editor-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    align-self: stretch;
    z-index: 10;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform: translateX(100%);
  }

  .notes-panel.editor-open .note-editor-container {
    transform: translateX(0);
  }
  
  .notes-panel.editor-open .notes-sidebar {
    display: none;
  }

  #notes-mobile-header.mobile-only {
    display: flex !important;
  }

  #notes-mobile-header .note-btn-action {
    min-height: 38px;
    min-width: 72px;
    padding: 8px 10px !important;
    align-items: center;
    justify-content: flex-start;
  }

  .note-editor-textarea {
    max-height: calc(100vh - 440px);
  }
}

/* BACKGROUND STARFIELD PARALLAX */
#bg-starfield {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  pointer-events: none;
}

@media (max-width: 767px) {
  #bg-starfield { display: none; }
}

/* HIDDEN FILES SYSTEM */
.file-item.hidden-item {
  border-left: 2px solid rgba(139, 92, 246, 0.5); /* subtle purple/light-blue marker */
  animation: fadeInHidden 0.4s ease;
}

/* Dim only text/details, not the thumbnail */
.file-item.hidden-item .file-details,
.file-item.hidden-item .action-buttons,
.file-item.hidden-item .file-icon {
  opacity: 0.55;
}

/* Thumbnails stay fully visible */
.file-item.hidden-item .file-thumbnail-placeholder {
  opacity: 1;
}

@keyframes fadeInHidden {
  from { opacity: 0; transform: translateX(-6px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* LIQUID GLASS BUTTON STYLES */
@property --angle-1 {
  syntax: "<angle>";
  inherits: false;
  initial-value: -75deg;
}

@property --angle-2 {
  syntax: "<angle>";
  inherits: false;
  initial-value: -45deg;
}

.liquid-glass-wrap {
  position: relative;
  z-index: 2;
  border-radius: 999vw;
  background: transparent;
  pointer-events: none;
  transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
  width: 100%;
}

.liquid-glass-shadow {
  --shadow-cuttoff-fix: 2em;
  position: absolute;
  width: calc(100% + var(--shadow-cuttoff-fix));
  height: calc(100% + var(--shadow-cuttoff-fix));
  top: calc(0% - var(--shadow-cuttoff-fix) / 2);
  left: calc(0% - var(--shadow-cuttoff-fix) / 2);
  filter: blur(clamp(2px, 0.125em, 12px));
  -webkit-filter: blur(clamp(2px, 0.125em, 12px));
  overflow: visible;
  pointer-events: none;
}

.liquid-glass-shadow::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  border-radius: 999vw;
  /* Premium neutral white/black glass shadow */
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.02));
  width: calc(100% - var(--shadow-cuttoff-fix) - 0.25em);
  height: calc(100% - var(--shadow-cuttoff-fix) - 0.25em);
  top: calc(var(--shadow-cuttoff-fix) - 0.5em);
  left: calc(var(--shadow-cuttoff-fix) - 0.875em);
  padding: 0.125em;
  box-sizing: border-box;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
  overflow: visible;
  opacity: 1;
}

.liquid-glass-btn {
  --border-width: clamp(1px, 0.0625em, 4px);
  all: unset;
  cursor: pointer;
  position: relative;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  pointer-events: auto;
  z-index: 3;
  width: 100%;
  box-sizing: border-box;
  display: block;
  /* Pure neutral glass background */
  background: linear-gradient(
    -75deg,
    rgba(255, 255, 255, 0.05),
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.05)
  );
  border-radius: 999vw;
  box-shadow:
    inset 0 0.125em 0.125em rgba(0, 0, 0, 0.05),
    inset 0 -0.125em 0.125em rgba(255, 255, 255, 0.3),
    0 0.25em 0.125em -0.125em rgba(0, 0, 0, 0.2),
    0 0 0.1em 0.25em inset rgba(255, 255, 255, 0.1),
    0 0 0 0 rgba(255, 255, 255, 1);
  backdrop-filter: blur(clamp(1px, 0.125em, 4px));
  -webkit-backdrop-filter: blur(clamp(1px, 0.125em, 4px));
  transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
}

.liquid-glass-btn:hover {
  transform: scale(0.985);
  backdrop-filter: blur(0.01em);
  -webkit-backdrop-filter: blur(0.01em);
  box-shadow:
    inset 0 0.125em 0.125em rgba(0, 0, 0, 0.05),
    inset 0 -0.125em 0.125em rgba(255, 255, 255, 0.4),
    0 0.15em 0.05em -0.1em rgba(0, 0, 0, 0.25),
    0 0 0.05em 0.1em inset rgba(255, 255, 255, 0.3),
    0 0 0 0 rgba(255, 255, 255, 1);
}

.liquid-glass-btn span {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  user-select: none;
  -webkit-user-select: none;
  font-family: "Inter", sans-serif;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-size: 14px;
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
  text-shadow: 0em 0.25em 0.05em rgba(0, 0, 0, 0.15);
  transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
  padding-inline: 1.5em;
  padding-block: 0.875em;
  box-sizing: border-box;
}

.liquid-glass-btn span svg {
  flex-shrink: 0;
  transition: transform 0.2s;
}

.liquid-glass-btn:hover span svg {
  transform: translateX(3px);
}

.liquid-glass-btn:hover span {
  text-shadow: 0.025em 0.025em 0.025em rgba(0, 0, 0, 0.2);
  color: #ffffff;
}

#unlock-vault-btn .unlock-progress-track {
  position: absolute;
  z-index: 6;
  left: 10px;
  right: 10px;
  bottom: 4px;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
  pointer-events: none;
}

#unlock-vault-btn .unlock-progress-track::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(255, 255, 255, .45), #fff, rgba(255, 255, 255, .72));
  transform: scaleX(0);
  transform-origin: left center;
  animation: unlockProgressFill 1000ms linear forwards;
}

#unlock-vault-btn.vault-opening-confirmed {
  animation: unlockButtonConfirmed 240ms cubic-bezier(.22, 1, .36, 1) both;
}

#unlock-vault-btn .unlock-confirm-icon {
  animation: unlockCheckIn 240ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes unlockProgressFill {
  to { transform: scaleX(1); }
}

@keyframes unlockButtonConfirmed {
  50% { transform: scale(.975); }
}

@keyframes unlockCheckIn {
  from { opacity: 0; transform: scale(.6) rotate(-8deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

.liquid-glass-btn span::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  width: calc(100% - var(--border-width));
  height: calc(100% - var(--border-width));
  top: calc(0% + var(--border-width) / 2);
  left: calc(0% + var(--border-width) / 2);
  box-sizing: border-box;
  border-radius: 999vw;
  overflow: clip;
  background: linear-gradient(
    var(--angle-2),
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.3) 40% 50%,
    rgba(255, 255, 255, 0) 55%
  );
  z-index: 3;
  mix-blend-mode: screen;
  pointer-events: none;
  background-size: 200% 200%;
  background-position: 0% 50%;
  background-repeat: no-repeat;
  transition:
    background-position 500ms cubic-bezier(0.25, 1, 0.5, 1),
    --angle-2 500ms cubic-bezier(0.25, 1, 0.5, 1);
}

.liquid-glass-btn:hover span::after {
  background-position: 25% 50%;
}

.liquid-glass-btn:active span::after {
  background-position: 50% 15%;
  --angle-2: -15deg;
}

@media (hover: none) and (pointer: coarse) {
  .liquid-glass-btn span::after,
  .liquid-glass-btn:active span::after {
    --angle-2: -45deg;
  }
}

.liquid-glass-btn::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: 999vw;
  width: calc(100% + var(--border-width));
  height: calc(100% + var(--border-width));
  top: calc(0% - var(--border-width) / 2);
  left: calc(0% - var(--border-width) / 2);
  padding: var(--border-width);
  box-sizing: border-box;
  background: conic-gradient(
      from var(--angle-1) at 50% 50%,
      rgba(0, 0, 0, 0.3),
      rgba(0, 0, 0, 0) 5% 40%,
      rgba(0, 0, 0, 0.3) 50%,
      rgba(0, 0, 0, 0) 60% 95%,
      rgba(0, 0, 0, 0.3)
    ),
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.1));
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  transition:
    all 400ms cubic-bezier(0.25, 1, 0.5, 1),
    --angle-1 500ms ease;
  box-shadow: inset 0 0 0 calc(var(--border-width) / 2) rgba(255, 255, 255, 0.3);
}

.liquid-glass-btn:hover::after {
  --angle-1: -125deg;
}

.liquid-glass-btn:active::after {
  --angle-1: -75deg;
}

@media (hover: none) and (pointer: coarse) {
  .liquid-glass-btn::after,
  .liquid-glass-btn:hover::after,
  .liquid-glass-btn:active::after {
    --angle-1: -75deg;
  }
}

.liquid-glass-wrap:has(.liquid-glass-btn:hover) .liquid-glass-shadow {
  filter: blur(clamp(2px, 0.0625em, 6px));
}

.liquid-glass-wrap:has(.liquid-glass-btn:hover) .liquid-glass-shadow::after {
  top: calc(var(--shadow-cuttoff-fix) - 0.875em);
  opacity: 1;
}

.liquid-glass-wrap:has(.liquid-glass-btn:active) {
  transform: rotate3d(1, 0, 0, 15deg);
}

.liquid-glass-wrap:has(.liquid-glass-btn:active) .liquid-glass-btn {
  box-shadow:
    inset 0 0.125em 0.125em rgba(0, 0, 0, 0.05),
    inset 0 -0.125em 0.125em rgba(255, 255, 255, 0.4),
    0 0.125em 0.125em -0.125em rgba(0, 0, 0, 0.2),
    0 0 0.1em 0.25em inset rgba(255, 255, 255, 0.15),
    0 0.225em 0.05em 0 rgba(0, 0, 0, 0.05),
    0 0.25em 0 0 rgba(255, 255, 255, 0.5),
    inset 0 0.25em 0.05em 0 rgba(0, 0, 0, 0.1);
}

.liquid-glass-wrap:has(.liquid-glass-btn:active) .liquid-glass-shadow::after {
  top: calc(var(--shadow-cuttoff-fix) - 0.5em);
  opacity: 0.75;
}

.liquid-glass-wrap:has(.liquid-glass-btn:active) span {
  text-shadow: 0.025em 0.25em 0.05em rgba(0, 0, 0, 0.1);
}

/* NEW NOTE FROSTED GLOW BUTTON */
.btn-notes-new {
  margin-top: 5px;
  width: 100%;
  padding: 12px;
  background: rgba(139, 92, 246, 0.15); /* Frosted purple tint */
  border: 1px solid rgba(139, 92, 246, 0.3);
  border-radius: 10px;
  color: #ffffff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  box-shadow: 0 0 0 0 rgba(139, 92, 246, 0);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  outline: none;
}

.btn-notes-new:hover {
  background: rgba(139, 92, 246, 0.25);
  border-color: rgba(139, 92, 246, 0.6);
  box-shadow: 0 0 15px rgba(139, 92, 246, 0.35);
  transform: translateY(-1px);
}

.btn-notes-new:active {
  transform: translateY(0);
  background: rgba(139, 92, 246, 0.35);
}

.btn-notes-new svg {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  stroke: rgba(255, 255, 255, 0.9);
}

.btn-notes-new:hover svg {
  transform: rotate(90deg) scale(1.1);
  stroke: #ffffff;
}

.btn-notes-repair {
  width: 100%;
  padding: 9px 12px;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-notes-repair:hover {
  color: var(--text-primary);
  border-color: var(--border-hover);
  background: rgba(255, 255, 255, 0.03);
}

/* NEVODROP DEVICE SCAN RIPPLE SYSTEM */
.device-icon-wrapper {
  position: relative;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.device-card-icon {
  position: relative;
  z-index: 2;
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border-color);
  border-radius: 50% !important; /* Make icon fully circular like AirDrop */
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.device-card.selected .device-card-icon {
  background: rgba(139, 92, 246, 0.15);
  border-color: var(--primary-purple);
  color: var(--primary-purple);
  box-shadow: 0 0 10px rgba(139, 92, 246, 0.3);
}

.device-card .ripple {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(139, 92, 246, 0.4);
  pointer-events: none;
  opacity: 0;
  z-index: 1;
  animation: radarPulse 3s infinite linear;
}

.device-icon-wrapper .device-card-icon {
  margin-bottom: 0;
}

.device-card .ripple:nth-child(2) {
  animation-delay: 1.5s;
}

.device-card.selected .ripple {
  border-color: rgba(139, 92, 246, 0.6);
  animation-duration: 2s;
}

.device-card.selected .ripple:nth-child(2) {
  animation-delay: 1s;
}

@keyframes radarPulse {
  0% {
    width: 36px;
    height: 36px;
    opacity: 0.6;
  }
  100% {
    width: 80px;
    height: 80px;
    opacity: 0;
  }
}

/* CODE VIEW & MARKDOWN PREVIEW STYLES */
.code-view {
  display: block;
  text-align: left;
  white-space: pre-wrap;
  word-break: break-all;
  font-family: 'Fira Code', 'Courier New', Courier, monospace;
  font-size: 13px;
  line-height: 1.5;
  color: #e4e4e7;
  padding: 16px;
  background: rgba(10, 10, 12, 0.4);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  max-height: 65vh;
  overflow-y: auto;
}

.markdown-preview {
  text-align: left;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #fafafa;
  padding: 20px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  max-height: 65vh;
  overflow-y: auto;
}

.markdown-preview h1, .markdown-preview h2, .markdown-preview h3 {
  color: #ffffff;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  font-weight: 700;
}
.markdown-preview h1 { font-size: 20px; border-bottom: 1px solid var(--border-color); padding-bottom: 6px; }
.markdown-preview h2 { font-size: 16px; }
.markdown-preview h3 { font-size: 14px; }
.markdown-preview code {
  font-family: monospace;
  background: rgba(255, 255, 255, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
  color: #38bdf8;
}
.markdown-preview pre {
  background: rgba(0, 0, 0, 0.3);
  padding: 12px;
  border-radius: 6px;
  overflow-x: auto;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.markdown-preview pre code {
  background: transparent;
  padding: 0;
  color: #e4e4e7;
}
.markdown-preview ul, .markdown-preview ol {
  padding-left: 20px;
  margin-bottom: 1em;
}
.markdown-preview li {
  margin-bottom: 4px;
}

.preview-textarea {
  width: 100%;
  height: 65vh;
  background: rgba(10, 10, 12, 0.7) !important;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: #ffffff;
  font-family: 'Fira Code', monospace;
  font-size: 13px;
  line-height: 1.5;
  padding: 16px;
  box-sizing: border-box;
  resize: none;
  outline: none;
  transition: border-color 0.2s;
}
.preview-textarea:focus {
  border-color: #38bdf8;
}

/* BATCH UPLOAD PROCESS ROW STYLES */
.upload-file-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 10px 12px;
  box-sizing: border-box;
  transition: all 0.25s ease;
  animation: slideInProgress 0.25s ease;
}

.upload-file-row-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 28px;
  align-items: center;
  gap: 10px;
  font-size: 12px;
}

.upload-file-name {
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}

.upload-file-row .file-status {
  color: var(--text-secondary);
  font-size: 11px;
  text-align: right;
  white-space: nowrap;
}

.upload-remove-btn {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: transparent;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}

.upload-remove-btn:hover {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.35);
  color: #f87171;
}

.upload-remove-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  background: transparent;
  border-color: var(--border-color);
  color: var(--text-secondary);
}

.upload-remove-btn svg {
  width: 14px;
  height: 14px;
}

.upload-row-progress {
  height: 4px;
  background: rgba(255,255,255,0.05);
  border-radius: 2px;
  overflow: hidden;
  margin-top: 4px;
}

.upload-row-progress-fill {
  width: 0%;
  height: 100%;
  background: #38bdf8;
  border-radius: 2px;
  transition: width 0.1s;
}

.upload-file-row.done {
  border-color: rgba(16, 185, 129, 0.3) !important;
  background: rgba(16, 185, 129, 0.03);
}

.upload-file-row.error {
  border-color: rgba(239, 68, 68, 0.3) !important;
  background: rgba(239, 68, 68, 0.03);
}

@keyframes slideInProgress {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* PUBLIC PORTFOLIO LANDING PAGE STYLES */
#landing-pane, #login-pane {
  animation: fadeInPane 0.35s ease-out;
}

@keyframes fadeInPane {
  from { opacity: 0; transform: scale(0.98); }
  to   { opacity: 1; transform: scale(1); }
}

/* PAPER DESK SKIN */
body[data-skin="paper-desk"] {
  --bg-color: #f3eadc;
  --panel-bg: #fffaf1;
  --border-color: #dccfbd;
  --border-hover: #bfae96;
  --text-primary: #2e261d;
  --text-secondary: #786d5f;
  --success-color: #4f7f58;
  --error-color: #b55345;
  --shadow-color: rgba(86, 62, 35, 0.14);
  position: relative;
  background:
    radial-gradient(circle at 18% 8%, rgba(255, 250, 240, 0.96) 0, rgba(255, 250, 240, 0) 34%),
    radial-gradient(circle at 82% 14%, rgba(205, 167, 115, 0.22) 0, rgba(205, 167, 115, 0) 28%),
    linear-gradient(135deg, #f8f0e4 0%, #eadcc8 48%, #f5efe6 100%);
}

body[data-skin="paper-desk"]::before {
  inset: 0;
  opacity: 1;
  background:
    radial-gradient(ellipse 58% 42% at 18% 3%, rgba(255, 248, 230, 0.95) 0%, rgba(255, 244, 220, 0.5) 34%, rgba(255, 244, 220, 0) 72%),
    radial-gradient(ellipse 38% 30% at 86% 20%, rgba(177, 124, 64, 0.16) 0%, rgba(177, 124, 64, 0) 72%),
    radial-gradient(ellipse 38% 34% at 14% 88%, rgba(96, 68, 39, 0.1) 0%, rgba(96, 68, 39, 0) 78%),
    linear-gradient(135deg, #f9f1e5 0%, #ead9c1 48%, #f7efe4 100%);
}

body[data-skin="paper-desk"]::after {
  inset: -8vh -8vw;
  opacity: 0.72;
  background:
    linear-gradient(105deg, transparent 0 8%, rgba(255, 252, 245, 0.62) 8.2% 25%, rgba(189, 151, 98, 0.12) 25.2% 25.8%, transparent 26%),
    linear-gradient(77deg, transparent 0 58%, rgba(255, 250, 240, 0.54) 58.2% 78%, rgba(144, 104, 59, 0.12) 78.2% 78.8%, transparent 79%),
    linear-gradient(155deg, transparent 0 41%, rgba(255, 253, 248, 0.42) 41.2% 58%, rgba(124, 88, 48, 0.08) 58.2% 58.8%, transparent 59%),
    linear-gradient(rgba(85, 66, 46, 0.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(85, 66, 46, 0.024) 1px, transparent 1px),
    radial-gradient(circle, rgba(75, 55, 33, 0.08) 0 0.6px, transparent 0.8px);
  background-size:
    100% 100%,
    100% 100%,
    100% 100%,
    34px 34px,
    34px 34px,
    6px 6px;
  filter: saturate(0.95);
  animation: paperDeskDrift 28s ease-in-out infinite alternate;
}

@keyframes paperDeskDrift {
  from {
    transform: translate3d(-0.6vw, -0.4vh, 0) rotate(-0.2deg);
  }
  to {
    transform: translate3d(0.7vw, 0.5vh, 0) rotate(0.18deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-skin="paper-desk"]::after {
    animation: none;
  }
}

body[data-skin="paper-desk"] #bg-starfield {
  display: none;
}

body[data-skin="paper-desk"] .glass-panel,
body[data-skin="paper-desk"] .preview-modal-content,
body[data-skin="paper-desk"] .arcade-cabinet {
  background: var(--panel-bg);
  border-color: rgba(148, 124, 91, 0.34);
  border-radius: 10px;
  box-shadow: 0 22px 60px rgba(84, 59, 28, 0.16), 0 1px 0 rgba(255, 255, 255, 0.82) inset;
}

body[data-skin="paper-desk"] .vault-panel {
  background:
    linear-gradient(180deg, rgba(255, 252, 246, 0.96), rgba(255, 248, 237, 0.94)),
    var(--panel-bg);
}

body[data-skin="paper-desk"] h1,
body[data-skin="paper-desk"] h2,
body[data-skin="paper-desk"] h3 {
  letter-spacing: 0;
}

body[data-skin="paper-desk"] .gradient-text {
  background: none;
  -webkit-text-fill-color: currentColor;
  color: #3d3023;
}

body[data-skin="paper-desk"] .logo-icon,
body[data-skin="paper-desk"] .brand-icon {
  background: #f0dfc7;
  border-color: #d1b991;
  box-shadow: 0 8px 24px rgba(99, 71, 36, 0.14);
}

body[data-skin="paper-desk"] .vault-header {
  border-bottom-color: rgba(118, 91, 57, 0.18);
}

body[data-skin="paper-desk"] .vault-brand {
  background: rgba(244, 231, 211, 0.42);
  border: 1px solid rgba(201, 181, 151, 0.72);
  border-radius: 10px;
  padding: 8px 10px;
}

body[data-skin="paper-desk"] .brand-title span,
body[data-skin="paper-desk"] .tagline,
body[data-skin="paper-desk"] .bio-text {
  color: var(--text-secondary);
}

body[data-skin="paper-desk"] .theme-picker-btn,
body[data-skin="paper-desk"] .skin-switcher {
  background: #eee1ce;
  border: 1px solid #d4c2aa;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) inset;
}

body[data-skin="paper-desk"] .theme-picker-btn {
  color: #3b3025;
  box-shadow: 0 12px 26px rgba(91, 67, 36, 0.11), 0 1px 0 rgba(255, 255, 255, 0.72) inset;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body[data-skin="paper-desk"] .theme-picker-btn:hover,
body[data-skin="paper-desk"] .theme-picker.open .theme-picker-btn {
  background: #f6ead8;
  border-color: #b89d76;
  color: #2e261d;
}

body[data-skin="paper-desk"] .theme-menu {
  background: #fff8ed;
  border-color: #d4c2aa;
  box-shadow: 0 18px 38px rgba(73, 52, 28, 0.16);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body[data-skin="paper-desk"] .theme-menu-option,
body[data-skin="paper-desk"] .skin-option {
  color: #75634e;
}

body[data-skin="paper-desk"] .theme-menu-option:hover {
  background: #f1dfc6;
  color: #2e261d;
}

body[data-skin="paper-desk"] .theme-menu-option.active,
body[data-skin="paper-desk"] .skin-option.active {
  background: #3b3025;
  color: #fff8ed;
  box-shadow: 0 6px 16px rgba(63, 45, 24, 0.18);
}

body[data-skin="paper-desk"] .vault-tabs {
  background: #efe2d0;
  border: 1px solid #d8c6ad;
  border-radius: 10px;
  padding: 4px;
}

body[data-skin="paper-desk"] .tab-btn {
  color: #735f47;
  border-radius: 7px;
}

body[data-skin="paper-desk"] .tab-btn.active,
body[data-skin="paper-desk"] .tab-btn:hover {
  background: #fff9ef;
  color: #2e261d;
  box-shadow: 0 8px 22px rgba(95, 70, 38, 0.11);
}

body[data-skin="paper-desk"] .storage-widget,
body[data-skin="paper-desk"] .stat-card,
body[data-skin="paper-desk"] .upload-action-bar,
body[data-skin="paper-desk"] .folder-creator,
body[data-skin="paper-desk"] .upload-file-row,
body[data-skin="paper-desk"] .device-card,
body[data-skin="paper-desk"] .password-entry-card,
body[data-skin="paper-desk"] .note-item,
body[data-skin="paper-desk"] .note-editor-container,
body[data-skin="paper-desk"] .password-form-panel {
  background: #fff8ed;
  border-color: #ddcdb7;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.74) inset;
}

body[data-skin="paper-desk"] .stat-card,
body[data-skin="paper-desk"] .file-item,
body[data-skin="paper-desk"] .upload-file-row,
body[data-skin="paper-desk"] .note-item,
body[data-skin="paper-desk"] .password-entry-card {
  box-shadow: 0 10px 24px rgba(93, 68, 36, 0.07);
}

body[data-skin="paper-desk"] .stat-icon,
body[data-skin="paper-desk"] .stat-icon-pulse,
body[data-skin="paper-desk"] .drop-zone-icon,
body[data-skin="paper-desk"] .file-icon,
body[data-skin="paper-desk"] .selected-file-info svg {
  background: #f2dfc3;
  color: #7c5a2f;
  stroke: #7c5a2f;
}

body[data-skin="paper-desk"] .storage-bar-bg,
body[data-skin="paper-desk"] .upload-progress-bar-bg,
body[data-skin="paper-desk"] .progress-bar-bg,
body[data-skin="paper-desk"] .upload-row-progress {
  background: #e7d6bd !important;
}

body[data-skin="paper-desk"] .storage-bar-fill,
body[data-skin="paper-desk"] .upload-progress-bar-fill,
body[data-skin="paper-desk"] .upload-row-progress-fill {
  background: #8b6a43 !important;
}

body[data-skin="paper-desk"] .drop-zone {
  background:
    linear-gradient(180deg, rgba(255, 250, 242, 0.86), rgba(245, 232, 211, 0.44));
  border-color: #d6c4aa;
  border-radius: 10px;
}

body[data-skin="paper-desk"] .drop-zone:hover,
body[data-skin="paper-desk"] .drop-zone.dragover {
  background: #fff7eb;
  border-color: #aa8a5f;
}

body[data-skin="paper-desk"] .input-field,
body[data-skin="paper-desk"] .folder-creator input,
body[data-skin="paper-desk"] select,
body[data-skin="paper-desk"] textarea,
body[data-skin="paper-desk"] .note-title-input,
body[data-skin="paper-desk"] .note-editor {
  background: #fffdf8 !important;
  border-color: #d9c8b0 !important;
  color: #2e261d !important;
  caret-color: #6f5435;
}

body[data-skin="paper-desk"] .input-field:focus,
body[data-skin="paper-desk"] .folder-creator input:focus,
body[data-skin="paper-desk"] textarea:focus,
body[data-skin="paper-desk"] .note-title-input:focus {
  border-color: #8d6c47 !important;
  box-shadow: 0 0 0 3px rgba(141, 108, 71, 0.13);
}

body[data-skin="paper-desk"] .liquid-glass-btn,
body[data-skin="paper-desk"] .btn-primary,
body[data-skin="paper-desk"] .btn-upload {
  background: #3b3025;
  border: 1px solid #3b3025;
  color: #fff8ed;
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(62, 44, 22, 0.18);
}

body[data-skin="paper-desk"] .liquid-glass-btn:hover,
body[data-skin="paper-desk"] .btn-primary:hover,
body[data-skin="paper-desk"] .btn-upload:hover {
  background: #57432e;
  border-color: #57432e;
}

body[data-skin="paper-desk"] .liquid-glass-shadow,
body[data-skin="paper-desk"] .liquid-glass-btn::before,
body[data-skin="paper-desk"] .liquid-glass-btn::after,
body[data-skin="paper-desk"] .glass-btn::before,
body[data-skin="paper-desk"] .glass-btn::after {
  display: none;
}

body[data-skin="paper-desk"] .btn-sec,
body[data-skin="paper-desk"] .glass-btn,
body[data-skin="paper-desk"] .btn-logout,
body[data-skin="paper-desk"] .btn-download,
body[data-skin="paper-desk"] .btn-delete,
body[data-skin="paper-desk"] .btn-more,
body[data-skin="paper-desk"] .upload-remove-btn,
body[data-skin="paper-desk"] .batch-actions button,
body[data-skin="paper-desk"] .note-btn-action,
body[data-skin="paper-desk"] .pwd-action-btn {
  background: #fff8ed;
  border-color: #d9c8b0;
  color: #5e4b36;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body[data-skin="paper-desk"] .btn-sec:hover,
body[data-skin="paper-desk"] .glass-btn:hover,
body[data-skin="paper-desk"] .btn-download:hover,
body[data-skin="paper-desk"] .btn-more:hover,
body[data-skin="paper-desk"] .upload-remove-btn:hover,
body[data-skin="paper-desk"] .batch-actions button:hover,
body[data-skin="paper-desk"] .note-btn-action:hover,
body[data-skin="paper-desk"] .pwd-action-btn:hover {
  background: #f1dfc6;
  border-color: #b89d76;
  color: #2e261d;
  transform: translateY(-1px);
}

body[data-skin="paper-desk"] .btn-delete:hover,
body[data-skin="paper-desk"] .btn-logout:hover {
  background: #f6ded8;
  border-color: #ce8d80;
  color: #a84236;
}

body[data-skin="paper-desk"] .file-list {
  gap: 8px;
}

body[data-skin="paper-desk"] .file-item {
  background: #fffaf2;
  border-color: #dfd0bb;
  border-radius: 8px;
}

body[data-skin="paper-desk"] .file-item:hover,
body[data-skin="paper-desk"] .file-item.selected {
  background: #f4e5cd;
  border-color: #b89d76;
}

body[data-skin="paper-desk"] .file-item.folder-row .file-icon,
body[data-skin="paper-desk"] .gallery-folder-thumb svg {
  color: #b97819;
  stroke: #b97819;
  fill: rgba(185, 120, 25, 0.18);
}

body[data-skin="paper-desk"] .file-cb-check {
  background: #fffdf8;
  border-color: #c8b69d;
}

body[data-skin="paper-desk"] .file-cb-label input:checked + .file-cb-check {
  background: #6f5435;
  border-color: #6f5435;
}

body[data-skin="paper-desk"] .breadcrumb-item,
body[data-skin="paper-desk"] .file-search-meta,
body[data-skin="paper-desk"] .file-meta,
body[data-skin="paper-desk"] .selected-file-size,
body[data-skin="paper-desk"] .storage-info,
body[data-skin="paper-desk"] .upload-progress-text {
  color: var(--text-secondary);
}

body[data-skin="paper-desk"] .breadcrumb-active,
body[data-skin="paper-desk"] .file-name,
body[data-skin="paper-desk"] .selected-file-name {
  color: var(--text-primary);
}

body[data-skin="paper-desk"] .ios-gallery-grid {
  gap: 10px;
}

body[data-skin="paper-desk"] .gallery-item {
  background: #fff9f0;
  border-color: #ddcdb7;
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(90, 65, 34, 0.1);
}

body[data-skin="paper-desk"] .gallery-item:hover {
  border-color: #b89d76;
  box-shadow: 0 18px 36px rgba(90, 65, 34, 0.16);
}

body[data-skin="paper-desk"] .gallery-video-badge {
  background: rgba(59, 48, 37, 0.88);
  color: #fff8ed;
}

body[data-skin="paper-desk"] .preview-modal {
  background: rgba(56, 43, 29, 0.44);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

body[data-skin="paper-desk"] .preview-footer {
  background: #f5e7d1;
  border-top-color: #ddcdb7;
}

body[data-skin="paper-desk"] .note-editor-textarea,
body[data-skin="paper-desk"] #note-editor {
  background:
    linear-gradient(to bottom, transparent 24px, rgba(137, 105, 70, 0.14) 25px, transparent 26px) !important;
  background-size: 100% 32px !important;
  background-position: 0 0 !important;
  background-attachment: local !important;
}

body[data-skin="paper-desk"] .note-item.selected,
body[data-skin="paper-desk"] .device-card.selected {
  background: #ead5b7;
  border-color: #aa8a5f;
}

body[data-skin="paper-desk"] .checkbox-wrapper .checkmark {
  background: #fffaf2;
  border-color: #bca78a;
}

body[data-skin="paper-desk"] .checkbox-wrapper .note-cb-container input:checked ~ .checkmark {
  background: #3b3025;
  box-shadow: 0 0 0 4px rgba(139, 106, 67, 0.12);
}

body[data-skin="paper-desk"] .more-dropdown {
  background: #fffaf2;
  border-color: #ddcdb7;
  box-shadow: 0 18px 36px rgba(73, 52, 28, 0.18);
}

body[data-skin="paper-desk"] .more-dropdown-btn:hover {
  background: #f1dfc6;
  color: #2e261d;
}

body[data-skin="paper-desk"] .batch-action-bar {
  background: #3b3025;
  border-color: #3b3025;
  color: #fff8ed;
  box-shadow: 0 18px 36px rgba(62, 44, 22, 0.2);
}

body[data-skin="paper-desk"] .login-card .liquid-glass-wrap {
  transform: none !important;
}

body[data-skin="paper-desk"] .login-card .liquid-glass-shadow,
body[data-skin="paper-desk"] .login-card .liquid-glass-shadow::after,
body[data-skin="paper-desk"] .login-card .liquid-glass-btn::before,
body[data-skin="paper-desk"] .login-card .liquid-glass-btn::after,
body[data-skin="paper-desk"] .login-card .liquid-glass-btn span::after {
  display: none !important;
}

body[data-skin="paper-desk"] .login-card .liquid-glass-btn {
  background: #3b3025 !important;
  border: 1px solid #3b3025 !important;
  color: #fff8ed !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 28px rgba(62, 44, 22, 0.18) !important;
  min-height: 50px;
}

body[data-skin="paper-desk"] .login-card .liquid-glass-btn:hover {
  background: #57432e !important;
  border-color: #57432e !important;
  color: #fff8ed !important;
}

body[data-skin="paper-desk"] .login-card .liquid-glass-btn span,
body[data-skin="paper-desk"] .login-card .liquid-glass-btn svg {
  color: #fff8ed !important;
  stroke: #fff8ed !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

body[data-skin="paper-desk"] .input-wrapper svg {
  stroke: #6d5132;
}

body[data-skin="paper-desk"] .trusted-browser-status {
  background: #eef7e9;
  border: 1px solid #b9d6ad;
  color: #4f7f58;
  border-radius: 8px;
}

body[data-skin="paper-desk"] .trusted-key-icon,
body[data-skin="paper-desk"] .trusted-key-icon svg {
  color: #4f9d70;
  stroke: #4f9d70;
}

body[data-skin="paper-desk"] #vault-key-file-btn,
body[data-skin="paper-desk"] #forget-vault-key-btn,
body[data-skin="paper-desk"] #vault-key-pane > .btn-sec {
  background: #fff8ed !important;
  border: 1px solid #cdb99d !important;
  color: #3b3025 !important;
  box-shadow: 0 8px 18px rgba(91, 67, 36, 0.08);
}

body[data-skin="paper-desk"] #vault-key-file-btn:hover,
body[data-skin="paper-desk"] #forget-vault-key-btn:hover,
body[data-skin="paper-desk"] #vault-key-pane > .btn-sec:hover {
  background: #f1dfc6 !important;
  border-color: #9b7549 !important;
  color: #2e261d !important;
}

body[data-skin="paper-desk"] #vault-key-file-btn svg,
body[data-skin="paper-desk"] #forget-vault-key-btn svg,
body[data-skin="paper-desk"] #vault-key-pane > .btn-sec svg {
  stroke: #6d5132 !important;
}

body[data-skin="paper-desk"] .pin-entry {
  background: #fff8ed;
  border: 1px solid #cdb99d;
  border-radius: 10px;
  box-shadow: 0 10px 22px rgba(91, 67, 36, 0.08);
}

body[data-skin="paper-desk"] .pin-entry:focus-within {
  border-color: #7a5a34;
  box-shadow: 0 0 0 3px rgba(122, 90, 52, 0.13), 0 10px 22px rgba(91, 67, 36, 0.08);
}

body[data-skin="paper-desk"] .pin-entry svg {
  stroke: #7d6b56;
}

body[data-skin="paper-desk"] .pin-slot {
  background: #fffdf8;
  border: 1px solid #b9a68d;
}

body[data-skin="paper-desk"] .pin-slot.active {
  border-color: #7a5a34;
  box-shadow: 0 0 0 3px rgba(122, 90, 52, 0.12);
}

body[data-skin="paper-desk"] .pin-slot.filled::after {
  background: #3b3025;
}

body[data-skin="paper-desk"] #vault-key-pane label {
  color: #75634e !important;
}

body[data-skin="paper-desk"] #remember-vault-key-checkbox {
  accent-color: #7a5a34 !important;
}

body[data-skin="paper-desk"] #sys-resources-card .stat-icon,
body[data-skin="paper-desk"] #sys-resources-card .stat-icon.blue {
  background: #f2dfc3 !important;
  color: #7a5a34 !important;
}

body[data-skin="paper-desk"] #sys-resources-card .stat-icon svg {
  stroke: #7a5a34 !important;
}

body[data-skin="paper-desk"] .sys-bars > div:last-child > div {
  background: #e3d2ba !important;
  border: 1px solid rgba(122, 90, 52, 0.12);
  height: 6px !important;
}

body[data-skin="paper-desk"] #sys-cpu-fill {
  background: #b88445 !important;
}

body[data-skin="paper-desk"] #sys-ram-fill {
  background: #6f5435 !important;
}

body[data-skin="paper-desk"] .drop-zone > .glass-btn,
body[data-skin="paper-desk"] .header-actions > .glass-btn:not(.hidden) {
  background: #fff8ed !important;
  border: 1px solid #cdb99d !important;
  color: #3b3025 !important;
  box-shadow: 0 8px 18px rgba(91, 67, 36, 0.08);
}

body[data-skin="paper-desk"] .drop-zone > .glass-btn:hover,
body[data-skin="paper-desk"] .header-actions > .glass-btn:not(.hidden):hover {
  background: #f1dfc6 !important;
  border-color: #9b7549 !important;
  color: #2e261d !important;
  box-shadow: 0 12px 24px rgba(91, 67, 36, 0.13);
}

body[data-skin="paper-desk"] .drop-zone > .glass-btn svg,
body[data-skin="paper-desk"] .header-actions > .glass-btn svg,
body[data-skin="paper-desk"] .header-actions > .glass-btn svg * {
  stroke: #6d5132 !important;
  color: #6d5132 !important;
}

body[data-skin="paper-desk"] .drop-zone > .glass-btn span,
body[data-skin="paper-desk"] .header-actions > .glass-btn span {
  color: #3b3025 !important;
}

body[data-skin="paper-desk"] .header-actions > .btn-refresh {
  background: #fff8ed !important;
  border: 1px solid #cdb99d !important;
  color: #6d5132 !important;
  box-shadow: 0 8px 18px rgba(91, 67, 36, 0.07);
}

body[data-skin="paper-desk"] .header-actions > .btn-refresh:hover,
body[data-skin="paper-desk"] .header-actions > .btn-refresh.active-gallery-btn {
  background: #f1dfc6 !important;
  border-color: #9b7549 !important;
  color: #2e261d !important;
  box-shadow: 0 12px 24px rgba(91, 67, 36, 0.12);
}

body[data-skin="paper-desk"] .header-actions > .btn-refresh svg,
body[data-skin="paper-desk"] .header-actions > .btn-refresh svg * {
  stroke: currentColor !important;
}

body[data-skin="paper-desk"] .status-success {
  background: rgba(79, 127, 88, 0.13);
  color: #35673d;
  border-color: rgba(79, 127, 88, 0.28);
}

body[data-skin="paper-desk"] .status-error {
  background: rgba(181, 83, 69, 0.13);
  color: #934134;
  border-color: rgba(181, 83, 69, 0.28);
}

body[data-skin="paper-desk"] .status-info {
  background: rgba(111, 84, 53, 0.12);
  color: #5f4930;
  border-color: rgba(111, 84, 53, 0.24);
}

.gradient-text {
  background: linear-gradient(135deg, #ffffff 0%, #a1a1aa 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-top: 12px;
  margin-bottom: 4px;
}

.tagline {
  font-size: 11px;
  font-weight: 700;
  color: #38bdf8; /* light blue */
  margin-bottom: 16px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.bio-text {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-secondary);
  margin-bottom: 22px;
  padding: 0 12px;
}

.social-links {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 16px;
}

.social-links a {
  color: var(--text-secondary);
  transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-color);
  box-sizing: border-box;
}

.social-links a:hover {
  transform: translateY(-2px);
}

.social-github:hover {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 4px 10px rgba(255, 255, 255, 0.2) !important;
}

.social-instagram:hover {
  color: #f43f5e !important; /* warm rose/pink */
  border-color: rgba(244, 63, 94, 0.4) !important;
  background: rgba(244, 63, 94, 0.08) !important;
  box-shadow: 0 4px 10px rgba(244, 63, 94, 0.2) !important;
}

.social-email:hover {
  color: #38bdf8 !important;
  border-color: rgba(56, 189, 248, 0.4) !important;
  background: rgba(56, 189, 248, 0.08) !important;
  box-shadow: 0 4px 10px rgba(56, 189, 248, 0.2) !important;
}

.social-links a svg {
  width: 18px;
  height: 18px;
}

/* CUSTOM UIVERSE DOT-SPINNER LOADING INDICATOR */
.dot-spinner {
  --uib-size: 2.8rem;
  --uib-speed: .9s;
  --uib-color: #ffffff; /* Match white glow preference */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: var(--uib-size);
  width: var(--uib-size);
}

.dot-spinner__dot {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 100%;
  width: 100%;
}

.dot-spinner__dot::before {
  content: '';
  height: 20%;
  width: 20%;
  border-radius: 50%;
  background-color: var(--uib-color);
  transform: scale(0);
  opacity: 0.5;
  animation: pulse0112 calc(var(--uib-speed) * 1.111) ease-in-out infinite;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.4);
}

.dot-spinner__dot:nth-child(2) {
  transform: rotate(45deg);
}

.dot-spinner__dot:nth-child(2)::before {
  animation-delay: calc(var(--uib-speed) * -0.875);
}

.dot-spinner__dot:nth-child(3) {
  transform: rotate(90deg);
}

.dot-spinner__dot:nth-child(3)::before {
  animation-delay: calc(var(--uib-speed) * -0.75);
}

.dot-spinner__dot:nth-child(4) {
  transform: rotate(135deg);
}

.dot-spinner__dot:nth-child(4)::before {
  animation-delay: calc(var(--uib-speed) * -0.625);
}

.dot-spinner__dot:nth-child(5) {
  transform: rotate(180deg);
}

.dot-spinner__dot:nth-child(5)::before {
  animation-delay: calc(var(--uib-speed) * -0.5);
}

.dot-spinner__dot:nth-child(6) {
  transform: rotate(225deg);
}

.dot-spinner__dot:nth-child(6)::before {
  animation-delay: calc(var(--uib-speed) * -0.375);
}

.dot-spinner__dot:nth-child(7) {
  transform: rotate(270deg);
}

.dot-spinner__dot:nth-child(7)::before {
  animation-delay: calc(var(--uib-speed) * -0.25);
}

.dot-spinner__dot:nth-child(8) {
  transform: rotate(315deg);
}

.dot-spinner__dot:nth-child(8)::before {
  animation-delay: calc(var(--uib-speed) * -0.125);
}

@keyframes pulse0112 {
  0%,
  100% {
    transform: scale(0);
    opacity: 0.5;
  }

  50% {
    transform: scale(1);
    opacity: 1;
  }
}

/* GLASS BUTTON STYLE FOR NEW FOLDER */
.glass-btn {
  position: relative;
  padding: 8px 18px;
  font-size: 13px;
  color: #fff;
  border: none;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  cursor: pointer;
  box-shadow:
    0 4px 10px rgba(0, 0, 0, 0.15),
    inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  font-family: inherit;
  letter-spacing: 0.5px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
}

.glass-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.25),
    transparent
  );
  transition: 0.6s;
}

.glass-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at center,
    rgba(255, 255, 255, 0.08) 0%,
    transparent 70%
  );
  opacity: 0;
  transition: opacity 0.4s ease;
}

.glass-btn:hover {
  transform: translateY(-2px) scale(1.02);
  background: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 8px 16px rgba(0, 0, 0, 0.2),
    inset 0 0 0 1px rgba(255, 255, 255, 0.18);
  letter-spacing: 1px;
}

.glass-btn:hover::before {
  left: 100%;
}

.glass-btn:hover::after {
  opacity: 1;
}

.glass-btn:active {
  transform: translateY(1px) scale(0.98);
  box-shadow:
    0 3px 8px rgba(0, 0, 0, 0.15),
    inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.15);
}

.glass-btn span {
  position: relative;
  z-index: 1;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* RETRO ARCADE MODAL STYLES */
.arcade-cabinet {
  position: relative;
  width: 95%;
  max-width: 440px;
  background: #0d0d11;
  border: 4px solid #1a1a24;
  border-radius: 20px;
  box-shadow: 
    0 25px 50px -12px rgba(0, 0, 0, 0.5),
    0 0 30px rgba(255, 0, 127, 0.15), /* Cyberpunk neon glow */
    inset 0 0 20px rgba(255, 255, 255, 0.02);
  padding: 24px;
  overflow: hidden;
  box-sizing: border-box;
  font-family: 'Fira Code', monospace;
  color: #fafafa;
}

/* CRT Screen scanline effect */
.crt-lines {
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
  background-size: 100% 4px, 6px 100%;
  z-index: 10;
  pointer-events: none;
  opacity: 0.35;
}

.arcade-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #1a1a24;
  padding-bottom: 12px;
  margin-bottom: 20px;
}

.arcade-title {
  font-size: 20px;
  font-weight: 800;
  color: #ff007f;
  text-shadow: 0 0 10px rgba(255, 0, 127, 0.6);
  letter-spacing: 2px;
  animation: neonFlicker 2s infinite alternate;
}

@keyframes neonFlicker {
  0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
    text-shadow: 0 0 10px rgba(255, 0, 127, 0.6), 0 0 2px rgba(255, 0, 127, 0.8);
  }
  20%, 24%, 55% {
    text-shadow: none;
    opacity: 0.7;
  }
}

.arcade-screen {
  background: #050508;
  border: 2px solid #15151e;
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 320px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  position: relative;
}

.arcade-menu {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  margin-top: 24px;
}

.arcade-menu-btn {
  width: 100%;
  padding: 12px;
  font-size: 14px;
  font-family: inherit;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.05);
  border: 1px solid rgba(56, 189, 248, 0.2);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: inset 0 0 10px rgba(56, 189, 248, 0.02);
}

.arcade-menu-btn:hover {
  background: rgba(56, 189, 248, 0.12);
  border-color: rgba(56, 189, 248, 0.5);
  box-shadow: 0 0 15px rgba(56, 189, 248, 0.25);
  transform: translateY(-1px);
}

.arcade-btn {
  padding: 6px 12px;
  font-size: 11px;
  font-family: inherit;
  color: #fafafa;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.arcade-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255,255,255,0.2);
}

.arcade-p {
  font-size: 12px;
  color: var(--text-secondary);
}

.text-blink {
  animation: blink 1.2s infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.canvas-container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background: radial-gradient(circle at 50% 18%, rgba(56, 189, 248, .08), transparent 48%), #020204;
  border-radius: 8px;
  padding: 8px;
  border: 1px solid rgba(56, 189, 248, .14);
  box-shadow: inset 0 0 24px rgba(0, 0, 0, .86), 0 12px 30px rgba(0, 0, 0, .24);
  overflow: hidden;
  width: 100%;
  max-width: 316px;
}

.canvas-container::after {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 4px;
  background: linear-gradient(115deg, rgba(255, 255, 255, .045), transparent 28%, transparent 72%, rgba(56, 189, 248, .025));
  pointer-events: none;
}

#arcade-canvas {
  background: #000;
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, .045);
  box-shadow: 0 0 22px rgba(56, 189, 248, .08);
}

#arcade-canvas[data-game="snake"] {
  box-shadow: 0 0 24px rgba(16, 185, 129, .1);
}

#arcade-canvas[data-game="tetris"] {
  min-width: 0;
  max-width: calc(100% - 70px);
  box-shadow: 0 0 26px rgba(56, 189, 248, .12);
}

.tetris-side-panel {
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-left: 8px;
  width: 62px;
  position: relative;
  z-index: 1;
}

.tetris-preview-slot {
  width: 62px;
  padding: 7px 3px 4px;
  border: 1px solid rgba(56, 189, 248, .18);
  border-radius: 7px;
  background: rgba(2, 5, 10, .88);
  color: rgba(186, 230, 253, .68);
  text-align: center;
  font-family: inherit;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 1px;
  box-shadow: inset 0 0 12px rgba(56, 189, 248, .04);
}

button.tetris-preview-slot {
  cursor: pointer;
}

button.tetris-preview-slot:hover:not(:disabled) {
  border-color: rgba(56, 189, 248, .48);
  background: rgba(56, 189, 248, .08);
}

.tetris-preview-slot:disabled,
.tetris-preview-slot.used {
  cursor: not-allowed;
  opacity: .38;
}

.tetris-preview-slot canvas {
  display: block;
  width: 56px;
  height: 56px;
  margin-top: 3px;
}

.game-info-overlay {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 300px;
  font-size: 12px;
  margin-bottom: 8px;
  color: #10b981;
  text-shadow: 0 0 5px rgba(16, 185, 129, 0.4);
}

.game-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  z-index: 10;
  backdrop-filter: blur(4px);
}

.game-start-overlay {
  z-index: 9;
  gap: 14px;
  cursor: pointer;
  background: rgba(1, 3, 8, .68);
  backdrop-filter: blur(2px);
}

.arcade-ready-title {
  color: #6ee7b7;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 3px;
  text-shadow: 0 0 14px rgba(16, 185, 129, .42);
}

.arcade-start-btn {
  width: auto;
  min-width: 190px;
  padding: 11px 18px;
  border: 1px solid rgba(56, 189, 248, .42);
  border-radius: 9px;
  background: rgba(56, 189, 248, .09);
  color: #bae6fd;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 1.4px;
  cursor: pointer;
  box-shadow: 0 0 18px rgba(56, 189, 248, .1);
}

.arcade-start-btn:hover {
  background: rgba(56, 189, 248, .16);
  border-color: rgba(56, 189, 248, .7);
}

.arcade-retry-btn {
  width: auto;
  min-width: 150px;
  padding-inline: 26px;
}

.arcade-text-danger {
  color: #ff007f;
  text-shadow: 0 0 10px rgba(255, 0, 127, 0.6);
  font-weight: bold;
  font-size: 24px;
  letter-spacing: 2px;
  margin: 0;
}

/* Virtual On-Screen Controller for Mobile Arcades */
.arcade-controllers {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20px;
  padding-top: 15px;
  border-top: 2px solid #1a1a24;
  gap: 20px;
  width: 100%;
  user-select: none;
  -webkit-user-select: none;
}

.dpad {
  display: grid;
  grid-template-columns: repeat(3, 40px);
  grid-template-rows: repeat(3, 40px);
  gap: 4px;
  justify-items: center;
  align-items: center;
}

.dpad-btn {
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.1s, transform 0.1s;
  touch-action: manipulation;
}

.dpad-btn:active {
  background: rgba(56, 189, 248, 0.2);
  border-color: #38bdf8;
  transform: scale(0.95);
}

.dpad-btn.up { grid-column: 2; grid-row: 1; }
.dpad-btn.left { grid-column: 1; grid-row: 2; }
.dpad-btn.right { grid-column: 3; grid-row: 2; }
.dpad-btn.down { grid-column: 2; grid-row: 3; }

.action-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
}

.action-btn {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(255, 0, 127, 0.1);
  border: 2px solid rgba(255, 0, 127, 0.4);
  color: #ff007f;
  font-family: inherit;
  font-size: 11px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 0 15px rgba(255, 0, 127, 0.2);
  transition: all 0.1s;
  touch-action: manipulation;
}

.action-btn:active {
  background: rgba(255, 0, 127, 0.3);
  box-shadow: 0 0 25px rgba(255, 0, 127, 0.6);
  transform: scale(0.95);
}

/* CHECKBOX INLINE WIDGET FOR NOTES */
.checkbox-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  margin-right: 8px;
  user-select: none;
  -webkit-user-select: none;
  position: relative;
  top: 0;
}

.checkbox-wrapper * {
  -webkit-tap-highlight-color: transparent;
  outline: none;
  box-sizing: border-box;
}

.checkbox-wrapper .note-cb-container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
  display: none;
}

.checkbox-wrapper .note-cb-container {
  display: block;
  position: relative;
  cursor: pointer;
  user-select: none;
  margin: 0;
  padding: 0;
  width: 18px;
  height: 18px;
}

/* Create a custom checkbox */
.checkbox-wrapper .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 18px;
  width: 18px;
  background: #111115;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --spread: 8px; /* glowing spread size */
}

/* Hover effect */
.checkbox-wrapper .note-cb-container:hover .checkmark {
  transform: scale(1.08);
  border-color: var(--text-secondary);
}

/* When the checkbox is checked, add a glowing multi-color shadow */
.checkbox-wrapper .note-cb-container input:checked ~ .checkmark {
  background: rgb(0, 0, 0);
  border-color: rgba(255, 255, 255, 0.4);
  transform: scale(1.05);
  box-shadow: -4px -4px var(--spread) 0px #5b51d8,
    0 -4px var(--spread) 0px #833ab4, 4px -4px var(--spread) 0px #e1306c,
    4px 0 var(--spread) 0px #fd1d1d, 4px 4px var(--spread) 0px #f77737,
    0 4px var(--spread) 0px #fcaf45, -4px 4px var(--spread) 0px #ffdc80;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkbox-wrapper .checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.checkbox-wrapper .note-cb-container input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.checkbox-wrapper .note-cb-container .checkmark:after {
  left: 50%;
  top: 45%;
  width: 5px;
  height: 9px;
  border: solid #f0f0f0;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}

/* iOS Gallery View Grid Layout */
.ios-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 6px;
  padding: 16px 0;
  width: 100%;
}
@media (min-width: 768px) {
  .ios-gallery-grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
  }
}
.gallery-item {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s, border-color 0.25s;
}
.gallery-item:hover {
  transform: scale(1.04);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
  border-color: rgba(255, 255, 255, 0.25);
  z-index: 2;
}
.gallery-thumb {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gallery-thumb svg {
  width: 40px;
  height: 40px;
  opacity: 0.3;
  color: #fff;
  transition: opacity 0.2s;
}
.gallery-item:hover .gallery-thumb svg {
  opacity: 0.6;
}
.gallery-folder-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 12px;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.045);
}
.gallery-folder-thumb {
  height: auto;
  flex: 1;
  min-height: 0;
}
.gallery-folder-thumb svg {
  width: 44px;
  height: 44px;
  opacity: 1;
  color: #f59e0b;
  fill: rgba(245, 158, 11, 0.18);
}
.gallery-folder-label {
  color: var(--text-primary);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
}
.gallery-video-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 3px 6px;
  border-radius: 4px;
  font-size: 10px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
  pointer-events: none;
  z-index: 3;
}
.gallery-video-badge svg {
  width: 8px;
  height: 8px;
  fill: currentColor;
}
.active-gallery-btn {
  background: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

#favorites-toggle-btn.active-gallery-btn svg {
  fill: currentColor;
}

/* HTML5 Drag & Drop File Reordering Styles */
.file-item.dragging {
  opacity: 0.35;
  background: rgba(255, 255, 255, 0.05);
  border: 1.5px dashed rgba(255, 255, 255, 0.25);
  transform: scale(0.98);
}
.file-item.drag-over-above {
  border-top: 2px solid #5b51d8 !important;
  border-bottom: 1.5px solid transparent !important;
}
.file-item.drag-over-below {
  border-bottom: 2px solid #5b51d8 !important;
  border-top: 1.5px solid transparent !important;
}
.file-item {
  transition: border-top 0.1s ease-in-out, border-bottom 0.1s ease-in-out, transform 0.15s, background 0.15s, border-color 0.15s;
}

/* File item checkbox */
.file-cb-label {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  flex-shrink: 0;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}
.file-cb-label input { display: none; }
.file-cb-check {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--border-color);
  border-radius: 4px;
  background: transparent;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.file-cb-label input:checked + .file-cb-check {
  background: #5b51d8;
  border-color: #5b51d8;
}
.file-cb-check:after {
  content: "";
  display: none;
  position: absolute;
  left: 50%;
  top: 45%;
  width: 5px;
  height: 9px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}
.file-cb-label input:checked + .file-cb-check:after,
.file-cb-check.checked:after {
  display: block;
}

/* Selected file/folder highlight */
.file-item.selected {
  background: rgba(91, 81, 216, 0.08);
  border-color: rgba(91, 81, 216, 0.4);
}

/* Batch action bar */
.batch-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: rgba(18, 18, 20, 0.95);
  border: 1px solid rgba(91, 81, 216, 0.3);
  border-radius: 10px;
  margin-top: 8px;
  animation: fadeIn 0.15s ease;
}
.batch-action-bar #batch-count {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 500;
}
.batch-actions {
  display: flex;
  gap: 6px;
}
.batch-actions button {
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 6px 10px;
  cursor: pointer;
  color: var(--text-primary);
  transition: all 0.15s;
}
.batch-actions button:hover {
  background: rgba(255,255,255,0.05);
  border-color: var(--border-hover);
}
.batch-clear-btn {
  font-size: 16px;
  line-height: 1;
  padding: 6px 12px !important;
  opacity: 0.6;
}

/* Share button */
.btn-share {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: var(--text-secondary);
  transition: color 0.15s;
  display: inline-flex;
  align-items: center;
}
.btn-share:hover {
  color: #38bdf8;
}

/* Mobile responsive layout optimizations */
@media (max-width: 768px) {
  .container {
    padding: 0 !important;
    max-width: 100% !important;
  }
  
  /* Only vault panel goes edge-to-edge */
  .vault-panel {
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    padding: 16px 12px !important;
    box-shadow: none !important;
  }

  /* Login card remains a nice floating card on mobile */
  .login-card {
    margin: 32px 16px !important;
    border-radius: 16px !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: 0 10px 30px var(--shadow-color) !important;
  }
  
  .file-list {
    max-height: none !important;
    overflow-y: visible !important;
    padding-right: 0 !important;
  }

  /* Header actions wrap on mobile */
  .files-section-header {
    flex-wrap: wrap;
    gap: 8px;
  }
  .header-actions {
    flex-wrap: wrap;
    gap: 6px;
  }
  /* New Folder button: icon only on mobile */
  .header-actions .glass-btn span svg {
    margin-right: 0 !important;
  }
  .header-actions .glass-btn span:not(:empty) {
    font-size: 0;
  }

  /* File item: tighter padding */
  .file-item {
    padding: 6px 10px;
  }
  .file-details {
    margin-right: 6px;
  }
  .file-details .file-meta span:last-child {
    display: none;
  }

  /* Mobile: show "···", hide dropdown inline, show as positioned dropdown */
  .action-buttons .btn-more {
    display: flex !important;
  }
  .action-buttons .more-dropdown {
    display: none !important;
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 100;
    flex-direction: column;
    background: #1a1a1e;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 4px;
    gap: 2px;
    min-width: 130px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  }
  .action-buttons .more-dropdown.open {
    display: flex !important;
  }
  .action-secondary {
    display: none !important;
  }
  .file-item:not(.folder-row) .actions-primary .btn-share {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    border: 1px solid var(--border-color);
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
  }
  .file-item:not(.folder-row) .actions-primary .btn-share:hover {
    background: rgba(56, 189, 248, 0.08);
    border-color: rgba(56, 189, 248, 0.3);
    color: #38bdf8;
  }
  .more-dropdown-btn {
    width: 100%;
    justify-content: flex-start;
    padding: 8px 12px;
    gap: 8px;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: var(--text-primary);
    cursor: pointer;
    font-size: 12px;
    white-space: nowrap;
    transition: background 0.15s;
  }
  .more-dropdown-btn:hover {
    background: rgba(255,255,255,0.05);
  }
}

/* Scroll Lock on Modal Open */
html.modal-open,
body.modal-open {
  overflow: hidden !important;
  height: 100% !important;
}

/* Zero-Knowledge Password Manager Styles */
.passwords-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  animation: fadeIn 0.25s ease;
}
@media (max-width: 768px) {
  .passwords-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.password-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.password-card:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--primary-purple);
  box-shadow: 0 4px 20px rgba(91, 81, 216, 0.15);
}

.pwd-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  padding-bottom: 10px;
}

.pwd-favicon {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid var(--border-color);
}

.pwd-favicon img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.pwd-favicon svg {
  width: 18px;
  height: 18px;
  stroke: var(--text-secondary);
  fill: none;
}

.pwd-title-info {
  flex: 1;
  min-width: 0;
}

.pwd-title-info h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pwd-title-info span {
  font-size: 11px;
  color: var(--text-secondary);
  word-break: break-all;
}

.pwd-actions {
  display: flex;
  gap: 6px;
}

.pwd-action-btn {
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  border-radius: 6px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}

.pwd-action-btn:hover {
  color: var(--text-primary);
  border-color: var(--border-hover);
  background: rgba(255, 255, 255, 0.05);
}

.pwd-action-btn.delete-btn:hover {
  color: #ff4d4d;
  border-color: rgba(255, 77, 77, 0.4);
  background: rgba(255, 77, 77, 0.1);
}

.pwd-action-btn svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
}

.pwd-card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.22s ease, margin-top 0.22s ease;
  margin-top: 0;
}

.password-card.expanded .pwd-card-body {
  max-height: 600px; /* High enough to fit 2FA and notes */
  opacity: 1;
  pointer-events: auto;
  margin-top: 12px;
}

.pwd-field-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(0, 0, 0, 0.15);
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.02);
}

.pwd-field-label {
  font-size: 10px;
  color: var(--text-secondary);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.5px;
  width: 65px;
  flex-shrink: 0;
}

.pwd-field-value {
  font-size: 12px;
  color: var(--text-primary);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 8px;
}

.pwd-field-value.masked {
  letter-spacing: 2px;
  font-size: 10px;
}

.pwd-copy-btn {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: all 0.15s;
}

.pwd-copy-btn:hover {
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.08);
}

.pwd-copy-btn svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
}

.pwd-card-notes {
  font-size: 11px;
  color: var(--text-secondary);
  background: rgba(255, 255, 255, 0.01);
  border: 1px dashed rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  padding: 8px;
  word-break: break-word;
  max-height: 60px;
  overflow-y: auto;
}

/* SHARES PANEL */
.shares-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 0;
  margin-top: 10px;
}

.shares-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.shares-header h3 {
  font-family: 'Outfit', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}

.shares-subtitle {
  font-size: 12px;
  color: var(--text-secondary);
}

.shares-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.share-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.01);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  gap: 12px;
  transition: all 0.2s ease;
}

.share-item:hover {
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--border-hover);
}

.share-item.expired {
  opacity: 0.45;
}

.share-item-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  flex: 1;
}

.share-item-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.share-item-meta {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  color: var(--text-secondary);
  flex-wrap: wrap;
}

.share-item-badge {
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.share-item-badge.badge-active {
  background: rgba(16, 185, 129, 0.12);
  color: var(--success-color);
}

.share-item-badge.badge-expired {
  background: rgba(239, 68, 68, 0.12);
  color: var(--error-color);
}

.share-item-badge.badge-password {
  background: rgba(139, 92, 246, 0.12);
  color: var(--primary-purple);
}

.share-item-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

/* Share Modal Options */
.share-option-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-color);
}

.share-option-label {
  font-size: 14px;
  color: var(--text-primary);
}

/* Toggle Switch */
.toggle-switch {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 22px;
  flex-shrink: 0;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: var(--border-color);
  border-radius: 22px;
  transition: all 0.3s ease;
}

.toggle-slider::before {
  content: "";
  position: absolute;
  height: 16px;
  width: 16px;
  left: 3px;
  bottom: 3px;
  background: var(--text-primary);
  border-radius: 50%;
  transition: all 0.3s ease;
}

.toggle-switch input:checked + .toggle-slider {
  background: var(--primary-purple);
}

.toggle-switch input:checked + .toggle-slider::before {
  transform: translateX(18px);
}

@media (max-width: 768px) {
  .share-item {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* PAPER DESK POLISH OVERRIDES */
body[data-skin="paper-desk"] {
  --primary-purple: #7a5a34;
  --primary-purple-hover: #5f4428;
}

body[data-skin="paper-desk"] .breadcrumbs {
  background: #fff8ed;
  border-color: #dac8af;
  color: #7b6b5a;
  box-shadow: 0 8px 20px rgba(91, 67, 36, 0.06);
}

body[data-skin="paper-desk"] .breadcrumb-separator {
  color: #bba88e;
}

body[data-skin="paper-desk"] .skeleton {
  background: linear-gradient(90deg, #eadcc8 0%, #f8efe1 48%, #eadcc8 100%);
  background-size: 220% 100%;
}

body[data-skin="paper-desk"] .skeleton-file-item,
body[data-skin="paper-desk"] .skeleton-note-item {
  background: #fff8ed;
  border-color: #ddcdb7;
  box-shadow: 0 8px 20px rgba(91, 67, 36, 0.05);
}

body[data-skin="paper-desk"] .drop-my-device-card {
  background: #fff8ed !important;
  border-color: #ddcdb7 !important;
  box-shadow: 0 14px 30px rgba(91, 67, 36, 0.08);
}

body[data-skin="paper-desk"] #my-device-icon,
body[data-skin="paper-desk"] .drop-zone-icon[style],
body[data-skin="paper-desk"] .device-card.selected .device-card-icon,
body[data-skin="paper-desk"] .device-card.selected .device-icon-wrapper {
  color: #7a5a34 !important;
}

body[data-skin="paper-desk"] #my-device-name-input {
  color: #2e261d !important;
  border-bottom-color: #b9a68d !important;
}

body[data-skin="paper-desk"] .drop-text-area-container textarea:focus {
  border-color: #7a5a34;
  box-shadow: 0 0 0 3px rgba(122, 90, 52, 0.12);
}

body[data-skin="paper-desk"] #send-drop-btn,
body[data-skin="paper-desk"] #send-text-btn,
body[data-skin="paper-desk"] #drop-progress-fill,
body[data-skin="paper-desk"] .btn-accept {
  background: #3b3025 !important;
  border-color: #3b3025 !important;
  color: #fff8ed !important;
}

body[data-skin="paper-desk"] #send-drop-btn:hover,
body[data-skin="paper-desk"] #send-text-btn:hover,
body[data-skin="paper-desk"] .btn-accept:hover {
  background: #57432e !important;
  border-color: #57432e !important;
}

body[data-skin="paper-desk"] .device-card:hover {
  background: #f5e6d0;
  border-color: #b89d76;
}

body[data-skin="paper-desk"] .device-card.selected {
  background: #ead5b7;
  border-color: #9b7549;
  box-shadow: 0 14px 28px rgba(91, 67, 36, 0.12);
}

body[data-skin="paper-desk"] .device-card.selected .ripple {
  border-color: rgba(122, 90, 52, 0.34);
}

body[data-skin="paper-desk"] .empty-state {
  background: rgba(255, 248, 237, 0.72) !important;
  border-color: #ddcdb7 !important;
  color: #887764 !important;
}

body[data-skin="paper-desk"] #drop-devices-list .empty-state {
  background: #efe2d0 !important;
  border-color: #d4c2aa !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.58) inset;
}

body[data-skin="paper-desk"] .file-item.hidden-item {
  border-left-color: rgba(122, 90, 52, 0.5);
}

body[data-skin="paper-desk"] .file-item.selected {
  background: #ead5b7;
  border-color: #9b7549;
}

body[data-skin="paper-desk"] .file-item.dragging {
  background: #f0dfc7;
  border-color: #c8b69d;
}

body[data-skin="paper-desk"] .file-item.drag-over-above {
  border-top-color: #7a5a34 !important;
}

body[data-skin="paper-desk"] .file-item.drag-over-below {
  border-bottom-color: #7a5a34 !important;
}

body[data-skin="paper-desk"] .btn-notes-new {
  background: #3b3025;
  border-color: #3b3025;
  color: #fff8ed;
  box-shadow: 0 12px 26px rgba(62, 44, 22, 0.16);
}

body[data-skin="paper-desk"] .btn-notes-new:hover {
  background: #57432e;
  border-color: #57432e;
  box-shadow: 0 16px 30px rgba(62, 44, 22, 0.2);
}

body[data-skin="paper-desk"] .btn-notes-new svg {
  stroke: #fff8ed;
}

body[data-skin="paper-desk"] #notes-mobile-header .note-btn-action {
  color: #7a5a34 !important;
}

body[data-skin="paper-desk"] .note-editor-textarea,
body[data-skin="paper-desk"] #note-editor-content {
  line-height: 32px !important;
  padding: 0 20px 16px !important;
  background:
    linear-gradient(to bottom, transparent 24px, rgba(137, 105, 70, 0.14) 25px, transparent 26px) !important;
  background-size: 100% 32px !important;
  background-position: 0 0 !important;
  background-attachment: local !important;
}

body[data-skin="paper-desk"] .password-card {
  background: #fff8ed;
  border-color: #ddcdb7;
  box-shadow: 0 10px 24px rgba(93, 68, 36, 0.07);
}

body[data-skin="paper-desk"] .password-card:hover {
  background: #f5e6d0;
  border-color: #b89d76;
  box-shadow: 0 16px 32px rgba(91, 67, 36, 0.13);
}

body[data-skin="paper-desk"] .pwd-card-header {
  border-bottom-color: #e3d3bd;
}

body[data-skin="paper-desk"] .pwd-favicon,
body[data-skin="paper-desk"] .pwd-field-row,
body[data-skin="paper-desk"] .pwd-card-notes {
  background: #fffaf2;
  border-color: #ddcdb7;
}

body[data-skin="paper-desk"] .pwd-copy-btn:hover {
  background: #ead5b7;
  color: #2e261d;
}

body[data-skin="paper-desk"] .totp-code-val,
body[data-skin="paper-desk"] [data-totp-secret] .pwd-field-value,
body[data-skin="paper-desk"] .totp-progress-fill {
  color: #7a5a34 !important;
}

body[data-skin="paper-desk"] .totp-progress-fill {
  background: #7a5a34 !important;
}

body[data-skin="paper-desk"] .batch-action-bar {
  background: #3b3025;
  border-color: #3b3025;
  color: #fff8ed;
  box-shadow: 0 18px 36px rgba(62, 44, 22, 0.2);
}

/* RAINY STUDY SKIN */
body[data-skin="rainy-study"] {
  --bg-color: #07101c;
  --panel-bg: rgba(14, 24, 34, 0.9);
  --border-color: rgba(61, 83, 96, 0.45);
  --border-hover: #d99a45;
  --text-primary: #e7dfd2;
  --text-secondary: #8c9ba3;
  --success-color: #5d9b87;
  --error-color: #b35657;
  --shadow-color: rgba(2, 7, 13, 0.72);
  --primary-purple: #d99a45;
  --primary-purple-hover: #efb45e;
}

body[data-skin="rainy-study"]::before {
  inset: 0;
  opacity: 1;
  background:
    radial-gradient(ellipse 44% 34% at 50% 4%, rgba(95, 142, 165, 0.18) 0%, transparent 72%),
    radial-gradient(ellipse 30% 38% at 50% 34%, rgba(217, 154, 69, 0.075) 0%, transparent 76%),
    linear-gradient(145deg, #050b14 0%, #0b1824 50%, #102432 100%);
}

body[data-skin="rainy-study"]::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
  background:
    /* window frame shadow: vignette edges */
    radial-gradient(ellipse 100% 100% at 50% 50%, transparent 64%, rgba(2, 7, 13, 0.48) 100%),
    /* fog at bottom edge */
    linear-gradient(0deg, rgba(112, 145, 160, 0.1) 0%, transparent 24%),
    /* static water droplets on glass */
    radial-gradient(circle 2px at 14% 80%, rgba(255, 255, 255, 0.28) 0, transparent 3px),
    radial-gradient(circle 1.5px at 76% 22%, rgba(255, 255, 255, 0.24) 0, transparent 2.5px),
    radial-gradient(circle 2px at 38% 68%, rgba(255, 255, 255, 0.22) 0, transparent 3px),
    radial-gradient(circle 1px at 92% 55%, rgba(255, 255, 255, 0.30) 0, transparent 2px),
    radial-gradient(circle 1.5px at 58% 85%, rgba(255, 255, 255, 0.20) 0, transparent 2.5px);
}

/* Rain container — sits like rain on window glass, above content */
#city-skyline {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  opacity: 0;
  pointer-events: none;
  transform: scale(1.1);
  transform-origin: 50% 100%;
  transition: opacity 1.2s ease;
}

body[data-skin="rainy-study"] #city-skyline {
  opacity: .98;
}

#rainy-city-scene {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 1.2s ease, visibility 0s linear 1.2s;
}

body[data-skin="rainy-study"] #rainy-city-scene {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

#rainy-city-scene::before {
  content: "";
  position: absolute;
  left: -8%;
  right: -8%;
  bottom: -10%;
  height: 44%;
  background:
    radial-gradient(ellipse 18% 26% at 8% 62%, rgba(217, 154, 69, .12), transparent 72%),
    radial-gradient(ellipse 16% 24% at 92% 54%, rgba(232, 177, 95, .11), transparent 74%),
    radial-gradient(ellipse 34% 34% at 50% 78%, rgba(74, 118, 140, .12), transparent 76%),
    linear-gradient(to top, rgba(2, 7, 14, .92), rgba(5, 14, 23, .56) 48%, transparent 100%);
  filter: blur(18px);
  transform: scale(1.06);
}

#rainy-city-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 25% 42% at 50% 49%, rgba(2, 8, 14, .28) 0%, rgba(2, 8, 14, .16) 50%, transparent 100%),
    linear-gradient(90deg, rgba(1, 5, 11, .34), transparent 15%, transparent 85%, rgba(1, 5, 11, .34)),
    linear-gradient(180deg, transparent 55%, rgba(3, 9, 17, .16) 72%, rgba(2, 7, 13, .5) 100%);
}

.rainy-moon {
  position: absolute;
  top: 8%;
  left: 11%;
  width: clamp(48px, 5vw, 76px);
  aspect-ratio: 1;
}

.rainy-moon::before {
  content: "";
  position: absolute;
  inset: -72%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(157, 195, 207, .18) 0%, rgba(103, 151, 169, .08) 34%, transparent 70%);
  filter: blur(8px);
  opacity: .9;
}

.rainy-moon-disc {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  opacity: .76;
  background:
    radial-gradient(circle at 31% 30%, rgba(255, 253, 232, .36) 0 6%, transparent 7%),
    radial-gradient(circle at 37% 64%, rgba(90, 120, 131, .2) 0 7%, transparent 8%),
    radial-gradient(circle at 35% 38%, rgba(239, 241, 222, .98), rgba(168, 191, 199, .78) 62%, rgba(89, 124, 141, .42) 100%);
  filter: drop-shadow(0 0 12px rgba(151, 190, 205, .28)) drop-shadow(0 0 34px rgba(87, 135, 157, .2));
  -webkit-mask: radial-gradient(circle at 70% 43%, transparent 0 48%, #000 49%);
  mask: radial-gradient(circle at 70% 43%, transparent 0 48%, #000 49%);
}

.rainy-focus-shadow {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(690px, 42vw);
  height: min(760px, 74vh);
  border-radius: 45%;
  background: radial-gradient(ellipse, rgba(2, 8, 14, .42) 0%, rgba(2, 8, 14, .24) 48%, transparent 76%);
  filter: blur(18px);
  transform: translate(-50%, -50%);
}

.rainy-billboard {
  position: absolute;
  z-index: 1;
  overflow: hidden;
  color: rgba(228, 212, 180, .74);
  border: 1px solid rgba(217, 154, 69, .22);
  background:
    linear-gradient(112deg, rgba(255, 255, 255, .035), transparent 30%),
    rgba(8, 17, 25, .78);
  box-shadow:
    0 0 18px rgba(217, 154, 69, .08),
    0 12px 28px rgba(1, 5, 10, .5),
    inset 0 0 18px rgba(217, 154, 69, .035);
  text-align: center;
  text-shadow: 0 0 9px currentColor;
  transform: perspective(380px) rotateY(var(--billboard-turn, 0deg));
  opacity: .66;
}

.rainy-billboard::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(180deg, transparent 0 3px, rgba(4, 10, 16, .24) 4px 5px);
  mix-blend-mode: multiply;
}

.rainy-billboard::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  top: 100%;
  height: 42px;
  background: linear-gradient(to bottom, currentColor, transparent 86%);
  opacity: .07;
  filter: blur(7px);
  transform: perspective(70px) rotateX(62deg);
  transform-origin: top;
}

.rainy-billboard strong,
.rainy-billboard span,
.rainy-billboard small {
  position: relative;
  z-index: 1;
  display: block;
}

.rainy-billboard strong {
  font-family: 'Outfit', sans-serif;
}

.rainy-billboard-diner {
  left: 12%;
  top: 58%;
  width: clamp(116px, 7.5vw, 148px);
  aspect-ratio: 1.92;
  padding: clamp(11px, .75vw, 15px) 8px 7px;
  color: rgba(234, 175, 91, .82);
  border: 1px solid rgba(118, 111, 91, .3);
  border-radius: 1px;
  background:
    linear-gradient(104deg, transparent 0 18%, rgba(255, 241, 210, .035) 19% 20%, transparent 21% 62%, rgba(255, 241, 210, .025) 63% 64%, transparent 65%),
    linear-gradient(180deg, rgba(18, 31, 37, .92), rgba(8, 18, 25, .94));
  box-shadow:
    0 0 18px rgba(222, 155, 69, .1),
    0 12px 28px rgba(1, 5, 10, .52),
    inset 0 0 20px rgba(222, 155, 69, .035);
  --billboard-turn: 4deg;
  opacity: .74;
}

.rainy-billboard-diner span {
  margin-bottom: 3px;
  color: rgba(183, 209, 205, .56);
  font-size: clamp(6px, .4vw, 8px);
  font-weight: 700;
  letter-spacing: .25em;
  text-shadow: 0 0 8px rgba(123, 183, 182, .38);
}

.rainy-billboard-diner strong {
  font-size: clamp(22px, 1.55vw, 30px);
  font-weight: 600;
  line-height: .96;
  letter-spacing: .15em;
  text-indent: .15em;
  text-shadow:
    0 0 3px rgba(255, 225, 169, .76),
    0 0 11px rgba(224, 156, 69, .56);
  animation: rainyDinerNeon 9.2s steps(1, end) -4.7s infinite;
}

.rainy-billboard-hotel {
  left: 76.5%;
  top: 48%;
  width: clamp(42px, 2.8vw, 58px);
  height: clamp(122px, 10.8vw, 190px);
  padding: 5px 2px;
  color: rgba(219, 91, 78, .86);
  border: 0;
  background: transparent;
  box-shadow: none;
  text-shadow:
    0 0 3px rgba(255, 178, 153, .78),
    0 0 10px rgba(219, 91, 78, .72),
    0 0 24px rgba(177, 55, 50, .4);
  --billboard-turn: -4deg;
  opacity: .78;
  overflow: visible;
}

.rainy-billboard-hotel::before,
.rainy-billboard-hotel::after {
  display: none;
}

.rainy-billboard-hotel strong {
  margin: 0 auto;
  font-size: clamp(12px, .92vw, 18px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: .12em;
  writing-mode: vertical-rl;
  text-orientation: upright;
  animation: rainyHotelNeon 7.4s steps(1, end) -3.1s infinite;
}

@keyframes rainyHotelNeon {
  0%, 14%, 17%, 64%, 67%, 100% { opacity: 1; }
  15%, 16%, 65%, 66% { opacity: .62; }
}

@keyframes rainyDinerNeon {
  0%, 37%, 40%, 83%, 86%, 100% { opacity: 1; }
  38%, 39%, 84%, 85% { opacity: .72; }
}

.rainy-moon-cloud {
  position: absolute;
  left: -75%;
  width: 250%;
  height: 24%;
  border-radius: 999px;
  background: rgba(6, 17, 27, .5);
  filter: blur(9px);
  animation: rainyMoonCloudDrift 24s ease-in-out infinite alternate;
}

.rainy-moon-cloud-one {
  top: 24%;
  transform: rotate(-4deg);
}

.rainy-moon-cloud-two {
  top: 61%;
  opacity: .54;
  animation-duration: 31s;
  animation-delay: -14s;
  transform: rotate(3deg);
}

.rainy-city-haze {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 8%;
  height: 34%;
  background:
    radial-gradient(ellipse at 18% 64%, rgba(112, 151, 166, .1), transparent 42%),
    radial-gradient(ellipse at 82% 58%, rgba(77, 119, 139, .1), transparent 46%);
  filter: blur(24px);
  animation: rainyHazeDrift 22s ease-in-out infinite alternate;
}

.rainy-fog-band {
  position: absolute;
  left: -12%;
  width: 124%;
  pointer-events: none;
  filter: blur(22px);
  animation: rainyFogDrift 28s ease-in-out infinite alternate;
}

.rainy-fog-band-back {
  bottom: 21%;
  height: 12%;
  opacity: .32;
  background:
    radial-gradient(ellipse at 18% 55%, rgba(113, 148, 162, .18), transparent 34%),
    radial-gradient(ellipse at 62% 48%, rgba(95, 133, 150, .13), transparent 42%),
    radial-gradient(ellipse at 92% 60%, rgba(121, 151, 164, .14), transparent 32%);
}

.rainy-fog-band-front {
  bottom: 8%;
  height: 10%;
  opacity: .2;
  animation-duration: 36s;
  animation-direction: alternate-reverse;
  background: linear-gradient(90deg, transparent, rgba(128, 153, 163, .16) 22%, rgba(102, 132, 146, .13) 68%, transparent);
}

.rainy-bokeh {
  position: absolute;
  left: var(--x);
  bottom: var(--y);
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  opacity: var(--alpha);
  filter: blur(var(--blur));
  box-shadow: 0 0 32px currentColor;
  animation: rainyBokehDrift var(--drift) ease-in-out var(--delay) infinite alternate;
}

.rainy-bokeh-amber {
  color: #e0a654;
  background: #e0a654;
}

.rainy-bokeh-ivory {
  color: #eadfca;
  background: #eadfca;
}

.rainy-bokeh-blue {
  color: #6f9bad;
  background: #6f9bad;
}

.rainy-road {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: max(72px, 9vh);
  overflow: hidden;
  border-top: 1px solid rgba(105, 135, 147, .08);
  background:
    linear-gradient(180deg, rgba(4, 11, 19, .15), rgba(1, 5, 10, .82)),
    repeating-linear-gradient(90deg, transparent 0 9%, rgba(120, 143, 150, .035) 9.2% 10%, transparent 10.2% 19%);
}

.rainy-road::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(219, 161, 79, .025) 28%, rgba(112, 150, 164, .035) 64%, transparent);
  filter: blur(6px);
}

.rainy-streetlight {
  position: absolute;
  left: var(--x);
  bottom: 3px;
  width: 1px;
  height: var(--lamp-height);
  opacity: var(--lamp-alpha);
  background: linear-gradient(to top, rgba(50, 61, 66, .72), rgba(91, 104, 106, .34));
}

.rainy-streetlight::before {
  content: "";
  position: absolute;
  top: -3px;
  left: 50%;
  width: 5px;
  height: 3px;
  border-radius: 50%;
  background: #e0a654;
  box-shadow: 0 0 8px rgba(224, 166, 84, .9), 0 0 22px rgba(224, 166, 84, .44);
  transform: translateX(-50%);
}

.rainy-streetlight::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 34px;
  height: 54px;
  background: linear-gradient(to bottom, rgba(224, 166, 84, .13), transparent 82%);
  clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
  filter: blur(3px);
  transform: translateX(-50%);
}

.rainy-car {
  --front-light: #f2dbaa;
  --rear-light: #9e4e43;
  --front-x: 96%;
  --rear-x: 4%;
  position: absolute;
  left: -70px;
  bottom: var(--lane);
  width: 28px;
  height: 7px;
  background:
    radial-gradient(circle at var(--front-x) 54%, var(--front-light) 0 1.35px, transparent 2.2px),
    radial-gradient(circle at var(--rear-x) 54%, var(--rear-light) 0 1.15px, transparent 2px),
    linear-gradient(to bottom, rgba(91, 108, 117, .36), rgba(7, 13, 19, .72));
  border-radius: 7px 9px 2px 2px;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .8));
  animation: rainyTrafficForward var(--drive-time) linear var(--drive-delay) infinite;
}

.rainy-car::before {
  content: "";
  position: absolute;
  top: 2px;
  left: calc(100% - 1px);
  width: 18px;
  height: 4px;
  opacity: .3;
  background: linear-gradient(to right, var(--front-light), transparent 82%);
  clip-path: polygon(0 34%, 100% 0, 100% 100%, 0 66%);
  filter: blur(2px);
}

.rainy-car-taillights {
  --front-light: #b7aa87;
  --rear-light: #bd6254;
}

.rainy-car-reverse {
  --front-x: 4%;
  --rear-x: 96%;
  right: -70px;
  left: auto;
  border-radius: 9px 7px 2px 2px;
  animation-name: rainyTrafficReverse;
}

.rainy-car-reverse::before {
  right: calc(100% - 1px);
  left: auto;
  background: linear-gradient(to left, var(--front-light), transparent 82%);
  clip-path: polygon(100% 34%, 0 0, 0 100%, 100% 66%);
}

@keyframes rainyBokehDrift {
  from { transform: translate3d(-4px, 3px, 0) scale(.94); filter: blur(var(--blur)) brightness(.82); }
  to { transform: translate3d(5px, -5px, 0) scale(1.08); filter: blur(var(--blur)) brightness(1.16); }
}

@keyframes rainyHazeDrift {
  from { transform: translate3d(-1.5%, 0, 0) scale(1); opacity: .62; }
  to { transform: translate3d(1.5%, -1%, 0) scale(1.05); opacity: .9; }
}

@keyframes rainyMoonCloudDrift {
  from { translate: -5% 0; }
  to { translate: 10% 3px; }
}

@keyframes rainyFogDrift {
  from { transform: translate3d(-2%, 0, 0) scaleX(1); }
  to { transform: translate3d(2%, -4px, 0) scaleX(1.05); }
}

@keyframes rainyTrafficForward {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(100vw + 140px), 0, 0); }
}

@keyframes rainyTrafficReverse {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-100vw - 140px), 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .rainy-bokeh,
  .rainy-city-haze,
  .rainy-moon-cloud,
  .rainy-fog-band,
  .rainy-car {
    animation: none !important;
  }

  .rainy-car {
    display: none;
  }
}

@media (max-width: 767px) {
  #city-skyline,
  #rainy-city-scene,
  .rain-container {
    display: none !important;
  }

  body[data-skin="rainy-study"]::before {
    background: #07101c;
  }

  body[data-skin="rainy-study"]::after {
    display: none;
  }
}

.rain-container {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.8s ease;
}
body[data-skin="rainy-study"] .rain-container {
  opacity: 0.55;
}
body[data-skin="rainy-study"] #rain-layer-back {
  z-index: -1;
}
body[data-skin="rainy-study"] #rain-layer-front {
  z-index: 100;
  opacity: 0.18;
}

@media (prefers-reduced-motion: reduce) {
  body[data-skin="rainy-study"] .rain-container {
    display: none !important;
  }
}

body[data-skin="rainy-study"] #bg-starfield {
  display: none;
}

body[data-skin="rainy-study"] .glass-panel,
body[data-skin="rainy-study"] .preview-modal-content,
body[data-skin="rainy-study"] .arcade-cabinet {
  background:
    linear-gradient(180deg, rgba(16, 29, 40, 0.9), rgba(9, 19, 29, 0.94)) !important;
  border-color: rgba(75, 105, 120, 0.38) !important;
  border-radius: 12px;
  box-shadow:
    0 24px 58px rgba(2, 7, 13, 0.62),
    0 26px 70px rgba(217, 154, 69, 0.065),
    0 1px 0 rgba(231, 223, 210, 0.05) inset,
    0 -1px 0 rgba(217, 154, 69, 0.07) inset;
  backdrop-filter: blur(16px) saturate(1.08);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
}

body[data-skin="rainy-study"] .vault-panel {
  background:
    linear-gradient(180deg, rgba(16, 29, 40, 0.9), rgba(9, 19, 29, 0.94)) !important;
}

body[data-skin="rainy-study"] h1,
body[data-skin="rainy-study"] h2,
body[data-skin="rainy-study"] h3 {
  letter-spacing: 0;
  color: #e7dfd2 !important;
}

body[data-skin="rainy-study"] .gradient-text {
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  color: #e7dfd2 !important;
}

body[data-skin="rainy-study"] .theme-picker-btn,
body[data-skin="rainy-study"] .theme-menu {
  background: rgba(18, 25, 29, 0.9) !important;
  border-color: rgba(58, 125, 117, 0.25) !important;
  color: #cbd6d4 !important;
  box-shadow: 0 16px 34px rgba(4, 7, 10, 0.4);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body[data-skin="rainy-study"] .theme-picker-btn:hover,
body[data-skin="rainy-study"] .theme-picker.open .theme-picker-btn {
  background: rgba(58, 125, 117, 0.15) !important;
  border-color: #3a7d75 !important;
}

body[data-skin="rainy-study"] .theme-menu-option {
  color: #71888a !important;
}

body[data-skin="rainy-study"] .theme-menu-option:hover {
  background: rgba(58, 125, 117, 0.12) !important;
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] .theme-menu-option.active {
  background: #3a7d75 !important;
  color: #cbd6d4 !important;
  box-shadow: 0 8px 18px rgba(58, 125, 117, 0.25) !important;
}

body[data-skin="rainy-study"] .logo-icon,
body[data-skin="rainy-study"] .brand-icon {
  background: rgba(26, 36, 42, 0.7) !important;
  border-color: rgba(58, 125, 117, 0.3) !important;
  box-shadow: 0 10px 26px rgba(4, 7, 10, 0.25), 0 0 20px rgba(217, 154, 69, .055);
}

body[data-skin="rainy-study"] .logo-icon img,
body[data-skin="rainy-study"] .brand-icon img {
  filter: brightness(.92) sepia(.08) saturate(.86);
}

body[data-skin="rainy-study"] .vault-header {
  border-bottom-color: rgba(58, 125, 117, 0.15);
}

body[data-skin="rainy-study"] .vault-brand,
body[data-skin="rainy-study"] .storage-widget,
body[data-skin="rainy-study"] .stat-card,
body[data-skin="rainy-study"] .upload-action-bar,
body[data-skin="rainy-study"] .folder-creator,
body[data-skin="rainy-study"] .upload-file-row,
body[data-skin="rainy-study"] .device-card,
body[data-skin="rainy-study"] .password-entry-card,
body[data-skin="rainy-study"] .note-item,
body[data-skin="rainy-study"] .note-editor-container,
body[data-skin="rainy-study"] .password-form-panel,
body[data-skin="rainy-study"] .drop-my-device-card,
body[data-skin="rainy-study"] .password-card {
  background: rgba(18, 25, 29, 0.85) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  border-radius: 9px;
  box-shadow: 0 12px 28px rgba(4, 7, 10, 0.35), 0 1px 0 rgba(255, 255, 255, 0.03) inset;
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] .vault-brand {
  padding: 8px 10px;
}

body[data-skin="rainy-study"] #my-device-name-input {
  color: #cbd6d4 !important;
  border-bottom-color: rgba(58, 125, 117, 0.4) !important;
}

body[data-skin="rainy-study"] .vault-tabs {
  background: rgba(10, 15, 18, 0.85) !important;
  border: 1px solid rgba(58, 125, 117, 0.25) !important;
  border-radius: 10px;
  padding: 4px;
}

body[data-skin="rainy-study"] .tab-btn {
  color: #71888a !important;
  border-radius: 7px;
}

body[data-skin="rainy-study"] .tab-btn.active,
body[data-skin="rainy-study"] .tab-btn:hover {
  background: rgba(58, 125, 117, 0.18) !important;
  color: #4ba397 !important;
  box-shadow: 0 8px 22px rgba(4, 7, 10, 0.3);
}

body[data-skin="rainy-study"] .stat-icon,
body[data-skin="rainy-study"] .stat-icon-pulse,
body[data-skin="rainy-study"] .drop-zone-icon,
body[data-skin="rainy-study"] .file-icon,
body[data-skin="rainy-study"] .selected-file-info svg {
  background: rgba(58, 125, 117, 0.15) !important;
  color: #4ba397 !important;
  stroke: #4ba397 !important;
}

body[data-skin="rainy-study"] .storage-bar-bg,
body[data-skin="rainy-study"] .upload-progress-bar-bg,
body[data-skin="rainy-study"] .progress-bar-bg,
body[data-skin="rainy-study"] .upload-row-progress {
  background: rgba(10, 15, 18, 0.7) !important;
}

body[data-skin="rainy-study"] .storage-bar-fill,
body[data-skin="rainy-study"] .upload-progress-bar-fill,
body[data-skin="rainy-study"] .upload-row-progress-fill,
body[data-skin="rainy-study"] .totp-progress-fill {
  background: #3a7d75 !important;
}

body[data-skin="rainy-study"] .drop-zone {
  background:
    linear-gradient(180deg, rgba(26, 36, 42, 0.4), rgba(15, 22, 26, 0.5)) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  border-radius: 10px;
}

body[data-skin="rainy-study"] .drop-zone:hover,
body[data-skin="rainy-study"] .drop-zone.dragover {
  background: rgba(58, 125, 117, 0.08) !important;
  border-color: #3a7d75 !important;
}

body[data-skin="rainy-study"] .input-field,
body[data-skin="rainy-study"] .folder-creator input,
body[data-skin="rainy-study"] select,
body[data-skin="rainy-study"] textarea,
body[data-skin="rainy-study"] .note-title-input,
body[data-skin="rainy-study"] .note-editor,
body[data-skin="rainy-study"] .drop-text-area-container textarea {
  background: rgba(10, 15, 18, 0.75) !important;
  border-color: rgba(58, 125, 117, 0.25) !important;
  color: #cbd6d4 !important;
  caret-color: #4ba397 !important;
}

body[data-skin="rainy-study"] .input-field:focus,
body[data-skin="rainy-study"] .folder-creator input:focus,
body[data-skin="rainy-study"] textarea:focus,
body[data-skin="rainy-study"] .note-title-input:focus {
  border-color: #3a7d75 !important;
  box-shadow: 0 0 0 3px rgba(58, 125, 117, 0.18) !important;
}

body[data-skin="rainy-study"] .liquid-glass-btn,
body[data-skin="rainy-study"] .btn-primary,
body[data-skin="rainy-study"] .btn-upload,
body[data-skin="rainy-study"] .btn-notes-new,
body[data-skin="rainy-study"] #send-drop-btn,
body[data-skin="rainy-study"] #send-text-btn,
body[data-skin="rainy-study"] .btn-accept {
  background: #3a7d75 !important;
  border: 1px solid #3a7d75 !important;
  color: #cbd6d4 !important;
  border-radius: 8px;
  box-shadow: 0 14px 30px rgba(58, 125, 117, 0.2) !important;
}

body[data-skin="rainy-study"] .liquid-glass-btn:hover,
body[data-skin="rainy-study"] .btn-primary:hover,
body[data-skin="rainy-study"] .btn-upload:hover,
body[data-skin="rainy-study"] .btn-notes-new:hover,
body[data-skin="rainy-study"] #send-drop-btn:hover,
body[data-skin="rainy-study"] #send-text-btn:hover,
body[data-skin="rainy-study"] .btn-accept:hover {
  background: #2c635d !important;
  border-color: #2c635d !important;
}

body[data-skin="rainy-study"] .liquid-glass-shadow,
body[data-skin="rainy-study"] .liquid-glass-btn::before,
body[data-skin="rainy-study"] .liquid-glass-btn::after,
body[data-skin="rainy-study"] .glass-btn::before,
body[data-skin="rainy-study"] .glass-btn::after,
body[data-skin="rainy-study"] .login-card .liquid-glass-btn span::after {
  display: none !important;
}

body[data-skin="rainy-study"] .liquid-glass-btn span,
body[data-skin="rainy-study"] .liquid-glass-btn svg,
body[data-skin="rainy-study"] .btn-notes-new svg {
  color: #cbd6d4 !important;
  stroke: #cbd6d4 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

body[data-skin="rainy-study"] .btn-sec,
body[data-skin="rainy-study"] .glass-btn,
body[data-skin="rainy-study"] .btn-logout,
body[data-skin="rainy-study"] .btn-download,
body[data-skin="rainy-study"] .btn-delete,
body[data-skin="rainy-study"] .btn-more,
body[data-skin="rainy-study"] .upload-remove-btn,
body[data-skin="rainy-study"] .batch-actions button,
body[data-skin="rainy-study"] .note-btn-action,
body[data-skin="rainy-study"] .pwd-action-btn,
body[data-skin="rainy-study"] .header-actions > .btn-refresh {
  background: rgba(18, 25, 29, 0.85) !important;
  border: 1px solid rgba(58, 125, 117, 0.35) !important;
  color: #cbd6d4 !important;
  box-shadow: 0 8px 18px rgba(4, 7, 10, 0.15);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body[data-skin="rainy-study"] .btn-sec:hover,
body[data-skin="rainy-study"] .glass-btn:hover,
body[data-skin="rainy-study"] .btn-download:hover,
body[data-skin="rainy-study"] .btn-more:hover,
body[data-skin="rainy-study"] .upload-remove-btn:hover,
body[data-skin="rainy-study"] .batch-actions button:hover,
body[data-skin="rainy-study"] .note-btn-action:hover,
body[data-skin="rainy-study"] .pwd-action-btn:hover,
body[data-skin="rainy-study"] .header-actions > .btn-refresh:hover,
body[data-skin="rainy-study"] .header-actions > .btn-refresh.active-gallery-btn {
  background: rgba(58, 125, 117, 0.15) !important;
  border-color: #3a7d75 !important;
  color: #4ba397 !important;
  transform: translateY(-1px);
}

body[data-skin="rainy-study"] .btn-delete:hover,
body[data-skin="rainy-study"] .btn-logout:hover {
  background: rgba(179, 86, 87, 0.2) !important;
  border-color: rgba(179, 86, 87, 0.4) !important;
  color: #ff9494 !important;
}

body[data-skin="rainy-study"] .drop-zone > .glass-btn svg,
body[data-skin="rainy-study"] .header-actions > .glass-btn svg,
body[data-skin="rainy-study"] .header-actions > .glass-btn svg *,
body[data-skin="rainy-study"] .header-actions > .btn-refresh svg,
body[data-skin="rainy-study"] .header-actions > .btn-refresh svg * {
  stroke: currentColor !important;
  color: currentColor !important;
}

body[data-skin="rainy-study"] .file-item,
body[data-skin="rainy-study"] .gallery-item {
  background: rgba(18, 25, 29, 0.7) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  border-radius: 9px;
  box-shadow: 0 12px 26px rgba(4, 7, 10, 0.2);
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] .file-item:hover,
body[data-skin="rainy-study"] .file-item.selected,
body[data-skin="rainy-study"] .gallery-item:hover,
body[data-skin="rainy-study"] .device-card:hover,
body[data-skin="rainy-study"] .device-card.selected,
body[data-skin="rainy-study"] .note-item.selected,
body[data-skin="rainy-study"] .password-card:hover {
  background: rgba(58, 125, 117, 0.15) !important;
  border-color: #3a7d75 !important;
  box-shadow: 0 16px 34px rgba(4, 7, 10, 0.35);
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] .file-item.hidden-item {
  border-left-color: rgba(58, 125, 117, 0.6) !important;
}

body[data-skin="rainy-study"] .file-item.dragging {
  background: rgba(58, 125, 117, 0.25) !important;
  border-color: #3a7d75 !important;
}

body[data-skin="rainy-study"] .file-item.drag-over-above {
  border-top-color: #3a7d75 !important;
}

body[data-skin="rainy-study"] .file-item.drag-over-below {
  border-bottom-color: #3a7d75 !important;
}

body[data-skin="rainy-study"] .file-item.folder-row .file-icon,
body[data-skin="rainy-study"] .gallery-folder-thumb svg {
  color: #b78a35;
  stroke: #b78a35;
  fill: rgba(183, 138, 53, 0.18);
}

body[data-skin="rainy-study"] .file-cb-check,
body[data-skin="rainy-study"] .checkbox-wrapper .checkmark {
  background: rgba(10, 15, 18, 0.8) !important;
  border-color: rgba(58, 125, 117, 0.35) !important;
}

body[data-skin="rainy-study"] .file-cb-label input:checked + .file-cb-check,
body[data-skin="rainy-study"] .checkbox-wrapper .note-cb-container input:checked ~ .checkmark {
  background: #3a7d75 !important;
  border-color: #3a7d75 !important;
  box-shadow: 0 0 0 4px rgba(58, 125, 117, 0.18) !important;
}

body[data-skin="rainy-study"] .breadcrumbs,
body[data-skin="rainy-study"] .more-dropdown,
body[data-skin="rainy-study"] .preview-footer,
body[data-skin="rainy-study"] .pwd-favicon,
body[data-skin="rainy-study"] .pwd-field-row,
body[data-skin="rainy-study"] .pwd-card-notes,
body[data-skin="rainy-study"] .empty-state {
  background: rgba(18, 25, 29, 0.85) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  color: #cbd6d4 !important;
  box-shadow: 0 10px 24px rgba(4, 7, 10, 0.25);
}

body[data-skin="rainy-study"] #drop-devices-list .empty-state {
  background: rgba(18, 25, 29, 0.85) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03) inset;
}

body[data-skin="rainy-study"] .breadcrumb-active,
body[data-skin="rainy-study"] .file-name,
body[data-skin="rainy-study"] .selected-file-name,
body[data-skin="rainy-study"] .pwd-field-value {
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] .breadcrumb-item,
body[data-skin="rainy-study"] .breadcrumb-separator,
body[data-skin="rainy-study"] .file-search-meta,
body[data-skin="rainy-study"] .file-meta,
body[data-skin="rainy-study"] .selected-file-size,
body[data-skin="rainy-study"] .storage-info,
body[data-skin="rainy-study"] .upload-progress-text {
  color: #71888a !important;
}

body[data-skin="rainy-study"] .skeleton {
  background: linear-gradient(90deg, #12191d 0%, #1e282d 48%, #12191d 100%) !important;
  background-size: 220% 100% !important;
}

body[data-skin="rainy-study"] .skeleton-file-item,
body[data-skin="rainy-study"] .skeleton-note-item {
  background: rgba(18, 25, 29, 0.85) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  box-shadow: 0 8px 20px rgba(4, 7, 10, 0.2) !important;
}

body[data-skin="rainy-study"] .preview-modal {
  background: rgba(20, 35, 42, 0.48);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

body[data-skin="rainy-study"] .note-editor-textarea,
body[data-skin="rainy-study"] #note-editor-content {
  line-height: 32px !important;
  padding: 0 20px 16px !important;
  background:
    linear-gradient(to bottom, transparent 24px, rgba(209, 161, 83, 0.12) 25px, transparent 26px) !important;
  background-size: 100% 32px !important;
  background-position: 0 0 !important;
  background-attachment: local !important;
  color: #decbb7 !important;
}

body[data-skin="rainy-study"] .trusted-browser-status {
  background: rgba(62, 142, 117, 0.15) !important;
  border: 1px solid rgba(62, 142, 117, 0.3) !important;
  color: #3e8e75 !important;
  border-radius: 8px;
}

body[data-skin="rainy-study"] .trusted-key-icon,
body[data-skin="rainy-study"] .trusted-key-icon svg {
  color: #3e8e75 !important;
  stroke: #3e8e75 !important;
}

body[data-skin="rainy-study"] .pin-entry {
  background: rgba(10, 15, 18, 0.75);
  border: 1px solid rgba(58, 125, 117, 0.25);
  border-radius: 10px;
  box-shadow: 0 10px 22px rgba(4, 7, 10, 0.2);
}

body[data-skin="rainy-study"] .pin-entry:focus-within {
  border-color: #3a7d75;
  box-shadow: 0 0 0 3px rgba(58, 125, 117, 0.18), 0 10px 22px rgba(4, 7, 10, 0.2);
}

body[data-skin="rainy-study"] .pin-slot {
  background: rgba(10, 15, 18, 0.85);
  border: 1px solid rgba(58, 125, 117, 0.22);
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] .pin-slot.active {
  border-color: #3a7d75;
  box-shadow: 0 0 0 3px rgba(58, 125, 117, 0.15);
}

body[data-skin="rainy-study"] .pin-slot.filled::after {
  background: #cbd6d4;
}

body[data-skin="rainy-study"] .input-wrapper svg,
body[data-skin="rainy-study"] .pin-entry svg {
  stroke: #71888a;
}

body[data-skin="rainy-study"] #vault-key-file-btn,
body[data-skin="rainy-study"] #forget-vault-key-btn,
body[data-skin="rainy-study"] #vault-key-pane > .btn-sec {
  background: rgba(18, 25, 29, 0.85) !important;
  border: 1px solid rgba(58, 125, 117, 0.22) !important;
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] #vault-key-file-btn:hover,
body[data-skin="rainy-study"] #forget-vault-key-btn:hover,
body[data-skin="rainy-study"] #vault-key-pane > .btn-sec:hover {
  background: rgba(58, 125, 117, 0.15) !important;
  border-color: #3a7d75 !important;
  color: #cbd6d4 !important;
}

body[data-skin="rainy-study"] #remember-vault-key-checkbox {
  accent-color: #3a7d75 !important;
}

body[data-skin="rainy-study"] #sys-resources-card .stat-icon,
body[data-skin="rainy-study"] #sys-resources-card .stat-icon.blue {
  background: rgba(58, 125, 117, 0.15) !important;
  color: #4ba397 !important;
}

body[data-skin="rainy-study"] #sys-resources-card .stat-icon svg {
  stroke: #4ba397 !important;
}

body[data-skin="rainy-study"] .sys-bars > div:last-child > div {
  background: rgba(10, 15, 18, 0.7) !important;
  border: 1px solid rgba(58, 125, 117, 0.1);
  height: 6px !important;
}

body[data-skin="rainy-study"] #sys-cpu-fill {
  background: #4a8d9a !important;
}

body[data-skin="rainy-study"] #sys-ram-fill {
  background: #3a7d75 !important;
}

body[data-skin="rainy-study"] .status-success {
  background: rgba(62, 142, 117, 0.15) !important;
  color: #3e8e75 !important;
  border-color: rgba(62, 142, 117, 0.3) !important;
}

body[data-skin="rainy-study"] .status-error {
  background: rgba(179, 86, 87, 0.15) !important;
  color: #b35657 !important;
  border-color: rgba(179, 86, 87, 0.3) !important;
}

body[data-skin="rainy-study"] .status-info {
  background: rgba(58, 125, 117, 0.15) !important;
  color: #4ba397 !important;
  border-color: rgba(58, 125, 117, 0.3) !important;
}

body[data-skin="rainy-study"] .batch-action-bar {
  background: #182827 !important;
  border-color: #182827 !important;
  color: #cbd6d4 !important;
  box-shadow: 0 18px 36px rgba(4, 7, 10, 0.35) !important;
}

/* Breadcrumbs (Path bar at top of file list) */
body[data-skin="rainy-study"] .breadcrumbs {
  background: rgba(18, 25, 29, 0.85) !important;
  border-color: rgba(58, 125, 117, 0.22) !important;
  color: #cbd6d4 !important;
}
body[data-skin="rainy-study"] .breadcrumb-separator {
  color: #71888a !important;
}

/* Empty States & NevoDrop Pending blocks */
body[data-skin="rainy-study"] #drop-devices-list .empty-state,
body[data-skin="rainy-study"] .empty-state,
body[data-skin="rainy-study"] .drop-my-device-card {
  background: rgba(18, 25, 29, 0.8) !important;
  border-color: rgba(58, 125, 117, 0.2) !important;
  color: #cbd6d4 !important;
}

/* Warm lamp accents over the cool rainy-night base */
body[data-skin="rainy-study"] .theme-menu-option.active,
body[data-skin="rainy-study"] .tab-btn.active,
body[data-skin="rainy-study"] .tab-btn:hover {
  background: rgba(217, 154, 69, 0.16) !important;
  color: #efb45e !important;
  border-color: rgba(217, 154, 69, 0.42) !important;
  box-shadow: 0 8px 22px rgba(2, 7, 13, 0.34) !important;
}

body[data-skin="rainy-study"] .storage-bar-fill,
body[data-skin="rainy-study"] .upload-progress-bar-fill,
body[data-skin="rainy-study"] .upload-row-progress-fill,
body[data-skin="rainy-study"] .totp-progress-fill {
  background: linear-gradient(90deg, #b97832, #e0a654) !important;
}

body[data-skin="rainy-study"] .liquid-glass-btn,
body[data-skin="rainy-study"] .btn-primary,
body[data-skin="rainy-study"] .btn-upload,
body[data-skin="rainy-study"] .btn-notes-new,
body[data-skin="rainy-study"] #send-drop-btn,
body[data-skin="rainy-study"] #send-text-btn,
body[data-skin="rainy-study"] .btn-accept {
  background: #d99a45 !important;
  border-color: #d99a45 !important;
  color: #101821 !important;
  box-shadow: 0 14px 30px rgba(217, 154, 69, 0.16) !important;
}

body[data-skin="rainy-study"] .liquid-glass-btn:hover,
body[data-skin="rainy-study"] .btn-primary:hover,
body[data-skin="rainy-study"] .btn-upload:hover,
body[data-skin="rainy-study"] .btn-notes-new:hover,
body[data-skin="rainy-study"] #send-drop-btn:hover,
body[data-skin="rainy-study"] #send-text-btn:hover,
body[data-skin="rainy-study"] .btn-accept:hover {
  background: #efb45e !important;
  border-color: #efb45e !important;
}

body[data-skin="rainy-study"] .liquid-glass-btn span,
body[data-skin="rainy-study"] .liquid-glass-btn svg,
body[data-skin="rainy-study"] .btn-notes-new svg {
  color: #101821 !important;
  stroke: #101821 !important;
}

body[data-skin="rainy-study"] .input-field:focus,
body[data-skin="rainy-study"] .folder-creator input:focus,
body[data-skin="rainy-study"] textarea:focus,
body[data-skin="rainy-study"] .note-title-input:focus,
body[data-skin="rainy-study"] .pin-entry:focus-within {
  border-color: #d99a45 !important;
  box-shadow: 0 0 0 3px rgba(217, 154, 69, 0.16) !important;
}

body[data-skin="rainy-study"] .file-item:hover,
body[data-skin="rainy-study"] .file-item.selected,
body[data-skin="rainy-study"] .gallery-item:hover,
body[data-skin="rainy-study"] .device-card:hover,
body[data-skin="rainy-study"] .device-card.selected,
body[data-skin="rainy-study"] .note-item.selected,
body[data-skin="rainy-study"] .password-card:hover {
  background: rgba(217, 154, 69, 0.08) !important;
  border-color: rgba(217, 154, 69, 0.48) !important;
  color: #e7dfd2 !important;
}

body[data-skin="rainy-study"] .file-item.folder-row .file-icon,
body[data-skin="rainy-study"] .gallery-folder-thumb svg {
  color: #d99a45 !important;
  stroke: #d99a45 !important;
  fill: rgba(217, 154, 69, 0.16) !important;
}

/* ==================== ARBEITSZEITRECHNER STYLES ==================== */
.arbeitszeitrechner-table tr {
  border-bottom: 1px solid var(--border-color);
  transition: background-color 0.2s;
}
.arbeitszeitrechner-table tr:hover {
  background: rgba(255, 255, 255, 0.02);
}
body[data-skin="paper-desk"] .arbeitszeitrechner-table tr:hover {
  background: rgba(0, 0, 0, 0.02);
}
.arbeitszeitrechner-table th, .arbeitszeitrechner-table td {
  padding: 12px 16px;
  vertical-align: middle;
}
.tf-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border-radius: 9999px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.tf-status-badge.paid {
  background: rgba(16, 185, 129, 0.12) !important;
  color: var(--success-color) !important;
  border: 1px solid rgba(16, 185, 129, 0.2);
}
.tf-status-badge.unpaid {
  background: rgba(239, 68, 68, 0.12) !important;
  color: var(--error-color) !important;
  border: 1px solid rgba(239, 68, 68, 0.2);
}
.tf-status-badge.regular-badge {
  background: rgba(113, 113, 122, 0.12) !important;
  color: var(--text-secondary) !important;
  border: 1px solid rgba(113, 113, 122, 0.2);
}
.tf-action-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-secondary);
  padding: 6px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.tf-action-btn:hover {
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.08);
}
body[data-skin="paper-desk"] .tf-action-btn:hover {
  background: rgba(0, 0, 0, 0.05);
}
.status-dot.active {
  background-color: var(--success-color) !important;
  box-shadow: 0 0 10px var(--success-color);
}
.import-upload-zone:hover {
  border-color: var(--success-color) !important;
  background: rgba(255, 255, 255, 0.02);
}
body[data-skin="paper-desk"] .import-upload-zone:hover {
  background: rgba(0, 0, 0, 0.02);
}
.preview-stats-table td {
  padding: 8px 0;
}
.mobile-session-card {
  padding: 16px;
  border-bottom: 1px solid var(--border-color);
  background: var(--panel-bg);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.arbeitszeitrechner-dashboard-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .arbeitszeitrechner-dashboard-grid {
    grid-template-columns: 1.2fr 2fr;
  }
}

.share-item-badge.badge-downloaded {
  background: rgba(59, 130, 246, 0.12);
  color: #3b82f6;
}

.share-item.downloaded {
  opacity: 1;
}

/* Cohesive motion system */
#files-tab-content,
#drop-tab-content,
#notes-tab-content,
#passwords-tab-content,
#shares-tab-content,
#arbeitszeitrechner-tab-content {
  view-transition-name: vault-content;
}

.vault-tabs .tab-btn.active {
  view-transition-name: active-vault-tab;
}

::view-transition-group(vault-content) {
  animation-duration: 480ms;
  animation-timing-function: cubic-bezier(.22, 1, .36, 1);
}

::view-transition-old(vault-content) {
  animation: vaultContentOut 220ms cubic-bezier(.4, 0, 1, 1) both;
}

::view-transition-new(vault-content) {
  animation: vaultContentIn 480ms cubic-bezier(.22, 1, .36, 1) both;
}

::view-transition-group(active-vault-tab) {
  animation-duration: 420ms;
  animation-timing-function: cubic-bezier(.22, 1, .36, 1);
}

::view-transition-group(file-preview-shared) {
  z-index: 1200;
  animation-duration: 620ms;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1);
}

::view-transition-old(file-preview-shared),
::view-transition-new(file-preview-shared) {
  height: 100%;
  border-radius: 16px;
  mix-blend-mode: normal;
  overflow: hidden;
}

html.vault-unlocking::view-transition-old(root) {
  transform-origin: var(--unlock-origin-x, 50%) var(--unlock-origin-y, 50%);
  animation: vaultPortalOut 680ms cubic-bezier(.55, 0, 1, .45) both;
}

html.vault-unlocking::view-transition-new(root) {
  animation: vaultPortalIn 520ms cubic-bezier(.16, 1, .3, 1) 560ms both;
}

html.vault-unlocking::view-transition-group(vault-content),
html.vault-unlocking::view-transition-group(active-vault-tab) {
  animation-duration: 1080ms;
}

html.vault-unlocking::view-transition-new(vault-content),
html.vault-unlocking::view-transition-new(active-vault-tab) {
  animation: vaultUnlockContentIn 460ms cubic-bezier(.16, 1, .3, 1) 620ms both;
}

@keyframes vaultPortalOut {
  0% { opacity: 1; transform: scale(1); filter: blur(0) brightness(1); }
  48% { opacity: 1; transform: scale(1.5); filter: blur(1px) brightness(1.08); }
  100% { opacity: 0; transform: scale(4.6); filter: blur(16px) brightness(1.55); }
}

@keyframes vaultPortalIn {
  0% { opacity: 0; transform: translateY(8px); filter: blur(6px) brightness(1.1); }
  65% { opacity: 1; transform: translateY(0); filter: blur(1px) brightness(1.02); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0) brightness(1); }
}

@keyframes vaultUnlockContentIn {
  from { opacity: 0; transform: translateY(10px); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

::view-transition-old(active-vault-tab),
::view-transition-new(active-vault-tab) {
  height: 100%;
  mix-blend-mode: normal;
}

@keyframes vaultContentOut {
  to { opacity: 0; transform: translateY(-8px); filter: blur(3px); }
}

@keyframes vaultContentIn {
  from { opacity: 0; transform: translateY(14px); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

.vault-tab-enter {
  animation: vaultContentIn 320ms cubic-bezier(.22, 1, .36, 1) both;
}

/* Stacked Chart Styles for Right Panel */
.azr-stacked-chart {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  height: 200px;
  padding: 10px 4px 0;
  gap: 8px;
  border-bottom: 1px solid var(--border-color);
}

.azr-stacked-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  position: relative;
}

.azr-stacked-track {
  width: 100%;
  max-width: 32px;
  height: 100%;
  display: flex;
  flex-direction: column-reverse;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 6px 6px 3px 3px;
  overflow: hidden;
  position: relative;
}

.azr-seg-freelance {
  width: 100%;
  background: #10b981;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
  transition: height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.azr-seg-regular {
  width: 100%;
  background: #3b82f6;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
  transition: height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.azr-stacked-col:hover .azr-seg-freelance {
  background: #34d399;
}

.azr-stacked-col:hover .azr-seg-regular {
  background: #60a5fa;
}

.azr-stacked-label {
  margin-top: 6px;
  font-size: 10px;
  font-weight: 600;
  color: var(--text-secondary);
}

.azr-stacked-val {
  font-size: 10px;
  color: var(--text-primary);
  margin-bottom: 4px;
  font-weight: 600;
  opacity: 0.85;
}

.preview-modal:not(.hidden) {
  animation: wowModalBackdrop 260ms ease-out both;
}

.preview-modal:not(.hidden) > .preview-modal-content,
.preview-modal:not(.hidden) > .arcade-cabinet {
  animation: wowModalContent 460ms cubic-bezier(.16, 1, .3, 1) both;
  transform-origin: 50% 58%;
}

@keyframes wowModalBackdrop {
  from { opacity: 0; backdrop-filter: blur(0); }
  to { opacity: 1; }
}

@keyframes wowModalContent {
  from { opacity: 0; transform: translateY(24px) scale(.94); filter: blur(6px); }
  65% { transform: translateY(-2px) scale(1.006); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

:is(button, .glass-btn, .btn-sec, .tab-btn, .note-btn-action, .tf-action-btn) {
  transition-property: transform, box-shadow, background-color, border-color, color, opacity;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(.22, 1, .36, 1);
}

:is(button, .glass-btn, .btn-sec, .tab-btn, .note-btn-action, .tf-action-btn):active:not(:disabled) {
  transform: scale(.965);
  transition-duration: 80ms;
}

@media (hover: hover) {
  :is(.stat-card, .file-item, .note-item, .password-entry-card, .share-item, .device-card) {
    transition: transform 260ms cubic-bezier(.22, 1, .36, 1), box-shadow 260ms ease, border-color 220ms ease;
  }

  :is(.stat-card, .file-item, .note-item, .password-entry-card, .share-item, .device-card):hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px var(--shadow-color);
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) {
    animation-duration: 1ms !important;
  }

  .vault-tab-enter,
  .vault-tab-enter *,
  .preview-modal,
  .preview-modal > * {
    animation: none !important;
    transition-duration: 1ms !important;
  }
}

.note-editor-reveal {
  animation: noteUnfold 560ms cubic-bezier(.16, 1, .3, 1) both;
  transform-origin: 0 20%;
}

@keyframes noteUnfold {
  from { opacity: .45; transform: perspective(900px) rotateY(-4deg) translateX(-10px) scale(.99); filter: blur(2px); }
  60% { transform: perspective(900px) rotateY(.7deg) translateX(1px) scale(1.002); }
  to { opacity: 1; transform: perspective(900px) rotateY(0) translateX(0) scale(1); filter: blur(0); }
}

.timer-live-enter {
  animation: timerIgnition 720ms cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes timerIgnition {
  0% { opacity: .3; transform: scale(.86); filter: blur(5px); text-shadow: 0 0 0 transparent; }
  55% { opacity: 1; transform: scale(1.045); text-shadow: 0 0 24px color-mix(in srgb, var(--success-color) 45%, transparent); }
  100% { transform: scale(1); filter: blur(0); text-shadow: 0 0 0 transparent; }
}

@media (prefers-reduced-motion: reduce) {
  .note-editor-reveal,
  .timer-live-enter { animation: none !important; }
}

body[data-skin="paper-desk"] #forget-vault-key-btn.vault-key-text-action,
body[data-skin="rainy-study"] #forget-vault-key-btn.vault-key-text-action {
  width: fit-content !important;
  padding: 4px 8px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--text-secondary) !important;
}

body[data-skin="paper-desk"] #forget-vault-key-btn.vault-key-text-action:hover,
body[data-skin="rainy-study"] #forget-vault-key-btn.vault-key-text-action:hover {
  background: transparent !important;
  border: 0 !important;
  color: var(--text-primary) !important;
}

/* Paper Desk: living window light, plant shadows and a consistent ink palette */
#paper-desk-scene {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

body[data-skin="paper-desk"] {
  --paper-ink: #315b43;
  --paper-ink-deep: #244634;
  --paper-shift-x: 0px;
  --paper-shift-y: 0px;
  --paper-shadow-x: 0px;
  --paper-shadow-y: 0px;
  --paper-plant-x: 0px;
  --paper-plant-y: 0px;
  --primary-purple: var(--paper-ink);
  background: #e7d5bb;
}

body[data-skin="paper-desk"] #paper-desk-scene {
  display: block;
  background:
    radial-gradient(ellipse at center, transparent 38%, rgba(97, 64, 30, .12) 112%),
    repeating-linear-gradient(92deg, rgba(91, 58, 27, 0.022) 0 1px, transparent 1px 8px),
    radial-gradient(ellipse at 42% 30%, rgba(255, 248, 226, 0.5), transparent 54%),
    linear-gradient(118deg, #eee1ce 0%, #dfc7a8 62%, #d3b794 100%);
}

body[data-skin="paper-desk"] .container {
  position: relative;
  z-index: 1;
}

body[data-skin="paper-desk"] .theme-picker {
  z-index: 3;
}

.paper-window-light {
  position: absolute;
  width: 58vw;
  height: 66vh;
  left: -12vw;
  top: -18vh;
  transform: translate3d(var(--paper-shift-x), var(--paper-shift-y), 0) rotate(-8deg);
  background: linear-gradient(130deg, rgba(255, 253, 235, 0.7), rgba(255, 236, 184, 0.2) 56%, transparent 74%);
  filter: blur(24px);
  opacity: 0.58;
  transition: transform 900ms cubic-bezier(.2,.8,.2,1);
}

.paper-window-shadow {
  position: absolute;
  width: 40vw;
  height: 48vh;
  left: -11vw;
  top: -15vh;
  transform: translate3d(var(--paper-shadow-x), var(--paper-shadow-y), 0) rotate(-8deg);
  background:
    linear-gradient(90deg, transparent 48%, rgba(65, 53, 36, 0.09) 49% 51%, transparent 52%),
    linear-gradient(transparent 48%, rgba(65, 53, 36, 0.08) 49% 51%, transparent 52%);
  border: 8px solid rgba(65, 53, 36, 0.055);
  filter: blur(13px);
  opacity: 0.34;
  transition: transform 1200ms cubic-bezier(.2,.8,.2,1);
  animation: paperWindowBreathe 16s ease-in-out infinite alternate;
}

.paper-plant-shadow {
  position: absolute;
  right: -1vw;
  top: 24vh;
  width: 17vw;
  height: 44vh;
  transform: translate3d(var(--paper-plant-x), var(--paper-plant-y), 0) rotate(-10deg);
  filter: blur(12px);
  opacity: 0.12;
  transform-origin: 100% 100%;
  animation: paperPlantSway 9s ease-in-out infinite alternate;
}

.paper-plant-shadow::after {
  content: "";
  position: absolute;
  right: 18%;
  bottom: -8%;
  width: 5px;
  height: 88%;
  border-radius: 100%;
  background: #324e38;
  transform: rotate(18deg);
}

.paper-plant-shadow span {
  position: absolute;
  width: 40%;
  height: 12%;
  border-radius: 90% 8% 90% 8%;
  background: #264932;
  transform-origin: 100% 50%;
}

.paper-plant-shadow span:nth-child(1) { right: 20%; top: 5%; transform: rotate(24deg); }
.paper-plant-shadow span:nth-child(2) { right: 2%; top: 22%; transform: rotate(142deg) scale(.88); }
.paper-plant-shadow span:nth-child(3) { right: 27%; top: 34%; transform: rotate(14deg) scale(1.08); }
.paper-plant-shadow span:nth-child(4) { right: 0; top: 49%; transform: rotate(151deg) scale(.78); }
.paper-plant-shadow span:nth-child(5) { right: 24%; top: 62%; transform: rotate(20deg) scale(.82); }
.paper-plant-shadow span:nth-child(6) { right: 6%; top: 75%; transform: rotate(148deg) scale(.68); }

.paper-dust i {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(118, 83, 40, 0.32);
  box-shadow: 0 0 5px rgba(255, 245, 200, 0.85);
  animation: paperDustFloat 13s linear infinite;
}

.paper-dust i:nth-child(1) { left: 12%; top: 22%; animation-delay: -2s; }
.paper-dust i:nth-child(2) { left: 24%; top: 65%; animation-delay: -7s; scale: .7; }
.paper-dust i:nth-child(3) { left: 38%; top: 35%; animation-delay: -10s; }
.paper-dust i:nth-child(4) { left: 52%; top: 78%; animation-delay: -4s; scale: .6; }
.paper-dust i:nth-child(5) { left: 67%; top: 18%; animation-delay: -9s; }
.paper-dust i:nth-child(6) { left: 76%; top: 58%; animation-delay: -1s; scale: .7; }
.paper-dust i:nth-child(7) { left: 88%; top: 32%; animation-delay: -6s; }
.paper-dust i:nth-child(8) { left: 44%; top: 12%; animation-delay: -12s; scale: .55; }

@keyframes paperWindowBreathe {
  to { opacity: .26; filter: blur(15px); }
}

@keyframes paperPlantSway {
  to { transform: translate3d(calc(var(--paper-plant-x) - 9px), calc(var(--paper-plant-y) + 4px), 0) rotate(-6deg); }
}

@keyframes paperDustFloat {
  0% { translate: 0 12px; opacity: 0; }
  18%, 78% { opacity: .65; }
  100% { translate: 34px -80px; opacity: 0; }
}

body[data-skin="paper-desk"]::before {
  background: radial-gradient(circle at 50% 30%, rgba(255,255,255,.12), transparent 55%);
  opacity: 1;
}

body[data-skin="paper-desk"]::after {
  background: radial-gradient(circle, rgba(64, 45, 24, .08) 0 .55px, transparent .8px);
  background-size: 6px 6px;
  opacity: .22;
  animation: none;
}

body[data-skin="paper-desk"] .glass-panel,
body[data-skin="paper-desk"] .preview-modal-content {
  background: linear-gradient(115deg, rgba(255,255,255,.48), transparent 34%), #fffaf0;
  border-color: rgba(127, 101, 66, .30);
  box-shadow: 18px 24px 55px rgba(73, 48, 22, .18), 0 1px 0 rgba(255,255,255,.9) inset;
}

body[data-skin="paper-desk"] h1,
body[data-skin="paper-desk"] h2,
body[data-skin="paper-desk"] h3,
body[data-skin="paper-desk"] .note-title-input {
  font-family: Georgia, "Times New Roman", serif;
  color: #283d31;
  letter-spacing: -.015em;
}

body[data-skin="paper-desk"] .vault-tabs {
  background: rgba(225, 208, 181, .72);
  border-color: rgba(105, 80, 49, .22);
  box-shadow: 0 8px 22px rgba(72, 51, 27, .08) inset;
}

body[data-skin="paper-desk"] .tab-btn.active {
  color: var(--paper-ink-deep);
  background: #fffaf0;
  border: 1px solid rgba(49, 91, 67, .46);
  box-shadow: 0 7px 18px rgba(47, 76, 56, .13), inset 0 -2px 0 var(--paper-ink);
}

body[data-skin="paper-desk"] .tab-btn:hover:not(.active) {
  color: var(--paper-ink);
  background: rgba(255, 250, 240, .52);
}

body[data-skin="paper-desk"] .liquid-glass-btn,
body[data-skin="paper-desk"] .btn-primary,
body[data-skin="paper-desk"] .btn-upload,
body[data-skin="paper-desk"] .btn-notes-new {
  background: var(--paper-ink);
  border-color: var(--paper-ink-deep);
  color: #fffdf5;
  box-shadow: 0 10px 22px rgba(35, 70, 50, .18);
}

body[data-skin="paper-desk"] .login-card .liquid-glass-btn {
  background: var(--paper-ink) !important;
  border-color: var(--paper-ink-deep) !important;
  color: #fffdf5 !important;
}

body[data-skin="paper-desk"] .liquid-glass-btn:hover,
body[data-skin="paper-desk"] .btn-primary:hover,
body[data-skin="paper-desk"] .btn-upload:hover,
body[data-skin="paper-desk"] .btn-notes-new:hover {
  background: var(--paper-ink-deep);
  border-color: var(--paper-ink-deep);
}

body[data-skin="paper-desk"] .login-card .liquid-glass-btn:hover {
  background: var(--paper-ink-deep) !important;
}

body[data-skin="paper-desk"] .storage-bar-fill,
body[data-skin="paper-desk"] .upload-progress-bar-fill,
body[data-skin="paper-desk"] .upload-row-progress-fill {
  background: var(--paper-ink) !important;
}

body[data-skin="paper-desk"] .stat-card,
body[data-skin="paper-desk"] .note-item,
body[data-skin="paper-desk"] .file-item,
body[data-skin="paper-desk"] .password-entry-card {
  background: linear-gradient(145deg, #fffaf0, #f8eddd);
  border-color: rgba(133, 105, 69, .27);
  box-shadow: 5px 8px 18px rgba(78, 54, 28, .075), 0 1px 0 rgba(255,255,255,.9) inset;
}

body[data-skin="paper-desk"] .note-item.selected,
body[data-skin="paper-desk"] .file-item.selected,
body[data-skin="paper-desk"] .device-card.selected {
  background: linear-gradient(145deg, #edf4e9, #dce9d8);
  border-color: rgba(49, 91, 67, .48);
  box-shadow: 5px 9px 20px rgba(43, 75, 53, .13);
}

body[data-skin="paper-desk"] .input-field:focus,
body[data-skin="paper-desk"] select:focus,
body[data-skin="paper-desk"] textarea:focus,
body[data-skin="paper-desk"] .note-title-input:focus {
  border-color: var(--paper-ink) !important;
  box-shadow: 0 0 0 3px rgba(49, 91, 67, .13);
}

@media (prefers-reduced-motion: reduce) {
  .paper-window-shadow,
  .paper-plant-shadow,
  .paper-dust i { animation: none !important; }
}

@media (max-width: 767px) {
  body[data-skin="paper-desk"] #paper-desk-scene { display: none; }
}

/* Scroll-led public landing preview */
body {
  --landing-accent: #38bdf8;
  --landing-accent-alt: #a78bfa;
  --landing-portal-bg: #030609;
}

body[data-skin="paper-desk"] {
  --landing-accent: #315b43;
  --landing-accent-alt: #b47a36;
  --landing-portal-bg: #e7d5bb;
}

body[data-skin="rainy-study"] {
  --landing-accent: #d99a45;
  --landing-accent-alt: #76a9c0;
  --landing-portal-bg: #07101c;
}

html {
  scroll-behavior: smooth;
}

body.landing-active {
  --landing-progress: 0;
  display: block;
  min-height: 100vh;
  overflow-x: clip;
}

body.landing-active .container {
  width: 100%;
  max-width: none;
  padding: 0;
  zoom: 1;
}

body.landing-active #login-zone {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
  transform: none !important;
}

@media (max-width: 768px) {
  body.landing-active #login-zone {
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

body.landing-active .theme-picker {
  top: 22px;
  right: 28px;
}

body.landing-active #city-skyline {
  transform: scale(calc(1.08 + var(--landing-progress) * .13)) translateY(calc(var(--landing-progress) * 3vh));
}

.landing-experience {
  position: relative;
  isolation: isolate;
  color: var(--text-primary);
}

.landing-experience::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(3, 6, 10, .42), transparent 34%, transparent 66%, rgba(3, 6, 10, .35)),
    linear-gradient(180deg, rgba(3, 6, 10, .2), transparent 42%, rgba(3, 6, 10, .66));
}

.landing-experience::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  background:
    repeating-linear-gradient(90deg, transparent 0 79px, color-mix(in srgb, var(--landing-accent) 12%, transparent) 80px),
    repeating-linear-gradient(0deg, transparent 0 79px, color-mix(in srgb, var(--landing-accent-alt) 8%, transparent) 80px);
  background-size: 80px 80px;
  background-position: 0 40px;
  transition: opacity 800ms ease, background-position 1200ms cubic-bezier(.16, 1, .3, 1), background-size 1200ms cubic-bezier(.16, 1, .3, 1);
}

body[data-landing-scene="workspace"] .landing-experience::after {
  opacity: .22;
  background-position: 0 0;
}

body[data-landing-scene="drop"] .landing-experience::after {
  opacity: .13;
  background-position: 48px -28px;
}

body[data-landing-scene="gate"] .landing-experience::after {
  opacity: .08;
  background-size: 112px 112px;
  background-position: 24px 24px;
}

.landing-nav {
  position: fixed;
  top: 22px;
  left: 28px;
  z-index: 110;
  display: flex;
  align-items: center;
  gap: 30px;
}

.landing-brand,
.landing-socials a,
.landing-scroll-cue {
  color: var(--text-primary);
  text-decoration: none;
}

.landing-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 700 12px/1 'Outfit', sans-serif;
}

.landing-brand img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--text-primary) 22%, transparent);
}

.landing-socials {
  display: flex;
  gap: 16px;
}

.landing-socials a {
  position: relative;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-secondary);
}

.landing-socials a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -5px;
  height: 1px;
  background: var(--text-primary);
  transition: right 240ms cubic-bezier(.22, 1, .36, 1);
}

.landing-socials a:hover {
  color: var(--text-primary);
}

.landing-socials a:hover::after {
  right: 0;
}

.landing-hero,
.landing-chapter,
.landing-gate {
  position: relative;
  width: min(1180px, calc(100% - 96px));
  min-height: 100vh;
  margin: 0 auto;
}

.landing-hero {
  display: grid;
  align-items: center;
}

.landing-hero-copy {
  padding-top: 5vh;
  transform: translateY(calc(var(--landing-progress) * -24vh));
  opacity: calc(1 - var(--landing-progress) * 3.8);
  will-change: transform, opacity;
}

.landing-kicker,
.landing-index {
  display: block;
  margin-bottom: 22px;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  color: var(--text-secondary);
}

.landing-kicker::before,
.landing-index::before {
  content: "";
  display: inline-block;
  width: 36px;
  height: 1px;
  margin: 0 12px 3px 0;
  background: currentColor;
}

.landing-hero h1 {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 148px;
  line-height: .78;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--text-primary);
  text-shadow: 0 22px 70px rgba(0, 0, 0, .42);
}

.landing-hero p {
  max-width: 420px;
  margin: 34px 0 0 8px;
  font-size: 16px;
  line-height: 1.6;
  color: color-mix(in srgb, var(--text-primary) 70%, var(--text-secondary));
}

.landing-scroll-cue {
  position: absolute;
  left: 8px;
  bottom: 32px;
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.landing-scroll-cue i {
  position: relative;
  display: block;
  width: 50px;
  height: 1px;
  overflow: hidden;
  background: color-mix(in srgb, var(--text-primary) 28%, transparent);
}

.landing-scroll-cue i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--text-primary);
  animation: landingCue 1.8s ease-in-out infinite;
}

@keyframes landingCue {
  0% { transform: translateX(-105%); }
  55%, 100% { transform: translateX(105%); }
}

.landing-chapter {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  align-items: center;
  gap: 10vw;
  padding: 13vh 0;
}

.landing-chapter-reverse .landing-chapter-copy {
  order: 2;
}

.landing-chapter h2,
.landing-gate h2 {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 76px;
  line-height: .95;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--text-primary);
}

.landing-chapter-copy > p,
.landing-gate-copy > p {
  max-width: 390px;
  margin-top: 28px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-secondary);
}

.landing-reveal .landing-chapter-copy,
.landing-reveal .landing-crypto-visual,
.landing-reveal .landing-vault-preview,
.landing-reveal .landing-drop-visual,
.landing-reveal .landing-gate-copy {
  opacity: 0;
  transform: translateY(46px);
  filter: blur(8px);
  transition: opacity 800ms ease, transform 1000ms cubic-bezier(.16, 1, .3, 1), filter 700ms ease;
}

.landing-reveal.is-visible .landing-chapter-copy,
.landing-reveal.is-visible .landing-crypto-visual,
.landing-reveal.is-visible .landing-vault-preview,
.landing-reveal.is-visible .landing-drop-visual,
.landing-reveal.is-visible .landing-gate-copy {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.landing-reveal.is-visible :is(.landing-crypto-visual, .landing-vault-preview, .landing-drop-visual) {
  transition-delay: 140ms;
}

.landing-crypto-visual {
  position: relative;
  justify-self: center;
  width: 420px;
  height: 420px;
}

.crypto-orbit,
.crypto-core {
  position: absolute;
  border-radius: 50%;
}

.crypto-orbit {
  border: 1px solid color-mix(in srgb, var(--text-primary) 13%, transparent);
}

.crypto-orbit-outer {
  inset: 0;
  animation: landingOrbit 28s linear infinite;
}

.crypto-orbit-inner {
  inset: 70px;
  animation: landingOrbit 17s linear infinite reverse;
}

.crypto-orbit i {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--landing-accent);
  box-shadow: 0 0 20px color-mix(in srgb, var(--landing-accent) 82%, transparent);
}

.crypto-orbit i:nth-child(2) {
  background: var(--landing-accent-alt);
  box-shadow: 0 0 20px color-mix(in srgb, var(--landing-accent-alt) 82%, transparent);
}

.crypto-orbit i:nth-child(1) { top: 15%; left: 14%; }
.crypto-orbit i:nth-child(2) { right: -4px; top: 50%; }
.crypto-orbit i:nth-child(3) { bottom: 8%; left: 28%; }

.crypto-core {
  inset: 135px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--panel-bg) 90%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-primary) 20%, transparent);
  box-shadow: 0 0 70px color-mix(in srgb, var(--landing-accent) 18%, transparent), 0 24px 70px rgba(0, 0, 0, .42);
}

.crypto-core img {
  width: 54px;
  height: 54px;
  border-radius: 50%;
}

.crypto-core span {
  position: absolute;
  bottom: 28px;
  font: 700 9px/1 'Inter', sans-serif;
  color: var(--text-secondary);
}

@keyframes landingOrbit {
  to { transform: rotate(360deg); }
}

.landing-vault-preview {
  width: min(520px, 100%);
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--text-primary) 13%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--panel-bg) 82%, transparent);
  box-shadow: 0 34px 90px rgba(0, 0, 0, .4);
  backdrop-filter: blur(18px);
  transform: perspective(1000px) rotateY(4deg);
}

.landing-reveal.is-visible .landing-vault-preview {
  transform: perspective(1000px) rotateY(4deg);
}

.preview-topbar {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  border-bottom: 1px solid var(--border-color);
}

.preview-topbar span { flex: 1; height: 5px; max-width: 72px; background: var(--text-primary); opacity: .72; }
.preview-topbar i { width: 5px; height: 5px; border-radius: 50%; background: var(--text-secondary); }

.preview-tabs {
  display: flex;
  gap: 26px;
  padding: 20px 8px 14px;
  font-size: 9px;
  color: var(--text-secondary);
}

.preview-tabs b { color: var(--landing-accent); }

.preview-file {
  display: grid;
  grid-template-columns: 34px 1fr auto;
  align-items: center;
  gap: 12px;
  min-height: 66px;
  padding: 0 10px;
  border-top: 1px solid var(--border-color);
}

.preview-file > i { width: 24px; height: 28px; border: 1px solid var(--border-hover); border-radius: 3px; }
.preview-file span { display: flex; flex-direction: column; gap: 5px; }
.preview-file b { font-size: 11px; font-weight: 500; color: var(--text-primary); }
.preview-file small, .preview-file em { font-size: 8px; font-style: normal; color: var(--text-secondary); }

.landing-reveal.is-visible .preview-file {
  animation: landingFileIn 600ms cubic-bezier(.16, 1, .3, 1) both;
}

.landing-reveal.is-visible .preview-file:nth-child(4) { animation-delay: 100ms; }
.landing-reveal.is-visible .preview-file:nth-child(5) { animation-delay: 180ms; }

@keyframes landingFileIn {
  from { opacity: 0; transform: translateX(-16px); }
  to { opacity: 1; transform: translateX(0); }
}

.landing-drop-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 420px;
}

.drop-device {
  position: relative;
  border: 1px solid color-mix(in srgb, var(--text-primary) 24%, transparent);
  background: color-mix(in srgb, var(--panel-bg) 78%, transparent);
  box-shadow: 0 28px 70px rgba(0, 0, 0, .38);
}

.drop-device span {
  position: absolute;
  inset: 10px;
  border-radius: inherit;
  background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--landing-accent) 28%, transparent), transparent 38%), var(--panel-bg);
}

.drop-phone { width: 112px; height: 224px; border-radius: 18px; transform: rotate(-5deg); }
.drop-screen { width: 260px; height: 170px; border-radius: 7px; transform: rotate(3deg); }

.drop-signal {
  position: relative;
  width: 130px;
  height: 100px;
}

.drop-signal i {
  position: absolute;
  top: 50%;
  left: 10%;
  width: 80%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--landing-accent), transparent);
  animation: dropSignal 1.8s ease-in-out infinite;
}

.drop-signal i:nth-child(2) { transform: translateY(-18px); animation-delay: -600ms; }
.drop-signal i:nth-child(3) { transform: translateY(18px); animation-delay: -1200ms; }

@keyframes dropSignal {
  0%, 100% { opacity: .18; scale: .75 1; }
  50% { opacity: 1; scale: 1 1; }
}

.landing-gate {
  display: grid;
  place-items: center;
  min-height: 110vh;
  overflow: hidden;
  text-align: center;
}

.landing-gate-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.landing-gate-copy > p {
  margin-left: auto;
  margin-right: auto;
}

.landing-gate-rings,
.landing-gate-rings i {
  position: absolute;
  border-radius: 50%;
}

.landing-gate-rings {
  width: 680px;
  height: 680px;
  border: 1px solid color-mix(in srgb, var(--text-primary) 8%, transparent);
  box-shadow: inset 0 0 100px color-mix(in srgb, var(--landing-accent) 7%, transparent), 0 0 120px color-mix(in srgb, var(--landing-accent) 6%, transparent);
}

.landing-gate-rings i { inset: 12%; border: 1px solid color-mix(in srgb, var(--text-primary) 10%, transparent); }
.landing-gate-rings i:nth-child(2) { inset: 27%; border-color: color-mix(in srgb, var(--landing-accent) 28%, transparent); }
.landing-gate-rings i:nth-child(3) { inset: 41%; background: color-mix(in srgb, var(--landing-accent) 9%, transparent); box-shadow: 0 0 60px color-mix(in srgb, var(--landing-accent) 24%, transparent); }

.landing-gate.is-visible .landing-gate-rings {
  animation: gateBreathe 4s ease-in-out infinite alternate;
}

@keyframes gateBreathe {
  to { transform: scale(1.06); box-shadow: inset 0 0 140px color-mix(in srgb, var(--landing-accent) 12%, transparent), 0 0 150px color-mix(in srgb, var(--landing-accent) 10%, transparent); }
}

.landing-enter-wrap {
  width: 220px;
  margin-top: 34px;
}

.landing-enter-wrap .liquid-glass-btn {
  width: 100%;
}

body[data-skin="paper-desk"].landing-active .landing-experience::before {
  background: linear-gradient(180deg, rgba(255, 250, 240, .05), rgba(87, 61, 30, .12));
}

body[data-skin="paper-desk"] .landing-vault-preview,
body[data-skin="paper-desk"] .drop-device,
body[data-skin="paper-desk"] .crypto-core {
  background: rgba(255, 250, 240, .78);
}

body[data-skin="paper-desk"] .landing-experience::after {
  background:
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(49, 91, 67, .1) 80px),
    repeating-linear-gradient(0deg, transparent 0 79px, rgba(180, 122, 54, .07) 80px);
}

body[data-skin="paper-desk"] .crypto-orbit {
  border-color: rgba(49, 91, 67, .26);
  border-style: dashed;
}

body[data-skin="paper-desk"] .crypto-orbit i {
  box-shadow: 0 0 0 5px rgba(49, 91, 67, .1), 0 5px 16px rgba(78, 54, 28, .18);
}

body[data-skin="paper-desk"] .landing-reveal.is-visible .landing-vault-preview {
  transform: perspective(1000px) rotateY(-4deg) rotateZ(-1deg);
  border-color: rgba(49, 91, 67, .25);
  box-shadow: 16px 26px 65px rgba(78, 54, 28, .16), -1px -1px 0 rgba(255, 255, 255, .7);
}

body[data-skin="paper-desk"] .drop-device span {
  background:
    repeating-linear-gradient(0deg, transparent 0 23px, rgba(49, 91, 67, .08) 24px),
    rgba(255, 250, 240, .82);
}

body[data-skin="paper-desk"] .landing-gate-rings {
  border-color: rgba(49, 91, 67, .2);
  box-shadow: inset 0 0 100px rgba(49, 91, 67, .06), 10px 18px 55px rgba(78, 54, 28, .13);
}

body[data-skin="paper-desk"] .landing-gate-rings i:first-child {
  border-style: dashed;
  border-color: rgba(180, 122, 54, .25);
}

body[data-skin="rainy-study"].landing-active .landing-experience::before {
  background: linear-gradient(90deg, rgba(2, 7, 13, .5), transparent 40%, rgba(2, 7, 13, .34)), linear-gradient(180deg, transparent 45%, rgba(2, 7, 13, .72));
}

body[data-skin="rainy-study"] .landing-experience::after {
  background:
    repeating-linear-gradient(104deg, transparent 0 92px, rgba(217, 154, 69, .1) 93px),
    repeating-linear-gradient(14deg, transparent 0 118px, rgba(118, 169, 192, .07) 119px);
}

body[data-skin="rainy-study"] .landing-crypto-visual {
  filter: drop-shadow(0 20px 38px rgba(217, 154, 69, .12));
}

body[data-skin="rainy-study"] .landing-reveal.is-visible .landing-vault-preview {
  border-color: rgba(217, 154, 69, .2);
  background: linear-gradient(145deg, rgba(27, 43, 55, .86), rgba(7, 16, 28, .78));
  box-shadow: 0 34px 90px rgba(2, 7, 13, .72), 0 0 45px rgba(217, 154, 69, .08);
}

body[data-skin="rainy-study"] .drop-device {
  border-color: rgba(217, 154, 69, .28);
}

body[data-skin="rainy-study"] .drop-device span {
  background:
    linear-gradient(112deg, transparent 18%, rgba(231, 223, 210, .08) 34%, transparent 48%),
    radial-gradient(circle at 50% 45%, rgba(217, 154, 69, .22), transparent 38%),
    #07101c;
}

body[data-skin="rainy-study"] .landing-gate-rings {
  border-color: rgba(118, 169, 192, .18);
  filter: drop-shadow(0 0 35px rgba(217, 154, 69, .12));
}

/* Theme-aware vault portal */
.landing-portal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 600;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  clip-path: circle(0 at var(--landing-portal-x, 50vw) var(--landing-portal-y, 50vh));
  background: radial-gradient(circle, color-mix(in srgb, var(--landing-accent) 16%, var(--landing-portal-bg)) 0 18%, var(--landing-portal-bg) 58%);
}

.landing-portal::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .4;
  background: repeating-conic-gradient(from 0deg, transparent 0deg 13deg, color-mix(in srgb, var(--landing-accent) 9%, transparent) 14deg, transparent 15deg 28deg);
  animation: landingPortalSpin 18s linear infinite;
}

.landing-portal-rings,
.landing-portal-core {
  position: absolute;
  left: var(--landing-portal-x, 50vw);
  top: var(--landing-portal-y, 50vh);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.landing-portal-rings i {
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.landing-portal-rings {
  width: min(62vmin, 600px);
  height: min(62vmin, 600px);
  border: 1px solid color-mix(in srgb, var(--landing-accent) 46%, transparent);
  box-shadow: 0 0 80px color-mix(in srgb, var(--landing-accent) 17%, transparent);
}

.landing-portal-rings i {
  border: 1px solid color-mix(in srgb, var(--landing-accent-alt) 30%, transparent);
}

.landing-portal-rings i:nth-child(1) { width: 76%; height: 76%; }
.landing-portal-rings i:nth-child(2) { width: 49%; height: 49%; }
.landing-portal-rings i:nth-child(3) { width: 23%; height: 23%; background: color-mix(in srgb, var(--landing-accent) 10%, transparent); }

.landing-portal-core {
  display: grid;
  place-items: center;
  width: 86px;
  height: 86px;
  border: 1px solid color-mix(in srgb, var(--landing-accent) 52%, transparent);
  background: var(--landing-portal-bg);
  box-shadow: 0 0 55px color-mix(in srgb, var(--landing-accent) 35%, transparent);
}

.landing-portal-core img {
  width: 58px;
  height: 58px;
  border-radius: 50%;
}

body.landing-entering {
  overflow: clip;
}

body.landing-entering #login-zone {
  transform: none !important;
}

body.landing-entering .landing-portal {
  display: block;
  visibility: visible;
  animation: landingPortalOpen 1450ms cubic-bezier(.7, 0, .22, 1) both;
}

body.landing-entering .landing-portal-rings {
  animation: landingPortalRings 1450ms cubic-bezier(.16, 1, .3, 1) both;
}

body.landing-entering .theme-picker,
body.landing-entering .landing-nav {
  opacity: 0;
  transition: opacity 180ms ease;
}

body.landing-login-arriving #login-pane {
  animation: landingLoginArrive 700ms cubic-bezier(.16, 1, .3, 1) 80ms both;
}

body[data-skin="paper-desk"] .landing-portal {
  background:
    repeating-linear-gradient(92deg, transparent 0 10px, rgba(91, 58, 27, .025) 11px),
    radial-gradient(circle, rgba(255, 250, 240, .96) 0 16%, #e7d5bb 58%);
}

body[data-skin="paper-desk"] .landing-portal::before {
  background: repeating-conic-gradient(from 0deg, transparent 0deg 17deg, rgba(49, 91, 67, .08) 18deg, transparent 19deg 34deg);
}

body[data-skin="rainy-study"] .landing-portal {
  background:
    repeating-linear-gradient(104deg, transparent 0 25px, rgba(118, 169, 192, .035) 26px, transparent 27px 48px),
    radial-gradient(circle, rgba(217, 154, 69, .2) 0 15%, #0b1824 42%, #050b14 68%);
}

@keyframes landingPortalOpen {
  0% { visibility: visible; opacity: 1; clip-path: circle(0 at var(--landing-portal-x) var(--landing-portal-y)); }
  46%, 72% { opacity: 1; clip-path: circle(150vmax at var(--landing-portal-x) var(--landing-portal-y)); }
  100% { visibility: hidden; opacity: 0; clip-path: circle(150vmax at var(--landing-portal-x) var(--landing-portal-y)); }
}

@keyframes landingPortalRings {
  0% { opacity: 0; transform: translate(-50%, -50%) rotate(-38deg) scale(.55); }
  38% { opacity: 1; }
  100% { opacity: .55; transform: translate(-50%, -50%) rotate(22deg) scale(1.12); }
}

@keyframes landingPortalSpin {
  to { transform: rotate(360deg); }
}

@keyframes landingLoginArrive {
  from { opacity: 0; transform: scale(.88); filter: blur(12px); }
  to { opacity: 1; transform: scale(1); filter: blur(0); }
}

.drop-packet {
  display: none;
}

@media (min-width: 901px) {
  .landing-chapter {
    --chapter-progress: 0;
    min-height: 165vh;
    align-items: start;
    padding: 18vh 0 28vh;
  }

  .landing-chapter-copy,
  .landing-crypto-visual,
  .landing-vault-preview,
  .landing-drop-visual {
    position: sticky;
    align-self: start;
  }

  .landing-chapter-copy { top: 29vh; }
  .landing-crypto-visual { top: 18vh; }
  .landing-vault-preview { top: 25vh; }
  .landing-drop-visual { top: 19vh; }

  [data-landing-scene="private"] .crypto-orbit-outer {
    scale: calc(1 - var(--chapter-progress) * .14);
    filter: brightness(calc(.8 + var(--chapter-progress) * .35));
  }

  [data-landing-scene="private"] .crypto-orbit-inner {
    scale: calc(1 - var(--chapter-progress) * .28);
  }

  [data-landing-scene="private"] .crypto-core {
    scale: calc(.9 + var(--chapter-progress) * .18);
    border-color: color-mix(in srgb, var(--landing-accent) calc(18% + var(--chapter-progress) * 42%), transparent);
  }

  [data-landing-scene="workspace"] .landing-vault-preview {
    scale: calc(.94 + var(--chapter-progress) * .06);
    translate: 0 calc(18px - var(--chapter-progress) * 18px);
  }

  [data-landing-scene="workspace"].is-visible .preview-file {
    animation: none;
  }

  [data-landing-scene="workspace"] .preview-file:nth-child(3) {
    opacity: clamp(.12, calc(var(--chapter-progress) * 5), 1);
    translate: calc(var(--chapter-progress) * 28px - 28px) 0;
  }

  [data-landing-scene="workspace"] .preview-file:nth-child(4) {
    opacity: clamp(.12, calc(var(--chapter-progress) * 5 - 1), 1);
    translate: calc(28px - var(--chapter-progress) * 28px) 0;
  }

  [data-landing-scene="workspace"] .preview-file:nth-child(5) {
    opacity: clamp(.12, calc(var(--chapter-progress) * 5 - 2), 1);
    translate: calc(var(--chapter-progress) * 28px - 28px) 0;
  }

  [data-landing-scene="workspace"] .preview-tabs b {
    position: relative;
  }

  [data-landing-scene="workspace"] .preview-tabs b::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -7px;
    width: calc(var(--chapter-progress) * 100%);
    height: 1px;
    background: var(--landing-accent);
    box-shadow: 0 0 10px color-mix(in srgb, var(--landing-accent) 55%, transparent);
  }

  [data-landing-scene="drop"] .drop-phone {
    transform: rotate(calc(-5deg + var(--chapter-progress) * 4deg));
    scale: calc(1 - var(--chapter-progress) * .04);
    opacity: calc(1 - var(--chapter-progress) * .22);
  }

  [data-landing-scene="drop"] .drop-screen {
    transform: rotate(calc(3deg - var(--chapter-progress) * 3deg));
    scale: calc(.94 + var(--chapter-progress) * .06);
    filter: brightness(calc(.82 + var(--chapter-progress) * .32));
  }

  [data-landing-scene="drop"] .drop-packet {
    display: block;
    position: absolute;
    left: calc(7% + var(--chapter-progress) * 86%);
    top: 50%;
    z-index: 2;
    width: 14px;
    height: 14px;
    border: 1px solid color-mix(in srgb, var(--landing-accent) 80%, white);
    border-radius: 3px;
    opacity: clamp(0, calc(var(--chapter-progress) * 8), 1);
    background: var(--landing-accent);
    box-shadow: -18px 0 24px color-mix(in srgb, var(--landing-accent) 48%, transparent), 0 0 22px color-mix(in srgb, var(--landing-accent) 72%, transparent);
    transform: translate(-50%, -50%) rotate(calc(var(--chapter-progress) * 180deg));
  }
}

@media (max-width: 900px) {
  body.landing-active .theme-picker { top: 16px; right: 16px; }
  .landing-nav { top: 16px; left: 18px; }
  .landing-socials { display: none; }
  .landing-hero, .landing-chapter, .landing-gate { width: min(100% - 40px, 680px); }
  .landing-hero h1 { font-size: 92px; }
  .landing-chapter { grid-template-columns: 1fr; gap: 30px; padding: 110px 0; }
  .landing-chapter-reverse .landing-chapter-copy { order: 0; }
  .landing-chapter h2, .landing-gate h2 { font-size: 58px; }
  .landing-crypto-visual { width: 330px; height: 330px; }
  .crypto-orbit-inner { inset: 56px; }
  .crypto-core { inset: 108px; }
  .landing-drop-visual { min-height: 300px; }
  .drop-phone { width: 82px; height: 172px; }
  .drop-screen { width: 190px; height: 125px; }
  .drop-signal { width: 75px; }
}

@media (max-width: 520px) {
  .landing-portal::before { animation: none; }
  .landing-hero, .landing-chapter, .landing-gate { width: calc(100% - 32px); }
  .landing-hero h1 { font-size: 64px; }
  .landing-hero p { max-width: 280px; font-size: 14px; }
  .landing-chapter { min-height: 100svh; padding: 90px 0 70px; }
  .landing-chapter h2, .landing-gate h2 { font-size: 44px; }
  .landing-chapter-copy > p, .landing-gate-copy > p { font-size: 13px; }
  .landing-crypto-visual { width: 280px; height: 280px; }
  .crypto-orbit-inner { inset: 46px; }
  .crypto-core { inset: 90px; }
  .landing-drop-visual { transform: scale(.82); }
  .drop-signal { width: 46px; }
  .landing-gate-rings {
    width: min(360px, calc(100vw - 24px));
    height: auto;
    aspect-ratio: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.landing-active #city-skyline,
  .landing-hero-copy { transform: none; opacity: 1; }
  .landing-reveal *,
  .landing-scroll-cue i::after,
  .landing-gate-rings { animation: none !important; transition-duration: 1ms !important; }
  .landing-chapter { min-height: 100vh; align-items: center; padding: 13vh 0; }
  .landing-chapter-copy,
  .landing-crypto-visual,
  .landing-vault-preview,
  .landing-drop-visual { position: relative; top: auto; }
  .crypto-orbit,
  .crypto-core,
  .landing-vault-preview,
  .drop-device { scale: 1 !important; translate: 0 !important; filter: none !important; opacity: 1 !important; }
  .preview-file { opacity: 1 !important; translate: 0 !important; }
  .drop-packet { display: none !important; }
}

.preview-footer-actions,
.crop-aspects,
.crop-transform-actions,
.crop-save-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

#preview-crop-btn {
  min-height: 36px;
  padding: 6px 14px;
  font-size: 12px;
}

#preview-metadata-btn {
  min-height: 36px;
  padding: 6px 14px;
  font-size: 12px;
}

.metadata-modal {
  z-index: 1210;
}

.metadata-modal-content {
  width: min(92vw, 520px);
  padding: 26px;
  gap: 16px;
}

.metadata-modal-content h3,
.metadata-modal-content p {
  margin: 0;
}

.metadata-modal-content p {
  color: var(--text-secondary);
  font-size: 12px;
  line-height: 1.5;
}

.metadata-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: var(--text-secondary);
  font-size: 12px;
}

.metadata-field input,
.metadata-field textarea {
  box-sizing: border-box;
  width: 100%;
  color: var(--text-primary);
  background: rgba(0, 0, 0, .26);
  border: 1px solid var(--border-color);
  border-radius: 9px;
  padding: 11px 12px;
  font: inherit;
  resize: vertical;
}

.metadata-favorite {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--text-primary);
  font-size: 13px;
}

.metadata-favorite input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent-color);
}

.metadata-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
}

.metadata-save-btn {
  color: #fff;
  border-color: rgba(56, 189, 248, .45);
  background: rgba(56, 189, 248, .18);
}

.crop-modal {
  z-index: 1200;
}

.crop-modal-content {
  width: min(94vw, 980px);
  height: min(92dvh, 820px);
  max-width: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 20px;
}

.crop-header {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-right: 44px;
}

.crop-header span {
  color: var(--text-secondary);
  font-size: 12px;
}

.crop-stage {
  position: relative;
  flex: 1;
  min-height: 240px;
  overflow: hidden;
  border-radius: 12px;
  background: #050505;
  touch-action: none;
  cursor: grab;
}

.crop-stage.is-dragging {
  cursor: grabbing;
}

.crop-stage img {
  position: absolute;
  left: 50%;
  top: 50%;
  max-width: none;
  max-height: none;
  user-select: none;
  -webkit-user-drag: none;
  transform-origin: center;
  will-change: transform;
}

.crop-frame {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(255, 255, 255, .92);
  border-radius: 3px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, .58);
  pointer-events: none;
}

.crop-frame::before,
.crop-frame::after {
  content: '';
  position: absolute;
  pointer-events: none;
}

.crop-handle {
  position: absolute;
  width: 22px;
  height: 22px;
  z-index: 2;
  touch-action: none;
  display: none;
  pointer-events: auto;
}

.crop-frame.is-free .crop-handle {
  display: block;
}

.crop-handle::before {
  content: '';
  position: absolute;
  width: 13px;
  height: 13px;
  border-color: #fff;
}

.crop-handle-nw { left: -11px; top: -11px; cursor: nwse-resize; }
.crop-handle-ne { right: -11px; top: -11px; cursor: nesw-resize; }
.crop-handle-sw { left: -11px; bottom: -11px; cursor: nesw-resize; }
.crop-handle-se { right: -11px; bottom: -11px; cursor: nwse-resize; }
.crop-handle-nw::before { right: 0; bottom: 0; border-left: 3px solid; border-top: 3px solid; }
.crop-handle-ne::before { left: 0; bottom: 0; border-right: 3px solid; border-top: 3px solid; }
.crop-handle-sw::before { right: 0; top: 0; border-left: 3px solid; border-bottom: 3px solid; }
.crop-handle-se::before { left: 0; top: 0; border-right: 3px solid; border-bottom: 3px solid; }

.crop-frame::before {
  inset: 33.333% 0;
  border-top: 1px solid rgba(255, 255, 255, .35);
  border-bottom: 1px solid rgba(255, 255, 255, .35);
}

.crop-frame::after {
  inset: 0 33.333%;
  border-left: 1px solid rgba(255, 255, 255, .35);
  border-right: 1px solid rgba(255, 255, 255, .35);
}

.crop-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
}

.crop-aspects .is-active {
  color: var(--accent-color);
  border-color: var(--accent-color);
  background: rgba(56, 189, 248, .14);
}

.crop-zoom-label {
  display: flex;
  flex: 1 1 180px;
  align-items: center;
  gap: 10px;
  color: var(--text-secondary);
  font-size: 12px;
}

.crop-zoom-label input {
  width: 100%;
}

.crop-save-btn {
  color: #fff;
  border-color: rgba(56, 189, 248, .45);
  background: rgba(56, 189, 248, .18);
}

@media (max-width: 700px) {
  .crop-modal {
    padding: 8px;
  }

  .crop-modal-content {
    width: 100%;
    height: calc(100dvh - 16px);
    padding: 14px;
  }

  .crop-controls {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .crop-aspects,
  .crop-transform-actions,
  .crop-save-actions {
    justify-content: space-between;
    overflow-x: auto;
  }

  .crop-aspects .btn-sec,
  .crop-transform-actions .btn-sec,
  .crop-save-actions .btn-sec {
    min-height: 44px;
    flex: 1;
  }
}

/* Vault hierarchy refresh */
.vault-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.vault-theme-slot {
  display: flex;
  align-items: center;
}

.vault-theme-slot:empty {
  display: none;
}

.vault-theme-slot .theme-picker {
  position: relative;
  inset: auto;
  z-index: 1210;
}

.vault-theme-slot .theme-picker-btn {
  min-height: 38px;
  box-shadow: none;
}

.vault-active #files-tab-content .storage-widget,
.vault-active #files-tab-content .stat-card {
  border-color: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border-color) 58%, transparent);
}

@media (min-width: 1024px) {
  .vault-active .container {
    max-width: 1240px;
    padding-inline: 32px;
  }

  .vault-active .vault-panel {
    padding: 28px 32px;
  }

  .vault-active .vault-tabs .tab-btn {
    min-height: 42px;
    font-size: 12px;
  }

  .vault-active #files-tab-content {
    gap: 12px;
  }

  .vault-active #files-tab-content .storage-widget {
    padding: 10px 12px;
  }

  .vault-active #files-tab-content .storage-info {
    margin-bottom: 6px;
  }

  .vault-active #files-tab-content .stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
  }

  .vault-active #files-tab-content .stat-card {
    min-width: 0;
    min-height: 58px;
    padding: 10px 12px;
    gap: 10px;
  }

  .vault-active #files-tab-content .stat-icon,
  .vault-active #files-tab-content .stat-icon-pulse {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
  }

  .vault-active #files-tab-content .drop-zone {
    min-height: 82px;
    padding: 12px 16px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 2px;
    text-align: left;
  }

  .vault-active #files-tab-content .drop-zone-icon {
    grid-column: 1;
    grid-row: 1 / 3;
    width: 36px;
    height: 36px;
    margin: 0;
  }

  .vault-active #files-tab-content .drop-zone h3 {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    margin: 0;
  }

  .vault-active #files-tab-content .drop-zone p {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    margin: 0;
  }

  .vault-active #files-tab-content .drop-zone > .glass-btn {
    grid-column: 3;
    grid-row: 1 / 3;
    min-height: 44px;
    margin: 0 !important;
    align-self: center;
  }

  .vault-active .files-section {
    margin-top: 4px;
  }

  .vault-active .files-section-header h3 {
    font-size: 16px;
  }
}

@media (max-width: 768px) {
  .vault-active .vault-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 12px;
  }

  .vault-active .vault-brand {
    min-width: 0;
    width: 100%;
    margin-right: 0;
  }

  .vault-active .vault-header-actions {
    width: 100%;
    justify-content: flex-end;
    gap: 6px;
  }

  .vault-active .vault-header-actions .theme-picker-btn,
  .vault-active .vault-header-actions .btn-logout {
    min-height: 44px;
  }

  .vault-active #files-tab-content {
    gap: 12px;
  }

  .vault-active #files-tab-content .storage-widget {
    padding: 11px 12px;
  }

  .vault-active #files-tab-content .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .vault-active #files-tab-content .stat-card {
    min-width: 0;
    min-height: 64px;
    padding: 10px;
    gap: 8px;
  }

  .vault-active #files-tab-content .stat-icon,
  .vault-active #files-tab-content .stat-icon-pulse {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
  }

  .vault-active #files-tab-content .stat-info {
    min-width: 0;
  }

  .vault-active #files-tab-content .stat-info h4 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .vault-active #files-tab-content .drop-zone {
    padding: 16px 14px;
  }

  .vault-active #files-tab-content .drop-zone > .glass-btn {
    min-height: 44px;
  }
}

@media (max-width: 380px) {
  .vault-active .passkey-setup-btn span,
  .vault-active .vault-header-actions .btn-logout span {
    display: none;
  }

  .vault-active .passkey-setup-btn,
  .vault-active .vault-header-actions .btn-logout {
    width: 44px;
    padding-inline: 0;
    justify-content: center;
  }
}
