*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f0f0f;--surface: #1a1a1a;--surface-hover: #242424;--border: #2a2a2a;--text: #e8e8e8;--text-muted: #888;--accent: #e8b34b;--accent-dim: #c4922a;--tag-bg: #2a2a2a;--tag-text: #bbb}html{font-size:16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}header{padding:2.5rem 2rem 1.5rem;text-align:center}header h1{font-size:2rem;font-weight:700;letter-spacing:-.02em;color:var(--accent)}.subtitle{color:var(--text-muted);font-size:.95rem;margin-top:.25rem}#rotating-text{transition:opacity .3s ease}.subtitle-ft{color:var(--accent-dim);font-style:italic;font-size:.95rem;margin-top:.15rem}.letterboxd-user{max-width:900px;margin:0 auto 1.5rem;padding:0 1.5rem}.lb-user-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.lb-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.lb-header-left{display:flex;align-items:center;gap:.75rem}.btn-export-link{color:#00e054;text-decoration:none;font-size:.75rem;font-weight:600;border:1px solid rgba(0,224,84,.3);padding:.3rem .6rem;border-radius:6px;transition:all .2s ease;white-space:nowrap}.btn-export-link:hover{background:#00e0540d;border-color:#00e054}.lb-header h2{font-size:1.1rem;font-weight:600;margin:0}.lb-icon-label{font-size:.65rem;font-weight:800;text-transform:uppercase;color:#00e054;border:1.5px solid #00e054;border-radius:4px;padding:.1rem .3rem}.lb-upload-zone{position:relative;background:var(--bg);border:2px dashed var(--border);border-radius:8px;padding:1.5rem;text-align:center;transition:all .2s ease}.lb-upload-zone:hover{border-color:#00e054;background:#00e05405}.lb-file-label{display:flex;flex-direction:column;gap:.4rem;cursor:pointer}.lb-file-label strong{font-size:.95rem;color:var(--text)}.lb-file-label span{font-size:.75rem;color:var(--text-muted);font-style:italic}.lb-file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.lb-status{font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;border-radius:6px}.lb-status.loading{color:var(--accent);background:#ffffff0d}.lb-status.success{color:#00e054;background:#00e0540d}.lb-status.error{color:#ff6b6b;background:#ff6b6b0d}.lb-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:#00e054;border-radius:50%;animation:lb-spin .6s linear infinite}@keyframes lb-spin{to{transform:rotate(360deg)}}.card-foryou{margin-top:.15rem}.foryou-badge{font-size:.75rem;padding:.1rem .5rem;border-radius:4px;font-weight:500}.foryou-badge.rated{color:#00e054;background:#00e0541a;border:1px solid rgba(0,224,84,.25)}.foryou-badge.liked{color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.25)}.foryou-badge.seen{color:var(--text-muted);background:var(--tag-bg)}.filters{max-width:900px;margin:0 auto 1.5rem;padding:0 1.5rem}.filters-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:140px}.filter-group label{font-size:.75rem;color:var(--text-muted);text-transform:lowercase}.filter-group select,.filter-group input[type=date]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;padding:.5rem .65rem;font-family:inherit;cursor:pointer;transition:border-color .15s}.filter-group select:hover,.filter-group input[type=date]:hover{border-color:var(--text-muted)}.filter-group select:focus,.filter-group input[type=date]:focus{outline:none;border-color:var(--accent)}.filter-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23888'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:1.8rem}.filter-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}.filter-actions{flex:0;min-width:auto}.btn-reset{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:.85rem;padding:.5rem 1rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.btn-reset:hover{color:var(--text);border-color:var(--text-muted)}.filter-count{font-size:.8rem;color:var(--text-muted);margin-top:.75rem}main{max-width:900px;margin:0 auto;padding:0 1.5rem 4rem}.loading{text-align:center;color:var(--text-muted);padding:4rem 0;font-size:1.1rem}.error{text-align:center;color:#e85454;padding:4rem 0}.no-results{text-align:center;color:var(--text-muted);padding:4rem 0;font-size:1.1rem}.date-group{margin-bottom:2.5rem}.date-heading{font-size:1.1rem;font-weight:600;color:var(--accent);padding-bottom:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:10}.screening-card{display:grid;grid-template-columns:60px 1fr;gap:1rem;padding:1rem;margin-bottom:.5rem;border-radius:8px;background:var(--surface);transition:background .15s}.screening-card:hover{background:var(--surface-hover)}.card-poster{width:60px;height:90px;border-radius:4px;object-fit:cover;background:var(--border)}.card-poster.no-poster{display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-muted)}.card-body{display:flex;flex-direction:column;gap:.3rem;min-width:0}.card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.card-title{font-size:1rem;font-weight:600;color:var(--text);min-width:0}.card-title .year{color:var(--text-muted);font-weight:400}.card-title .title-link{color:var(--text);text-decoration:none}.card-title .title-link:hover{color:var(--accent)}.rating-badge{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;white-space:nowrap;flex-shrink:0}.lb-icon{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#00e054;border:1px solid #00e054;border-radius:3px;padding:.05rem .25rem;line-height:1.2}.stars{display:inline-flex;font-size:.8rem;line-height:1}.star.full{color:#00e054}.star.half{color:#00e054;opacity:.55}.star.empty{color:var(--border)}.rating-num{font-size:.8rem;font-weight:600;color:#00e054;transition:color .15s}.rating-count{font-size:.7rem;color:var(--text-muted);font-weight:400}.card-venues-container{margin-top:.6rem;display:flex;flex-direction:column;gap:.75rem}.card-venue-row{display:flex;flex-direction:column;gap:.2rem}.venue-info{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.venue-name{font-weight:600;color:var(--text);font-size:.9rem}.venue-times-list{display:flex;flex-wrap:wrap;gap:.5rem}.venue-time-item{font-size:.8rem;color:var(--text-muted);background:#ffffff08;padding:.15rem .4rem;border-radius:4px;display:flex;gap:.25rem;align-items:baseline}.v-date{font-weight:500}.v-at{opacity:.5;font-size:.7rem}.v-times{color:var(--text-muted)}.ticket-link{color:var(--accent)!important;text-decoration:none;font-size:.75rem;font-weight:500}.ticket-link:hover{text-decoration:underline}.btn-more-times{background:var(--tag-bg);border:1px solid var(--border);color:var(--text-muted);font-size:.75rem;padding:.35rem .75rem;border-radius:6px;cursor:pointer;width:fit-content;align-self:flex-start;margin-top:.25rem;transition:all .2s ease}.btn-more-times:hover{background:var(--surface-hover);color:var(--text);border-color:var(--text-muted)}.card-venues-extra{display:flex;flex-direction:column;gap:.75rem}.card-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.tag{display:inline-block;font-size:.75rem;padding:.15rem .5rem;border-radius:4px;background:var(--tag-bg);color:var(--tag-text)}.tag.format{color:var(--accent);border:1px solid var(--accent-dim);background:transparent}@media(max-width:600px){.lb-header{flex-wrap:wrap;gap:.5rem}header{padding:1.5rem 1rem .75rem}header h1{font-size:1.5rem}.subtitle{font-size:.85rem}.filters-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.filter-group{min-width:0}.filter-group select,.filter-group input[type=date]{font-size:.8rem;padding:.55rem .5rem;width:100%;min-height:2.4rem}.btn-reset{width:100%;padding:.55rem .5rem}main{padding:0 .75rem 3rem}.screening-card{grid-template-columns:48px 1fr;gap:.75rem;padding:.75rem}.card-poster{width:48px;height:72px}.card-header{flex-direction:column;align-items:flex-start;gap:.25rem}.card-title{font-size:.9rem}.tag{font-size:.7rem}.date-heading{font-size:1rem;padding:.5rem 0}}
