style.css 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. /* Reset and Base Styles */
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. }
  7. body {
  8. font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
  9. line-height: 1.6;
  10. color: #333;
  11. background-color: #f5f5f5;
  12. }
  13. .container {
  14. max-width: 1200px;
  15. margin: 0 auto;
  16. padding: 0 20px;
  17. }
  18. /* Header */
  19. header {
  20. background-color: #c41e3a;
  21. color: white;
  22. padding: 1rem 0;
  23. box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  24. }
  25. header h1 {
  26. font-size: 1.8rem;
  27. margin-bottom: 0.5rem;
  28. }
  29. header nav {
  30. margin-top: 0.5rem;
  31. }
  32. header nav a {
  33. color: white;
  34. text-decoration: none;
  35. margin-right: 1.5rem;
  36. font-weight: 500;
  37. }
  38. header nav a:hover {
  39. text-decoration: underline;
  40. }
  41. /* Main Content */
  42. main {
  43. min-height: calc(100vh - 200px);
  44. padding: 2rem 0;
  45. }
  46. /* Buttons */
  47. .btn {
  48. display: inline-block;
  49. padding: 0.75rem 1.5rem;
  50. background-color: #c41e3a;
  51. color: white;
  52. text-decoration: none;
  53. border: none;
  54. border-radius: 4px;
  55. cursor: pointer;
  56. font-size: 1rem;
  57. font-weight: 500;
  58. transition: background-color 0.3s;
  59. }
  60. .btn:hover {
  61. background-color: #a01a2e;
  62. }
  63. .btn-secondary {
  64. background-color: #6c757d;
  65. }
  66. .btn-secondary:hover {
  67. background-color: #5a6268;
  68. }
  69. .btn-small {
  70. padding: 0.5rem 1rem;
  71. font-size: 0.9rem;
  72. }
  73. /* Product Grid */
  74. .products-grid {
  75. display: grid;
  76. grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  77. gap: 2rem;
  78. margin-top: 2rem;
  79. }
  80. .product-card {
  81. background: white;
  82. border-radius: 8px;
  83. overflow: hidden;
  84. box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  85. transition: transform 0.3s, box-shadow 0.3s;
  86. }
  87. .product-card:hover {
  88. transform: translateY(-5px);
  89. box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  90. }
  91. .product-card img {
  92. width: 100%;
  93. height: 200px;
  94. object-fit: cover;
  95. background-color: #e9ecef;
  96. }
  97. .product-card-content {
  98. padding: 1.5rem;
  99. }
  100. .product-card h3 {
  101. font-size: 1.2rem;
  102. margin-bottom: 0.5rem;
  103. color: #c41e3a;
  104. }
  105. .product-card .price {
  106. font-size: 1.5rem;
  107. font-weight: bold;
  108. color: #333;
  109. margin: 0.5rem 0;
  110. }
  111. .product-card .stock {
  112. font-size: 0.9rem;
  113. color: #6c757d;
  114. margin-bottom: 1rem;
  115. }
  116. .product-card .stock.in-stock {
  117. color: #28a745;
  118. }
  119. .product-card .stock.out-of-stock {
  120. color: #dc3545;
  121. }
  122. /* Forms */
  123. .form-group {
  124. margin-bottom: 1.5rem;
  125. }
  126. .form-group label {
  127. display: block;
  128. margin-bottom: 0.5rem;
  129. font-weight: 500;
  130. }
  131. .form-group input,
  132. .form-group textarea,
  133. .form-group select {
  134. width: 100%;
  135. padding: 0.75rem;
  136. border: 1px solid #ddd;
  137. border-radius: 4px;
  138. font-size: 1rem;
  139. font-family: inherit;
  140. }
  141. .form-group input:focus,
  142. .form-group textarea:focus,
  143. .form-group select:focus {
  144. outline: none;
  145. border-color: #c41e3a;
  146. }
  147. /* Cart */
  148. .cart-item {
  149. background: white;
  150. padding: 1.5rem;
  151. margin-bottom: 1rem;
  152. border-radius: 8px;
  153. box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  154. display: flex;
  155. justify-content: space-between;
  156. align-items: center;
  157. }
  158. .cart-item-info {
  159. flex: 1;
  160. }
  161. .cart-item-actions {
  162. display: flex;
  163. align-items: center;
  164. gap: 1rem;
  165. }
  166. .quantity-input {
  167. width: 60px;
  168. padding: 0.5rem;
  169. text-align: center;
  170. }
  171. /* Tables */
  172. table {
  173. width: 100%;
  174. background: white;
  175. border-collapse: collapse;
  176. box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  177. border-radius: 8px;
  178. overflow: hidden;
  179. }
  180. table th {
  181. background-color: #c41e3a;
  182. color: white;
  183. padding: 1rem;
  184. text-align: left;
  185. font-weight: 600;
  186. }
  187. table td {
  188. padding: 1rem;
  189. border-top: 1px solid #e9ecef;
  190. }
  191. table tr:hover {
  192. background-color: #f8f9fa;
  193. }
  194. /* Alerts */
  195. .alert {
  196. padding: 1rem;
  197. border-radius: 4px;
  198. margin-bottom: 1.5rem;
  199. }
  200. .alert-success {
  201. background-color: #d4edda;
  202. color: #155724;
  203. border: 1px solid #c3e6cb;
  204. }
  205. .alert-error {
  206. background-color: #f8d7da;
  207. color: #721c24;
  208. border: 1px solid #f5c6cb;
  209. }
  210. .alert-info {
  211. background-color: #d1ecf1;
  212. color: #0c5460;
  213. border: 1px solid #bee5eb;
  214. }
  215. .alert-warning {
  216. background-color: #fff3cd;
  217. color: #856404;
  218. border: 1px solid #ffeeba;
  219. }
  220. /* Footer */
  221. footer {
  222. background-color: #333;
  223. color: white;
  224. text-align: center;
  225. padding: 2rem 0;
  226. margin-top: 3rem;
  227. }
  228. /* Reservation Code */
  229. .reservation-code {
  230. background: #fff3cd;
  231. border: 2px solid #ffc107;
  232. padding: 2rem;
  233. border-radius: 8px;
  234. text-align: center;
  235. margin: 2rem 0;
  236. }
  237. .reservation-code h2 {
  238. font-size: 2rem;
  239. color: #856404;
  240. letter-spacing: 0.2rem;
  241. font-family: 'Courier New', monospace;
  242. }
  243. /* Admin Styles */
  244. .admin-header {
  245. display: flex;
  246. justify-content: space-between;
  247. align-items: center;
  248. margin-bottom: 2rem;
  249. }
  250. .admin-stats {
  251. display: grid;
  252. grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  253. gap: 1.5rem;
  254. margin-bottom: 2rem;
  255. }
  256. .stat-card {
  257. background: white;
  258. padding: 1.5rem;
  259. border-radius: 8px;
  260. box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  261. }
  262. .stat-card h3 {
  263. font-size: 0.9rem;
  264. color: #6c757d;
  265. margin-bottom: 0.5rem;
  266. }
  267. .stat-card .stat-value {
  268. font-size: 2rem;
  269. font-weight: bold;
  270. color: #c41e3a;
  271. }
  272. /* Product Detail Grid */
  273. .product-detail-grid {
  274. display: grid;
  275. grid-template-columns: 1fr 1fr;
  276. gap: 2rem;
  277. margin-top: 2rem;
  278. }
  279. /* Responsive */
  280. @media (max-width: 768px) {
  281. .products-grid {
  282. grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  283. gap: 1rem;
  284. }
  285. .product-detail-grid {
  286. grid-template-columns: 1fr;
  287. gap: 1.5rem;
  288. }
  289. .cart-item {
  290. flex-direction: column;
  291. align-items: flex-start;
  292. }
  293. .cart-item-actions {
  294. width: 100%;
  295. justify-content: space-between;
  296. margin-top: 1rem;
  297. }
  298. table {
  299. font-size: 0.9rem;
  300. }
  301. table th,
  302. table td {
  303. padding: 0.5rem;
  304. }
  305. .admin-stats {
  306. grid-template-columns: 1fr;
  307. }
  308. }
  309. /* Utility Classes */
  310. .text-center {
  311. text-align: center;
  312. }
  313. .mt-1 { margin-top: 0.5rem; }
  314. .mt-2 { margin-top: 1rem; }
  315. .mt-3 { margin-top: 1.5rem; }
  316. .mb-1 { margin-bottom: 0.5rem; }
  317. .mb-2 { margin-bottom: 1rem; }
  318. .mb-3 { margin-bottom: 1.5rem; }