@charset "utf-8";
* { box-sizing: border-box; }
body {
    margin: 0; font-family: "Microsoft YaHei", Tahoma, Arial, sans-serif;
    font-size: 13px; color: #444; background: #f0f2f5;
}
a { color: #ff6a1f; text-decoration: none; }
a:hover { color: #ff8400; }
ul, li { margin: 0; padding: 0; list-style: none; }

.admin-header {
    height: 56px; background: #3b4658; color: #fff; display: flex;
    align-items: center; padding: 0 20px; position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}
.admin-header .logo { font-size: 18px; font-weight: bold; }
.admin-header .logo span { color: #ff8400; }
.admin-header .header-right { margin-left: auto; font-size: 13px; }
.admin-header .header-right a { color: #cfd6e0; margin-left: 16px; }
.admin-header .header-right a:hover { color: #ff8400; }

.admin-side {
    position: fixed; top: 56px; bottom: 0; left: 0; width: 200px; background: #2f3948;
    overflow-y: auto; z-index: 90;
}
.admin-side .side-title { padding: 14px 20px 8px; color: #7c8aa0; font-size: 12px; }
.admin-side a {
    display: block; padding: 12px 20px; color: #c3ccd8; font-size: 14px;
    border-left: 3px solid transparent;
}
.admin-side a:hover { background: #374355; color: #fff; }
.admin-side a.active { background: #374355; color: #fff; border-left-color: #ff8400; }

.admin-body { margin: 56px 0 0 200px; padding: 20px; }

.page-head { display: flex; align-items: center; margin-bottom: 16px; }
.page-head h1 { font-size: 20px; color: #2d3441; margin: 0; font-weight: 600; }
.page-head .actions { margin-left: auto; }

.btn {
    display: inline-block; padding: 8px 16px; border-radius: 4px; border: 1px solid #dcdfe6;
    background: #fff; color: #444; cursor: pointer; font-size: 13px; line-height: 1.2;
}
.btn:hover { border-color: #ff8400; color: #ff6a1f; }
.btn-primary { background: #ff8400; border-color: #ff8400; color: #fff; }
.btn-primary:hover { background: #ff6a1f; border-color: #ff6a1f; color: #fff; }
.btn-danger { background: #fff; border-color: #f8c5c5; color: #d9534f; }
.btn-danger:hover { background: #d9534f; border-color: #d9534f; color: #fff; }
.btn-sm { padding: 4px 10px; font-size: 12px; }

.card { background: #fff; border-radius: 6px; padding: 18px 20px; box-shadow: 0 1px 4px rgba(0, 0, 0, .06); margin-bottom: 18px; }
.card h2 { font-size: 15px; margin: 0 0 14px; color: #2d3441; border-left: 3px solid #ff8400; padding-left: 8px; }

.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 18px; }
.stat-item { background: #fff; border-radius: 6px; padding: 18px 20px; box-shadow: 0 1px 4px rgba(0, 0, 0, .06); }
.stat-item .label { color: #8b95a5; font-size: 13px; }
.stat-item .value { font-size: 28px; font-weight: bold; color: #ff6a1f; margin-top: 6px; }
.stat-item.blue .value { color: #00adef; }
.stat-item.green .value { color: #27ae60; }
.stat-item.dark .value { color: #3b4658; }

.table { width: 100%; border-collapse: collapse; background: #fff; }
.table th, .table td { padding: 10px 12px; border-bottom: 1px solid #f0f2f5; text-align: left; font-size: 13px; vertical-align: middle; }
.table th { background: #fafbfc; color: #5b6474; font-weight: 600; white-space: nowrap; }
.table tr:hover td { background: #fafcff; }
.table td.ops { white-space: nowrap; }
.table .tag { display: inline-block; padding: 1px 8px; border-radius: 3px; font-size: 12px; background: #fff3ea; color: #ff6a1f; border: 1px solid #f9d2b3; }
.table .tag.gray { background: #f3f4f6; color: #8b95a5; border-color: #e5e7eb; }

.form-row { margin-bottom: 16px; }
.form-row label { display: block; margin-bottom: 6px; color: #5b6474; font-size: 13px; }
.form-row .hint { color: #98a2b3; font-size: 12px; margin-top: 4px; }
.form-row input[type=text], .form-row input[type=password], .form-row input[type=number],
.form-row select, .form-row textarea {
    width: 100%; padding: 9px 12px; border: 1px solid #dcdfe6; border-radius: 4px;
    font-size: 13px; color: #333; background: #fff;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { border-color: #ff8400; }
.form-row textarea { min-height: 110px; line-height: 22px; resize: vertical; font-family: Consolas, Monaco, monospace; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.form-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 20px; }
.form-actions { padding-top: 10px; }
.inline { display: inline-flex; align-items: center; gap: 6px; }
.inline input[type=checkbox] { width: 16px; height: 16px; }

.filter-bar { display: flex; gap: 10px; align-items: center; margin-bottom: 15px; flex-wrap: wrap; }
.filter-bar input[type=text], .filter-bar select { padding: 8px 12px; border: 1px solid #dcdfe6; border-radius: 4px; font-size: 13px; }
.filter-bar input[type=text] { width: 220px; }

.empty-tip { text-align: center; color: #98a2b3; padding: 50px 0; }

.alert { padding: 10px 15px; border-radius: 4px; margin-bottom: 15px; font-size: 13px; }
.alert-error { background: #fef0f0; color: #d9534f; border: 1px solid #fde2e2; }
.alert-ok { background: #f0f9eb; color: #529b2e; border: 1px solid #e1f3d8; }

.pagination { display: flex; gap: 6px; margin-top: 16px; }
.pagination a, .pagination span {
    padding: 6px 12px; border: 1px solid #dcdfe6; border-radius: 4px; background: #fff; font-size: 13px; color: #5b6474;
}
.pagination .active { background: #ff8400; border-color: #ff8400; color: #fff; }
.pagination .disabled { color: #c0c4cc; }
.pagination a:hover { border-color: #ff8400; color: #ff6a1f; }

/* 登录页 */
.login-wrap {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #3b4658, #ff8400);
}
.login-card { width: 380px; background: #fff; border-radius: 8px; padding: 35px 35px 30px; box-shadow: 0 12px 40px rgba(0, 0, 0, .25); }
.login-card h1 { font-size: 22px; text-align: center; margin: 0 0 6px; color: #2d3441; }
.login-card .sub { text-align: center; color: #98a2b3; font-size: 13px; margin-bottom: 25px; }
.login-card .form-row input { height: 44px; }
.login-card .btn { width: 100%; height: 44px; font-size: 15px; }
.login-card .tip { text-align: center; color: #98a2b3; font-size: 12px; margin-top: 18px; }

.api-endpoint { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px dashed #eef0f3; }
.api-endpoint:last-child { border-bottom: 0; }
.api-endpoint .name { width: 100px; color: #5b6474; font-weight: 600; flex: none; }
.api-endpoint code { flex: 1; background: #f7f8fa; padding: 6px 10px; border-radius: 4px; color: #d63384; word-break: break-all; font-size: 12px; }
.api-endpoint .desc { width: 260px; color: #98a2b3; font-size: 12px; flex: none; }
.copy-btn {
    padding: 5px 12px; background: #fff3ea; border: 1px solid #f9d2b3; color: #ff6a1f;
    border-radius: 4px; cursor: pointer; font-size: 12px;
}
.copy-btn:hover { background: #ff6a1f; color: #fff; }

.bar-list li { display: flex; align-items: center; margin-bottom: 10px; }
.bar-list .name { width: 80px; color: #5b6474; }
.bar-list .bar { flex: 1; height: 14px; background: #f0f2f5; border-radius: 7px; overflow: hidden; margin: 0 12px; }
.bar-list .bar span { display: block; height: 100%; background: linear-gradient(90deg, #ff8400, #ff6a1f); }
.bar-list .num { width: 60px; text-align: right; color: #98a2b3; }

/* 剧集行编辑 */
.episode-row { display: grid; grid-template-columns: 200px 1fr 80px; gap: 8px; margin-bottom: 8px; }
.episode-row input[type=text] { width: 100%; padding: 8px 10px; border: 1px solid #dcdfe6; border-radius: 4px; font-size: 13px; color: #333; background: #fff; }
.episode-row input[type=text]:focus { border-color: #ff8400; }
.episode-row .btn { white-space: nowrap; }

