@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Poppins:wght@600;700;800&display=swap";:root{--bg:#eef2ff;--card:#fff;--primary:#6366f1;--primary-dark:#4f46e5;--accent:#ec4899;--accent2:#06b6d4;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--text:#1e1b3a;--muted:#6b7280;--border:#e5e7f0;--radius:16px;--grad-primary:linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #ec4899 100%);--grad-cool:linear-gradient(135deg, #06b6d4 0%, #6366f1 100%);--shadow-sm:0 1px 3px #1e1b3a14;--shadow:0 8px 24px #6366f11a;--shadow-lg:0 20px 50px #4f46e52e}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);background-image:radial-gradient(1200px 500px at 100% -10%,#ec48991f,#0000 60%),radial-gradient(1000px 500px at -10% 10%,#06b6d41f,#0000 55%),radial-gradient(900px 600px at 50% 120%,#8b5cf61f,#0000 60%);background-attachment:fixed;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .4rem;font-family:Poppins,Inter,sans-serif}.m0{margin:0}.mt{margin-top:1rem}.muted{color:var(--muted)}.tiny{font-size:.78rem}.pre{white-space:pre-wrap}.center{text-align:center;padding:3rem}.btn{cursor:pointer;color:var(--text);background:#eef0f7;border:1px solid #0000;border-radius:10px;padding:.55rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:transform .12s,box-shadow .15s,filter .15s}.btn:hover{filter:brightness(1.02);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-sm{padding:.35rem .7rem;font-size:.8rem}.btn-primary{background:var(--grad-primary);color:#fff;background-size:150% 150%;box-shadow:0 6px 16px #6366f159}.btn-primary:hover{box-shadow:0 10px 22px #ec489959}.btn-danger{color:var(--danger);background:#fee2e2}.btn-danger:hover{background:#fecaca}.btn-ghost{border-color:var(--border);color:var(--primary-dark);background:#ffffffb3}.btn-ghost:hover{border-color:var(--primary);background:#fff}.btn-group{gap:.4rem;display:flex}.btn-icon{min-width:32px;padding:.3rem .5rem;font-size:.95rem;line-height:1.1}.btn-group.btn-group-icons{flex-wrap:wrap;gap:.25rem}.login-page{background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 45%,#ec4899 100%);place-items:center;min-height:100vh;padding:1rem;display:grid;position:relative;overflow:hidden}.login-page:before,.login-page:after{content:"";filter:blur(10px);opacity:.5;border-radius:50%;position:absolute}.login-page:before{background:radial-gradient(circle,#06b6d4,#0000 70%);width:320px;height:320px;top:-80px;left:-60px}.login-page:after{background:radial-gradient(circle,#f59e0b,#0000 70%);width:360px;height:360px;bottom:-100px;right:-80px}.login-card{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;max-width:370px;box-shadow:var(--shadow-lg);text-align:center;background:#fffffff2;border:1px solid #fff9;border-radius:22px;padding:2.2rem;position:relative}.login-logo{justify-content:center;margin-bottom:.4rem;display:flex}.login-logo svg{filter:drop-shadow(0 6px 14px #6366f173)}.login-card h1{background:var(--grad-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.login-card label{text-align:left;margin:.7rem 0 .25rem;font-size:.82rem;font-weight:600;display:block}.login-card input{width:100%}.login-card .btn{width:100%;margin-top:1.2rem}.hint{color:var(--muted);background:linear-gradient(135deg,#eef2ff,#fce7f3);border-radius:12px;margin-top:1.2rem;padding:.7rem;font-size:.75rem}.topbar{background:var(--grad-primary);z-index:10;justify-content:space-between;align-items:center;padding:.8rem 1.4rem;display:flex;position:sticky;top:0;box-shadow:0 6px 20px #6366f147}.brand{color:#fff;text-shadow:0 1px 8px #00000026;align-items:center;gap:.5rem;font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:800;display:flex}.brand .logo{filter:drop-shadow(0 2px 6px #00000040);vertical-align:middle}.topbar-right{align-items:center;gap:.8rem;display:flex}.topbar .btn-ghost{color:#fff;background:#ffffff29;border-color:#ffffff59}.topbar .btn-ghost:hover{background:#ffffff47}.user-chip,.user-chip-btn{color:#fff;font-size:.85rem}.year-badge{color:#fff;white-space:nowrap;background:#ffffff29;border:1px solid #ffffff59;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;font-weight:700}.topbar .user-chip-btn{color:#fff;cursor:pointer;text-shadow:0 1px 2px #00000040;background:0 0;border:none;padding:.35rem .4rem;font-weight:700}.topbar .user-chip-btn:hover{text-decoration:underline}.content{max-width:1080px;margin:0 auto;padding:1.6rem 1.2rem 4rem}.page-title{background:var(--grad-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:1.7rem}.welcome-banner{box-shadow:var(--shadow);background:linear-gradient(135deg,#6366f11a,#ec48990f);border:1px solid #6366f12e;border-radius:16px;align-items:center;gap:1.1rem;margin-bottom:1rem;padding:1.1rem 1.3rem;display:flex}@media (width<=760px){body.hide-welcome-banner .welcome-banner{display:none}}.welcome-photo{background:var(--grad-primary);color:#fff;border-radius:50%;flex:none;place-items:center;width:60px;height:60px;font-size:1.5rem;font-weight:700;display:grid;overflow:hidden;box-shadow:0 0 0 3px #ffffffbf,0 6px 16px #6366f14d}.welcome-photo img{object-fit:cover;width:100%;height:100%}.welcome-text{flex:auto;min-width:0}.welcome-title{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-family:Poppins,sans-serif;font-size:1.2rem;font-weight:700;display:flex}.welcome-role{letter-spacing:.02em;text-transform:uppercase;color:#fff;background:var(--grad-primary);border-radius:999px;padding:.18rem .65rem;font-size:.7rem;font-weight:700}.welcome-info{flex-wrap:wrap;gap:.45rem;margin-top:.55rem;font-size:.8rem;display:flex}.welcome-chip{white-space:nowrap;background:#ffffffbf;border:1px solid #6366f12e;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .7rem;display:inline-flex}.welcome-chip .muted{font-weight:600}.welcome-banner .btn{flex:none;align-self:flex-start}.today-lessons{background:linear-gradient(135deg,#06b6d41a,#3b82f612);border:1px solid #3b82f633;border-radius:16px;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:0 0 1rem;padding:.7rem 1rem;display:flex}.today-lessons-head{color:#0e7490;font-size:.9rem;font-weight:700}.today-lessons-list{flex-wrap:wrap;gap:.45rem;display:flex}.today-lesson-chip{white-space:nowrap;background:#fff;border:1px solid #3b82f638;border-radius:999px;padding:.22rem .75rem;font-size:.8rem}.tabs{flex-wrap:nowrap;gap:.4rem;margin:1rem 0 .35rem;display:flex}.tab{text-align:center;white-space:nowrap;text-overflow:ellipsis;border:1px solid var(--border);cursor:pointer;min-width:0;color:var(--muted);background:#ffffffb3;border-radius:999px;flex:auto;padding:.5rem .75rem;font-size:.8rem;font-weight:600;transition:all .15s;overflow:hidden}.tab:hover{color:var(--primary-dark);border-color:var(--primary)}.tab.active{color:#fff;background:var(--grad-primary);border-color:#0000;box-shadow:0 6px 14px #6366f14d}.admin-tabs-top{flex-wrap:wrap;gap:.5rem;margin:1rem 0 .5rem;display:flex}.tab-top{flex:none;align-items:center;gap:.4rem;padding:.55rem 1.2rem;display:inline-flex}.admin-tabs{flex-wrap:nowrap;align-items:stretch;gap:.6rem;margin:0 0 .75rem;padding-bottom:.35rem;display:flex;overflow-x:auto}.tab-group{border:1px solid var(--border);background:#ffffff73;border-radius:14px;flex-direction:column;flex:none;gap:.3rem;padding:.35rem .6rem .4rem;display:flex}.tab-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-left:.2rem;font-size:.62rem;font-weight:700}.tab-group-items{flex-wrap:nowrap;gap:.35rem;display:flex}.admin-tabs .tab{flex:none;align-items:center;gap:.35rem;display:inline-flex}.tab-ico{font-size:.9rem;line-height:1}.class-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.class-tabs-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.class-tabs-bar .class-tabs{flex:auto;margin-bottom:0}.schedule-btn{flex:none}.class-tab{border:1px solid var(--border);cursor:pointer;background:#fffc;border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .15s}.class-tab:hover{border-color:var(--accent2)}.class-tab.active{background:var(--grad-cool);color:#fff;border-color:#0000;box-shadow:0 6px 14px #06b6d44d}.subject-tabs{flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .6rem;display:flex}.subject-tab{border:1px dashed var(--border);cursor:pointer;color:var(--primary-dark);background:#ffffffb3;border-radius:10px;padding:.35rem .85rem;font-size:.82rem;font-weight:600;transition:all .15s}.subject-tab:hover{border-color:var(--accent)}.subject-tab.active{background:var(--grad-primary);color:#fff;border-style:solid;border-color:#0000;box-shadow:0 5px 12px #6366f14d}.subject-select-wrap{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0 .6rem;display:flex}.subject-select-label{color:var(--primary-dark);font-size:.8rem;font-weight:600}.subject-select{border:1px solid var(--border);background:var(--card);color:var(--primary-dark);cursor:pointer;border-radius:10px;min-width:180px;padding:.4rem .7rem;font-size:.85rem;font-weight:600}.subject-box{border-top:1px dashed var(--border);padding-top:.8rem}.mt-sm{margin-top:.5rem}.subject-row{align-items:center;gap:.5rem;display:flex}.subject-row input{flex:2 1 0;min-width:0}.subject-row select{flex:1 1 0;min-width:0}.subject-block{border:1px solid var(--border);border-radius:var(--radius);background:#00000004;padding:.6rem}.slot-list{border-left:2px solid var(--border);flex-direction:column;gap:.4rem;margin-top:.5rem;padding-left:.4rem;display:flex}.slot-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.slot-row select,.slot-row input{flex:1 1 0;min-width:90px}.mapel-picker{border:1px solid var(--border);border-radius:var(--radius);background:#00000004;flex-wrap:wrap;gap:.4rem .9rem;padding:.5rem .6rem;display:flex}.mapel-check{cursor:pointer;align-items:center;gap:.35rem;margin:0;font-size:.9rem;display:flex}.mapel-check input{width:auto;margin:0}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.3rem}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.grid-users{grid-template-columns:minmax(240px,320px) 1fr;align-items:start;gap:1rem;display:grid}.users-layout{flex-direction:column;align-items:stretch;gap:.3rem;display:flex}.users-form-card{width:100%;max-width:560px}.modal-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:.5rem;display:flex}.alamat-group{border:1px solid var(--border,#d9dde3);border-radius:8px;margin:.4rem 0;padding:.5rem .75rem .75rem}.alamat-group>legend{padding:0 .35rem;font-size:.85rem;font-weight:600}.alamat-detail-head{background:#f2f4f7;font-weight:600}.sched-subjects{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.35rem;padding:.5rem;display:flex}.sched-subject-row{border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .4rem;display:flex}.sched-subject-row.on{background:#eff6ff}.sched-subject-name{cursor:pointer;flex:auto;align-items:center;gap:.45rem;min-width:120px;margin:0;font-size:.86rem;font-weight:600;display:flex}.sched-subject-name input{width:auto}.sched-times{flex:none;align-items:center;gap:.3rem;display:flex}.sched-times input{width:auto;min-width:96px}.sched-dash{color:var(--muted)}.row-2{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.stack>*+*{margin-top:.6rem}.row-between{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.filter-row{flex-wrap:wrap;gap:.8rem;display:flex}.filter-row>div{flex-direction:column;gap:.25rem;min-width:180px;display:flex}.class-toggle{text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;flex:1;align-items:flex-start;gap:.6rem;min-width:0;margin:0;padding:0;display:flex}.class-toggle .chevron{color:var(--muted,#64748b);margin-top:.15rem;font-size:.9rem;line-height:1.4;transition:transform .15s;display:inline-block}.class-toggle .chevron.open{transform:rotate(90deg)}.class-toggle:hover h3{text-decoration:underline}.jadwal-card{border-left:4px solid #0000;border-radius:14px;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative}.jadwal-card:hover{border-left-color:var(--primary,#4f46e5);transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.jadwal-card.open{border-left-color:var(--primary,#4f46e5);box-shadow:0 6px 18px #0f172a14}.jadwal-avatar{color:#fff;background:linear-gradient(135deg, var(--primary,#4f46e5), #7c3aed);letter-spacing:-.5px;border-radius:12px;flex:none;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;font-size:1.05rem;font-weight:800;display:inline-flex;box-shadow:0 4px 10px #4f46e559}.jadwal-head-text{flex-direction:column;gap:.3rem;min-width:0;display:flex}.jadwal-meta{flex-wrap:wrap;gap:.4rem;margin-top:.15rem;display:flex}.jadwal-chip{color:#334155;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .6rem;font-size:.78rem;font-weight:600;display:inline-flex}.jadwal-chip.cur{color:#4338ca;background:color-mix(in srgb, var(--primary,#4f46e5) 12%, #fff);border-color:color-mix(in srgb, var(--primary,#4f46e5) 30%, #fff)}.fase-section{flex-direction:column;gap:.6rem;display:flex}.fase-section+.fase-section{border-top:1px dashed var(--border,#e5e7eb);margin-top:.4rem;padding-top:.9rem}.fase-section-head{align-items:center;gap:.6rem;display:flex}.kelas-group{border-left:4px solid var(--primary,#4f46e5);border-radius:14px}.kelas-group-head{align-items:center}.kelas-group-title{align-items:center;gap:.7rem;min-width:0;display:flex}.rombel-list{flex-direction:column;gap:.4rem;margin-top:.7rem;display:flex}.rombel-row{background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.rombel-badge{color:#4338ca;background:color-mix(in srgb, var(--primary,#4f46e5) 14%, #fff);border-radius:8px;flex:none;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;font-weight:700;display:inline-flex}.rombel-name{color:#1e293b;font-weight:600}.rombel-count{margin-left:auto}.rombel-row.editing .rombel-edit-input,.rombel-edit-input{flex:1;min-width:0}.rombel-add-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.rombel-add-form input{flex:1;min-width:160px}@media (width<=760px){.grid-2,.grid-users,.row-2{grid-template-columns:1fr}.content{padding:1.1rem .85rem 3rem}.page-title{text-align:center;font-size:1.45rem}.topbar{flex-direction:column;align-items:stretch;gap:.55rem;padding:.7rem 1rem}.brand{justify-content:center;font-size:1.05rem}.topbar-right{flex-wrap:wrap;justify-content:center;gap:.4rem;width:100%}.year-badge{order:-1}.tabs{flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.85rem 0 .6rem}.tab{flex:0 auto;min-width:0;padding:.45rem .85rem;font-size:.8rem}.tabs-float{z-index:60;padding:.5rem .6rem calc(.5rem + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);-webkit-overflow-scrolling:touch;background:#fffffff5;flex-wrap:nowrap;justify-content:flex-start;gap:.4rem;margin:0;position:fixed;bottom:0;left:0;right:0;overflow-x:auto;box-shadow:0 -4px 18px #0f172a1f}.tabs-float .tab{flex:none}.content{padding-bottom:5.5rem}.class-tabs{justify-content:flex-start}.class-tab{padding:.3rem .7rem;font-size:.72rem}.subject-tab{padding:.25rem .6rem;font-size:.72rem}.card{padding:1rem}.card .table{white-space:nowrap;-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.modal{padding:1.1rem}.modal-overlay{grid-template-columns:minmax(0,1fr);padding:.6rem}.modal,.modal.modal-lg,.modal.modal-mapper{max-width:100%;overflow-x:hidden}.btn-group{flex-wrap:wrap}.btn-icon{min-width:40px;min-height:38px;padding:.4rem .55rem;font-size:1.08rem}.pertemuan-head{align-items:flex-start}.modal-head h3{font-size:1.02rem}.welcome-banner{padding:.9rem 1rem}.today-lessons{flex-direction:column;align-items:stretch;gap:.5rem}.today-lessons-list{width:100%}.today-lesson-chip{white-space:normal;overflow-wrap:anywhere}}@media (width<=480px){.login-card{padding:1.6rem 1.3rem}.page-title{font-size:1.3rem}.brand{font-size:1rem}.year-badge,.user-chip-btn{padding:.28rem .7rem;font-size:.75rem}.modal-head{gap:6px}.welcome-banner{text-align:center;flex-direction:column;align-items:center}.welcome-info,.welcome-title{justify-content:center}.welcome-banner .btn{align-self:center}}.form label{margin:.6rem 0 .25rem;font-size:.82rem;font-weight:600;display:block}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:.5rem .65rem;font-family:inherit;font-size:.9rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}.form .btn{margin-top:.9rem}.form-inline{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.form-inline input{flex:1;min-width:160px}.form-inline .btn{margin:0}.table{border-collapse:collapse;width:100%;font-size:.88rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.55rem .5rem}.table th{color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:.78rem}.table th.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.table th.th-sort:hover{color:var(--primary)}.assign-table{border-collapse:separate;border-spacing:0}.assign-table thead th{background:color-mix(in srgb, var(--primary) 7%, #fff);border-bottom:2px solid color-mix(in srgb, var(--primary) 25%, var(--border));z-index:1;position:sticky;top:0}.assign-table tbody tr{transition:background .15s}.assign-table tbody tr:nth-child(2n){background:color-mix(in srgb, var(--primary) 3%, #fff)}.assign-table tbody tr:hover{background:color-mix(in srgb, var(--primary) 9%, #fff)}.assign-table td{vertical-align:middle}.assign-table tbody tr.row-unplaced{box-shadow:inset 3px 0 0 0 color-mix(in srgb, var(--primary) 70%, transparent)}.assign-table tbody tr.row-placed{box-shadow:inset 3px 0 #10b981b3}.student-cell{align-items:center;gap:.6rem;display:flex}.student-name-wrap{flex-direction:column;gap:.1rem;display:flex}.student-name{color:var(--text,#0f172a);text-transform:none;font-weight:600}.placed-dot{font-size:.7rem;font-weight:600}.placed-dot.ok{color:#059669}.placed-dot.no{color:var(--primary)}.mono-cell{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.class-chip{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.class-chip.prev{background:color-mix(in srgb, var(--primary) 12%, #fff);border-color:color-mix(in srgb, var(--primary) 30%, #fff);color:color-mix(in srgb, var(--primary) 80%, #000)}.class-chip.last{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.assign-select.has-value{border-color:color-mix(in srgb, #10b981 45%, var(--border));background:#f1fbf7;font-weight:600}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table-wrap .table td{white-space:nowrap}.table-wrap .table th.cell-wide,.table-wrap .table td.cell-wide{white-space:normal;min-width:150px;max-width:220px}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.th-sort:hover,.th-sort.sorted{color:var(--primary-dark)}.table th.col-highlight{background:#6366f129}.table td.col-highlight{background:#6366f114}.badge{text-transform:uppercase;color:#334155;background:#e2e8f0;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.role-admin{color:#92400e;background:#fef3c7}.role-teacher{color:#1e40af;background:#dbeafe}.role-student{color:#166534;background:#dcfce7}.type-text{color:#3730a3;background:#e0e7ff}.type-image{color:#86198f;background:#fae8ff}.type-video{color:#9f1239;background:#ffe4e6}.type-presentation{color:#854d0e;background:#fef9c3}.type-document{color:#334155;background:#e2e8f0}.type-link{color:#115e59;background:#ccfbf1}.grade-badge{color:#166534;background:#dcfce7}.label-strong{margin-bottom:.4rem;font-size:.85rem;font-weight:700}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .7rem;font-size:.82rem;display:inline-flex}.chip input{width:auto}.chip-on{border-color:var(--primary);color:var(--primary-dark);background:#eff6ff}.period-picker{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.period-picker select{border:1px solid var(--border);background:var(--card);border-radius:8px;padding:.35rem .5rem;font-size:.9rem}@media (width<=760px){.period-picker{gap:.35rem;margin-bottom:.5rem}.period-picker label{font-size:.7rem}.period-picker select{border-radius:6px;padding:.2rem .4rem;font-size:.75rem}}.list-item{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem;display:flex}.list-item.column{flex-direction:column;align-items:stretch}.year-list{flex-direction:column;display:flex}.year-row{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.5rem .1rem;display:flex}.year-row:last-child{border-bottom:none}.year-name{min-width:90px}.year-actions{margin-left:auto}.material-img{border-radius:8px;max-width:100%;margin-top:.4rem}.video-embed-wrap{aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;max-width:640px;margin-top:.4rem;position:relative;overflow:hidden}.video-embed{border:0;width:100%;height:100%;position:absolute;inset:0}.material-img-wrap{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.material-img-thumb{object-fit:cover;cursor:zoom-in;border:1px solid var(--border);max-width:260px;max-height:180px;transition:filter .15s}.material-img-thumb:hover{filter:brightness(.92)}.lightbox-overlay{z-index:1000;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.lightbox-img{cursor:default;border-radius:8px;max-width:95vw;max-height:90vh;box-shadow:0 8px 40px #00000080}.lightbox-close{color:#111;cursor:pointer;z-index:1001;background:#ffffffe6;border:none;border-radius:50%;width:42px;height:42px;font-size:1.2rem;font-weight:700;position:fixed;top:1rem;right:1.2rem}.file-preview{margin:.4rem 0}.file-preview-img{border:1px solid var(--border);cursor:zoom-in;object-fit:cover;border-radius:8px;max-width:220px;max-height:220px;display:block}.file-preview-video{background:#000;border-radius:8px;width:360px;max-width:100%;max-height:260px}.file-preview-audio{width:320px;max-width:100%}.file-preview-name{word-break:break-word;margin-top:.2rem}.doc-frame{cursor:default;background:#fff;border:none;border-radius:8px;width:92vw;height:88vh;box-shadow:0 8px 40px #00000080}.material .badge{margin-right:.3rem}.material-summary{cursor:pointer;align-items:center;gap:.4rem;list-style:none;display:flex}.material-summary::-webkit-details-marker{display:none}.material-summary:before{content:"▸";color:#6366f1;flex:none;font-size:.85rem;transition:transform .15s}details[open]>.material-summary:before{transform:rotate(90deg)}.row-between.material-summary{justify-content:flex-start}.row-between.material-summary>b{flex-wrap:wrap;flex:auto;align-items:center;gap:.2rem;display:inline-flex}details.card.material:not([open]){box-shadow:none;margin-bottom:.4rem;padding:.5rem .85rem}.pertemuan-group>.material:not([open])+.material,.pertemuan-group>.card:not([open])+.card{margin-top:.35rem}details.material:not([open])>.material-summary,details.card.material:not([open])>.material-summary{font-size:.86rem}details.material:not([open])>.material-summary .badge{padding:.05rem .4rem;font-size:.68rem}.pertemuan-group+.pertemuan-group{margin-top:1rem}.materi-group+.materi-group{margin-top:1.4rem}.materi-group-head{border-left:4px solid var(--primary);background:linear-gradient(90deg,#6366f129,#6366f10a);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.7rem;padding:.45rem .7rem;display:flex}.materi-group-title{color:var(--primary-dark);font-size:.95rem;font-weight:800}.materi-group-actions{align-items:center;gap:.5rem;display:inline-flex}.materi-count{color:var(--primary-dark);background:#6366f126;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:700}.materi-group>.pertemuan-group,.materi-group>.list-item{margin-left:.5rem}.pertemuan-head{color:var(--primary-dark);border-left:3px solid var(--primary);background:#6366f114;border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.35rem .6rem;font-size:.9rem;font-weight:700;display:flex}.pertemuan-head>span{align-items:center;gap:.4rem;display:inline-flex}.pertemuan-head-btn{cursor:pointer;text-align:left;min-width:0;font:inherit;color:var(--primary-dark);background:0 0;border:none;flex-wrap:wrap;flex:1;align-items:center;gap:.4rem;padding:.1rem 0;font-weight:700;display:inline-flex}.pertemuan-head-btn:hover{color:var(--primary)}.pertemuan-toggle{border:none;border-left:3px solid var(--primary);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--primary-dark);border-radius:8px;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .7rem;font-weight:700;transition:background .15s}.pertemuan-toggle:hover{background:#6366f124}.pertemuan-caret{color:var(--primary);font-size:.7rem}.pertemuan-title{white-space:nowrap}.pertemuan-sub{flex-wrap:wrap;gap:.3rem}.pertemuan-done{flex:none;margin-left:auto}.badge-off{color:#b91c1c;background:#fee2e2}.badge-done{color:#15803d;background:#dcfce7;margin-left:.4rem}.pertemuan-group>.material+.material,.pertemuan-group>.card+.card{margin-top:.5rem}.rte{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.rte-toolbar{border-bottom:1px solid var(--border);background:#6366f10f;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.35rem .45rem;display:flex}.rte-btn{border:1px solid var(--border);cursor:pointer;min-width:30px;height:28px;color:var(--primary-dark);background:#fff;border-radius:5px;padding:0 .45rem;font-size:.85rem;line-height:1}.rte-btn:hover{background:#6366f11f}.rte-sep{background:var(--border);align-self:stretch;width:1px;margin:2px .25rem}.rte-area{outline:none;min-height:120px;padding:.6rem .7rem;font-size:.95rem;line-height:1.5}.rte-area:empty:before{content:attr(data-placeholder);color:#9ca3af}.rte-area h1,.rte-area h2,.rte-area h3,.richtext h1,.richtext h2,.richtext h3{margin:.4rem 0;line-height:1.3}.richtext{line-height:1.55}.richtext p{margin:0 0 .5rem}.richtext ul,.richtext ol,.rte-area ul,.rte-area ol{margin:.3rem 0;padding-left:1.4rem}.richtext img,.richtext video,.rte-area img,.rte-area video{border-radius:8px;max-width:100%;height:auto;margin:.4rem 0}.richtext iframe,.rte-area iframe{max-width:100%}.cur-bahan-edit{border:1px solid var(--border);background:var(--surface,#fff);border-radius:10px;margin:.4rem 0 .6rem;padding:.6rem}.material .richtext,.material .pre,.material>p,.material>a,.material>div>p{font-size:.82rem;line-height:1.5}.material .richtext h1{font-size:1.05rem}.material .richtext h2{font-size:.98rem}.material .richtext h3{font-size:.9rem}.comments{border-top:1px dashed var(--border);margin-top:.6rem;padding-top:.5rem}.comments-toggle{color:var(--primary-dark);cursor:pointer;background:0 0;border:none;padding:.15rem 0;font-size:.85rem;font-weight:600}.comments-toggle:hover{text-decoration:underline}.comments-body{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.comment{border-left:3px solid var(--primary);background:#6366f10d;border-radius:0 6px 6px 0;padding:.3rem .6rem}.comment-head{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.comment-text{margin:.2rem 0 0;font-size:.9rem}.comment-form{align-items:center;gap:.4rem;display:flex}.comment-form input{flex:1}.curriculum-ref{border:1px solid var(--border);background:#6366f10d;border-radius:8px;margin-bottom:.75rem;padding:.4rem .7rem}.curriculum-ref summary{cursor:pointer;color:var(--primary-dark);-webkit-user-select:none;user-select:none;font-size:.9rem;font-weight:600}.curriculum-ref-list{flex-direction:column;gap:.45rem;margin-top:.6rem;display:flex}.curriculum-ref-item{border-left:3px solid var(--primary);padding-left:.55rem;font-size:.88rem}.curriculum-ref-body{flex-direction:column;gap:.6rem;margin-top:.6rem;display:flex}.curriculum-ref-body .curriculum-ref-list{margin-top:0}.curriculum-ref-body>.btn{align-self:flex-start}.alert-warn{color:#854d0e;background:#fef9c3;border:1px solid #fde047;border-radius:8px;padding:.5rem .7rem}.indicator-list{flex-direction:column;gap:.2rem;margin:.35rem 0 0;padding-left:1.1rem;display:flex}.indicator-list li{color:#334155;font-size:.82rem}.indicator-picker{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;gap:.6rem;max-height:320px;margin-top:.4rem;padding:.5rem .6rem;display:flex;overflow-y:auto}.indicator-group-title{text-transform:uppercase;letter-spacing:.03em;color:var(--primary-dark);margin-bottom:.25rem;font-size:.78rem;font-weight:700}.indicator-check{cursor:pointer;align-items:flex-start;gap:.5rem;padding:.25rem .15rem;font-size:.85rem;line-height:1.35;display:flex}.indicator-check input{flex:none;width:auto;margin-top:.2rem}.list-item.column.is-editing{outline:2px solid var(--primary);outline-offset:1px}.indicator-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.indicator-count{color:var(--primary-dark);white-space:nowrap;background:#6366f11f;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:700}.indicator-tools{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0;display:flex}.indicator-search{border:1px solid var(--border);border-radius:8px;flex:180px;min-width:0;padding:.4rem .6rem;font-size:.85rem}.indicator-group-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}.linklike{color:var(--primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.76rem;font-weight:600}.linklike:hover{text-decoration:underline}.indicator-check{border-radius:8px;transition:background .12s}.indicator-check:hover{background:#f8fafc}.indicator-check.is-checked{background:#eef2ff}.lesson-obj{border:1px solid var(--border);border-left:3px solid var(--primary);background:#6366f10a;border-radius:8px;margin:.2rem 0 .4rem;padding:.55rem .7rem}.lesson-obj-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lesson-obj-label{color:var(--primary-dark);font-size:.82rem;font-weight:700}.lesson-obj-select{border:1px solid var(--border);border-radius:8px;flex:200px;min-width:0;max-width:100%;padding:.3rem .5rem;font-size:.82rem}.lesson-obj-topic{margin-top:.4rem;font-size:.85rem;font-weight:600}.lesson-obj-list{flex-direction:column;gap:.2rem;margin:.35rem 0 0;padding-left:1.1rem;display:flex}.lesson-obj-list li{color:#334155;font-size:.82rem}.lesson-obj-inline{margin:0 0 .5rem}.lesson-obj-sublabel{color:var(--primary-dark);margin-top:.4rem;font-size:.76rem;font-weight:700}.choice-picker{border:1px solid var(--border);background:#6366f108;border-radius:10px;margin-bottom:.6rem;padding:.55rem .65rem}.choice-picker .indicator-picker{max-height:180px}.ref-tags{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.35rem;display:flex}.ref-tags-label{color:var(--primary-dark);text-transform:uppercase;letter-spacing:.02em;font-size:.72rem;font-weight:700}.ref-tag{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.ref-tag-tema{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.ref-tag-sub{color:#92400e;background:#fef3c7;border-color:#fcd34d}.ref-tag-materi{color:#1e40af;background:#eff6ff;border-color:#bfdbfe;font-weight:600}.materi-sub-tags{border-left:3px solid var(--primary);background:#6366f10a;border-radius:0 6px 6px 0;margin:-.15rem 0 .5rem;padding:.35rem .6rem}.materi-sub-tags .ref-tags:first-child{margin-top:0}.obj-group{margin-top:.3rem}.obj-group-label{color:#4338ca;margin-bottom:.05rem;font-size:.72rem;font-weight:700}.obj-group .indicator-list{gap:.05rem;margin-top:0;padding-left:.9rem}.obj-group .indicator-list li{color:#475569;font-size:.74rem;line-height:1.3}.choice-jp{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.7rem;font-weight:700}.indicator-check.is-checked .choice-jp{background:#fff}.asg-subs-toggle{margin-top:.6rem}.subs{border-top:1px dashed var(--border);margin-top:.6rem;padding-top:.6rem}.sub-row{border:1px solid var(--border);border-radius:10px;margin-bottom:.5rem;padding:.7rem}.grade-row{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.grade-input{width:80px}.feedback-input{flex:1;min-width:140px}.grade-status{margin-top:.4rem;font-weight:600}.grade-status.ok{color:#15803d}.grade-status.err{color:var(--danger)}.feedback-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin:.5rem 0;padding:.5rem .7rem;font-size:.85rem}.alert{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:.6rem;padding:.5rem .7rem;font-size:.85rem}.user-chip-btn{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;padding:.3rem .5rem}.user-chip-btn:hover{border-color:var(--border);background:#f8fafc}.modal-overlay{z-index:50;background:#0f172a80;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:14px;width:100%;max-width:420px;max-height:90vh;padding:1.4rem;overflow-y:auto;box-shadow:0 20px 50px #0000004d}.modal.modal-lg{max-width:720px}.modal.modal-mapper{max-width:1140px}.modal-mapper .grid-2{grid-template-columns:1fr;gap:1.2rem}.modal-mapper .indicator-picker{max-height:46vh}.modal-mapper .choice-picker .indicator-picker{max-height:34vh}.indicator-check-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.1rem .8rem;display:grid}.modal-mapper .indicator-check{padding:.22rem .35rem;font-size:.78rem;line-height:1.25}.modal-mapper .indicator-check input{margin-top:.15rem}@media (width<=720px){.indicator-check-grid{grid-template-columns:1fr}}.pert-materials{border-top:1px dashed var(--border,#e5e7f0);flex-direction:column;gap:.4rem;margin-top:.6rem;padding-top:.6rem;display:flex}.pert-materials-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pert-material-item{border:1px solid var(--border,#e5e7f0);background:#6366f10d;border-radius:8px;padding:.4rem .55rem}.pert-material-title{flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;display:inline-flex}.pert-material-form{border:1px solid var(--border,#e5e7f0);background:#fff;border-radius:10px;margin-top:.3rem;padding:.7rem .8rem}.as-tab{flex-direction:column;gap:1.1rem;display:flex}.as-cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.85rem;display:grid}.as-card{border:1px solid var(--border,#e5e7f0);background:#fff;border-radius:14px;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex;box-shadow:0 1px 2px #1018280a}.as-card-icon{border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.35rem;display:flex}.as-card-body{min-width:0}.as-card-value{color:#111827;font-size:1.7rem;font-weight:700;line-height:1.1}.as-card-label{color:#4b5563;font-size:.82rem;font-weight:500}.as-card-sub{color:#9ca3af;font-size:.7rem}.as-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:.9rem;display:grid}.as-panel{border:1px solid var(--border,#e5e7f0);background:#fff;border-radius:14px;padding:1rem 1.1rem;box-shadow:0 1px 2px #1018280a}.as-panel-title{color:#1f2937;align-items:center;gap:.5rem;margin:0 0 .9rem;font-size:.92rem;font-weight:600;display:flex}.as-panel-title.as-section{margin:.2rem 0 0}.as-donut{flex-wrap:wrap;align-items:center;gap:1.3rem;display:flex}.as-legend{flex-direction:column;flex:1;gap:.5rem;min-width:130px;margin:0;padding:0;list-style:none;display:flex}.as-legend li{color:#374151;align-items:center;gap:.55rem;font-size:.85rem;display:flex}.as-legend li b{color:#111827;margin-left:auto}.as-dot{border-radius:3px;flex:none;width:11px;height:11px}.as-bars{flex-direction:column;gap:.6rem;display:flex}.as-bar-row{align-items:center;gap:.7rem;display:flex}.as-bar-label{color:#374151;white-space:nowrap;text-overflow:ellipsis;flex:0 0 32%;max-width:32%;font-size:.8rem;overflow:hidden}.as-bar-track{background:#f1f5f9;border-radius:999px;flex:1;height:10px;overflow:hidden}.as-bar-fill{border-radius:999px;min-width:4px;height:100%;transition:width .4s}.as-bar-num{color:#111827;text-align:right;flex:none;min-width:24px;font-size:.8rem;font-weight:600}.as-badge{color:#15803d;background:#dcfce7;border-radius:999px;margin-left:auto;padding:.05rem .6rem;font-size:.8rem;font-weight:700}.as-role-row{border-bottom:1px solid var(--border,#e5e7f0);flex-wrap:wrap;gap:1.1rem;margin-bottom:.75rem;padding-bottom:.7rem;display:flex}.as-role{color:#374151;align-items:center;gap:.4rem;font-size:.82rem;display:flex}.as-role b{color:#111827}.as-list{flex-direction:column;gap:.45rem;max-height:220px;display:flex;overflow-y:auto}.as-item{align-items:center;gap:.55rem;font-size:.84rem;display:flex}.as-name{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.as-ago{flex:none;margin-left:auto}.as-pill{border-radius:999px;flex:none;padding:.08rem .5rem;font-size:.68rem;font-weight:600}.as-pulse{background:#22c55e;border-radius:50%;flex:none;width:9px;height:9px;animation:1.8s infinite asPulse;box-shadow:0 0 #22c55e99}@keyframes asPulse{0%{box-shadow:0 0 #22c55e99}70%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:0 0 #22c55e00}}.as-mini{grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:.6rem;display:grid}.as-mini-card{border:1px solid var(--border,#e5e7f0);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;padding:.7rem .5rem;display:flex}.as-mini-icon{font-size:1.15rem}.as-mini-value{color:#111827;font-size:1.25rem;font-weight:700}.as-mini-label{color:#6b7280;text-align:center;font-size:.72rem}.as-updated{margin:0}.as-rank{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.as-rank-item{align-items:center;gap:.7rem;display:flex}.as-rank-no{color:#475569;background:#f1f5f9;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;font-weight:700;display:flex}.as-rank-no.rank-1,.as-rank-no.rank-2,.as-rank-no.rank-3{background:0 0;font-size:1.1rem}.as-rank-name{color:#111827;flex-direction:column;flex:0 0 32%;max-width:32%;font-size:.85rem;font-weight:500;display:flex;overflow:hidden}.as-rank-class{color:#9ca3af;font-size:.68rem;font-weight:400}.as-rank-bar{background:#f1f5f9;border-radius:999px;flex:1;height:10px;overflow:hidden}.as-rank-fill{background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:999px;height:100%;transition:width .4s;display:block}.as-rank-score{text-align:right;color:#4338ca;flex:none;min-width:42px;font-size:.9rem;font-weight:700}.cur-mapel-head{color:var(--primary-dark);margin-bottom:.6rem!important}.cur-mapel-toggle{cursor:pointer;width:100%;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.6rem;margin:0;padding:0;display:flex}.cur-mapel-card{--mapel-color:var(--primary);border-left:4px solid var(--mapel-color);border-radius:12px;margin-bottom:0;padding:.6rem .85rem;transition:box-shadow .15s,transform .15s}.cur-mapel-card:hover{box-shadow:0 6px 18px -8px var(--mapel-color);transform:translateY(-1px)}.cur-mapel-toggle .cur-mapel-head{align-items:center;gap:.55rem;font-size:1.02rem;font-weight:700;display:flex;margin-bottom:0!important}.cur-mapel-toggle .cur-caret{color:var(--mapel-color);font-size:.8rem;transition:transform .15s}.cur-mapel-icon{background:color-mix(in srgb, var(--mapel-color) 16%, #fff);border:1px solid color-mix(in srgb, var(--mapel-color) 30%, #fff);border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.05rem;display:inline-flex}.cur-mapel-name{color:var(--mapel-color)}.cur-mapel-count{color:var(--mapel-color);background:color-mix(in srgb, var(--mapel-color) 14%, #fff);border:1px solid color-mix(in srgb, var(--mapel-color) 28%, #fff);border-radius:999px;flex-shrink:0;padding:.2rem .6rem;font-size:.72rem;font-weight:700}.cur-mapel-toggle:hover .cur-mapel-name{text-decoration:underline}.cur-entry{border:1px solid var(--border);background:#fbfbfe;border-radius:10px;padding:.7rem .85rem}.cur-entry-head{justify-content:space-between;align-items:flex-start;gap:.6rem;margin-bottom:.4rem;display:flex}.cur-entry-head>span{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}.cur-badge{background:var(--grad-primary);color:#fff}.cur-detail{flex-direction:column;gap:.5rem;display:flex}.cur-block{border-left:3px solid var(--primary);padding-left:.6rem}.cur-block-title{color:var(--primary-dark);margin-bottom:.15rem;font-size:.82rem;font-weight:600;display:block}.cur-list{margin:.1rem 0 0;padding-left:1.1rem;font-size:.85rem}.cur-list li{margin-bottom:.15rem}.cur-jp-badge{color:var(--primary-dark);background:#6366f11f;margin-left:.4rem;font-size:.68rem;font-weight:700}.cur-sublist{color:var(--muted);margin:.15rem 0 .3rem;padding-left:1rem;font-size:.8rem;list-style:circle}.cur-sub-jp{color:var(--primary);font-weight:600}.btn-xs{padding:.05rem .4rem;font-size:.68rem;line-height:1.4}.cur-bahan-toggle{vertical-align:middle}.cur-bahan-ajar{border:1px solid var(--border);border-left:3px solid var(--primary);color:var(--text,#222);background:#fafafe;border-radius:8px;margin:.4rem 0 .6rem;padding:.6rem .8rem;font-size:.82rem;line-height:1.55}.cur-bahan-ajar h3{margin:0 0 .35rem;font-size:.95rem}.cur-bahan-ajar h4{margin:.5rem 0 .2rem;font-size:.85rem}.cur-bahan-ajar p{margin:.25rem 0}.cur-bahan-ajar ul,.cur-bahan-ajar ol{margin:.2rem 0 .35rem;padding-left:1.2rem}.cur-bahan-ajar blockquote{background:#eef;border-radius:6px;margin:.5rem 0 .2rem;padding:.4rem .6rem;font-size:.8rem}.cur-materi-card{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:.35rem;padding:.5rem;display:flex}.cur-sub-editor{border-left:2px solid var(--border);flex-direction:column;gap:.3rem;margin-left:.9rem;padding-left:.6rem;display:flex}.cur-sub-head{justify-content:space-between;align-items:center;display:flex}.cur-sub-row input{font-size:.85rem}.cur-fields{border:1px solid var(--border);background:#f8fafc;border-radius:10px;flex-direction:column;gap:.35rem;padding:.75rem;display:flex}.cur-item-row{align-items:center;gap:.4rem;display:flex}.cur-item-row input{flex:auto}.cur-sk-block{border:1px dashed var(--border);background:#fff;border-radius:8px;padding:.5rem}.cur-kd-list{border-left:2px solid var(--border);flex-direction:column;gap:.35rem;margin-top:.35rem;padding-left:.75rem;display:flex}.qbuilder{border:1px solid var(--border);background:#f8fafc;border-radius:10px;margin-top:.7rem;padding:.8rem}.qbuilder>*+*{margin-top:.4rem}.opt-row{align-items:center;gap:.4rem;display:flex}.opt-row input[type=radio]{flex:none;width:auto}.opt-hint{margin-top:.2rem}.opt-key{border:1px solid var(--border);color:#64748b;cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;flex:none;align-items:center;gap:.3rem;padding:.25rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.opt-row.opt-correct{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.3rem .4rem}.opt-row.opt-correct .opt-key{color:#166534;background:#dcfce7;border-color:#86efac}.opt-take{cursor:pointer;align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.opt-take input{width:auto}.table-scroll{overflow-x:auto}.table-scroll .table th,.table-scroll .table td{white-space:nowrap}.gradebook-table .gb-sum{background:#f8fafc}.gradebook-table th.gb-col{white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:bottom;min-width:6.5rem;max-width:11rem;line-height:1.25}.gradebook-table th.gb-sum{color:var(--primary-dark);border-left:2px solid #e2e8f0}.gradebook-table td.gb-sum{border-left:2px solid #eef2ff}.gradebook-table .ta-c{text-align:center}.gradebook-table .gb-avg-row td{border-top:2px solid var(--primary);background:#eef2ff}.gb-select{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fff;border-radius:8px;padding:.25rem .4rem;font-size:.82rem;font-weight:600}.gb-select.lulus-lulus{color:#166534;background:#dcfce7;border-color:#86efac}.gb-select.lulus-tidak{color:#991b1b;background:#fee2e2;border-color:#fecaca}.notif{position:relative}.notif-btn{cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1.3rem;line-height:1;position:relative}.notif-badge{background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:.65rem;font-weight:700;display:grid;position:absolute;top:-2px;right:-4px}.notif-dropdown{background:var(--card);border:1px solid var(--border);z-index:60;border-radius:12px;width:300px;max-height:380px;position:absolute;top:130%;right:0;overflow-y:auto;box-shadow:0 15px 40px #0000002e}.notif-head{border-bottom:1px solid var(--border);padding:.7rem .9rem;font-weight:700}.notif-empty{padding:1rem .9rem;font-size:.85rem}.notif-item{border-bottom:1px solid var(--border);padding:.6rem .9rem;font-size:.85rem}.notif-item:last-child{border-bottom:none}button.notif-item{text-align:left;width:100%;font:inherit;color:inherit;cursor:default;background:0 0;border-top:none;border-left:none;border-right:none;display:block}button.notif-item.notif-item-link{cursor:pointer}button.notif-item.notif-item-link:hover{background:#6366f114}@media (width<=760px){.notif-dropdown{width:auto;max-width:none;max-height:65vh;margin-top:.4rem;position:fixed;top:auto;left:.6rem;right:.6rem}}.quiz-timer{color:var(--primary-dark);background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-self:flex-start;margin-bottom:.4rem;padding:.4rem .8rem;font-weight:700;display:inline-block;position:sticky;top:56px}.quiz-timer.urgent{color:var(--danger);background:#fef2f2;border-color:#fecaca}.badge-overdue{color:var(--danger);background:#fef2f2}.badge-submitted{color:#166534;background:#dcfce7}.asg-item,.asg-card{padding:1rem 1.1rem}.asg-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.asg-title-wrap{flex-direction:column;flex:1;gap:.4rem;min-width:0;display:flex}.asg-title{font-size:1.02rem;font-weight:700;line-height:1.3}.asg-meta{flex-wrap:wrap;gap:.35rem;display:flex}.asg-chip{color:#475569;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.asg-chip.overdue{color:var(--danger);background:#fef2f2;border-color:#fecaca}.asg-badges{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.asg-actions{flex-wrap:wrap}.asg-form{border-top:1px dashed var(--border);margin-top:.2rem;padding-top:.7rem}.req{color:var(--danger);font-weight:700}.stages-editor{border:1px dashed var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:.5rem;margin:.3rem 0;padding:.6rem .7rem;display:flex}.stage-row{background:var(--card,#fff);border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:.55rem;padding:.55rem .6rem;display:flex}.stage-num{background:var(--primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;margin-top:4px;font-size:.8rem;font-weight:700;display:flex}.stage-fields{flex-direction:column;flex:auto;gap:.35rem;display:flex}.stage-title-input{font-weight:600}.stage-del{color:var(--danger);flex:none}.stages-empty{border:1px dashed var(--border);text-align:center;border-radius:8px;padding:.5rem .6rem}.stage-checklist{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.45rem;margin:.3rem 0;padding:.6rem .7rem;display:flex}.stage-check{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:.5rem;padding:.4rem .5rem;display:flex}.stage-check.done{border-color:var(--success);background:#10b98114}.stage-check input{margin-top:3px}.stage-check>input[type=checkbox]{flex:none;align-self:flex-start;width:auto}.stage-check-body{flex-direction:column;flex:auto;gap:.25rem;display:flex}.stage-progress{margin:.3rem 0}.stage-progress-list{flex-direction:column;gap:.4rem;margin:.2rem 0 0;padding-left:0;list-style:none;display:flex}.stage-progress-item{border-left:3px solid var(--border);padding:.2rem 0 .2rem .5rem}.stage-progress-item.done,.stage-progress-item.verified{border-left-color:var(--success)}.stage-progress-head{color:var(--muted)}.stage-verify-row{align-items:center;gap:.4rem;margin-top:.25rem;display:flex}.stage-badge{white-space:nowrap;border-radius:999px;padding:.05rem .4rem;font-size:.72rem;font-weight:700}.stage-badge.verified{color:#fff;background:var(--success)}.stage-badge.waiting{color:#7a5b00;background:#ffe8a3}.stage-check.verified{border-color:var(--success);background:#10b9811a}.stage-progress-item.done .stage-progress-head{color:var(--success)}.stage-note-input{margin-top:.15rem}.stage-inputs{border-top:1px dashed var(--border);flex-direction:column;gap:.2rem;margin-top:.15rem;padding-top:.35rem;display:flex}.asg-desc{border:1px solid var(--border);background:var(--bg);border-radius:10px;margin:.3rem 0;padding:.55rem .7rem}.asg-desc-label{margin-bottom:.2rem;font-weight:600}.stage-check.locked{opacity:.6}.material-gate{flex-direction:column;gap:.4rem;margin-top:.4rem;display:flex}.gate-progress{flex-direction:column;gap:.25rem;display:flex}.gate-video{cursor:pointer;background:#000}.gate-controls{align-items:center;gap:.5rem;display:flex}.gate-controls .gate-bar{flex:auto}.gate-pct{text-align:right;flex:none;min-width:2.5rem}.gate-bar{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.gate-bar-fill{background:var(--primary);height:100%;transition:width .2s}.gate-ok{color:var(--success);font-weight:600}.asg-closed{border-top:1px dashed var(--border);margin-top:.2rem;padding-top:.7rem}.asg-closed>p{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.5rem .7rem;font-weight:600}.asg-closed-mine{border:1px solid var(--border);background:#6366f10f;border-radius:8px;margin-top:.5rem;padding:.5rem .7rem}.discussion{flex-direction:column;gap:.75rem;display:flex}.discussion-list{flex-direction:column;gap:.6rem;max-height:420px;padding-right:.25rem;display:flex;overflow-y:auto}.disc-msg{border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:.5rem .7rem}.disc-msg.mine{background:#eff6ff;border-color:#bfdbfe}.disc-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.disc-author{font-size:.9rem;font-weight:700}.disc-role{font-size:.62rem}.disc-time{color:var(--muted);font-size:.72rem}.disc-del{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 .25rem;font-size:1.1rem;line-height:1}.disc-del:hover{color:var(--danger)}.disc-text{margin:0;font-size:.9rem}.disc-form{flex-direction:column;gap:.5rem;display:flex}.disc-form textarea{resize:vertical;width:100%}.chat-scopes{flex-wrap:wrap;gap:.4rem;display:flex}.chat-scope{border:1px solid var(--border);color:var(--muted);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#f8fafc;border-radius:999px;max-width:100%;padding:.35rem .8rem;font-size:.82rem;font-weight:600;transition:all .15s;overflow:hidden}.chat-scope:hover{border-color:var(--primary);color:var(--primary)}.chat-scope.active{background:var(--grad-primary);color:#fff;border-color:#0000}.chat-contacts{border:1px solid var(--border);background:#fbfcfe;border-radius:10px;flex-direction:column;gap:.35rem;max-height:190px;padding:.5rem;display:flex;overflow-y:auto}.chat-contact{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:.55rem;padding:.4rem .55rem;transition:background .15s,border-color .15s;display:flex}.chat-contact:hover{background:#eef2ff}.chat-contact.active{border-color:var(--primary);background:#eef2ff}.chat-contact-ava{font-size:1.15rem;line-height:1}.chat-contact-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.88rem;font-weight:600;overflow:hidden}.chat-inbox{flex-direction:column;gap:.4rem;display:flex}.chat-inbox-head{justify-content:space-between;align-items:center;display:flex}.chat-newbtn{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:999px;padding:.25rem .7rem;font-size:.78rem;font-weight:600}.chat-newbtn:hover{background:#eef2ff}.chat-threads{flex-direction:column;gap:.3rem;max-height:240px;display:flex;overflow-y:auto}.chat-thread{border:1px solid var(--border);cursor:pointer;text-align:left;background:#fbfcfe;border-radius:10px;align-items:center;gap:.6rem;padding:.5rem .6rem;transition:background .15s,border-color .15s;display:flex}.chat-thread:hover{border-color:var(--primary);background:#eef2ff}.chat-thread-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.chat-thread-top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.chat-thread-time{color:var(--muted);flex-shrink:0;font-size:.7rem}.chat-thread-preview{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.chat-thread-head{border:1px solid var(--border);background:#f8fafc;border-radius:10px;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.chat-back{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 .35rem;font-size:1.4rem;line-height:1}.chat-back:hover{color:var(--primary-dark)}.att-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.att-row:last-child{border-bottom:none}.att-name{flex:1;min-width:140px}.att-opts{gap:.35rem;display:flex}.att-chip{border:1px solid var(--border);cursor:pointer;color:#334155;background:#fff;border-radius:999px;padding:.2rem .7rem;font-size:.78rem;font-weight:600}.att-chip.active.att-hadir{color:#166534;background:#dcfce7;border-color:#86efac}.att-chip.active.att-izin{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.att-chip.active.att-sakit{color:#854d0e;background:#fef9c3;border-color:#fde047}.att-chip.active.att-alfa{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.att-note{flex:1;min-width:160px}.att-summary{flex-wrap:wrap;gap:.5rem;display:flex}.badge.att-hadir{color:#166534;background:#dcfce7}.badge.att-izin{color:#1e40af;background:#dbeafe}.badge.att-sakit{color:#854d0e;background:#fef9c3}.badge.att-alfa{color:#991b1b;background:#fee2e2}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;display:grid}.stat-card{color:#fff;text-align:center;box-shadow:var(--shadow);border:none;border-radius:16px;padding:1.1rem;position:relative;overflow:hidden}.stat-card:after{content:"";background:#ffffff2e;border-radius:50%;width:90px;height:90px;position:absolute;top:-30px;right:-20px}.stat-card:nth-child(6n+1){background:linear-gradient(135deg,#6366f1,#8b5cf6)}.stat-card:nth-child(6n+2){background:linear-gradient(135deg,#06b6d4,#3b82f6)}.stat-card:nth-child(6n+3){background:linear-gradient(135deg,#ec4899,#f43f5e)}.stat-card:nth-child(6n+4){background:linear-gradient(135deg,#10b981,#14b8a6)}.stat-card:nth-child(6n+5){background:linear-gradient(135deg,#f59e0b,#f97316)}.stat-card:nth-child(6n+6){background:linear-gradient(135deg,#059669,#10b981)}.stat-value{color:#fff;z-index:1;font-family:Poppins,sans-serif;font-size:2rem;font-weight:800;position:relative}.stat-label{color:#ffffffe6;z-index:1;margin-top:.25rem;font-size:.8rem;position:relative}.chart{align-items:flex-end;gap:.9rem;height:180px;padding:.5rem .25rem 0;display:flex}.chart-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:.4rem;height:100%;display:flex}.chart-bar .bar{border-radius:10px 10px 0 0;width:100%;max-width:70px;min-height:4px;transition:height .4s}.chart-bar .bar-val{font-size:.85rem;font-weight:700}.chart-bar .bar-label{color:var(--muted);text-align:center;font-size:.75rem}.bar-hadir{background:linear-gradient(#34d399,#10b981)}.bar-izin{background:linear-gradient(#60a5fa,#3b82f6)}.bar-sakit{background:linear-gradient(#fcd34d,#f59e0b)}.bar-alfa{background:linear-gradient(#f87171,#ef4444)}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.85rem;display:grid}.hbar-title{margin-bottom:.6rem;font-size:.9rem;font-weight:700}.hbar-bars{flex-direction:column;gap:.5rem;display:flex}.hbar-row{align-items:center;gap:.5rem;display:flex}.hbar-label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:0 0 92px;font-size:.78rem;overflow:hidden}.hbar-track{background:#eef2f7;border-radius:999px;flex:auto;height:14px;overflow:hidden}.hbar-fill{border-radius:999px;min-width:2px;height:100%;transition:width .4s}.hbar-value{text-align:right;flex:none;min-width:34px;font-size:.8rem;font-weight:700}.class-tab-homeroom{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}.class-tab-homeroom.active{color:#fff;background:linear-gradient(135deg,#f59e0b,#f97316);border-color:#f59e0b}.announce-banner{border:1px solid #e9d5ff;border-left:5px solid var(--accent);box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fdf2f8,#eef2ff);border-radius:14px;margin-bottom:1.2rem;padding:.9rem 1.1rem}.announce-head{color:var(--accent);margin-bottom:.5rem;font-family:Poppins,sans-serif;font-weight:800}.announce-stack{flex-direction:column;gap:.6rem;display:flex}.announce-item{background:#ffffffb3;border-radius:10px;padding:.5rem .75rem}.announce-item b{color:var(--primary-dark)}.announce-meta{color:var(--muted)}.announce-media{border:1px solid var(--border);border-radius:10px;max-width:100%;margin:.5rem 0;display:block}.announce-media-img{object-fit:contain;cursor:zoom-in;background:#f8fafc;max-height:340px}video.announce-media{background:#000;max-height:360px}.announce-media-audio{width:100%;margin:.5rem 0;display:block}.announce-media-file{border:1px solid var(--border);color:var(--primary-dark);background:#fff;border-radius:8px;margin:.5rem 0;padding:.4rem .7rem;font-size:.85rem;text-decoration:none;display:inline-block}.grades-wrap{flex-direction:column;gap:1rem;display:flex}.grades-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.seg{border:1px solid var(--border);background:#f1f5f9;border-radius:10px;flex-wrap:wrap;gap:.2rem;padding:.2rem;display:inline-flex}.seg-btn{color:#475569;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.4rem .8rem;font-size:.85rem;font-weight:600}.seg-btn.active{color:var(--primary-dark);background:#fff;box-shadow:0 1px 3px #0000001f}.grades-report{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.2rem 1.3rem}.grades-report-head{border-bottom:2px solid var(--border);margin-bottom:1rem;padding-bottom:.6rem}.grade-summary{flex-wrap:wrap;gap:.8rem;margin-bottom:1.1rem;display:flex}.gs-item{background:linear-gradient(135deg,#eef2ff,#f8fafc);border:1px solid #e0e7ff;border-radius:10px;flex-direction:column;flex:1;gap:.25rem;min-width:160px;padding:.7rem .9rem;display:flex}.gs-label{color:var(--muted);font-size:.75rem;font-weight:600}.gs-value{color:var(--primary-dark);font-size:1.7rem;font-weight:800;line-height:1}.gs-value.gs-sm{font-size:1rem}.grade-section{margin-bottom:1.3rem}.grade-section-title{color:var(--primary-dark);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;display:flex}.grade-avg-tag{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;margin-left:auto;padding:.15rem .7rem;font-size:.8rem;font-weight:700}.grades-table{border-collapse:collapse;width:100%;font-size:.9rem}.grades-table th,.grades-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.55rem .6rem}.grades-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f8fafc;font-size:.78rem}.grades-table .ta-c{text-align:center}.grade-items{flex-direction:column;gap:.2rem;margin:.35rem 0 0;padding-left:0;list-style:none;display:flex}.grade-items li{color:#475569;align-items:flex-start;gap:.35rem;font-size:.8rem;line-height:1.35;display:flex}.gi-kind{color:var(--primary-dark);background:#eef2ff;border-radius:999px;flex:none;margin-top:.05rem;padding:.05rem .4rem;font-size:.68rem;font-weight:700}.gi-title{flex:auto;min-width:0}.gi-val{color:#0f172a;text-align:right;white-space:nowrap;flex:none;margin-left:auto;padding-left:.4rem;font-weight:700}.score-badge{white-space:nowrap;border-radius:8px;padding:.2rem .6rem;font-size:.95rem;font-weight:800;display:inline-block}.score-badge small{opacity:.85;font-weight:600}.score-badge.score-empty{color:var(--muted);background:#f1f5f9;font-size:.78rem;font-weight:600}.score-badge.g-a{color:#166534;background:#dcfce7}.score-badge.g-b{color:#1e40af;background:#dbeafe}.score-badge.g-c{color:#854d0e;background:#fef9c3}.score-badge.g-d{color:#9a3412;background:#ffedd5}.score-badge.g-e{color:#991b1b;background:#fee2e2}.parent-filter{background:#f8fafc;border:1px solid #6366f126;border-radius:14px;flex-wrap:wrap;align-items:flex-end;gap:.8rem;margin:0 1.4rem 1.1rem;padding:.9rem 1rem;display:flex}.parent-filter .pf-field{flex-direction:column;flex:180px;gap:.3rem;min-width:150px;display:flex}.parent-filter .pf-field label{color:var(--muted);font-size:.78rem;font-weight:700}.parent-filter .pf-field select{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:.55rem .7rem;font-family:inherit;font-size:.9rem}.parent-filter .pf-reset{flex:none}.parent-chart-section{padding-top:.2rem}.pchart{flex-direction:column;gap:.55rem;margin-top:.7rem;display:flex}.pchart-row{align-items:center;gap:.7rem;display:flex}.pchart-label{color:#374151;white-space:nowrap;text-overflow:ellipsis;flex:0 0 38%;max-width:38%;font-size:.82rem;font-weight:600;overflow:hidden}.pchart-track{background:#eef2f7;border-radius:999px;flex:1;height:16px;overflow:hidden}.pchart-fill{border-radius:999px;min-width:6px;height:100%;transition:width .5s}.pchart-fill.g-a{background:linear-gradient(90deg,#34d399,#10b981)}.pchart-fill.g-b{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.pchart-fill.g-c{background:linear-gradient(90deg,#fcd34d,#f59e0b)}.pchart-fill.g-d{background:linear-gradient(90deg,#fb923c,#ea580c)}.pchart-fill.g-e{background:linear-gradient(90deg,#f87171,#ef4444)}.pchart-val{text-align:right;color:#111827;flex:none;min-width:38px;font-size:.85rem;font-weight:800}@media (width<=760px){.parent-filter{margin:0 .85rem 1rem}.pchart-label{flex-basis:44%;max-width:44%;font-size:.78rem}.grades-report{padding:.9rem .85rem}.grades-toolbar{justify-content:stretch}.seg{width:100%}.seg-btn{text-align:center;flex:auto;padding:.45rem .5rem;font-size:.8rem}.grades-toolbar>.btn{width:100%}.grade-summary{gap:.6rem}.gs-item{flex:45%;min-width:0}.grade-section-title{font-size:.95rem}.grade-avg-tag{margin-left:0}.grades-table,.grades-table tbody,.grades-table tr,.grades-table td{width:100%;display:block}.grades-table thead{display:none}.grades-table tr{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:.7rem;padding:.75rem .85rem;box-shadow:0 2px 8px #0f172a0d}.grades-table td{border:none;padding:.32rem 0}.grades-table td.gt-subject{border-bottom:1px dashed var(--border);margin-bottom:.15rem;padding-bottom:.5rem;font-size:1.02rem}.grades-table td[data-label]{text-align:right;border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.grades-table td[data-label]:first-of-type{border-top:none}.grades-table td[data-label]:before{content:attr(data-label);color:var(--muted);text-align:left;flex:none;font-size:.8rem;font-weight:600}.grades-table td.ta-c{text-align:right}.att-tags{justify-content:flex-end}.grade-items{background:#f8fafc;border-radius:10px;margin-top:.5rem;padding:.5rem .6rem}.grade-items li{font-size:.78rem}}@media print{body *{visibility:hidden}.grades-report,.grades-report *{visibility:visible}.grades-report{border:none;border-radius:0;width:100%;padding:0;position:absolute;top:0;left:0}.no-print{display:none!important}.score-badge,.gi-kind,.grade-avg-tag,.gs-item{-webkit-print-color-adjust:exact;print-color-adjust:exact}.grade-section{page-break-inside:avoid}}.parent-page{background:linear-gradient(160deg,#eef2ff 0%,#fdf2f8 100%);flex-direction:column;min-height:100vh;display:flex}.parent-topbar{background:var(--grad-primary);z-index:10;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1.4rem;display:flex;position:sticky;top:0;box-shadow:0 6px 20px #6366f147}.parent-topbar .brand{color:#fff}.parent-topbar .btn-ghost{color:#fff;background:#ffffff2e;border-color:#fff6}.parent-topbar .btn-ghost:hover{background:#ffffff4d}.parent-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.parent-form{text-align:center;border:1px solid #6366f12e;border-radius:20px;flex-direction:column;gap:.5rem;max-width:440px;margin:2.5rem auto 0;padding:2rem 1.8rem;display:flex;box-shadow:0 20px 50px #6366f12e}.parent-form h1{background:var(--grad-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:.3rem;font-family:Poppins,sans-serif}.parent-form label{text-align:left;margin-top:.4rem;font-size:.85rem;font-weight:600}.parent-form input{width:100%}.parent-form .btn-primary{margin-top:1.1rem}.parent-form-logo{justify-content:center;margin-bottom:.3rem;display:flex}.parent-form-logo svg{filter:drop-shadow(0 6px 14px #6366f159)}.parent-link{margin-top:1rem;font-size:.9rem}.parent-link a{color:var(--primary);font-weight:600;text-decoration:none}.parent-link a:hover{text-decoration:underline}.login-sep{color:#94a3b8;align-items:center;gap:.6rem;margin:1rem 0 .75rem;font-size:.82rem;display:flex}.login-sep:before,.login-sep:after{content:"";background:#e2e8f0;flex:1;height:1px}.btn-parent{width:100%;color:var(--primary-dark,#4338ca);border:1.5px solid var(--primary);background:#fff;justify-content:center;align-items:center;gap:.4rem;font-weight:700;text-decoration:none;display:flex}.btn-parent:hover{background:#6366f114}.parent-report-wrap{margin-top:.5rem}.parent-report-wrap .grades-report{border-radius:18px;padding:0;overflow:hidden;box-shadow:0 16px 40px #6366f11f}.parent-identity{background:var(--grad-primary);color:#fff;flex-wrap:wrap;align-items:center;gap:1.1rem;margin-bottom:1.2rem;padding:1.4rem;display:flex}.parent-identity h2{color:#fff;font-family:Poppins,sans-serif}.parent-photo{object-fit:cover;border-radius:50%;width:72px;height:72px;box-shadow:0 0 0 4px #ffffff8c,0 8px 20px #0003}.parent-photo-ph{color:var(--primary-dark);background:#fff;justify-content:center;align-items:center;font-size:1.9rem;font-weight:700;display:flex}.parent-identity-info{flex:1;min-width:180px}.parent-id-meta{color:#ffffffeb;flex-wrap:wrap;gap:.35rem 1rem;margin:.35rem 0;font-size:.9rem;display:flex}.parent-id-meta b{color:#fff}.parent-identity .muted{color:#fffc!important}.parent-report-wrap .grade-summary,.parent-report-wrap .grade-section{padding-left:1.4rem;padding-right:1.4rem}.parent-report-wrap .grade-section:last-child{padding-bottom:1.4rem}.parent-report-wrap .grade-section-title{border-left:4px solid var(--primary);padding-left:.6rem}.parent-period>summary.grade-section-title{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.parent-period>summary.grade-section-title::-webkit-details-marker{display:none}.parent-period .period-caret{color:var(--primary);font-size:.85rem;transition:transform .2s}.parent-period[open]>summary .period-caret{transform:rotate(90deg)}.parent-period>summary.grade-section-title:hover{color:var(--primary)}.att-tags{flex-wrap:wrap;justify-content:center;gap:.3rem;display:inline-flex}.att-tag{border:1px solid var(--border);color:#334155;background:#f1f5f9;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700}.att-tag-h{color:#166534;background:#dcfce7;border-color:#86efac}.att-tag-i{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.att-tag-s{color:#854d0e;background:#fef9c3;border-color:#fde047}.att-tag-a{color:#991b1b;background:#fee2e2;border-color:#fca5a5}@media (width<=760px){.parent-main{padding:1rem .7rem 2.5rem}.parent-identity{text-align:center;justify-content:center;gap:.85rem;margin-bottom:1rem;padding:1.1rem 1rem}.parent-photo{width:58px;height:58px}.parent-identity h2{font-size:1.25rem;line-height:1.2}.parent-identity-info{flex:100%;min-width:0}.parent-id-meta{justify-content:center;gap:.25rem .9rem;font-size:.85rem}.parent-report-wrap .grade-summary,.parent-report-wrap .grade-section{padding-left:.85rem;padding-right:.85rem}.parent-report-wrap .grade-section:last-child{padding-bottom:1rem}}.pimpinan-note{color:#3730a3;background:linear-gradient(135deg,#eef2ff,#f5f3ff);border:1px solid #c7d2fe;border-radius:10px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem .9rem;font-size:.85rem;font-weight:600;display:flex}.pimpinan-stats{--pimp-radius:20px}.pimpinan-stats .as-cards{order:1;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1.1rem}.pimpinan-stats .as-card{border-radius:var(--pimp-radius);background:linear-gradient(160deg,#fff 0%,#fafbff 100%);border:1px solid #eef0f7;gap:1.05rem;padding:1.4rem 1.45rem;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 6px 18px #1e293b0f}.pimpinan-stats .as-card:before{content:"";opacity:.85;background:linear-gradient(#6366f1,#818cf8);width:4px;position:absolute;top:0;bottom:0;left:0}.pimpinan-stats .as-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px #1e293b1c}.pimpinan-stats .as-card-icon{border-radius:17px;width:60px;height:60px;font-size:1.85rem;box-shadow:inset 0 0 0 1px #fff9,0 3px 8px #1e293b14}.pimpinan-stats .as-card-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:#0f172a;font-size:2.35rem;font-weight:800}.pimpinan-stats .as-card-label{color:#475569;font-size:.9rem;font-weight:600}.pimpinan-stats .as-card-sub{color:#94a3b8;font-size:.76rem}.pimpinan-stats .as-toppanel{order:2}.pimpinan-stats .as-grid{order:3}.pimpinan-stats .as-section{order:4}.pimpinan-stats .as-mini{order:5}.pimpinan-stats .as-updated{order:6}.pimpinan-stats .as-tab{gap:1rem}.pimpinan-stats .as-grid{gap:.8rem}.pimpinan-stats .as-panel{border:1px solid #eef0f7;border-radius:16px;padding:.95rem 1.05rem;font-size:.9rem;box-shadow:0 3px 12px #1e293b0d}.pimpinan-stats .as-panel-title{letter-spacing:.01em;color:#334155;font-size:.82rem;font-weight:700}.pimpinan-stats .as-toppanel{background:linear-gradient(150deg,#fffdf5 0%,#fffbeb 100%);border:1px solid #fde68a;box-shadow:0 6px 20px #d977061a}.pimpinan-stats .as-toppanel .as-panel-title{color:#b45309}.pimpinan-stats .as-section{letter-spacing:.04em;text-transform:uppercase;color:#64748b;align-items:center;gap:.55rem;margin:.2rem 0 .1rem;font-size:.82rem;font-weight:700;display:flex}.pimpinan-stats .as-section:after{content:"";background:linear-gradient(90deg,#e2e8f0,#0000);flex:1;height:1px}.pimpinan-stats .as-mini{gap:.6rem}.pimpinan-stats .as-mini-card{background:#fff;border:1px solid #eef0f7;border-radius:14px;padding:.7rem .5rem;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #1e293b0a}.pimpinan-stats .as-mini-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #1e293b17}.pimpinan-stats .as-mini-icon{font-size:1.15rem}.pimpinan-stats .as-mini-value{color:#0f172a;font-size:1.2rem;font-weight:800}.pimpinan-stats .as-mini-label{color:#64748b;font-size:.68rem;font-weight:600}.pimpinan-stats .as-updated{text-align:right;font-style:italic}@media (width<=640px){.pimpinan-stats .as-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.pimpinan-stats .as-card{border-radius:14px;flex-direction:row;align-items:center;gap:.6rem;padding:.65rem .7rem .65rem .85rem}.pimpinan-stats .as-card-icon{border-radius:10px;flex:none;width:38px;height:38px;font-size:1.2rem}.pimpinan-stats .as-card-body{flex:auto;min-width:0}.pimpinan-stats .as-card-value{font-size:1.4rem;line-height:1.05}.pimpinan-stats .as-card-label{margin-top:.1rem;font-size:.7rem;line-height:1.15}.pimpinan-stats .as-card-sub{font-size:.62rem}.pimpinan-stats .as-card:before{width:3px}}.rekap-wrap>h3{margin-bottom:.15rem}.rekap-class{border:1px solid var(--border);background:#fff;border-radius:14px;margin-bottom:.9rem;padding:.8rem 1rem;box-shadow:0 2px 10px #0f172a0d}.rekap-class>summary .muted.tiny{font-weight:500}.rekap-stat-grid{flex-wrap:wrap;gap:.7rem;margin:.8rem 0;display:flex}.rekap-stat{background:linear-gradient(135deg,#eef2ff,#f8fafc);border:1px solid #e0e7ff;border-radius:10px;flex-direction:column;flex:150px;gap:.2rem;padding:.6rem .85rem;display:flex}.rekap-stat-wide{flex:2 260px}.rekap-cols{flex-wrap:wrap;gap:1.2rem;margin:.4rem 0 1rem;display:flex}.rekap-col{flex:280px;min-width:0}.rekap-h{color:var(--primary-dark);margin:0 0 .5rem;font-size:.9rem}.rekap-buckets{align-items:flex-end;gap:.6rem;height:130px;padding-top:.5rem;display:flex}.rekap-bucket{flex-direction:column;flex:1;align-items:center;gap:.3rem;height:100%;display:flex}.rekap-bucket-bar-wrap{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.rekap-bucket-bar{background:linear-gradient(#818cf8,#6366f1);border-radius:6px 6px 0 0;width:70%;min-height:3px;transition:height .4s;position:relative}.rekap-bucket-count{color:#334155;font-size:.75rem;font-weight:800;position:absolute;top:-1.1rem;left:50%;transform:translate(-50%)}.rekap-bucket-label{color:var(--muted);white-space:nowrap;font-size:.68rem}.rekap-student-table .score-badge{padding:.15rem .5rem;font-size:.85rem}@media (width<=760px){.rekap-cols{gap:.8rem}.rekap-buckets{height:110px}}.app-footer{text-align:center;color:#94a3b8;border-top:1px solid #eef0f7;margin-top:auto;padding:1rem 1.25rem;font-size:.8rem}.app-footer b{color:#475569;font-weight:600}.login-page .app-footer{color:#ffffffe6;z-index:1;border-top:none;position:absolute;bottom:0;left:0;right:0}.login-page .app-footer b{color:#fff}.progress-track{background:#eef0f7;border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#6366f1,#06b6d4);border-radius:999px;height:100%;transition:width .5s}.self-learning .sl-overview{background:linear-gradient(135deg,#eef2ff,#ecfeff);border:1px solid #e0e7ff}.sl-overview-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.6rem;display:flex}.sl-overall-pct{color:var(--primary-dark);font-size:1.8rem;font-weight:800;line-height:1}.sl-stats{color:#475569;flex-wrap:wrap;gap:.6rem 1.1rem;margin-top:.6rem;font-size:.85rem;display:flex}.sl-stats.tiny{margin-top:.5rem;font-size:.78rem}.student-home .sl-overview{background:linear-gradient(135deg,#eef2ff,#ecfeff);border:1px solid #e0e7ff}.home-stat-tiles{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;margin-top:.9rem;display:grid}.home-stat-tile{text-align:center;background:#ffffffbf;border:1px solid #e0e7ff;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;padding:.7rem .5rem;display:flex}.home-stat-ico{font-size:1.35rem;line-height:1}.home-stat-num{color:var(--primary-dark);font-size:1.25rem;font-weight:800;line-height:1.1}.home-stat-total{color:#94a3b8;font-size:.85rem;font-weight:600}.home-stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.home-cta{align-self:flex-start}.home-grades{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;padding:.7rem .95rem;display:flex}.home-grades-title{color:#92400e;align-items:center;gap:.45rem;font-size:.92rem;font-weight:700;display:flex}.home-grades-ico{font-size:1.15rem;line-height:1}.home-grade-pills{gap:.5rem;display:flex}.home-grade-pill{background:#ffffffd9;border:1px solid #fcd34d;border-radius:10px;flex-direction:column;align-items:center;gap:.05rem;min-width:78px;padding:.3rem .9rem;display:flex}.home-grade-num{color:#b45309;font-size:1.4rem;font-weight:800;line-height:1.1}.home-grade-label{color:#a16207;text-transform:uppercase;letter-spacing:.03em;font-size:.66rem;font-weight:600}@media (width<=560px){.home-grades{flex-direction:column;align-items:stretch;gap:.5rem}.home-grade-pills{width:100%}.home-grade-pill{flex-direction:row;flex:1;justify-content:space-between;align-items:center;padding:.4rem .85rem}.home-grade-num{font-size:1.3rem}}.sl-section-title{color:var(--primary-dark);align-items:center;gap:.5rem;margin:1.3rem 0 .7rem;font-size:.95rem;font-weight:700;display:flex}.sl-section-title:before{content:"";background:linear-gradient(#6366f1,#06b6d4);border-radius:999px;width:4px;height:1.05em}.sl-next-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem;display:grid}.sl-next-card{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:14px;align-items:center;gap:.75rem;padding:.85rem .95rem;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.sl-next-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 14px #6366f11f}.sl-next-card:focus{outline:none}.sl-next-card:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px #6366f138}.sl-next-ico{background:linear-gradient(135deg,#eef2ff,#ecfeff);border:1px solid #e0e7ff;border-radius:12px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.25rem;display:flex}.sl-next-body{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.sl-next-kind{text-transform:uppercase;letter-spacing:.03em;color:var(--primary);font-size:.7rem;font-weight:700}.sl-next-title{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sl-next-go{color:#cbd5e1;flex:none;font-size:1.4rem}.sl-subject-head{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.5rem;display:flex}.sl-subject-name{flex-direction:column;gap:.1rem;display:flex}.sl-subject-pct{color:var(--primary-dark);font-weight:800}.material-read-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.6rem 0 .2rem;display:flex}.lm-summary{background:linear-gradient(135deg,#eef2ff,#ecfeff);border:1px solid #e0e7ff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.lm-summary-stats{gap:1.4rem;display:flex}.lm-stat{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.lm-stat-num{color:var(--primary-dark);font-size:1.5rem;font-weight:800;line-height:1.1}.lm-table-wrap{padding:0;overflow-x:auto}.lm-table{border-collapse:collapse;width:100%;font-size:.9rem}.lm-table th,.lm-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #eef0f7;padding:.6rem .8rem}.lm-table th{text-transform:uppercase;letter-spacing:.03em;color:#64748b;background:#f8fafc;font-size:.75rem}.lm-col-num{text-align:center;white-space:nowrap}.lm-col-bar{min-width:160px}.lm-track{vertical-align:middle;width:calc(100% - 46px);height:8px;display:inline-block}.lm-pct{text-align:right;width:40px;color:var(--primary-dark);font-size:.8rem;font-weight:700;display:inline-block}.lm-detail-row td{background:#f8fafc}.lm-detail-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.25rem 1rem;margin:0;padding:.3rem 0;list-style:none;display:grid}.lm-detail-list li{color:#94a3b8;align-items:center;gap:.4rem;display:flex}.lm-detail-list li.read{color:#1e293b}.lm-check{color:#cbd5e1;font-weight:800}.lm-detail-list li.read .lm-check{color:#15803d}.lm-material-row{align-items:center;gap:.7rem;display:flex}.lm-material-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.lm-material-row .lm-track{flex:none;width:120px}.lm-material-count{white-space:nowrap;text-align:right;width:48px}.badge-check{color:#6d28d9;background:#ede9fe}.ce-block{background:#f5f7ff;border:1px dashed #c7d2fe;border-radius:12px;flex-direction:column;gap:.55rem;margin:.5rem 0;padding:.75rem;display:flex}.ce-question{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.ce-option{align-items:center;gap:.5rem;display:flex}.ce-option input[type=radio]{flex:none;width:auto;margin:0}.ce-option input:not([type=radio]){flex:auto;width:auto;min-width:0}.ce-reflect-toggle{align-items:center;gap:.4rem;font-size:.9rem;display:flex}.ce-reflect-toggle input[type=checkbox]{flex:none;width:auto;margin:0}.cek-panel{background:#faf5ff;border:1px solid #ddd6fe;border-radius:12px;flex-direction:column;gap:.55rem;margin:.6rem 0;padding:.8rem;display:flex}.cek-panel.is-pass{background:#ecfdf5;border-color:#a7f3d0}.cek-panel.is-fail{background:#fef2f2;border-color:#fecaca}.cek-rating{color:#334155;border-radius:8px;padding:.3rem .55rem}.cek-rating-sangat{background:#dcfce7;border:1px solid #86efac}.cek-rating-paham{background:#dbeafe;border:1px solid #93c5fd}.cek-rating-belum{background:#fef3c7;border:1px solid #fcd34d}.cek-question{flex-direction:column;gap:.3rem;display:flex}.cek-q-text{font-weight:600}.cek-option{cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.25rem .5rem;display:flex}.cek-option input[type=radio]{flex:none;width:auto;margin:0}.cek-option:hover{background:#6366f114}.cek-reflect{flex-direction:column;gap:.3rem;display:flex}.cek-reflect textarea{resize:vertical;width:100%}.lm-reflection{color:#475569;background:#f8fafc;border-left:3px solid #c7d2fe;border-radius:6px;margin-top:.25rem;padding:.35rem .55rem;font-size:.85rem}.lm-rate{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.4rem;display:flex}.lm-rate-btn{border:1px solid var(--border);color:#475569;cursor:pointer;background:#fff;border-radius:999px;padding:.2rem .7rem;font-size:.78rem;font-weight:600;transition:all .15s}.lm-rate-btn:hover{border-color:var(--accent2)}.lm-rate-btn.active{background:var(--grad-cool);color:#fff;border-color:#0000}.sl-subject-toggle{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:.6rem;width:100%;padding:0;display:flex}.sl-subject-toggle:focus{outline:none}.sl-subject-toggle:focus-visible{box-shadow:0 0 0 3px #6366f12e}.sl-subject-caret{color:#6366f1;margin-left:auto;font-size:.9rem;transition:transform .15s}.sl-subject-toggle .sl-subject-pct{margin-left:auto}.sl-subject-toggle .sl-subject-caret{margin-left:.3rem}.sl-materials{border-top:1px dashed #e0e7ff;margin-top:.7rem;padding-top:.7rem}.material-cek-hint{background:#f5f3ff;border-left:3px solid #c4b5fd;border-radius:6px;margin:.4rem 0 0;padding:.4rem .6rem}
