File size: 4,058 Bytes
c2b0409 2bed403 c2b0409 2bed403 c2b0409 2bed403 c2b0409 2bed403 c2b0409 2bed403 c2b0409 8ac7e07 c2b0409 2bed403 c2b0409 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 | @tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #c0c0c0;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #a0a0a0;
}
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type='number'] {
-moz-appearance: textfield;
}
}
@layer components {
.btn {
@apply inline-flex items-center justify-center gap-2 rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-white disabled:opacity-50 disabled:cursor-not-allowed min-h-[44px];
}
.btn-primary {
@apply btn bg-pos-highlight text-white hover:bg-red-600 focus:ring-pos-highlight;
}
.btn-success {
@apply btn bg-pos-success text-white hover:bg-emerald-600 focus:ring-pos-success;
}
.btn-warning {
@apply btn bg-pos-warning text-white hover:bg-yellow-600 focus:ring-pos-warning;
}
.btn-danger {
@apply btn bg-pos-danger text-white hover:bg-red-700 focus:ring-pos-danger;
}
.btn-info {
@apply btn bg-pos-info text-white hover:bg-blue-600 focus:ring-pos-info;
}
.btn-ghost {
@apply btn bg-transparent text-gray-600 hover:bg-gray-100 focus:ring-gray-200;
}
.btn-sm {
@apply px-3 py-2 text-xs min-h-[36px];
}
.btn-lg {
@apply px-6 py-3 text-base;
}
.card {
@apply rounded-xl bg-white border border-gray-200 shadow-sm;
}
.input {
@apply w-full rounded-lg bg-white border border-gray-300 px-4 py-2.5 text-sm text-gray-800 placeholder-gray-400 transition-colors focus:border-pos-highlight focus:outline-none focus:ring-1 focus:ring-pos-highlight;
}
.label {
@apply block text-sm font-medium text-gray-600 mb-1.5;
}
.badge {
@apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium;
}
.badge-success {
@apply badge bg-green-100 text-green-700;
}
.badge-warning {
@apply badge bg-yellow-100 text-yellow-700;
}
.badge-danger {
@apply badge bg-red-100 text-red-700;
}
.badge-info {
@apply badge bg-blue-100 text-blue-700;
}
.table-pos {
@apply w-full text-sm text-left;
}
.table-pos thead {
@apply bg-gray-50 text-gray-500 uppercase text-xs;
}
.table-pos th {
@apply px-3 py-3 font-medium lg:px-4;
}
.table-pos td {
@apply px-3 py-3 border-b border-gray-100 lg:px-4;
}
.table-pos tbody tr {
@apply hover:bg-gray-50 transition-colors;
}
.stat-card {
@apply card p-4 flex flex-col gap-1;
}
.stat-value {
@apply text-xl font-bold lg:text-2xl;
}
.stat-label {
@apply text-sm text-gray-500;
}
.menu-item-card {
@apply card p-3 cursor-pointer hover:border-pos-highlight/50 hover:shadow-md transition-all duration-200 active:scale-95 select-none;
}
.kot-card {
@apply card p-4 border-l-4;
}
.kot-card.pending {
@apply border-l-pos-warning;
}
.kot-card.preparing {
@apply border-l-pos-info;
}
.kot-card.ready {
@apply border-l-pos-success;
}
.table-cell {
@apply rounded-xl p-4 cursor-pointer transition-all duration-200 flex flex-col items-center justify-center gap-2 min-h-[100px] select-none;
}
.table-cell.available {
@apply bg-green-50 border-2 border-green-300 hover:border-green-500 text-green-700;
}
.table-cell.occupied {
@apply bg-red-50 border-2 border-red-300 hover:border-red-500 text-red-700;
}
.table-cell.reserved {
@apply bg-yellow-50 border-2 border-yellow-300 hover:border-yellow-500 text-yellow-700;
}
.table-cell.cleaning {
@apply bg-amber-50 border-2 border-amber-300 hover:border-amber-500 text-amber-700;
}
/* Mobile-friendly scrollable table wrapper */
.table-scroll {
@apply overflow-x-auto -mx-4 px-4;
-webkit-overflow-scrolling: touch;
}
/* Mobile overlay backdrop */
.mobile-overlay {
@apply fixed inset-0 bg-black/40 z-40 lg:hidden;
}
}
|