:root{color-scheme:dark;--bg:#080808;--panel:#141414;--line:#292929;--muted:#949494;--text:#f1efeb;--accent:#c65b28;--accent-hover:#df7039}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:15px;min-height:100dvh;display:flex;flex-direction:column}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent-hover);outline-offset:4px}button:disabled{opacity:.5;cursor:wait}header{height:82px;padding:0 4.5%;border-bottom:1px solid #1d1d1d;display:flex;justify-content:space-between;align-items:center;background:#0b0b0b}.brand{display:flex;gap:4px;text-decoration:none;font-size:21px;font-weight:800;letter-spacing:-.9px;color:var(--accent)}.brand span{font-weight:400;color:var(--text)}#account{display:flex;align-items:center;gap:18px}#username{color:var(--muted);font-size:13px}main{width:100%;max-width:1800px;margin:0 auto;padding:40px 4.5% 64px;flex:1}h1,h2,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;font-weight:600;margin-bottom:0}h2{font-size:20px;font-weight:500;letter-spacing:-.4px}input,select{color:var(--text);background:#151515;border:1px solid #343434;border-radius:5px;padding:11px 13px;outline:none}input:focus,select:focus{border-color:var(--accent)}.primary{background:var(--accent);color:white;padding:13px 23px;border-radius:5px;font-weight:600}.primary:hover{background:var(--accent-hover)}.quiet{color:#dedbd7;background:#222;border:1px solid #383838;border-radius:5px;padding:10px 15px;font-size:13px}.quiet:hover{background:#303030}.error{color:#ffb29a;font-size:14px;line-height:1.5}.error:empty{display:none}.login-layout{display:grid;place-items:center;min-height:65dvh}.login-card{background:#121212;border:1px solid var(--line);border-radius:9px;padding:38px;width:min(100%,390px)}.login-card h1{margin-bottom:30px;font-size:30px}.login-card label{display:block;font-size:13px;margin:20px 0 9px;color:#ccc}.login-card input,.login-card .primary{width:100%}.login-card .primary{margin:27px 0 0}.login-card .error{margin-top:18px;margin-bottom:0}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px}.library-heading h1{display:flex;align-items:center;gap:13px}#movie-count{font-size:12px;color:var(--muted);letter-spacing:0;font-weight:400;background:#191919;border:1px solid #292929;padding:5px 8px;border-radius:5px}.search-label input{width:260px;padding-left:16px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px}.section-title h2{margin:0}.movie-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:29px 20px}.movie-row{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px)/3);gap:20px;overflow-x:auto;padding:3px 2px 15px;scroll-snap-type:x proximity;scrollbar-color:#653b28 #101010;scrollbar-width:thin}.movie-row>.movie-card{scroll-snap-align:start}#continue-section{margin-bottom:30px}.library-toolbar{margin-bottom:24px}.genres{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:3px 2px 15px;scrollbar-width:thin;scrollbar-color:#653b28 #101010}.genre-chip{padding:8px 15px;border-radius:5px;background:#181818;color:#bcbcbc;white-space:nowrap;font-size:13px;border:1px solid #282828}.genre-chip:hover{color:var(--text);border-color:#714125}.genre-chip[aria-pressed=true]{color:#fce6da;border-color:#9b4c25;background:#422211}.filters{display:flex;gap:10px;align-items:center;margin-top:5px}.filters select{font-size:12px;padding:9px 28px 9px 11px;background:#101010;color:#bcbcbc}.group-toggle{font-size:12px;color:#bcbcbc;display:flex;align-items:center;gap:7px;margin-left:auto;white-space:nowrap}.group-toggle input{accent-color:var(--accent);width:15px;height:15px}.movie-card{background:none;border:0;padding:0;text-align:left;color:var(--text);min-width:0;width:100%;display:block;align-self:start}.artwork{width:100%;aspect-ratio:16/9;border-radius:7px;background:linear-gradient(130deg,#2b201a,#131313);position:relative;overflow:hidden;border:1px solid #ffffff0c;display:grid;place-items:center;isolation:isolate;transition:border-color .16s,transform .16s}.artwork img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.artwork .poster-fallback{object-fit:contain;background:#19130f}.artwork .fallback-title{padding:25px;text-align:center;color:#c7bbb3;line-height:1.5;font-size:18px}.artwork.has-image .fallback-title{visibility:hidden}.card-play{position:absolute;inset:0;display:grid;place-items:center;background:#0003;opacity:0;transition:opacity .16s}.card-play span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#c65b28ef;color:#fff;font-size:16px;padding-left:3px}.movie-card:hover .artwork,.movie-card:focus-visible .artwork{border-color:#ad572d;transform:translateY(-2px)}.movie-card:hover .card-play,.movie-card:focus-visible .card-play{opacity:1}.movie-title{font-size:14px;font-weight:500;margin:12px 0 7px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.movie-meta{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center;flex-wrap:wrap}.badge{position:absolute;right:9px;top:9px;background:#090909d9;border:1px solid #ffffff2a;color:#efe7df;border-radius:4px;padding:4px 6px;font-size:10px}.resume-text{color:#c1805c;font-size:12px}.progress-bar{position:absolute;bottom:0;left:0;width:100%;height:4px;accent-color:var(--accent);border:0;background:#252525}.progress-bar::-webkit-progress-bar{background:#252525}.progress-bar::-webkit-progress-value{background:var(--accent)}.progress-bar::-moz-progress-bar{background:var(--accent)}.genre-section{margin-bottom:30px}.genre-section .section-title span{color:var(--muted);font-size:12px}.empty{padding:65px 15px;text-align:center;color:var(--muted);font-size:14px}.muted{color:var(--muted)}dialog{color:var(--text);background:#141414;border:1px solid #333;border-radius:10px;padding:0;width:min(800px,94vw);max-height:92dvh}dialog::backdrop{background:#000c;backdrop-filter:blur(7px)}.close{position:absolute;right:15px;top:15px;z-index:3;display:grid;place-items:center;background:#101010dc;color:#fff;border:1px solid #ffffff35;border-radius:50%;width:36px;height:36px;font-size:24px}.detail-layout .artwork{border:0;border-radius:0;aspect-ratio:2.15/1}.detail-layout .artwork:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#141414,transparent 60%)}.detail-copy{position:relative;padding:0 34px 30px;margin-top:-25px}.detail-copy h2{font-size:30px;line-height:1.15;margin-bottom:14px;max-width:640px}.detail-copy p{line-height:1.65;font-size:14px}.detail-copy #detail-overview{color:#c6c2be;max-width:650px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.actions button{font-size:13px}.detail-copy #preparation{font-size:13px;color:#df9a70;margin:20px 0 0}.detail-copy #preparation:empty{display:none}#player-dialog{width:min(1200px,98vw);background:#080808;padding:18px}.player-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:15px}.player-top h2{font-size:17px;margin:0}video{width:100%;max-height:68dvh;background:#000;display:block}.player-bottom{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:15px}.player-bottom label{font-size:12px;color:var(--muted)}.player-bottom select{padding:8px;max-width:150px;font-size:12px}.player-bottom button{font-size:12px}.player-bottom #back-ten{margin-right:auto}.player-bottom #forward-ten{margin-left:auto}#player-status{font-size:12px;color:var(--muted);text-align:center;margin:14px 0 0}#player-status:empty{display:none}footer{padding:20px 4.5%;border-top:1px solid #1a1a1a;color:#777;font-size:11px}.credits{max-width:420px;line-height:1.6}.credits summary{cursor:pointer;width:fit-content}.credits img{display:block;margin:16px 0 12px;height:auto}.credits p{margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(min-width:1500px){.movie-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.movie-row{grid-auto-columns:calc((100% - 60px)/4)}}
@media(max-width:1000px){.movie-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.movie-row{grid-auto-columns:calc((100% - 20px)/2)}}
@media(max-width:600px){header{height:66px;padding:0 20px}.brand{font-size:18px}#username{display:none}main{padding:28px 20px 45px}.library-heading{display:block;margin-bottom:28px}.library-heading h1{font-size:28px;margin-bottom:20px}.search-label input{width:100%}.section-title h2{font-size:18px}.movie-grid{grid-template-columns:1fr;gap:27px}.movie-row{grid-auto-columns:85%;gap:14px}.filters{flex-wrap:wrap;gap:8px}.filters select{padding-right:20px;flex:1}.group-toggle{width:100%;margin:5px 0 0}.movie-title{font-size:14px}.genres{margin-right:-20px;padding-right:20px}.detail-copy{padding:0 20px 25px;margin-top:-12px}.detail-copy h2{font-size:25px}.detail-layout .artwork{aspect-ratio:16/10}.actions{gap:8px}.actions button{padding:11px 13px}.player-top h2{font-size:14px}.player-top button{font-size:12px;white-space:nowrap}.player-bottom{gap:7px;flex-wrap:wrap}.player-bottom button{padding:10px}.player-bottom label{font-size:11px}.player-bottom select{max-width:100px}.login-card{padding:28px}.login-layout{min-height:60dvh}}
@media(prefers-reduced-motion:reduce){.artwork,.card-play{transition:none}}

/* Supplied Snowflix wordmark; blend its black canvas into the header. */
header{background:#000}.brand{display:block;line-height:0;flex-shrink:0}.brand img{display:block;width:240px;height:80px;object-fit:contain}
@media(max-width:600px){.brand img{width:180px;height:60px}}

.admin-copy{padding:32px}.admin-copy h2{padding-right:30px}.admin-copy li{overflow-wrap:anywhere;margin:8px 0}.admin-copy label{display:block;margin:16px 0 8px}.admin-copy input{width:100%;margin-bottom:12px}#refresh-status{margin-top:20px}#refresh-errors{color:#ffb29a}#admin-dialog{width:min(600px,94vw)}@media(max-width:600px){#account{gap:6px}#account button{padding:9px 7px;font-size:11px}.brand img{width:150px;height:50px}}

#admin-dialog{width:min(850px,96vw)}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.admin-tabs button[aria-pressed=true]{background:var(--accent);color:white}.admin-copy section{border-top:1px solid var(--line);padding-top:10px}.admin-copy select{width:100%;margin-bottom:12px}.admin-copy form{margin-bottom:24px}.admin-copy .inline-label{display:flex;align-items:center;gap:10px}.inline-label input{width:auto;margin:0}.user-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:16px 0}.user-row span{flex:1;overflow-wrap:anywhere}.admin-copy li button{margin-left:14px}#system-status dt{color:var(--muted);margin-top:16px}#system-status dd{margin:5px 0;overflow-wrap:anywhere}#admin-message{color:#df9a70}

/* Keep the admin frame and navigation fixed while each section scrolls. */
#admin-dialog{height:min(780px,92dvh);max-height:92dvh;overflow:hidden}
#admin-dialog .admin-copy{height:100%;min-height:0;display:grid;grid-template-rows:auto auto 44px minmax(0,1fr);padding:28px}
#admin-dialog .admin-copy>h2{margin:0;padding-right:40px}
#admin-dialog .admin-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:22px 0 0}
#admin-dialog .admin-tabs button{padding:11px 6px}
#admin-message{margin:0;padding:8px 0;font-size:13px;overflow:auto}
#admin-dialog .admin-copy>section{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:16px 12px 16px 0}
@media(max-width:600px){#admin-dialog .admin-copy{padding:22px 16px}#admin-dialog .admin-tabs{gap:5px}#admin-dialog .admin-tabs button{font-size:12px}}
