/* ===== Polish — Black Gold Edition ===== */

:root {
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --dur-f: 150ms;
    --dur-n: 220ms;
    --dur-s: 320ms;
    --ring: 0 0 0 3px rgba(212,175,55,0.10);
}

::selection { background: rgba(212,175,55,0.15); color: #f8fafc; }
::-moz-selection { background: rgba(212,175,55,0.15); color: #f8fafc; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

.card, .login-box, .service-card,
.btn-submit, .btn-blue, .btn-primary, .btn-ghost, .btn-secondary,
.btn-paste, .btn-clear, .btn-download, .btn-danger, .btn-warn, .btn-logout,
.tool-item, .rec-item, .nav-tabs a, .badge, .points-badge, .feature-badge,
input, textarea, select, .toast, .slider-handle, .slider-verify {
    transition-timing-function: var(--ease) !important;
}

.card, .login-box {
    transition: box-shadow var(--dur-n) var(--ease),
                border-color var(--dur-n) var(--ease) !important;
}

.btn-submit:focus-visible, .btn-blue:focus-visible, .btn-primary:focus-visible,
.btn-ghost:focus-visible, .btn-secondary:focus-visible,
.btn-paste:focus-visible, .btn-clear:focus-visible, .btn-download:focus-visible,
.btn-danger:focus-visible, .btn-warn:focus-visible, .btn-logout:focus-visible,
.link-btn:focus-visible, .nav-tabs a:focus-visible, .service-card:focus-visible {
    outline: none !important;
    box-shadow: var(--ring) !important;
}

input:focus-visible, textarea:focus-visible, select:focus-visible, .search:focus-visible {
    outline: none !important;
}

.btn-submit:disabled, .btn-blue:disabled, .btn-primary:disabled,
.btn-ghost:disabled, .btn-secondary:disabled, .btn-download:disabled {
    opacity: 0.40 !important;
    cursor: not-allowed !important;
    filter: grayscale(0.4) !important;
    transform: none !important;
    box-shadow: none !important;
}

.btn-submit:active:not(:disabled), .btn-blue:active:not(:disabled),
.btn-primary:active:not(:disabled), .btn-download:active:not(:disabled) {
    transform: scale(0.97) !important;
}

.btn-ghost:active:not(:disabled), .btn-secondary:active:not(:disabled),
.btn-paste:active, .btn-clear:active, .btn-logout:active,
.btn-danger:active, .btn-warn:active {
    transform: scale(0.96) !important;
}

.service-card:hover .ico { transform: scale(1.1); }
.service-card:active { transform: scale(0.99); }
.tool-item:active, .rec-item:active { transform: scale(0.995); }
.nav-tabs a:active { transform: scale(0.97); }

.points-badge { transition: all var(--dur-f) var(--ease) !important; }
.points-badge:hover { transform: translateY(-1px); }

input, textarea, select {
    transition: border-color var(--dur-f) var(--ease),
                box-shadow var(--dur-f) var(--ease),
                background var(--dur-f) var(--ease) !important;
}

@keyframes pl-card-in {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes pl-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes pl-slide-up {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes pl-slide-right {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

.container > .card:nth-child(1) { animation: pl-card-in var(--dur-s) var(--ease) both; }
.container > .card:nth-child(2) { animation: pl-card-in var(--dur-s) var(--ease) 0.05s both; }
.container > .card:nth-child(3) { animation: pl-card-in var(--dur-s) var(--ease) 0.10s both; }
.container > .card:nth-child(4) { animation: pl-card-in var(--dur-s) var(--ease) 0.15s both; }
.container > .card:nth-child(5) { animation: pl-card-in var(--dur-s) var(--ease) 0.20s both; }

.login-box { animation: pl-card-in var(--dur-s) var(--ease) both; }
.result-box:not(.hidden) { animation: pl-slide-up var(--dur-n) var(--ease) both; }
.toast { animation: pl-slide-right var(--dur-n) var(--ease) both; }

.stat:nth-child(1) { animation: pl-card-in var(--dur-n) var(--ease) 0.03s both; }
.stat:nth-child(2) { animation: pl-card-in var(--dur-n) var(--ease) 0.08s both; }
.stat:nth-child(3) { animation: pl-card-in var(--dur-n) var(--ease) 0.13s both; }
.stat:nth-child(4) { animation: pl-card-in var(--dur-n) var(--ease) 0.18s both; }

.tool-item:nth-child(1), .rec-item:nth-child(1) { animation: pl-fade var(--dur-n) var(--ease) 0.03s both; }
.tool-item:nth-child(2), .rec-item:nth-child(2) { animation: pl-fade var(--dur-n) var(--ease) 0.06s both; }
.tool-item:nth-child(3), .rec-item:nth-child(3) { animation: pl-fade var(--dur-n) var(--ease) 0.09s both; }
.tool-item:nth-child(4), .rec-item:nth-child(4) { animation: pl-fade var(--dur-n) var(--ease) 0.12s both; }
.tool-item:nth-child(n+5), .rec-item:nth-child(n+5) { animation: pl-fade var(--dur-n) var(--ease) 0.15s both; }

@keyframes pl-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

@keyframes pl-done-glow {
    0%, 100% { box-shadow: 0 0 8px rgba(212,175,55,0.12); }
    50% { box-shadow: 0 0 16px rgba(212,175,55,0.25); }
}

.progress-bar.loading { animation: pl-shimmer 1.4s var(--ease) infinite !important; }
.progress-bar.done { animation: pl-done-glow 2s var(--ease) infinite !important; }
.spinner { animation: spin 0.7s linear infinite !important; }

.status-pill.online { animation: pl-breathe 2.4s var(--ease) infinite; }

@keyframes pl-breathe {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16,185,129,0.20); }
    50% { box-shadow: 0 0 0 3px rgba(16,185,129,0.08); }
}

.toggle { transition: all var(--dur-f) var(--ease-spring) !important; }
.toggle:active { transform: scale(0.92); }

.slider-handle {
    transition: transform var(--dur-f) var(--ease-spring),
                box-shadow var(--dur-f) var(--ease) !important;
}
.slider-handle:hover {
    transform: scale(1.06);
    box-shadow: 0 2px 8px rgba(212,175,55,0.15) !important;
}
.slider-handle:active { transform: scale(0.94); cursor: grabbing; }

* { scrollbar-width: thin; scrollbar-color: rgba(212,175,55,0.15) transparent; }

@media (max-width: 480px) {
    ::-webkit-scrollbar { width: 3px; height: 3px; }
}

@media print {
    body { background: #fff !important; color: #000 !important; }
    body::before, body::after { display: none !important; }
    .card, .login-box {
        background: #fff !important;
        box-shadow: none !important;
        border: 1px solid #ddd !important;
        backdrop-filter: none !important;
        color: #000 !important;
    }
    .footer, .topbar, .nav-tabs { display: none !important; }
}

.card, .service-card,
.btn-submit, .btn-blue, .btn-primary,
.tool-item, .rec-item, .toast, .slider-handle {
    will-change: transform, opacity;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-text-fill-color: #f8fafc !important;
    -webkit-box-shadow: 0 0 0 1000px rgba(0,0,0,0.40) inset !important;
    caret-color: #f8fafc !important;
    transition: background-color 9999s ease-in-out 0s !important;
}

@media (pointer: coarse) {
    * { -webkit-tap-highlight-color: transparent !important; }
}

@media (prefers-contrast: high) {
    .card, .login-box {
        border-width: 2px !important;
        border-color: rgba(212,175,55,0.40) !important;
    }
}
