:root {
    --bg: #f5f7fb;
    --surface: #ffffff;
    --surface-2: #e7f8f5;
    --text: #172033;
    --muted: #667085;
    --primary: #0f766e;
    --primary-dark: #115e59;
    --success: #15803d;
    --warning: #b45309;
    --danger: #b42318;
    --border: #e4e7ec;
    --shadow: 0 14px 40px rgba(23, 32, 51, .08);
    --radius: 16px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: var(--bg); line-height: 1.55; }
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-dark); }
.container { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.topbar { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--border); backdrop-filter: blur(12px); }
.nav-wrap { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--text); font-size: 1.2rem; font-weight: 800; }
.brand-mark { width: 36px; height: 36px; display: inline-grid; place-items: center; background: linear-gradient(135deg, var(--primary), #14b8a6); color: #fff; border-radius: 11px; box-shadow: 0 8px 18px rgba(15,118,110,.28); }
.nav { display: flex; align-items: center; gap: 18px; }
.nav > a:not(.btn) { color: #344054; font-weight: 600; }
.nav > a.active { color: var(--primary); }
.nav-user { color: var(--muted); font-size: .92rem; }
.hero { padding: 82px 0 70px; background: radial-gradient(circle at 80% 10%, rgba(91,77,247,.17), transparent 34%), radial-gradient(circle at 10% 70%, rgba(14,165,233,.12), transparent 30%); }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 56px; }
.eyebrow { display: inline-block; padding: 7px 11px; border-radius: 999px; background: var(--surface-2); color: var(--primary-dark); font-weight: 700; font-size: .85rem; }
h1 { margin: 16px 0; font-size: clamp(2.2rem, 5vw, 4.3rem); line-height: 1.04; letter-spacing: -.04em; }
h2 { margin: 0 0 18px; font-size: clamp(1.55rem, 3vw, 2.35rem); letter-spacing: -.02em; }
h3 { margin: 0 0 8px; }
.lead { max-width: 680px; font-size: 1.12rem; color: var(--muted); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn { appearance: none; border: 1px solid transparent; border-radius: 10px; padding: 10px 16px; font: inherit; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: .16s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff; background: var(--primary); box-shadow: 0 8px 18px rgba(15,118,110,.24); }
.btn-primary:hover { color: #fff; background: var(--primary-dark); }
.btn-secondary { color: #344054; background: #fff; border-color: var(--border); }
.btn-danger { color: #fff; background: var(--danger); }
.btn-success { color: #fff; background: var(--success); }
.btn-ghost { color: #344054; background: transparent; border-color: var(--border); }
.btn-sm { padding: 7px 11px; font-size: .88rem; }
.btn-block { width: 100%; }
.hero-card { background: linear-gradient(150deg, #134e4a, #0f766e); color: #fff; border-radius: 28px; padding: 30px; box-shadow: 0 30px 70px rgba(49,46,129,.3); transform: rotate(1.5deg); }
.hero-card .mini-card { margin: 14px 0; background: rgba(255,255,255,.12); padding: 16px; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; }
.hero-card .score-row { display: flex; justify-content: space-between; margin-top: 18px; font-weight: 800; }
.section { padding: 70px 0; }
.section-muted { background: #fff; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.feature-card, .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.feature-card { padding: 24px; }
.feature-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--surface-2); font-size: 1.35rem; margin-bottom: 16px; }
.page-head { padding: 38px 0 22px; display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.page-head h1 { font-size: clamp(1.8rem, 4vw, 2.7rem); margin: 0 0 6px; }
.muted { color: var(--muted); }
.card { padding: 22px; }
.auth-shell { min-height: calc(100vh - 136px); display: grid; place-items: center; padding: 48px 0; }
.auth-card { width: min(470px, calc(100% - 32px)); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.form-group { margin-bottom: 16px; }
.form-group label { display: block; margin-bottom: 7px; font-weight: 700; font-size: .93rem; }
input, textarea, select { width: 100%; padding: 11px 12px; border: 1px solid #d0d5dd; border-radius: 9px; background: #fff; color: var(--text); font: inherit; outline: none; }
input:focus, textarea:focus, select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(15,118,110,.12); }
textarea { min-height: 110px; resize: vertical; }
.help { margin-top: 5px; color: var(--muted); font-size: .85rem; }
.check-row { display: flex; gap: 10px; align-items: center; }
.check-row input { width: auto; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 22px; }
.stat { padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; }
.stat strong { display: block; font-size: 1.9rem; }
.quiz-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.quiz-card { padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: 15px; }
.quiz-card-head { display: flex; justify-content: space-between; gap: 14px; }
.badge { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; font-size: .78rem; font-weight: 800; }
.badge-draft { background: #f2f4f7; color: #475467; }
.badge-published { background: #dcfce7; color: #166534; }
.badge-closed { background: #fee2e2; color: #991b1b; }
.badge-info { background: #e0e7ff; color: #3730a3; }
.meta { display: flex; flex-wrap: wrap; gap: 8px 15px; color: var(--muted); font-size: .9rem; margin: 12px 0 18px; }
.card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.flash { margin-top: 18px; padding: 13px 16px; border-radius: 10px; border: 1px solid; }
.flash-success { background: #ecfdf3; color: #067647; border-color: #abefc6; }
.flash-warning { background: #fffaeb; color: #b54708; border-color: #fedf89; }
.flash-danger { background: #fef3f2; color: #b42318; border-color: #fecdca; }
.flash-info { background: #eff8ff; color: #175cd3; border-color: #b2ddff; }
.builder-layout { display: grid; grid-template-columns: 310px 1fr; gap: 20px; padding-bottom: 60px; }
.sidebar-card { position: sticky; top: 88px; align-self: start; }
.list-clean { list-style: none; margin: 0; padding: 0; }
.list-clean li { padding: 11px 0; border-bottom: 1px solid var(--border); }
.question-card { margin-bottom: 15px; }
.question-head { display: flex; justify-content: space-between; gap: 16px; align-items: start; }
.option-list { margin: 12px 0 0; padding-left: 22px; }
.option-correct { color: var(--success); font-weight: 700; }
.inline-form { display: inline; }
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
table { width: 100%; border-collapse: collapse; min-width: 720px; }
th, td { padding: 13px 15px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
th { background: #f9fafb; font-size: .84rem; color: #475467; }
tr:last-child td { border-bottom: none; }
.code-box { display: inline-flex; align-items: center; gap: 9px; padding: 8px 12px; background: #134e4a; color: #fff; border-radius: 9px; font-weight: 900; letter-spacing: .13em; }
.join-shell { min-height: calc(100vh - 136px); display: grid; place-items: center; padding: 50px 0; }
.join-card { width: min(560px, calc(100% - 32px)); text-align: center; }
.join-code { text-transform: uppercase; letter-spacing: .15em; font-size: 1.2rem; text-align: center; font-weight: 900; }
.quiz-play { max-width: 820px; padding: 38px 0 65px; }
.play-head { margin-bottom: 18px; }
.timer { position: sticky; top: 82px; z-index: 10; float: right; padding: 9px 13px; border-radius: 999px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow); font-weight: 900; }
.play-question { margin-bottom: 18px; }
.play-option { display: block; padding: 12px 13px; border: 1px solid var(--border); border-radius: 10px; margin: 9px 0; cursor: pointer; }
.play-option:hover { border-color: var(--primary); background: #f8f7ff; }
.play-option input { width: auto; margin-right: 9px; }
.result-hero { text-align: center; padding: 28px; }
.score-circle { width: 150px; height: 150px; margin: 18px auto; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #4f46e5, #7c3aed); color: #fff; box-shadow: 0 20px 35px rgba(79,70,229,.28); }
.score-circle strong { font-size: 2.25rem; }
.empty { padding: 40px 22px; text-align: center; background: #fff; border: 1px dashed #cbd5e1; border-radius: 15px; color: var(--muted); }
.footer { background: #fff; border-top: 1px solid var(--border); }
.footer-inner { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--muted); font-size: .9rem; }
hr { border: 0; border-top: 1px solid var(--border); margin: 22px 0; }
@media (max-width: 850px) {
    .hero-grid, .builder-layout { grid-template-columns: 1fr; }
    .hero-card { transform: none; }
    .grid-3, .stats { grid-template-columns: repeat(2, 1fr); }
    .sidebar-card { position: static; }
    .nav-user { display: none; }
}
@media (max-width: 620px) {
    .nav { gap: 10px; }
    .nav > a:not(.btn) { display: none; }
    .hero { padding-top: 55px; }
    .grid-3, .stats, .quiz-grid, .form-grid { grid-template-columns: 1fr; }
    .page-head { align-items: start; flex-direction: column; }
    .footer-inner { padding: 18px 0; flex-direction: column; align-items: start; }
    .question-head { flex-direction: column; }
}

/* Digitera extensions */
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1.05; }
.brand small { margin-top: 4px; color: var(--muted); font-size: .58rem; font-weight: 600; letter-spacing: .02em; }
.nav { gap: 13px; }
.nav > a:not(.btn) { font-size: .9rem; white-space: nowrap; }
.nav-toggle { display: none; border: 0; background: transparent; font-size: 1.45rem; cursor: pointer; color: var(--text); }
.page-spacer { height: 64px; }
.no-margin { margin: 0; }
.narrow-container { max-width: 900px; }
.textarea-sm { min-height: 80px; }
.editor-textarea { min-height: 340px; line-height: 1.75; }
.danger-text { color: var(--danger); }
.space-top { margin-top: 22px; }
.section-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-head h2 { margin-bottom: 4px; }
.section-head p { margin: 0; }
.dashboard-head { padding-top: 44px; }
.stats-6 { grid-template-columns: repeat(6, 1fr); }
.stats-3 { grid-template-columns: repeat(3, 1fr); }
.stat { position: relative; overflow: hidden; }
.stat-link { color: var(--text); transition: .18s ease; }
.stat-link:hover { color: var(--text); transform: translateY(-2px); box-shadow: var(--shadow); border-color: #b6e4dd; }
.stat-icon { display: block; font-size: 1.25rem; margin-bottom: 8px; }
.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 22px 0; }
.quick-card { display: flex; gap: 14px; align-items: center; padding: 19px; background: linear-gradient(145deg, #fff, #f3fffc); color: var(--text); border: 1px solid var(--border); border-radius: 15px; box-shadow: 0 8px 25px rgba(16, 24, 40, .05); }
.quick-card:hover { color: var(--text); border-color: #99d9d0; transform: translateY(-2px); }
.quick-card > span { width: 45px; height: 45px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; background: var(--surface-2); font-size: 1.35rem; }
.quick-card h3, .quick-card p { margin: 0; }
.quick-card p { margin-top: 3px; color: var(--muted); font-size: .86rem; }
.dashboard-grid { display: grid; grid-template-columns: 1.35fr .85fr; gap: 20px; }
.borderless { border: 0; }
.score-pill { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #e7f8f5; color: #0f766e; font-weight: 800; }
.empty.compact { padding: 22px; }
.activity-list { list-style: none; padding: 0; margin: 0; }
.activity-list li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.activity-list li:last-child { border-bottom: 0; }
.activity-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--surface-2); }
.activity-list strong, .activity-list small { display: block; }
.activity-list small { margin-top: 3px; color: var(--muted); }
.filter-bar { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.filter-bar > div { width: min(430px, 100%); }
.filter-bar label { display: block; margin-bottom: 6px; font-weight: 700; }
.bar-list { display: grid; gap: 17px; }
.scroll-panel { max-height: 385px; overflow: auto; padding-right: 5px; }
.bar-label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.bar-label span { color: var(--muted); font-size: .84rem; text-align: right; }
.progress { height: 9px; background: #e7eaee; border-radius: 999px; overflow: hidden; }
.progress span { display: block; height: 100%; background: linear-gradient(90deg, #0f766e, #2dd4bf); border-radius: inherit; }
.content-layout { grid-template-columns: 330px 1fr; }
.resource-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.resource-card { display: flex; align-items: flex-start; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--border); border-radius: 15px; box-shadow: 0 8px 25px rgba(16,24,40,.05); }
.resource-body { min-width: 0; flex: 1; }
.resource-body h3 { margin-top: 9px; overflow-wrap: anywhere; }
.resource-body p { color: var(--muted); }
.resource-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; color: var(--muted); }
.file-icon { width: 55px; height: 62px; flex: 0 0 auto; display: grid; place-items: center; padding: 6px; border-radius: 10px 10px 14px 10px; background: linear-gradient(145deg, #0f766e, #14b8a6); color: #fff; font-size: .72rem; font-weight: 900; box-shadow: 0 8px 18px rgba(15,118,110,.2); }
.file-icon.small { width: 46px; height: 52px; font-size: .65rem; }
.post-admin-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.post-admin-card { padding: 0; overflow: hidden; display: grid; grid-template-columns: 180px 1fr; }
.post-thumb { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.post-thumb.placeholder { display: grid; place-items: center; background: linear-gradient(145deg, #ccfbf1, #f0fdfa); font-size: 3rem; }
.post-admin-content { padding: 20px; }
.post-admin-content p { color: var(--muted); }
.video-admin-grid, .public-video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.video-admin-card { padding: 16px; }
.video-preview { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; border-radius: 12px; background: #0f172a; margin-bottom: 15px; }
.video-preview iframe, .video-preview img { width: 100%; height: 100%; border: 0; object-fit: cover; }
.video-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: #fff; font-size: 3rem; background: linear-gradient(145deg, #134e4a, #0f766e); }
.student-hero { padding: 82px 0; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(94,234,212,.25), transparent 28%), linear-gradient(135deg, #042f2e, #0f766e); }
.student-hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 55px; align-items: center; }
.student-hero h1 { max-width: 780px; }
.student-hero .lead { color: #ccfbf1; }
.eyebrow.light { color: #fff; background: rgba(255,255,255,.14); }
.btn-light { color: #0f766e; background: #fff; }
.btn-light:hover { color: #115e59; background: #f0fdfa; }
.btn-outline-light { color: #fff; border-color: rgba(255,255,255,.45); background: transparent; }
.btn-outline-light:hover { color: #fff; border-color: #fff; }
.join-widget { padding: 30px; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; background: rgba(255,255,255,.1); box-shadow: 0 25px 55px rgba(0,0,0,.2); backdrop-filter: blur(10px); }
.join-icon { font-size: 2.4rem; }
.join-widget h2 { margin-top: 12px; }
.public-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.public-post-card, .public-video-card { overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: 17px; box-shadow: var(--shadow); }
.public-post-card > img, .public-cover { width: 100%; height: 190px; object-fit: cover; }
.public-cover { display: grid; place-items: center; background: linear-gradient(145deg, #134e4a, #14b8a6); color: #fff; font-size: 1.9rem; font-weight: 900; }
.public-post-body, .public-video-body { padding: 20px; }
.public-post-body small, .public-video-body small { color: var(--muted); }
.public-post-body h3, .public-video-body h3 { margin-top: 9px; }
.public-post-body p, .public-video-body p { color: var(--muted); }
.public-video-card .video-preview { border-radius: 0; margin: 0; }
.document-list { display: grid; gap: 12px; }
.document-row { display: flex; align-items: center; gap: 16px; padding: 16px 18px; background: #fff; color: var(--text); border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 7px 22px rgba(16,24,40,.05); }
.document-row:hover { color: var(--text); border-color: #9bded5; transform: translateY(-1px); }
.document-row > span:nth-child(2), .document-main { flex: 1; min-width: 0; }
.document-row strong, .document-row small, .document-row em { display: block; }
.document-row small { margin-top: 3px; color: var(--muted); overflow-wrap: anywhere; }
.document-row em { margin-top: 7px; color: #0f766e; font-style: normal; font-size: .82rem; }
.download-arrow { font-size: 1.5rem; color: var(--primary); }
.public-page-head { text-align: center; max-width: 760px; margin: 0 auto; padding: 65px 0 42px; }
.public-page-head h1 { font-size: clamp(2.1rem, 4vw, 3.5rem); }
.search-form { display: flex; gap: 10px; margin: 27px auto 0; max-width: 620px; }
.article-page { padding: 55px 0 80px; }
.article-container { max-width: 820px; }
.back-link { display: inline-block; margin-bottom: 30px; }
.article-page header { text-align: center; }
.article-page header h1 { font-size: clamp(2.1rem, 5vw, 4rem); }
.article-meta { color: var(--muted); }
.article-cover { width: 100%; max-height: 500px; object-fit: cover; margin: 35px 0; border-radius: 20px; }
.article-content { padding: 34px; background: #fff; border: 1px solid var(--border); border-radius: 18px; font-size: 1.08rem; line-height: 1.9; white-space: normal; box-shadow: var(--shadow); }
.footer { padding-top: 42px; }
.footer-grid { display: grid; grid-template-columns: 1.55fr 1fr 1.2fr .9fr; gap: 32px; padding-bottom: 35px; }
.footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer-grid p { max-width: 380px; color: var(--muted); }
.footer-grid strong { margin-bottom: 5px; }
.footer-brand { margin-bottom: 4px; }
.footer-bottom { min-height: 58px; padding: 15px 0; display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: .88rem; border-top: 1px solid var(--border); }

@media (max-width: 1080px) {
    .stats-6 { grid-template-columns: repeat(3, 1fr); }
    .nav-wrap { flex-wrap: wrap; }
    .nav-toggle { display: block; }
    .nav { display: none; width: 100%; flex-direction: column; align-items: stretch; padding: 5px 0 18px; }
    .nav.open { display: flex; }
    .nav > a:not(.btn), .nav .btn { display: block; width: 100%; padding: 10px 12px; border-radius: 8px; }
    .nav-user { display: block; padding: 8px 12px; }
    .video-admin-grid, .public-video-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 850px) {
    .dashboard-grid, .student-hero-grid { grid-template-columns: 1fr; }
    .quick-grid { grid-template-columns: repeat(2, 1fr); }
    .resource-grid, .post-admin-grid, .public-post-grid { grid-template-columns: 1fr; }
    .post-admin-card { grid-template-columns: 155px 1fr; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
    .stats-6, .stats-3 { grid-template-columns: repeat(2, 1fr); }
    .quick-grid, .video-admin-grid, .public-video-grid { grid-template-columns: 1fr; }
    .post-admin-card { grid-template-columns: 1fr; }
    .post-thumb { height: 190px; min-height: 0; }
    .filter-bar, .bar-label, .section-head, .footer-bottom { flex-direction: column; align-items: stretch; }
    .bar-label span { text-align: left; }
    .search-form { flex-direction: column; }
    .student-hero { padding: 55px 0; }
    .article-content { padding: 22px; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-grid > div:first-child { grid-column: auto; }
}
.hero-trust { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 24px; color: #475467; font-size: .9rem; font-weight: 600; }
.digitera-preview { transform: rotate(1deg); }
.preview-head { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.preview-head strong, .preview-head small { display: block; }
.preview-head small { margin-top: 3px; color: #ccfbf1; }
.preview-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 23px 0; }
.preview-stats div { padding: 14px; border-radius: 12px; background: rgba(255,255,255,.1); }
.preview-stats span, .preview-stats strong { display: block; }
.preview-stats span { font-size: .76rem; color: #ccfbf1; }
.preview-stats strong { margin-top: 3px; font-size: 1.45rem; }
.preview-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.preview-list span { padding: 10px; background: rgba(255,255,255,.08); border-radius: 9px; font-size: .8rem; text-align: center; }
.feature-grid-five { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; }
.feature-grid-five .feature-card { padding: 21px; }
.workflow-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: center; }
.workflow-list { margin-top: 28px; display: grid; gap: 18px; }
.workflow-list > div { display: flex; gap: 14px; align-items: flex-start; }
.workflow-list > div > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--surface-2); color: var(--primary); font-weight: 900; }
.workflow-list p { margin: 0; color: var(--muted); }
.workflow-list strong { color: var(--text); }
.portal-preview { padding: 30px; background: #fff; border: 1px solid var(--border); border-radius: 24px; box-shadow: var(--shadow); }
.portal-preview h3 { margin: 14px 0 22px; font-size: 1.65rem; }
.portal-item { display: flex; gap: 13px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--border); }
.portal-item > span { width: 40px; height: 40px; display: grid; place-items: center; background: var(--surface-2); border-radius: 11px; }
.portal-item strong, .portal-item small { display: block; }
.portal-item small { margin-top: 2px; color: var(--muted); }
.portal-preview .btn { margin-top: 22px; }
.cta-section { padding: 15px 0 75px; }
.cta-card { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 45px; border-radius: 25px; color: #fff; background: linear-gradient(135deg,#042f2e,#0f766e); }
.cta-card h2 { margin: 12px 0 8px; }
.cta-card p { margin: 0; color: #ccfbf1; }
@media (max-width: 1080px) { .feature-grid-five { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 850px) { .workflow-grid { grid-template-columns: 1fr; gap: 35px; } .feature-grid-five { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px) { .feature-grid-five { grid-template-columns: 1fr; } .preview-list { grid-template-columns: 1fr; } .cta-card { flex-direction: column; align-items: flex-start; padding: 30px; } }

/* Digitera multi-school additions */
.login-role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:55px}.login-role-card{display:block;text-align:center;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.login-role-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(15,23,42,.12)}.login-role-card>span{display:block;font-size:3rem;margin-bottom:12px}.login-role-card h2{font-size:1.35rem;margin-bottom:8px}.center-text{text-align:center}.student-login-card{text-align:center}.student-login-icon{display:block;font-size:3.5rem;margin-bottom:8px}.code-pill.large{font-size:1.35rem;padding:10px 18px;display:inline-block}.school-code-banner{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:28px 32px;margin-bottom:24px;border-radius:22px;background:linear-gradient(125deg,#0f766e,#1d4ed8);color:#fff;box-shadow:0 18px 40px rgba(15,118,110,.22)}.school-code-banner>div:first-child{display:grid;gap:4px}.school-code-banner strong{font-size:2.15rem;letter-spacing:4px}.school-code-banner small{color:rgba(255,255,255,.82)}.school-code-box{padding:25px;border-radius:18px;background:#f0fdfa;text-align:center;margin:20px 0}.school-code-box strong{display:block;font-size:2.2rem;letter-spacing:5px;color:#0f766e}.school-code-box p{margin-bottom:0;color:#64748b}.video-preview video{width:100%;height:100%;display:block;background:#0f172a;object-fit:contain}.login-card-print{overflow:hidden;max-width:960px;margin:25px auto;border-radius:30px;background:linear-gradient(125deg,#0f766e,#164e63);padding:34px;box-shadow:0 25px 55px rgba(15,23,42,.2)}.login-card-header{display:flex;justify-content:space-between;color:#fff;margin-bottom:24px}.login-card-header strong{font-size:1.5rem}.login-card-header span{color:#ccfbf1}.login-card-body{background:#fff;border-radius:23px;padding:35px}.teacher-identity{display:flex;align-items:center;gap:24px;padding-bottom:25px;border-bottom:1px solid #e2e8f0}.teacher-avatar{display:grid;place-items:center;width:100px;height:100px;border-radius:50%;background:#ccfbf1;color:#0f766e;font-size:3rem;font-weight:800}.teacher-identity small,.credential-grid small{display:block;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.teacher-identity h2{margin:4px 0;font-size:2rem}.teacher-identity p{margin:0;color:#475569}.credential-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:30px 0 20px}.credential-grid strong{font-size:1.35rem;word-break:break-word}.card-note{margin:0;color:#64748b}.school-code-print{max-width:960px;margin:25px auto;border-radius:30px;background:linear-gradient(125deg,#0f766e,#1d4ed8);padding:38px;color:#fff;text-align:center;box-shadow:0 25px 55px rgba(15,23,42,.2)}.school-code-print>strong{font-size:1.5rem}.school-code-print>div{background:#fff;color:#0f172a;border-radius:24px;padding:55px;margin-top:28px}.school-code-print h2{color:#64748b}.school-code-print p{letter-spacing:.12em}.school-code-print span{display:block;color:#0f766e;font-size:4rem;font-weight:800;letter-spacing:8px;margin:20px 0}.school-code-print small{color:#64748b}.table-actions{display:flex;flex-wrap:wrap;gap:6px}.no-print{}.video-admin-card .video-preview,.public-video-card .video-preview{aspect-ratio:16/9;height:auto}
@media(max-width:1000px){.login-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.school-code-banner{align-items:flex-start;flex-direction:column}.credential-grid{grid-template-columns:1fr}}
@media(max-width:620px){.login-role-grid{grid-template-columns:1fr}.login-card-print{padding:15px;border-radius:20px}.login-card-body{padding:22px}.teacher-identity{align-items:flex-start}.teacher-avatar{width:70px;height:70px;font-size:2rem}.school-code-print{padding:18px}.school-code-print>div{padding:30px 15px}.school-code-print span{font-size:2.2rem;letter-spacing:4px}}
@media print{body{background:#fff}.topbar,.footer,.no-print,.flash{display:none!important}main{padding:0!important}.login-card-print,.school-code-print{box-shadow:none;max-width:none;margin:0;break-inside:avoid}.page-spacer{display:none}}
.stats-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.stats-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.stats-5{grid-template-columns:1fr}}

/* Digitera assignments / homework */
.stats-8{grid-template-columns:repeat(4,1fr)}
.quick-grid-five{grid-template-columns:repeat(5,1fr)}
.feature-grid-six{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.feature-grid-six .feature-card{padding:21px}
.assignment-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.assignment-public-card{display:flex;flex-direction:column}
.assignment-public-card h2,.assignment-public-card h3{font-size:1.25rem;margin:13px 0 8px}
.assignment-public-card p{color:var(--muted);flex:1}
.assignment-public-card .btn{margin-top:auto}
.assignment-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.assignment-card .file-icon{background:#fef3c7;color:#92400e}
.current-file{margin-top:10px;padding:12px;border-radius:10px;background:#f8fafc;color:var(--muted);font-size:.9rem}
.checkbox-inline{display:flex!important;align-items:center;gap:7px;margin-top:9px!important;font-weight:500!important}
.checkbox-inline input{width:auto}
.assignment-detail,.assignment-submit{margin-bottom:20px}
.assignment-status-panel{display:grid;grid-template-columns:2fr 1fr;gap:16px;padding:18px;border-radius:14px;background:#f8fafc;margin-bottom:24px}
.assignment-status-panel h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 3px}
.assignment-status-panel strong{font-size:1.2rem}
.assignment-description{padding-bottom:20px;border-bottom:1px solid var(--border)}
.assignment-instructions{line-height:1.8}
.assignment-instructions h2{font-size:1.35rem;margin-top:0}
.assignment-attachment{margin-top:24px}
.submission-list{display:grid;gap:18px}
.submission-card{padding:26px}
.submission-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.submission-head h2{font-size:1.45rem;margin:9px 0 2px}
.score-display{text-align:right;white-space:nowrap}
.score-display strong{font-size:2rem;color:var(--primary)}
.score-display span{color:var(--muted)}
.submission-content{padding:20px 0}
.compact-prose{padding:14px;border:1px solid var(--border);border-radius:10px;background:#f8fafc;min-height:60px}
.compact-download{margin-top:13px}
.grading-form{padding-top:18px;border-top:1px solid var(--border)}
.search-bar{display:flex;gap:10px;max-width:720px;margin-top:22px}
.search-bar input{flex:1}
@media(max-width:1080px){.stats-8{grid-template-columns:repeat(4,1fr)}.quick-grid-five{grid-template-columns:repeat(3,1fr)}.feature-grid-six{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.assignment-public-grid{grid-template-columns:1fr}.stats-8{grid-template-columns:repeat(2,1fr)}.quick-grid-five{grid-template-columns:repeat(2,1fr)}.feature-grid-six{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.stats-8,.quick-grid-five,.feature-grid-six{grid-template-columns:1fr}.assignment-status-panel,.assignment-meta{grid-template-columns:1fr}.submission-head{flex-direction:column}.score-display{text-align:left}.search-bar{flex-direction:column}}

.submission-delete-form{display:inline-block;margin-top:10px}


/* =========================================================
   Digitera V4.12.7 — Live Screen (teacher -> student)
   ========================================================= */
.live-screen-manager-page,.student-live-screen-page{padding-bottom:54px}.live-screen-info-strip{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}.live-screen-info-strip span{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #e6e0f4;border-radius:999px;background:#fff;font-size:13px;font-weight:700;color:#5c526e}.live-screen-setup-card{padding:26px}.live-screen-setup-copy{display:flex;gap:16px;align-items:flex-start;margin-bottom:22px}.live-screen-setup-copy h2{margin:0 0 7px}.live-screen-setup-copy p{margin:0;color:#6d657a;line-height:1.65}.live-screen-feature-icon{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:16px;background:#f1ebff;color:#6e3ed7}.live-screen-feature-icon svg{width:28px;height:28px}.live-screen-form-grid{align-items:start}.live-screen-start-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px}.live-screen-start-row small{color:#756d82}.live-screen-start-button{min-height:48px}.live-screen-start-button span{display:inline-flex;width:20px;vertical-align:middle}.live-screen-broadcast-card{background:#14121b;border-radius:22px;padding:18px;color:#fff;box-shadow:0 22px 60px rgba(24,15,43,.22)}.live-screen-broadcast-head,.live-screen-student-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.live-screen-broadcast-head h2,.live-screen-student-head h2{margin:8px 0 2px;color:inherit}.live-screen-broadcast-head p,.live-screen-student-head p{margin:0;color:#c7c2d0}.live-screen-live-pill{display:inline-flex;align-items:center;gap:7px;background:#e92d4c;color:#fff;border-radius:999px;padding:6px 10px;font-weight:900;font-size:12px;letter-spacing:.08em}.live-screen-live-pill i{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.55);animation:liveScreenPulse 1.4s infinite}.live-screen-viewer-counter{display:flex;align-items:center;gap:10px;background:#24202d;border:1px solid #393342;border-radius:15px;padding:10px 14px}.live-screen-viewer-counter strong{font-size:24px;color:#fff}.live-screen-viewer-counter span{max-width:120px;color:#c7c2d0;font-size:12px;line-height:1.25}.live-screen-stage{position:relative;overflow:hidden;background:#050507;border-radius:16px;aspect-ratio:16/9;min-height:280px;border:1px solid #35313d}.live-screen-stage video{display:block;width:100%;height:100%;object-fit:contain;background:#050507}.live-screen-stage-overlay{position:absolute;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;gap:12px;pointer-events:none}.live-screen-stage-overlay span,.live-screen-stage-overlay b{background:rgba(10,8,14,.72);backdrop-filter:blur(8px);padding:7px 10px;border-radius:9px;font-size:12px;color:#fff}.live-screen-host-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.live-screen-broadcast-card .btn-secondary{background:#2c2735;border-color:#40394a;color:#fff}.live-screen-broadcast-card .btn-danger{background:#dc2948;border-color:#dc2948;color:#fff}.live-screen-host-note{margin-top:14px;padding:12px 14px;background:#221e29;border:1px solid #342f3b;border-radius:12px;color:#c9c4d0;font-size:13px;line-height:1.5}.live-screen-waiting-card{text-align:center;padding:50px 24px;max-width:760px;margin:0 auto}.live-screen-waiting-card h2{margin:14px 0 8px}.live-screen-waiting-card p{max-width:560px;margin:0 auto 18px;color:#71697e}.live-screen-waiting-card small{display:block;margin-top:18px;color:#80778b}.live-screen-waiting-icon{display:grid;place-items:center;width:78px;height:78px;margin:0 auto;border-radius:24px;background:#efe8ff;color:#6d3fd2}.live-screen-waiting-icon svg{width:42px;height:42px}.live-screen-wait-dots{display:flex;justify-content:center;gap:8px}.live-screen-wait-dots i{width:9px;height:9px;border-radius:50%;background:#7750d7;animation:liveScreenDots 1.1s infinite ease-in-out}.live-screen-wait-dots i:nth-child(2){animation-delay:.15s}.live-screen-wait-dots i:nth-child(3){animation-delay:.3s}.live-screen-student-broadcast{background:#121018;color:#fff;border-radius:22px;padding:16px;box-shadow:0 22px 60px rgba(35,21,62,.22)}.live-screen-student-head{padding:4px 4px 0}.live-screen-student-head .btn-secondary{background:#292532;border-color:#3b3546;color:#fff}.student-stage{min-height:360px}.live-screen-connect-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:radial-gradient(circle at center,#252032,#0b0a0e 72%);text-align:center;padding:20px}.live-screen-connect-overlay[hidden]{display:none}.live-screen-connect-overlay span{display:grid;place-items:center;width:70px;height:70px;border-radius:20px;background:#34294c;color:#cdb8ff}.live-screen-connect-overlay svg{width:38px;height:38px}.live-screen-connect-overlay strong{font-size:18px}.live-screen-connect-overlay small{color:#aaa2b4}.live-screen-student-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 4px 1px;color:#c9c4d0;font-size:13px}.live-screen-student-foot>span{display:flex;align-items:center;gap:7px}.live-screen-student-foot i{width:9px;height:9px;border-radius:50%;background:#e2a32d;box-shadow:0 0 0 4px rgba(226,163,45,.12)}.live-screen-student-foot i.online{background:#37c47a;box-shadow:0 0 0 4px rgba(55,196,122,.13)}@keyframes liveScreenPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}70%{box-shadow:0 0 0 8px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}@keyframes liveScreenDots{0%,80%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-7px);opacity:1}}@media(max-width:720px){.live-screen-setup-card{padding:18px}.live-screen-setup-copy{gap:12px}.live-screen-feature-icon{flex-basis:46px;width:46px;height:46px}.live-screen-broadcast-head,.live-screen-student-head{align-items:flex-start;flex-direction:column}.live-screen-viewer-counter{width:100%;box-sizing:border-box}.live-screen-stage,.student-stage{min-height:0;aspect-ratio:16/9}.live-screen-stage-overlay{flex-direction:column;align-items:flex-start}.live-screen-student-foot{align-items:flex-start;flex-direction:column}.live-screen-host-actions .btn,.live-screen-student-head .btn{width:100%}.student-live-screen-page,.live-screen-manager-page{max-width:100%;overflow-x:hidden}}

/* Digitera V4.18.0 — Pendaftaran mandiri siswa dengan kode kelas */
.teacher-class-registration{margin-top:12px;padding:12px;border-radius:14px;background:linear-gradient(135deg,#f2edff,#f8f6ff);border:1px solid #ded1ff}.teacher-class-registration>small,.student-self-register-code>small{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#7651d7}.teacher-class-registration-code{display:flex;align-items:center;gap:8px;margin:5px 0}.teacher-class-registration-code strong{font-size:18px;letter-spacing:.08em;color:#3e2775}.teacher-class-registration>span{display:block;font-size:11px;color:#706987;margin-bottom:8px}.student-self-register-card{display:grid;grid-template-columns:minmax(0,1.15fr) auto;gap:16px;align-items:center;margin-bottom:18px}.student-self-register-card h2{margin:4px 0 5px}.student-self-register-code{min-width:180px;text-align:center;padding:13px;border-radius:14px;background:#f6f2ff;border:1px dashed #aa8df1}.student-self-register-code strong{display:block;margin:4px 0 8px;font-size:22px;letter-spacing:.08em;color:#4b2c8e}.student-self-register-link{grid-column:1/-1;display:flex;gap:8px;align-items:center}.student-self-register-link input{flex:1;min-width:180px}.student-self-register-card>.help{grid-column:1/-1;margin:0}
.student-self-register-page{min-height:calc(100vh - 80px);padding:38px 16px 64px;background:radial-gradient(circle at 15% 10%,rgba(119,76,231,.18),transparent 28%),radial-gradient(circle at 90% 20%,rgba(46,184,203,.15),transparent 26%),linear-gradient(180deg,#f8f7ff,#f2f6ff)}.student-register-shell{width:min(1050px,100%);margin:auto;display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr);gap:28px;align-items:center}.student-register-brand{padding:26px}.student-register-brand>img{width:74px;height:74px;object-fit:contain;margin-bottom:14px}.student-register-brand h1{font-size:clamp(30px,4vw,48px);line-height:1.05;margin:8px 0 12px;color:#2c2240}.student-register-brand p{font-size:15px;line-height:1.7;color:#6c6680}.register-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px}.register-flow span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#7548e7;color:white;font-weight:900}.register-flow b{font-size:11px;color:#4d4660}.register-flow i{font-style:normal;color:#a69db8}.student-register-card{padding:26px;border-radius:24px;box-shadow:0 20px 50px rgba(56,43,96,.12)}.student-register-card h2{margin:5px 0 8px;font-size:27px}.student-register-code-input{text-transform:uppercase;font-size:24px!important;font-weight:900!important;letter-spacing:.12em;text-align:center}.student-register-class-confirm{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;margin-bottom:20px;border-radius:15px;background:#eef9ff;border:1px solid #c9e9f3}.class-confirm-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:white;font-size:24px}.student-register-class-confirm small,.student-register-class-confirm strong,.student-register-class-confirm span{display:block}.student-register-class-confirm small{font-size:9px;font-weight:900;color:#16839b;letter-spacing:.07em}.student-register-class-confirm strong{font-size:16px;margin:2px 0}.student-register-class-confirm span{font-size:11px;color:#667887;line-height:1.45}.student-register-class-confirm>a{font-size:11px;font-weight:800}.student-register-agree{display:flex;gap:8px;align-items:flex-start;margin:10px 0 16px;font-size:12px;line-height:1.5;color:#5e586d}.student-register-agree input{margin-top:3px}.student-register-login-link{text-align:center;margin:16px 0 0;font-size:12px;color:#777084}.student-register-hp{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important}.student-register-success{text-align:center}.success-mark{width:68px;height:68px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#33c695,#20a872);color:white;font-size:34px;font-weight:900}.student-register-id-card{margin:18px auto;padding:18px;border:2px solid #392b5f;border-radius:18px;background:white;text-align:left;max-width:520px;box-shadow:0 12px 28px rgba(44,34,75,.08)}.id-card-head{display:flex;align-items:center;gap:10px;border-bottom:1px solid #ded9e8;padding-bottom:10px}.id-card-head img{width:42px;height:42px;object-fit:contain}.id-card-head strong,.id-card-head small{display:block}.id-card-head small{color:#746c86;margin-top:2px}.id-card-name{font-size:21px;font-weight:900;margin:14px 0;color:#2e2345}.id-card-grid{display:grid;grid-template-columns:100px 1fr;gap:7px 10px;font-size:12px}.id-card-grid span{color:#746d80}.id-card-grid .credential{font-size:16px;color:#5b35b7;letter-spacing:.04em}.student-register-success-actions{justify-content:center;flex-wrap:wrap}
@media(max-width:820px){.student-register-shell{grid-template-columns:1fr}.student-register-brand{padding:10px}.student-register-brand h1{font-size:32px}.student-self-register-card{grid-template-columns:1fr}.student-self-register-link{grid-column:auto;flex-wrap:wrap}.student-self-register-link input{width:100%}}
@media print{.student-register-brand,.site-header,.site-footer,.student-register-success>span,.student-register-success>h2,.student-register-success>p,.student-register-success-actions{display:none!important}.student-self-register-page{padding:0;background:white}.student-register-shell{display:block;width:100%}.student-register-card{border:0;box-shadow:none;padding:0}.student-register-id-card{width:90mm;max-width:none;margin:20mm auto;border:1.5px solid #111;box-shadow:none}}


/* Digitera V4.18.1 — Pendaftaran siswa ringkas dari Beranda */
.student-register-compact-page{padding:34px 14px 60px;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(180deg,#faf9ff 0%,#f4f7ff 100%)}
.student-register-compact-shell{width:min(650px,100%);margin:0 auto}
.student-register-compact-card{padding:30px;border-radius:24px;border:1px solid #e6def8;background:rgba(255,255,255,.98);box-shadow:0 18px 45px rgba(79,54,137,.09)}
.student-register-mini-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:22px}
.student-register-mini-icon{flex:0 0 48px;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#7046e8,#8d57e7);color:#fff;box-shadow:0 9px 20px rgba(112,70,232,.22)}
.student-register-mini-icon svg{width:25px;height:25px}
.student-register-mini-head .eyebrow{display:block;margin-bottom:5px}
.student-register-mini-head h1{font-size:clamp(23px,4vw,30px);line-height:1.15;margin:0 0 6px;color:#2d2340}
.student-register-mini-head p{margin:0;color:#797185;font-size:13px;line-height:1.55}
.student-register-step-pill{display:inline-flex;align-items:center;gap:8px;margin:2px 0 15px;padding:6px 11px;border-radius:999px;background:#f0ebff;color:#633bd0;font-size:11px;font-weight:900}
.student-register-step-pill span{color:#514a60}
.student-register-code-form .form-group{margin-bottom:14px}
.student-register-code-input{height:56px!important;border-radius:15px!important;font-size:20px!important;letter-spacing:.1em!important}
.student-register-help{text-align:center;margin:14px 0 0;color:#827b8e;font-size:11px;line-height:1.5}
.student-register-simple-form{display:grid;gap:2px}
.student-register-simple-form .form-group{margin-bottom:13px}
.student-register-simple-form label{display:block;margin-bottom:6px;font-size:12px;font-weight:850;color:#3f374d}
.student-register-simple-form label b{color:#e14765}
.student-register-simple-form label small{font-weight:700;color:#8e8798}
.student-register-simple-form input:not([type=file]),.student-register-simple-form select{height:46px;border-radius:13px;background:#fff}
.student-photo-field{padding:13px;border:1px dashed #d6c9f0;border-radius:15px;background:#fbfaff}
.student-photo-upload{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:11px;background:#fff;border:1px solid #ebe5f5}
.student-photo-upload>span{font-size:20px}
.student-photo-upload input{width:100%;font-size:12px}
.student-photo-field .help{display:block;margin-top:7px;color:#8a8295;font-size:10px;line-height:1.45}
.student-register-submit{margin-top:4px;height:48px;border-radius:14px;font-weight:900}
.student-register-class-confirm{margin-bottom:18px;border-radius:14px;background:#f3fbff;border-color:#d3edf5}
.student-register-login-link{margin-top:18px}
.home-student-register-card{border-color:#d9cdf8;background:linear-gradient(180deg,#fff,#faf8ff)}
@media(max-width:620px){
 .student-register-compact-page{padding:18px 10px 40px}
 .student-register-compact-card{padding:20px 16px;border-radius:19px}
 .student-register-mini-icon{width:42px;height:42px;flex-basis:42px;border-radius:13px}
 .student-register-mini-head{gap:11px;margin-bottom:18px}
 .student-register-class-confirm{grid-template-columns:auto 1fr;gap:10px}
 .student-register-class-confirm>a{grid-column:2;justify-self:start}
}


/* Digitera V4.18.2 — clean student registration; prevent oversized SVG */
.student-register-clean-head{display:block!important;margin-bottom:20px!important}
.student-register-clean-head>div{width:100%}
.student-register-clean-head .eyebrow{display:inline-flex;margin-bottom:7px}
.student-register-clean-head h1{margin:0 0 7px;font-size:clamp(24px,4vw,31px);line-height:1.14;color:#2d2340}
.student-register-clean-head p{max-width:540px;margin:0;color:#797185;font-size:13px;line-height:1.6}
.student-register-compact-card>.student-register-mini-head>.student-register-mini-icon{display:none!important}
.student-register-compact-card>.student-register-mini-head>svg,
.student-register-compact-card>.student-register-mini-head .student-register-mini-icon svg{display:none!important;width:0!important;height:0!important;max-width:0!important;max-height:0!important}
.student-register-compact-page svg{max-width:48px;max-height:48px}
.student-register-compact-page .id-card-head img{max-width:42px;max-height:42px}
.student-register-compact-card{overflow:hidden}
.home-register-simple-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#7047eb,#8b5cf6);color:#fff;font-size:31px;font-weight:500;line-height:1;box-shadow:0 10px 24px rgba(112,71,235,.2)}
@media(max-width:640px){
  .student-register-compact-page{padding:16px 10px 36px}
  .student-register-compact-shell{width:100%}
  .student-register-compact-card{padding:19px 15px;border-radius:18px}
  .student-register-clean-head h1{font-size:24px}
  .student-register-class-confirm{padding:11px}
  .home-register-simple-icon{width:48px;height:48px;border-radius:15px;font-size:26px}
}

/* Digitera V4.18.3 — metode pengumpulan Tugas/PR online & offline */
.assignment-delivery-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.assignment-delivery-option{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #ddd6fe;border-radius:16px;background:#faf8ff;cursor:pointer;transition:.18s ease}
.assignment-delivery-option:hover{border-color:#8b5cf6;box-shadow:0 8px 22px rgba(112,71,235,.10);transform:translateY(-1px)}
.assignment-delivery-option input{margin-top:3px;accent-color:#7047eb}
.assignment-delivery-option span{display:grid;gap:4px}.assignment-delivery-option strong{color:#2b2340}.assignment-delivery-option small{color:#736b80;line-height:1.45}
.assignment-offline-info{display:flex;gap:16px;align-items:flex-start;border:1px solid #f1d49a;background:linear-gradient(135deg,#fffaf0,#fff)}
.assignment-offline-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:#fff1c7;font-size:28px;flex:0 0 auto}
.assignment-offline-info h2,.assignment-latest-submission h2{margin:4px 0 7px}.assignment-offline-info p{margin:0 0 7px;line-height:1.65}.assignment-offline-info small{color:#7b6a51;line-height:1.5}
.assignment-offline-reminder{margin:14px 0;padding:14px 16px;border:1px solid #f4d08a;border-radius:14px;background:#fff8e7;color:#6b4f16}
.assignment-latest-submission{display:flex;align-items:center;justify-content:space-between;gap:16px;border-color:#c8eadf;background:linear-gradient(135deg,#f2fffa,#fff)}
.assignment-offline-roster{margin-top:18px}.assignment-delivery-summary{display:flex;gap:8px;flex-wrap:wrap}.assignment-delivery-summary span{padding:8px 11px;border-radius:999px;background:#f5f2ff;color:#4f3a9c;font-size:12px;font-weight:800}
.assignment-offline-table table{min-width:760px}.assignment-offline-table td,.assignment-offline-table th{vertical-align:middle}.table-subtext{display:block;margin-top:3px;color:#827a91}
.assignment-submission-section-head{margin-top:24px}.assignment-submission-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.assignment-status-panel{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:820px){.assignment-delivery-options{grid-template-columns:1fr}.assignment-status-panel{grid-template-columns:1fr}.assignment-latest-submission{align-items:flex-start;flex-direction:column}.assignment-offline-info{padding:16px}.assignment-offline-icon{width:46px;height:46px;font-size:23px}}
