:root{--pt-primary-color:#007cba;--pt-secondary-color:#50575e;--pt-success-color:#00a32a;--pt-danger-color:#d63638;--pt-border-radius:4px;--pt-spacing-unit:8px}.palmtapper-container{margin:0 auto;max-width:1200px;padding:var(--pt-spacing-unit)}.pt-gallery-feed{margin:0 auto;max-width:1400px;padding:1rem}@media (min-width:768px){.pt-gallery-feed{padding:2rem}}.pt-gallery-header{margin-bottom:2rem;text-align:center}@media (min-width:768px){.pt-gallery-header{margin-bottom:3rem}}.pt-gallery-title{color:#1f2937;font-size:1.875rem;font-weight:700;margin:0 0 .5rem}@media (min-width:768px){.pt-gallery-title{font-size:2.25rem}}.pt-gallery-description{color:#6b7280;font-size:1rem;margin:0}@media (min-width:768px){.pt-gallery-description{font-size:1.125rem}}.pt-gallery-grid{display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:2rem}@media (min-width:640px){.pt-gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.pt-gallery-grid{gap:1.5rem;grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.pt-gallery-grid{gap:2rem;grid-template-columns:repeat(4,1fr)}}.pt-gallery-card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);cursor:pointer;overflow:hidden;position:relative;transition:transform .2s ease,box-shadow .2s ease}.pt-gallery-card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);transform:translateY(-2px)}.pt-gallery-card:hover .pt-image-overlay{opacity:1}.pt-gallery-card:focus-within{outline:2px solid #2563eb;outline-offset:2px}.pt-image-container{background:#f3f4f6;overflow:hidden;padding-bottom:100%;position:relative;width:100%}.pt-image{height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;transition:transform .3s ease;width:100%}.pt-image[data-src]{animation:loading 1.5s infinite;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%);background-size:200% 100%}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.pt-gallery-card:hover .pt-image{transform:scale(1.05)}.pt-image-overlay{align-items:center;background:rgba(0,0,0,.6);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}@media (hover:none){.pt-image-overlay{background:linear-gradient(0deg,rgba(0,0,0,.8) 0,transparent 50%);opacity:1}}.pt-image-overlay.pt-voted{background:linear-gradient(0deg,rgba(0,0,0,.9) 0,rgba(0,0,0,.3));opacity:1}.pt-vote-buttons{display:flex;gap:.75rem;padding:1rem}@media (min-width:768px){.pt-vote-buttons{gap:1rem}}.pt-vote-btn{align-items:center;backdrop-filter:blur(4px);background:hsla(0,0%,100%,.95);border:2px solid transparent;border-radius:.5rem;color:#1f2937;cursor:pointer;display:flex;flex-direction:column;font-size:.875rem;font-weight:600;gap:.25rem;justify-content:center;min-height:44px;min-width:44px;padding:.75rem 1rem;transition:all .2s ease}.pt-vote-btn:hover:not(:disabled){background:#fff;transform:scale(1.05)}.pt-vote-btn:active:not(:disabled){transform:scale(.95)}.pt-vote-btn:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.2);outline:none}.pt-vote-btn:disabled{cursor:not-allowed;opacity:.6}.pt-vote-btn.pt-active{border-color:currentColor;box-shadow:0 0 0 3px rgba(currentColor,.2)}@media (min-width:768px){.pt-vote-btn{font-size:1rem;padding:1rem 1.25rem}}.pt-vote-yes{color:#10b981}.pt-vote-yes.pt-active{background:rgba(16,185,129,.1)}.pt-vote-no{color:#ef4444}.pt-vote-no.pt-active{background:rgba(239,68,68,.1)}.pt-vote-icon{font-size:1.5rem;line-height:1}@media (min-width:768px){.pt-vote-icon{font-size:1.75rem}}.pt-vote-label{font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}@media (min-width:768px){.pt-vote-label{font-size:.875rem}}.pt-vote-count{font-size:1rem;font-weight:700}@media (min-width:768px){.pt-vote-count{font-size:1.125rem}}.pt-gallery-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:3rem 1rem}.pt-gallery-loading p{font-size:1rem;margin-top:1rem}.pt-spinner{animation:spin .8s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#2563eb;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.pt-gallery-load-more{padding:2rem 0;text-align:center}.pt-load-more-btn{align-items:center;background:#2563eb;border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;min-height:44px;min-width:44px;padding:.75rem 2rem;transition:all .2s ease}.pt-load-more-btn:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);transform:translateY(-1px)}.pt-load-more-btn:active:not(:disabled){transform:translateY(0)}.pt-load-more-btn:focus{box-shadow:0 0 0 3px rgba(37,99,235,.3);outline:none}.pt-load-more-btn:disabled{background:#e5e7eb;cursor:not-allowed}.pt-load-more-btn .pt-spinner{border-color:#fff hsla(0,0%,100%,.3) hsla(0,0%,100%,.3);border-width:2px;height:20px;width:20px}.pt-gallery-end{color:#6b7280;padding:3rem 1rem;text-align:center}.pt-gallery-end p{font-size:1.125rem;margin:0}.pt-toast{animation:slideUp .3s ease;background:#fff;border-radius:.5rem;bottom:2rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);left:50%;max-width:90%;min-width:250px;padding:1rem 1.5rem;position:fixed;text-align:center;transform:translateX(-50%);z-index:1000}@media (min-width:768px){.pt-toast{max-width:400px}}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.pt-toast-message{color:#1f2937;font-size:.875rem;font-weight:500}@media (min-width:768px){.pt-toast-message{font-size:1rem}}.pt-toast-success{border-left:4px solid #10b981}.pt-toast-error{border-left:4px solid #ef4444}.pt-toast-warning{border-left:4px solid #f59e0b}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.pt-dashboard{background:#fff!important;margin:0 auto;max-width:1200px;padding:1rem}.pt-dashboard,.pt-dashboard h1,.pt-dashboard h2,.pt-dashboard h3,.pt-dashboard label,.pt-dashboard p{color:#111827!important}@media (min-width:768px){.pt-dashboard{padding:2rem}}.pt-dashboard-header{border-bottom:2px solid #e5e7eb;display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem}@media (min-width:768px){.pt-dashboard-header{align-items:center;flex-direction:row;gap:2rem;justify-content:space-between}}.pt-dashboard-title{color:#1f2937!important;font-size:1.875rem;font-weight:700;margin:0}@media (min-width:768px){.pt-dashboard-title{font-size:2.25rem}}.pt-dashboard-slots{background:linear-gradient(135deg,#f3f4f6,#e5e7eb)!important;border:1px solid #d1d5db;border-radius:.75rem;color:#374151!important;display:flex;flex-direction:column;gap:.5rem;padding:1rem}@media (min-width:768px){.pt-dashboard-slots{align-items:center;flex-direction:row;gap:1rem;padding:1rem 1.5rem}}.pt-slots-label{color:#6b7280!important;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}@media (min-width:768px){.pt-slots-label{font-size:1rem}}.pt-slots-count{align-items:center;color:var(--pt-primary-color)!important;display:flex;font-size:1.5rem;font-weight:700;gap:.5rem}@media (min-width:768px){.pt-slots-count{font-size:1.75rem}}.pt-upload-section{background:#fff!important;border:1px solid #e5e7eb;border-radius:8px;color:#111827!important;margin-bottom:2rem;padding:2rem}.pt-upload-title{color:#111827!important;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.pt-upload-form{max-width:100%}.pt-upload-field{margin-bottom:1.5rem}.pt-upload-label{color:#374151!important;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.pt-upload-dropzone{background:#f9fafb!important;border:2px dashed #d1d5db;border-radius:6px;position:relative;transition:all .15s ease}.pt-upload-dropzone:hover{background:#f3f4f6;border-color:#9ca3af}.pt-upload-dropzone.pt-dragover{background:#eff6ff;border-color:#3b82f6;border-style:solid}.pt-upload-area{cursor:pointer;padding:2rem 1rem;position:relative;text-align:center}.pt-upload-icon{color:#6b7280;height:32px;margin:0 auto .75rem;transition:color .15s ease;width:32px}.pt-upload-dropzone:hover .pt-upload-icon{color:#374151}.pt-upload-dropzone.pt-dragover .pt-upload-icon{color:#3b82f6}.pt-upload-text{color:#374151!important;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.pt-upload-subtext{color:#6b7280!important;font-size:.8125rem}.pt-upload-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:1}.pt-upload-hint{color:#6b7280!important;font-size:.75rem;line-height:1.4;margin-top:.5rem;text-align:left}.pt-upload-actions{margin-top:1.5rem}.pt-upload-btn{align-items:center;background:#111827;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;min-height:36px;min-width:120px;padding:.625rem 1.25rem;transition:all .15s ease}.pt-upload-btn:hover:not(:disabled){background:#1f2937}.pt-upload-btn:focus:not(:disabled){box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.pt-upload-btn:active:not(:disabled){background:#0f172a}.pt-upload-btn:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed}.pt-upload-progress{background:#f9fafb;border-radius:6px;display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem}.pt-progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden;width:100%}.pt-progress-fill{background:#3b82f6;border-radius:4px;height:100%;transition:width .3s ease;width:0}.pt-progress-text{color:#6b7280;margin:0}.pt-progress-text,.pt-upload-message{font-size:.875rem;font-weight:500;text-align:center}.pt-upload-message{border-radius:6px;margin-top:1rem;padding:1rem}.pt-message-success{background:#d1fae5;border:1px solid #10b981;color:#065f46}.pt-message-error{background:#fee2e2;border:1px solid #ef4444;color:#991b1b}.pt-no-slots{background:#fef3c7;border:1px solid #f59e0b;border-radius:.75rem;margin-bottom:2rem;padding:1.5rem;text-align:center}.pt-no-slots-message{color:#92400e;font-size:1rem;line-height:1.6;margin:0}@media (min-width:768px){.pt-no-slots-message{font-size:1.125rem}}.pt-dashboard-images{margin-top:3rem}.pt-images-title{color:#1f2937!important;font-size:1.5rem;font-weight:600;margin:0 0 1.5rem}@media (min-width:768px){.pt-images-title{font-size:1.75rem;margin-bottom:2rem}}.pt-no-images{color:#6b7280!important;padding:3rem 1rem;text-align:center}.pt-no-images p{color:#6b7280!important;font-size:1.125rem;margin:0}.pt-images-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}@media (min-width:640px){.pt-images-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.pt-images-grid{gap:2rem;grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.pt-images-grid{grid-template-columns:repeat(4,1fr)}}.pt-image-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.pt-image-card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);transform:translateY(-2px)}.pt-image-thumbnail{background:#f3f4f6;overflow:hidden;padding-bottom:75%;position:relative;width:100%}.pt-image-thumbnail img{height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;transition:transform .3s ease;width:100%}.pt-image-card:hover .pt-image-thumbnail img{transform:scale(1.05)}.pt-image-status{backdrop-filter:blur(4px);border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.25rem .75rem;position:absolute;right:.75rem;text-transform:uppercase;top:.75rem}.pt-status-active{background:rgba(16,185,129,.9);color:#fff}.pt-status-removed{background:rgba(239,68,68,.9);color:#fff}.pt-status-pending{background:rgba(245,158,11,.9);color:#fff}.pt-image-stats{display:flex;flex-direction:column;gap:.75rem;padding:1rem}@media (min-width:768px){.pt-image-stats{padding:1.25rem}}.pt-stat{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:.5rem 0}.pt-stat:last-child{border-bottom:none}.pt-stat-label{color:#6b7280;font-size:.875rem;font-weight:500}.pt-stat-value{color:#1f2937;font-size:1rem;font-weight:700}.pt-stat-yes{color:var(--pt-success-color)}.pt-stat-no{color:var(--pt-danger-color)}@media (max-width:640px){.pt-dashboard{padding:.75rem}.pt-upload-section{margin-bottom:1.5rem;padding:1rem}.pt-images-grid{gap:1rem}.pt-image-stats{gap:.5rem;padding:.75rem}.pt-stat{padding:.375rem 0}.pt-stat-label{font-size:.8125rem}.pt-stat-value{font-size:.9375rem}}@media print{.pt-gallery-load-more,.pt-image-overlay,.pt-toast,.pt-upload-section,.pt-vote-buttons{display:none}.pt-gallery-card,.pt-image-card{-moz-column-break-inside:avoid;break-inside:avoid}.pt-dashboard{padding:0}.pt-dashboard-header{border-bottom:2px solid #000;margin-bottom:1rem}.pt-images-grid{gap:1rem;grid-template-columns:repeat(2,1fr)}}