Files
ludikevent_crm/assets/admin.scss
Serreau Jovann 84180d9561 ```
 feat(Devis): Ajoute l'entité DevisLine et le formulaire de création de devis non terminer

Ajoute l'entité DevisLine, le formulaire NewDevisType et la route pour la création de devis.
```
2026-01-16 16:00:00 +01:00

356 lines
8.7 KiB
SCSS

@import "tailwindcss";
@import "tom-select/dist/css/tom-select.css";
form {
label {
color: white;
}
}
.animate-fadeIn { animation: fadeIn 0.3s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.custom-scrollbar::-webkit-scrollbar { width: 5px; height: 5px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
.dark .custom-scrollbar::-webkit-scrollbar-thumb { background: #334155; }
.page-transition { animation: fadeIn 0.3s ease-out; }
@keyframes fadeIn {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}
/* Menu Accordion sans JS */
details summary::-webkit-details-marker { display:none; }
details[open] .arrow-icon { transform: rotate(180deg); }
.ts-control {
border: 1px solid rgba(255, 255, 255, 0.05); /* Dark border */
padding: 8px 8px;
width: 100%;
overflow: hidden;
position: relative;
z-index: 1;
box-sizing: border-box;
box-shadow: none; /* Removed inset shadow */
border-radius: 3px;
display: flex;
flex-wrap: wrap;
background-color: rgba(15, 23, 42, 0.6) !important; /* Slate-900 transparent */
}
.ts-wrapper.multi.has-items .ts-control {
padding: calc(8px - 2px - 1px) 8px calc(8px - 2px - 3px - 1px);
}
.full .ts-control {
background-color: #0f172a; /* Slate-900 */
}
.disabled .ts-control, .disabled .ts-control * {
cursor: default !important;
}
.focus .ts-control {
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2); /* Blue halo */
border-color: #3b82f6;
}
.ts-control > * {
vertical-align: baseline;
display: inline-block;
}
.ts-wrapper.multi .ts-control > div {
cursor: pointer;
margin: 0 3px 3px 0;
padding: 2px 6px;
background: #2563eb; /* Blue-600 */
color: #fff;
border: 1px solid #1d4ed8;
}
.ts-wrapper.multi .ts-control > div.active {
background: #1e40af; /* Deeper blue */
color: #fff;
border: 1px solid #1e3a8a;
}
.ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
color: #475569;
background: #1e293b;
border: 1px solid #334155;
}
.ts-control > input {
flex: 1 1 auto;
min-width: 7rem;
display: inline-block !important;
padding: 0 !important;
min-height: 0 !important;
max-height: none !important;
max-width: 100% !important;
margin: 0 !important;
text-indent: 0 !important;
border: 0 none !important;
background: none !important;
line-height: inherit !important;
-webkit-user-select: auto !important;
-moz-user-select: auto !important;
-ms-user-select: auto !important;
user-select: auto !important;
box-shadow: none !important;
color: #f8fafc !important; /* Slate-50 text */
}
.ts-control > input::-ms-clear {
display: none;
}
.ts-control > input:focus {
outline: none !important;
}
.has-items .ts-control > input {
margin: 0 4px !important;
}
.ts-control.rtl {
text-align: right;
}
.ts-control.rtl.single .ts-control:after {
left: 15px;
right: auto;
}
.ts-control.rtl .ts-control > input {
margin: 0 4px 0 -2px !important;
}
.disabled .ts-control {
opacity: 0.5;
background-color: #0f172a;
}
.input-hidden .ts-control > input {
opacity: 0;
position: absolute;
left: -10000px;
}
.ts-dropdown {
position: absolute;
top: 100%;
left: 0;
width: 100%;
z-index: 10;
border: 1px solid rgba(255, 255, 255, 0.1);
background: #0f172a; /* Dark background */
margin: 0.25rem 0 0;
border-top: 0 none;
box-sizing: border-box;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
border-radius: 0 0 3px 3px;
color: #f8fafc;
}
.ts-dropdown [data-selectable] {
cursor: pointer;
overflow: hidden;
}
.ts-dropdown [data-selectable] .highlight {
background: rgba(59, 130, 246, 0.3); /* Blue highlight */
border-radius: 1px;
}
.ts-dropdown .option,
.ts-dropdown .optgroup-header,
.ts-dropdown .no-results,
.ts-dropdown .create {
padding: 5px 8px;
}
.ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
cursor: inherit;
opacity: 0.5;
}
.ts-dropdown [data-selectable].option {
opacity: 1;
cursor: pointer;
}
.ts-dropdown .optgroup:first-child .optgroup-header {
border-top: 0 none;
}
.ts-dropdown .optgroup-header {
color: #94a3b8; /* Slate-400 */
background: #0f172a;
cursor: default;
}
.ts-dropdown .active {
background-color: #1e293b; /* Slate-800 */
color: #3b82f6; /* Blue-500 */
}
.ts-dropdown .active.create {
color: #3b82f6;
}
.ts-dropdown .create {
color: rgba(248, 248, 248, 0.5);
}
.ts-dropdown .spinner {
display: inline-block;
width: 30px;
height: 30px;
margin: 5px 8px;
}
.ts-dropdown .spinner::after {
content: " ";
display: block;
width: 24px;
height: 24px;
margin: 3px;
border-radius: 50%;
border: 5px solid #1e293b;
border-color: #3b82f6 transparent #3b82f6 transparent;
animation: lds-dual-ring 1.2s linear infinite;
}
@keyframes lds-dual-ring {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.ts-dropdown-content {
overflow: hidden auto;
max-height: 200px;
scroll-behavior: smooth;
}
.ts-wrapper.plugin-drag_drop .ts-dragging {
color: transparent !important;
}
.ts-wrapper.plugin-drag_drop .ts-dragging > * {
visibility: hidden !important;
}
.plugin-checkbox_options:not(.rtl) .option input {
margin-right: 0.5rem;
}
.plugin-checkbox_options.rtl .option input {
margin-left: 0.5rem;
}
/* stylelint-disable function-name-case */
.plugin-clear_button {
--ts-pr-clear-button: 1em;
}
.plugin-clear_button .clear-button {
opacity: 0;
position: absolute;
top: 50%;
transform: translateY(-50%);
right: calc(8px - 6px);
margin-right: 0 !important;
background: transparent !important;
transition: opacity 0.5s;
cursor: pointer;
color: #ef4444; /* Red for clear */
}
.plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
opacity: 1;
}
.ts-wrapper .dropdown-header {
position: relative;
padding: 10px 8px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
background: #1e293b;
border-radius: 3px 3px 0 0;
}
.ts-wrapper .dropdown-header-close {
position: absolute;
right: 8px;
top: 50%;
color: #f8fafc;
opacity: 0.4;
margin-top: -12px;
line-height: 20px;
font-size: 20px !important;
}
.ts-wrapper .dropdown-header-close:hover {
color: #fff;
}
.plugin-dropdown_input.focus.dropdown-active .ts-control {
box-shadow: none;
border: 1px solid #3b82f6;
}
.plugin-dropdown_input .dropdown-input {
border: 1px solid rgba(255, 255, 255, 0.1);
border-width: 0 0 1px;
display: block;
padding: 8px 8px;
box-shadow: none;
width: 100%;
background: #0f172a;
color: #fff;
}
.ts-dropdown.plugin-optgroup_columns .optgroup {
border-right: 1px solid rgba(255, 255, 255, 0.05);
border-top: 0 none;
flex-grow: 1;
flex-basis: 0;
min-width: 0;
}
.ts-wrapper.plugin-remove_button .item .remove {
color: inherit;
text-decoration: none;
vertical-align: middle;
display: inline-block;
padding: 0 6px;
border-radius: 0 2px 2px 0;
box-sizing: border-box;
}
.ts-wrapper.plugin-remove_button .item .remove:hover {
background: rgba(255, 255, 255, 0.1);
}
.ts-wrapper {
position: relative;
}
.ts-dropdown,
.ts-control,
.ts-control input {
color: #f8fafc; /* Global text color */
font-family: inherit;
font-size: 13px;
line-height: 18px;
}
.ts-control,
.ts-wrapper.single.input-active .ts-control {
background: rgba(15, 23, 42, 0.6) !important;
cursor: text;
}
.ts-wrapper.single .ts-control::after {
border-color: #64748b transparent transparent transparent; /* Slate-500 arrow */
}
.ts-wrapper.single.dropdown-active .ts-control::after {
border-color: transparent transparent #3b82f6 transparent;
}
.ts-wrapper.multi .ts-control [data-value] {
text-shadow: none;
border-radius: 3px;
background-color: #3b82f6;
background-image: none;
box-shadow: none;
}
.ts-wrapper.multi.disabled .ts-control [data-value] {
color: #475569;
background: #1e293b;
}
.ts-wrapper.single .ts-control {
box-shadow: none;
background-color: rgba(15, 23, 42, 0.6) !important;
background-image: none;
}
.ts-wrapper.single .ts-control, .ts-dropdown.single {
border-color: rgba(255, 255, 255, 0.05);
}
.ts-dropdown .optgroup {
border-top: 1px solid rgba(255, 255, 255, 0.05);
}