/* =============================================================================
   光谷育桐云 · 管理后台全局主题（清爽教育风）
   -----------------------------------------------------------------------------
   作用范围：整个后台（框架层 + iframe 内容层 + 登录页）
   加载位置：application/admin/view/common/meta.html，位于 backend.min.css 之后
   生效机制：
     · 框架层（顶栏/侧边栏）用 .skin-edu 作用域 —— body 已换成该 class，
       AdminLTE 的 .skin-black-blue 规则因选择器不匹配而整体失效
     · 内容层（iframe 内页面 body 无 skin class）用全局选择器
   设计基线：主色 #EC651E 育桐橙（取自系统内 w_course_information 既有品牌色）
             栅格 8px · 圆角 12/8/6 · 字体 PingFang SC 优先
   ========================================================================== */

/* ============================ 1. Design Token ============================ */
:root,
body.skin-edu,
body.inside-header {
    --edu-primary:        #EC651E;
    --edu-primary-hover:  #D4560F;
    --edu-primary-active: #BE4B0D;
    --edu-primary-weak:   #FFF3EC;
    --edu-accent:         #28A7E0;
    --edu-accent-weak:    #EAF6FC;

    --edu-success:        #2FA36B;
    --edu-success-weak:   #EAF7F0;
    --edu-warning:        #F5A623;
    --edu-warning-weak:   #FFF6E6;
    --edu-danger:         #E5533D;
    --edu-danger-weak:    #FDECEA;
    --edu-info:           #28A7E0;
    --edu-info-weak:      #EAF6FC;

    --edu-bg:             #F6F7F9;
    --edu-surface:        #FFFFFF;
    --edu-surface-alt:    #FAFBFC;
    --edu-surface-sunken: #F0F2F5;
    --edu-border:         #E8EAED;
    --edu-border-strong:  #D6D9DE;
    --edu-text:           #1F2329;
    --edu-text-sub:       #646A73;
    --edu-text-weak:      #8F959E;

    --edu-radius-lg:      12px;
    --edu-radius:         8px;
    --edu-radius-sm:      6px;

    --edu-shadow-sm:      0 1px 2px rgba(31, 35, 41, .06);
    --edu-shadow:         0 2px 8px rgba(31, 35, 41, .08);
    --edu-shadow-lg:      0 8px 24px rgba(31, 35, 41, .10);

    --edu-space-1: 4px;
    --edu-space-2: 8px;
    --edu-space-3: 12px;
    --edu-space-4: 16px;
    --edu-space-5: 24px;
    --edu-space-6: 32px;

    --edu-font: -apple-system, BlinkMacSystemFont, "PingFang SC",
                "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif;
    --edu-font-mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
}

