/* Shared member tools, favorites and responsive layout. */
.card-rating { display:flex; align-items:center; gap:5px; margin:8px 0; color:#9a580a; font-size:.82rem; font-weight:800; }
.card-rating>span { color:#d48a15; }
.card-rating small { color:var(--muted); font-weight:400; font-size:.7rem; }
.card-rating.is-unrated,.card-rating.is-unrated>span { color:#88897e; font-size:.74rem; }
.file-edit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0; }
.manage-file-dialog .manage-section .file-edit-form { display:block; }
.file-edit-form label { display:grid; gap:7px; font-size:.78rem; font-weight:700; min-width:0; }
.file-edit-form .form-control,.file-edit-form .form-select { width:100%; min-width:0; border-radius:8px; font-size:.85rem; }
.file-edit-form small { font-size:.7rem; color:var(--muted); font-weight:400; }
.file-edit-full { grid-column:1/-1; }
.file-edit-flags { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0; }
.file-edit-flags label { display:flex; align-items:center; gap:7px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.file-edit-flags input { appearance:auto; position:static; width:17px; height:17px; margin:0; opacity:1; accent-color:var(--orange); }
.file-edit-flags label:has(input:checked) { color:#a4471e; border-color:var(--orange); background:#fff0e5; }
.file-edit-actions { display:flex; justify-content:flex-end; margin-top:18px; }
@media(max-width:480px) { .file-edit-grid { grid-template-columns:1fr; } }
.library-sort { display:flex; align-items:center; gap:8px; font-size:.78rem; color:#6b6c61; white-space:nowrap; }
.library-wrap .section-head-actions { flex-wrap:wrap; justify-content:flex-end; }
.library-sort select { background:#fffdf6; color:var(--ink); border:1px solid var(--line); border-radius:24px; padding:10px 14px; max-width:100%; cursor:pointer; }
.favorite-button:disabled { opacity:.55; cursor:wait; }
.favorite-notice { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:1090; background:var(--ink); color:white; padding:12px 20px; border-radius:12px; max-width:calc(100% - 32px); font-size:.86rem; box-shadow:0 5px 20px #0003; }
.favorite-notice.is-error { background:#94243a; }
.workspace-page { max-width:1440px; padding-top:48px; padding-bottom:80px; }
.workspace-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:30px; }
.workspace-heading span { font-size:.7rem; letter-spacing:.18em; color:#967423; font-weight:800; }
.workspace-heading h1 { font-size:clamp(2rem,4vw,3.6rem); letter-spacing:-.06em; font-weight:800; margin:8px 0 12px; }
.workspace-heading p,.subtle-note { color:var(--muted); line-height:1.7; font-size:.85rem; }
.subtle-note { margin:20px 0 0; }
.quiet-link { color:var(--ink); font-size:.85rem; text-underline-offset:4px; white-space:nowrap; }
.member-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:30px; }
.member-stats>div { background:var(--ink); border-radius:16px; color:white; padding:24px; display:grid; gap:12px; }
.member-stats small { color:#bfc3ae; font-size:.75rem; }
.member-stats strong { font-size:2.4rem; color:var(--lime); line-height:1; }
.record-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:20px; background:var(--white); border:1px solid var(--line); border-radius:16px; }
.record-filters label { flex:1 1 150px; display:grid; gap:8px; font-size:.75rem; font-weight:700; min-width:0; }
.record-filters label:first-child { flex-grow:2; }
.record-filters .form-control,.record-filters .form-select { border-radius:8px; min-width:0; width:100%; font-size:.85rem; height:46px; }
.solid-button { border:0; border-radius:9px; background:var(--ink); color:white; padding:12px 20px; font-size:.85rem; font-weight:700; min-height:44px; }
.solid-button:hover { background:#3b4237; }
.result-summary { color:var(--muted); font-size:.8rem; margin:25px 0 14px; }
.records-wrap { border:1px solid var(--line); border-radius:16px; background:var(--white); overflow:hidden; }
.records-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:.82rem; }
.records-table th { padding:16px; background:#e9e6db; font-weight:700; color:#63675b; font-size:.7rem; }
.records-table td { padding:20px 16px; border-top:1px solid #e5e1d6; vertical-align:top; overflow-wrap:anywhere; }
.records-table td>strong { display:block; font-size:.92rem; }
.records-table small { display:block; color:#74786e; font-size:.73rem; margin-top:5px; line-height:1.6; }
.records-table details { margin-top:7px; font-size:.7rem; }
.records-table th:last-child { width:25%; }
.activity-table th:nth-child(2),.activity-table th:nth-child(3) { width:10%; }
.activity-table th:nth-child(4) { width:36%; }
.activity-table th:last-child { width:22%; }
.records-table .records-empty { text-align:center; padding:60px 20px; color:var(--muted); }
.record-status { display:inline-flex; width:fit-content; padding:5px 9px; border-radius:6px; background:#ece9e0; color:#666b61; font-size:.7rem; font-weight:800; white-space:nowrap; }
.record-status.success { background:#e4efcf; color:#3c5f24; }
.record-status.failed { background:#fbe0e3; color:#a3253a; }
.record-status.pending { background:#fff0c8; color:#82621b; }
.member-actions { display:flex; flex-wrap:wrap; gap:7px; }
.member-actions form { margin:0; }
.member-actions a,.member-actions button { display:inline-flex; align-items:center; justify-content:center; border:1px solid #d2ccbe; background:transparent; color:var(--ink); padding:8px 10px; border-radius:7px; font-size:.74rem; font-weight:700; text-decoration:none; min-height:38px; }
.member-actions .danger { color:#b6213b; border-color:#e1a9b2; }
.member-actions .purge { color:white; border-color:#a31f37; background:#a31f37; }
.member-actions .approve { color:#405d12; border-color:#8ca64c; background:#eff8d7; }
.member-editor { background:#fffdf8; border:1px solid #cec6b4; border-top:4px solid var(--lime); border-radius:14px; padding:25px; margin-bottom:28px; }
.member-editor h2 { font-size:1.2rem; font-weight:800; margin-bottom:22px; }
.admin-security { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.4fr); gap:28px; align-items:center; margin-bottom:28px; padding:25px; border:1px solid #cec6b4; border-left:5px solid var(--lime); border-radius:16px; background:#fffdf8; }
.admin-security-copy>span { font-size:.68rem; letter-spacing:.16em; color:#8c6b18; font-weight:800; }
.admin-security-copy h2 { margin:7px 0; font-size:1.25rem; font-weight:800; }
.admin-security-copy p { margin:0; color:var(--muted); font-size:.78rem; line-height:1.6; }
.admin-password-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto; align-items:end; gap:10px; }
.admin-password-form label { display:grid; gap:6px; min-width:0; font-size:.75rem; font-weight:700; }
.admin-password-form label small { color:var(--muted); font-weight:400; }
.admin-password-form .form-control { width:100%; min-width:0; border-radius:8px; }
.member-edit-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.member-edit-form label { display:grid; gap:8px; font-size:.8rem; font-weight:700; }
.member-edit-form .form-control { border-radius:8px; min-width:0; }
.editor-actions { grid-column:1/-1; display:flex; gap:16px; align-items:center; }
.book-entry { position:relative; min-width:0; }
.series-bulk-toolbar { position:sticky; top:12px; z-index:20; display:flex; align-items:center; gap:18px; margin:0 0 24px; padding:14px 16px; color:white; background:#262a24f5; border:1px solid #4a5044; border-radius:14px; box-shadow:0 8px 22px #0002; backdrop-filter:blur(8px); }
.series-select-all { display:flex; align-items:center; gap:9px; font-size:.8rem; font-weight:700; cursor:pointer; white-space:nowrap; }
.series-select-all input,.series-card-select input { appearance:auto; width:18px; height:18px; margin:0; accent-color:var(--lime); }
.series-bulk-summary { display:grid; gap:1px; margin-right:auto; padding-left:18px; border-left:1px solid #ffffff2b; }
.series-bulk-summary strong { font-size:.84rem; color:var(--lime); }
.series-bulk-summary small { color:#c3c7b9; font-size:.67rem; }
.series-bulk-actions { display:flex; gap:8px; }
.series-bulk-actions button { border:1px solid #767d6e; background:transparent; color:white; min-height:40px; padding:8px 13px; border-radius:8px; font-size:.76rem; font-weight:700; }
.series-bulk-actions .series-delete-btn { border-color:#d27c8c; color:#ffb7c3; }
.series-bulk-actions .series-status-btn{border-color:var(--lime);color:var(--lime)}
.series-bulk-actions button:disabled { opacity:.35; cursor:not-allowed; }
.book-cover-link,.book-info-link { display:block; color:inherit; text-decoration:none; min-width:0; }
.book-title-toggle { cursor:default; }
.book-title-toggle[data-title-truncated="1"] { cursor:pointer; }
.book-title-toggle:focus-visible { outline:3px solid #1478b1; outline-offset:3px; border-radius:3px; }
.book-info h3.book-title-toggle.is-expanded { display:block; white-space:normal; overflow:visible; text-overflow:clip; -webkit-line-clamp:unset; }
.book-title-toggle[data-title-truncated="1"]:after { content:' 펼치기'; margin-left:5px; color:#8b6b1d; font-size:.58rem; font-weight:700; white-space:nowrap; }
.book-title-toggle.is-expanded:after { content:' 접기'; }
.book-info-tools { display:flex; align-items:center; justify-content:flex-end; min-height:36px; margin-bottom:8px; padding-bottom:8px; border-bottom:1px solid var(--line); }
.series-card-select { display:flex; align-items:center; gap:6px; width:auto; min-height:34px; margin:0 auto 0 0; padding:4px 9px; border:1px solid #d8d2c6; border-radius:8px; background:#fffdf5; cursor:pointer; }
.series-card-select input { position:absolute; opacity:0; pointer-events:none; }
.series-card-select span { display:grid; place-items:center; width:20px; height:20px; border:2px solid #8d8c82; border-radius:5px; color:transparent; font-size:.72rem; font-weight:900; }
.series-card-select small { color:#67695f; font-size:.68rem; font-weight:800; }
.series-card-select:has(input:checked) { background:var(--lime); border-color:var(--ink); }
.series-card-select input:checked+span { color:var(--ink); border-color:var(--ink); }
.series-card-select:has(input:focus-visible) { outline:3px solid #1478b1; outline-offset:3px; }
.book-entry.is-series-selected .book-card { outline:3px solid #708d28; outline-offset:5px; border-radius:8px; }
.series-bulk-modal .modal-header small { display:block; margin-bottom:5px; color:#8c6b18; letter-spacing:.16em; font-size:.64rem; font-weight:800; }
.series-bulk-modal .modal-header h2 { margin:0; font-size:1.35rem; font-weight:800; }
.bulk-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.bulk-status-grid label{display:grid;gap:7px;font-size:.75rem;font-weight:800}@media(max-width:600px){.bulk-status-grid{grid-template-columns:1fr}}
.series-move-progress-modal{overflow:hidden;border-radius:18px}.series-move-progress-modal .modal-header{background:var(--ink);color:#fff;border:0}.series-move-progress-modal .modal-header small{color:var(--lime)}.series-move-progress-modal .modal-body{display:flex;flex-direction:column;align-items:center;min-height:330px;text-align:center;padding:34px}.series-move-progress-icon{display:grid;place-items:center;width:68px;height:68px;margin-bottom:20px;border-radius:50%;background:#168dcc;color:#fff;font-size:1.7rem;font-weight:900;box-shadow:7px 7px 0 var(--lime);animation:retry-upload-pulse 1.15s ease-in-out infinite}.series-move-progress-modal .modal-body>strong{font-size:1.05rem}.series-move-progress-modal .modal-body>p{max-width:380px;margin:8px 0 22px!important;padding:0!important;background:transparent!important;color:var(--muted);font-size:.72rem!important;line-height:1.6}.series-move-progress-steps{display:grid;width:100%;gap:6px}.series-move-progress-steps span{padding:9px 12px;background:#e4e1d8;color:#85867f;font-size:.66rem;font-weight:800;text-align:left}.series-move-progress-steps span.active{background:var(--ink);color:var(--lime)}.series-move-progress-time{margin-top:18px;padding:5px 10px;background:#ddd9cf;color:#555;font-size:.65rem;font-weight:800}.series-move-progress-modal.is-success .series-move-progress-icon{background:#6f8e13;animation:none}.series-move-progress-modal.is-failed .series-move-progress-icon{background:#c33427;box-shadow:7px 7px 0 #f1a79e;animation:none}.series-move-progress-modal.is-failed .modal-body>p{color:#a2281e}.series-move-progress-modal .modal-footer:has(button[hidden]){display:none}
.series-bulk-lead,.series-delete-question { color:#565950; line-height:1.7; }
.series-bulk-lead b,.series-delete-question b { color:var(--ink); }
.series-bulk-target { display:grid; grid-template-columns:1fr auto; gap:7px 12px; margin:18px 0; }
.series-bulk-target label { font-size:.78rem; font-weight:800; }
.series-bulk-target>small { color:var(--muted); font-size:.7rem; align-self:end; }
.series-bulk-target .form-control,.series-bulk-target .form-select { grid-column:1/-1; border-radius:8px; }
.series-bulk-target .form-select { min-height:190px; }
.series-bulk-warning { padding:13px 15px; border:1px solid #e0c98a; border-radius:9px; color:#6c571d; background:#fff7d8; font-size:.75rem; line-height:1.6; }
.series-bulk-warning.danger { border-color:#e2a9b1; color:#95263a; background:#fff0f2; }
.danger-solid-button { border:0; border-radius:9px; background:#a6233c; color:white; padding:12px 20px; font-size:.85rem; font-weight:800; }
.card-favorite-form { position:static; margin:0; }
.book-info-tools .favorite-button { width:34px; height:34px; min-width:34px; min-height:34px; border-radius:9px; font-size:1.2rem; box-shadow:none; }
.favorite-button { display:inline-grid; place-items:center; min-width:42px; min-height:42px; border:1px solid #e0d6c9; background:#fffdf6; color:#726e60; border-radius:50%; font-size:1.5rem; line-height:1; box-shadow:0 2px 8px #0002; }
.favorite-button:hover,.favorite-button.selected { background:#fff0f0; color:#b32441; border-color:#c46e7d; }
.favorite-button:focus-visible,.mobile-menu-toggle:focus-visible { outline:3px solid #1478b1; outline-offset:3px; }
.favorite-wide { width:auto!important;min-width:max-content!important;height:auto!important;min-height:40px;padding:9px 14px!important;border:1px solid var(--ink)!important;border-radius:10px!important;background:transparent!important;color:var(--ink)!important;font-size:.76rem!important;box-shadow:3px 3px 0 var(--lime)!important; }
.favorite-wide.selected{border-color:#d32b3e!important;background:#fff0f1!important;color:#c51e33!important;box-shadow:3px 3px 0 #ef9aa5!important}
.detail-favorite-form { flex:0 0 auto;margin:0; }
.detail-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.detail-topline .detail-tags{flex:1 1 auto;min-width:0;flex-wrap:wrap}
.library-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:32px 0 0; }
.library-tabs a { display:flex; align-items:center; gap:8px; padding:11px 17px; text-decoration:none; color:#76776c; border-radius:25px; border:1px solid var(--line); font-weight:700; font-size:.84rem; }
.library-tabs a.active { color:white; background:var(--ink); border-color:var(--ink); }
.library-tabs span { display:inline-grid; place-items:center; padding:1px 7px; background:#ffffff24; border-radius:12px; }
.library-tabs+.section-head { margin-top:32px; }
.site-navigation { align-items:center; gap:3px; }
.site-navigation .nav-link-custom { display:inline-flex; align-items:center; font-size:.8rem; padding:10px; white-space:nowrap; }
.site-navigation .user-management-nav { gap:7px; }
.nav-count-badge { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:#d91631; color:#fff; box-shadow:0 0 0 2px var(--paper); font-size:.62rem; font-weight:900; line-height:1; }
.mobile-menu-toggle { display:none; border:1px solid var(--line); background:var(--white); border-radius:9px; padding:9px 14px; font-size:.85rem; min-height:44px; }
.file-main,.detail-meta { min-width:0; }
.file-main>strong { overflow-wrap:anywhere; }
.file-actions { flex-wrap:wrap; }
.record-detail { overflow-wrap:anywhere; }
@media(max-width:1199px) {
  .header-inner { flex-wrap:wrap; }
  .mobile-menu-toggle { display:block; }
  .site-navigation { flex-basis:100%; gap:6px; }
  .site-navigation.show { display:flex; flex-wrap:wrap; }
  .site-navigation .telegram-nav { display:block; }
  .site-navigation .session-user { margin-left:auto; display:grid; }
  .book-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:900px) {
  .book-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 15px; }
  .member-edit-form { grid-template-columns:1fr; }
  .admin-security { grid-template-columns:1fr; }
  .admin-password-form { grid-template-columns:1fr 1fr; }
  .workspace-heading { align-items:flex-start; flex-direction:column; gap:10px; }
  .activity-filters label { flex-basis:calc(50% - 12px); }
  .records-wrap { border:0; background:transparent; overflow:visible; }
  .records-table,.records-table tbody { display:block; }
  .records-table thead { display:none; }
  .records-table tr { display:block; border:1px solid var(--line); background:var(--white); border-radius:14px; margin-bottom:14px; padding:8px 16px; }
  .records-table td { display:block; position:relative; min-height:44px; padding:12px 0 12px 102px; }
  .records-table td:first-child { border:0; }
  .records-table td:before { content:attr(data-label); position:absolute; top:12px; left:0; width:90px; font-size:.73rem; color:#828575; }
  .records-table td small { margin:0; }
  .records-table .records-empty { display:block; }
  .records-table .records-empty:before { display:none; }
  .records-table details small { margin-top:8px; }
  .auth-shell { gap:32px; }
}
@media(max-width:768px) {
  .hero { display:flex; flex-direction:column; align-items:stretch; gap:24px; min-height:0; padding-top:36px; padding-bottom:36px; background:var(--lime); clip-path:none; }
  .hero h1 { font-size:clamp(2.8rem,12vw,4.6rem); }
  .hero p { margin-top:20px; }
  .stats-panel { width:100%; margin:0; padding:20px; background:var(--ink); border-radius:14px; }
  .stats-panel div { padding-left:15px; }
  .stats-panel strong { font-size:2rem; }
  .detail-page,.upload-page,.telegram-page,.series-create-page { padding-top:30px; padding-bottom:55px; }
  .detail-hero { gap:24px; }
  .detail-meta h1 { font-size:clamp(1.6rem,6vw,2.4rem); overflow-wrap:anywhere; }
  .detail-actions { flex-wrap:wrap; }
  .file-row { grid-template-columns:28px 50px minmax(0,1fr); gap:10px; }
  .file-actions { grid-column:2/-1; justify-content:flex-start; }
  .file-main strong { white-space:normal; overflow-wrap:anywhere; }
  .bulk-toolbar { align-items:flex-start; flex-wrap:wrap; gap:12px; }
  .series-bulk-toolbar { top:8px; flex-wrap:wrap; gap:10px; }
  .series-bulk-summary { order:3; width:100%; margin:0; padding:9px 0 0; border-left:0; border-top:1px solid #ffffff2b; }
  .series-bulk-actions { margin-left:auto; }
  .bulk-selection { flex-wrap:wrap; justify-content:flex-start; }
  .bulk-selection strong { width:auto; text-align:left; }
  .files-head { align-items:flex-start; flex-direction:column; gap:10px; }
  .file-actions button,.file-actions a { min-height:42px; }
  .modal-dialog { max-width:calc(100% - 20px); margin:10px auto; }
  .modal-content { max-height:calc(100dvh - 20px); overflow-y:auto; }
  .modal-header { padding-right:55px!important; }
  .modal-header h2 { font-size:1.25rem; }
  .upload-modal .modal-body,.manage-file-dialog .modal-body { padding:18px; }
  .modal-footer { flex-wrap:wrap; }
  .upload-modal-heading p,.selected-file-name { overflow-wrap:anywhere; }
}
@media(max-width:600px) {
  .site-navigation.show { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-navigation .nav-link-custom { padding:12px 10px; border:1px solid var(--line); border-radius:8px; }
  .site-navigation .session-user { display:none; }
  .site-navigation .logout-form button { width:100%; min-height:44px; }
  .site-navigation .btn-upload { min-height:44px; }
  .book-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 12px; }
  .book-info h3 { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .card-bottom { flex-direction:column; gap:5px; }
  .favorite-button { min-width:40px; min-height:40px; }
  .library-wrap { padding-top:24px; }
  .filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filters select { width:100%; min-width:0; padding-right:20px; }
  .search-panel { box-shadow:4px 4px 0 var(--ink); }
  .search-line button { padding:0 15px; }
  .section-head { align-items:flex-start; gap:12px; }
  .section-head h2 { font-size:1.35rem; }
  .section-head-actions a { text-align:center; }
  .workspace-page { padding-top:28px; padding-bottom:45px; }
  .member-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .member-stats>div { padding:16px 12px; border-radius:12px; }
  .member-stats small { font-size:.65rem; }
  .member-stats strong { font-size:1.9rem; }
  .record-filters { padding:16px; gap:12px; }
  .record-filters label { flex-basis:100%; }
  .record-filters button { width:100%; }
  .member-editor { padding:18px; }
  .admin-security { padding:18px; gap:18px; }
  .admin-password-form { grid-template-columns:1fr; }
  .admin-password-form .solid-button { width:100%; }
  .form-control,.form-select,.auth-form input { font-size:16px!important; }
  .member-actions a,.member-actions button { min-height:42px; }
  .pagination-wrap { flex-wrap:wrap; margin-top:30px; }
  .detail-topline { align-items:stretch; flex-direction:column; gap:12px; }
  .detail-favorite-form { display:block; align-self:flex-start; margin:0; }
  .volume-health { gap:8px; padding:12px; }
  .api-detail-panel { padding:18px; box-shadow:4px 4px 0 var(--ink); }
  .api-detail-grid { grid-template-columns:1fr; }
  .metadata-modal-title { min-width:0; }
  .metadata-modal-title p { overflow-wrap:anywhere; }
  .footer { gap:12px; flex-direction:column; }
  .toast-stack { left:12px; right:12px; top:80px; max-width:none; }
  .auth-shell { padding:24px 16px; min-width:0; }
  .auth-intro,.auth-panel { min-width:0; max-width:100%; }
  .auth-intro h1 { font-size:2.2rem; }
  .auth-steps span { flex-wrap:wrap; }
}
@media(max-width:340px) { .book-grid { grid-template-columns:1fr; } }
.book-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:7px; min-width:0; }
.book-title-row .book-title-toggle { flex:1 1 auto; min-width:0; }
.book-latest-volume { flex:0 0 auto; display:inline-flex; align-items:center; min-height:23px; margin-top:8px; padding:3px 7px; border:1px solid #c7d88b; border-radius:999px; background:#edf6ca; color:#46551b; font-size:.6rem; font-weight:900; line-height:1; white-space:nowrap; }
.metadata-provider-select { display:block; margin:0 0 22px; }
.metadata-provider-select>span { display:block; margin-bottom:7px; color:#5f625d; font-size:.67rem; font-weight:800; }
.metadata-provider-select .form-select { min-height:48px; border:1px solid #b9c7ce; border-radius:9px; background-color:#fff; color:#202521; font-size:.78rem; font-weight:750; box-shadow:3px 3px 0 #d7e8ef; }
.delete-telegram-check.is-disabled { opacity:.55; cursor:not-allowed; }
/* Mobile library: compact webzine rows. Desktop keeps its cover grid. */
@media(max-width:768px) {
  .library-wrap .book-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  .library-wrap .book-entry { padding:18px 0; border-bottom:1px solid var(--line); }
  .library-wrap .book-card { display:grid; grid-template-columns:88px minmax(0,1fr); grid-template-areas:"cover info" "categories categories"; column-gap:16px; row-gap:12px; align-items:start; width:100%; max-width:100%; min-width:0; text-align:left; }
  .library-wrap .book-cover-link { grid-area:cover; min-width:0; }
  .library-wrap .book-card .cover { width:88px; height:132px; aspect-ratio:2/3; margin:0; padding-bottom:0; border-radius:8px; }
  .library-wrap .book-card .cover img { width:100%; height:100%; object-fit:cover; }
  .library-wrap .book-info { grid-area:info; width:100%; max-width:100%; min-width:0; padding:0; overflow:hidden; }
  .library-wrap .book-info h3 { font-size:1rem; line-height:1.45; white-space:normal; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; margin:8px 0 5px; }
  .library-wrap .book-info h3.book-title-toggle.is-expanded { display:block; -webkit-line-clamp:unset; }
  .detail-page .file-row { align-items:start; padding:16px 4px; }
  .detail-page .file-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-column:2/-1; gap:8px; width:100%; margin-top:8px; }
  .detail-page .file-actions .download-btn,.detail-page .file-actions .retry-upload-btn { grid-column:1/-1; }
  .detail-page .file-actions .send-btn { grid-column:1; }
  .detail-page .file-actions .manage-file-btn { grid-column:2; }
  .detail-page .file-actions>:only-child { grid-column:1/-1; }
  .detail-page .file-actions button,.detail-page .file-actions a { display:inline-flex; align-items:center; justify-content:center; width:100%; min-width:0; min-height:44px; height:auto; margin:0; padding:8px 9px; border-radius:8px; text-align:center; line-height:1.25; white-space:normal; }
  .library-wrap .book-title-row { gap:6px; }
  .library-wrap .book-title-row .book-title-toggle { margin-top:8px; }
  .library-wrap .book-latest-volume { margin-top:9px; }
  .library-wrap .book-info>p { font-size:.75rem; margin-bottom:8px; }
  .library-wrap .status-row { min-height:32px; padding-right:0; flex-wrap:wrap; gap:4px; }
  .library-wrap .status-row span { font-size:.6rem; }
  .library-wrap .volume-summary { font-size:.72rem; flex-wrap:wrap; gap:4px 8px; }
  .library-wrap .volume-summary small { display:inline; }
  .library-wrap .card-bottom { display:flex; flex-direction:row; flex-wrap:wrap; gap:5px 10px; margin-top:9px; font-size:.65rem; }
  .library-wrap .book-info-tools { min-height:34px; margin-bottom:6px; padding-bottom:6px; }
  .library-wrap .series-card-select { min-height:32px; padding:3px 8px; box-shadow:none; }
  .library-wrap .book-info-tools .favorite-button { width:32px; height:32px; min-width:32px; min-height:32px; }
  .library-wrap .book-entry.is-series-selected .book-card { outline-offset:2px; }
  .library-wrap .favorite-button { min-width:36px; min-height:36px; width:36px; height:36px; font-size:1.25rem; box-shadow:none; }
  .library-wrap .badges-top { top:5px; left:5px; right:5px; gap:3px; }
  .library-wrap .badges-top span { width:27px; height:27px; font-size:.5rem; padding:2px; border-width:1px; }
  .library-wrap .type-tag { bottom:6px; left:auto; right:4px; font-size:.5rem; padding:3px 4px; }
  .library-wrap .missing-alert,.library-wrap .cover.is-adult:before { display:none; }
  .library-wrap .book-card:hover .cover { transform:none; box-shadow:none; }
  .library-wrap .upload-card { padding:18px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
  .library-wrap .upload-cover { min-height:0; gap:6px; padding:8px; }
  .library-wrap .upload-cover>span { position:static; width:30px; height:30px; font-size:1.2rem; }
  .library-wrap .upload-cover strong { position:static; font-size:.75rem; }
  .library-wrap .upload-cover small { display:none; }
  .library-wrap .upload-card .book-info { align-self:center; }
}
@media(max-width:360px) {
  .library-wrap .book-card { grid-template-columns:72px minmax(0,1fr); gap:12px; }
  .library-wrap .book-card .cover { width:72px; height:108px; }
}
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; transition:none!important; } }

/* Series detail recommendations */
.recommendation-shelf{margin-top:68px;padding-top:25px;border-top:2px solid var(--ink)}
.recommendation-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:21px}
.recommendation-heading span{display:block;max-width:70vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--orange);font-size:.62rem;font-weight:900;letter-spacing:1.7px}
.recommendation-heading h2{margin:5px 0 0;font-size:1.55rem;font-weight:850;letter-spacing:-.045em}
.recommendation-heading>a{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--muted);font-size:.76rem;font-weight:800;text-decoration:none}
.recommendation-heading>a b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--ink);color:var(--lime);transition:transform .18s}
.recommendation-heading>a:hover{color:var(--ink)}.recommendation-heading>a:hover b{transform:translateX(3px)}
.recommendation-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px 15px}
.recommendation-card{min-width:0}.recommendation-cover{position:relative;display:block;aspect-ratio:2/3;overflow:hidden;border:1px solid #d0ccc1;border-radius:7px;background:var(--ink);color:inherit;text-decoration:none;box-shadow:0 7px 18px rgba(32,33,30,.1)}
.recommendation-cover img{width:100%;height:100%;object-fit:cover;transition:transform .28s}.recommendation-cover:hover img{transform:scale(1.035)}
.recommendation-group{position:absolute;left:7px;top:7px;padding:4px 6px;border-radius:4px;background:rgba(32,33,30,.88);color:var(--lime);font-size:.52rem;font-weight:850;letter-spacing:.4px}
.recommendation-adult{position:absolute;right:7px;top:7px;display:grid;place-items:center;width:34px;height:34px;border:2px solid #fff;border-radius:50%;background:#df1732;color:#fff;font-size:.61rem;box-shadow:0 3px 9px rgba(160,0,20,.35)}
.recommendation-complete{position:absolute;right:0;bottom:0;padding:5px 8px;background:var(--orange);color:#fff;font-size:.55rem;font-style:normal;font-weight:850}
.recommendation-title{display:block;margin-top:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:.88rem;font-weight:800;letter-spacing:-.025em;text-decoration:none}.recommendation-title:hover{text-decoration:underline;text-underline-offset:3px}
.recommendation-card>p{margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.69rem}
.recommendation-rating{display:flex;align-items:center;gap:3px;margin-top:6px;color:#e32937;font-size:.7rem;font-weight:800}.recommendation-rating.empty{color:#999}.recommendation-rating span{font-size:.76rem}
@media(max-width:1100px){.recommendation-track{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.recommendation-shelf{margin-top:50px}.recommendation-heading{align-items:center}.recommendation-heading h2{font-size:1.28rem}.recommendation-heading span{max-width:58vw}.recommendation-track{display:flex;gap:13px;margin-right:-16px;padding:1px 16px 16px 0;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-inline:contain}.recommendation-card{flex:0 0 142px;scroll-snap-align:start}.recommendation-title{font-size:.82rem}.recommendation-cover{box-shadow:0 5px 13px rgba(32,33,30,.1)}}
.content-group-filter span small{margin-left:3px;color:#8a8d83;font-size:.62rem;font-weight:750}.content-group-filter label.active span small,.content-group-filter label:has(input:checked) span small{color:#fff;opacity:.72}
.recommendation-heading div>h2:first-child{margin-top:0}
.card-categories-mobile{display:none;color:inherit;text-decoration:none}
@media(max-width:768px){.library-wrap,.library-wrap .library-results,.library-wrap .book-grid,.library-wrap .book-entry{max-width:100%;min-width:0}.library-wrap .search-panel,.library-wrap .filters{max-width:100%;min-width:0}.library-wrap .category-filter-tags{flex:1 1 100%;width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain}.library-wrap .card-categories-compact{display:none}.library-wrap .card-categories-mobile{grid-area:categories;display:flex;width:100%;max-width:100%;min-width:0;margin:0;padding-top:10px;border-top:1px dashed var(--line);overflow:hidden}.library-wrap .card-categories-mobile span{max-width:100%;white-space:normal;overflow-wrap:anywhere}}
html,body{width:100%;max-width:100%;overflow-x:hidden}
@supports(overflow:clip){html,body{overflow-x:clip}}
main,.site-header,.footer{max-width:100%}
@media(max-width:700px){.recommendation-track{width:100%;max-width:100%;margin-right:0}.content-group-filter{max-width:100%;margin-left:0;margin-right:0}}
@media(max-width:380px){
  .library-wrap .book-card{grid-template-columns:68px minmax(0,1fr)!important;grid-template-areas:"cover info" "categories categories"!important;column-gap:11px!important;row-gap:10px!important;max-width:100%!important}
  .library-wrap .book-card .cover{width:68px;height:102px}
  .library-wrap .card-categories-mobile{grid-area:categories!important;grid-column:1/-1!important;justify-self:stretch!important;width:100%!important;max-width:100%!important}
  .library-wrap .filters{display:grid;grid-template-columns:minmax(0,1fr);width:100%;overflow:hidden}
  .library-wrap .filters>*{min-width:0;max-width:100%}
  .library-wrap .filters select,.library-wrap .check-filter{width:100%}
  .library-wrap .category-filter-tags{grid-column:1/-1;width:100%!important;max-width:100%!important}
}
.content-group-filter{position:relative;display:block!important;width:100%;max-width:100%;min-width:0;margin-left:0!important;margin-right:0!important;overflow:hidden!important}
.content-group-legend{display:block;width:100%;margin:0 0 8px;color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:1px;white-space:nowrap}
.content-group-options{display:flex;flex-wrap:nowrap;align-items:center;gap:7px;width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:3px 5px 8px 0}
.content-group-options label{flex:0 0 auto;min-width:max-content!important;margin:0}
.content-group-options label>span{white-space:nowrap}
.library-wrap{max-width:100%;min-width:0;overflow-x:hidden;overflow-x:clip}
.library-wrap .search-panel{width:100%;max-width:100%;min-width:0;overflow:hidden}
.recommendation-author-tabs{display:flex;gap:7px;margin:-8px 0 20px;padding:3px 2px 7px;overflow-x:auto;scrollbar-width:thin}.recommendation-author-tabs button{flex:0 0 auto;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fffdf7;color:var(--muted);font-size:.7rem;font-weight:800;transition:.18s ease}.recommendation-author-tabs button:hover{border-color:var(--ink);color:var(--ink)}.recommendation-author-tabs button.active{border-color:var(--ink);background:var(--ink);color:var(--lime);box-shadow:3px 3px 0 var(--orange)}.author-recommendation-shelf{position:relative}.author-recommendation-shelf.is-loading{min-height:260px;pointer-events:none}.author-recommendation-shelf.is-loading:after{content:'작가의 작품을 불러오는 중';position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:rgba(243,240,231,.88);color:var(--ink);font-size:.78rem;font-weight:850}.author-recommendation-shelf.is-loading:before{content:'';position:absolute;left:calc(50% - 100px);top:50%;z-index:4;width:18px;height:18px;margin-top:-9px;border:2px solid rgba(32,33,30,.2);border-top-color:var(--orange);border-radius:50%;animation:spin .7s linear infinite}.recommendation-empty{display:flex;min-height:150px;align-items:center;justify-content:center;gap:10px;border:1px dashed var(--line);background:rgba(255,253,247,.55);color:var(--muted)}.recommendation-empty span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lime);color:var(--ink)}.recommendation-empty p{margin:0;font-size:.78rem}.recommendation-empty b{color:var(--ink)}@media(max-width:700px){.recommendation-author-tabs{margin-top:-3px;margin-bottom:16px}.recommendation-author-tabs button{padding:7px 11px}.recommendation-empty{min-height:120px;padding:18px;text-align:center}}
.recommendation-empty-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.active-author-filters{display:flex;flex:1 0 100%;align-items:center;gap:6px;min-width:0;padding:2px 0 5px;overflow-x:auto}.active-author-filters>span{flex:0 0 auto;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.08em}.active-author-filters>b{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:var(--ink);color:var(--lime);font-size:.66rem}
