@import "tailwindcss"; @import 'https://fonts.googleapis.com/css2?family=Intel+One+Mono:ital,wght@0,300..700;1,300..700&display=swap'; @source "../templates"; /* ===== E-Ticket Editor ===== */ e-ticket-editor { display: block; } .ete-toolbar { display: flex; flex-wrap: wrap; gap: 0; border: 3px solid #111827; border-bottom: none; background: #f9fafb; padding: 0.25rem; } .ete-btn { width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; border: 2px solid transparent; background: transparent; cursor: pointer; font-weight: 900; font-size: 0.8rem; transition: all 0.1s; } .ete-btn:hover { background: #fabf04; border-color: #111827; } .ete-separator { width: 1px; background: #d1d5db; margin: 0.25rem 0.35rem; } .ete-content { width: 100%; min-height: 10rem; padding: 0.75rem 1rem; border: 3px solid #111827; font-weight: 700; outline: none; background: white; line-height: 1.6; } .ete-content:focus { border-color: #4f46e5; } .ete-content:empty::before { content: attr(data-placeholder); color: #9ca3af; pointer-events: none; } .ete-content ul { list-style: disc; padding-left: 1.5rem; margin: 0.5rem 0; } /* ===== Layout ===== */ .page-container { max-width: 50rem; margin: 0 auto; padding: 3rem 1rem; } .page-container-lg { max-width: 60rem; margin: 0 auto; padding: 3rem 1rem; } .page-container-sm { max-width: 36rem; margin: 0 auto; padding: 3rem 1rem; } .page-container-xs { max-width: 28rem; margin: 0 auto; padding: 3rem 1rem; } .page-container-md { max-width: 40rem; margin: 0 auto; padding: 3rem 1rem; } /* ===== Headings ===== */ .heading-page { border-bottom: 4px solid #111827; display: inline-block; margin-bottom: 0.5rem; } /* ===== Cards ===== */ .card-brutal { border: 4px solid #111827; box-shadow: 6px 6px 0 rgb(0 0 0 / 100%); background: white; padding: 1.5rem; } .card-brutal-lg { border: 4px solid #111827; box-shadow: 6px 6px 0 rgb(0 0 0 / 100%); background: white; padding: 2.5rem; } .card-brutal-green { border: 4px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); background: #d1fae5; padding: 1rem 1.5rem; } .card-brutal-red { border: 4px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); background: #fee2e2; padding: 1rem 1.5rem; } .card-brutal-yellow { border: 4px solid #111827; background: #fabf04; padding: 1rem 1.5rem; } .card-brutal-warn { border: 4px solid #111827; box-shadow: 6px 6px 0 rgb(0 0 0 / 100%); background: #fef3c7; padding: 1.5rem; } .card-brutal-info { border: 4px solid #111827; background: #f9fafb; padding: 1.5rem; box-shadow: 6px 6px 0 rgb(0 0 0 / 100%); } .card-brutal-error { border: 4px solid #991b1b; box-shadow: 6px 6px 0 rgb(0 0 0 / 100%); background: #fee2e2; padding: 1.5rem; } /* ===== Flash messages ===== */ .flash-success { border: 4px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); background: #d1fae5; padding: 1rem 1.5rem; margin-bottom: 1.5rem; } .flash-error { border: 4px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); background: #fee2e2; padding: 1rem 1.5rem; margin-bottom: 1.5rem; } /* ===== Forms ===== */ .form-label { display: block; margin-bottom: 0.5rem; } .form-input { width: 100%; padding: 0.75rem 1rem; border: 3px solid #111827; font-weight: 700; outline: none; } .form-textarea { width: 100%; padding: 0.75rem 1rem; border: 3px solid #111827; font-weight: 700; outline: none; resize: vertical; } .form-file { width: 100%; padding: 0.75rem 1rem; border: 3px solid #111827; font-weight: 700; outline: none; background: white; } .form-col { display: flex; flex-direction: column; gap: 1.5rem; } .form-row { display: flex; flex-wrap: wrap; gap: 1.5rem; } .form-group { flex: 1; min-width: 200px; } /* ===== Buttons ===== */ .btn-brutal { padding: 0.75rem 2rem; border: 3px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); background: #fabf04; display: inline-block; cursor: pointer; } .btn-brutal:hover { background: #4f46e5; color: white; } .btn-brutal-full { width: 100%; padding: 0.75rem 2rem; border: 3px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); cursor: pointer; } .btn-brutal-dark { display: block; width: 100%; padding: 0.75rem 2rem; border: 3px solid #111827; box-shadow: 4px 4px 0 rgb(0 0 0 / 100%); text-align: center; text-decoration: none; } /* ===== Tables ===== */ .table-brutal { width: 100%; border-collapse: collapse; } .table-brutal th { padding: 0.5rem 0; text-align: left; } .table-brutal td { padding: 0.5rem 0; } .table-brutal tr { border-bottom: 1px solid #e5e7eb; } .table-brutal tr:last-child { border-bottom: none; } /* ===== Badges ===== */ .badge-green { background: #d1fae5; border: 2px solid #111827; padding: 0.15rem 0.5rem; } .badge-red { background: #fee2e2; border: 2px solid #111827; padding: 0.15rem 0.5rem; } .badge-yellow { background: #fef3c7; border: 2px solid #111827; padding: 0.15rem 0.5rem; } /* ===== Section headers ===== */ .section-header { padding: 0.75rem 1.5rem; background: #111827; } /* ===== Dividers ===== */ .divider { flex: 1; height: 3px; background: #111827; } /* ===== Social icons ===== */ .bg-instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); } /* ===== Detail table ===== */ .detail-table { width: 100%; border-collapse: collapse; } .detail-table td, .detail-table th { padding: 0.75rem 1rem; } .detail-table tr { border-bottom: 1px solid #e5e7eb; } .detail-table tr:last-child { border-bottom: none; } /* ===== Leaflet custom marker ===== */ .leaflet-marker-custom { background: none !important; border: none !important; } /* ===== Marquee ===== */ @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .animate-marquee { display: flex; width: 200%; animation: marquee 40s linear infinite; }