/* ===== NOVEL INFO BAND ===== */
.band--novel-info{
    background:var(--bg-panel);
    border-bottom:1px solid var(--border)
}
.band--novel-info .band-inner{padding-top:40px;padding-bottom:40px}

/* ===== HERO (novel detail layout) ===== */
.hero-frame{position:relative;padding:32px 40px}

.hero-layout{display:flex;gap:40px;align-items:stretch}
.hero-cover{width:240px;min-width:240px;height:auto;min-height:252px;background:var(--bg-inset);border:1px solid var(--border);overflow:hidden;position:relative}
.hero-cover img{width:100%;height:100%;object-fit:cover;display:block}
.hero-cover__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',Georgia,serif;font-size:72px;color:var(--text-faint);font-weight:600;background:linear-gradient(180deg,var(--bg-inset),var(--bg-deep))}
.hero-body{min-width:0;flex:1}
.hero-label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-weight:600}
.hero-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:700;color:var(--text-primary);line-height:1.2;margin-bottom:6px}
.hero-alt-titles{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.hero-alt-title{font-size:13px;color:var(--text-dim);padding:2px 10px;border:1px solid var(--border-subtle);font-style:italic}
.hero-alt-title--original{font-style:normal;color:var(--text-faint);font-family:'Cormorant Garamond',Georgia,serif;font-size:14px}
.hero-stats-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;font-size:13px;color:var(--text-dim)}
.hero-stats-row__number{font-weight:600;color:var(--text-primary)}
.hero-stats-row__number--accent{font-weight:600;color:var(--accent)}
.hero-stats-row__tag{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);font-weight:600;padding:2px 8px;border:1px solid var(--accent-dim)}
.hero-description{font-size:14px;color:var(--text-dim);line-height:1.7;margin-bottom:20px;max-width:700px}
.hero-description.collapsed{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hero-description-toggle{font-size:12px;color:var(--accent);cursor:pointer;background:none;border:none;padding:0;margin-bottom:20px;letter-spacing:0.5px}
.hero-description-toggle:hover{color:var(--accent-hover)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.hero-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;background:transparent;border:1px solid var(--accent);color:var(--accent);font-family:'Cormorant Garamond',Georgia,serif;font-size:16px;font-weight:600;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease;text-decoration:none}
.hero-btn:hover{background:var(--accent);color:var(--bg-deep)}
.hero-btn svg{width:16px;height:16px}
.hero-btn--secondary{border-color:var(--border-accent);color:var(--text-dim);font-size:14px;padding:10px 24px;letter-spacing:1px}
.hero-btn--secondary:hover{border-color:var(--accent);color:var(--accent);background:transparent}
.hero-progress{max-width:500px}
.hero-progress-bar{height:3px;background:var(--border);position:relative;margin-bottom:8px}
.hero-progress-fill{position:absolute;left:0;top:0;height:100%;background:var(--accent);transition:width .6s ease}
.hero-progress-text{font-size:12px;color:var(--text-faint);letter-spacing:0.5px}

.hero-side{display:flex;flex-direction:column;gap:20px;padding-left:40px;border-left:1px solid var(--border);min-width:140px}
.hero-stat{text-align:center}
.hero-stat__value{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:600;color:var(--text-primary);line-height:1}
.hero-stat__label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);margin-top:4px}
.hero-stat__badge{display:inline-block;margin-top:6px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--bg-deep);background:var(--accent);padding:2px 8px;font-weight:600}

