/* 图书馆书籍在线预约系统 用户端样式 */
body {
    background: #f4f6f9;
    color: #333;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
}

a {
    color: #1f7a8c;
}

a:hover {
    color: #16616f;
    text-decoration: none;
}

.lib-navbar {
    background: #1f4e5f;
    border: 0;
    border-radius: 0;
    margin-bottom: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}

.lib-navbar .navbar-brand {
    color: #fff;
    font-weight: 600;
    letter-spacing: .5px;
}

.lib-navbar .navbar-brand:hover,
.lib-navbar .navbar-brand:focus {
    color: #fff;
}

.lib-navbar .navbar-nav > li > a {
    color: #d6e7ec;
}

.lib-navbar .navbar-nav > li > a:hover,
.lib-navbar .navbar-nav > li.active > a {
    color: #fff;
    background: rgba(255, 255, 255, .08);
}

.lib-navbar .navbar-nav > .open > a,
.lib-navbar .navbar-nav > .open > a:hover,
.lib-navbar .navbar-nav > .open > a:focus {
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.lib-navbar .badge {
    background: #ff7f50;
}

.lib-main {
    min-height: calc(100vh - 130px);
    padding: 26px 0 40px;
}

.lib-footer {
    background: #24323a;
    color: #9fb2bb;
    padding: 18px 0;
    font-size: 13px;
    text-align: center;
}

.lib-page-title {
    font-size: 22px;
    margin: 0 0 18px;
    font-weight: 600;
    color: #223;
}

.lib-search {
    background: #fff;
    border-radius: 10px;
    padding: 16px 18px;
    box-shadow: 0 2px 10px rgba(31, 78, 95, .06);
    margin-bottom: 20px;
}

.lib-search .form-control {
    border-radius: 6px;
    height: 40px;
}

.lib-btn-primary {
    background: #1f7a8c;
    border-color: #1f7a8c;
    color: #fff;
    border-radius: 6px;
}

.lib-btn-primary:hover,
.lib-btn-primary:focus {
    background: #16616f;
    border-color: #16616f;
    color: #fff;
}

.lib-panel {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(31, 78, 95, .06);
    padding: 18px;
}

.category-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-list li a {
    display: block;
    padding: 10px 14px;
    border-radius: 6px;
    color: #445;
    margin-bottom: 4px;
    border-left: 3px solid transparent;
}

.category-list li a:hover {
    background: #eef6f8;
    color: #1f7a8c;
}

.category-list li.active a {
    background: #e6f3f6;
    color: #1f7a8c;
    font-weight: 600;
    border-left-color: #1f7a8c;
}

.book-card {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(31, 78, 95, .07);
    margin-bottom: 22px;
    transition: transform .18s ease, box-shadow .18s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.book-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px rgba(31, 78, 95, .16);
}

.book-cover {
    height: 170px;
    background: linear-gradient(135deg, #cfdfe5 0%, #e8eff2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.book-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.book-cover .cover-letter {
    font-size: 42px;
    font-weight: 700;
    color: #5f8794;
    opacity: .75;
}

.book-card-body {
    padding: 14px 16px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.book-title {
    font-size: 15px;
    font-weight: 600;
    color: #223;
    margin: 0 0 6px;
    line-height: 1.45;
    height: 44px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.book-meta {
    color: #8a99a3;
    font-size: 12px;
    margin-bottom: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.book-price {
    color: #e1563f;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
}

.book-price small {
    font-size: 12px;
    color: #98a6ae;
    font-weight: 400;
    margin-left: 6px;
}

.book-actions {
    margin-top: auto;
    display: flex;
    gap: 8px;
}

.book-actions .btn {
    border-radius: 6px;
    font-size: 13px;
}

.tag-pill {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 20px;
    background: #eef6f8;
    color: #1f7a8c;
    font-size: 12px;
}

.detail-cover {
    width: 100%;
    max-height: 360px;
    object-fit: cover;
    border-radius: 10px;
    background: #e8eff2;
}

.detail-cover-placeholder {
    width: 100%;
    height: 320px;
    border-radius: 10px;
    background: linear-gradient(135deg, #cfdfe5 0%, #e8eff2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 64px;
    color: #5f8794;
    opacity: .8;
}

.detail-title {
    font-size: 26px;
    font-weight: 700;
    margin: 0 0 12px;
    color: #1e2a31;
}

.detail-price {
    color: #e1563f;
    font-size: 30px;
    font-weight: 700;
    margin: 16px 0;
}

.detail-price small {
    font-size: 14px;
    color: #98a6ae;
    font-weight: 400;
    margin-left: 8px;
}

table.lib-table {
    background: #fff;
}

table.lib-table > thead > tr > th {
    background: #f3f7f8;
    border-bottom: 2px solid #e3ebee;
    color: #556;
    font-weight: 600;
}

table.lib-table > tbody > tr > td {
    vertical-align: middle !important;
}

.empty-box {
    background: #fff;
    border-radius: 10px;
    padding: 60px 20px;
    text-align: center;
    color: #93a3ac;
    box-shadow: 0 2px 10px rgba(31, 78, 95, .06);
}

.empty-box .fa {
    font-size: 46px;
    margin-bottom: 14px;
    color: #c3d2d8;
}

.status-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    color: #fff;
}

.status-0 {
    background: #f0ad4e;
}

.status-1 {
    background: #1f7a8c;
}

.status-2 {
    background: #3fa46a;
}

.status-3 {
    background: #d9534f;
}

.status-4 {
    background: #98a6ae;
}

.order-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(31, 78, 95, .07);
    padding: 16px 18px;
    margin-bottom: 16px;
}

.order-card .order-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px dashed #e6edef;
    padding-bottom: 12px;
    margin-bottom: 12px;
}

.order-no {
    font-weight: 600;
    color: #223;
}

.order-time {
    color: #93a3ac;
    font-size: 12px;
    margin-left: 12px;
}

.order-summary {
    color: #556;
    font-size: 13px;
}

.order-actions .btn {
    border-radius: 6px;
    margin-left: 6px;
}

.quota-bar {
    background: #f0f6f8;
    border-radius: 8px;
    padding: 12px 16px;
    color: #46606b;
    margin-bottom: 18px;
}

.quota-bar strong {
    color: #1f7a8c;
}

.timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 2px solid #dbe7ea;
    margin-left: 8px;
}

.timeline li {
    position: relative;
    padding: 0 0 18px 22px;
}

.timeline li:before {
    content: '';
    position: absolute;
    left: -7px;
    top: 3px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #1f7a8c;
    border: 2px solid #fff;
}

.timeline .time {
    color: #93a3ac;
    font-size: 12px;
    display: block;
    margin-bottom: 2px;
}

.sign-photo {
    display: inline-block;
    position: relative;
    margin: 0 8px 8px 0;
}

.sign-photo img {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e0e8eb;
}

.sign-photo .remove-photo {
    position: absolute;
    top: -6px;
    right: -6px;
    background: #d9534f;
    color: #fff;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    line-height: 18px;
    text-align: center;
    font-size: 12px;
    cursor: pointer;
}

.lib-toast {
    position: fixed;
    top: 78px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    padding: 10px 22px;
    border-radius: 6px;
    color: #fff;
    font-size: 14px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
    display: none;
}

.lib-toast.success {
    background: #3fa46a;
}

.lib-toast.error {
    background: #d9534f;
}

.login-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #1f4e5f 0%, #2b7a8a 55%, #6fb3bd 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.login-card {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .22);
    padding: 36px 34px 30px;
}

.login-card .login-logo {
    text-align: center;
    margin-bottom: 24px;
}

.login-card .login-logo .fa {
    font-size: 42px;
    color: #1f7a8c;
}

.login-card .login-logo h2 {
    font-size: 21px;
    font-weight: 700;
    color: #223;
    margin: 12px 0 4px;
}

.login-card .login-logo p {
    color: #93a3ac;
    font-size: 13px;
    margin: 0;
}

.login-card .form-control {
    height: 44px;
    border-radius: 6px;
}

.login-card .btn-login {
    height: 44px;
    border-radius: 6px;
    background: #1f7a8c;
    border-color: #1f7a8c;
    color: #fff;
    font-size: 15px;
    margin-top: 6px;
}

.login-card .btn-login:hover {
    background: #16616f;
    border-color: #16616f;
}

.login-tip {
    margin-top: 16px;
    text-align: center;
    color: #93a3ac;
    font-size: 12px;
}

.login-error {
    background: #fdf0ef;
    color: #c0392b;
    border-radius: 6px;
    padding: 9px 12px;
    font-size: 13px;
    margin-bottom: 14px;
    display: none;
}

@media (max-width: 767px) {
    .lib-navbar .navbar-nav {
        margin: 0;
    }

    .book-cover {
        height: 140px;
    }

    .detail-title {
        font-size: 21px;
        margin-top: 16px;
    }

    .detail-price {
        font-size: 24px;
    }
}
