/* =============================================
   AuctionSensor — Main Stylesheet
   Dark theme, responsive, modern
   ============================================= */

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

/* ---- CSS Variables ---- */
:root {
    --bg-primary:      #0a0e1a;
    --bg-secondary:    #0f1525;
    --bg-card:         #141c2e;
    --bg-card-hover:   #1a2438;
    --bg-sidebar:      #0c1220;
    --bg-glass:        rgba(15, 25, 50, 0.85);

    --accent-primary:  #2979ff;
    --accent-glow:     #2979ffaa;
    --accent-secondary:#00e5ff;
    --accent-success:  #00e676;
    --accent-warning:  #ff9100;
    --accent-danger:   #ff1744;

    --text-primary:    #e8eaf6;
    --text-secondary:  #8892b0;
    --text-muted:      #4a5568;
    --text-accent:     #2979ff;

    --border:          rgba(41, 121, 255, 0.15);
    --border-hover:    rgba(41, 121, 255, 0.4);
    --shadow:          0 4px 24px rgba(0, 0, 0, 0.5);
    --shadow-glow:     0 0 20px rgba(41, 121, 255, 0.2);

    --radius-sm:       6px;
    --radius-md:       10px;
    --radius-lg:       16px;

    --sidebar-width:   280px;
    --topbar-height:   60px;
    --font-display:    'Rajdhani', sans-serif;
    --font-body:       'Inter', sans-serif;

    --transition:      all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
    font-family:      var(--font-body);
    background-color: var(--bg-primary);
    color:            var(--text-primary);
    min-height:       100vh;
    line-height:      1.6;
    overflow-x:       hidden;
}

/* Subtle grid background */
body::before {
    content:    '';
    position:   fixed;
    inset:      0;
    background-image:
        linear-gradient(rgba(41,121,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(41,121,255,0.03) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
    z-index:    0;
}

/* ---- Typography ---- */
h1, h2, h3, h4, h5 {
    font-family: var(--font-display);
    letter-spacing: 0.03em;
}

a { color: var(--accent-primary); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--accent-secondary); }

/* ---- Layout ---- */
#app { position: relative; z-index: 1; min-height: 100vh; }

/* ---- Top Navigation Bar ---- */
#topbar {
    position:       fixed;
    top:            0; left: 0; right: 0;
    height:         var(--topbar-height);
    background:     var(--bg-glass);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom:  1px solid var(--border);
    display:        flex;
    align-items:    center;
    justify-content: space-between;
    padding:        0 20px;
    z-index:        1000;
}

#topbar .logo {
    font-family:  var(--font-display);
    font-size:    1.5rem;
    font-weight:  700;
    letter-spacing: 0.08em;
    color:        var(--text-primary);
    display:      flex;
    align-items:  center;
    gap:          10px;
}

#topbar .logo .logo-icon {
    width:        32px;
    height:       32px;
    background:   linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
    border-radius: var(--radius-sm);
    display:      flex;
    align-items:  center;
    justify-content: center;
    font-size:    1rem;
}

#topbar .logo strong {
    color:        var(--accent-primary);
    text-shadow:  0 0 20px var(--accent-glow);
}

.topbar-actions {
    display:   flex;
    gap:       10px;
    align-items: center;
}

/* ---- Search Sidebar (Left) ---- */
#search-sidebar {
    position:   fixed;
    top:        var(--topbar-height);
    left:       0;
    bottom:     0;
    width:      var(--sidebar-width);
    background: var(--bg-sidebar);
    border-right: 1px solid var(--border);
    transform:  translateX(calc(-1 * var(--sidebar-width) + 40px));
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index:    900;
    display:    flex;
    flex-direction: column;
    overflow:   hidden;
}

#search-sidebar.open { transform: translateX(0); }

#sidebar-tab {
    position:   absolute;
    right:      0;
    top:        50%;
    transform:  translateY(-50%);
    width:      40px;
    background: var(--accent-primary);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    cursor:     pointer;
    display:    flex;
    align-items: center;
    justify-content: center;
    padding:    16px 0;
    writing-mode: vertical-rl;
    font-family: var(--font-display);
    font-size:  0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color:      white;
    box-shadow: 4px 0 12px rgba(0,0,0,0.3);
    transition: background 0.2s;
}

