:root {
  --bg: #08101d;
  --panel: #101a2d;
  --panel-2: #17233b;
  --panel-soft: rgba(255,255,255,.045);
  --text: #f3f7ff;
  --muted: #aebbd3;
  --line: rgba(255,255,255,.11);
  --brand: #7c9cff;
  --brand-2: #a778ff;
  --success: #6ed6a0;
  --warning: #f2c66d;
  --danger: #ff8a92;
  --shadow: 0 18px 55px rgba(0,0,0,.28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 15% -10%, rgba(124,156,255,.18), transparent 30%),
    radial-gradient(circle at 90% 0%, rgba(167,120,255,.12), transparent 24%),
    linear-gradient(180deg,#07101d 0%,#0a1220 100%);
  min-height: 100vh;
}
a { color: inherit; text-decoration: none; }
button,input,select { font: inherit; }
button,a { -webkit-tap-highlight-color: transparent; }
img { display:block; max-width:100%; }
.hidden { display:none !important; }
.muted { color:var(--muted); }
.error-text { color:var(--danger); }

.site-shell { width:min(1240px,calc(100% - 32px)); margin:0 auto; padding:18px 0 54px; }
.topbar {
  position:sticky; top:12px; z-index:40;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:13px 16px; margin-bottom:18px;
  border:1px solid var(--line); border-radius:20px;
  background:rgba(10,18,32,.86); backdrop-filter:blur(16px); box-shadow:var(--shadow);
}
.topbar.compact { position:relative; top:auto; }
.brand { display:flex; align-items:center; gap:12px; min-width:max-content; }
.brand-mark {
  display:grid; place-items:center; width:44px; height:44px; border-radius:14px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2)); font-weight:800; color:#fff;
  box-shadow:0 8px 22px rgba(124,156,255,.28);
}
.brand strong,.brand small { display:block; }
.brand small { margin-top:3px; color:var(--muted); font-size:.73rem; }
.main-nav { display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.main-nav a { padding:9px 12px; border-radius:11px; color:var(--muted); font-weight:600; font-size:.9rem; }
.main-nav a:hover,.main-nav a.active { color:var(--text); background:rgba(124,156,255,.14); }
.menu-toggle { display:none; border:1px solid var(--line); background:var(--panel-soft); color:var(--text); border-radius:11px; padding:9px 12px; }

.hero {
  display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr); gap:22px;
  padding:32px; border:1px solid var(--line); border-radius:28px;
  background:linear-gradient(135deg,rgba(20,31,54,.95),rgba(12,21,38,.88)); box-shadow:var(--shadow);
}
.eyebrow { margin:0 0 10px; color:var(--brand); font-size:.78rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.hero h1 { margin:0; font-size:clamp(2rem,5vw,3.8rem); line-height:1.05; letter-spacing:-.04em; }
.hero-text { max-width:68ch; margin:16px 0 0; color:var(--muted); line-height:1.75; }
.hero-card,.info-card { padding:21px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.035); }
.hero-card strong { font-size:1.15rem; }
.hero-card p,.info-card p { color:var(--muted); line-height:1.65; }
.continue-link { display:inline-flex; margin-top:8px; color:#fff; font-weight:700; }
.search-bar { display:flex; gap:10px; margin-top:22px; }
.search-bar input,.chapter-search {
  width:100%; border:1px solid var(--line); border-radius:14px; padding:14px 15px;
  background:rgba(255,255,255,.045); color:var(--text); outline:none;
}
.search-bar input:focus,.chapter-search:focus { border-color:rgba(124,156,255,.7); box-shadow:0 0 0 3px rgba(124,156,255,.1); }
.primary-button,.secondary-button,.icon-button,.quick-filters button,.width-controls button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:13px; cursor:pointer; font-weight:700;
  transition:.18s ease; text-align:center;
}
.primary-button { border:1px solid rgba(124,156,255,.5); background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; padding:12px 17px; }
.secondary-button,.icon-button,.quick-filters button,.width-controls button { border:1px solid var(--line); background:var(--panel-soft); color:var(--text); padding:11px 14px; }
.primary-button:hover,.secondary-button:hover,.icon-button:hover,.quick-filters button:hover,.width-controls button:hover { transform:translateY(-1px); filter:brightness(1.08); }
.disabled { opacity:.45; pointer-events:none; }
.quick-filters { display:flex; gap:9px; flex-wrap:wrap; margin-top:14px; }
.quick-filters button { font-size:.85rem; color:var(--muted); }

