/* Shiga.Trade — minimal CSS: only what Tailwind cannot express */

/* Noise texture overlay */
body::before {
    content: '';
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48ZmlsdGVyIGlkPSJmIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjc0IiBudW1PY3RhdmVzPSIzIiAvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbHRlcj0idXJsKCNmKSIgb3BhY2l0eT0iMC4wMjUiIC8+PC9zdmc+');
    pointer-events: none;
    opacity: 0.15;
    z-index: 9999;
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.terminal-scroll-area::-webkit-scrollbar { width: 6px; }
.terminal-scroll-area::-webkit-scrollbar-track { background: transparent; }
.terminal-scroll-area::-webkit-scrollbar-thumb { background: rgba(0,255,148,0.2); border-radius: 3px; }

.custom-range { appearance: none; height: 5px; background: #1e2028; border-radius: 3px; outline: none; width: 100%; }
.custom-range::-webkit-slider-thumb { appearance: none; width: 22px; height: 22px; background: #5675FF; border: 3px solid #12141B; border-radius: 50%; cursor: pointer; box-shadow: 0 2px 8px rgba(86,117,255,0.4); }

.strength-meter { height: 4px; background: rgba(255,255,255,0.05); border-radius: 2px; overflow: hidden; }
.strength-bar { height: 100%; width: 0; transition: all 0.3s ease; }

.dot { width: 7px; height: 7px; background: rgba(255,255,255,0.2); border-radius: 50%; transition: all 0.3s; display: inline-block; }
.dot.active { width: 22px; border-radius: 4px; background: #00FF94; }

[x-cloak] { display: none !important; }

.htmx-indicator { display: none; }
.htmx-request .htmx-indicator { display: inline-block; }
.spinner-dot { width: 18px; height: 18px; border: 2px solid rgba(0,0,0,0.3); border-top-color: #000; border-radius: 50%; animation: spin 0.6s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

@keyframes pulse-ring {
    0% { transform: scale(0.9); opacity: 1; }
    100% { transform: scale(1.4); opacity: 0; }
}
.pulse-ring { position: relative; }
.pulse-ring::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid #00FF94;
    animation: pulse-ring 1.8s ease-out infinite;
}
