
:root{
  --bg:#090909;
  --panel:#121215;
  --soft:#232329;
  --text:#f3eee8;
  --muted:#b4aca7;
  --muted2:#7f7673;
  --red:#961f28;
  --red2:#5f141b;
  --red3:#261013;
  --gold:#cfab68;
  --gold-soft:#f3e1b5;
  --cream:#f4ece0;
  --line:rgba(255,255,255,.08);
  --shadow:0 24px 80px rgba(0,0,0,.46);
  --shadow-deep:0 40px 120px rgba(0,0,0,.58);
  --radius:30px;
  --font-body:'Satoshi', Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display:'Boska','Times New Roman',serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 0%, rgba(150,31,40,.22), transparent 28%),
    radial-gradient(circle at 88% 14%, rgba(207,171,104,.10), transparent 22%),
    radial-gradient(circle at 75% 100%, rgba(150,31,40,.11), transparent 30%),
    linear-gradient(180deg,#0b0b0d 0%, #090909 42%, #121216 100%);
  color:var(--text);
  font-family:var(--font-body);
  letter-spacing:.01em;
  line-height:1.6;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.12;
  mix-blend-mode:soft-light;
  background-image:
    radial-gradient(rgba(255,255,255,.18) .55px, transparent .7px),
    radial-gradient(rgba(255,255,255,.08) .45px, transparent .65px);
  background-size:4px 4px, 7px 7px;
  background-position:0 0, 1px 1px;
}
button,input{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.app{min-height:100vh;display:grid;grid-template-columns:320px 1fr;gap:26px;padding:28px;position:relative;z-index:1}
.sidebar{
  position:sticky;
  top:28px;
  height:calc(100vh - 56px);
  background:linear-gradient(180deg, rgba(18,18,21,.92), rgba(11,11,13,.88));
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  padding:24px 22px;
  box-shadow:var(--shadow-deep), inset 0 1px 0 rgba(255,255,255,.03);
  display:flex;
  flex-direction:column;
  overflow:auto;
  backdrop-filter:blur(16px);
}
.brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.logo{
  width:56px;height:56px;border-radius:20px;
  background:radial-gradient(circle at 30% 25%, rgba(255,255,255,.18), transparent 26%), linear-gradient(145deg, rgba(207,171,104,.18), rgba(150,31,40,.7));
  border:1px solid rgba(255,255,255,.14);
  color:var(--gold-soft);
  display:grid;place-items:center;
  box-shadow:0 18px 40px rgba(150,31,40,.28), inset 0 1px 0 rgba(255,255,255,.18);
}
.brand h1{
  margin:0;
  font-family:var(--font-display);
  font-size:1.45rem;
  letter-spacing:.01em;
  text-transform:uppercase;
  color:var(--cream);
}
.brand p{margin:3px 0 0;font-size:.84rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.search{
  background:rgba(9,9,9,.82);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  margin-bottom:20px;
}
.search:focus-within{border-color:rgba(207,171,104,.45);box-shadow:0 0 0 4px rgba(207,171,104,.08)}
.search span{color:var(--gold)}
.search input{width:100%;background:transparent;border:0;outline:0;color:var(--text);padding:14px 0;font-size:.95rem}
.nav-title,.small-label,.focus-block h4,.journal-box h4{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.68rem;
}
.nav-title{margin:18px 0 10px}
.nav{display:flex;flex-direction:column;gap:9px}
.nav button{
  width:100%;
  border:1px solid transparent;
  color:var(--muted);
  background:linear-gradient(180deg, rgba(255,255,255,.01), rgba(255,255,255,0));
  border-radius:16px;
  padding:13px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  text-align:left;
  transition:.2s ease;
}
.nav button:hover{color:var(--cream);background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);transform:translateX(2px)}
.nav button.active{
  color:#fff;
  border-color:rgba(207,171,104,.22);
  background:linear-gradient(135deg, rgba(150,31,40,.98), rgba(95,20,27,.96));
  box-shadow:0 18px 40px rgba(150,31,40,.26), inset 0 1px 0 rgba(255,255,255,.14);
}
.count{opacity:.65;font-size:12px}
.tags{
  margin-top:auto;
  background:linear-gradient(180deg, rgba(8,8,9,.9), rgba(18,18,22,.9));
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:16px;
}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.tag,.pill{
  border-radius:999px;
  padding:8px 11px;
  background:linear-gradient(180deg, rgba(150,31,40,.16), rgba(150,31,40,.09));
  border:1px solid rgba(207,171,104,.18);
  color:#ffd9cc;
  font-size:.75rem;
}
main{min-width:0}
.loading{
  min-height:calc(100vh - 56px);
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  color:var(--muted);
}
.loading h2{
  margin:18px 0 4px;
  font-family:var(--font-display);
  font-size:2.6rem;
  color:var(--cream);
}
.loader{
  width:42px;height:42px;
  border:3px solid rgba(255,255,255,.10);
  border-top-color:var(--gold);
  border-radius:50%;
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.page{animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px;align-items:start}
.latest-card,.month-layout,.mini-card,.planner-card,.film-tile,.cinema-poster-card{
  background:linear-gradient(180deg, rgba(18,18,21,.84), rgba(12,12,14,.9));
  border:1px solid rgba(255,255,255,.08);
  border-radius:34px;
  padding:22px;
  box-shadow:var(--shadow-deep), inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter:blur(16px);
}
.latest-inner{display:grid;grid-template-columns:310px 1fr;gap:30px;align-items:stretch}
.poster,.tile-poster,.mini-poster,.watch-thumb,.cinema-poster-img,.journal-poster{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 0 90px rgba(0,0,0,.20), 0 24px 70px rgba(0,0,0,.34);
  background-size:cover;
  background-position:center;
}
.poster{
  min-height:520px;
  border-radius:30px;
  background:#151518;
}
.poster.fallback{
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.poster.fallback h2{
  margin:10px 0 4px;
  font-family:var(--font-display);
  font-size:clamp(3rem,4vw,4.6rem);
  line-height:.9;
  letter-spacing:-.05em;
  text-transform:uppercase;
}
.eyebrow{
  display:inline-flex;
  width:max-content;
  align-items:center;
  border-radius:999px;
  padding:8px 11px;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.13);
  color:#f5e7cb;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.latest-info{padding:10px 2px 10px 4px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.latest-info h2,.section-head h2,.focus h2,.planner-card h3,.mini-card h3,.film-tile h3,.cinema-poster-info h3,.journal-heading h2,.journal-section h3{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.latest-info h2{margin:0;font-size:clamp(3rem,4vw,4.25rem);line-height:.92;color:var(--cream)}
.meta,.section-head p,.mini-card p,.watch-item p,.summary{color:var(--muted)}
.quote{
  margin:28px 0 0;
  font-family:var(--font-display);
  font-size:clamp(1.8rem,2.4vw,2.4rem);
  line-height:1.14;
  color:#fbf5ee;
  max-width:18ch;
  font-style:italic;
}
.summary{line-height:1.8;margin:22px 0 0;max-width:720px}
.pill-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{
  border-radius:18px;
  padding:13px 17px;
  font-weight:700;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.05);
  color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
  transition:.2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn.primary{
  background:linear-gradient(135deg, rgba(150,31,40,1), rgba(95,20,27,1));
  border-color:rgba(207,171,104,.18);
  box-shadow:0 20px 42px rgba(150,31,40,.28), inset 0 1px 0 rgba(255,255,255,.12);
}
.btn.light{background:linear-gradient(180deg, #f6efe3, #eaddca);color:#17171a;border-color:rgba(0,0,0,.06)}
.focus{
  background:linear-gradient(180deg, rgba(244,236,224,.98), rgba(234,222,204,.96));
  color:#17171a;
  border-radius:34px;
  padding:24px;
  box-shadow:0 28px 80px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.5);
  position:sticky;
  top:28px;
}
.focus h2{margin:0;font-size:clamp(2.2rem,2.8vw,3rem);line-height:.92}
.focus .meta{color:#6d6667}
.note-box{background:rgba(255,255,255,.9);border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:16px;line-height:1.65;color:#494447;font-size:14px}
.focus-block{margin-top:22px}
.focus-block h4{margin:0 0 9px;color:#8c1d25}
.links{display:flex;flex-direction:column;gap:8px}
.link-item{background:#e9dfd3;color:#222;border-radius:17px;padding:12px 13px;display:flex;align-items:center;justify-content:space-between;font-size:14px}
.external-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.recent{margin-top:22px}
.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px;gap:16px}
.section-head h2{margin:0;font-size:clamp(2rem,2vw,2.6rem);color:var(--cream)}
.section-head p{margin:6px 0 0}
.recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.mini-card{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:15px;transition:.2s ease}
.mini-card:hover,.film-tile:hover,.cinema-poster-card:hover{transform:translateY(-4px);border-color:rgba(207,171,104,.28)}
.mini-poster{min-height:165px;border-radius:20px}
.mini-card h3{margin:2px 0 4px;font-size:1.65rem;color:var(--cream)}
.mini-card .mini-quote{margin-top:16px;color:#efe7df;font-family:var(--font-display);font-size:1.1rem;line-height:1.25}
.poster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:18px}
.film-tile{padding:13px;text-align:left;color:var(--text);transition:.2s ease}
.tile-poster{min-height:285px;border-radius:20px;margin-bottom:12px;background:#151518}
.film-tile h3{margin:0;font-size:1.35rem;color:var(--cream)}
.film-tile p{margin:5px 0 0;color:var(--muted);font-size:13px}
.planner-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.planner-card h3{margin:0 0 14px;font-size:2rem;color:var(--cream)}
.watch-item{display:grid;grid-template-columns:72px 1fr auto;gap:13px;align-items:center;padding:12px 0;border-top:1px solid rgba(255,255,255,.07)}
.watch-item:first-of-type{border-top:0}
.watch-thumb{height:100px;border-radius:16px;background:#151518}
.watch-item h4{margin:0;font-size:1.1rem;color:var(--cream)}
.status{border-radius:999px;background:var(--red3);color:#ffd6da;border:1px solid rgba(150,31,40,.45);padding:7px 10px;font-size:11px;white-space:nowrap}
.justwatch-link{display:inline-flex;width:max-content;margin-top:9px;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:700;color:#f4ece0;background:rgba(207,171,104,.10);border:1px solid rgba(207,171,104,.22)}
.empty-month{min-height:220px;border-radius:22px;border:1px dashed rgba(255,255,255,.16);background:rgba(255,255,255,.025);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:22px;margin-top:8px}
.empty-month span{font-family:var(--font-display);font-size:1.65rem;color:var(--cream)}
.cinema-poster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:18px}
.cinema-poster-card{padding:13px;transition:.2s ease}
.cinema-poster-img{min-height:330px;border-radius:21px;margin-bottom:14px;background:#151518}
.cinema-poster-info{padding:2px 4px 6px}
.cinema-date{display:inline-flex;width:max-content;margin-bottom:10px;border-radius:999px;padding:7px 10px;background:linear-gradient(135deg, rgba(150,31,40,1), rgba(95,20,27,1));color:#fff;font-size:.76rem;font-weight:700}
.cinema-poster-info h3{margin:0;font-size:1.55rem;line-height:1.03;color:var(--cream)}
.cinema-poster-info p{margin:8px 0 0;color:var(--muted);line-height:1.45;font-size:.92rem}
.cinema-director{color:var(--gold-soft)!important}
.cinema-runtime{display:inline-flex;margin-top:10px!important;color:#f0dfc0!important;font-size:.9rem!important;border:1px solid rgba(207,171,104,.18);background:rgba(207,171,104,.08);border-radius:999px;padding:6px 9px;line-height:1.1!important}
.full-sheet{display:none;position:fixed;inset:0;background:rgba(3,3,4,.80);z-index:50;padding:22px;overflow:auto;backdrop-filter:blur(10px)}
.full-sheet.active{display:block}
.sheet-panel{
  max-width:1120px;
  margin:12px auto 42px;
  background:radial-gradient(circle at 8% 0%, rgba(150,31,40,.20), transparent 28%),linear-gradient(180deg, rgba(18,18,21,.96), rgba(9,9,10,.98));
  border:1px solid rgba(255,255,255,.10);
  border-radius:34px;
  box-shadow:0 40px 130px rgba(0,0,0,.68);
  overflow:hidden;
}
.journal-hero{display:grid;grid-template-columns:132px minmax(0,1fr) 48px;gap:24px;align-items:start;padding:30px 34px 26px;border-bottom:1px solid rgba(255,255,255,.08)}
.journal-poster{width:132px;height:194px;border-radius:22px}
.journal-heading h2{margin:0;font-size:clamp(3rem,6vw,5.8rem);line-height:.86;letter-spacing:-.06em;color:var(--cream)}
.journal-heading .meta{margin-top:14px;color:var(--muted);font-size:15px}
.journal-quote{margin-top:26px;max-width:760px;font-family:var(--font-display);font-size:clamp(1.65rem,2.4vw,2.55rem);line-height:1.14;color:#f8efe7;font-style:italic}
.journal-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.journal-tags span{border-radius:999px;padding:8px 11px;font-size:12px;background:rgba(150,31,40,.16);border:1px solid rgba(207,171,104,.18);color:#ffd9cc}
.journal-close{width:46px;height:46px;border-radius:17px;border:0;background:rgba(255,255,255,.08);color:#f4f1ef;font-size:24px}
.journal-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;padding:34px}
.journal-text{max-width:780px}
.journal-section{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid rgba(255,255,255,.08)}
.journal-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.journal-section h3{margin:0 0 14px;font-size:clamp(1.45rem,2vw,2rem);line-height:1.05;color:#fff}
.journal-section p{margin:0;color:#d8d1cc;font-size:1.05rem;line-height:1.9;white-space:pre-line}
.journal-section.idea{padding:26px 0 32px;margin-bottom:34px;border-top:1px solid rgba(207,171,104,.16);border-bottom:1px solid rgba(207,171,104,.16)}
.journal-section.idea h3{color:var(--gold-soft)}
.journal-section.idea p{font-family:var(--font-display);font-size:clamp(1.55rem,2.2vw,2.25rem);line-height:1.24;color:#f5ece4}
.journal-aside{position:sticky;top:22px;align-self:start;display:grid;gap:18px}
.journal-box{background:linear-gradient(180deg, rgba(244,236,224,.98), rgba(230,218,201,.96));color:#17171a;border-radius:26px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.32)}
.journal-box h4{margin:0 0 12px;color:#961f28}
.journal-link-list{display:grid;gap:8px}
.journal-link-list a{background:#e9dfd3;color:#17171a;border-radius:15px;padding:11px 12px;display:flex;justify-content:space-between;align-items:center;font-size:13px}
.journal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.journal-action{border-radius:15px;padding:12px;text-align:center;font-weight:700;font-size:13px;background:#151518;color:#fff}
.journal-action.red{background:linear-gradient(135deg,#961f28,#5f141b)}
.stills-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.still-slot{min-height:116px;border-radius:18px;border:1px dashed rgba(0,0,0,.22);background:rgba(255,255,255,.38);display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;color:#6d6260;font-size:12px;line-height:1.35}
.still-slot.wide{grid-column:1/-1;min-height:150px}
.journal-hint{margin-top:10px;color:#6d6260;font-size:12px;line-height:1.45}
.error-box{max-width:780px;margin:40px auto;padding:24px;border-radius:28px;background:rgba(150,31,40,.12);border:1px solid rgba(150,31,40,.35)}
.error-box h2{font-family:var(--font-display);font-size:2.4rem;margin:0 0 8px;color:var(--cream)}
.error-box code{display:block;white-space:pre-wrap;background:rgba(0,0,0,.25);padding:12px;border-radius:14px;color:#f3e1b5;margin-top:12px}
@media (max-width:1280px){.home-grid{grid-template-columns:1fr 370px}.latest-inner{grid-template-columns:290px 1fr}.poster-grid,.cinema-poster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1120px){.app{grid-template-columns:1fr;padding:18px}.sidebar{position:relative;top:auto;height:auto}.home-grid{grid-template-columns:1fr}.focus{position:relative;top:auto}}
@media (max-width:900px){.cinema-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-body{grid-template-columns:1fr}.journal-aside{position:relative;top:auto}.journal-text{max-width:none}}
@media (max-width:820px){.latest-inner,.planner-grid,.recent-grid{grid-template-columns:1fr}.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.app{gap:18px;padding:14px}.poster{min-height:420px}.poster-grid,.cinema-poster-grid{grid-template-columns:1fr}.cinema-poster-img{min-height:430px}.latest-info h2{font-size:2.5rem}.quote,.journal-quote{font-size:1.55rem}.journal-hero{grid-template-columns:80px minmax(0,1fr) 42px;gap:14px;padding:18px}.journal-poster{width:80px;height:118px;border-radius:16px}.journal-heading h2{font-size:2.6rem}.journal-body{padding:20px}.watch-item{grid-template-columns:72px 1fr}}

/* Fix locandine: mostra sempre il poster intero, senza crop */
.tile-poster,
.mini-poster,
.watch-thumb,
.cinema-poster-img,
.journal-poster,
.poster:not(.fallback) {
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: #08080a !important;
}

.cinema-poster-img {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
  height: auto !important;
}

.tile-poster {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
}

.mini-poster {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
}

.watch-thumb {
  aspect-ratio: 2 / 3;
  height: 100px !important;
}

.poster:not(.fallback) {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
  height: 520px;
}

.journal-poster {
  aspect-ratio: 2 / 3;
  height: auto !important;
}

@media (max-width:640px){
  .cinema-poster-img {
    min-height: auto !important;
  }
  .poster:not(.fallback) {
    height: 420px;
  }
}

/* Diario Cinema 2.0 */
.poster:not(.fallback),
.tile-poster,
.mini-poster,
.watch-thumb,
.cinema-poster-img,
.journal-poster {
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-color: #08080a !important;
}

.poster:not(.fallback) {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
  height: 520px;
}

.tile-poster,
.cinema-poster-img {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
}

.mini-poster {
  aspect-ratio: 2 / 3;
  min-height: auto !important;
}

.watch-thumb {
  aspect-ratio: 2 / 3;
  height: 104px !important;
}

.journal-poster {
  aspect-ratio: 2 / 3;
  height: auto !important;
}

.home-actions {
  display:flex;
  justify-content:flex-end;
  margin-bottom:16px;
}

.recent-grid.three {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.recent-grid.three .mini-card {
  grid-template-columns:90px 1fr;
}

.recent-grid.three .mini-poster {
  min-height:auto;
}

.text-link,
.director-link {
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  color:var(--gold-soft);
  text-decoration:underline;
  text-decoration-color:rgba(207,171,104,.32);
  text-underline-offset:3px;
  cursor:pointer;
  font:inherit;
}

.text-link:hover,
.director-link:hover {
  color:#fff0cf;
  text-decoration-color:rgba(207,171,104,.80);
}

.pill,
.tag-filter {
  cursor:pointer;
}

.tag-row .tag {
  display:inline-flex;
  gap:6px;
  align-items:center;
  border:1px solid rgba(207,171,104,.18);
  cursor:pointer;
}

.tag-row .tag span {
  opacity:.65;
  font-size:.68rem;
}

.year-group {
  display:grid;
  gap:6px;
}

.year-toggle {
  font-weight:700;
}

.month-child {
  margin-left:14px;
  width:calc(100% - 14px) !important;
  opacity:.92;
}

.year-months {
  display:grid;
  gap:6px;
}

.admin-status {
  margin-top:4px;
  border-color:rgba(207,171,104,.18) !important;
}

.month-mini-stats {
  display:grid;
  gap:10px;
}

.month-mini-stats div {
  display:grid;
  gap:2px;
  background:rgba(255,255,255,.65);
  border:1px solid rgba(0,0,0,.07);
  border-radius:16px;
  padding:12px;
}

.month-mini-stats strong {
  font-family:var(--font-display);
  font-size:1.4rem;
  line-height:1;
  color:#17171a;
}

.month-mini-stats span {
  color:#6d6667;
  font-size:.78rem;
}

.journal-box-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.journal-box-head h4 {
  margin:0 !important;
}

.mini-admin-btn {
  border:0;
  border-radius:999px;
  padding:7px 10px;
  font-weight:800;
  font-size:.75rem;
  color:#fff;
  background:linear-gradient(135deg,#961f28,#5f141b);
}

.image-slot {
  background-size:cover !important;
  background-position:center !important;
  border-style:solid;
  color:#fff !important;
  align-items:end;
  justify-content:flex-start;
}

.image-slot span {
  display:block;
  width:100%;
  padding:8px;
  border-radius:10px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.70));
  color:#fff;
  font-size:11px;
}

.admin-modal {
  display:none;
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(10px);
  padding:22px;
  overflow:auto;
}

.admin-modal.active {
  display:block;
}

.admin-panel {
  position:relative;
  max-width:760px;
  margin:32px auto;
  background:linear-gradient(180deg, rgba(18,18,21,.98), rgba(9,9,10,.98));
  border:1px solid rgba(255,255,255,.11);
  border-radius:30px;
  padding:26px;
  color:var(--text);
  box-shadow:0 40px 130px rgba(0,0,0,.68);
}

.admin-panel h2 {
  margin:0 0 12px;
  font-family:var(--font-display);
  font-size:2.7rem;
  line-height:.95;
  color:var(--cream);
}

.modal-close {
  position:absolute;
  top:16px;
  right:16px;
  width:42px;
  height:42px;
  border:0;
  border-radius:15px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:22px;
}

.admin-form {
  display:grid;
  gap:13px;
  margin-top:18px;
}

.admin-form label {
  display:grid;
  gap:6px;
  color:var(--muted);
  font-size:.88rem;
}

.admin-form input,
.admin-form textarea {
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.05);
  color:var(--text);
  padding:12px 13px;
  outline:0;
}

.admin-form textarea {
  min-height:120px;
  resize:vertical;
}

.admin-form input:focus,
.admin-form textarea:focus {
  border-color:rgba(207,171,104,.45);
  box-shadow:0 0 0 4px rgba(207,171,104,.08);
}

.form-hint {
  color:var(--muted);
  font-size:.86rem;
  margin-top:14px;
}

@media (max-width:1280px){
  .recent-grid.three {
    grid-template-columns:1fr;
  }
  .recent-grid.three .mini-card {
    grid-template-columns:110px 1fr;
  }
}

@media (max-width:640px){
  .home-actions {
    justify-content:stretch;
  }
  .home-actions .btn {
    width:100%;
  }
  .poster:not(.fallback) {
    height:420px;
  }
}

/* Diario Cinema 2.1 - fix homepage e login */
.latest-card {
  overflow:hidden;
}

.latest-inner {
  grid-template-columns:minmax(220px, 320px) minmax(0, 1fr) !important;
  align-items:start !important;
}

.poster-button {
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:320px !important;
}

.poster:not(.fallback) {
  display:block !important;
  width:100% !important;
  max-width:320px !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:2 / 3 !important;
  border-radius:30px;
  background-size:contain !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-color:#08080a !important;
}

.latest-info {
  min-width:0 !important;
  overflow:hidden;
}

.latest-info h2,
.quote,
.summary {
  max-width:100%;
}

.quote {
  max-width:22ch !important;
}

.recent-grid.three {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.recent-grid.three .mini-card {
  grid-template-columns:92px minmax(0,1fr) !important;
  min-width:0;
}

.recent-grid.three .mini-card h3 {
  font-size:1.35rem;
}

.recent-grid.three .mini-quote {
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.tile-poster,
.mini-poster,
.watch-thumb,
.cinema-poster-img,
.journal-poster {
  background-size:contain !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-color:#08080a !important;
}

.tile-poster,
.cinema-poster-img {
  aspect-ratio:2 / 3 !important;
  min-height:0 !important;
  height:auto !important;
}

.mini-poster {
  aspect-ratio:2 / 3 !important;
  min-height:0 !important;
  height:auto !important;
}

.journal-poster {
  width:132px !important;
  height:194px !important;
  aspect-ratio:auto !important;
}

.text-link.director-link {
  display:inline;
  white-space:normal;
}

.admin-form input[type="password"] {
  font-family:var(--font-body);
}

@media (max-width:1280px){
  .recent-grid.three {
    grid-template-columns:1fr !important;
  }
  .recent-grid.three .mini-card {
    grid-template-columns:110px minmax(0,1fr) !important;
  }
}

@media (max-width:860px){
  .latest-inner {
    grid-template-columns:1fr !important;
  }
  .poster-button,
  .poster:not(.fallback) {
    max-width:360px !important;
  }
}

@media (max-width:640px){
  .poster-button,
  .poster:not(.fallback) {
    max-width:100% !important;
  }
}

/* Diario Cinema 2.2 */
.empty-poster {
  background:
    radial-gradient(circle at 30% 20%, rgba(207,171,104,.11), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015)) !important;
  border:1px dashed rgba(255,255,255,.16) !important;
  display:grid !important;
  place-items:center !important;
  text-align:center;
}

.empty-poster-inner {
  display:grid;
  gap:6px;
  padding:18px;
  color:var(--muted);
}

.empty-poster-inner span {
  font-family:var(--font-display);
  color:var(--cream);
  font-size:1.25rem;
  line-height:1.05;
}

.empty-poster-inner small {
  color:var(--muted2);
  letter-spacing:.14em;
  font-size:.72rem;
}

.ring-stats {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.ring-card {
  display:grid;
  gap:12px;
  justify-items:center;
  text-align:center;
  background:#121720;
  color:#dfe6f2;
  border-radius:22px;
  padding:16px 12px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.ring {
  --size:116px;
  --pct:0;
  width:var(--size);
  height:var(--size);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle closest-side, #121720 68%, transparent 69%),
    conic-gradient(#ffa72b calc(var(--pct) * 1%), #1e2638 0);
  position:relative;
}

.ring strong {
  font-family:var(--font-display);
  font-size:2.15rem;
  line-height:.9;
  color:#f4f1ef;
}

.ring span {
  position:absolute;
  top:63%;
  color:#9aa8bc;
  font-size:.86rem;
}

.ring-card b {
  color:#f4f1ef;
  font-size:.88rem;
}

.ring-card small {
  display:block;
  color:#9aa8bc;
  margin-top:2px;
  font-size:.76rem;
}

.journal-actions.single {
  grid-template-columns:1fr;
}

.journal-actions.single .journal-action {
  border:0;
  cursor:pointer;
}

.admin-form input[type="url"] {
  word-break:break-all;
}

@media (max-width:520px){
  .ring-stats {
    grid-template-columns:1fr;
  }
}

/* Diario Cinema 2.3 */
.ring-card {
  background:
    radial-gradient(circle at 18% 10%, rgba(207,171,104,.10), transparent 28%),
    linear-gradient(180deg, rgba(20,18,17,.96), rgba(12,11,11,.98)) !important;
  color:var(--cream) !important;
  border:1px solid rgba(207,171,104,.16) !important;
}

.ring {
  background:
    radial-gradient(circle closest-side, #121111 68%, transparent 69%),
    conic-gradient(#cfab68 calc(var(--pct) * 1%), rgba(244,236,224,.12) 0) !important;
}

.ring span {
  color:#c7bda9 !important;
}

.ring-card small {
  color:#b9aea1 !important;
  line-height:1.35;
}

.inline-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:9px;
}

.convert-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  border:1px solid rgba(207,171,104,.24);
  border-radius:999px;
  padding:6px 10px;
  background:rgba(150,31,40,.22);
  color:#f7eee5;
  font-size:.78rem;
  font-weight:800;
  cursor:pointer;
  transition:.18s ease;
}

.convert-btn:hover {
  transform:translateY(-1px);
  background:rgba(150,31,40,.34);
  border-color:rgba(207,171,104,.42);
}

.convert-btn.cinema {
  margin-top:12px;
}

.check-row {
  grid-template-columns:auto 1fr !important;
  display:flex !important;
  align-items:center;
  gap:10px !important;
  color:var(--muted);
}

.check-row input {
  width:auto !important;
}


/* Diario Cinema 2.4 */
.logo{
  background:radial-gradient(circle at 30% 22%, rgba(255,255,255,.2), transparent 24%), linear-gradient(145deg, rgba(207,171,104,.22), rgba(150,31,40,.82));
}
.logo svg{filter:drop-shadow(0 6px 16px rgba(0,0,0,.28))}
.meta-chips,.mini-meta-row,.tile-meta-row,.tech-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.meta-chips{margin-top:14px}
.meta-chips.compact{margin-top:10px}
.runtime-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  border-radius:999px;
  padding:8px 12px;
  font-size:.82rem;
  line-height:1;
  font-weight:700;
  letter-spacing:.01em;
  border:1px solid rgba(207,171,104,.22);
  background:rgba(207,171,104,.08);
  color:#f0dfc0;
}
.hero-chip{
  background:linear-gradient(135deg, rgba(207,171,104,.14), rgba(150,31,40,.18));
  border-color:rgba(207,171,104,.26);
  color:#f6e8cf;
}
.detail-chip{
  background:rgba(150,31,40,.08);
  color:#6f1620;
  border-color:rgba(150,31,40,.16);
}
.detail-placeholder{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(0,0,0,.04);
  border:1px dashed rgba(0,0,0,.12);
  color:#6d6667;
  font-size:.82rem;
}
.mini-meta-row,.tile-meta-row{margin-top:10px}
.info-box{display:grid;gap:10px}
.tech-row{margin-top:2px}
@media (max-width:640px){
  .runtime-chip{font-size:.76rem;padding:7px 10px}
}

.runtime-chip.missing{
  opacity:.58;
  border-style:dashed;
  background:rgba(255,255,255,.035);
  color:#b9aea8;
}
.journal-box .runtime-chip.missing{
  background:rgba(0,0,0,.035);
  color:#6d6667;
}


/* Diario Cinema 2.5 - Archivio evoluto */
.archive-tools{
  margin:18px 0 6px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  padding:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.archive-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
  margin-bottom:14px;
}
.archive-search,
.archive-filter-grid label{
  display:flex;
  flex-direction:column;
  gap:8px;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.68rem;
  font-weight:700;
}
.archive-search input,
.archive-filter-grid select{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  outline:0;
  background:rgba(8,8,9,.86);
  color:var(--text);
  border-radius:16px;
  padding:13px 13px;
  font-size:.94rem;
  letter-spacing:0;
  text-transform:none;
}
.archive-search input:focus,
.archive-filter-grid select:focus{
  border-color:rgba(207,171,104,.42);
  box-shadow:0 0 0 4px rgba(207,171,104,.08);
}
.archive-filter-grid{
  display:grid;
  grid-template-columns:1.3fr .8fr 1fr 1fr;
  gap:12px;
}
.archive-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.archive-summary div{
  border-radius:18px;
  padding:13px;
  background:rgba(0,0,0,.26);
  border:1px solid rgba(255,255,255,.07);
}
.archive-summary strong{
  display:block;
  font-family:var(--font-display);
  color:var(--cream);
  font-size:1.75rem;
  line-height:1;
}
.archive-summary span{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.78rem;
}
@media (max-width:980px){
  .archive-filter-grid{grid-template-columns:1fr 1fr}
  .archive-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .archive-search-row{grid-template-columns:1fr}
  .archive-filter-grid{grid-template-columns:1fr}
  .archive-summary{grid-template-columns:1fr}
}


/* Diario Cinema 2.6 - Recuperoni */
.recuperoni-dashboard{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.recuperoni-dashboard div{
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.recuperoni-dashboard strong{
  display:block;
  font-family:var(--font-display);
  font-size:2.05rem;
  line-height:1;
  color:var(--cream);
}
.recuperoni-dashboard span{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:.82rem;
}
.recuperoni-tabs{
  display:flex;
  gap:10px;
  margin:8px 0 16px;
}
.recuperoni-tabs button{
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.04);
  color:var(--muted);
  border-radius:999px;
  padding:11px 15px;
  font-weight:700;
}
.recuperoni-tabs button.active{
  color:#fff;
  background:linear-gradient(135deg, rgba(150,31,40,1), rgba(95,20,27,1));
  border-color:rgba(207,171,104,.22);
}
.recuperoni-list{
  display:grid;
  gap:10px;
}
.recupero-item{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  background:rgba(255,255,255,.035);
  transition:.18s ease;
}
.recupero-item:hover{
  border-color:rgba(207,171,104,.24);
  transform:translateY(-2px);
}
.recupero-item.done{
  opacity:.62;
}
.rec-check{
  width:34px;
  height:34px;
  border-radius:50%;
  border:1px solid rgba(207,171,104,.35);
  background:rgba(207,171,104,.08);
  color:var(--gold-soft);
  font-weight:900;
}
.recupero-item.done .rec-check{
  background:linear-gradient(135deg, rgba(150,31,40,1), rgba(95,20,27,1));
  color:#fff;
}
.rec-main h3{
  margin:0;
  color:var(--cream);
  font-family:var(--font-display);
  font-size:1.32rem;
  line-height:1.05;
}
.rec-main p{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin:7px 0 0;
  color:var(--muted);
  font-size:.9rem;
}
.rec-main p em{
  color:rgba(207,171,104,.48);
  font-style:normal;
}
.rec-original{
  color:var(--muted);
  font-size:.86em;
  font-family:var(--font-sans);
  font-weight:500;
  letter-spacing:0;
}
.rec-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.rec-status{
  border-radius:999px;
  padding:7px 10px;
  font-size:.78rem;
  font-weight:800;
  color:#f0dfc0;
  border:1px solid rgba(207,171,104,.22);
  background:rgba(207,171,104,.08);
  white-space:nowrap;
}
.rec-status.done{
  color:#d7f0d2;
  border-color:rgba(110,180,100,.25);
  background:rgba(110,180,100,.10);
}
@media (max-width:900px){
  .recuperoni-dashboard{grid-template-columns:1fr 1fr}
  .recupero-item{grid-template-columns:42px minmax(0,1fr)}
  .rec-actions{grid-column:2}
}
@media (max-width:640px){
  .recuperoni-dashboard{grid-template-columns:1fr}
}


/* Diario Cinema 2.7 - Recuperoni posters + scaffale */
.recuperoni-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin:8px 0 16px;
  flex-wrap:wrap;
}
.view-switch{
  display:flex;
  gap:8px;
}
.view-switch button{
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.04);
  color:var(--muted);
  border-radius:999px;
  padding:10px 14px;
  font-weight:700;
}
.view-switch button.active{
  color:#fff;
  background:linear-gradient(135deg, rgba(150,31,40,1), rgba(95,20,27,1));
  border-color:rgba(207,171,104,.22);
}
.recupero-item{
  grid-template-columns:42px 86px minmax(0,1fr) auto;
}
.rec-thumb{
  width:86px;
  aspect-ratio:2/3;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
}
.rec-thumb img,
.rec-shelf-poster img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.rec-poster-placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg, rgba(207,171,104,.12), rgba(150,31,40,.18));
  color:var(--cream);
  font-family:var(--font-display);
  font-size:2rem;
}
.rec-shelf-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:16px;
}
.rec-shelf-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  background:rgba(255,255,255,.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.rec-shelf-card.done{
  opacity:.7;
}
.rec-shelf-toggle{
  position:absolute;
  top:12px;
  right:12px;
  z-index:3;
  width:34px;
  height:34px;
  border-radius:50%;
  border:1px solid rgba(207,171,104,.38);
  background:rgba(0,0,0,.46);
  color:#fff;
  font-weight:900;
  backdrop-filter:blur(6px);
}
.rec-shelf-card.done .rec-shelf-toggle{
  background:linear-gradient(135deg, rgba(150,31,40,1), rgba(95,20,27,1));
}
.rec-shelf-poster{
  aspect-ratio:2/3;
  overflow:hidden;
  background:rgba(255,255,255,.03);
}
.rec-shelf-body{
  padding:14px;
}
.rec-shelf-body h3{
  margin:0;
  color:var(--cream);
  font-family:var(--font-display);
  font-size:1.2rem;
  line-height:1.08;
}
.shelf-original{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.88rem;
}
.rec-shelf-body p{
  margin:10px 0 0;
  color:var(--muted);
  font-size:.88rem;
}
.rec-shelf-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:14px;
}
@media (max-width:900px){
  .recupero-item{grid-template-columns:42px 72px minmax(0,1fr)}
  .rec-thumb{width:72px}
  .rec-actions{grid-column:2 / span 2}
}
@media (max-width:640px){
  .recuperoni-toolbar{align-items:stretch}
  .view-switch{width:100%}
  .view-switch button{flex:1}
  .recupero-item{grid-template-columns:34px 62px minmax(0,1fr)}
  .rec-thumb{width:62px;border-radius:14px}
  .rec-actions{grid-column:1 / -1}
}

/* Diario Cinema 2.7.1 - Modifica Recuperoni */
.mini-admin-btn.ghost{
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.10);
  color:var(--muted);
}
.mini-admin-btn.ghost:hover{
  color:var(--cream);
  border-color:rgba(207,171,104,.24);
}
.rec-shelf-actions .mini-admin-btn.ghost,
.rec-actions .mini-admin-btn.ghost{
  white-space:nowrap;
}

/* Diario Cinema 2.7.2 - Rimozione Prossime visioni */
.remove-btn{
  display:inline-flex;
  width:max-content;
  margin-top:9px;
  border-radius:999px;
  padding:6px 10px;
  font-size:.78rem;
  font-weight:800;
  color:#ffd6da;
  background:rgba(150,31,40,.12);
  border:1px solid rgba(150,31,40,.34);
}
.remove-btn:hover{
  background:rgba(150,31,40,.24);
  color:#fff;
}
.inline-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.inline-actions .justwatch-link,
.inline-actions .convert-btn,
.inline-actions .remove-btn{
  margin-top:9px;
}