.genre-panel { margin-top:20px; padding:24px; border:1px solid var(--line); border-radius:24px; background:var(--panel); box-shadow:var(--shadow); }
.panel-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.panel-heading h2 { margin:0; }
.genre-options { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:9px; max-height:370px; overflow:auto; margin:20px 0; padding-right:6px; }
.genre-option { display:flex; gap:9px; align-items:center; padding:11px 12px; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:var(--panel-soft); cursor:pointer; }
.genre-option:has(input:checked) { border-color:var(--brand); color:var(--text); background:rgba(124,156,255,.12); }
.panel-actions { display:flex; gap:10px; flex-wrap:wrap; }

.content-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:30px 0 18px; }
.content-toolbar h2 { margin:0; font-size:clamp(1.55rem,3vw,2.15rem); }
.content-toolbar p:last-child { color:var(--muted); margin:7px 0 0; }
.status-chip { border:1px solid var(--line); border-radius:999px; padding:9px 13px; color:var(--muted); background:var(--panel-soft); white-space:nowrap; }
.status-chip.loading { color:var(--warning); }
.message-box { padding:14px 16px; border:1px solid var(--line); border-radius:14px; margin:14px 0; background:var(--panel-soft); }
.message-box.error { color:var(--danger); border-color:rgba(255,138,146,.3); }
.message-box.warning { color:var(--warning); }
.message-box.success { color:var(--success); }

