:root{--ink:#17201d;--muted:#66706c;--paper:#f5f3ed;--card:#fff;--line:#deddd6;--accent:#d85b36;--accent-dark:#aa3f20;--green:#254e43;--shadow:0 18px 50px rgba(25,35,31,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button,input,select,textarea{font:inherit}button{cursor:pointer}
.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);border-bottom:1px solid var(--line);background:rgba(245,243,237,.9);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.12rem}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-family:"Playfair Display",serif}.container{width:min(1180px,90%);margin:0 auto;min-height:calc(100vh - 150px)}footer{text-align:center;color:var(--muted);padding:42px 20px}
.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:999px;padding:11px 20px;background:#fff;color:var(--ink);font-weight:700;transition:.2s transform,.2s background}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.compact{padding:9px 18px}.danger{color:#a12626;border-color:#e4bcbc}.danger:hover{background:#fff0f0}
.hero{padding:90px 0 52px;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--accent-dark);font-weight:700;margin:0 0 12px}.hero h1,.page-heading h1,.detail h1{font-family:"Playfair Display",serif;font-size:clamp(2.8rem,7vw,6rem);line-height:.95;margin:0;letter-spacing:-.035em}.hero h1 em{color:var(--accent);font-style:italic}.hero-copy{color:var(--muted);font-size:1.1rem;max-width:520px;margin:24px 0 0}
.filters{display:flex;gap:12px;align-items:center;margin-bottom:36px}.filters .search{flex:1}.filters input,.filters select,.movie-form input,.movie-form select,.movie-form textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px 14px;color:var(--ink);outline:none}.filters input:focus,.filters select:focus,.movie-form input:focus,.movie-form select:focus,.movie-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(216,91,54,.12)}.filters select{width:180px}.reset{color:var(--muted);text-decoration:underline}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.card{background:var(--card);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);transition:.25s transform}.card:hover{transform:translateY(-6px)}.poster{aspect-ratio:2/3;background:linear-gradient(140deg,var(--green),#4d776b);position:relative;display:grid;place-items:center;color:#fff;font-family:"Playfair Display",serif;font-size:5rem}.badge{position:absolute;top:14px;left:14px;background:rgba(20,28,25,.82);color:#fff;border-radius:999px;padding:5px 10px;font:600 .72rem "DM Sans",sans-serif}.badge.inline{position:static;display:inline-block}.card-body{padding:18px}.card h2{font-size:1.05rem;margin:0 0 6px}.card p{color:var(--muted);font-size:.86rem;margin:0}.card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:.82rem}.status{color:var(--green);font-weight:700}
.empty{text-align:center;background:#fff;border:1px dashed #c8c6bd;border-radius:24px;padding:70px 24px}.empty-icon{font-size:2rem;color:var(--accent)}.empty h2{font-family:"Playfair Display",serif;font-size:2rem;margin:12px 0}.empty p{color:var(--muted)}
.page-heading{display:flex;align-items:end;justify-content:space-between;padding:62px 0 34px}.page-heading h1{font-size:clamp(2.4rem,5vw,4.5rem)}.back{display:inline-block;color:var(--muted);font-weight:600;margin:30px 0}.movie-form{display:grid;gap:24px}.form-section{padding:28px;background:#fff;border-radius:20px;box-shadow:var(--shadow)}.form-section h2{margin:0 0 22px;font-family:"Playfair Display",serif;font-size:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{display:grid;gap:7px;font-weight:600;font-size:.9rem}.form-grid .wide{grid-column:1/-1}.movie-form textarea{resize:vertical}.movie-form select[multiple]{min-height:138px}.hint{color:var(--muted);font-size:.85rem;margin:-13px 0 20px}.form-actions{display:flex;justify-content:flex-end;gap:12px}.alert{padding:15px 18px;border-radius:12px;margin:20px 0}.alert.success{background:#dfeee8;color:#17483b}.alert.error{background:#fff0ed;color:#922e19}.alert ul{margin:8px 0 0}
.detail{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:clamp(35px,6vw,90px);padding-bottom:40px}.detail-poster{border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.detail-content{padding-top:16px}.detail-top{display:flex;gap:14px;align-items:center;color:var(--muted)}.detail h1{font-size:clamp(3rem,6vw,5.5rem);margin:20px 0 28px}.lead{font-size:1.08rem;color:#48514e}.detail dl{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:32px}.detail dl div{padding:16px 12px 16px 0;border-bottom:1px solid var(--line)}.detail dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.detail dd{margin:4px 0 0;font-weight:600}.detail-actions{display:flex;gap:12px;margin-top:30px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.grid{grid-template-columns:repeat(3,1fr)}.detail{grid-template-columns:280px 1fr;gap:36px}.detail dl{grid-template-columns:1fr}}
@media(max-width:680px){.site-header{height:68px}.container{width:min(92%,560px)}.hero{padding:60px 0 38px}.filters{align-items:stretch;flex-wrap:wrap}.filters .search{flex-basis:100%}.filters select{width:auto;flex:1}.grid{grid-template-columns:repeat(2,1fr);gap:14px}.card-body{padding:14px}.page-heading{align-items:start;flex-direction:column}.page-heading .back{margin:16px 0 0}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.form-section{padding:20px}.detail{grid-template-columns:1fr}.detail-poster{width:min(100%,340px);margin:auto}.detail h1{font-size:3rem}.detail-actions{flex-wrap:wrap}.detail-actions>*{flex:1}.detail-actions .button{width:100%}}
@media(max-width:390px){.grid{grid-template-columns:1fr}.card{max-width:290px;margin:auto;width:100%}.compact{font-size:.85rem;padding:8px 13px}}

.backdrop{width:100%;aspect-ratio:21/8;max-height:460px;border-radius:24px;overflow:hidden;margin:0 0 38px;box-shadow:var(--shadow);background:var(--green)}
.backdrop img{object-position:center}
@media(max-width:680px){.backdrop{aspect-ratio:16/9;border-radius:16px;margin-bottom:26px}}

.grid{align-items:stretch}
.card,.card>a{height:100%}
.card>a{display:flex;flex-direction:column}
.poster{width:100%;height:auto;aspect-ratio:2/3;overflow:hidden;isolation:isolate}
.poster img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover}
.poster .badge{z-index:2}
.poster-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:5rem;z-index:0}
.card-body{display:flex;flex:1;flex-direction:column}
.card-meta{margin-top:auto;padding-top:16px}
.detail-poster{height:auto}

.field-group{display:flex;flex-direction:column;gap:7px}
.field-group>label{font-weight:600;font-size:.9rem}
.field-group>select{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px 14px;color:var(--ink);outline:none}
.quick-add{align-self:flex-start;border:0;background:transparent;color:var(--accent-dark);font-weight:700;padding:5px 2px}
.quick-add:hover{text-decoration:underline}
.person-dialog{width:min(620px,calc(100% - 32px));border:0;border-radius:22px;padding:0;box-shadow:0 30px 90px rgba(16,26,22,.3)}
.person-dialog::backdrop{background:rgba(14,24,20,.6);backdrop-filter:blur(4px)}
.person-form{padding:28px}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.dialog-heading h2{font-family:"Playfair Display",serif;font-size:1.8rem;margin:0}
.dialog-close{border:0;background:#f0eee8;width:38px;height:38px;border-radius:50%;font-size:1.5rem;line-height:1}
.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.dialog-grid label{display:grid;gap:7px;font-weight:600;font-size:.9rem}
.dialog-grid .wide{grid-column:1/-1}
.dialog-grid input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px}
.dialog-message{min-height:24px;margin:14px 0 5px;font-weight:600}
.success-text{color:#187050}.error-text{color:#a12626}
@media(max-width:560px){.dialog-grid{grid-template-columns:1fr}.dialog-grid .wide{grid-column:auto}.person-form{padding:20px}}

.header-actions{display:flex;align-items:center;gap:18px}.team-link{font-weight:700;color:var(--green)}
.people-heading h1{font-size:clamp(2.7rem,6vw,5.2rem)}
.people-list{display:grid;gap:12px}
.person-row{display:grid;grid-template-columns:76px minmax(180px,1fr) 100px auto;gap:18px;align-items:center;padding:14px 18px;background:#fff;border-radius:16px;border:1px solid var(--line)}
.avatar{position:relative;width:68px;height:68px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--green);color:#fff;font-weight:700}
.avatar img{position:absolute;inset:0;z-index:1}.person-main h2{font-size:1rem;margin:0 0 3px}.person-main p,.person-count{margin:0;color:var(--muted);font-size:.88rem}.person-actions{display:flex;gap:8px}.person-page-form{max-width:800px;margin:auto}
@media(max-width:760px){.person-row{grid-template-columns:52px 1fr}.person-count{grid-column:2}.person-actions{grid-column:1/-1}.person-actions>*{flex:1}.person-actions .button{width:100%}}
@media(max-width:600px){.site-header{padding-inline:14px}.brand>span:last-child{display:none}.team-link{font-size:.82rem}.header-actions{gap:10px}.header-actions .compact{padding:8px 12px}.person-row{padding:14px}.people-heading .button{margin-top:18px}}

.login-link,.logout-link{border:0;background:transparent;color:var(--accent-dark);font-weight:700;padding:5px 0}
.logout-link:hover,.login-link:hover{text-decoration:underline}
.login-page{display:grid;grid-template-columns:minmax(360px,560px) 1fr;min-height:calc(100vh - 150px);gap:5vw;align-items:center;padding:50px 0}
.login-panel{max-width:500px}.login-brand{margin-bottom:60px}.login-panel h1{font-family:"Playfair Display",serif;font-size:clamp(2.8rem,5vw,4.7rem);line-height:.95;margin:0}
.login-copy{color:var(--muted);max-width:450px;margin:24px 0}.login-form{display:grid;gap:18px}.login-form label{display:grid;gap:7px;font-weight:600}.login-form input{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;outline:none}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(216,91,54,.12)}.login-form .button{margin-top:5px}
.login-visual{height:min(680px,72vh);border-radius:28px;background:linear-gradient(145deg,rgba(22,40,34,.2),rgba(22,40,34,.75)),url("https://images.unsplash.com/photo-1489599849927-2ee91cede3ba?auto=format&fit=crop&w=1200&q=85") center/cover;display:flex;align-items:flex-end;padding:32px;color:#fff}.login-visual span{font-family:"Playfair Display",serif;font-size:2.4rem}
@media(max-width:820px){.login-page{grid-template-columns:1fr}.login-panel{margin:auto;width:min(100%,500px)}.login-visual{display:none}.login-brand{margin-bottom:40px}}
@media(max-width:600px){.header-actions .login-link,.header-actions .logout-link{font-size:.78rem}.header-actions form{display:flex}}

.brand-mark{width:38px;height:38px;font-size:.85rem;font-weight:700;letter-spacing:-.05em}

.site-footer{display:flex;justify-content:center;align-items:center;width:100%;margin:42px 0 0;padding:28px max(5vw,24px);border:0;background:#090b0a;color:#fff;text-align:center}
.site-footer p{margin:0;font-size:.9rem}

.menu-toggle{display:none;width:42px;height:42px;padding:9px;border:0;border-radius:50%;background:transparent}
.menu-toggle span{display:block;width:23px;height:2px;margin:5px auto;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
@media(max-width:760px){
  .menu-toggle{display:block;position:relative;z-index:12}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .header-actions{position:absolute;top:68px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:14px max(5vw,24px) 20px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(25,35,31,.12)}
  .header-actions.open{display:flex}
  .header-actions>a,.header-actions form{width:100%}
  .header-actions>a{padding:13px 4px;border-bottom:1px solid var(--line);font-size:1rem}
  .header-actions .button{margin-top:12px;border:0}
  .header-actions form .logout-link{width:100%;padding:13px 4px;text-align:left}
}

.image-upload{align-items:start}
.image-upload small{color:var(--muted);font-weight:400}
.upload-preview{display:block;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#eceae3}
.poster-preview{width:150px;aspect-ratio:2/3}
.banner-preview{width:min(100%,420px);aspect-ratio:16/7}
.person-preview{width:120px;height:120px;border-radius:50%}

.trailer{padding:30px 0 60px}.trailer h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3.2rem);margin:0 0 22px}.video-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:24px;background:#000;box-shadow:var(--shadow)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.dashboard-head{display:flex;justify-content:space-between;align-items:end;padding:70px 0 36px}.dashboard-head h1{font-family:"Playfair Display",serif;font-size:clamp(2.7rem,6vw,5rem);line-height:1;margin:0 0 12px}.dashboard-head>div>p:last-child{color:var(--muted);margin:0}
.metrics{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:14px;margin-bottom:26px}.metric{min-height:170px;display:flex;flex-direction:column;padding:22px;background:#fff;border:1px solid var(--line);border-radius:18px}.metric-main{background:var(--green);color:#fff;border-color:var(--green)}.metric>span{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:700}.metric-main>span,.metric-main p{color:#c9dcd5}.metric strong{font-family:"Playfair Display",serif;font-size:3.4rem;line-height:1;margin:auto 0 8px}.metric p{margin:0;color:var(--muted);font-size:.86rem}.metric a{margin-top:auto;color:var(--accent-dark);font-weight:700;font-size:.86rem}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:24px}.dashboard-side{display:grid;align-content:start;gap:24px}.dashboard-panel,.quick-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.panel-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.panel-heading h2{font-family:"Playfair Display",serif;font-size:1.7rem;margin:0}.panel-heading>a{color:var(--accent-dark);font-weight:700;font-size:.86rem}
.recent-list{display:grid}.recent-item{display:grid;grid-template-columns:54px minmax(130px,1fr) 90px auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.recent-item:last-child{border-bottom:0}.recent-poster{position:relative;width:48px;height:62px;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:var(--green);color:#fff;font-family:"Playfair Display",serif;font-size:1.5rem}.recent-poster img{position:absolute;z-index:1}.recent-item h3{margin:0 0 3px;font-size:.94rem}.recent-item p{margin:0;color:var(--muted);font-size:.8rem}.recent-item>.status{font-size:.78rem}
.status-list{display:grid;gap:18px}.status-row>div:first-child{display:flex;justify-content:space-between;font-size:.86rem;margin-bottom:7px}.progress{height:7px;border-radius:10px;background:#eceae4;overflow:hidden}.progress span{display:block;height:100%;border-radius:10px;background:var(--accent)}.quick-panel{background:#151b18;color:#fff}.quick-panel .eyebrow{color:#e79274}.quick-panel a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #39413d;font-weight:600}.quick-panel a:last-child{border:0}
@media(max-width:1000px){.metrics{grid-template-columns:repeat(3,1fr)}.metric-main{grid-row:span 2}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:680px){.dashboard-head{align-items:start;flex-direction:column;gap:24px;padding-top:48px}.metrics{grid-template-columns:1fr 1fr}.metric-main{grid-column:1/-1;grid-row:auto}.metric{min-height:145px}.recent-item{grid-template-columns:48px 1fr auto}.recent-item>.status{display:none}.recent-item>.button{grid-column:2/-1;width:max-content}.dashboard-panel{padding:18px}}

.result-count{margin:-20px 0 22px;color:var(--muted);font-size:.88rem}
.people-search{display:flex;align-items:center;gap:12px;margin:0 0 30px}.people-search .search{flex:1}.people-search input[type="search"]{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px 14px;outline:none}.people-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(216,91,54,.12)}
.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin:38px 0 10px}.page-numbers{display:flex;align-items:center;gap:6px}.page-numbers a,.page-arrow{display:grid;place-items:center;min-width:40px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:50%;background:#fff;font-weight:700}.page-numbers a.active{background:var(--green);border-color:var(--green);color:#fff}.page-arrow.disabled{pointer-events:none;opacity:.35}.page-numbers span{padding:0 4px;color:var(--muted)}
@media(max-width:560px){.people-search{flex-wrap:wrap}.people-search .search{flex-basis:100%}.page-numbers a{min-width:36px;height:36px}.pagination{gap:7px}}

.error-page{position:relative;display:flex;min-height:calc(100vh - 210px);max-width:760px;margin:auto;flex-direction:column;justify-content:center;align-items:center;padding:70px 20px;text-align:center;overflow:hidden}.error-code{position:absolute;z-index:-1;font-family:"Playfair Display",serif;font-size:clamp(12rem,35vw,26rem);line-height:1;color:#e9e6dd;user-select:none}.error-page h1{font-family:"Playfair Display",serif;font-size:clamp(2.8rem,7vw,5.5rem);line-height:1;margin:0}.error-page>p:not(.eyebrow){max-width:570px;margin:24px 0;color:var(--muted);font-size:1.05rem}.error-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