/* ===== CONTINUE READING BAND ===== */
.band--continue{background:var(--bg-inset);border-bottom:1px solid var(--border)}
.band--continue .band-inner{padding-top:16px;padding-bottom:16px}
.continue-layout{display:flex;align-items:center;gap:24px}
.continue-label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);font-weight:600;white-space:nowrap}
.continue-chapter{font-size:14px;color:var(--text-primary);flex:1;min-width:0;max-width:100%;overflow:hidden}
.continue-chapter__number{color:var(--accent);font-weight:600}
.continue-chapter__title{color:var(--text-dim);margin-left:4px}
.continue-chapter__summary{font-size:12px;color:var(--text-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.continue-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;background:transparent;border:1px solid var(--accent);color:var(--accent);font-family:'Cormorant Garamond',Georgia,serif;font-size:14px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s;white-space:nowrap;text-decoration:none}
.continue-btn:hover{background:var(--accent);color:var(--bg-deep)}
.continue-btn svg{width:14px;height:14px}

/* ===== DASHBOARD GRID (novel detail version) ===== */
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}
.dash-col{position:relative;padding:20px;background:var(--bg-page);border:1px solid var(--border);display:flex;flex-direction:column}
.dash-col__header{font-family:'Cormorant Garamond',Georgia,serif;font-size:14px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.dash-col__header-left{display:flex;align-items:center;gap:8px}
.dash-col__header .diamond{font-size:8px;color:var(--accent);opacity:.5}
.dash-col__link{font-family:system-ui,sans-serif;font-size:11px;color:var(--text-faint);letter-spacing:0;text-transform:none;font-weight:400}
.dash-col__link:hover{color:var(--accent)}
.dash-col::before,.dash-col::after{content:'';position:absolute;width:10px;height:10px;border-color:var(--border-ornament);border-style:solid;opacity:var(--ornament-opacity)}
.dash-col::before{top:6px;left:6px;border-width:1px 0 0 1px}
.dash-col::after{top:6px;right:6px;border-width:1px 1px 0 0}
.dash-col__corners{position:absolute;inset:0;pointer-events:none}
.dash-col__corners::before,.dash-col__corners::after{content:'';position:absolute;width:10px;height:10px;border-color:var(--border-ornament);border-style:solid;opacity:var(--ornament-opacity)}
.dash-col__corners::before{bottom:6px;left:6px;border-width:0 0 1px 1px}
.dash-col__corners::after{bottom:6px;right:6px;border-width:0 1px 1px 0}

/* Character grid */
.char-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.char-card{display:flex;gap:10px;align-items:center;padding:10px;background:var(--bg-inset);border:1px solid var(--border-subtle);transition:border-color .2s;cursor:default}
.char-card:hover{border-color:var(--border-accent)}
.char-avatar{width:40px;height:40px;background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--accent);flex-shrink:0;letter-spacing:0.5px}
.char-gender{font-size:12px;margin-left:4px;font-weight:400}
.char-gender--male{color:#6a8caf}
.char-gender--female{color:#af6a8c}
.char-gender--other{color:var(--text-faint)}
.char-info{min-width:0;flex:1}
.char-name{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.2}
.char-original{font-size:11px;color:var(--text-faint)}
.char-meta{display:flex;gap:8px;font-size:10px;color:var(--text-muted);margin-top:1px}
.char-meta span{opacity:.7}
.char-role{font-size:10px;color:var(--text-faint);letter-spacing:0.3px;margin-top:2px;line-height:1.4}

/* Context stats */
.ctx-stats{padding:4px 0}
.ctx-stats__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.ctx-stat{text-align:center;padding:14px 8px;background:var(--bg-inset);border:1px solid var(--border-subtle);position:relative}
.ctx-stat__value{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;font-weight:600;color:var(--text-primary);line-height:1}
.ctx-stat__label{font-size:10px;color:var(--text-faint);letter-spacing:0.5px;text-transform:uppercase;margin-top:4px}
.ctx-morphemes{margin-top:12px;padding:12px;background:var(--bg-inset);border:1px solid var(--border-subtle)}
.ctx-morphemes__header{display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.ctx-morphemes__label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);margin-bottom:0;font-weight:600}
.ctx-morphemes__toggle{font-size:11px;color:var(--text-faint);background:none;border:none;cursor:pointer;padding:0;transition:transform .2s}
.ctx-morphemes.open .ctx-morphemes__toggle{transform:rotate(180deg)}
.ctx-morphemes__list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ctx-morphemes:not(.open) .ctx-morphemes__list{max-height:28px;overflow:hidden}
.ctx-morph{font-size:12px;color:var(--text-dim);padding:3px 8px;background:var(--bg-page);border:1px solid var(--border-subtle);white-space:nowrap}
.ctx-morph__arrow{color:var(--accent);font-size:10px;margin:0 2px}
.ctx-updated{font-size:11px;color:var(--text-faint);text-align:center;padding-top:8px;border-top:1px solid var(--border-subtle);margin-top:12px}
.ctx-updated strong{color:var(--accent);font-weight:600}

/* Stats compact */
.stats-compact{text-align:center;padding:8px 0;display:flex;flex-direction:column;justify-content:center;flex:1}
.stats-fraction{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:4px}
.stats-fraction__current{font-family:'Cormorant Garamond',Georgia,serif;font-size:56px;font-weight:700;color:var(--text-primary);line-height:1}
.stats-fraction__sep{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:400;color:var(--text-faint);line-height:1}
.stats-fraction__total{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:400;color:var(--text-dim);line-height:1}
.stats-fraction__label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text-faint);margin-bottom:16px}
.stats-bar{height:3px;background:var(--border);position:relative;margin:0 16px 20px}
.stats-bar__fill{position:absolute;left:0;top:0;height:100%;background:var(--accent)}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.stats-cell{text-align:center;padding:12px 6px;background:var(--bg-inset);border:1px solid var(--border-subtle)}
.stats-cell__value{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:600;color:var(--text-primary)}
.stats-cell__label{font-size:10px;color:var(--text-faint);letter-spacing:0.5px;text-transform:uppercase;margin-top:2px}
.stats-new-badge{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:6px 14px;background:rgba(var(--accent-rgb),.08);border:1px solid var(--accent-dim);font-size:12px;color:var(--accent);font-weight:600}
.stats-new-badge__dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ===== CHAPTER LIST ===== */
.band--chapters{background:var(--bg-page)}
.band--chapters .band-inner{padding-top:32px;padding-bottom:32px}
.band--chapters .chapters-controls{display:flex;align-items:center;gap:12px}
.chapters-header{
    display:flex;align-items:center;
    justify-content:space-between;margin-bottom:24px
}
.catalog-sort{display:flex;gap:6px}
.sort-toggle{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:14px;background:transparent;
    border:1px solid var(--border-subtle);color:var(--text-muted);
    cursor:pointer;padding:4px 10px;transition:all .2s;
    line-height:1;text-decoration:none
}
.sort-toggle:hover{color:var(--accent);border-color:var(--accent)}
.sort-toggle--active{
    color:var(--accent);border-color:var(--accent)
}
.chapter-list-scroll{
    max-height:600px;overflow-y:auto;
    scrollbar-width:none;-ms-overflow-style:none
}
.chapter-list-scroll::-webkit-scrollbar{display:none}
.volume-group{margin-bottom:2px}
.volume-group:last-child{margin-bottom:0}
.volume-header{
    background:var(--bg-inset);padding:12px 24px;
    font-family:system-ui,-apple-system,sans-serif;
    font-size:13px;font-weight:500;color:var(--text-dim);
    letter-spacing:1px;text-transform:uppercase;
    display:flex;align-items:center;justify-content:space-between;
    cursor:pointer;transition:color .15s;user-select:none
}
.volume-header:hover{color:var(--text)}
.volume-header.group-translated{color:var(--accent-dim)}
.volume-header__range{
    font-size:12px;font-weight:400;color:var(--text-faint);
    letter-spacing:0;text-transform:none
}
.volume-header__right{display:flex;align-items:center;gap:12px}
.volume-header__progress{font-size:12px;color:var(--text-dim)}
.volume-header__bar{width:80px;height:3px;background:var(--border);position:relative}
.volume-header__bar-fill{position:absolute;left:0;top:0;height:100%;background:var(--accent)}
.volume-header__chevron{color:var(--text-faint);transition:transform .2s;font-size:12px}
.volume-group.open .volume-header__chevron{transform:rotate(180deg)}
.chapter-list{display:none}
.volume-group.open .chapter-list{display:block}
.vol-band{
    background:var(--bg-deep);padding:14px 24px;
    font-family:'Cormorant Garamond',Georgia,serif;
    font-size:15px;font-weight:600;letter-spacing:2px;
    text-transform:uppercase;color:var(--text);
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border-subtle)
}
.vol-band:first-child{border-top:none}
.vol-band__label{color:var(--accent-dim)}
.arc-kind-badge{
    display:inline-block;padding:1px 7px;margin-right:8px;
    font-size:10px;font-weight:600;letter-spacing:1px;
    text-transform:uppercase;color:var(--accent);
    background:var(--bg-deep);border:1px solid var(--accent-dim)
}
.chapter-row{display:grid;grid-template-columns:60px 1fr auto auto;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--border-subtle);text-decoration:none;color:inherit;transition:background .15s}
.chapter-row:hover{background:var(--bg-inset)}
.chapter-row__number{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:14px;color:var(--text-muted);
    font-variant-numeric:tabular-nums
}
.chapter-row__body{min-width:0}
.chapter-row__title{font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}
.chapter-row:hover .chapter-row__title{color:var(--accent)}
.chapter-row__summary{font-size:12px;color:var(--text-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chapter-row__views{font-size:11px;color:var(--text-muted);white-space:nowrap;display:flex;align-items:center;gap:4px}
.chapter-row__views svg{width:12px;height:12px;opacity:.6}
.chapter-row__views--hot{color:var(--accent)}
.chapter-row__status{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:12px;font-weight:500;letter-spacing:1px;
    text-transform:uppercase;padding:3px 10px;white-space:nowrap
}
.chapter-row__status--translated{
    color:var(--accent);border:1px solid var(--accent);opacity:.8
}

/* ===== BATCH CONTROLS ===== */
.band--batch{
    background:var(--bg-inset);
    border-bottom:1px solid var(--border)
}
.band--batch .band-inner{
    display:flex;align-items:center;justify-content:center;
    gap:16px;height:52px
}
.batch-pulse{
    width:10px;height:10px;background:var(--red-dim);
    animation:pulse-dot 1.5s ease-in-out infinite;flex-shrink:0
}
@keyframes pulse-dot{
    0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:.4;transform:scale(.8)}
}
.batch-status{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:14px;color:var(--text)
}
.btn-batch-pause{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:12px;font-weight:500;letter-spacing:.5px;
    text-transform:uppercase;padding:6px 16px;
    background:transparent;border:1px solid var(--border);
    color:var(--text-dim);cursor:pointer;transition:all .2s
}
.btn-batch-pause:hover{border-color:var(--accent);color:var(--accent)}
.btn-batch-stop{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:12px;font-weight:500;letter-spacing:.5px;
    text-transform:uppercase;padding:6px 16px;
    background:transparent;border:1px solid var(--red-dim);
    color:var(--red-dim);cursor:pointer;transition:all .2s
}
.btn-batch-stop:hover{background:rgba(212,122,122,.08)}

/* ===== STATS BAND ===== */
.band--stats{background:var(--bg-inset)}
.band--stats .band-inner{
    display:flex;align-items:center;justify-content:center;height:44px
}
.stats-text{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:12px;letter-spacing:.5px;color:var(--text-muted)
}
.stats-text .diamond{
    color:var(--accent);font-size:8px;vertical-align:middle;
    margin:0 10px;opacity:.5
}

/* ===== TWO COLUMN GRID ===== */
.band--two-col{background:var(--bg-panel);border-bottom:1px solid var(--border)}
.band--two-col .band-inner{padding-top:32px;padding-bottom:32px}
.two-col-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}