#sidebar-tab:hover { background: var(--accent-secondary); }

#sidebar-header {
    padding:    16px;
    border-bottom: 1px solid var(--border);
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.05em;
    color:      var(--text-secondary);
    font-size:  0.85rem;
    text-transform: uppercase;
}

#search-list {
    flex:       1;
    overflow-y: auto;
    padding:    8px;
}

#search-list::-webkit-scrollbar { width: 4px; }
#search-list::-webkit-scrollbar-track { background: transparent; }
#search-list::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

.search-list-item {
    display:        flex;
    align-items:    center;
    gap:            10px;
    padding:        10px 12px;
    border-radius:  var(--radius-sm);
    cursor:         pointer;
    transition:     var(--transition);
    border:         1px solid transparent;
    margin-bottom:  4px;
}

.search-list-item:hover {
    background: var(--bg-card);
    border-color: var(--border);
}

.search-list-item.active {
    background:  rgba(41, 121, 255, 0.1);
    border-color: var(--accent-primary);
}

.search-list-item .item-label {
    flex:         1;
    font-size:    0.875rem;
    font-weight:  500;
    overflow:     hidden;
    text-overflow: ellipsis;
    white-space:  nowrap;
}

.search-list-item .unread-badge {
    background:  var(--accent-danger);
    color:       white;
    font-size:   0.7rem;
    font-weight: 700;
    padding:     2px 6px;
    border-radius: 99px;
    min-width:   20px;
    text-align:  center;
}

.search-list-item .paused-dot {
    width:       8px;
    height:      8px;
    border-radius: 50%;
    background:  var(--text-muted);
    flex-shrink: 0;
}

.search-list-item.running .paused-dot {
    background: var(--accent-success);
    box-shadow: 0 0 6px var(--accent-success);
    animation:  pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.4; }
}

#sidebar-footer {
    padding:   12px;
    border-top: 1px solid var(--border);
    display:   flex;
    gap:       8px;
    flex-wrap: wrap;
}

/* ---- Main Content ---- */
#main-content {
    margin-top:  var(--topbar-height);
    margin-left: 40px;
    padding:     24px;
    min-height:  calc(100vh - var(--topbar-height));
    transition:  margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#main-content.sidebar-open { margin-left: var(--sidebar-width); }

/* ---- Hero / Landing ---- */
#landing {
    display:      flex;
    flex-direction: column;
    align-items:  center;
    justify-content: center;
    text-align:   center;
    min-height:   calc(100vh - var(--topbar-height) - 48px);
    padding:      40px 20px;
}

.hero-title {
    font-family:  var(--font-display);
    font-size:    clamp(3rem, 8vw, 6rem);
    font-weight:  700;
    line-height:  1.1;
    margin-bottom: 16px;
    background:   linear-gradient(135deg, #e8eaf6 0%, var(--accent-primary) 50%, var(--accent-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-subtitle {
    font-size:    1.1rem;
    color:        var(--text-secondary);
    max-width:    500px;
    margin:       0 auto 40px;
    line-height:  1.7;
}

.hero-features {
    display:      flex;
    gap:          16px;
    flex-wrap:    wrap;
    justify-content: center;
    margin-bottom: 48px;
}

.hero-feature {
    display:      flex;
    align-items:  center;
    gap:          8px;
    font-size:    0.875rem;
    color:        var(--text-secondary);
    padding:      8px 16px;
    background:   var(--bg-card);
    border:       1px solid var(--border);
    border-radius: 99px;
}

.hero-feature .dot {
    width:        6px; height: 6px;
    border-radius: 50%;
    background:   var(--accent-success);
    flex-shrink:  0;
}

/* ---- Search Form Panel ---- */
#search-form-panel {
    position:     fixed;
    top:          var(--topbar-height);
    left:         0; right: 0;
    background:   var(--bg-glass);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--border);
    padding:      20px 24px;
    z-index:      800;
    transform:    translateY(-100%);
    transition:   transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow:   0 8px 32px rgba(0,0,0,0.4);
}

