:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --muted:#4b5563;
  --text:#111827;
  --accent:#2563eb;
  --border:#e5e7eb;
  --danger:#b91c1c;
  --ok:#047857;
  --shadow: 0 10px 30px rgba(17,24,39,.08);
}

*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial;
  background: var(--bg);
  color: var(--text);
  line-height:1.55;
}

a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

.container{max-width:1100px;margin:0 auto;padding:18px}

.nav{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:10;
}

.brand{font-weight:900;letter-spacing:.2px}
.nav small{color:var(--muted);font-size:14px}

.grid{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
@media(max-width:900px){.grid{grid-template-columns:1fr}}

.card{
  background: var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  box-shadow: var(--shadow);
}

.card h2,.card h3{margin:0 0 10px 0}
.card h2{font-size:22px}
.card h3{font-size:18px}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--muted);
  font-size:14px;
  background:#fff;
}
.badge:hover{border-color:#c7d2fe}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
  padding:11px 14px;
  border-radius:12px;
  cursor:pointer;
  font-weight:700;
}
.btn:hover{border-color:#c7d2fe}
.btn:focus{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}

.btn.primary{
  background: var(--accent);
  border-color: var(--accent);
  color:#fff;
}
.btn.danger{
  background:#fff;
  border-color:#fecaca;
  color:var(--danger);
}

.input, textarea, select{
  width:100%;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
  outline:none;
  font-size:16px;
}
.input:focus, textarea:focus, select:focus{outline:3px solid rgba(37,99,235,.20);outline-offset:2px}
textarea{min-height:160px;resize:vertical}

.meta{color:var(--muted);font-size:14px}

.post{display:flex;gap:12px}
.post img{width:120px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--border);background:#f3f4f6}
.post .title{font-size:18px;font-weight:900;margin:2px 0 0 0}
.post .excerpt{margin:8px 0 0 0;color:var(--muted)}

.hr{height:1px;background:var(--border);margin:12px 0}

.footer{padding:30px 18px;color:var(--muted);text-align:center}

.notice{
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
}
.notice.ok{border-color:#bbf7d0}
.notice.err{border-color:#fecaca}

.ad{
  border:1px dashed #cbd5e1;
  border-radius:16px;
  padding:12px;
  color:var(--muted);
  text-align:center;
  background:#fff;
}

.sidebar{position:sticky;top:90px}
@media(max-width:900px){.sidebar{position:static;top:auto}}

.readable{
  font-size:18px;
  line-height:1.7;
}
.readable p{margin:0 0 12px 0}
.readable h2{margin:18px 0 10px 0;font-size:22px}
.readable ul{padding-left:20px}

/* Post cards (index) */
.postcard{padding:0;overflow:hidden}
.postcard .pimg{width:100%;height:220px;object-fit:cover;display:block;border-bottom:1px solid var(--border)}
.postcard .pbody{padding:14px}
.postcard .ptitle{font-size:20px;font-weight:900;margin:6px 0 0 0}
.postcard .pexcerpt{margin:10px 0 0 0;color:var(--muted);font-size:15px;line-height:1.6}

/* Content images */
.post-content img{max-width:100%;height:auto;border-radius:14px;display:block;margin:10px 0;border:1px solid var(--border)}
.post-content img.img-sm{max-width:360px}
.post-content img.img-md{max-width:720px}
.post-content img.img-lg{max-width:100%}

/* Alignment helpers (text wraps around left/right) */
.post-content img.img-left{float:left;margin-right:14px}
.post-content img.img-right{float:right;margin-left:14px}
.post-content img.img-center{float:none;margin-left:auto;margin-right:auto}
.post-content:after{content:"";display:block;clear:both}


/* Rating */
.rating-card{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card);}
.rating-title{margin:0 0 10px 0;font-size:1.05rem}
.stars{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.star{font-size:22px;line-height:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer;transition:transform .12s ease}
.star:hover{transform:scale(1.06)}
.star.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.rating-dist{margin-top:10px;display:grid;gap:6px}
.dist-row{display:flex;justify-content:space-between;border:1px dashed var(--line);border-radius:12px;padding:8px 10px;background:#fff}
.rating-msg{margin-top:8px;color:var(--muted)}
.hp{position:absolute;left:-9999px;top:-9999px;height:1px;width:1px;opacity:0}

/* Sidebar categories */
.side-links{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.side-link{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;color:inherit;text-decoration:none}
.side-link:hover{border-color:var(--accent);transform:translateY(-1px)}


/* Featured carousel */
.featured-wrap{margin:10px 0 18px 0}
.featured-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.featured-head h2{margin:0}
.featured-sub{color:var(--muted);font-size:.95rem}
.featured-marquee{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}
.featured-track{display:flex;gap:12px;padding:12px;animation:marq 45s linear infinite}
.featured-marquee:hover .featured-track{animation-play-state:paused}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.featured-card{display:grid;grid-template-columns:120px 1fr;gap:10px;min-width:320px;max-width:420px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;overflow:hidden;transition:transform .12s ease}
.featured-card:hover{transform:scale(1.02)}
.featured-img{height:86px;background:linear-gradient(135deg,#f5f7ff,#fff);display:flex;align-items:center;justify-content:center}
.featured-img img{width:100%;height:100%;object-fit:cover}
.noimg{font-size:28px}
.featured-info{padding:8px 10px}
.featured-title{font-weight:700;font-size:0.98rem}
.featured-cat{color:var(--muted);font-size:0.9rem;margin-top:2px}

/* Interest rows */
.interest-row{margin:12px 0 18px 0}
.interest-head{display:flex;align-items:flex-end;justify-content:space-between}
.interest-head h3{margin:0}
.interest-sub{color:var(--muted);font-size:.95rem}
.interest-list{display:flex;gap:10px;overflow:auto;padding:10px 0}
.interest-item{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:10px 14px;background:#fff;text-decoration:none;color:inherit;white-space:nowrap}
.interest-item:hover{border-color:var(--accent);transform:translateY(-1px)}


/* Featured masonry */
.featured-masonry{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff}
.fm-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;background:#fff;transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;display:flex;flex-direction:column;min-height:180px}
.fm-card:hover{transform:scale(1.02);border-color:var(--accent);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.fm-img{height:120px;background:linear-gradient(135deg,#f5f7ff,#fff);display:flex;align-items:center;justify-content:center}
.fm-img img{width:100%;height:100%;object-fit:cover}
.fm-info{padding:10px 12px}
.fm-title{font-weight:800;font-size:1rem;line-height:1.2}
.fm-cat{margin-top:4px;color:var(--muted);font-size:.92rem}
.fm-card.sm{grid-column:span 4}
.fm-card.md{grid-column:span 6}
.fm-card.lg{grid-column:span 8}
@media (max-width:980px){.fm-card.sm{grid-column:span 6}.fm-card.md{grid-column:span 12}.fm-card.lg{grid-column:span 12}}
@media (max-width:560px){.featured-masonry{grid-template-columns:repeat(6,1fr)}.fm-card{grid-column:span 6!important}}
.interest-item.cardish{display:flex;gap:10px;align-items:center;border-radius:16px}
.interest-thumb{width:54px;height:40px;border-radius:12px;overflow:hidden;background:#f3f4ff;border:1px solid var(--line);flex:0 0 auto}
.interest-thumb img{width:100%;height:100%;object-fit:cover}