/* Timeline */
.timeline-list{position:relative;padding-left:18px}
.timeline-list::before{content:'';position:absolute;left:4px;top:4px;bottom:4px;width:1px;background:var(--border)}
.timeline-item{position:relative;padding:0 0 14px 0;font-size:12px}
.timeline-item:last-child{padding-bottom:0}
.timeline-item__dot{position:absolute;left:-18px;top:3px;width:9px;height:9px;background:var(--bg-page);border:2px solid var(--border-accent)}
.timeline-item__dot--latest{border-color:var(--accent);background:var(--accent)}
.timeline-item__header{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.timeline-item__chapter{color:var(--accent);font-weight:600}
.timeline-item__title{color:var(--text-dim);font-size:11px;font-style:italic}
.timeline-item__summary{color:var(--text-faint);font-size:11px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px}
.timeline-item__chars{color:var(--text-muted);font-size:10px;margin-top:2px}

/* Recent comments (used in two-col dashboard) */
.recent-comments{
    display:flex;flex-direction:column
}
.recent-comment{
    display:flex;gap:12px;
    padding:14px 10px;height:88px;
    text-decoration:none;color:inherit;
    border-bottom:1px solid var(--border-subtle);
    transition:background .15s;overflow:hidden
}
.recent-comment:last-child{border-bottom:none}
.recent-comment:hover{
    background:rgba(var(--accent-rgb),.04);color:inherit
}
.recent-comment__avatar{
    width:48px;height:48px;flex-shrink:0;
    background:linear-gradient(
        135deg,var(--bg-inset) 0%,var(--bg-deep) 100%
    );
    border:1px solid var(--border-accent);
    display:flex;align-items:center;
    justify-content:center;overflow:hidden
}
.recent-comment__avatar img{
    width:100%;height:100%;object-fit:cover
}
.recent-comment__initial{
    font-family:'Cormorant Garamond',Georgia,serif;
    font-size:22px;font-weight:600;
    color:var(--accent);text-transform:uppercase
}
.recent-comment__body{min-width:0;flex:1}
.recent-comment__meta{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:13px;display:flex;gap:8px;
    align-items:baseline;margin-bottom:2px
}
.recent-comment__author{
    font-family:'Cormorant Garamond',Georgia,serif;
    font-size:15px;font-weight:600;
    color:var(--text-primary)
}
.recent-comment__ref{
    color:var(--text-faint);font-size:12px;
    overflow:hidden;text-overflow:ellipsis;
    white-space:nowrap
}
.recent-comment__text{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:13px;color:var(--text-dim);
    line-height:1.3;word-break:break-all;
    display:-webkit-box;-webkit-line-clamp:2;
    -webkit-box-orient:vertical;overflow:hidden
}
.recent-comment__time{
    font-family:system-ui,-apple-system,sans-serif;
    font-size:11px;color:var(--text-faint);
    margin-top:2px
}

/* ===== ALSO READ ===== */
.band--also{background:var(--bg-page)}
.band--also .band-inner{padding-top:32px;padding-bottom:40px}
.also-header{margin-bottom:20px}
.also-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;max-width:700px}
.novel-card{display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);text-decoration:none;color:inherit;position:relative;transition:border-color .2s}
.novel-card:hover{border-color:var(--border-ornament)}
.novel-card__cover{aspect-ratio:2/3;background:var(--bg-inset);overflow:hidden}
.novel-card__cover img{width:100%;height:100%;object-fit:cover}
.novel-card__glyph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-family:'Cormorant Garamond',Georgia,serif;font-size:64px;color:var(--text-faint);font-weight:600}
.novel-card__body{padding:14px}
.novel-card__title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:6px;line-height:1.3}
.novel-card__meta{font-size:11px;color:var(--text-faint);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.novel-card__tag{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);font-weight:600;padding:1px 6px;border:1px solid var(--accent-dim)}
.novel-card__progress{margin-top:10px}
.novel-card__progress-bar{height:2px;background:var(--border);position:relative}
.novel-card__progress-fill{position:absolute;left:0;top:0;height:100%;background:var(--accent)}
.novel-card__progress-label{font-size:10px;color:var(--text-faint);margin-top:4px}
.novel-card::before,.novel-card::after{content:'';position:absolute;width:8px;height:8px;border-color:var(--border-ornament);border-style:solid;opacity:var(--ornament-opacity);pointer-events:none}
.novel-card::before{top:4px;left:4px;border-width:1px 0 0 1px}
.novel-card::after{top:4px;right:4px;border-width:1px 1px 0 0}
.novel-card__corners{position:absolute;inset:0;pointer-events:none}
.novel-card__corners::before,.novel-card__corners::after{content:'';position:absolute;width:8px;height:8px;border-color:var(--border-ornament);border-style:solid;opacity:var(--ornament-opacity)}
.novel-card__corners::before{bottom:4px;left:4px;border-width:0 0 1px 1px}
.novel-card__corners::after{bottom:4px;right:4px;border-width:0 1px 1px 0}