#search-form-panel.open { transform: translateY(0); }
#search-form-panel.sidebar-open { left: var(--sidebar-width); }

.form-tabs {
    display:      flex;
    gap:          4px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border);
    padding-bottom: 12px;
    flex-wrap:    wrap;
}

.form-tab {
    padding:      6px 14px;
    border-radius: var(--radius-sm);
    font-size:    0.8rem;
    font-weight:  500;
    font-family:  var(--font-display);
    letter-spacing: 0.05em;
    cursor:       pointer;
    border:       1px solid transparent;
    color:        var(--text-secondary);
    background:   transparent;
    transition:   var(--transition);
}

.form-tab:hover   { color: var(--text-primary); border-color: var(--border); }
.form-tab.active  { color: white; background: var(--accent-primary); border-color: var(--accent-primary); }

.form-fields {
    display:      flex;
    gap:          12px;
    flex-wrap:    wrap;
    align-items:  flex-end;
}

.form-group {
    display:      flex;
    flex-direction: column;
    gap:          4px;
}

.form-group label {
    font-size:    0.7rem;
    font-weight:  600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color:        var(--text-muted);
    font-family:  var(--font-display);
}

.form-group input,
.form-group select {
    background:   var(--bg-card);
    border:       1px solid var(--border);
    border-radius: var(--radius-sm);
    color:        var(--text-primary);
    padding:      8px 12px;
    font-size:    0.875rem;
    font-family:  var(--font-body);
    transition:   var(--transition);
    outline:      none;
}

.form-group input:focus,
.form-group select:focus {
    border-color: var(--accent-primary);
    box-shadow:   0 0 0 3px rgba(41, 121, 255, 0.15);
}

.form-group input::placeholder { color: var(--text-muted); }

.form-group select option { background: var(--bg-secondary); }

#nkw-input { min-width: 220px; }
#minPrice-input, #maxPrice-input { width: 90px; }

.form-actions {
    display:     flex;
    gap:         8px;
    margin-top:  12px;
    align-items: center;
    flex-wrap:   wrap;
}

/* ---- Search Controls Bar ---- */
#search-controls {
    display:      flex;
    align-items:  center;
    gap:          12px;
    padding:      12px 16px;
    background:   var(--bg-card);
    border:       1px solid var(--border);
    border-radius: var(--radius-md);
    margin-bottom: 20px;
    flex-wrap:    wrap;
}

.search-summary {
    flex:       1;
    font-family: var(--font-display);
    font-size:  1rem;
    color:      var(--text-secondary);
    min-width:  200px;
}

.search-summary strong { color: var(--text-primary); }

#countdown-display {
    display:     flex;
    align-items: center;
    gap:         8px;
    font-family: var(--font-display);
    font-size:   0.9rem;
    color:       var(--accent-secondary);
}

.countdown-icon {
    width:       8px; height: 8px;
    border-radius: 50%;
    background:  var(--accent-success);
    animation:   pulse 2s infinite;
}

/* ---- Item Cards ---- */
#items-container {
    display:     grid;
    gap:         16px;
}

#items-container.list-view  { grid-template-columns: 1fr; }
#items-container.tile-view  { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

.item-card {
    background:   var(--bg-card);
    border:       1px solid var(--border);
    border-radius: var(--radius-md);
    overflow:     hidden;
    transition:   var(--transition);
    position:     relative;
    animation:    slideIn 0.4s ease both;
}

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

.item-card:hover {
    border-color: var(--border-hover);
    box-shadow:   var(--shadow-glow);
    transform:    translateY(-2px);
}

.item-card.newly-found { border-color: var(--accent-success); }
.item-card.newly-found::before {
    content:      'NEW';
    position:     absolute;
    top:          8px; left: 8px;
    background:   var(--accent-success);
    color:        #000;
    font-size:    0.6rem;
    font-weight:  800;
    padding:      2px 6px;
    border-radius: 3px;
    letter-spacing: 0.1em;
    z-index:      1;
}

/* List view card */
.list-view .item-card {
    display:      flex;
    align-items:  flex-start;
    gap:          16px;
    padding:      16px;
}

