html,body,#root{min-height:100%;margin:0}:root{--brand-bg: #f6f7f3;--brand-orange: #c97a54;--brand-teal: #2f7d75;--brand-title: #28332f;--brand-text: #5f6863;--brand-muted: #9aa39d;--brand-peach: #fff0e7;--brand-mint: #ebf5f2;--brand-lavender: #f3eef8;--brand-sky: #edf5f8;--brand-border: #e1e6e0}body{background:radial-gradient(circle at 5% 0%,rgba(255,240,231,.7),transparent 24rem),radial-gradient(circle at 96% 2%,rgba(237,245,248,.76),transparent 26rem),var(--brand-bg);color:var(--brand-title);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);border-radius:18px;border:1px solid var(--brand-border);box-shadow:0 18px 45px #5a58531a}.app-shell{min-height:100vh}.app-shell>.ant-layout-sider{margin:12px 0 12px 12px;overflow:hidden;border:1px solid var(--brand-border);border-radius:20px;background:#fffffff5!important;box-shadow:0 14px 34px #5a585314}.app-shell>.ant-layout-sider .ant-menu{background:transparent}.brand{height:82px;display:flex;align-items:center;padding:0 28px;color:#2f7d75;font-size:23px;font-weight:800;letter-spacing:.02em}.app-shell .ant-menu{padding:14px 12px}.app-shell .ant-menu-item{height:58px;margin-block:5px;padding-inline:17px!important;font-size:16px;font-weight:700;line-height:58px}.app-shell .ant-menu-item .anticon{font-size:21px}.app-header{background:#fffffff0;border-bottom:1px solid var(--brand-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-content{padding:24px}.app-content .ant-card,.app-content .ant-table-wrapper{overflow:hidden;border-color:var(--brand-border);border-radius:18px}.app-content .ant-table-thead>tr>th{background:var(--brand-mint);color:var(--brand-title)}.dashboard-page{display:flex;flex-direction:column;gap:24px}.dashboard-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.dashboard-title-row h3,.dashboard-section h4{margin:0}.dashboard-section{display:flex;flex-direction:column;gap:12px}.dashboard-metric{position:relative;overflow:hidden;min-height:154px;border:1px solid #e1e6e0;border-radius:18px;background:#fffffff7;box-shadow:0 10px 28px #324b430f}.dashboard-metric:after{position:absolute;top:-30px;right:-25px;width:86px;height:86px;border:15px solid rgba(255,255,255,.64);border-radius:50%;content:"";pointer-events:none}.dashboard-metric .ant-card-body{display:flex;min-height:152px;flex-direction:column;justify-content:space-between;padding:21px}.dashboard-metric-top{display:flex;align-items:center;gap:10px}.dashboard-metric-icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:12px;font-size:18px}.dashboard-metric-title{color:#5f6863;font-size:15px;font-weight:600}.dashboard-metric .ant-statistic-content{line-height:1.1}.dashboard-metric-blue{border-top:4px solid #5d8fa8;background:linear-gradient(145deg,#fff 34%,#edf5f8)}.dashboard-metric-blue .dashboard-metric-icon{background:#edf5f8;color:#477b94}.dashboard-metric-green{border-top:4px solid #37877f;background:linear-gradient(145deg,#fff 34%,#ebf5f2)}.dashboard-metric-green .dashboard-metric-icon{background:#ebf5f2;color:#37877f}.dashboard-metric-purple{border-top:4px solid #a16e9f;background:linear-gradient(145deg,#fff 34%,#f3eef8)}.dashboard-metric-purple .dashboard-metric-icon{background:#f3eef8;color:#a16e9f}.dashboard-metric-orange{border-top:4px solid #c97a54;background:linear-gradient(145deg,#fff 34%,#fff0e7)}.dashboard-metric-orange .dashboard-metric-icon{background:#fff0e7;color:#a9603d}.dashboard-metric-red{border-top:3px solid #dc2626}.dashboard-metric-red .dashboard-metric-icon{background:#fee2e2;color:#b91c1c}.dashboard-metric-gray{border-top:4px solid #9aa39d;background:linear-gradient(145deg,#fff 34%,#edf5f8)}.dashboard-metric-gray .dashboard-metric-icon{background:#eef1ed;color:#5f6863}.page-stack{width:100%}.content-page-heading h3{margin-bottom:4px}.content-section{display:flex;flex-direction:column;gap:16px}.content-section-hidden{display:none}.compact-word-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.compact-word-form .ant-form-item{margin-bottom:14px}.compact-word-form .ant-form-item:has(textarea){grid-column:span 2}.filter-select{min-width:140px}.drawer-stack{width:100%}.student-credit-summary{display:flex;align-items:center;gap:6px;white-space:nowrap}.student-credit-pill{display:inline-flex;height:28px;align-items:baseline;gap:3px;border-radius:999px;padding:3px 9px;line-height:1}.student-credit-pill-primary{background:#e7f3ef;color:#2f746e}.student-credit-label,.student-credit-unit{font-size:12px;font-weight:500}.student-credit-value{font-size:18px;font-weight:700}.student-credit-meta{color:#5f6863;font-size:12px}.number-input,.full-width-control{width:100%}.course-service-modal .ant-modal-content{overflow:hidden;border:1px solid #e4e8df;background:#fafbf4;box-shadow:0 24px 70px #3c463e33}.course-service-modal .ant-modal-header{margin:-20px -24px 18px;padding:22px 24px 17px;border-bottom:1px solid #e7e9e1;background:linear-gradient(135deg,#fff,#f3f7ee)}.course-service-modal .ant-modal-title{color:#28332f;font-size:20px}.course-service-modal .ant-tabs-nav{margin-bottom:20px}.course-service-modal .ant-tabs-tab{min-width:120px;justify-content:center;border-radius:12px;font-size:15px;font-weight:650}.refund-balance-card{position:relative;overflow:hidden;margin-bottom:22px;border:1px solid #cfe3d7;border-radius:22px;padding:24px 26px;background:radial-gradient(circle at 92% 12%,rgba(232,105,26,.13),transparent 34%),linear-gradient(145deg,#f4faf0,#eaf5ee)}.refund-balance-card:after{position:absolute;right:-22px;bottom:-34px;width:130px;height:130px;border:24px solid rgba(40,127,124,.08);border-radius:50%;content:""}.refund-balance-label{color:#527068;font-size:14px;font-weight:650}.refund-balance-number{position:relative;z-index:1;display:flex;align-items:baseline;gap:8px;margin:5px 0 7px;color:#287f7c}.refund-balance-number strong{font-size:54px;font-weight:800;letter-spacing:-2px;line-height:1.1}.refund-balance-number span{font-size:20px;font-weight:700}.refund-balance-card p{position:relative;z-index:1;margin:0;color:#6e756f;font-size:13px}.refund-modal .ant-form-item-label>label{color:#34453f;font-size:14px;font-weight:650}.refund-modal .ant-input-number,.refund-modal .ant-input{border-color:#c7d9d3;background:#fff}.refund-modal .ant-input-number-input{height:50px;color:#28332f;font-size:22px;font-weight:750}.refund-after-card{display:flex;align-items:center;justify-content:space-between;margin:-6px 0 20px;border-radius:14px;padding:13px 16px;background:#fff0e7;color:#7a665b;font-size:14px}.refund-after-card strong{color:#2f7d75;font-size:20px}.refund-modal .ant-modal-footer .ant-btn-primary{min-width:132px}.ant-btn-primary{border-color:#2f7d75;background:linear-gradient(135deg,#3d8e85,#2f746e);box-shadow:0 7px 18px #2f7d7533;font-weight:700}.ant-btn-primary:not(:disabled):hover{border-color:#276b65!important;background:linear-gradient(135deg,#347f77,#276b65)!important}.ant-btn-default:not(.ant-btn-dangerous){border-color:#b8d8d2;background:#ebf5f2;color:#2f746e;font-weight:650}.ant-btn-default:not(.ant-btn-dangerous):not(:disabled):hover{border-color:#37877f!important;background:#37877f!important;color:#fff!important}@media (max-width: 1180px){.app-shell>.ant-layout-sider{margin:8px 0 8px 8px}.app-content{padding:20px}.app-shell .ant-menu-item{height:56px;line-height:56px;font-size:16px;font-weight:700}.app-content .ant-table-wrapper{overflow-x:auto}.app-content .ant-table{min-width:900px}.app-content .ant-form-item{margin-bottom:16px}.app-content .ant-btn{min-height:44px;padding-inline:18px}}@media (max-width: 991px){.brand{justify-content:center;padding:0;font-size:0}.brand:before{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(145deg,#3d8e85,#a16e9f);color:#fff;content:"L";font-size:19px;font-weight:800;box-shadow:0 7px 16px #2f7d7533}.app-shell .ant-menu-item .anticon{font-size:18px}}@media (max-width: 720px){.compact-word-form{grid-template-columns:1fr}.compact-word-form .ant-form-item:has(textarea){grid-column:span 1}.app-shell .ant-layout-sider{flex:0 0 84px!important;min-width:84px!important;width:84px!important}.brand{justify-content:center;padding:0;font-size:0}.app-shell .ant-menu-title-content{display:none}.app-shell .ant-menu-item{height:54px;padding-inline:31px!important}.app-header{padding:0 12px}.app-header .ant-typography{display:none}.app-content{padding:18px 14px}.dashboard-title-row{align-items:flex-start}}
