.admin-body{background:#f5f7fb;font-size:13px}.admin-auth{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-story{background:#edf2fc;display:flex;flex-direction:column;justify-content:space-between;padding:65px 70px}.auth-story>div{margin:65px 0}.auth-story h1{font-size:52px;line-height:1.1;letter-spacing:-.045em;margin:15px 0 25px}.auth-story p{font-size:15px;color:var(--muted);max-width:400px}.auth-story .eyebrow{font-size:10px}.auth-story>.text-link{font-size:12px}.auth-features{display:flex;flex-direction:column;gap:15px;margin-top:32px}.auth-features span{display:flex;gap:10px;align-items:center;font-size:12px;color:#566c90}.auth-features .icon{width:17px;color:var(--blue)}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:50px}.auth-form-wrap .form-card{width:100%;max-width:400px;border:0;box-shadow:none;background:transparent;padding:0}.auth-form-wrap .eyebrow{margin-bottom:-10px;font-size:10px}.auth-form-wrap h2{font-size:30px;line-height:1.2}.auth-form-wrap .muted{font-size:13px;line-height:1.7;margin-bottom:10px}.auth-form-wrap .tile-icon{margin-bottom:13px}.auth-form-wrap .btn{margin-top:5px}.admin-shell{display:flex;min-height:100vh}.admin-sidebar{width:240px;background:white;border-right:1px solid var(--line);position:fixed;left:0;top:0;bottom:0;padding:34px 22px 25px;display:flex;flex-direction:column;z-index:60}.admin-sidebar>.brand{padding-left:6px}.sidebar-label{font-size:9px;letter-spacing:.12em;font-weight:600;color:#8995a9;margin:40px 14px 14px}.admin-sidebar nav{display:flex;flex-direction:column;gap:5px}.admin-sidebar nav button{display:flex;align-items:center;gap:12px;background:none;padding:13px 14px;border-radius:8px;font-size:12px;color:#697991;text-align:left;font-weight:500}.admin-sidebar nav button .icon{width:18px;height:18px;stroke-width:1.55}.admin-sidebar nav button:hover{color:var(--blue);background:#f7f9fe}.admin-sidebar nav button.active{background:#edf2ff;color:var(--blue);font-weight:650}.nav-count{margin-left:auto;font-size:10px}.sidebar-bottom{margin-top:auto;padding:23px 12px 0;border-top:1px solid var(--line)}.sidebar-bottom a,.sidebar-bottom button{display:flex;align-items:center;gap:10px;background:none;font-size:12px;color:#67778e;padding:12px 0;width:100%;text-align:left}.sidebar-bottom a .icon:last-child{margin-left:auto;width:15px}.sidebar-bottom .icon{width:17px}.sidebar-bottom>span{display:block;color:#97a1b1;font-size:10px;word-break:break-all;line-height:1.7;margin-top:8px}.admin-workspace{margin-left:240px;width:calc(100% - 240px);min-width:0}.admin-topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;background:white;border-bottom:1px solid var(--line);height:105px;padding:24px 40px;position:sticky;top:0;z-index:40}.admin-topbar .eyebrow{font-size:8px;color:#8797af;margin:0 0 5px}.admin-topbar h1{font-size:26px;line-height:1.3}.admin-topbar>div:last-child{display:flex;align-items:center;gap:22px}.connection-status{font-size:10px;color:#8b98ab;white-space:nowrap}.connection-status .live-dot{width:5px;height:5px;box-shadow:none;margin-right:5px}.connection-status.offline{color:#b34855}.connection-status.offline .live-dot{background:#b34855}.admin-menu-toggle{display:none}.admin-main{max-width:1500px;margin:auto;padding:36px 40px 60px}.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:30px}.dashboard-welcome .eyebrow{font-size:9px;color:#8998ad;letter-spacing:.1em;margin:0 0 10px}.dashboard-welcome h2{font-size:30px}.dashboard-welcome p{font-size:12px;color:var(--muted);margin:10px 0 0}.dashboard-welcome .btn{font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:25px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;text-align:left;box-shadow:0 3px 12px #29467504;transition:transform .15s}.metric-card:hover{transform:translateY(-2px);border-color:#cfddff}.metric-card>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.metric-card .icon{width:18px;color:#8296bb}.metric-card>strong{display:block;font-size:38px;letter-spacing:-.05em;line-height:1.1;margin:20px 0 13px;color:var(--ink);font-weight:650}.metric-card p{font-size:10px;color:#8997ac;margin:0}.setup-notice{display:flex;gap:20px;align-items:center;border:1px solid #e5e4d5;background:#fffdf5;border-radius:11px;padding:22px;margin-bottom:28px}.setup-notice>.badge{font-size:8px;letter-spacing:.06em;white-space:nowrap;background:#f3edcf}.setup-notice>div{flex:1}.setup-notice h3{font-size:14px;letter-spacing:0}.setup-notice p{font-size:11px;color:#887f63;margin:6px 0 0;line-height:1.7}.dashboard-columns{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.admin-panel{border:1px solid var(--line);border-radius:13px;background:#fff;padding:26px;min-width:0;box-shadow:0 3px 12px #29467504}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px}.panel-heading h2{font-size:19px;letter-spacing:-.02em}.panel-heading p{font-size:11px;color:var(--muted);margin:6px 0}.panel-heading .text-link{font-size:10px;white-space:nowrap;background:none;padding:0}.panel-heading .text-link .icon{width:14px}.admin-empty{padding:55px 20px;text-align:center;border:1px dashed #dce3ee;background:#fafbfe;border-radius:9px}.admin-empty h2{font-size:17px;color:#5d6d85}.admin-empty p{font-size:12px;color:#8c9bb1;margin:12px 0 0}.content-summary{display:flex;flex-direction:column}.content-summary button{display:flex;gap:15px;align-items:center;background:none;width:100%;text-align:left;border-bottom:1px solid #edf0f5;padding:17px 0;font-size:12px;color:#4d5e76}.content-summary button>span:first-child{flex:1}.content-summary strong{font-weight:650;font-size:16px;color:var(--ink)}.content-summary button>span:nth-child(3){font-size:10px;width:55px;text-align:center;color:#94a0b3}.content-summary .icon{width:15px;color:#93a4bd}.content-summary button:last-child{border:0}.editorial-note{display:flex;gap:7px;padding:17px 0 0;border-top:1px solid var(--line);font-size:10px;color:#8a98ad;margin-top:4px}.editorial-note .icon{width:15px;height:15px;color:#5d957d;margin-top:3px}.recent-list{display:flex;flex-direction:column}.recent-list button{display:flex;gap:11px;align-items:center;width:100%;text-align:left;background:none;padding:17px 0;border-bottom:1px solid var(--line)}.recent-list button:last-child{border:0}.recent-list .avatar{width:31px;height:31px;font-size:11px}.recent-list button>div{flex:1;min-width:0}.recent-list strong{display:block;font-size:12px;font-weight:650}.recent-list div>span{font-size:10px;color:var(--muted)}.recent-list .badge{font-size:9px}.admin-section-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.admin-section-intro h2{font-size:26px}.admin-section-intro p{font-size:12px;color:var(--muted);margin:10px 0 0}.admin-toolbar-actions{display:flex;gap:9px;white-space:nowrap}.table-toolbar{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:#fff;padding:20px 23px}.table-toolbar label:first-child{width:330px;max-width:50%}.table-toolbar label:nth-child(2){width:180px}.table-toolbar input,.table-toolbar select{font-size:11px;min-height:40px;padding:10px 13px}.table-total{font-size:10px;color:#8d9aae;margin-left:auto;white-space:nowrap}.admin-table-container{border:1px solid var(--line);border-radius:0 0 12px 12px;background:#fff;overflow-x:auto;min-width:0}.admin-table{width:100%;border-collapse:collapse;text-align:left;font-size:11px;line-height:1.5;min-width:680px}.admin-table th{background:#f9fafd;color:#8a98ae;text-transform:uppercase;letter-spacing:.04em;font-size:8px;font-weight:600;padding:14px 23px;border-bottom:1px solid var(--line)}.admin-table td{padding:21px 23px;color:#65758b;border-bottom:1px solid #edf1f6;vertical-align:middle}.admin-table td:first-child{max-width:330px}.admin-table strong{display:block;font-size:12px;color:#3c4e68;font-weight:600;line-height:1.6}.row-subtitle{display:block;font-size:10px;color:#9aa6b8;margin-top:5px;line-height:1.6;overflow-wrap:anywhere}.admin-table .badge{font-size:9px;text-transform:capitalize;white-space:nowrap}.badge-red{background:#fcebf0;color:#a33957}.row-actions{display:flex;gap:7px}.row-actions .icon-button{width:29px;height:29px;border-color:#e7edf5}.row-actions .icon{width:13px;height:13px}.danger{color:#b25a6a}.danger:hover{color:#ab364d;background:#fff0f3}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 23px;font-size:10px;color:#8a98ae;min-width:590px}.table-pagination>div{display:flex;gap:13px;align-items:center}.table-pagination .btn{font-size:10px;padding:8px 13px}.record-dialog{border:1px solid #dbe3ef;border-radius:16px;width:min(840px,calc(100% - 36px));padding:0;max-height:90vh;box-shadow:0 20px 80px #16365b26;overflow-y:auto}.record-dialog::backdrop{background:rgba(13,31,57,.45);backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 30px;border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:4}.dialog-header .eyebrow{font-size:8px;margin-bottom:6px}.dialog-header h2{font-size:23px}.dialog-header .icon-button{width:31px;height:31px}.dialog-header .icon-button .icon{width:17px;height:17px}#record-form{padding:25px 30px 0}.editor-group{border:1px solid var(--line);border-radius:10px;margin-bottom:17px;background:#fff}.editor-group>summary{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;font-size:13px;font-weight:650;color:#51617b;background:#f9fafd;border-radius:10px}.editor-group>summary>span{font-weight:400;color:#8b9bb3;font-size:20px;line-height:1}.editor-group[open]>summary{border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}.editor-group[open]>summary>span{transform:rotate(45deg)}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:22px}.editor-grid .editor-grid{padding:0}.editor-grid label{font-size:11px;color:#586981}.editor-grid input,.editor-grid select,.editor-grid textarea{font-size:12px;padding:11px 12px}.editor-grid .checkbox-label{font-size:11px;font-weight:400;letter-spacing:0}.editor-checks{display:flex;flex-direction:column;gap:10px}.editor-footer{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:19px 0 23px;background:white;position:sticky;bottom:0;border-top:1px solid var(--line);z-index:3;box-shadow:0 -7px 14px #fff}.editor-footer .form-status{flex:1;font-size:11px;margin:0;line-height:1.5}.editor-footer .btn{font-size:12px;padding:11px 18px}.repeater-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0 15px}.repeater-heading h3{font-size:13px;letter-spacing:0}.repeater-heading .btn{font-size:10px;padding:8px 10px}.repeater-heading .icon{width:13px;height:13px}.repeater-row{border:1px solid #e3e9f2;border-radius:8px;background:#f9fbff;padding:18px;margin-bottom:15px;display:flex;flex-direction:column;gap:15px}.repeater-row>.btn{align-self:flex-end;font-size:10px;padding:7px 10px}.relation-picker{padding:14px 18px;border:1px solid #e1e7f0;border-radius:8px;margin:0}.relation-picker legend{padding:0 7px;font-size:11px;color:#6980a2}.relation-picker>div{display:flex;flex-wrap:wrap;gap:13px 23px}.relation-picker .checkbox-label{font-size:11px;color:#687c9b}.relation-picker .checkbox-label input{padding:0}.course-detail-editor{padding:21px;border:1px solid #dce6fb;background:#fafcff;border-radius:9px}.course-detail-editor h3{font-size:16px;color:var(--blue);margin-bottom:20px}.upload-label{padding:15px;border:1px dashed #cddaf2;border-radius:8px;background:#fafcff}.upload-label input{font-size:11px;border:0;padding:8px 0;background:transparent}.upload-status{color:var(--green);font-size:11px;font-weight:400}.settings-form{padding:26px;max-width:1000px}.settings-form .editor-group{margin-bottom:22px}.settings-submit{display:flex;align-items:center;gap:20px;justify-content:space-between;margin:10px 0 0}.settings-submit .form-status{margin:0}.settings-submit .btn{font-size:12px}.password-panel{margin-top:30px;max-width:1000px}.password-panel h2{font-size:19px}.password-panel>p{font-size:12px;margin:13px 0 23px}.password-form{display:grid;grid-template-columns:1fr 1fr auto;gap:17px;align-items:end}.password-form label{font-size:11px}.password-form input{font-size:12px}.password-form .btn{font-size:11px;padding:13px}.inspection-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px;padding:4px 5px 25px}.detail-value>span{font-size:9px;color:#94a2b6;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.detail-value p{font-size:12px;color:#4e617e;margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.detail-value:has(p:not(:empty)){min-width:0}.admin-body .toast{bottom:24px}.admin-body .checkbox-label input{padding:0}.admin-body .form-status.error{color:#b02e48}
@media(max-width:1200px){.admin-sidebar{width:210px;padding-inline:17px}.admin-workspace{margin-left:210px;width:calc(100% - 210px)}.admin-topbar{padding-inline:28px}.admin-main{padding:30px 28px 45px}.connection-status{display:none}.metric-grid{gap:13px}.metric-card{padding:18px}.metric-card>div{font-size:10px}.metric-card>strong{font-size:34px}.metric-card .icon{width:16px}.setup-notice{gap:14px}.setup-notice>.badge{display:none}.admin-table td,.admin-table th{padding-inline:17px}.dashboard-columns{gap:18px}.admin-panel{padding:23px}.auth-story{padding:50px}.auth-story h1{font-size:46px}}
@media(max-width:950px){.metric-grid{grid-template-columns:1fr 1fr}.dashboard-columns{grid-template-columns:1fr}.setup-notice{flex-wrap:wrap}.dashboard-welcome h2{font-size:26px}.dashboard-welcome .btn{font-size:11px;padding:12px}.admin-sidebar{width:195px;padding-inline:14px}.admin-workspace{margin-left:195px;width:calc(100% - 195px)}.admin-sidebar>.brand{padding:0}.admin-topbar{padding-inline:24px}.admin-main{padding:28px 24px 40px}.admin-toolbar-actions .btn{font-size:10px;padding:10px}.admin-section-intro{flex-wrap:wrap;gap:17px}.admin-section-intro h2{font-size:23px}.auth-story{padding:45px 35px}.auth-story h1{font-size:40px}.auth-form-wrap{padding:35px}.auth-form-wrap h2{font-size:28px}.password-form{grid-template-columns:1fr 1fr}.password-form>.btn{grid-column:1/-1;width:fit-content}.table-toolbar{padding:17px}.table-total{display:none}}
@media(max-width:760px){.admin-auth{grid-template-columns:1fr}.auth-story{padding:30px 25px;min-height:220px}.auth-story>div{margin:30px 0 10px}.auth-story h1{font-size:34px;max-width:400px;margin:5px 0 15px}.auth-story p{font-size:13px;max-width:440px}.auth-features{display:none}.auth-story>.text-link{margin-top:8px;font-size:11px}.auth-story .eyebrow{font-size:8px}.auth-form-wrap{padding:35px 26px 50px}.auth-form-wrap h2{font-size:29px}.auth-form-wrap .form-card{max-width:100%;padding:0;gap:17px}.auth-form-wrap .tile-icon{display:none}.admin-sidebar{display:none;width:235px;top:79px;padding-top:25px;box-shadow:6px 0 25px #1426411a}.admin-sidebar.open{display:flex}.admin-sidebar>.brand{display:none}.sidebar-label{margin:0 14px 17px}.admin-sidebar nav button{font-size:13px;padding:14px}.admin-workspace{margin:0;width:100%}.admin-topbar{height:79px;padding:15px 18px;gap:12px}.admin-topbar h1{font-size:23px}.admin-topbar .eyebrow{font-size:7px;margin-bottom:4px}.admin-menu-toggle{display:flex;width:33px;height:33px;flex-shrink:0}.admin-menu-toggle .icon{width:18px;height:18px}.admin-topbar>div:nth-child(2){flex:1}.admin-topbar>div:last-child{gap:0}.admin-topbar>div:last-child>.btn{font-size:0;padding:10px;gap:0}.admin-topbar>div:last-child>.btn .icon{width:17px;height:17px}.admin-main{padding:26px 18px 45px}.dashboard-welcome{align-items:flex-start;flex-wrap:wrap;gap:19px}.dashboard-welcome h2{font-size:26px}.dashboard-welcome .eyebrow{font-size:8px;margin-bottom:8px}.dashboard-welcome p{font-size:12px}.dashboard-welcome .btn{font-size:12px;padding:11px 15px}.metric-grid{gap:12px;margin-top:25px}.metric-card{padding:18px 17px}.metric-card>div{font-size:10px}.metric-card>strong{font-size:36px;margin:18px 0 12px}.metric-card p{font-size:10px}.setup-notice{padding:20px;gap:17px}.setup-notice h3{font-size:14px;line-height:1.5}.setup-notice p{font-size:11px}.setup-notice .btn{font-size:11px}.admin-panel{padding:21px}.panel-heading h2{font-size:18px}.panel-heading p{font-size:11px}.dashboard-columns{gap:20px}.admin-section-intro{gap:18px;margin-bottom:21px}.admin-section-intro h2{font-size:25px}.admin-section-intro p{font-size:12px}.admin-toolbar-actions{width:100%;gap:8px}.admin-toolbar-actions .btn{font-size:11px;padding:10px 14px}.table-toolbar{padding:16px;gap:10px}.table-toolbar label:first-child{max-width:60%;width:60%}.table-toolbar label:nth-child(2){width:40%}.table-toolbar input,.table-toolbar select{font-size:12px;padding:11px 10px}.admin-table{font-size:11px}.admin-table th{font-size:9px;padding-block:13px}.admin-table td{padding-block:20px}.admin-table strong{font-size:12px}.record-dialog{width:calc(100% - 20px);max-height:94vh;border-radius:12px}.dialog-header{padding:19px 20px}.dialog-header h2{font-size:21px}.dialog-header .eyebrow{font-size:7px}#record-form{padding:18px 16px 0}.editor-group>summary{font-size:12px;padding:16px}.editor-grid{padding:18px;gap:17px;grid-template-columns:1fr}.editor-grid .full-width{grid-column:1}.editor-grid label{font-size:12px}.editor-grid input,.editor-grid textarea,.editor-grid select{font-size:14px}.editor-footer{gap:8px;flex-wrap:wrap;padding:15px 0 20px}.editor-footer .form-status{flex-basis:100%;font-size:12px;margin:0 0 3px}.editor-footer .btn{font-size:12px;flex:1}.repeater-heading h3{font-size:12px}.repeater-heading .btn{font-size:10px}.repeater-row{padding:14px}.relation-picker{padding:13px}.relation-picker>div{gap:13px 18px}.relation-picker .checkbox-label{font-size:12px}.course-detail-editor{padding:16px}.settings-form{padding:15px}.settings-form .editor-grid{padding:18px}.settings-form .editor-group{margin-bottom:17px}.settings-submit{flex-wrap:wrap;gap:13px}.settings-submit .btn{font-size:12px;width:100%}.password-panel{margin-top:22px}.password-form{grid-template-columns:1fr}.password-form input{font-size:14px}.password-form>.btn{width:100%;grid-column:1}.password-form .full-width{grid-column:1}.inspection-grid{gap:23px 15px;padding:3px 3px 22px}.detail-value>span{font-size:8px}.detail-value p{font-size:12px}.admin-body .toast{bottom:20px}.admin-empty{padding:40px 17px}.admin-empty h2{font-size:17px}.admin-empty p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.metric-card{transition:none}}
.programme-mode-editor{padding:12px 0;border-top:1px solid #e7e8f0}.programme-mode-editor>.checkbox-label{margin-bottom:12px}

/* Bulk import extends the existing administration panel. */
.import-upload{padding:24px;margin-bottom:24px}.import-upload>label{max-width:620px}.import-upload input{padding:12px;background:#fff}.import-file-heading{margin-bottom:24px}.import-sheet{padding:24px;margin-bottom:22px;background:#fff;border:1px solid var(--line);border-radius:14px}.import-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.import-sheet-head>label{min-width:240px}.import-mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.import-mapping-grid label{font-size:14px}.import-mapping-grid .field-hint{font-size:12px;font-weight:400}.import-actions{display:flex;align-items:center;gap:16px;margin:24px 0;flex-wrap:wrap}.import-preview{padding:24px;border:1px solid var(--line);background:#fff;border-radius:14px;margin-top:24px}.import-summary{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.import-summary>span{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:14px}.import-report-scroll{max-height:500px;overflow:auto;margin-top:12px}.import-report-scroll td:last-child{min-width:280px;max-width:560px;white-space:normal;overflow-wrap:anywhere}.import-report-scroll td:last-child>div{margin-bottom:5px}.import-preview details>summary{font-weight:600;padding:12px 0}.import-upload .form-status{margin-bottom:0}
@media(max-width:1100px){.import-mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.import-mapping-grid{grid-template-columns:minmax(0,1fr)}.import-sheet-head{align-items:stretch;flex-direction:column}.import-sheet-head>label{min-width:0}.import-sheet,.import-preview,.import-upload{padding:18px}}
