/* home */
.home{max-width:1320px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-9);display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--space-7);align-items:start}
.cal-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-5)}
.cal-head h1{margin-right:auto}
.cal-nav{display:flex;gap:var(--space-1)}
.sums{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-bottom:var(--space-5)}
.sums p{display:flex;align-items:baseline;gap:var(--space-2);color:var(--color-ink-2);font-size:var(--size-sm)}
.sums .text-numeral{color:var(--color-ink)}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--color-line);border-left:1px solid var(--color-line);background:var(--color-surface);border-radius:var(--radius-m);overflow:hidden;box-shadow:inset 0 0 0 1px var(--color-line)}
.cal__wd{padding:var(--space-2) var(--space-3);font-size:var(--size-xs);font-weight:var(--weight-medium);color:var(--color-ink-3);border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}
.cal__day{position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:104px;padding:var(--space-2) var(--space-3) var(--space-3);border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line);color:var(--color-ink);text-decoration:none;transition:background var(--dur-fast)}
a.cal__day:hover{background:var(--color-surface-2);color:var(--color-ink)}
a.cal__day:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px;border-radius:0}
.cal__day--out{color:var(--color-ink-3);background:var(--color-bg)}
.cal__day[aria-current=date]{box-shadow:inset 0 0 0 2px var(--color-accent);background:var(--color-accent-soft)}
.cal__num{display:flex;justify-content:space-between;font-size:var(--size-sm);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}
.cal__num em{font-style:normal;font-size:var(--size-xs);color:var(--color-accent-strong)}
.cal__posters{display:flex;gap:3px;align-self:center}
.cal__posters .poster{width:14px;padding:0}
.cal__day .tally{font-size:var(--size-lg)}
.week{display:none}
.side{display:grid;gap:var(--space-7);position:sticky;top:var(--space-5)}
.side h2{margin-bottom:var(--space-4)}
.resumes{display:grid;gap:var(--space-5);--resume-thumb:var(--thumb-m)}
.day{display:grid;gap:var(--space-1);margin-top:var(--space-4)}
.day h3{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-1)}
.day h3 .tally{font-size:var(--size-sm)}
@media (max-width:1100px){.home{grid-template-columns:1fr}.side{position:static;grid-template-columns:1fr 1fr}}
@media (max-width:720px){.home{padding:var(--space-4) var(--space-4) 120px;gap:var(--space-6)}
.cal-head{margin-bottom:var(--space-3)}
.sums{gap:var(--space-1) var(--space-4)}
.cal{display:none}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1)}
.week a{display:grid;justify-items:center;gap:var(--space-1);padding:var(--space-2) 0 var(--space-3);border-radius:var(--radius-m);text-decoration:none;color:var(--color-ink);font-variant-numeric:tabular-nums}
.week a[aria-current=date]{background:var(--color-accent-soft);box-shadow:inset 0 0 0 2px var(--color-accent)}
.week .wd{font-size:var(--size-xs);color:var(--color-ink-3)}
.week .n{font-weight:var(--weight-semibold)}
.week .tally{font-size:var(--size-md);min-height:1em}
.side{grid-template-columns:1fr;gap:var(--space-6)}}
.tally-row{display:inline-flex;gap:6px}
.cal__posters .poster img{border-radius:inherit}
.side__back{margin-top:var(--space-4);font-size:var(--size-sm)}
.more{margin-top:var(--space-4)}
.first-run{display:grid;gap:var(--space-4)}
.first-run__lede{color:var(--color-ink-2)}
.first-run__ways li{display:grid;gap:var(--space-2);justify-items:start}
.first-run__ways li+li{border-top:1px solid var(--color-line)}
.home__footnote{margin-top:var(--space-3)}

/* auth */
.auth{min-height:100vh;display:grid;justify-items:center;padding:var(--space-6) var(--space-4)}
.auth__box{align-self:center;display:grid;gap:var(--space-6);width:100%;max-width:400px}
.auth__brand{display:flex;align-items:center;gap:var(--space-3)}
.auth__brand .icon{width:34px;height:34px;color:var(--color-accent);stroke-width:1.6}
.auth__brand span{font-family:var(--font-serif);font-size:var(--size-xl);letter-spacing:var(--tracking-snug)}
.auth__intro{display:grid;gap:var(--space-2)}
.auth__intro p,.auth__done p{color:var(--color-ink-2)}
.auth__code-input{max-width:none}
.auth__split{display:grid;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-line)}
.auth__done{justify-items:start;gap:var(--space-4)}
.auth__mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent-strong)}
.auth__mark .icon{width:24px;height:24px;stroke-width:2}
.auth__facts{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);width:100%;padding:var(--space-4) 0;border-block:1px solid var(--color-line);font-size:var(--size-sm)}
.auth__facts dt{color:var(--color-ink-3)}
.auth__facts dd{font-weight:var(--weight-medium)}
.auth__code{font-family:var(--font-condensed);font-size:var(--size-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide)}
.auth__links{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.form{display:grid;gap:var(--space-4)}
.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);font-size:var(--size-sm)}
.notice--error{background:var(--color-danger-soft);color:var(--color-danger)}
.notice--ok{background:var(--color-accent-soft);color:var(--color-accent-strong)}
@media (max-width:720px){.auth{padding:var(--space-7) var(--space-4) var(--space-5)}.auth__box{align-self:start;gap:var(--space-5)}.auth__links .button{flex:1}}

