:root{--ink:#eceff5;--muted:#98a0b3;--line:#26262d;--paper:#141417;--bg:#0a0a0d;--purple:#e23b3b;--purple-soft:#2b0f0f;--green:#2fbf8f;--red:#e5484d;--amber:#f0b429}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}.app-shell{min-height:100vh;display:flex}.sidebar{width:250px;background:#fff;border-right:1px solid var(--line);padding:24px 13px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{font:800 23px Manrope;letter-spacing:-1.4px;display:flex;align-items:center;gap:9px;padding:0 12px 27px}.brand-mark{background:var(--purple);color:#fff;width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:15px}.workspace{background:#f6f7ff;border:1px solid #eaebfa;border-radius:9px;height:42px;display:flex;align-items:center;gap:9px;padding:5px 8px;margin-bottom:24px;font-weight:600;font-size:12px}.chevron{margin-left:auto}.avatar{width:31px;height:31px;display:inline-grid;place-items:center;border-radius:50%;background:#e4e9ff;color:#4147a9;font-size:10px;font-weight:700}.avatar.tiny{width:25px;height:25px}.nav-label{font-size:10px;font-weight:700;letter-spacing:1px;color:#a1abc0;margin:14px 12px 8px}.nav-item{height:40px;color:#5e6b84;text-decoration:none;border-radius:8px;display:flex;align-items:center;gap:12px;padding:0 12px;font-weight:500;cursor:pointer;margin:2px 0}.nav-item span{font-size:18px;width:18px;text-align:center}.nav-item.active,.nav-item:hover{background:#f0f1ff;color:#5454cf}.nav-item b{font-size:10px;background:#e7e9f2;color:#768096;border-radius:8px;margin-left:auto;padding:2px 6px}.nav-item i{width:6px;height:6px;border-radius:50%;background:#e96472;margin-left:auto}.sidebar-bottom{margin-top:auto}.user-card{border-top:1px solid var(--line);margin:14px 5px 0;padding-top:14px;display:flex;align-items:center;gap:8px}.user-card div{flex:1}.user-card strong,.user-card small{display:block;font-size:11px}.user-card small{color:var(--muted);font-size:9px;margin-top:3px}main{width:calc(100% - 250px);margin-left:250px}header{height:72px;background:#fff;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between}.crumb{font-size:13px;color:#96a1b7}.crumb span{margin:0 10px}.header-actions{display:flex;align-items:center;gap:16px}.icon-button{border:0;background:transparent;color:#5c6980;font-size:20px;cursor:pointer;position:relative}.notification em{position:absolute;font:700 9px 'DM Sans';font-style:normal;background:var(--red);color:white;border:2px solid white;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;top:-7px;right:-9px}.mobile-menu{display:none;border:0;background:transparent;font-size:21px}.page{padding:35px 42px 60px;display:none;max-width:1530px;margin:auto}.page.active-page{display:block}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:27px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.1px;color:#8e9bb3;margin:0 0 8px}.page-heading h1{font:800 28px Manrope;margin:0;letter-spacing:-1px}.page-heading h1 span{color:#f5b443}.muted{color:var(--muted);margin:7px 0 0;font-size:13px}.btn{height:38px;border-radius:7px;border:1px solid transparent;padding:0 14px;font:600 12px 'DM Sans';cursor:pointer}.primary{background:var(--purple);color:#fff;box-shadow:0 3px 8px #d7d7ff}.secondary{background:#fff;border-color:#dfe5ee;color:#526078}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.stat-card,.panel{background:var(--paper);border:1px solid var(--line);border-radius:10px}.stat-card{padding:19px;display:flex;align-items:center;gap:12px;position:relative;min-height:122px}.stat-icon{width:39px;height:39px;border-radius:9px;display:grid;place-items:center;font-size:20px}.indigo{color:#5e5bd9;background:#ededff}.mint{color:#17a075;background:#e4f8f1}.blue{color:#4489dd;background:#eaf4ff}.amber{color:#db9227;background:#fff4dc}.stat-card small{color:var(--muted);font-size:11px}.stat-card h2{font:800 25px Manrope;margin:3px 0}.stat-card p{font-size:10px;margin:0}.up{color:#20a276}.dashboard-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:18px}.lower{margin-top:18px;grid-template-columns:1.25fr 1fr}.panel{padding:20px}.panel-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:15px}.panel-title h3{font:700 15px Manrope;margin:0}.panel-title p{font-size:11px;color:var(--muted);margin:4px 0}.text-btn{padding:0;border:0;background:transparent;color:#5554cb;font:600 11px 'DM Sans';cursor:pointer}.small{font-size:15px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:9px;letter-spacing:.7px;color:#98a3b5;padding:5px 8px 11px}td{border-top:1px solid #eef1f6;padding:12px 8px;color:#536078;vertical-align:middle}td strong{color:#34405b;font-weight:600;display:block}td small{display:block;color:#9aa5b7;font-size:10px;margin-top:3px}.person{display:flex;align-items:center;gap:8px}.person .avatar{width:27px;height:27px}.topic{font-weight:600;color:#35415c}.status{border-radius:20px;padding:4px 8px;font-size:9px;font-weight:700;white-space:nowrap}.completed{background:#e5f8f0;color:#198c68}.progress{background:#e9f3ff;color:#3b79c3}.pending{background:#fff5df;color:#bd8427}.not-completed{background:#ffeaeb;color:#c9515b}.paused{background:#fff0df;color:#ce812a}.active{background:#e5f8f0;color:#198c68}.pill-red{font:700 10px 'DM Sans';color:#d5535d;background:#ffeaec;padding:3px 7px;border-radius:10px}.attention{padding-bottom:8px}.attention-item{display:flex;gap:10px;align-items:center;border-top:1px solid #edf0f5;padding:13px 0}.attention-item:first-of-type{border:0}.attention-item div{flex:1}.attention-item strong{font-size:11px}.attention-item p{margin:4px 0 0;color:#8c98ab;font-size:10px}.dot{width:8px;height:8px;border-radius:50%}.dot.red{background:var(--red)}.dot.amber{background:var(--amber)}.dot.blue{background:#5799e5}.branch-chart{padding:3px 4px}.branch-row{display:grid;grid-template-columns:135px 1fr 38px;align-items:center;gap:15px;margin:20px 0}.branch-row strong,.branch-row small{display:block;font-size:11px}.branch-row small{font-size:10px;color:var(--muted);margin-top:4px}.bar,.big-progress{height:8px;background:#f0f2f7;border-radius:10px;overflow:hidden}.bar span,.big-progress span{height:100%;background:linear-gradient(90deg,#6260db,#8c8aec);border-radius:10px;display:block}.branch-row b{font-size:11px}.legend{border-top:1px solid #edf0f5;padding:14px 4px 0;font-size:10px;color:var(--muted);display:flex;gap:18px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.legend-dot.complete{background:#6867dd}.legend-dot.pending{background:#e5e8f2}.announcement-card{display:flex;gap:10px;padding:12px 0;border-top:1px solid #edf0f5}.announcement-card:first-of-type{border-top:0}.announce-icon{width:30px;height:30px;background:#efedff;color:#5b58d9;border-radius:8px;display:grid;place-items:center;font-size:16px;flex:none}.announce-icon.soft{background:#e9f6ff;color:#5593c8}.announcement-card h4{font-size:11px;margin:4px 0}.announcement-card p{margin:0;color:#929db0;font-size:10px}.priority{font-size:8px;color:#d25f65;background:#ffeaeb;padding:3px 6px;border-radius:4px;font-weight:700}.filters{display:flex;gap:10px;padding:13px;margin-bottom:17px}.filters input,.filters select,select{height:36px;border:1px solid #dfe5ef;border-radius:6px;background:#fff;color:#69758c;font:12px 'DM Sans';padding:0 10px}.filters input{width:300px;margin-right:auto}.filters select{width:140px}.course-grid,.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.course-card{padding:23px}.course-top{display:flex;justify-content:space-between;margin-bottom:20px}.course-icon{width:42px;height:42px;border-radius:10px;background:#ecf4ff;color:#4784d7;display:grid;place-items:center;font-size:20px}.course-icon.purple{background:#f1efff;color:#7067d8}.course-card h3{font:700 16px Manrope;margin:0}.course-card>p{color:var(--muted);font-size:12px;margin:6px 0 19px}.module-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;margin-bottom:17px}.module-list span{display:flex;justify-content:space-between;font-size:11px;padding:7px 0;color:#617087}.module-list b{font-weight:500;color:#9aa4b5}.wide{width:100%}.notice{background:#eff5ff;border:1px solid #dce9fa;border-radius:9px;padding:13px 16px;display:flex;gap:11px;margin-bottom:17px;color:#526e93}.notice span{font-size:18px}.notice strong{font-size:12px}.notice p{font-size:11px;margin:3px 0 0}.full-announcement{display:flex;align-items:start;gap:15px;margin-bottom:14px}.full-announcement>div{flex:1}.full-announcement h3{font:700 15px Manrope;margin:6px 0}.full-announcement p{color:#66738c;font-size:12px;margin:0 0 10px;line-height:1.5}.full-announcement small{color:#9aa4b4;font-size:10px}.report-grid{grid-template-columns:repeat(3,1fr)}.report-card>span{font-size:22px;color:#605ee0}.report-card h3{font:700 15px Manrope}.report-card p{color:var(--muted);font-size:12px;line-height:1.5;margin-bottom:22px}.big-progress{margin:18px 0 9px}.course-card>b{font-size:11px}.empty{text-align:center;padding:60px}.empty>span{font-size:30px;color:#6564da}.empty h3{font:700 17px Manrope;margin:12px 0 6px}.empty p{color:var(--muted);font-size:12px;margin:0 0 18px}.modal-backdrop{display:none;position:fixed;inset:0;background:#18213a66;z-index:5;align-items:center;justify-content:center;padding:20px}.modal-backdrop.show{display:flex}.modal{background:#fff;border-radius:12px;width:min(500px,100%);padding:26px;position:relative;box-shadow:0 15px 40px #151d3444}.close{border:0;background:none;position:absolute;right:16px;top:10px;font-size:24px;color:#6c768a;cursor:pointer}.modal h2{font:700 20px Manrope;margin:0 0 8px}.modal p{color:var(--muted);font-size:12px;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.form-grid label{font-size:10px;color:#70809a;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;height:36px;border:1px solid #dfe5ed;border-radius:6px;margin-top:6px;padding:0 9px;font:12px 'DM Sans'}.form-grid textarea{height:70px;padding-top:8px;resize:none}.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px}.toast{position:fixed;right:30px;bottom:25px;transform:translateY(90px);background:#22304c;color:white;padding:12px 18px;border-radius:8px;font-size:12px;transition:.25s;box-shadow:0 8px 18px #1d274233}.toast.show{transform:translateY(0)}@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.sidebar{width:220px}main{margin-left:220px;width:calc(100% - 220px)}}@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:.25s;z-index:4;width:250px}.sidebar.open{transform:none}main{margin:0;width:100%}header{padding:0 20px}.mobile-menu{display:block}.page{padding:25px 18px}.page-heading{align-items:start;gap:16px}.page-heading h1{font-size:24px}.stat-grid,.course-grid,.report-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters input,.filters select{width:100%;margin:0}.dashboard-grid.lower{grid-template-columns:1fr}.table-wrap{overflow:auto}.activity-panel{overflow:hidden}.full-announcement{flex-wrap:wrap}.full-announcement .text-btn{margin-left:45px}.header-actions .icon-button:first-child{display:none}}
.progress-cell{display:flex;align-items:center;gap:7px;white-space:nowrap}.mini-progress{display:inline-block;width:58px;height:6px;border-radius:5px;background:#edf0f5;overflow:hidden}.mini-progress i{display:block;height:100%;background:#6462db;border-radius:5px}.profile-course>strong{font-size:13px}.profile-course>span{float:right;font-size:11px;color:#5c5bd3;font-weight:700}.topic-progress{border-top:1px solid var(--line);margin-top:15px;padding-top:8px;display:grid;gap:8px;font-size:11px;color:#627088}.topic-progress span:nth-child(-n+2){color:#29956f}.topic-progress button{float:right}.hidden-role{display:none!important}
.status.in-progress{background:#e9f3ff;color:#3b79c3}
.status.not-started{background:#eef1f5;color:#7c879a}
.status.inactive{background:#eef1f5;color:#7c879a}
.mini-progress.wide{width:100%}
.course-progress{display:flex;align-items:center;gap:9px;margin:0 0 15px}
.course-progress small{font-size:10px;color:var(--muted);white-space:nowrap}
.card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:15px}
.danger-text{color:#d5535d}
.btn.danger-btn{background:var(--red);color:#fff;box-shadow:0 3px 8px #ffd7da}
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.staff-card{display:flex;flex-direction:column;gap:14px}
.staff-card .person{justify-content:space-between}
.avatar.lg{width:34px;height:34px;font-size:11px}
.staff-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted)}
.sheet-row{display:flex;align-items:center;gap:16px;margin-bottom:13px;padding:16px 20px}
.sheet-row .person{flex:1}
.sheet-mid{width:230px}
.sheet-mid strong,.sheet-mid small{display:block;font-size:11px}
.sheet-mid small{color:var(--muted);margin-top:3px}
.sheet-actions{display:flex;gap:8px;margin-left:auto;padding-left:10px}
.sheet-activity{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:11px 13px;margin:9px 0}
.sheet-activity div{flex:1}
.sheet-activity strong,.sheet-activity small{display:block}
.sheet-activity small{font-size:10px;color:var(--muted);margin-top:3px}
.sheet-activity .dur{width:72px;text-align:right;color:var(--muted);font-size:10px;margin:0}
.submitted-note{background:#e5f8f0;color:#198c68;font-size:12px;font-weight:600;padding:11px 14px;border-radius:8px;margin:12px 0}
.course-head-modal{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:14px}
.course-head-modal h2{margin:0 0 4px}
.course-head-modal p{margin:0}
.course-head-modal .status{margin-top:4px}
.modal-modules{max-height:310px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:13px;margin:16px 0}
.course-module{background:#f7f9fc;border-radius:8px;padding:11px 13px;margin-bottom:10px}
.course-module:last-child{margin-bottom:0}
.course-module>strong{font-size:12px;display:flex;justify-content:space-between}
.module-count{color:var(--muted);font-weight:600;font-size:10px}
.topic-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.chip{border:1px solid #e0e5ee;background:#fff;color:#5e6b84;border-radius:16px;font:600 10px 'DM Sans';padding:5px 10px;cursor:pointer}
.chip:hover{border-color:#b9c0cf}
.chip.done{background:#e5f8f0;border-color:#bfe9d9;color:#198c68}
.chip.doing{background:#fff5df;border-color:#f2ddb3;color:#bd8427}
.add-topic{margin:14px 0 6px}
.add-topic>button{margin-top:16px;height:36px}
.empty-cell{text-align:center;color:var(--muted);padding:26px 8px}
.announce-header{display:flex;gap:12px;margin-bottom:14px}
.announce-header .announce-icon{margin-top:2px}
.announce-header h2{margin:0 0 4px}
.announce-header p{margin:0}
.detail-block{display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:16px 0;font-size:12px}
.detail-note{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:10px 0;font-size:12px;color:#536078}
.detail-note b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#98a3b5;margin-bottom:5px}
.detail-note.warn{border-color:#ffd7da;background:#fff7f7}
.detail-note.warn b{color:#d5535d}
.pause-box{background:#fff5df;border:1px solid #f2ddb3;border-radius:8px;padding:12px 14px;margin:16px 0;font-size:12px}
.pause-box strong{color:#bd8427}
.pause-box p{margin:6px 0 12px;color:#7c6a3f}
.settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.settings-actions .panel-title{margin-bottom:0}
@media(max-width:720px){.sheet-row{flex-wrap:wrap}.sheet-mid{width:auto}.sheet-actions{margin-left:auto;padding-left:0}.settings-actions{grid-template-columns:1fr}}
.login-screen{position:fixed;inset:0;background:linear-gradient(160deg,#f6f7ff,#eaf0ff 60%,#f2f6ff);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}.login-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 30px 26px;width:min(390px,100%);box-shadow:0 24px 60px rgba(31,41,84,.14)}.login-card h1{font:800 26px Manrope;letter-spacing:-.6px;margin:0;text-align:center}.login-card label{display:block;font-size:11px;font-weight:700;color:#5e6b84}.login-card input{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font:500 14px 'DM Sans';width:100%;box-sizing:border-box;outline:none;background:#fbfcff}.login-card input:focus{border-color:#9a97ef;background:#fff;box-shadow:0 0 0 3px #ededff}.btn.full{width:100%}.login-error{color:var(--red);font-size:12px;font-weight:600;min-height:16px;margin:8px 2px 0}.chip{display:inline-block;border:1px solid var(--line);background:#f6f7ff;color:#5454cf;font:600 11px 'DM Sans';border-radius:999px;padding:5px 12px;margin:2px 3px 2px 0;cursor:pointer}.chip:hover{background:#ebeaff}
.sheet-add{margin-bottom:16px}.sheet-add .btn{align-self:end}
/* ── Black & red theme ── */
body{background:var(--bg);color:var(--ink)}
.sidebar{background:#121215;border-right:1px solid #222228}
.brand-mark{background:var(--red)}
.workspace{background:#1b1b20;border:1px solid #2e2e36}
.workspace .avatar.tiny{background:#2b0f0f;color:#ff8f8f}
.avatar{background:#2b0f0f;color:#ff8f8f}
.nav-label{color:#7c8498}
.nav-item{color:#aeb6c8}
.nav-item.active,.nav-item:hover{background:#2b0f0f;color:#ff5b5b}
.nav-item b{background:#232329;color:#98a0b3}
.user-card{border-top:1px solid #222228}
header{background:#121215;border-bottom:1px solid #222228}
.crumb{color:#8b94a8}
.icon-button{color:#aeb6c8}
.notification em{border-color:#141417}
.page-heading h1 span{color:#ff5b5b}
.eyebrow{color:#8b94a8}
.panel,.stat-card{background:#141417;border-color:#26262d}
.btn.primary{background:var(--red);box-shadow:0 3px 10px rgba(229,72,77,.35)}
.btn.secondary{background:#1c1c21;border-color:#33333b;color:#cfd3dd}
.btn.primary:hover,.btn.secondary:hover{filter:brightness(1.12)}
.stat-icon.indigo{color:#ff5b5b;background:#2b0f0f}
.stat-icon.mint{color:#3fd0a0;background:#0f2a20}
.stat-icon.blue{color:#6fb2f5;background:#1a2433}
.stat-icon.amber{color:#f0b429;background:#2b2208}
th{color:#8b94a8}
td{border-top:1px solid #232329;color:#b8bfcc}
td strong{color:#eceff5}
td small{color:#8b94a8}
.topic{color:#d6dae3}
.completed,.active{background:#0f2a20;color:#46d6a2}
.progress,.in-progress{background:#1a2433;color:#6fb2f5}
.pending{background:#2b2208;color:#f0b429}
.not-completed{background:#331010;color:#ff5b5b}
.paused{background:#2b1f0a;color:#f0b429}
.not-started,.inactive{background:#232329;color:#98a0b3}
.pill-red{color:#ff6b6b;background:#331010}
.attention-item{border-top:1px solid #232329}
.attention-item p{color:#8b94a8}
.bar,.big-progress{background:#232329}
.bar span,.big-progress span{background:linear-gradient(90deg,#e5484d,#ff8a8a)}
.mini-progress{background:#232329}
.mini-progress i{background:var(--red)}
.legend{border-top:1px solid #232329}
.legend-dot.complete{background:var(--red)}
.legend-dot.pending{background:#3a3a42}
.announcement-card{border-top:1px solid #232329}
.announcement-card p{color:#8b94a8}
.announce-icon{background:#2b0f0f;color:#ff7b7b}
.announce-icon.soft{background:#1a2433;color:#7fb6f5}
.priority{color:#ff6b6b;background:#331010}
.filters input,.filters select,select{background:#1c1c21;border-color:#33333b;color:#c3c9d6}
.course-icon{background:#1a2433;color:#6fb2f5}
.course-icon.purple{background:#2b0f0f;color:#ff7b7b}
.module-list span{color:#aeb6c8}
.module-list b{color:#8b94a8}
.notice{background:#1c1212;border-color:#3a1c1d;color:#e6a7aa}
.full-announcement p{color:#aeb6c8}
.full-announcement small{color:#8b94a8}
.report-card>span{color:#ff5b5b}
.empty>span{color:#ff8f8f}
.text-btn{color:#ff6b6b}
.modal-backdrop{background:rgba(0,0,0,.68)}
.modal{background:#161619;border:1px solid #2a2a31;box-shadow:0 15px 40px rgba(0,0,0,.5)}
.close{color:#98a0b3}
.form-grid label{color:#98a0b3}
.form-grid input,.form-grid select,.form-grid textarea{background:#1c1c21;border-color:#33333b;color:#dfe3ec}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#e5484d;outline:none}
.toast{background:var(--red);box-shadow:0 8px 18px rgba(0,0,0,.5)}
.danger-text{color:#ff5b5b}
.btn.danger-btn{background:var(--red);box-shadow:0 3px 10px rgba(229,72,77,.35)}
.profile-course>span{color:#ff6b6b}
.topic-progress{color:#98a0b3;border-top-color:#222228}
.topic-progress span:nth-child(-n+2){color:#46d6a2}
.course-module{background:#1c1c21}
.chip{background:#2b0f0f;border:1px solid #4a1c1c;color:#ff8f8f}
.chip:hover{background:#3a1212}
.topic-chips .chip{background:#1c1c21;border-color:#33333b;color:#dfe3ec}
.topic-chips .chip:hover{border-color:#55555f}
.chip.done{background:#0f2a20;border-color:#1f5c45;color:#46d6a2}
.chip.doing{background:#2b2208;border-color:#6b541f;color:#f0b429}
.empty-cell{color:#98a0b3}
.detail-block{border-color:#26262d}
.detail-note{border-color:#26262d;color:#b8bfcc}
.detail-note b{color:#8b94a8}
.detail-note.warn{border-color:#4a1c1f;background:#241012}
.detail-note.warn b{color:#ff6b6b}
.pause-box{background:#2b2208;border-color:#6b541f}
.pause-box strong{color:#f0b429}
.pause-box p{color:#c9b26e}
.submitted-note{background:#0f2a20;color:#46d6a2}
.sheet-activity{border-color:#26262d}
.login-screen{background:radial-gradient(1200px 600px at 50% -10%,#241416,#0a0a0d 65%)}
.login-card{background:#161619;border-color:#2a2a31;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.login-card label{color:#98a0b3}
.login-card input{background:#1c1c21;border-color:#33333b;color:#dfe3ec}
.login-card input:focus{border-color:#e5484d;background:#1c1c21;box-shadow:0 0 0 3px rgba(229,72,77,.25)}

/* students-by-branch panel */
.branch-chart .branch-block{margin:4px 0 14px}
.branch-head{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:14px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:4px}
.branch-head strong{font-size:13px}
.branch-head .bar{height:6px;border-radius:5px;overflow:hidden}
.branch-head .bar span{display:block;height:100%;background:linear-gradient(90deg,#e5484d,#ff8a8a)}
.branch-head .b-avg{color:var(--muted);font-size:11px;white-space:nowrap}
.branch-students{display:grid;gap:2px}
.b-student{display:grid;grid-template-columns:auto 1fr 96px auto;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:none;color:var(--ink);padding:8px 6px;border-radius:8px;cursor:pointer;font:inherit}
.b-student:hover{background:#1b1b20}
.b-student .bs-name strong{display:block;font-size:13px}
.b-student .bs-name small{display:block;color:var(--muted);font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-student .bs-prog{display:flex;align-items:center;gap:8px}
.b-student .bs-prog b{font-size:11px;min-width:32px;text-align:right}
.b-student .status{font-size:9px;padding:3px 7px}
/* attendance */
.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.date-pick{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);font-weight:600}
.date-pick input{background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:9px 12px;border-radius:9px;font:inherit}
#attendanceWrap{display:grid;gap:16px}
.att-list{display:grid;gap:8px}
.att-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.att-row .person small{color:var(--muted)}
.att-toggle{display:flex;gap:6px}
.att-opt{border:1px solid var(--line);background:transparent;color:var(--muted);padding:8px 18px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer}
.att-opt.on.present{background:#2f8f6d;border-color:#2f8f6d;color:#fff}
.att-opt.on.absent{background:var(--red);border-color:var(--red);color:#fff}
/* print / PDF */
#printArea{display:none}
@media print{
  body *{visibility:hidden !important}
  #printArea,#printArea *{visibility:visible !important}
  #printArea{display:block !important;position:absolute;left:0;top:0;width:100%;background:#fff;color:#000;padding:0 20px;font:12px 'DM Sans',Arial,sans-serif}
  #printArea .print-brand{font:800 14px Manrope;letter-spacing:-.5px;color:#555;margin-top:18px}
  #printArea h1{font:800 22px Manrope;margin:10px 0 4px;color:#111}
  #printArea .print-sub{margin:0;color:#333;font-size:13px}
  #printArea .print-meta{margin:2px 0 12px;color:#888;font-size:10px;border-bottom:2px solid #111;padding-bottom:8px}
  #printArea .print-summary{margin:4px 0 6px;font-size:12px;color:#111}
  #printArea table{border-collapse:collapse;width:100%;margin-top:4px}
  #printArea th,#printArea td{border:1px solid #bbb;padding:6px 8px;text-align:left;font-size:11px;color:#111}
  #printArea th{background:#eee;text-transform:uppercase;font-size:9px;letter-spacing:.5px}
  #printArea tr{page-break-inside:avoid}
  #printArea .tp-completed{color:#0a7a52;font-weight:700}
  #printArea .tp-in-progress{color:#b45309;font-weight:700}
  #printArea .tp-not-completed{color:#b91c1c;font-weight:700}
}
/* logo */
.brand-img{width:27px;height:27px;border-radius:8px;object-fit:cover;background:#000}
.login-card .brand-img{width:44px;height:44px;border-radius:12px}
/* staff day + tracking */
.btn.big{height:44px;padding:0 18px;font-size:13px}
#daySummary .panel-title{margin-bottom:6px}
.day-att-state{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.day-att-state>div{background:#0f0f12;border:1px solid #26262d;border-radius:9px;padding:12px}
.day-att-state small{display:block;color:#8b94a8;font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.day-att-state b{font:800 18px Manrope;color:#eceff5;display:block;margin-top:5px}
.day-complete-note{border:1px solid #0f3b2a;background:#0f2a20;color:#3fd0a0;border-radius:8px;padding:9px 12px;font-size:11px;font-weight:700}
.day-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:#8b94a8;border-top:1px solid #26262d;padding-top:12px}
.day-log{display:flex;gap:12px;align-items:start;border-top:1px solid #232329;padding:12px 2px}
.day-log:first-child{border-top:0}
.dl-time{font:700 11px Manrope;color:#ff8f8f;min-width:62px;padding-top:2px}
.dl-body{flex:1}
.dl-body strong{display:block;color:#eceff5;font-size:12px;line-height:1.45;font-weight:600}
.dl-body small{color:#8b94a8;font-size:10px}
.day-log.edited .dl-time{color:#f0b429}
.empty-day{text-align:center;padding:34px 10px}
.empty-day p{font-size:13px;margin:0 0 4px;color:#eceff5}
.filters.mini{gap:8px;padding:0;margin:0}
.filters.mini input,.filters.mini select{width:auto;height:32px}
.green{color:#3fd0a0;background:#0f2a20}
.miss-row{display:flex;gap:10px;align-items:center;border-top:1px solid #232329;padding:12px 0}
.miss-row:first-child{border-top:0}
.miss-row div{flex:1}
.miss-row strong{font-size:11px;color:#f0b429}
.miss-row p{margin:3px 0 0;color:#8b94a8;font-size:10px}
.day-read{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;flex:1}
.day-read span{font-size:10px;color:#8b94a8}
.day-read b{display:block;color:#eceff5;font:800 13px Manrope;margin-top:3px}
#printArea .print-acts{margin-top:4px}
#printArea .print-acts p{margin:6px 0;font-size:11px;color:#111}
.pager{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:12px 2px 2px}.pager[hidden]{display:none}.pager .pager-info{margin-right:auto;font-size:12px;color:#8b94a8}.btn.mini{padding:6px 12px;font-size:12px}.btn:disabled{opacity:.45;pointer-events:none}
