*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--yellow: #f7ce1a;--yellow-dark: #ddb50a;--yellow-light: #fff9d6;--blue: #2979c8;--blue-dark: #1a5ea8;--red: #e03020;--red-dark: #b82518;--cream: #fffbef;--text: #1a1a1a;--muted: #555;--white: #fff;--line: #ece6d6;--radius: 16px;--radius-lg: 24px}body{font-family:Nunito,sans-serif;background:var(--cream);color:var(--text);font-size:15px;line-height:1.6}.heb{font-family:Heebo,sans-serif;direction:rtl}a{color:inherit;text-decoration:none}.hidden{display:none!important}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(circle at 30% 20%,#fff 0%,var(--cream) 60%)}.login-card{background:#fff;border:3px solid var(--blue);border-radius:var(--radius-lg);box-shadow:8px 8px 0 var(--blue-dark);padding:2.5rem 2.2rem;width:100%;max-width:400px}.login-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:.5rem}.login-logo{width:104px;height:104px;border-radius:22px;object-fit:contain;box-shadow:0 6px 18px #ddb50a47}.login-brand{font-family:Fredoka One,cursive;font-size:1.7rem;color:var(--blue);line-height:1.05}.login-brand .zero{color:var(--red)}.login-sub{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:1.8rem}.field{margin-bottom:1.1rem}.field label{display:block;font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.4rem}.field input,.field select,.field textarea{width:100%;padding:.75rem 1rem;border:2.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:.97rem;font-weight:700;background:#fff;color:var(--text);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232979c8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:2.5rem;cursor:pointer}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2979c81f,3px 3px 0 var(--blue);background:#fff}.field input[type=number]::-webkit-inner-spin-button,.field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field input[type=number]{-moz-appearance:textfield}.login-btn{width:100%;background:var(--blue);color:#fff;font-family:Fredoka One,cursive;font-size:1.05rem;padding:.85rem;border:2px solid var(--blue-dark);border-radius:100px;box-shadow:4px 4px 0 var(--blue-dark);cursor:pointer;transition:.15s;margin-top:.5rem}.login-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--blue-dark)}.login-btn:disabled{opacity:.6;cursor:wait}.msg{border-radius:10px;padding:.65rem .9rem;font-size:.85rem;font-weight:700;margin-bottom:1rem}.msg.err{background:#fdeae8;border:2px solid var(--red);color:var(--red-dark)}.msg.ok{background:#e6f5e6;border:2px solid #7cc07c;color:#2e7d32}.login-note{margin-top:1.4rem;font-size:.78rem;color:var(--muted);font-weight:700;text-align:center;line-height:1.5}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.side{background:var(--blue);color:#fff;padding:1.5rem 1.1rem;display:flex;flex-direction:column;gap:1.4rem;border-right:4px solid var(--blue-dark);position:sticky;top:0;height:100vh;overflow:hidden}.side-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1.4rem;scrollbar-width:none}.side-scroll::-webkit-scrollbar{display:none}.brand{display:flex;flex-direction:column;gap:2px;padding-bottom:1.1rem;border-bottom:2px solid rgba(255,255,255,.18)}.brand .name{font-family:Fredoka One,cursive;font-size:1.25rem;line-height:1.1}.brand .sub{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.me{display:flex;align-items:center;gap:11px}.avatar{width:42px;height:42px;border-radius:50%;background:var(--yellow);color:var(--blue-dark);display:flex;align-items:center;justify-content:center;font-family:Fredoka One,cursive;font-size:1rem;border:2px solid var(--yellow-dark);flex-shrink:0}.me .nm{font-weight:900;font-size:.95rem;line-height:1.1}.me .lv{font-size:.74rem;opacity:.75;font-weight:700;text-transform:capitalize}.navgroup{display:flex;flex-direction:column;gap:3px}.navgroup .label{font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;opacity:.55;margin:.3rem 0 .35rem .4rem}.navlink{display:flex;align-items:center;gap:10px;padding:.6rem .75rem;border-radius:11px;font-weight:800;font-size:.9rem;color:#fff;transition:.15s;cursor:pointer;border:none;background:transparent;font-family:inherit;text-align:left;width:100%}.navlink:hover{background:#ffffff21}.navlink.active{background:#fff;color:var(--blue-dark);box-shadow:3px 3px 0 var(--blue-dark)}.logout{width:100%;background:transparent;border:2px solid rgba(255,255,255,.3);color:#fff;border-radius:10px;padding:.55rem;font-family:inherit;font-weight:800;font-size:.82rem;cursor:pointer;transition:.15s}.logout:hover{background:#ffffff1f}.main{padding:2rem 2.2rem;max-width:1100px}.pagetitle{font-family:Fredoka One,cursive;font-size:1.8rem;color:var(--blue);margin-bottom:.15rem}.pagesub{color:var(--muted);font-weight:700;font-size:.92rem;margin-bottom:1.6rem}.card{background:#fff;border:2.5px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;box-shadow:5px 5px 0 var(--line);margin-bottom:1.4rem}.card h3{font-family:Fredoka One,cursive;font-size:1.1rem;color:var(--text);margin-bottom:1rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn{background:var(--blue);color:#fff;font-family:Fredoka One,cursive;font-size:.95rem;padding:.7rem 1.4rem;border:2px solid var(--blue-dark);border-radius:100px;box-shadow:4px 4px 0 var(--blue-dark);cursor:pointer;transition:.15s}.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--blue-dark)}.btn:disabled{opacity:.6;cursor:wait}.btn.yellow{background:var(--yellow);color:var(--blue-dark);border-color:var(--yellow-dark);box-shadow:4px 4px 0 var(--yellow-dark)}.btn.small{font-size:.8rem;padding:.45rem .9rem;box-shadow:3px 3px 0 var(--blue-dark)}.btn.ghost{background:#fff;color:var(--muted);border-color:var(--line);box-shadow:4px 4px 0 var(--line)}.btn.ghost.danger{color:var(--red-dark);border-color:var(--red);box-shadow:3px 3px 0 var(--red)}.btn.ghost.danger:hover{box-shadow:5px 5px 0 var(--red);transform:translate(-2px,-2px)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900;padding:.5rem .6rem;border-bottom:2px solid var(--line)}td{padding:.7rem .6rem;border-bottom:1px solid var(--line);font-weight:700;font-size:.9rem;vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr{transition:background .1s}tbody tr:hover{background:var(--yellow-light)}.pill{display:inline-block;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:100px;border:2px solid}.pill.owner{background:var(--yellow-light);color:var(--yellow-dark);border-color:var(--yellow-dark)}.pill.teacher{background:#e8f0fb;color:var(--blue-dark);border-color:var(--blue)}.pill.student{background:#efeafb;color:#5b3fb8;border-color:#8b6fd8}.pill.none{background:#fdeae8;color:var(--red-dark);border-color:var(--red)}.pill.scheduled{background:#e8f0fb;color:var(--blue-dark);border-color:var(--blue)}.pill.completed{background:#e6f5e6;color:#2e7d32;border-color:#7cc07c}.pill.cancelled{background:#f1eee6;color:var(--muted);border-color:var(--line)}.pill.no_show{background:var(--yellow-light);color:var(--yellow-dark);border-color:var(--yellow-dark)}.miniavatar{width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:.75rem;margin-right:8px;vertical-align:middle}.student-picker{display:flex;flex-direction:column;gap:7px;max-height:280px;overflow-y:auto;padding-right:2px}.student-picker::-webkit-scrollbar{width:4px}.student-picker::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.stu-option{display:flex;align-items:center;gap:12px;padding:11px 14px;border:2.5px solid var(--line);border-radius:14px;cursor:pointer;transition:.15s;background:#fff;text-align:left;width:100%;font-family:inherit}.stu-option:hover{border-color:var(--blue);background:#f2f6fd}.stu-option.selected{border-color:var(--blue);background:#e8f0fb;box-shadow:3px 3px 0 var(--blue)}.stu-av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Fredoka One,cursive;font-size:.95rem;color:#fff;flex-shrink:0;border:2px solid rgba(0,0,0,.08)}.stu-info{flex:1;min-width:0}.stu-name{font-weight:900;font-size:.95rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stu-bal{font-size:.75rem;font-weight:700;color:var(--muted);margin-top:1px}.stu-bal.empty{color:var(--red)}.assign-sel{padding:.7rem 2.5rem .7rem 1rem;border:2.5px solid var(--line);border-radius:12px;font-family:inherit;font-weight:700;font-size:.95rem;background:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232979c8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.assign-sel:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2979c81f,3px 3px 0 var(--blue)}.loading{padding:3rem;text-align:center;color:var(--muted);font-weight:800}.empty-row td{color:var(--muted);font-style:italic;text-align:center;padding:1.5rem}.tz-opt{display:flex;align-items:flex-start;gap:10px;padding:.6rem .2rem;cursor:pointer;font-weight:700;font-size:.92rem}.tz-opt input{margin-top:3px;width:18px;height:18px;accent-color:var(--blue);cursor:pointer;flex-shrink:0}.tz-opt .hint{display:inline;margin:0;font-weight:700}.filterbar{display:flex;gap:.5rem;margin-bottom:1.1rem;flex-wrap:wrap}.filter-btn{display:inline-flex;align-items:center;gap:8px;padding:.5rem 1.05rem;border:2px solid var(--line);border-radius:100px;background:#fff;font-family:inherit;font-weight:800;font-size:.85rem;color:var(--muted);cursor:pointer;transition:.15s}.filter-btn:hover{border-color:var(--blue);color:var(--blue)}.filter-btn.active{background:var(--blue);border-color:var(--blue-dark);color:#fff;box-shadow:3px 3px 0 var(--blue-dark)}.filter-btn .cnt{font-size:.72rem;font-weight:900;background:#00000014;padding:1px 8px;border-radius:100px;min-width:22px;text-align:center}.filter-btn.active .cnt{background:#ffffff47;color:#fff}.filter-search{margin-left:auto;min-width:220px;padding:.5rem 1rem;border:2px solid var(--line);border-radius:100px;font-family:inherit;font-weight:700;font-size:.85rem;background:#fff;color:var(--text);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.filter-search:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2979c81f}@media (max-width: 620px){.filter-search{margin-left:0;width:100%}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a5ea840;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.modal-card{position:relative;background:#fff;border:3px solid var(--blue);border-top:6px solid var(--yellow);border-radius:var(--radius-lg);box-shadow:8px 8px 0 var(--blue-dark);padding:2.2rem;width:100%;max-width:560px}.modal-x{position:absolute;top:1.1rem;right:1.1rem;width:34px;height:34px;padding:0;border:2px solid var(--line);background:#fff;font-size:1.3rem;line-height:1;color:var(--muted);cursor:pointer;border-radius:10px;box-shadow:2px 2px 0 var(--line);display:flex;align-items:center;justify-content:center;transition:.15s}.modal-x:hover{color:var(--blue);border-color:var(--blue);box-shadow:2px 2px 0 var(--blue-dark);transform:translate(-1px,-1px)}.modal-x:disabled{opacity:.5;cursor:wait;transform:none}.modal-card h3{font-family:Fredoka One,cursive;font-size:1.5rem;color:var(--blue);margin-bottom:.2rem;padding-right:2.4rem}.modal-info{font-size:1.02rem;font-weight:700;color:var(--text);line-height:1.5;margin-top:.3rem}.modal-info.sub{font-size:.92rem;font-weight:800;color:var(--blue)}.modal-card .hint{font-size:.88rem;line-height:1.55}.modal-card .btn{font-size:1.05rem;padding:.8rem 1.6rem}.hint{margin-top:.3rem;font-size:.76rem;color:var(--muted);font-weight:700}.navlink .ic{display:flex;align-items:center;flex-shrink:0;width:18px;color:var(--ic, currentColor)}.modal-tabs{display:flex;align-items:center;gap:8px;margin-bottom:1.1rem;padding-right:3.5rem}.modal-tab{flex:1;padding:.55rem .9rem;background:var(--cream);border:2px solid var(--line);border-radius:100px;font-family:Fredoka One,cursive;font-size:.95rem;cursor:pointer;color:var(--muted);transition:.15s;letter-spacing:.01em}.modal-tab.active{background:var(--blue);color:#fff;border-color:var(--blue-dark);box-shadow:3px 3px 0 var(--blue-dark)}.modal-tab:hover:not(.active){background:#fff;border-color:var(--blue);color:var(--blue)}.streak{display:flex;align-items:center;gap:9px;background:#ffffff1a;border-radius:12px;padding:.6rem .75rem}.streak .fire{font-size:1.3rem}.streak .n{font-family:Fredoka One,cursive;font-size:1.05rem}.streak .t{font-size:.72rem;opacity:.75;font-weight:700}.dash{display:grid;grid-template-columns:1fr 320px;gap:1.8rem;align-items:start}.col-main{min-width:0}.greet{font-family:Fredoka One,cursive;font-size:1.9rem;color:var(--blue);margin-bottom:.15rem}.greet .heb{color:var(--text)}.subgreet{color:var(--muted);font-weight:700;font-size:.92rem;margin-bottom:1.2rem}.days{display:flex;gap:8px;margin-bottom:1.6rem}.day{width:42px;height:42px;border-radius:12px;border:2px solid var(--line);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;color:var(--muted);font-size:.9rem;position:relative;gap:2px}.day.today{background:var(--blue);color:#fff;border-color:var(--blue-dark);box-shadow:3px 3px 0 var(--blue-dark)}.day.has-lesson:not(.today){border-color:var(--blue);color:var(--blue)}.lesson-dot{width:5px;height:5px;border-radius:50%;background:var(--blue);flex-shrink:0}.day.today .lesson-dot{background:#fffc}.nextclass{background:var(--blue);color:#fff;border:3px solid var(--blue-dark);border-radius:var(--radius-lg);box-shadow:6px 6px 0 var(--blue-dark);padding:1.5rem 1.7rem;margin-bottom:1.8rem;position:relative;overflow:hidden}.nextclass .eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow);margin-bottom:.4rem}.nextclass .when{font-family:Fredoka One,cursive;font-size:1.85rem;line-height:1.05;margin-bottom:.45rem}.nextclass .meta{font-size:.86rem;font-weight:700;opacity:.85;margin-bottom:1.1rem}.teacher{display:flex;align-items:center;gap:11px}.teacher .av{width:40px;height:40px;border-radius:50%;background:var(--yellow);color:var(--blue-dark);display:flex;align-items:center;justify-content:center;font-family:Fredoka One,cursive;font-size:.85rem;border:2px solid var(--yellow-dark)}.teacher .nm{font-weight:900;font-size:.92rem;line-height:1.1}.teacher .rl{font-size:.76rem;opacity:.8;font-weight:700}.joinbtn{position:absolute;right:1.7rem;bottom:1.5rem;background:var(--yellow);color:var(--blue-dark);font-family:Fredoka One,cursive;font-size:.95rem;padding:.7rem 1.4rem;border-radius:100px;border:2px solid var(--yellow-dark);box-shadow:4px 4px 0 var(--yellow-dark);cursor:pointer;transition:.15s}.joinbtn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--yellow-dark)}.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.sec-title{font-family:Fredoka One,cursive;font-size:1.15rem;color:var(--text)}.due-pill{background:var(--red);color:#fff;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;padding:4px 12px;border-radius:100px;border:2px solid var(--red-dark)}.hw-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.hw{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:3px 3px 0 var(--line);display:flex;gap:12px;align-items:flex-start}.hw .emoji{font-size:1.4rem;flex-shrink:0}.hw .body{flex:1;min-width:0}.hw .t{font-weight:900;font-size:.92rem;margin-bottom:2px}.hw .s{font-size:.76rem;color:var(--muted);font-weight:700}.rail{display:flex;flex-direction:column;gap:1.3rem}.rail .card{margin-bottom:0}.rail .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.rail .ttl{font-weight:900;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.rail .count{font-size:.74rem;font-weight:800;color:var(--muted)}.flash{background:var(--blue);color:#fff;border:3px solid var(--blue-dark);border-radius:var(--radius);box-shadow:4px 4px 0 var(--blue-dark);padding:1.6rem 1rem;text-align:center;cursor:pointer;margin-bottom:.7rem}.flash .word{font-family:Heebo,sans-serif;font-weight:800;font-size:2.4rem;direction:rtl;line-height:1.1}.flash .reveal{font-size:1.1rem;font-weight:800;margin-top:.4rem}.flash .hintline{font-size:.72rem;opacity:.7;font-weight:700;margin-top:.5rem}.tool-link{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:3px 3px 0 var(--line);transition:.15s;cursor:pointer}.tool-link:hover{box-shadow:5px 5px 0 var(--line);transform:translate(-1px,-1px)}.tool-link.disabled{opacity:.55;cursor:default;box-shadow:3px 3px 0 var(--line);transform:none}.tool-link .emoji{font-size:1.5rem}.tool-link .t{font-weight:900;font-size:.95rem}.tool-link .s{font-size:.78rem;color:var(--muted);font-weight:700}.news .headline{font-family:Heebo,sans-serif;direction:rtl;font-weight:800;font-size:1.05rem;color:var(--blue-dark);line-height:1.4;margin-bottom:.6rem}.news .more{font-size:.76rem;font-weight:800;color:var(--blue)}.cal-toolbar{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;flex-wrap:wrap}.cal-nav{width:38px;height:38px;border-radius:10px;border:2px solid var(--line);background:#fff;font-weight:900;font-size:1rem;cursor:pointer;color:var(--blue-dark)}.cal-nav:hover{border-color:var(--blue)}.cal-range{font-family:Fredoka One,cursive;font-size:1.05rem;color:var(--blue)}.cal-hint{font-size:.8rem;font-weight:700;color:var(--muted);margin-left:auto}.cal-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);box-shadow:4px 4px 0 var(--line);overflow:hidden}.cal-head{display:grid;grid-template-columns:52px repeat(7,1fr);border-bottom:2px solid var(--line)}.cal-head .col{padding:.5rem .3rem;text-align:center;font-weight:900;font-size:.78rem;border-left:1px solid var(--line);color:var(--muted)}.cal-head .col.today{color:var(--blue);background:var(--yellow-light)}.cal-head .col .dnum{font-family:Fredoka One,cursive;font-size:1.1rem;color:var(--text)}.cal-body{display:grid;grid-template-columns:52px repeat(7,1fr);max-height:600px;overflow-y:auto;position:relative}.cal-gutter{position:relative}.cal-gutter .hr{height:var(--hourpx, 48px);font-size:.68rem;font-weight:800;color:var(--muted);text-align:right;padding-right:5px;transform:translateY(-7px)}.cal-col{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,var(--line) 47px,var(--line) 48px);cursor:pointer}.cal-col.today{background-color:#f7ce1a0f}.cal-ev{position:absolute;left:3px;right:3px;border-radius:7px;padding:3px 6px;overflow:hidden;border:1.5px solid;display:flex;flex-direction:column;gap:1px}.cal-ev.timeoff{pointer-events:none}.cal-ev .ev-time{font-size:.68rem;font-weight:900;opacity:.9;white-space:nowrap;line-height:1.2}.cal-ev .ev-name{font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25;font-family:Nunito,sans-serif}.cal-ev.short{flex-direction:row;align-items:baseline;gap:5px;padding:1px 6px}.cal-ev.short .ev-time{flex:none;font-size:.64rem}.cal-ev.short .ev-name{flex:1;min-width:0;font-size:.72rem}.cal-ev.ghost{background:#2563eb1a;border-color:var(--blue);border-style:dashed;align-items:center;justify-content:center;font-size:.9rem;font-weight:900;color:var(--blue);z-index:10;border-radius:8px;letter-spacing:.02em}.cal-zoom{display:flex;gap:3px;margin-left:.3rem}.cal-ev.scheduled{background:#2563b0;border-color:#1a4a8a;color:#fff}.cal-ev.completed{background:#276221;border-color:#1a4516;color:#fff}.cal-ev.cancelled{background:#9e9e9e;border-color:#757575;color:#fff;text-decoration:line-through;opacity:.7}.cal-ev.no_show{background:#e65100;border-color:#bf360c;color:#fff}.cal-ev.intro{background:#6a3bbf;border-color:#4a2990;color:#fff}.cal-ev.gcal{border-style:solid}.cal-ev.timeoff{background:repeating-linear-gradient(45deg,#fdeae8,#fdeae8 6px,#fbe0dd 6px,#fbe0dd 12px);border-color:var(--red);color:var(--red-dark)}.cal-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.9rem;font-size:.76rem;font-weight:800;color:var(--muted)}.cal-legend .key{display:inline-flex;align-items:center;gap:6px}.cal-legend .sw{width:14px;height:14px;border-radius:4px;border:1.5px solid}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.slot{background:var(--cream);border:2px solid var(--line);border-radius:12px;padding:.6rem .8rem;font-weight:800;font-size:.85rem;cursor:pointer;transition:.15s;text-align:left;font-family:inherit}.slot:hover{border-color:var(--blue);background:#fff}.slot.selected{background:var(--blue);color:#fff;border-color:var(--blue-dark);box-shadow:3px 3px 0 var(--blue-dark)}.day-label{font-family:Fredoka One,cursive;font-size:1rem;color:var(--blue);margin:1.1rem 0 .6rem}@media (max-width: 1050px){.dash{grid-template-columns:1fr}.rail{order:-1}}@media (max-width: 760px){.shell{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;height:auto;position:static;overflow:visible}.side-scroll{flex-direction:row;flex-wrap:wrap;flex:initial;overflow-y:visible}.streak{margin:0}.row,.hw-grid{grid-template-columns:1fr}}
