body{margin:0;font-family:Microsoft YaHei,PingFang SC,sans-serif;background:#f5f7fb;color:#1f2937}a{color:inherit;text-decoration:none}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:220px;background:#111827;color:#f9fafb;padding:24px 16px;box-sizing:border-box}.admin-logo{font-size:20px;font-weight:700;margin-bottom:24px}.admin-nav{display:flex;flex-direction:column;gap:12px}.admin-nav a{padding:10px 12px;border-radius:8px;color:#d1d5db}.admin-nav a.router-link-active{background:#2563eb;color:#fff}.admin-main{flex:1;padding:24px;box-sizing:border-box}.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-userbox{display:flex;align-items:center;gap:12px}.admin-usertext{text-align:right}.admin-username{font-weight:700}.admin-role{margin-top:4px;color:#6b7280;font-size:12px}.admin-topbar-title{font-size:20px;font-weight:700}.admin-topbar-subtitle{margin-top:4px;color:#6b7280;font-size:13px}.page-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 10px 30px #0f172a0f}.page-title{margin:0 0 16px;font-size:24px;font-weight:700}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.summary-item{background:#f8fafc;border-radius:12px;padding:16px}.summary-label{color:#6b7280;font-size:14px}.summary-value{margin-top:12px;font-size:28px;font-weight:700}.page-table-toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-toolbar-spacer{flex:1}.page-pagination{display:flex;justify-content:flex-end;margin-top:16px}.page-empty{padding:32px 0;text-align:center;color:#6b7280}.page-empty-action{margin-top:12px}.schedule-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px}.schedule-workbench-grid{display:grid;grid-template-columns:420px minmax(0,1fr);gap:22px}.schedule-panel{padding:18px;border:1px solid #e5e7eb;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc)}.schedule-panel-title{font-size:18px;font-weight:700;color:#111827}.schedule-panel-desc{margin-top:6px;color:#6b7280;font-size:13px;line-height:1.6}.schedule-tool-form{margin-top:18px}.schedule-result-card{margin-top:16px}.page-header-actions{display:flex;gap:12px;align-items:center}.score-detail-panel{padding:4px 2px}.score-detail-total{font-size:24px;font-weight:700;color:#111827}.score-detail-line{margin-top:10px;color:#374151;font-size:14px}.session-detail-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px}.session-detail-card{padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc)}.session-detail-log-card{margin-top:18px}.session-detail-title{font-size:16px;font-weight:700;color:#111827}.session-detail-line{margin-top:10px;color:#374151;font-size:13px;line-height:1.6}.schedule-assistant{padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:linear-gradient(180deg,#f8fafc,#fff)}.schedule-assistant-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.schedule-assistant-title{font-size:16px;font-weight:700}.schedule-assistant-desc{margin-top:4px;color:#6b7280;font-size:12px;line-height:1.5}.schedule-warning,.schedule-ok{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:13px}.schedule-warning{color:#991b1b;background:#fef2f2}.schedule-ok{color:#166534;background:#f0fdf4}.schedule-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.calendar-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.calendar-summary-item{padding:16px;border-radius:14px;background:linear-gradient(180deg,#f8fafc,#eef6ff);border:1px solid #e5edf8}.calendar-summary-label{color:#6b7280;font-size:13px}.calendar-summary-value{margin-top:10px;font-size:28px;font-weight:700;color:#111827}.session-calendar{border:1px solid #e5e7eb;border-radius:16px;overflow:hidden}.session-calendar .el-calendar__header{padding:0}.session-calendar .el-calendar-table .el-calendar-day{height:168px;padding:0}.session-calendar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%;padding:18px 20px;background:linear-gradient(180deg,#f8fafc,#fff)}.session-calendar-title{font-size:18px;font-weight:700}.session-calendar-desc{margin-top:6px;color:#6b7280;font-size:12px}.session-calendar-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.session-calendar-cell{display:flex;flex-direction:column;height:100%;padding:10px;box-sizing:border-box;gap:8px}.session-calendar-date{font-size:16px;font-weight:700;color:#111827}.session-calendar-countline{display:flex;gap:8px;flex-wrap:wrap;color:#4b5563;font-size:12px}.session-calendar-badges{display:flex;gap:6px;flex-wrap:wrap}.calendar-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600}.calendar-badge-formed{color:#1d4ed8;background:#dbeafe}.calendar-badge-finished{color:#166534;background:#dcfce7}.calendar-badge-settled{color:#1d4ed8;background:#e0e7ff}.calendar-badge-cancelled{color:#991b1b;background:#fee2e2}.session-calendar-list{min-height:42px}.session-calendar-list-item{display:flex;justify-content:space-between;gap:8px;color:#374151;font-size:12px;line-height:1.5}.session-calendar-more,.session-calendar-empty{color:#9ca3af;font-size:12px}.session-calendar-actions{display:flex;gap:12px;margin-top:auto}.calendar-link-button{padding:0;border:0;background:transparent;color:#2563eb;font-size:12px;cursor:pointer}.calendar-link-button:hover{color:#1d4ed8}.batch-preview-summary{margin-top:12px;color:#4b5563;font-size:13px;line-height:1.8}.batch-preview-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.batch-preview-tag{margin-right:0}.batch-preview-more,.batch-result-line{width:100%;color:#6b7280;font-size:13px}.batch-result-panel{margin-top:18px}.recommend-block{margin-top:16px}.recommend-title{margin-bottom:8px;font-size:13px;font-weight:700;color:#374151}.recommend-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid #eef2f7;font-size:13px}.recommend-empty{color:#9ca3af;font-size:13px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) 420px;background:radial-gradient(circle at 18% 18%,rgba(37,99,235,.26),transparent 30%),linear-gradient(135deg,#0f172a,#172554 52%,#eff6ff 52%,#f8fafc)}.login-hero{padding:14vh 8vw;color:#fff;box-sizing:border-box}.login-eyebrow{margin:0 0 18px;letter-spacing:.18em;text-transform:uppercase;color:#bfdbfe}.login-hero h1{max-width:760px;margin:0;font-size:54px;line-height:1.08}.login-desc{max-width:520px;margin-top:22px;color:#dbeafe;font-size:18px}.login-card{align-self:center;margin-right:7vw;padding:34px;background:#ffffffeb;border:1px solid rgba(255,255,255,.72);border-radius:24px;box-shadow:0 30px 80px #0f172a2e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-card h2{margin:0 0 24px;font-size:28px}.login-button{width:100%}.login-tip{margin:16px 0 0;color:#6b7280;font-size:13px}@media (max-width: 900px){.login-page{grid-template-columns:1fr;padding:24px}.login-hero{padding:56px 0 24px}.login-hero h1{font-size:36px}.login-card{margin:0}.admin-usertext{display:none}}@media (max-width: 1200px){.schedule-workbench-grid,.schedule-form-grid,.session-detail-grid{grid-template-columns:1fr}.calendar-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.calendar-summary-grid{grid-template-columns:1fr}.session-calendar-header{flex-direction:column;align-items:stretch}.session-calendar-tools{justify-content:flex-start}.session-calendar .el-calendar-table .el-calendar-day{height:auto;min-height:150px}}