/* ===== NOVEL COMMENTS ===== */
.band--novel-comments{background:var(--bg-page)}
.band--novel-comments .band-inner{padding-top:24px;padding-bottom:24px}
.novel-comments__title{
    font-family:'Cormorant Garamond',Georgia,serif;
    font-size:20px;font-weight:600;letter-spacing:1px;
    color:var(--text);margin-bottom:16px;padding-bottom:8px;
    border-bottom:1px solid var(--border);text-align:center
}
.novel-comments__body{display:flex;flex-direction:column;gap:4px}

/* Comment entry/form styles (shared with reader) */
.comment-entry{display:flex;gap:12px;margin-bottom:14px;transition:background .3s}
.comment-highlight{background:var(--accent-dim)}
.comment-avatar{
    width:56px;height:56px;flex-shrink:0;margin-top:6px;
    background:linear-gradient(135deg,var(--bg-inset) 0%,var(--bg-deep) 100%);
    border:1px solid var(--border-accent);
    overflow:hidden;display:flex;align-items:center;justify-content:center;
    font-family:'Cormorant Garamond',Georgia,serif;
    font-size:24px;font-weight:600;
    color:var(--accent);text-transform:uppercase
}
.comment-avatar img{width:100%;height:100%;object-fit:cover}
.comment-content{flex:1;min-width:0}
.comment-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.comment-author{font-size:17px;font-weight:600;color:var(--text);font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:.3px}
.comment-time{font-size:13px;color:var(--text-dim)}
.comment-edited{font-size:13px;color:var(--text-dim);font-style:italic}
.comment-body{font-size:16px;line-height:1.5;color:var(--text);font-family:'EB Garamond',Georgia,serif;white-space:pre-wrap;word-break:break-word}
.comment-actions{display:flex;gap:12px;margin-top:6px}
.comment-actions button{background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-dim);padding:0;font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:.3px}
.comment-actions button:hover{color:var(--accent)}
.comment-reply{padding-left:38px}
.comment-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}
.comment-input-row{display:flex;gap:10px;align-items:flex-end}
.comment-input{flex:1;min-height:36px;padding:8px 12px;background:var(--bg-inset);border:1px solid var(--border);color:var(--text);font-size:14px;font-family:'EB Garamond',Georgia,serif;resize:none;line-height:1.5}
.comment-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}
.comment-form-actions{display:flex;gap:8px;margin-top:8px;justify-content:flex-end}
.comment-submit{padding:8px 18px;font-size:16px;cursor:pointer;background:var(--accent);color:var(--bg-deep);border:1px solid var(--accent);font-family:system-ui,-apple-system,sans-serif;transition:background .2s;align-self:stretch}
.comment-submit:hover{background:var(--accent-hover);box-shadow:0 0 12px var(--accent-glow)}
.comment-cancel-btn{padding:6px 16px;font-size:13px;cursor:pointer;background:var(--bg-inset);color:var(--text-dim);border:1px solid var(--border);font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:.5px}
.comment-cancel-btn:hover{color:var(--text);border-color:var(--accent)}
.comment-edit-input{width:100%;min-height:50px;padding:6px 10px;background:var(--bg-inset);border:1px solid var(--accent);color:var(--text);font-size:14px;font-family:'EB Garamond',Georgia,serif;resize:vertical;line-height:1.5;box-shadow:0 0 8px var(--accent-glow)}
.comment-login-hint{font-size:13px;color:var(--text-dim);margin-top:12px;font-family:'Cormorant Garamond',Georgia,serif}
.comment-login-hint a{color:var(--accent)}
.comment-login-hint a:hover{color:var(--accent-hover)}
.comment-error{font-size:12px;color:#e57373;margin-top:6px;font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:.3px}
.comment-separator{border:none;margin:16px 0;height:1px;background:linear-gradient(90deg,transparent,var(--border-ornament),transparent)}

/* ===== SEARCH (used in nav) ===== */
.search-wrap{width:240px;position:relative}
input.search-input{width:100%;padding:5px 12px 5px 30px;background:var(--bg-inset);border:1px solid var(--border);color:var(--text);font-family:system-ui,-apple-system,sans-serif;font-size:13px;outline:none;transition:border-color .2s}
.search-input::placeholder{color:var(--text-faint)}
.search-input:focus{border-color:var(--accent)}
.search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text-faint);width:13px;height:13px;pointer-events:none}

