:root {
  --ui-ink: #171817;
  --ui-muted: #747873;
  --ui-line: #e5e7e4;
  --ui-soft: #f7f8f6;
  --ui-green: #16896f;
  --ui-green-dark: #0f705b;
  --ui-blue: #315fdd;
  --ui-radius-sm: 8px;
  --ui-radius: 12px;
  --ui-shadow-sm: 0 1px 2px rgba(18, 22, 19, .05), 0 6px 18px rgba(18, 22, 19, .04);
  --ui-shadow-lg: 0 24px 70px rgba(18, 22, 19, .17);
}

html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, a, input, select, textarea { transition-timing-function: cubic-bezier(.2,.75,.25,1); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [contenteditable="true"]:focus-visible {
  outline: 2px solid rgba(22, 137, 111, .6);
  outline-offset: 3px;
}
button:disabled { cursor: not-allowed; opacity: .55; }

/* Homepage: only tactile refinements; layout stays intact. */
.nav a, .portfolio-nav a, .footer-links a, .text-link, .gallery-link, .contact-link, .finale-link {
  text-underline-offset: 5px;
  transition: color .2s ease, opacity .2s ease, transform .2s ease;
}
.nav a:hover, .portfolio-nav a:hover, .footer-links a:hover { opacity: .62; }
.gallery-link:hover, .contact-link:hover, .finale-link:hover { transform: translateY(-1px); }

/* Admin dashboard. */
.sidebar { border-right-color: var(--ui-line) !important; }
.sidebar-logo-mark { border-radius: 3px; box-shadow: var(--ui-shadow-sm); }
.nav-item { margin: 2px 10px; border-radius: var(--ui-radius-sm); border-left: 0 !important; transition: color .18s ease, background .18s ease, transform .18s ease; }
.nav-item:hover { transform: translateX(2px); }
.nav-item.active { background: #f0f4f1 !important; box-shadow: inset 0 0 0 1px rgba(22,137,111,.08); }
.topbar { border-bottom-color: var(--ui-line) !important; backdrop-filter: blur(14px); }
.btn-primary, .btn-secondary, .send-primary, .btn, .btn-login {
  min-height: 38px;
  border-radius: var(--ui-radius-sm) !important;
  letter-spacing: .01em;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
}
.btn-primary, .send-primary { background: var(--ui-green) !important; box-shadow: 0 5px 14px rgba(22,137,111,.16); }
.btn-primary:hover, .send-primary:hover { background: var(--ui-green-dark) !important; box-shadow: 0 8px 20px rgba(22,137,111,.21); transform: translateY(-1px); }
.btn-secondary:hover, .btn-l:hover { border-color: #b9beb9 !important; background: var(--ui-soft) !important; transform: translateY(-1px); }
.btn-login { box-shadow: 0 8px 20px rgba(18,22,19,.13); }
.btn-login:hover { transform: translateY(-1px); box-shadow: 0 11px 26px rgba(18,22,19,.18); }
.btn-primary:active, .btn-secondary:active, .btn:active, .btn-login:active { transform: translateY(0) scale(.985); }
.search-field, .filter-select, .send-line input, .send-subject, .rich-editor, .modal input, .modal select, .modal textarea {
  border-color: var(--ui-line) !important;
  border-radius: var(--ui-radius-sm) !important;
  box-shadow: 0 1px 2px rgba(18,22,19,.025);
}
.search-field:focus-within, .send-line:focus-within { border-color: #9ca49e !important; box-shadow: 0 0 0 4px rgba(22,137,111,.08) !important; }
.collection-card { border-radius: var(--ui-radius) !important; border: 1px solid rgba(229,231,228,.9); box-shadow: var(--ui-shadow-sm); overflow: hidden; }
.collection-card:hover { transform: translateY(-3px) !important; box-shadow: 0 16px 36px rgba(18,22,19,.11) !important; }
.collection-card-actions button { backdrop-filter: blur(8px); border-radius: 7px !important; }
.modal-overlay, .mbg { backdrop-filter: blur(5px); background: rgba(17,20,18,.54) !important; }
.modal, .mdl { border: 1px solid rgba(255,255,255,.68); border-radius: 16px !important; box-shadow: var(--ui-shadow-lg); }
.send-modal { border-radius: 18px !important; overflow: hidden; }
.send-head, .send-bottom { border-color: var(--ui-line) !important; }
.rich-toolbar { background: var(--ui-soft); border-color: var(--ui-line) !important; border-radius: 9px 9px 0 0; }
.rich-toolbar button { border-radius: 6px; min-height: 30px; }
.rich-toolbar button:hover { background: #e9ece8; }
.toast, .ts { box-shadow: 0 12px 30px rgba(18,22,19,.2); backdrop-filter: blur(8px); }

/* Collection editor. */
.hdr { border-bottom-color: var(--ui-line) !important; box-shadow: 0 1px 0 rgba(18,22,19,.02); }
.side { border-color: var(--ui-line) !important; }
.sr { border-radius: var(--ui-radius-sm) !important; transition: background .16s ease, color .16s ease, transform .16s ease; }
.sr:hover { transform: translateX(2px); }
.sr.act { background: #edf6f1 !important; color: #10785f !important; }
.cv, .pc { box-shadow: inset 0 0 0 1px rgba(18,22,19,.035); }
.pc { border-radius: 6px !important; transition: transform .18s ease, box-shadow .18s ease; }
.pc:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(18,22,19,.12); }
.btn-b { background: var(--ui-blue) !important; box-shadow: 0 5px 14px rgba(49,95,221,.16); }
.btn-b:hover { background: #244fc4 !important; transform: translateY(-1px); }
.btn-g { background: var(--ui-green) !important; box-shadow: 0 5px 14px rgba(22,137,111,.16); }
.btn-g:hover { background: var(--ui-green-dark) !important; transform: translateY(-1px); }
.privacy-card, .privacy-pill, .activity-stat, .group-row { border-color: var(--ui-line) !important; box-shadow: 0 1px 2px rgba(18,22,19,.025); }
.focus-stage { border-radius: var(--ui-radius) !important; box-shadow: 0 12px 30px rgba(18,22,19,.14); }

/* Client gallery. */
.icon-btn, .btn-view, .btn-dl, .btn-clear, .copy-btn, .btn-pill, .client-tool, .video-quality-toggle, .set-next-btn {
  transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease;
}
.icon-btn:hover, .btn-view:hover, .btn-dl:hover, .copy-btn:hover, .btn-pill:hover, .client-tool:hover { transform: translateY(-1px); }
.icon-btn:active, .btn-view:active, .btn-dl:active, .copy-btn:active, .btn-pill:active { transform: scale(.96); }
.sets-nav { border-color: var(--ui-line) !important; scrollbar-width: thin; }
.sets-nav button { border-radius: var(--ui-radius-sm) !important; }
.gallery-image, .video-card { background: #f2f3f1; }
.lb-tools .icon-btn, .lb-close, .lb-nav { backdrop-filter: blur(10px); box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.modal.download-menu { border-radius: 16px !important; box-shadow: var(--ui-shadow-lg); }
.video-quality-menu { border-radius: 10px !important; box-shadow: 0 16px 38px rgba(0,0,0,.24); overflow: hidden; }

@media (max-width: 760px) {
  .nav-item { margin: 0 3px; }
  .collection-card:hover, .pc:hover { transform: none !important; }
  .modal, .mdl, .send-modal { border-radius: 16px 16px 0 0 !important; }
  .icon-btn, .lb-close, .lb-nav, .client-tool { min-width: 42px; min-height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