/* title */
.title{max-width:1180px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-9);display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-areas:"notice notice" "poster head" "poster summary" "poster progress" "poster body";column-gap:var(--space-7);align-items:start}
.title>.notice{grid-area:notice;margin-bottom:var(--space-5)}
.title__poster{grid-area:poster;position:sticky;top:var(--space-5)}
.title__head{grid-area:head;display:grid;gap:var(--space-3)}
.title__head h1{overflow-wrap:anywhere}
.title--untitled .title__head h1{color:var(--color-ink-2)}
.title__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-4);font-size:var(--size-sm);color:var(--color-ink-2);font-variant-numeric:tabular-nums}
.title__note{max-width:52ch;color:var(--color-ink-2)}
.title__summary{grid-area:summary;display:grid;gap:var(--space-4);justify-items:start;margin:var(--space-4) 0 var(--space-6)}
.title__lede{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}
.title__lede p{color:var(--color-ink-2)}
.tally--large{font-size:34px}
.title__progress{grid-area:progress;display:grid;gap:var(--space-3);max-width:560px;margin-bottom:var(--space-6)}
.title__resumes{display:grid;gap:var(--space-5)}
.title__resumes li{display:grid;gap:var(--space-2)}
.title__body{grid-area:body;display:grid;gap:var(--space-7);min-width:0}
.title__controls{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-6);padding:var(--space-5) 0;border-block:1px solid var(--color-line)}
.lists{display:grid;gap:var(--space-2);align-content:start}
.lists .text-label{display:flex;align-items:center;min-height:30px}
.lists__chips{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:start}
.lists__chips form{display:contents}
.new-list summary{list-style:none}
.new-list summary::-webkit-details-marker{display:none}
.new-list[open] summary{display:none}
.new-list__form{display:flex;gap:var(--space-2);align-items:center}
.episodes{display:grid;gap:var(--space-5)}
.episodes__head{display:grid;gap:var(--space-1)}
.log{display:grid;gap:var(--space-4)}
.log__fields{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end}
.log__num{width:96px}
.log__date{width:180px}
.season-sum{display:flex;flex:1;align-items:center;gap:var(--space-4);min-width:0}
.season-sum .tally-row{font-size:var(--size-md)}
.season-sum .text-small{margin-left:auto}
.episodes__ep{font-weight:var(--weight-semibold)}
.episodes__plays{display:inline-flex;align-items:center;gap:var(--space-2)}
.plays{display:grid;gap:var(--space-3);justify-items:start}
.plays .table{justify-self:stretch}
.title .table td:last-child,.title .table th:last-child{text-align:right;padding-right:0}
.title .table td:first-child,.title .table th:first-child{padding-left:0}
@media (max-width:900px){.title__controls{grid-template-columns:1fr}}
@media (max-width:720px){.title{grid-template-columns:96px minmax(0,1fr);grid-template-areas:"notice notice" "poster head" "summary summary" "progress progress" "body body";column-gap:var(--space-4);padding:var(--space-4) var(--space-4) 120px}
.title__poster{position:static}
.title__head{align-self:end;gap:var(--space-2)}
.title__summary{margin:var(--space-4) 0 var(--space-5);justify-items:stretch}
.title__lede{flex-wrap:nowrap;align-items:flex-start}
.tally--large{font-size:24px}
.title__summary .text-lede{font-size:var(--size-md)}
.title__summary .button{width:100%}
.title__body{gap:var(--space-6)}
.log__num{flex:1;width:auto}
.log__date,.log__fields .button{flex:1 1 100%;width:auto}}

/* page */
.page{max-width:1180px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-9)}
.page--narrow{max-width:640px;display:grid;gap:var(--space-4)}
@media (max-width:720px){.page{padding:var(--space-4) var(--space-4) 120px}}