/* 全站字体与正文色（内容层为 iframe 独立文档，需全局命中） */
body {
    font-family: var(--edu-font);
    color: var(--edu-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ======================== 2. 框架层：顶栏 / Logo ========================= */
.skin-edu .main-header {
    background: #FFFFFF;
    box-shadow: 0 1px 0 var(--edu-border);
}

.skin-edu .main-header .logo {
    background: var(--edu-primary);
    color: #FFFFFF;
    font-weight: 600;
    letter-spacing: .3px;
    text-align: left;
    padding-left: var(--edu-space-4);
    transition: background-color .15s ease;
}

.skin-edu .main-header .logo:hover {
    background: var(--edu-primary-hover);
    color: #FFFFFF;
}

.skin-edu .main-header .navbar {
    background-color: #FFFFFF;
    border-bottom: 1px solid var(--edu-border);
}

.skin-edu .main-header .navbar .nav > li > a {
    color: var(--edu-text-sub);
    font-weight: 500;
    transition: all .15s ease;
}

.skin-edu .main-header .navbar .nav > li > a:hover,
.skin-edu .main-header .navbar .nav > .active > a {
    color: var(--edu-primary);
    background: var(--edu-primary-weak);
}

.skin-edu .main-header .navbar .sidebar-toggle {
    color: var(--edu-text-sub);
}

.skin-edu .main-header .navbar .sidebar-toggle:hover {
    color: var(--edu-primary);
    background: var(--edu-primary-weak);
}

.skin-edu .main-header li.user-header {
    background: var(--edu-primary);
}

/* 顶部多标签页 */
.skin-edu .main-header .navbar .nav-addtabs > li > a {
    border-radius: var(--edu-radius-sm) var(--edu-radius-sm) 0 0;
    border: 1px solid transparent;
    border-bottom: none;
    color: var(--edu-text-sub);
    font-size: 13px;
}

.skin-edu .main-header .navbar .nav-addtabs > li.active > a {
    background: var(--edu-primary-weak);
    border-color: var(--edu-border);
    color: var(--edu-primary);
    font-weight: 600;
}

.skin-edu .main-header .navbar .nav-addtabs > li > .close-tab {
    color: var(--edu-text-weak);
}

.skin-edu .main-header .navbar .nav-addtabs > li.active > .close-tab {
    color: var(--edu-primary);
}

/* ======================== 3. 框架层：左侧菜单 =========================== */
.skin-edu .main-sidebar,
.skin-edu .left-side {
    background-color: #FFFFFF;
    border-right: 1px solid var(--edu-border);
    box-shadow: none;
}

.skin-edu .sidebar {
    background: #FFFFFF;
}

/* 管理员信息卡 */
.skin-edu .sidebar .user-panel {
    padding: var(--edu-space-5) var(--edu-space-4);
    border-bottom: 1px solid var(--edu-border);
    overflow: hidden;
}

.skin-edu .sidebar .user-panel > .info,
.skin-edu .sidebar .user-panel > .info > p {
    color: var(--edu-text);
    font-weight: 600;
}

.skin-edu .sidebar .user-panel > .info > a {
    color: var(--edu-text-sub);
}

.skin-edu .sidebar .user-panel .text-success {
    color: var(--edu-success) !important;
}

/* 菜单搜索 */
.skin-edu .sidebar-form {
    border: none;
    border-radius: var(--edu-radius);
    margin: var(--edu-space-3) var(--edu-space-3) var(--edu-space-2);
    overflow: visible;
}

.skin-edu .sidebar-form input.form-control {
    border: 1px solid var(--edu-border);
    border-radius: var(--edu-radius) 0 0 var(--edu-radius);
    background: var(--edu-surface-alt);
    color: var(--edu-text);
    box-shadow: none;
}

.skin-edu .sidebar-form input.form-control:focus {
    border-color: var(--edu-primary);
    background: #FFFFFF;
}

.skin-edu .sidebar-form .btn {
    border: 1px solid var(--edu-border);
    border-left: none;
    border-radius: 0 var(--edu-radius) var(--edu-radius) 0;
    background: var(--edu-surface-alt);
    color: var(--edu-text-sub);
}

/* 一级菜单 */
.skin-edu .sidebar-menu > li {
    margin: 2px var(--edu-space-2);
}

.skin-edu .sidebar-menu > li > a {
    color: var(--edu-text-sub);
    font-weight: 500;
    border-radius: var(--edu-radius);
    border-left: 3px solid transparent;
    padding: 11px var(--edu-space-3);
    transition: all .15s ease;
}

.skin-edu .sidebar-menu > li > a:hover {
    background: var(--edu-surface-sunken);
    color: var(--edu-text);
    border-left-color: var(--edu-border-strong);
}

.skin-edu .sidebar-menu > li.active > a {
    background: var(--edu-primary-weak);
    color: var(--edu-primary);
    font-weight: 600;
    border-left-color: var(--edu-primary);
}

.skin-edu .sidebar-menu > li.active > a > .fa,
.skin-edu .sidebar-menu > li.active > a > .glyphicon,
.skin-edu .sidebar-menu > li.active > a > .iconfont {
    color: var(--edu-primary);
}

.skin-edu .sidebar-menu > li.header {
    color: var(--edu-text-weak);
    background: transparent;
    font-size: 12px;
    letter-spacing: .5px;
    padding: var(--edu-space-4) var(--edu-space-3) var(--edu-space-2);
    text-transform: none;
}

/* 二级菜单 */
.skin-edu .sidebar-menu .treeview-menu {
    background: transparent;
    padding-left: 0;
    margin: 0 var(--edu-space-1) var(--edu-space-2);
}

.skin-edu .sidebar-menu .treeview-menu > li > a {
    color: var(--edu-text-sub);
    font-size: 13px;
    padding: 8px var(--edu-space-3) 8px 34px;
    border-radius: var(--edu-radius-sm);
    transition: all .15s ease;
}

.skin-edu .sidebar-menu .treeview-menu > li > a:hover {
    background: var(--edu-surface-sunken);
    color: var(--edu-text);
}

.skin-edu .sidebar-menu .treeview-menu > li.active > a {
    background: var(--edu-primary-weak);
    color: var(--edu-primary);
    font-weight: 600;
}

/* 徽标 */
.skin-edu .sidebar-menu > li .badge {
    background: var(--edu-danger);
    border-radius: 10px;
    font-weight: 500;
}

/* 折叠态（sidebar-mini）浮层 */
.skin-edu.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span {
    background: #FFFFFF;
    color: var(--edu-text);
    border-radius: var(--edu-radius);
    box-shadow: var(--edu-shadow);
}

/* ======================== 4. 框架层：内容容器 =========================== */
.skin-edu .content-wrapper,
.skin-edu .main-footer {
    background-color: var(--edu-bg);
}

.skin-edu .content-header {
    background: transparent;
}

.skin-edu .content-header > h1 {
    color: var(--edu-text);
    font-size: 20px;
    font-weight: 600;
}

.skin-edu .content-header > h1 > small {
    color: var(--edu-text-weak);
    font-size: 13px;
}

/* ==================== 5. 内容层：页面骨架（iframe）====================== */
body.inside-header,
body.inside-aside {
    background: var(--edu-bg);
}

/* 面包屑 RIBBON */
#ribbon {
    border-bottom: 1px solid var(--edu-border);
    padding: var(--edu-space-3) 0;
    margin-bottom: var(--edu-space-4);
}

.breadcrumb {
    background: transparent;
    border-radius: 0;
    padding: 0;
    margin-bottom: 0;
    font-size: 13px;
}

.breadcrumb > li,
.breadcrumb > li > a {
    color: var(--edu-text-sub);
}

.breadcrumb > li + li:before {
    color: var(--edu-text-weak);
}

.breadcrumb > .active {
    color: var(--edu-primary);
    font-weight: 500;
}

/* ============================ 6. 卡片 / 面板 =========================== */
.panel-default {
    border: none;
    background: transparent;
    box-shadow: none;
}

.panel-intro .panel-body {
    background: var(--edu-surface);
    border: 1px solid var(--edu-border);
    border-radius: var(--edu-radius-lg);
    box-shadow: var(--edu-shadow-sm);
    padding: var(--edu-space-5);
}

.panel-heading {
    background: transparent;
    border-bottom: 1px solid var(--edu-border);
    padding: 0 0 var(--edu-space-4) 0;
    margin-bottom: var(--edu-space-4);
}

.panel-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--edu-text);
    letter-spacing: .2px;
}