.list-view .item-thumb {
    width:        100px;
    height:       100px;
    object-fit:   cover;
    border-radius: var(--radius-sm);
    background:   var(--bg-secondary);
    flex-shrink:  0;
}

.list-view .item-body { flex: 1; min-width: 0; }

.item-title {
    font-size:    0.95rem;
    font-weight:  500;
    color:        var(--text-primary);
    display:      -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow:     hidden;
    margin-bottom: 8px;
    line-height:  1.4;
    cursor:       pointer;
}

.item-title:hover { color: var(--accent-secondary); }

.item-meta {
    display:      flex;
    gap:          16px;
    flex-wrap:    wrap;
    font-size:    0.8rem;
    color:        var(--text-secondary);
    margin-bottom: 8px;
}

.item-price-block {
    display:      flex;
    align-items:  baseline;
    gap:          6px;
    margin-bottom: 8px;
}

.item-price {
    font-family:  var(--font-display);
    font-size:    1.5rem;
    font-weight:  700;
    color:        var(--accent-secondary);
}

.item-currency { font-size: 0.9rem; color: var(--text-muted); }

.item-shipping {
    font-size:    0.8rem;
    color:        var(--text-secondary);
}

.item-total {
    font-size:    0.85rem;
    color:        var(--accent-warning);
    font-weight:  600;
}

.item-actions {
    display:      flex;
    gap:          8px;
    margin-top:   10px;
}

/* Tile view card */
.tile-view .item-card { padding: 0; display: flex; flex-direction: column; }

.tile-view .item-thumb {
    width:        100%;
    height:       160px;
    object-fit:   cover;
    background:   var(--bg-secondary);
}

.tile-view .item-body { padding: 12px; flex: 1; }
.tile-view .item-actions { padding: 0 12px 12px; }
.tile-view .item-price { font-size: 1.2rem; }

/* Delete button on cards */
.btn-delete-item {
    position:   absolute;
    top:        8px; right: 8px;
    background: rgba(255, 23, 68, 0.15);
    color:      var(--accent-danger);
    border:     1px solid var(--accent-danger);
    border-radius: var(--radius-sm);
    padding:    4px 8px;
    font-size:  0.7rem;
    cursor:     pointer;
    opacity:    0;
    transition: var(--transition);
}

.item-card:hover .btn-delete-item { opacity: 1; }

/* ---- Skeleton Loaders ---- */
.skeleton {
    background:   linear-gradient(90deg, var(--bg-card) 25%, var(--bg-card-hover) 50%, var(--bg-card) 75%);
    background-size: 200% 100%;
    animation:    shimmer 1.5s infinite;
    border-radius: var(--radius-sm);
}

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

.skeleton-card {
    height:       120px;
    border-radius: var(--radius-md);
    margin-bottom: 16px;
}

/* ---- Buttons ---- */
.btn {
    display:      inline-flex;
    align-items:  center;
    gap:          6px;
    padding:      8px 18px;
    border-radius: var(--radius-sm);
    font-family:  var(--font-display);
    font-size:    0.85rem;
    font-weight:  600;
    letter-spacing: 0.05em;
    cursor:       pointer;
    border:       none;
    transition:   var(--transition);
    text-transform: uppercase;
    white-space:  nowrap;
}

.btn-primary {
    background:   var(--accent-primary);
    color:        white;
    box-shadow:   0 0 16px rgba(41, 121, 255, 0.3);
}
.btn-primary:hover {
    background:   #448aff;
    box-shadow:   0 0 24px rgba(41, 121, 255, 0.5);
    transform:    translateY(-1px);
}

.btn-secondary {
    background:   transparent;
    color:        var(--text-secondary);
    border:       1px solid var(--border);
}
.btn-secondary:hover { border-color: var(--border-hover); color: var(--text-primary); }

.btn-danger {
    background:   rgba(255, 23, 68, 0.1);
    color:        var(--accent-danger);
    border:       1px solid var(--accent-danger);
}
.btn-danger:hover { background: rgba(255, 23, 68, 0.2); }

.btn-success {
    background:   rgba(0, 230, 118, 0.1);
    color:        var(--accent-success);
    border:       1px solid var(--accent-success);
}

