.tepaper-wrap{
  --tp-paper:#FBF9F2;
  --tp-ink:#201C16;
  --tp-ink-soft:#5B5546;
  --tp-red:#7A1F1A;
  --tp-gold:#B8892B;
  --tp-teal:#1F5C57;
  --tp-maroon:#5A2A46;
  --tp-rule:#D3C9AE;
  font-family:'Noto Sans Telugu', sans-serif;
  color:var(--tp-ink);
  max-width:1180px;
  margin:0 auto;
  padding:0 4px;
}

.tepaper-empty{
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:var(--tp-ink-soft);
  text-align:center;
  padding:40px 10px;
}

/* Date filter bar */
.tepaper-datebar{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin-bottom:26px; padding-bottom:16px; border-bottom:2px solid var(--tp-ink);
  font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--tp-ink-soft);
}
.tepaper-datebar select{
  font-family:'Noto Sans Telugu', sans-serif; font-size:14px;
  padding:8px 10px; border:1px solid var(--tp-ink); background:var(--tp-paper); color:var(--tp-ink);
  min-height:40px; /* comfortable tap target on mobile */
}

/* Section (one per category) */
.tepaper-section{ margin-bottom:38px; }
.tepaper-section-title{
  font-family:'Ramabhadra', serif; color:var(--tp-red);
  font-size:22px; margin:0 0 16px; padding-bottom:8px;
  border-bottom:1px solid var(--tp-rule);
}
.tepaper-group-empty{ padding:16px 0; }

.tepaper-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:20px;
}
@media (max-width:480px){
  .tepaper-grid{ grid-template-columns:repeat(2, 1fr); gap:14px; }
}

.tepaper-card{ cursor:pointer; display:block; text-decoration:none; color:inherit; }
.tepaper-thumb{
  background:var(--tp-paper);
  border:1px solid var(--tp-ink);
  aspect-ratio:3/4;
  overflow:hidden;
  box-shadow:3px 3px 0 rgba(32,28,22,.18);
  transition:transform .15s ease, box-shadow .15s ease;
}
.tepaper-card:hover .tepaper-thumb{
  transform:translate(-2px,-2px);
  box-shadow:6px 6px 0 rgba(32,28,22,.22);
}
.tepaper-thumb img{ width:100%; height:100%; object-fit:cover; object-position:top; display:block; }

.tepaper-label{ margin-top:8px; text-align:center; }
.tepaper-label strong{
  display:block;
  font-family:'Noto Sans Telugu', sans-serif;
  font-weight:700;
  font-size:13.5px;
  line-height:1.3;
  color:var(--tp-ink);
}
.tepaper-label span{
  display:block;
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  color:var(--tp-ink-soft);
  margin-top:3px;
  letter-spacing:.02em;
}

/* ============ Single edition page ============ */
.tepaper-single{ padding-top:18px; }

.tepaper-single-catnav{
  display:flex; flex-wrap:wrap; gap:4px; margin-bottom:18px;
}
.tepaper-single-catnav a{
  font-family:'Noto Sans Telugu', sans-serif; font-weight:600; font-size:13px;
  background:var(--tp-red); color:var(--tp-paper); padding:9px 14px;
  text-decoration:none;
}
.tepaper-single-catnav a:first-child{ background:var(--tp-ink); }

.tepaper-single-toolbar{
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
  padding:10px 0; border-bottom:1px solid var(--tp-rule); margin-bottom:14px;
}
.tepaper-single-toolbar select{
  font-family:'Noto Sans Telugu', sans-serif; font-size:13px;
  padding:8px 10px; border:1px solid var(--tp-ink); background:var(--tp-paper); min-height:38px;
}
.tepaper-single-pagenums{ display:flex; gap:4px; flex-wrap:wrap; }
.tepaper-pagenum{
  font-family:'JetBrains Mono', monospace; font-size:12px;
  width:32px; height:32px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--tp-ink); color:var(--tp-ink); text-decoration:none;
}
.tepaper-pagenum.active{ background:var(--tp-red); color:var(--tp-paper); border-color:var(--tp-red); }
.tepaper-single-actions{ display:flex; align-items:center; gap:8px; margin-left:auto; flex-wrap:wrap; }

.tepaper-btn{
  font-family:'JetBrains Mono', monospace; font-size:12px; letter-spacing:.03em;
  background:var(--tp-ink); color:var(--tp-paper); border:none;
  padding:9px 14px; cursor:pointer; text-decoration:none; display:inline-block; min-height:38px;
}
.tepaper-btn.active{ background:var(--tp-gold); }
.tepaper-zoom-label{ font-family:'JetBrains Mono', monospace; font-size:11px; color:var(--tp-ink-soft); min-width:38px; text-align:center; }

.tepaper-single-titlebar{
  font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--tp-ink-soft);
  background:var(--tp-paper); border:1px solid var(--tp-rule); padding:8px 12px; margin-bottom:10px;
}