.panel-title > small {
    color: var(--edu-text-weak);
    font-size: 13px;
    margin-left: var(--edu-space-2);
}

/* 工具栏 */
.toolbar {
    margin-bottom: var(--edu-space-4);
}

/* ============================== 7. 按钮 ================================= */
.btn {
    border-radius: var(--edu-radius);
    font-weight: 500;
    transition: all .15s ease;
    box-shadow: var(--edu-shadow-sm);
}

.btn:focus,
.btn:active:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--edu-primary-weak);
}

.btn-default,
.btn-default:hover {
    border: 1px solid var(--edu-border-strong);
    background: var(--edu-surface);
    color: var(--edu-text-sub);
}

.btn-default:hover {
    color: var(--edu-text);
    border-color: var(--edu-primary);
}

.btn-primary {
    background: var(--edu-primary);
    border-color: var(--edu-primary);
    color: #FFFFFF;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background: var(--edu-primary-hover);
    border-color: var(--edu-primary-hover);
    color: #FFFFFF;
}

.btn-success {
    background: var(--edu-success);
    border-color: var(--edu-success);
    color: #FFFFFF;
}

.btn-success:hover {
    background: #288C5C;
    border-color: #288C5C;
    color: #FFFFFF;
}

.btn-info {
    background: var(--edu-accent);
    border-color: var(--edu-accent);
    color: #FFFFFF;
}

