:root{--bg-primary:#212121;--bg-secondary:#2c2c2c;--bg-card:#363636;--text-primary:#fff;--text-secondary:#ffffffb3;--accent-primary:#00bcd4;--accent-hover:#00a9bf;--accent-pressed:#0096aa;--brand-orange:#ff5722;--brand-orange-hover:#e64e1f;--brand-orange-pressed:#cc461b;--border-color:#424242;--success:#10b981;--warning:#ffd54f;--error:#ef4444;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}h1,h2,h3{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:700}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}#root{min-height:100vh}.container{width:100%;max-width:1400px;padding:0 var(--spacing-md);margin:0 auto}@media (width>=768px){.container{padding:0 var(--spacing-lg)}}@media (width>=1024px){.container{padding:0 var(--spacing-xl)}}.btn{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--accent-primary);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--bg-secondary)}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;transition:border-color .2s}.input:focus{border-color:var(--accent-primary);outline:none}.input::placeholder{color:var(--text-secondary)}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:var(--spacing-md) 0;z-index:100;position:sticky;top:0}.header-container{justify-content:space-between;align-items:center;display:flex}.logo{color:var(--text-primary);align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;text-decoration:none;transition:color .2s;display:flex}.logo-mark{width:1.75rem;height:1.75rem}.logo-snap{color:var(--brand-orange)}.logo:hover{color:var(--accent-primary)}.nav{align-items:center;gap:var(--spacing-lg);display:flex}.nav-link{color:var(--text-secondary);font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--text-primary)}@media (width<=768px){.nav{gap:var(--spacing-md)}.nav-link{font-size:.875rem}}.footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);padding:var(--spacing-xl) 0;text-align:center;color:var(--text-secondary);margin-top:auto}.layout{flex-direction:column;min-height:100vh;display:flex}.main{padding:var(--spacing-xl) 0;flex:1}.video-player{width:100%;height:100%;position:relative}.video-player img,.video-player video{object-fit:cover;width:100%;height:100%;display:block}.video-player__play{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:auto;font-size:24px;display:flex;position:absolute;inset:0}.video-player__play:hover{background:#000000bf}.gallery{padding:var(--spacing-xl) 0}.gallery-header{margin-bottom:var(--spacing-2xl)}.gallery-header h1{margin-bottom:var(--spacing-lg);font-size:2rem}.search-bar{max-width:600px}.filter-bar{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.filter-bar .input{max-width:200px}.filter-checkbox{align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);white-space:nowrap;cursor:pointer;font-size:.875rem;display:flex}.gallery-status{color:var(--text-secondary);padding:var(--spacing-lg) 0}.gallery-error{color:var(--error,#dc2626)}.image-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.image-card{background-color:var(--bg-card);border-radius:var(--radius-lg);color:var(--text-primary);box-shadow:var(--shadow-md);text-decoration:none;transition:transform .2s,box-shadow .2s;overflow:hidden}.image-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.image-info{padding:var(--spacing-md)}.location{margin-bottom:var(--spacing-xs);font-size:1rem;font-weight:600}.date{color:var(--text-secondary);margin-bottom:var(--spacing-sm);font-size:.875rem}.vehicles{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.plate,.racing-number,.vehicle-name{background-color:var(--bg-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.plate{color:var(--accent-primary);background-color:#00bcd41a}.racing-number{color:var(--warning);background-color:#ffd54f1a}.photographer{color:var(--text-secondary);font-size:.875rem}@media (width<=768px){.image-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.gallery-header h1{font-size:1.5rem}}.image-detail{padding:var(--spacing-xl) 0}.image-container{margin-bottom:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.image-container img{width:100%;height:auto;display:block}.image-meta{max-width:800px;margin:0 auto}.meta-header{margin-bottom:var(--spacing-lg)}.meta-header h1{margin-bottom:var(--spacing-xs);font-size:2rem}.date{color:var(--text-secondary);font-size:1rem}.photographer-info{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.vehicles-section{margin-bottom:var(--spacing-xl)}.vehicles-section h2{margin-bottom:var(--spacing-md);font-size:1.25rem}.vehicle-list{gap:var(--spacing-md);flex-direction:column;display:flex}.vehicle-card{background-color:var(--bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md)}.vehicle-field{gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);display:flex}.vehicle-field:last-child{margin-bottom:0}.label{color:var(--text-secondary);min-width:100px;font-weight:500}.value{font-weight:600}.plate{color:var(--accent-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background-color:#00bcd41a}.purchase-section{padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.price{color:var(--brand-orange);font-size:2rem;font-weight:700}.btn-large{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.btn-purchase{background-color:var(--brand-orange);color:var(--text-primary)}.btn-purchase:hover{background-color:var(--brand-orange-hover)}.btn-purchase:active{background-color:var(--brand-orange-pressed)}@media (width<=768px){.meta-header h1{font-size:1.5rem}.purchase-section{gap:var(--spacing-md);flex-direction:column;align-items:stretch}.price{text-align:center}.btn-large{width:100%}}.login-page{min-height:calc(100vh - 200px);padding:var(--spacing-xl) 0;justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:450px;margin:0 auto}.login-lockup{margin-bottom:var(--spacing-lg);flex-direction:column;align-items:center;display:flex}.lockup-emblem{width:2.5rem;height:2.5rem;margin-bottom:var(--spacing-sm)}.lockup-name{color:var(--text-primary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1.75rem;font-weight:700;line-height:1.2}.lockup-snap{color:var(--brand-orange)}.lockup-tagline{color:var(--text-secondary);margin-top:var(--spacing-xs);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.875rem;font-weight:400}.login-card h1{margin-bottom:var(--spacing-sm);text-align:center;font-size:2rem}.login-footer{margin-top:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.login-footer a{color:var(--accent-primary);text-decoration:none}.login-footer a:hover{text-decoration:underline}@media (width<=768px){.login-card{padding:var(--spacing-md)}.login-card h1{font-size:1.5rem}}.register-page{min-height:calc(100vh - 200px);padding:var(--spacing-xl) 0;justify-content:center;align-items:center;display:flex}.register-card{width:100%;max-width:450px;margin:0 auto}.register-card h1{margin-bottom:var(--spacing-sm);text-align:center;font-size:2rem}.subtitle{color:var(--text-secondary);text-align:center;margin-bottom:var(--spacing-xl)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500;display:block}.btn-block{width:100%;padding:var(--spacing-md);font-size:1rem}.error-message{color:var(--error);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);text-align:center;background-color:#ef44441a}.register-footer{margin-top:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.register-footer a{color:var(--accent-primary);text-decoration:none}.register-footer a:hover{text-decoration:underline}@media (width<=768px){.register-card{padding:var(--spacing-md)}.register-card h1{font-size:1.5rem}}.verify-page{justify-content:center;align-items:center;min-height:calc(100vh - 200px);padding:2rem 1rem;display:flex}.verify-card{width:100%;max-width:450px}.verify-card h1{margin-bottom:.5rem;font-size:1.75rem}.subtitle{color:var(--text-secondary);margin-bottom:1.5rem}.verify-footer{text-align:center;color:var(--text-secondary);margin-top:1.5rem}.link-button{color:var(--primary-color);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--primary-hover)}.terms-page{padding:var(--spacing-xl) 0}.terms-card{max-width:800px;margin:0 auto}.terms-card h1{margin-bottom:var(--spacing-xl);text-align:center;font-size:2rem}.terms-content{max-height:500px;padding:var(--spacing-lg);background-color:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);overflow-y:auto}.terms-content h2{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md);color:var(--accent-primary);font-size:1.25rem}.terms-content h2:first-child{margin-top:0}.terms-content p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}.terms-content ul{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-lg);color:var(--text-secondary)}.terms-content li{margin-bottom:var(--spacing-sm)}.terms-agreement{border-top:1px solid var(--border-color);padding-top:var(--spacing-xl)}.checkbox-label{align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);cursor:pointer;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:20px;height:20px;margin-top:2px}@media (width<=768px){.terms-card{padding:var(--spacing-md)}.terms-card h1{font-size:1.5rem}.terms-content{max-height:400px;padding:var(--spacing-md)}}.image-upload{max-width:800px;margin:0 auto}.upload-form h2{margin-bottom:var(--spacing-lg);font-size:1.5rem}.metadata-form{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:1fr 1fr;display:grid}.drop-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;background-color:var(--bg-secondary);margin-bottom:var(--spacing-xl);transition:border-color .2s,background-color .2s}.drop-zone:hover{border-color:var(--accent-primary);background-color:#00bcd40d}.drop-zone p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.file-list{margin-bottom:var(--spacing-xl)}.file-list h3{margin-bottom:var(--spacing-md);color:var(--text-secondary);font-size:1rem}.file-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.file-size{color:var(--text-secondary);font-size:.875rem}.btn-remove{color:var(--error);cursor:pointer;padding:0 var(--spacing-sm);background:0 0;border:none;font-size:1.5rem;line-height:1}.btn-remove:hover:not(:disabled){opacity:.7}.btn-remove:disabled{opacity:.5;cursor:not-allowed}.upload-progress{margin-bottom:var(--spacing-xl)}.upload-progress h3{margin-bottom:var(--spacing-md);color:var(--text-secondary);font-size:1rem}.progress-item{margin-bottom:var(--spacing-md)}.progress-info{margin-bottom:var(--spacing-xs);justify-content:space-between;display:flex}.progress-filename{text-overflow:ellipsis;white-space:nowrap;max-width:70%;font-weight:500;overflow:hidden}.progress-status{text-transform:capitalize;font-size:.875rem;font-weight:500}.status-pending{color:var(--text-secondary)}.status-uploading{color:var(--accent-primary)}.status-completed{color:var(--success)}.status-error{color:var(--error)}.progress-bar{background-color:var(--bg-secondary);border-radius:var(--radius-sm);height:8px;overflow:hidden}.progress-fill{background-color:var(--accent-primary);height:100%;transition:width .3s}@media (width<=768px){.metadata-form{grid-template-columns:1fr}.drop-zone{padding:var(--spacing-lg)}}.photographer-dashboard{padding:var(--spacing-xl) 0}.dashboard-header{margin-bottom:var(--spacing-2xl)}.dashboard-header h1{margin-bottom:var(--spacing-lg);font-size:2rem}.tabs{gap:var(--spacing-sm);border-bottom:2px solid var(--border-color);display:flex}.tab{padding:var(--spacing-md) var(--spacing-lg);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:1rem;font-weight:500;transition:color .2s;position:relative}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-primary)}.tab.active:after{content:"";background-color:var(--accent-primary);height:2px;position:absolute;bottom:-2px;left:0;right:0}.images-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.image-card{padding:0;overflow:hidden}.image-card img{object-fit:cover;width:100%;height:225px;display:block}.image-meta{padding:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.image-info .location{margin-bottom:var(--spacing-xs);font-weight:600}.image-info .date{color:var(--text-secondary);font-size:.875rem}.status-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);text-transform:uppercase;font-size:.75rem;font-weight:600}.status-processing{color:var(--warning);background-color:#ffd54f1a}.status-active{color:var(--success);background-color:#10b9811a}.status-removed{color:var(--error);background-color:#ef44441a}.earnings-section{max-width:800px;margin:0 auto}.earnings-summary h2{margin-bottom:var(--spacing-xl);font-size:1.5rem}.earnings-stats{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{text-align:center;padding:var(--spacing-lg);background-color:var(--bg-secondary);border-radius:var(--radius-md)}.stat-value{color:var(--accent-primary);margin-bottom:var(--spacing-xs);font-size:2rem;font-weight:700;display:block}.stat-label{color:var(--text-secondary);font-size:.875rem;display:block}.stripe-onboarding{margin-top:var(--spacing-xl);text-align:center}.stripe-onboarding h3{margin-bottom:var(--spacing-md);font-size:1.25rem}.stripe-onboarding p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}@media (width<=768px){.dashboard-header h1{font-size:1.5rem}.tabs{overflow-x:auto}.tab{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem}.images-grid,.earnings-stats{grid-template-columns:1fr}}