.btn-sm { padding: 5px 12px; font-size: 0.75rem; }
.btn-lg { padding: 12px 28px; font-size: 1rem; }

.btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none !important; }

/* ---- Modal / Lightbox ---- */
#modal-overlay {
    position:    fixed;
    inset:       0;
    background:  rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    z-index:     2000;
    display:     none;
    align-items: center;
    justify-content: center;
    padding:     20px;
}

#modal-overlay.open { display: flex; }

.modal {
    background:   var(--bg-secondary);
    border:       1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow:   0 24px 64px rgba(0, 0, 0, 0.6);
    width:        100%;
    max-width:    480px;
    max-height:   90vh;
    overflow-y:   auto;
    animation:    modalIn 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes modalIn {
    from { opacity: 0; transform: scale(0.92) translateY(20px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.modal-header {
    display:      flex;
    align-items:  center;
    justify-content: space-between;
    padding:      20px 24px;
    border-bottom: 1px solid var(--border);
    font-family:  var(--font-display);
    font-size:    1.1rem;
    font-weight:  600;
    letter-spacing: 0.05em;
}

.modal-close {
    background:   none;
    border:       none;
    color:        var(--text-muted);
    cursor:       pointer;
    font-size:    1.2rem;
    padding:      4px;
    line-height:  1;
    transition:   color 0.2s;
}
.modal-close:hover { color: var(--text-primary); }

.modal-body { padding: 24px; }
.modal-footer {
    padding:       16px 24px;
    border-top:    1px solid var(--border);
    display:       flex;
    justify-content: flex-end;
    gap:           8px;
}

/* ---- Auth Modal ---- */
.auth-tabs { display: flex; gap: 0; margin-bottom: 20px; border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--border); }
.auth-tab { flex: 1; padding: 10px; text-align: center; cursor: pointer; font-family: var(--font-display); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.05em; background: transparent; color: var(--text-secondary); border: none; transition: var(--transition); }
.auth-tab.active { background: var(--accent-primary); color: white; }

.form-field { margin-bottom: 16px; }
.form-field label { display: block; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); margin-bottom: 6px; font-family: var(--font-display); }
.form-field input { width: 100%; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-primary); padding: 10px 14px; font-family: var(--font-body); font-size: 0.9rem; outline: none; transition: var(--transition); }
.form-field input:focus { border-color: var(--accent-primary); box-shadow: 0 0 0 3px rgba(41,121,255,0.15); }

.auth-divider { text-align: center; color: var(--text-muted); font-size: 0.8rem; margin: 16px 0; position: relative; }
.auth-divider::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--border); }
.auth-divider span { background: var(--bg-secondary); padding: 0 12px; position: relative; }

/* ---- Bottom Settings Bar ---- */
#settings-bar {
    position:    fixed;
    bottom:      0; left: 0; right: 0;
    background:  var(--bg-glass);
    backdrop-filter: blur(12px);
    border-top:  1px solid var(--border);
    padding:     10px 20px;
    display:     flex;
    align-items: center;
    justify-content: center;
    gap:         20px;
    z-index:     500;
    font-size:   0.8rem;
}

.settings-link {
    color:       var(--text-muted);
    font-family: var(--font-display);
    letter-spacing: 0.08em;
    font-size:   0.8rem;
    text-transform: uppercase;
    transition:  color 0.2s;
}
.settings-link:hover { color: var(--accent-secondary); }

.settings-separator { color: var(--border); }

/* ---- Toast Notifications ---- */
.toast-container {
    position:    fixed;
    top:         80px; right: 20px;
    z-index:     3000;
    display:     flex;
    flex-direction: column;
    gap:         8px;
    pointer-events: none;
}

.toast {
    background:   var(--bg-card);
    border:       1px solid var(--border);
    border-radius: var(--radius-md);
    padding:      14px 18px;
    min-width:    280px;
    max-width:    360px;
    box-shadow:   var(--shadow);
    animation:    toastIn 0.3s ease;
    pointer-events: all;
    display:      flex;
    align-items:  flex-start;
    gap:          12px;
}