/* settings */
.settings{max-width:1120px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-9);display:grid;grid-template-columns:190px minmax(0,1fr);column-gap:var(--space-7);align-items:start}
.settings>h1,.settings>.banner{grid-column:1/-1;margin-bottom:var(--space-5)}
.settings__content{display:grid;gap:var(--space-8);max-width:var(--content-w);min-width:0}
.settings__section{display:grid;gap:var(--space-4)}
.settings [id]{scroll-margin-top:var(--space-6)}
.settings__head{display:grid;gap:var(--space-1)}
.settings__head p,.settings__lede{color:var(--color-ink-2);max-width:60ch}
.settings__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}
.settings__row h3,.settings__grow{margin-right:auto}
.settings__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.settings__stack{display:grid;gap:var(--space-4)}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);padding:var(--space-4) 0;border-block:1px solid var(--color-line)}
.facts div{display:grid;gap:2px;min-width:0}
.facts dt{font-size:var(--size-xs);color:var(--color-ink-3)}
.facts dd{font-size:var(--size-sm);font-weight:var(--weight-medium);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.facts__late{color:var(--color-danger)}
.nuvio-form{display:grid;gap:var(--space-4);max-width:var(--form-w)}
.nuvio-form--pair{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
.nuvio-form__profile{max-width:160px}
.nuvio-form__submit{justify-self:start}
.sources{border-bottom:1px solid var(--color-line)}
.link-tv{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3)}
.link-tv .code{max-width:260px}
.link-tv .button{min-height:64px;padding:0 var(--space-5)}
.sessions li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3)}
.sessions__name{font-weight:var(--weight-medium);font-size:var(--size-sm)}
.sessions__when{margin-left:auto;font-size:var(--size-sm);color:var(--color-ink-3)}
.sessions__all p{margin-right:auto}
.password .form-field{max-width:var(--form-w)}
.password .button{justify-self:start}
@media (max-width:900px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.settings{grid-template-columns:minmax(0,1fr);padding:var(--space-4) var(--space-4) 120px}
.settings>h1{margin-bottom:var(--space-3)}
.subnav{margin-bottom:var(--space-5)}
.settings__content{gap:var(--space-7)}
.nuvio-form--pair{grid-template-columns:1fr}
.nuvio-form__profile{max-width:none}
.nuvio-form__submit,.password .button{justify-self:stretch}
.link-tv .code{max-width:none}
.link-tv .button{width:100%;min-height:48px}
.sessions__when{margin-left:0;flex-basis:100%}}

/* search */
.search{max-width:var(--content-w);margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-9);display:grid;gap:var(--space-5)}
.search__hint{display:grid;gap:var(--space-2);max-width:52ch;padding-top:var(--space-2)}
.search__hint p{color:var(--color-ink-2)}
.search__keys{display:flex;align-items:center;gap:var(--space-2)}
.search__none{display:grid;gap:var(--space-3);justify-items:start;max-width:54ch;padding-top:var(--space-4)}
.search__none p{color:var(--color-ink-2)}
.search__none .tally-row{font-size:var(--size-xl);color:var(--color-line-strong)}
.search__none .tally{color:inherit}
.results{display:grid;gap:var(--space-1);--entry-thumb:var(--thumb-l)}
.results .entry{align-items:start;padding:var(--space-3) var(--space-2)}
.results__badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-2)}
.results__badges:empty{display:none}
.field .htmx-indicator{opacity:0}
.field.htmx-request .htmx-indicator{opacity:1}
@media (max-width:720px){.search{padding:var(--space-4) var(--space-4) 120px;gap:var(--space-4)}.search__key,.search__keys{display:none}}

/* lists */
.lists-page{max-width:1320px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-9);display:grid;gap:var(--space-5)}
.lists-page__switch{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:start}
.lists-page__switch a.chip{text-decoration:none}
.lists-page__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-4);padding-top:var(--space-5);margin-top:var(--space-2);border-top:1px solid var(--color-line)}
.lists-page__actions{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-left:auto;align-items:start}
.lists-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--space-6) var(--space-5);margin-top:var(--space-4)}
.lists-page__empty{display:grid;gap:var(--space-2)}
.rename summary{list-style:none}
.rename summary::-webkit-details-marker{display:none}
.rename[open] summary{display:none}
@media (max-width:720px){.lists-page{padding:var(--space-4) var(--space-4) 140px;gap:var(--space-4)}
.lists-page__switch{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--space-4) * -1);padding:2px var(--space-4)}
.lists-page__switch .chip{flex:none}
.lists-page__head{padding-top:var(--space-4)}
.lists-page__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5) var(--space-3)}}
.profiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2);margin:0;padding:0;border:0}
.profiles legend{margin-bottom:var(--space-2)}
.profiles__option{position:relative;display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-surface);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}
.profiles__option:hover{border-color:var(--color-line-strong);background:var(--color-surface-2)}
.profiles__option input{position:absolute;opacity:0}
.profiles__option:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}
.profiles__option:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}
.profiles__avatar{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--color-surface-2);color:var(--color-ink-2);font-size:var(--size-sm);font-weight:var(--weight-semibold)}
.profiles__option:has(input:checked) .profiles__avatar{background:var(--color-accent);color:var(--color-accent-ink)}
.profiles__name{font-size:var(--size-sm);font-weight:var(--weight-medium)}
.invite{display:grid;gap:var(--space-2)}
.invite__row{display:flex;gap:var(--space-2)}
.invite__row .field{flex:1}
.invites li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--color-line)}
.delete__row{display:grid;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-line)}
.delete__text{display:grid;gap:2px;max-width:60ch}
.delete__confirm{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.delete__confirm .field{flex:1 1 220px;max-width:var(--form-w)}