.btn-info:hover {
    background: #1E93C7;
    border-color: #1E93C7;
    color: #FFFFFF;
}

.btn-warning {
    background: var(--edu-warning);
    border-color: var(--edu-warning);
    color: #FFFFFF;
}

.btn-warning:hover {
    background: #DE9416;
    border-color: #DE9416;
    color: #FFFFFF;
}

.btn-danger {
    background: var(--edu-danger);
    border-color: var(--edu-danger);
    color: #FFFFFF;
}

.btn-danger:hover {
    background: #CE4632;
    border-color: #CE4632;
    color: #FFFFFF;
}

/* 工具栏内的危险/删除按钮：弱化成描边，避免误点 */
.toolbar .btn-danger {
    background: var(--edu-surface);
    border-color: var(--edu-border-strong);
    color: var(--edu-danger);
}

.toolbar .btn-danger:hover {
    background: var(--edu-danger-weak);
    border-color: var(--edu-danger);
    color: var(--edu-danger);
}

/* ============================== 8. 表格 ================================= */
.bootstrap-table .table {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 14px;
}

.table > thead > tr > th {
    background: var(--edu-surface-alt);
    color: var(--edu-text-sub);
    font-weight: 600;
    font-size: 13px;
    border-bottom: 1px solid var(--edu-border) !important;
    padding: var(--edu-space-3);
    white-space: nowrap;
}

.table > tbody > tr > td {
    border-top: 1px solid var(--edu-border);
    padding: var(--edu-space-3);
    color: var(--edu-text);
    vertical-align: middle;
}

.table-striped > tbody > tr:nth-of-type(odd) > td {
    background: var(--edu-surface);
}

.table-hover > tbody > tr:hover > td {
    background: var(--edu-primary-weak);
}

.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td {
    border-color: var(--edu-border);
}

.fixed-table-container {
    border: none;
    border-radius: var(--edu-radius-lg);
    background: var(--edu-surface);
    box-shadow: var(--edu-shadow-sm);
}

.fixed-table-toolbar .search input {
    border-radius: var(--edu-radius);
    border-color: var(--edu-border-strong);
}

/* 表格行内操作按钮 */
.table .btn-xs {
    border-radius: var(--edu-radius-sm);
    padding: 3px 10px;
    font-size: 12px;
}

/* ============================= 9. 状态徽标 ============================== */
.label {
    border-radius: var(--edu-radius-sm);
    padding: 3px 8px;
    font-weight: 500;
    font-size: 12px;
    line-height: 1.5;
}

.label-primary { background: var(--edu-primary-weak); color: var(--edu-primary); }
.label-success { background: var(--edu-success-weak); color: var(--edu-success); }
.label-warning { background: var(--edu-warning-weak); color: var(--edu-warning); }
.label-danger  { background: var(--edu-danger-weak);  color: var(--edu-danger); }
.label-info    { background: var(--edu-accent-weak);  color: var(--edu-accent); }
.label-default { background: var(--edu-surface-sunken); color: var(--edu-text-sub); }

/* ============================== 10. 分页 =============================== */
.pagination > li > a,
.pagination > li > span {
    color: var(--edu-text-sub);
    border-color: var(--edu-border);
    border-radius: var(--edu-radius-sm);
    margin: 0 2px;
    background: var(--edu-surface);
    transition: all .15s ease;
}

.pagination > li > a:hover {
    color: var(--edu-primary);
    border-color: var(--edu-primary);
    background: var(--edu-primary-weak);
}

