/* Custom styles for the Support Portal */

/* Consistent black body text across the app */
html[data-theme] { --bc: #111111; } /* DaisyUI base content variable */
body, .text-base-content { color: #111111 !important; }

/* Brand green: enforce consistent #65c687 across success surfaces */
:root {
    --brand-success: #65c687;
}
.bg-success { background-color: var(--brand-success) !important; }
.text-success { color: var(--brand-success) !important; }
.btn-success { background-color: var(--brand-success) !important; color: #000000 !important; border-color: var(--brand-success) !important; }
.badge-success { background-color: var(--brand-success) !important; color: #000000 !important; border-color: var(--brand-success) !important; }
/* Make all status badges use black text for consistency */
.badge-info, .badge-secondary, .badge-warning, .badge-success { color: #111111 !important; }
/* Left menu active items when we paint them green */
.menu li > a.bg-success { color: #111111 !important; }

/* Smooth transitions */
a, button, .btn {
    transition: all 0.3s ease;
}

/* Typography and base rhythm */
html { font-size: 16px; }
body { line-height: 1.5; }
h1, h2, h3, h4 { line-height: 1.25; }
p { margin-bottom: 0.75rem; }

/* Dropdown/menu polish */
.dropdown .dropdown-content.menu {
    padding: 0.5rem;
    min-width: 11rem;
    background-color: var(--fallback-b1, #ffffff);
    color: var(--fallback-bc, #1f2937);
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.dropdown .dropdown-content.menu li > a,
.dropdown .dropdown-content.menu li > button {
    border-radius: 0.375rem;
    padding: 0.5rem 0.625rem;
}
.dropdown .dropdown-content.menu li { margin: 0.125rem 0; }
.dropdown .dropdown-content.menu li > a:hover,
.dropdown .dropdown-content.menu li > button:hover {
    background-color: rgba(0,0,0,0.04);
}
.dropdown .dropdown-content.menu li > a.text-error { color: #ef4444; }

/* Controls normalization */
.btn, .input, .select, .textarea {
    border-radius: 0.5rem;
}
.btn.btn-ghost { border-radius: 0.375rem; }

/* Primary top-left action (New Ticket / New Request) - keep identical sizing */
.primary-cta-btn {
    width: 10.5rem;            
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Main list card (Tickets / Dev Requests) - ensure identical min height to reduce layout jump */
.main-list-card {
    min-height: 28rem;
}

/* Control size normalization */
.btn:not(.btn-circle):not(.btn-square) {
    min-height: 2.5rem;            /* match input height */
    height: 2.5rem;
    padding: 0.375rem 0.9rem;      /* tighten vertical padding for alignment */
    font-size: 0.9375rem;          /* 15px */
    line-height: 1.25;
}
.btn.btn-sm {
    min-height: 2rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;            /* 14px */
}
.btn.btn-lg {
    min-height: 3rem;
    padding: 0.625rem 1rem;
    font-size: 1rem;                /* 16px */
}

.input, .select {
    height: 2.5rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.25;
}
.input.input-sm, .select.select-sm {
    height: 2rem;
    padding: 0.375rem 0.625rem;
    font-size: 0.875rem;
}
.input.input-lg, .select.select-lg {
    height: 3rem;
    padding: 0.625rem 0.875rem;
    font-size: 1rem;
}

.textarea {
    min-height: 2.5rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.4;
}

.rounded-field { border-radius: 0.5rem; }

/* Table density */
.table :where(thead th), .table :where(tbody td) {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* Clip long status pills inside table cells */
.table td.status-cell {
    overflow: hidden;
}
.table td.status-cell .badge {
    display: inline-block;
    max-width: 9.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-right: 0.5rem; /* ensure visual gap before Priority */
}

/* Prevent wide badges (like "Awaiting customer") from spilling into next column */
.table td .badge {
    max-width: 10rem;          
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

/* Icon crispness */
svg { shape-rendering: geometricPrecision; }

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #555;
}


/* Profile card enhancements */
.avatar.placeholder .bg-neutral-focus {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* Form control focus effects */
.input:focus, .textarea:focus, .select:focus {
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}

/* Card hover effects - disable movement to avoid distraction */
.card {
    transition: none !important;
}

.card:hover {
    transform: none !important;
    box-shadow: inherit !important;
}

/* Button hover enhancement */
.btn-primary:hover {
    filter: brightness(1.1);
}


/* Removed unused hero/footer/dark-mode overrides to reduce CSS size */

/* ------------------------------------------------------------------
   Sidebar pill toggle (collapse / expand)
   - Hamburger button centered under logo inside sidebar
------------------------------------------------------------------- */
.sidebar-toggle-wrapper {
    margin-top: 0.5rem;
    display: flex;
    justify-content: center;
}

.sidebar-toggle-check {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sidebar-toggle {
    cursor: pointer;
    position: relative;
    width: 32px;
    height: 32px;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    background: var(--brand-success, #65c687);
}

.sidebar-toggle-icon {
    width: 0.9rem;
    height: 0.9rem;
    color: #111111;
    transition: transform 0.25s ease;
}

#sidebar-toggle-check:checked + .sidebar-toggle .sidebar-toggle-icon {
    transform: rotate(180deg);
}