.comic-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(205px,1fr)); gap:18px; }
.comic-card { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:21px; background:linear-gradient(180deg,rgba(23,35,59,.93),rgba(12,20,36,.96)); box-shadow:0 12px 28px rgba(0,0,0,.18); }
.comic-card.is-hot::after { content:"HOT"; position:absolute; top:12px; left:12px; padding:6px 9px; border-radius:999px; background:#ef476f; color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.08em; }
.cover-link { display:block; overflow:hidden; background:#0c1424; }
.comic-cover { width:100%; aspect-ratio:3/4.25; object-fit:cover; transition:transform .35s ease; }
.comic-card:hover .comic-cover { transform:scale(1.035); }
.comic-card-body { padding:14px; }
.card-labels,.card-stats { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.type-badge,.status-badge { font-size:.72rem; padding:6px 8px; border-radius:999px; color:var(--muted); background:rgba(255,255,255,.055); }
.status-badge[data-status="ongoing"] { color:var(--success); }
.status-badge[data-status="completed"] { color:var(--warning); }
.comic-card h3 { margin:12px 0 9px; font-size:1rem; line-height:1.45; }
.title-link { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-stats { color:var(--muted); font-size:.78rem; }
.rating { color:#ffd166; }
.chapter-links { display:grid; gap:7px; margin-top:12px; }
.chapter-pill { display:flex; justify-content:space-between; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.035); font-size:.78rem; color:var(--muted); }
.chapter-pill:hover { color:var(--text); border-color:rgba(124,156,255,.5); }
.muted-pill { justify-content:center; }
.load-more-wrap { display:flex; justify-content:center; margin:24px 0; }
.skeleton { border-radius:10px; background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.11),rgba(255,255,255,.05)); background-size:200% 100%; animation:skeleton 1.25s infinite; }
.skeleton.cover { aspect-ratio:3/4.25; border-radius:0; }
.skeleton.line { height:13px; margin:11px 0; }
.skeleton.line.wide { width:92%; }
.skeleton.line.short { width:55%; }
@keyframes skeleton { to { background-position:-200% 0; } }

.breadcrumb { display:flex; gap:8px; color:var(--muted); font-size:.9rem; margin:18px 0; }
.breadcrumb a { color:var(--brand); }
.detail-layout { display:grid; grid-template-columns:minmax(240px,310px) minmax(0,1fr); gap:28px; padding:26px; border:1px solid var(--line); border-radius:26px; background:var(--panel); box-shadow:var(--shadow); }
.detail-cover { width:100%; border-radius:19px; aspect-ratio:3/4.25; object-fit:cover; background:#0d1422; }
.detail-content h1 { margin:0; font-size:clamp(2rem,4vw,3.3rem); line-height:1.08; }
.alternative-title { color:var(--muted); margin:10px 0; }
.detail-description { color:var(--muted); line-height:1.8; max-width:80ch; }
.detail-badges { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0; }
.detail-badge { padding:8px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:var(--panel-soft); font-size:.82rem; }
.detail-actions { display:flex; gap:10px; flex-wrap:wrap; margin:20px 0; }
.meta-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:10px; margin:22px 0 0; }
.meta-item { padding:13px; border:1px solid var(--line); border-radius:14px; background:var(--panel-soft); }
.meta-item dt { color:var(--muted); font-size:.77rem; margin-bottom:5px; }
.meta-item dd { margin:0; font-weight:700; }
.detail-columns { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; margin-top:22px; }
.chapter-section { padding:22px; border:1px solid var(--line); border-radius:23px; background:var(--panel); }
.chapter-heading { align-items:center; }
.chapter-heading h2 { margin:0; }
.chapter-search { max-width:260px; }
.chapter-list { display:grid; gap:8px; margin-top:18px; }
.chapter-row { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:13px 14px; border:1px solid var(--line); border-radius:13px; background:var(--panel-soft); }
.chapter-row:hover { border-color:rgba(124,156,255,.5); background:rgba(124,156,255,.08); }
.chapter-row strong,.chapter-row small { display:block; }
.chapter-row small,.chapter-date { color:var(--muted); font-size:.76rem; margin-top:4px; }
.detail-sidebar { display:grid; align-content:start; gap:14px; }
.empty-state { color:var(--muted); padding:20px; text-align:center; }

.responsive-ad-slot { width:100%; display:flex; justify-content:center; align-items:center; margin:16px 0; overflow:hidden; }
.responsive-ad-inner { display:flex; justify-content:center; align-items:center; overflow:hidden; }
.responsive-ad-mobile { width:320px; max-width:100%; min-height:50px; }
.responsive-ad-tablet { width:300px; max-width:100%; min-height:250px; }
.responsive-ad-desktop { width:728px; max-width:100%; min-height:90px; }
.site-footer { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; margin-top:34px; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); }
.site-footer p { margin:7px 0 0; }

.reader-page { background:#05080f; }
.reader-light { --bg:#edf1f7; --panel:#fff; --panel-2:#f4f6fa; --text:#111827; --muted:#5b6474; --line:rgba(17,24,39,.14); background:#eef2f7; }
.reading-progress { position:fixed; top:0; left:0; z-index:100; height:3px; width:0; background:linear-gradient(90deg,var(--brand),var(--brand-2)); }
.reader-header { position:sticky; top:0; z-index:60; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:18px; align-items:center; padding:12px 20px; border-bottom:1px solid var(--line); background:rgba(5,8,15,.93); backdrop-filter:blur(16px); }
.reader-light .reader-header { background:rgba(255,255,255,.93); }
.reader-brand { font-weight:800; color:var(--brand); }
.reader-title-wrap { min-width:0; text-align:center; }
.reader-title-wrap h1 { margin:0; font-size:clamp(.9rem,2vw,1.2rem); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.reader-title-wrap a { color:var(--muted); font-size:.74rem; }
.reader-controls { position:sticky; top:69px; z-index:50; display:flex; justify-content:center; align-items:center; gap:9px; flex-wrap:wrap; padding:10px 14px; border-bottom:1px solid var(--line); background:rgba(10,15,25,.93); backdrop-filter:blur(14px); }
.reader-light .reader-controls { background:rgba(244,246,250,.94); }
.reader-controls select { min-width:190px; max-width:320px; padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:var(--panel); color:var(--text); }
.width-controls { display:flex; gap:5px; }
.width-controls button { padding:9px 10px; font-size:.78rem; }
.width-controls button.active { background:rgba(124,156,255,.22); border-color:var(--brand); }
.reader-main { width:100%; margin:0 auto; }
.reader-ad { width:min(100%,1100px); margin-left:auto; margin-right:auto; }
.comic-reader { margin:0 auto; transition:max-width .2s ease; background:#090d14; }
.reader-light .comic-reader { background:#fff; }
.reader-width-720 { max-width:720px; }
.reader-width-900 { max-width:900px; }
.reader-width-full { max-width:100%; }
.reader-image-wrap { margin:0; min-height:80px; background:#0a0f18; }
.reader-light .reader-image-wrap { background:#fff; }
.chapter-image { width:100%; height:auto; margin:0; }
.image-error-box { min-height:220px; display:grid; place-items:center; gap:10px; padding:30px; text-align:center; color:var(--danger); }
.image-error-box button { border:1px solid var(--line); background:var(--panel); color:var(--text); padding:10px 13px; border-radius:10px; }
.reader-bottom-nav { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; padding:28px 16px; }
.reader-footer { text-align:center; color:var(--muted); padding:10px 16px 32px; }

.error-page { min-height:100vh; display:grid; place-items:center; padding:20px; }
.error-card { width:min(620px,100%); padding:40px; text-align:center; border:1px solid var(--line); border-radius:28px; background:var(--panel); box-shadow:var(--shadow); }
.error-code { display:block; font-size:clamp(4rem,15vw,8rem); font-weight:800; line-height:1; color:var(--brand); }
.error-card h1 { margin:15px 0; }
.error-card p { color:var(--muted); line-height:1.7; margin-bottom:24px; }

@media (max-width:980px) {
  .hero,.detail-layout,.detail-columns { grid-template-columns:1fr; }
  .detail-cover-column { max-width:340px; }
  .detail-sidebar { grid-template-columns:1fr; }
  .site-footer { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  .site-shell { width:min(100% - 20px,1240px); padding-top:10px; }
  .topbar { top:6px; border-radius:16px; }
  .menu-toggle { display:inline-flex; }
  .main-nav { display:none; position:absolute; left:10px; right:10px; top:66px; padding:10px; border:1px solid var(--line); border-radius:15px; background:#0d1728; box-shadow:var(--shadow); }
  .main-nav.open { display:grid; grid-template-columns:repeat(2,1fr); }
  .detail-nav { display:flex; position:static; border:0; background:transparent; box-shadow:none; padding:0; }
  .hero { padding:23px; border-radius:22px; }
  .search-bar { flex-direction:column; }
  .search-bar button { width:100%; }
  .content-toolbar,.chapter-heading { align-items:flex-start; flex-direction:column; }
  .comic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  .comic-card { border-radius:15px; }
  .comic-card-body { padding:11px; }
  .card-labels,.card-stats { align-items:flex-start; flex-direction:column; gap:5px; }
  .chapter-pill { font-size:.72rem; }
  .detail-layout,.chapter-section { padding:17px; }
  .chapter-search { max-width:none; }
  .chapter-row { align-items:flex-start; flex-direction:column; }
  .reader-header { grid-template-columns:auto minmax(0,1fr) auto; padding:10px; gap:8px; }
  .reader-controls { display:none; position:fixed; top:62px; left:8px; right:8px; border:1px solid var(--line); border-radius:15px; box-shadow:var(--shadow); }
  .reader-controls.open { display:flex; }
  .reader-controls .secondary-button,.reader-controls select { flex:1 1 42%; }
  .width-controls { flex:1 1 100%; justify-content:center; }
}

@media (max-width:420px) {
  .comic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .comic-card h3 { font-size:.88rem; }
  .type-badge,.status-badge { font-size:.64rem; }
  .chapter-links { display:none; }
  .hero h1 { font-size:2rem; }
  .brand small { display:none; }
}