.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover {
    background: var(--edu-primary);
    border-color: var(--edu-primary);
    color: #FFFFFF;
    border-radius: var(--edu-radius-sm);
}

.pagination > .disabled > a,
.pagination > .disabled > span {
    color: var(--edu-text-weak);
    background: var(--edu-surface);
    border-color: var(--edu-border);
}

/* ============================ 11. 表单控件 ============================= */
.form-control {
    border-radius: var(--edu-radius);
    border-color: var(--edu-border-strong);
    box-shadow: none;
    color: var(--edu-text);
    transition: all .15s ease;
}

.form-control:focus {
    border-color: var(--edu-primary);
    box-shadow: 0 0 0 3px var(--edu-primary-weak);
}

.form-control::placeholder {
    color: var(--edu-text-weak);
}

.control-label {
    color: var(--edu-text-sub);
    font-weight: 500;
}

.input-group-addon {
    border-radius: var(--edu-radius);
    border-color: var(--edu-border-strong);
    background: var(--edu-surface-alt);
    color: var(--edu-text-sub);
}

.input-group .form-control:first-child {
    border-top-left-radius: var(--edu-radius);
    border-bottom-left-radius: var(--edu-radius);
}

.has-error .form-control {
    border-color: var(--edu-danger);
}

.has-success .form-control {
    border-color: var(--edu-success);
}

/* 下拉框（bootstrap-select） */
.bootstrap-select .btn-default {
    border-radius: var(--edu-radius);
    border-color: var(--edu-border-strong);
    background: var(--edu-surface);
}

.bootstrap-select .dropdown-menu > .selected > a {
    background: var(--edu-primary);
}

/* 开关 */
.bootstrap-switch {
    border-radius: 20px;
    border-color: var(--edu-border-strong);
}

/* ==================== 12. 弹窗 / 提示 / 标签页 ========================= */
.modal-content {
    border: none;
    border-radius: var(--edu-radius-lg);
    box-shadow: var(--edu-shadow-lg);
    overflow: hidden;
}

.modal-header {
    background: var(--edu-surface);
    border-bottom: 1px solid var(--edu-border);
    padding: var(--edu-space-4) var(--edu-space-5);
}

.modal-title {
    font-size: 17px;
    font-weight: 600;
    color: var(--edu-text);
}

.modal-body {
    padding: var(--edu-space-5);
}

.modal-footer {
    border-top: 1px solid var(--edu-border);
    padding: var(--edu-space-3) var(--edu-space-5);
}

.modal-footer .btn {
    border-radius: var(--edu-radius);
}

/* layer 弹层（FastAdmin 用 layer） */
.layui-layer {
    border-radius: var(--edu-radius-lg) !important;
    overflow: hidden;
}

.layui-layer-title {
    background: var(--edu-surface) !important;
    border-bottom: 1px solid var(--edu-border) !important;
    color: var(--edu-text) !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    height: 52px !important;
    line-height: 52px !important;
}

.layui-layer-btn a {
    border-radius: var(--edu-radius-sm) !important;
    font-weight: 500 !important;
}

.layui-layer-btn .layui-layer-btn0 {
    background: var(--edu-primary) !important;
    border-color: var(--edu-primary) !important;
    color: #FFFFFF !important;
}

/* 标签页 */
.nav-tabs > li > a {
    border-radius: var(--edu-radius-sm) var(--edu-radius-sm) 0 0;
    color: var(--edu-text-sub);
    font-weight: 500;
    border: 1px solid transparent;
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    background: var(--edu-surface);
    border-color: var(--edu-border) var(--edu-border) transparent;
    color: var(--edu-primary);
    font-weight: 600;
}

.nav-tabs > li > a:hover {
    background: var(--edu-primary-weak);
    border-color: transparent;
}

/* 提示条 */
.alert {
    border-radius: var(--edu-radius);
    border-width: 1px;
    border-style: solid;
}