@keyframes toastIn {
    from { opacity: 0; transform: translateX(20px); }
    to   { opacity: 1; transform: translateX(0); }
}

.toast.success { border-color: var(--accent-success); }
.toast.error   { border-color: var(--accent-danger); }
.toast.info    { border-color: var(--accent-primary); }

.toast-icon { font-size: 1rem; flex-shrink: 0; margin-top: 2px; }
.toast-body { flex: 1; }
.toast-title { font-weight: 600; font-size: 0.85rem; margin-bottom: 2px; }
.toast-msg { font-size: 0.8rem; color: var(--text-secondary); }

/* ---- Empty State ---- */
.empty-state {
    text-align:  center;
    padding:     60px 20px;
    color:       var(--text-secondary);
}

.empty-state .icon { font-size: 3rem; margin-bottom: 16px; opacity: 0.4; }
.empty-state h3 { font-family: var(--font-display); font-size: 1.2rem; margin-bottom: 8px; color: var(--text-primary); }
.empty-state p { font-size: 0.875rem; max-width: 300px; margin: 0 auto; }

/* ---- User Avatar / Menu ---- */
.user-menu { position: relative; }
.user-avatar {
    width:       36px; height: 36px;
    border-radius: 50%;
    background:  linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
    display:     flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size:   0.85rem;
    cursor:      pointer;
    transition:  var(--transition);
    border:      2px solid transparent;
}
.user-avatar:hover { border-color: var(--accent-primary); }

.user-dropdown {
    position:    absolute;
    top:         calc(100% + 8px);
    right:       0;
    background:  var(--bg-secondary);
    border:      1px solid var(--border);
    border-radius: var(--radius-md);
    min-width:   180px;
    box-shadow:  var(--shadow);
    display:     none;
    overflow:    hidden;
}
.user-dropdown.open { display: block; }

.dropdown-item {
    padding:     10px 16px;
    font-size:   0.85rem;
    cursor:      pointer;
    transition:  background 0.15s;
    display:     block;
    color:       var(--text-secondary);
    border:      none;
    background:  none;
    width:       100%;
    text-align:  left;
    font-family: var(--font-body);
}
.dropdown-item:hover { background: var(--bg-card); color: var(--text-primary); }
.dropdown-item.danger:hover { color: var(--accent-danger); }
.dropdown-divider { height: 1px; background: var(--border); }

/* ---- Interval Select ---- */
.interval-select {
    background:  var(--bg-card);
    border:      1px solid var(--border);
    color:       var(--accent-secondary);
    border-radius: var(--radius-sm);
    padding:     4px 8px;
    font-family: var(--font-display);
    font-size:   0.8rem;
    cursor:      pointer;
    outline:     none;
}
.interval-select:focus { border-color: var(--accent-primary); }
.interval-select option { background: var(--bg-secondary); }

/* ---- Guest Limit Banner ---- */
#guest-banner {
    background:   linear-gradient(135deg, rgba(41,121,255,0.1), rgba(0,229,255,0.05));
    border:       1px solid var(--border);
    border-radius: var(--radius-md);
    padding:      16px 20px;
    margin-bottom: 20px;
    display:      flex;
    align-items:  center;
    gap:          16px;
    flex-wrap:    wrap;
}

#guest-banner .banner-text { flex: 1; font-size: 0.875rem; color: var(--text-secondary); }
#guest-banner strong { color: var(--text-primary); }

/* ---- Scrollbar ---- */
::-webkit-scrollbar       { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--border-hover); }

/* ---- Responsive ---- */
@media (max-width: 768px) {
    :root { --sidebar-width: 85vw; }

    #main-content { margin-left: 40px; padding: 16px; }
    #main-content.sidebar-open { margin-left: 0; }
    #search-form-panel.sidebar-open { left: 0; }

    .form-fields { gap: 8px; }
    .hero-title  { font-size: 2.5rem; }

    #items-container.tile-view { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }

    .list-view .item-thumb { width: 70px; height: 70px; }
}

@media (max-width: 480px) {
    #topbar { padding: 0 12px; }
    #main-content { padding: 12px; }
    .form-fields { flex-direction: column; }
    .form-group input, .form-group select { width: 100%; }
}
