.admin-shell{max-width:1120px;margin:0 auto;padding:26px 24px 80px}.admin-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line)}.admin-head__title{font-family:var(--font-read);font-size:24px;letter-spacing:.04em}.admin-head__desc{color:var(--ink-2);font-size:13.5px;margin-top:6px}.admin-head__who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:20px;margin-top:22px}.panel__title{font-size:15px;font-weight:600;margin-bottom:4px}.panel__hint{font-size:12.5px;color:var(--ink-3);margin-bottom:16px;line-height:1.7}.dropzone{display:block;border:1.5px dashed var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);padding:28px 20px;text-align:center;cursor:pointer;transition:border-color .16s ease,background .16s ease}.dropzone:hover,.dropzone.is-over{border-color:var(--accent);background:var(--accent-soft)}.dropzone__title{font-size:14.5px;font-weight:600}.dropzone__sub{font-size:12.5px;color:var(--ink-3);margin-top:6px}.file-pick{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);font-size:13.5px}.file-pick__meta{color:var(--ink-2)}.file-pick__name{font-weight:600;word-break:break-all}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:18px}.form-grid__full{grid-column:1 / -1}.form-actions{display:flex;gap:10px;align-items:center;margin-top:18px;flex-wrap:wrap}.form-actions__status{font-size:13px;color:var(--ink-2)}.book-table{width:100%;border-collapse:collapse;font-size:13.5px}.book-table th,.book-table td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}.book-table th{font-size:12px;color:var(--ink-3);font-weight:600;letter-spacing:.06em}.book-table tbody tr:hover{background:var(--surface-2)}.book-table__title{font-weight:600;font-family:var(--font-read)}.book-table__path{font-size:11px;color:var(--ink-3);word-break:break-all}.book-table__ops{white-space:nowrap;text-align:right}.book-table__ops .btn{margin-left:6px}.badge{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:999px;border:1px solid transparent}.badge--on{background:#e8f2ea;color:#2f6550;border-color:#cfe3d6}.badge--off{background:var(--bg-sunk);color:var(--ink-3);border-color:var(--line-2)}@media (max-width: 820px){.book-table thead{display:none}.book-table,.book-table tbody,.book-table tr,.book-table td{display:block;width:100%}.book-table tr{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:12px;background:var(--surface-2)}.book-table td{border:0;padding:6px 0}.book-table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--ink-3);letter-spacing:.06em}.book-table__ops{text-align:left}.book-table__ops .btn{margin-left:0;margin-right:8px}}.modal{position:fixed;inset:0;z-index:120;background:#28221a61;display:flex;align-items:center;justify-content:center;padding:20px}.modal__card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-2);width:min(560px,100%);max-height:88vh;overflow:auto;padding:24px}.modal__title{font-size:17px;margin-bottom:16px;font-family:var(--font-read)}.modal__actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