/* ===== RESPONSIVE ===== */
@media(max-width:1200px){
    .hero-side{display:none}
    .dashboard-grid{grid-template-columns:1fr 1fr}
    .char-grid{grid-template-columns:1fr}
    .two-col-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
    .hero-layout{gap:24px}
    .hero-cover{width:120px;min-width:120px;min-height:168px}
    .hero-cover__placeholder{font-size:48px}
    .hero-title{font-size:24px}
    .dashboard-grid{grid-template-columns:1fr}
    .two-col-grid{grid-template-columns:1fr}
    .chapter-row{grid-template-columns:50px 1fr auto}
    .chapter-row__views{display:none}
    .volume-header{padding:10px 16px}
    .band--batch .band-inner{
        flex-wrap:wrap;height:auto;
        padding-top:12px;padding-bottom:12px;gap:10px
    }
}
@media(max-width:600px){
    .hero-frame{padding:12px}
    .hero-layout{flex-direction:column;gap:16px}
    .hero-cover{width:100%;min-width:unset;height:auto;min-height:unset}
    .hero-cover img{position:static;width:100%;height:auto;object-fit:contain}
    .hero-cover__placeholder{font-size:36px}
    .hero-title{font-size:20px}
    .hero-alt-titles{display:none}
    .header-corner{display:none}
    .hero-btn{padding:10px 20px;font-size:14px;letter-spacing:1px}
    .hero-actions{gap:8px}
    .continue-layout{flex-direction:column;align-items:flex-start;gap:12px}
    .stats-grid{grid-template-columns:1fr}
    .also-grid{grid-template-columns:1fr 1fr}
    .search-wrap{width:160px}
    .chapter-row{grid-template-columns:50px 1fr auto;padding:10px 12px}
    .chapter-row__status{font-size:10px;padding:2px 6px;letter-spacing:.5px}
    .volume-header{padding:10px 12px}
    .chapter-list-scroll{max-height:350px}
}
