/* =====================================================================
   TRANG NGOÀI – danh sách sách & trang chi tiết
   ===================================================================== */
:root{
    --bg:#042f36; --panel:#034a55; --panel-2:#034a55;
    --line:#28354f; --text:#e6edf9; --muted:#94a3b8;
    --primary:#3b82f6; --primary-2:#2563eb;
    --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    background:var(--bg);color:var(--text);
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.container{max-width:1140px;margin:0 auto;padding:0 18px}
.muted{color:var(--muted)}
.small{font-size:14px}

/* ---------------- Header ---------------- */
.site-header{
    background:rgba(1,37,43,.92);border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:30;backdrop-filter:blur(10px);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;flex-wrap:wrap}
.logo{font-size:19px;font-weight:700;color:var(--text)}
.logo:hover{text-decoration:none;color:#fff}
.site-search{display:flex;gap:8px}
.site-search input{
    width:250px;padding:9px 14px;border-radius:10px;border:1px solid var(--line);
    background:#0e1729;color:var(--text);font-size:15px;font-family:inherit;
}
.site-search input:focus{outline:2px solid var(--primary);outline-offset:-1px}
.site-search button{
    padding:9px 18px;border-radius:10px;border:0;background:var(--primary);
    color:#fff;font-weight:600;cursor:pointer;font-family:inherit;font-size:15px;
}
.site-search button:hover{background:var(--primary-2)}

main.container{padding-top:28px;padding-bottom:50px;min-height:60vh}
.result-note{color:var(--muted);margin-bottom:18px}

/* ---------------- Lưới sách ---------------- */
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:22px}
.book-card{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,border-color .18s;
}
.book-card:hover{transform:translateY(-4px);border-color:#456099}
.book-cover{position:relative;display:block;aspect-ratio:3/4;background:#0e1729}
.book-cover img{width:100%;height:100%;object-fit:cover}
.lock-badge{
    position:absolute;left:9px;top:9px;background:rgba(2,6,20,.78);
    padding:4px 10px;border-radius:20px;font-size:12px;border:1px solid var(--line);
}
.book-body{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.book-body h3{margin:0;font-size:16.5px;line-height:1.35}
.book-body h3 a{color:var(--text)}
.book-author{margin:0;font-size:13.5px;color:var(--muted)}
.book-desc{margin:0;font-size:14px;color:var(--muted);flex:1}
.book-meta{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--muted);margin-top:6px}
.btn-read{
    background:var(--primary);color:#fff;padding:7px 14px;border-radius:9px;font-size:14px;font-weight:600;
}
.btn-read:hover{background:var(--primary-2);text-decoration:none}

.pagination{display:flex;gap:8px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.pagination a{
    padding:8px 14px;border:1px solid var(--line);border-radius:9px;color:var(--text);font-size:14px;
}
.pagination a.active{background:var(--primary);border-color:var(--primary);color:#fff}
.pagination a:hover{text-decoration:none;background:var(--panel-2)}

.empty-state{text-align:center;padding:70px 20px;color:var(--muted)}
.empty-icon{font-size:48px;margin-bottom:10px}

/* ---------------- Chi tiết sách ---------------- */
.crumb{color:var(--muted);font-size:14px;margin-bottom:20px}
.detail{display:grid;grid-template-columns:290px 1fr;gap:34px;align-items:start}
.detail-cover{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4}
.detail-cover img{width:100%;height:100%;object-fit:cover}
.detail-info h1{margin:0 0 8px;font-size:29px;line-height:1.25}
.detail-author{margin:0 0 12px;color:var(--muted)}
.detail-stats{display:flex;gap:18px;color:var(--muted);font-size:14.5px;margin-bottom:16px;flex-wrap:wrap}
.detail-short{background:var(--panel);border-left:3px solid var(--primary);padding:13px 16px;border-radius:0 10px 10px 0;margin:0 0 22px}

.btn-primary-lg{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    background:var(--primary);color:#fff;border:0;border-radius:11px;
    padding:14px 30px;font-size:16px;font-weight:650;cursor:pointer;font-family:inherit;
}
.btn-primary-lg:hover{background:var(--primary-2);text-decoration:none}
.btn-primary-lg:disabled{opacity:.6;cursor:default}

.notice{background:#3a2a05;border:1px solid #92400e;color:#fcd34d;padding:13px 16px;border-radius:10px}

.unlock-form{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;max-width:520px}
.unlock-form label{display:block;font-weight:600;margin-bottom:10px}
.unlock-row{display:flex;gap:10px;flex-wrap:wrap}
.unlock-row input{
    flex:1;min-width:180px;padding:13px 16px;border-radius:11px;border:1px solid var(--line);
    background:#0e1729;color:var(--text);font-size:16px;font-family:inherit;letter-spacing:1px;
}
.unlock-row input:focus{outline:2px solid var(--primary);outline-offset:-1px}
.unlock-msg{margin-top:12px;font-size:14.5px;min-height:20px}
.unlock-msg.err{color:#fca5a5}
.unlock-msg.ok{color:#86efac}

.detail-desc{margin-top:42px}
.detail-desc h2{font-size:20px;border-bottom:1px solid var(--line);padding-bottom:10px}
.rich{color:#cbd5e1;line-height:1.85}
.rich img{border-radius:10px;margin:12px 0}
.rich h3{color:var(--text)}

/* ---------------- Footer ---------------- */
.site-footer{border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:14px;text-align:center}

/* ---------------- Responsive ---------------- */
@media (max-width:820px){
    .detail{grid-template-columns:1fr;gap:22px}
    .detail-cover{max-width:230px}
    .detail-info h1{font-size:24px}
}
@media (max-width:560px){
    .book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
    .site-search input{width:100%}
    .site-search{width:100%}
    .header-inner{gap:10px}
    .btn-primary-lg{width:100%}
}
