* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

:root {
    --border-default: #6b7280;
    --border-ui: rgb(209 213 219 / 1);
    --primary: #18B254;
    --primary-dark: #0e7137;
    --primary-focus: rgba(24, 178, 84, 0.20);
}

body {
    min-height: 100vh;
    letter-spacing: 0;
}

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

body.sidebar-open [data-sidebar-close] {
    display: block;
}

input:not([type=checkbox]):not([type=radio]),
select,
textarea {
    border: 1px solid var(--border-ui);
    background-color: #ffffff;
    color: #1f2937;
    transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
    appearance: none;
    -webkit-appearance: none;
    /* leggero inner shadow per evidenziare il bordo su sfondi chiari */
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.03);
    padding-left: 5px !important;
}

input:not([type=checkbox]):not([type=radio]):hover,
select:hover,
textarea:hover {
    border-color: var(--border-ui);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-focus);
    outline: none;
}

input[type="checkbox"],
input[type="radio"] {
    border: 1px solid #9ca3af;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
    box-shadow: 0 0 0 3px var(--primary-focus);
    outline: none;
}

.bg-violet-500.text-white {
    color: #ffffff !important;
}

.bg-violet-500.text-white:hover {
    color: #ffffff !important;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

input::placeholder,
textarea::placeholder {
    color: #9ca3af;
    padding-left: 0 !important;
}

.relative > i.pointer-events-none + input,
.relative > i.pointer-events-none + select {
    padding-left: 2.5rem !important;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

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

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Mostra una freccia personalizzata per le select (tailwind usa appearance:none) */
select {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20fill='none'%20stroke='%236b7280'%20stroke-width='1.5'%3E%3Cpath%20d='M6%208l4%204%204-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1em;
    padding-right: 2rem !important;
}