.tepaper-crop-hint{
  font-family:'Noto Sans Telugu', sans-serif; font-size:13px; color:var(--tp-ink);
  background:#FFF3D6; border:1px solid var(--tp-gold); padding:8px 12px; margin-bottom:10px;
  text-align:center;
}

@media (max-width:600px){
  .tepaper-single-toolbar{ flex-direction:column; align-items:stretch; }
  .tepaper-single-actions{ margin-left:0; justify-content:center; }
  .tepaper-single-pagenums{ justify-content:center; }
}

/* Page area — full width, natural height, page just flows and the browser scrolls normally */
.tepaper-page-wrap{
  border:1px solid var(--tp-ink);
  position:relative;
  user-select:none;
  width:100%;
  max-width:820px;
  margin:0 auto;
  overflow:visible;
  touch-action:pan-y; /* let single-finger scroll pass through normally, but hand pinch (2-finger) gestures to our own JS zoom instead of the browser's native pinch-zoom, which was fighting it and causing the blur on mobile */
}
.tepaper-page-wrap.cropping{ cursor:crosshair; }
.tepaper-page-wrap.zoomed-pan{
  max-height:82vh; overflow:auto; cursor:grab;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.tepaper-page-wrap.zoomed-pan::-webkit-scrollbar{ display:none; }
.tepaper-page-wrap.zoomed-pan.panning{ cursor:grabbing; }
.tepaper-page-img{
  width:100%; height:auto; display:block; margin:0 auto; pointer-events:none;
  transition:transform .15s ease-out, width .15s ease-out, height .15s ease-out;
}
.tepaper-page-wrap.zoomed-pan .tepaper-page-img{ margin:0; }
.tepaper-hd-badge{
  position:absolute; top:8px; right:8px; background:var(--tp-teal); color:#fff;
  font-family:'JetBrains Mono', monospace; font-size:10px; font-weight:700;
  padding:3px 8px; border-radius:3px; letter-spacing:.05em; z-index:6;
}

/* Prev / next arrows overlapping the page itself, semi-transparent circles */
.tepaper-side-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:38px; height:38px; border-radius:50%; border:none;
  background:rgba(32,28,22,.55); color:var(--tp-paper);
  display:flex; align-items:center; justify-content:center;
  font-size:15px; cursor:pointer; z-index:5;
}
.tepaper-side-nav:hover{ background:rgba(122,31,26,.85); }
.tepaper-side-prev{ left:10px; }
.tepaper-side-next{ right:10px; }
@media (max-width:600px){
  .tepaper-side-nav{ width:32px; height:32px; font-size:12px; }
}

/* Archive: custom calendar popover */
.tepaper-archive-wrap{ position:relative; }
.tepaper-calendar{
  position:absolute; right:0; top:calc(100% + 6px);
  background:#fff; border:1px solid #ccc; border-radius:4px;
  padding:10px; width:250px; z-index:20;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
  font-family:'Noto Sans Telugu', sans-serif; font-size:13px; color:var(--tp-ink);
}
.tepaper-cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.tepaper-cal-month{ font-weight:700; font-size:13.5px; }
.tepaper-cal-nav{
  background:none; border:1px solid #ccc; border-radius:3px; width:26px; height:26px; cursor:pointer; font-size:14px;
}
.tepaper-cal-grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; text-align:center; }
.tepaper-cal-dow span{ font-size:11px; color:var(--tp-ink-soft); font-weight:600; padding:4px 0; }
.tepaper-cal-day{
  display:block; padding:6px 0; border-radius:3px; text-decoration:none; color:var(--tp-ink); font-size:12.5px;
}
.tepaper-cal-day.has-edition{ background:#eef6ff; font-weight:600; }
.tepaper-cal-day.has-edition:hover{ background:var(--tp-red); color:#fff; }
.tepaper-cal-day.disabled{ color:#c9c4b8; cursor:default; }
.tepaper-cal-day.today{ background:#fff3a0; }

/* Crop tool: selection box + floating toolbar attached to it */
.tepaper-crop-box{
  position:absolute; border:2px dashed var(--tp-gold);
  background:rgba(184,137,43,.18);
  pointer-events:none;
}
.tepaper-crop-toolbar{
  position:absolute; display:flex; gap:2px;
  background:#fff; border-radius:20px; padding:4px;
  box-shadow:0 3px 10px rgba(0,0,0,.25); z-index:10;
}
.tepaper-crop-toolbar button{
  font-family:'Noto Sans Telugu', sans-serif; font-size:12.5px;
  border:none; background:none; padding:7px 12px; border-radius:16px; cursor:pointer;
}
#tepaperCropShare{ color:#1a73e8; font-weight:600; }
#tepaperCropDownload{ color:var(--tp-ink); }
#tepaperCropCancel{ color:#c0392b; font-weight:600; }
.tepaper-crop-toolbar button:hover{ background:#f2f2f2; }