.alert-success { background: var(--edu-success-weak); border-color: #BFE5D1; color: #1F7A4E; }
.alert-info    { background: var(--edu-accent-weak);  border-color: #BEE3F3; color: #17708F; }
.alert-warning { background: var(--edu-warning-weak); border-color: #F5DDAE; color: #9A6608; }
.alert-danger  { background: var(--edu-danger-weak);  border-color: #F5C3BB; color: #A83A28; }

/* toastr 提示 */
#toast-container > div {
    border-radius: var(--edu-radius);
    box-shadow: var(--edu-shadow-lg);
    opacity: .98;
}

/* ========================= 13. 登录页（教育风）========================= */
body.login-page,
body:has(.login-wrapper) {
    background-color: var(--edu-bg) !important;
    background-image: linear-gradient(160deg, #FFF3EC 0%, #F6F7F9 45%, #EAF6FC 100%) !important;
    background-size: cover !important;
    color: var(--edu-text) !important;
}

.login-screen .well {
    border-radius: var(--edu-radius-lg);
    box-shadow: var(--edu-shadow-lg);
    background: #FFFFFF;
    border: none;
    padding: 0;
    overflow: hidden;
}

.login-head {
    background: var(--edu-primary);
    border-radius: var(--edu-radius-lg) var(--edu-radius-lg) 0 0;
}

.login-head img {
    display: block;
}

.login-form {
    padding: var(--edu-space-6) var(--edu-space-5) var(--edu-space-5);
}

.profile-img-card {
    border: 4px solid #FFFFFF;
    box-shadow: var(--edu-shadow);
    background: var(--edu-primary-weak);
}

#login-form .input-group {
    margin-bottom: var(--edu-space-4);
}

#login-form .form-control {
    font-size: 14px;
    border-radius: 0 var(--edu-radius) var(--edu-radius) 0;
    border-color: var(--edu-border-strong);
    height: 44px;
}

#login-form .form-control:focus {
    border-color: var(--edu-primary);
    box-shadow: 0 0 0 3px var(--edu-primary-weak);
}

#login-form .input-group-addon {
    border-radius: var(--edu-radius) 0 0 var(--edu-radius);
    background: var(--edu-surface-alt);
    border-color: var(--edu-border-strong);
    color: var(--edu-text-weak);
}

#login-form .btn-success {
    background: var(--edu-primary) !important;
    border-color: var(--edu-primary) !important;
    border-radius: var(--edu-radius);
    font-weight: 600;
    height: 46px;
    letter-spacing: 2px;
    box-shadow: 0 4px 12px rgba(236, 101, 30, .25);
}

#login-form .btn-success:hover {
    background: var(--edu-primary-hover) !important;
    border-color: var(--edu-primary-hover) !important;
}

.login-page a,
.login-wrapper a {
    color: var(--edu-primary);
}

/* ========================== 14. 滚动条美化 ============================= */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--edu-border-strong);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--edu-text-weak);
}

/* ============================ 15. 杂项统一 ============================= */
/* 通用卡片（供各业务页复用） */
.edu-card {
    background: var(--edu-surface);
    border: 1px solid var(--edu-border);
    border-radius: var(--edu-radius-lg);
    box-shadow: var(--edu-shadow-sm);
    padding: var(--edu-space-5);
}

.edu-card + .edu-card {
    margin-top: var(--edu-space-4);
}

/* 选中文字 */
::selection {
    background: var(--edu-primary);
    color: #FFFFFF;
}

/* 加载遮罩 */
.fixed-table-loading {
    background: rgba(255, 255, 255, .8);
    border-radius: var(--edu-radius-lg);
}

/* 打印时去掉背景与阴影，避免浪费墨水 */
@media print {
    .skin-edu .main-sidebar,
    .skin-edu .main-header {
        display: none;
    }

    .edu-card,
    .fixed-table-container,
    .panel-intro .panel-body {
        box-shadow: none !important;
        border-color: #CCCCCC !important;
    }
}

/* 小屏适配：侧边栏收窄时 logo 淡出 */
@media (max-width: 767px) {
    .skin-edu .main-header .logo {
        padding-left: var(--edu-space-3);
    }

    .panel-intro .panel-body {
        padding: var(--edu-space-4);
        border-radius: var(--edu-radius);
    }
}
