/* Shared, mobile-first corrections; retain the existing visual language. */
#portal-notice{position:fixed;inset:12px 12px auto;z-index:10000;max-width:700px;margin:auto;padding:14px 16px;border:1px solid #c17b20;border-radius:14px;background:#fff8e8;color:#633900;box-shadow:0 5px 24px #0002;font:500 16px/1.5 'Ploni',Arial,sans-serif;display:flex;align-items:center;gap:16px}
#portal-notice button{margin-inline-start:auto;border:0;background:transparent;color:inherit;font:inherit;min-height:44px;cursor:pointer}
button,input,textarea,select{font-family:inherit}
:where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:3px solid #6a45c9;outline-offset:3px}
button:disabled{cursor:wait;opacity:.7}
.portal-state{padding:18px;line-height:1.65;color:#44434c;background:#fff;border:1px solid #e5e5ea;border-radius:16px;margin-block:12px}
.portal-state strong{display:block;color:#25232b;font-size:18px;margin-bottom:5px}
.portal-state button{margin-top:12px}
.portal-state.error{border-color:#bd6d67;background:#fff8f7}
#lms-status{font-size:15px}#lms-lessons .lesson.pend{opacity:1;background:#f7f7fa}#lms-lessons .lesson .t{color:#303038}#lms-lessons .lesson .m{color:#5c5b64}
#lms-lessons button.lesson{width:100%;text-align:start;font:inherit;border:1px solid #e5e5ea;cursor:pointer}#lms-lessons .lesson.playing{border-color:#6a45c9;background:#efeafb}
#lms-courses{width:100%;margin-bottom:10px;font-size:16px;min-height:48px}
#lms-count{line-height:1.5;text-align:end}#lms-caption:empty{display:none}
#home-learning .btn{width:100%;margin-top:12px}
[role=button]{cursor:pointer}.kv>span:last-child{overflow-wrap:anywhere;min-width:0}
@media(max-width:600px){
 body .hd{flex-wrap:wrap;align-items:center;gap:10px}body .hd h1{flex:1 0 100%;font-size:23px;line-height:1.3}body .hd .sp{display:none}
 .tools input,.tools select{min-width:0!important;max-width:100%;font-size:16px!important;min-height:44px}
 body .chead{flex-wrap:wrap;gap:12px}body .chead>.ic{flex:0 0 40px}body .chead>div:not(.ic):not(.right){flex:1;min-width:0}
 body .chead .right{flex:1 0 100%;min-width:0;margin:0;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px}
 body .chead .nm{font-size:17px;line-height:1.4}body .chead .prog{width:90px;max-width:25vw}
 body .les{flex-wrap:wrap}body .les input.t{min-width:0;font-size:16px}
 .ccrow2 select,.ccrow2 input{font-size:16px;min-height:44px;max-width:100%}
 .ccstats b,.stat b,.stat .n{font-variant-numeric:tabular-nums}body .wrap{min-width:0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.portal-state-content{line-height:1.65}.portal-state-content>strong{display:block;margin-bottom:6px}.cal-cell:not(.holiday):not(.lesson){background:#fff}

@media(max-width:600px){
 .tools>input{flex:1 0 100%!important;width:100%;min-width:0!important}
 #studtbl{max-width:100%;overflow-x:auto;border-radius:14px}
 #p-st .in{min-width:0!important;max-width:100%;font-size:16px;min-height:44px}
 #p-st select{width:100%}#p-st #stq{flex:1 0 100%}
 .frm .f{min-width:0;max-width:100%}.frm .in{max-width:100%;min-width:0}
}

/* Invoice help is explanatory text, not a fake download control. */
#b-invlist .row{flex-wrap:wrap}#b-invlist .row>div:not(.ic){flex:1;min-width:0}
#b-invlist .row>.badge{flex-basis:100%;max-width:100%;margin-inline-start:0!important;white-space:normal;line-height:1.5;text-align:start;background:transparent;color:var(--muted);padding:0}

/* Keep masked identifiers and phone numbers in reading order inside Hebrew rows. */
#b-idnum,#b-phone,#b-email{direction:ltr;unicode-bidi:isolate;text-align:left}
#sv-phone,#sv-email{direction:ltr;text-align:start}

/* Astro2 · shared light operations surfaces. No table geometry or hooks changed. */
body.astro2-staff{--bg:#f5f5f7;--surface:#fff;--ink:#22232b;--muted:#737480;--line:#e6e6ee;--accent:#6a45c9;--accent-soft:#f0ebfa;--staff-shadow:0 1px 3px #22233703,0 6px 22px #22233705;background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}
.astro2-staff .wrap{max-width:1220px}
.astro2-staff .hd,.astro2-staff .topbar{padding:16px 0 24px;margin-bottom:12px;border-bottom:1px solid var(--line);gap:14px}
.astro2-staff .hd h1,.astro2-staff .topbar h1{font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.2}
.astro2-staff .hd a{padding:10px 15px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--accent)}
.astro2-staff .stats{gap:14px;margin-top:22px;margin-bottom:26px}
.astro2-staff .stat{padding:20px 22px;border:1px solid #ebebf1;border-radius:20px;box-shadow:var(--staff-shadow);background:#fff}
.astro2-staff .stat b,.astro2-staff .stat .n{font-size:32px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.astro2-staff .stat span,.astro2-staff .stat .l{font-size:13px;color:var(--muted);display:block;margin-top:5px}
.astro2-staff .card,.astro2-staff .cc,.astro2-staff .mxwrap{border:1px solid #e7e7ee;border-radius:20px;box-shadow:var(--staff-shadow)}
.astro2-staff .cc{padding:18px}.astro2-staff .cc.exp{border-color:#bdaae4;box-shadow:inset 0 0 0 1px #bdaae4}
.astro2-staff .tools{gap:10px;margin-bottom:20px}
.astro2-staff .tools input,.astro2-staff .tools select,.astro2-staff .in{min-height:46px;border-radius:13px;background:#fff;border-color:#e1e1e9;box-shadow:0 1px 2px #20213402}
.astro2-staff .tools input:focus,.astro2-staff .tools select:focus,.astro2-staff .in:focus{box-shadow:0 0 0 3px #6a45c912;border-color:#a68cde}
.astro2-staff .btn,.astro2-staff .mbtn{border-radius:12px;min-height:42px;transition:background .18s,transform .18s,box-shadow .18s}
.astro2-staff .btn:active,.astro2-staff .mbtn:active{transform:scale(.98)}
.astro2-staff .tabs{background:#eaeaf0;border:1px solid #e5e5ec;border-radius:16px;padding:5px;gap:4px;margin-bottom:26px}
.astro2-staff .tab{border:0;padding:11px 17px;border-radius:11px;margin:0;font-size:14px;line-height:1.3;min-height:42px;font-weight:500}
.astro2-staff .tab.on{background:#fff;color:#51369a;box-shadow:0 2px 5px #2223370a}
.astro2-staff .seg{border-color:#e5e5ec;background:#eaeaf0;padding:4px;gap:3px;border-radius:13px}
.astro2-staff .seg button{border-radius:9px;font-size:14px;min-height:36px;padding:8px 14px}.astro2-staff .seg button.on{background:#fff;color:var(--accent);box-shadow:0 2px 5px #2223370a}
.astro2-staff th{background:#f8f8fb;color:#777583;font-size:12px;letter-spacing:0}
.astro2-staff td{border-bottom-color:#eeeef3;font-variant-numeric:tabular-nums}
.astro2-staff table:not(.mx) td{padding-top:15px;padding-bottom:15px}
.astro2-staff table.mx thead th,.astro2-staff table.mx thead th.corner{background:#f5f4f9}
.astro2-staff table.mx td.namecol{background:#fff}
.astro2-staff .modal,.astro2-staff .panel{border-radius:26px;box-shadow:0 24px 90px #19132424}
.astro2-staff .ov{background:#2623314d;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.astro2-staff .gate,.astro2-staff #login.login{max-width:400px;margin:12vh auto;padding:38px 30px;border:1px solid #e7e7ee;border-radius:28px;background:#fff;box-shadow:0 8px 32px #23203308;text-align:center}
.astro2-staff .gate h2,.astro2-staff #login h2{font-size:27px;font-weight:600;line-height:1.25}
.astro2-staff .gate input,.astro2-staff #login input{background:#f7f7fa;border-color:#e7e7ee;font-size:16px;min-height:54px;border-radius:14px}
.astro2-staff .gate button{min-height:50px;border-radius:14px}
.astro2-staff #login .lg{width:52px;height:52px;background:#f0ebfa;color:var(--accent);box-shadow:none;border-radius:17px;font-size:24px}
.astro2-staff .chead{padding:22px}.astro2-staff .chead .nm{font-size:17px;font-weight:600}.astro2-staff .chead .meta{font-size:13px}
.astro2-staff .chead .ic{background:#f0ebfa;border-radius:14px}
.astro2-staff .prog i,.astro2-staff .bar i{background:var(--accent)}
/* Staff chrome is neutral; gradient thumbnails are not the brand surface. */
.astro2-staff .thumb{background:#ebe9f2}.astro2-staff .thumb .pl{background:#ffffffd9;color:var(--accent);box-shadow:0 3px 10px #2021340a}
.astro2-staff .card .body{padding:18px}.astro2-staff .card .tt{font-size:16px;font-weight:600;line-height:1.4;min-height:44px}
.astro2-staff .card .cs{font-size:12px;margin-top:7px}.astro2-staff .card .mrow{font-size:12px;margin-top:13px}
.astro2-staff #app>.wrap>.top{background:transparent;color:var(--ink);border-radius:0;border-bottom:1px solid var(--line);padding:30px 0 24px;margin:0 0 26px;box-shadow:none}
.astro2-staff #app>.wrap>.top:after{display:none}.astro2-staff #app>.wrap>.top h1{font-size:34px;font-weight:600}.astro2-staff #app>.wrap>.top .sub{font-size:14px;color:var(--muted);margin-top:8px}
/* The team launchpad: logo, editorial welcome and a precise card grid. */
.astro2-hub>.hero{background:#fff;color:var(--ink);padding:44px 24px 38px;text-align:start;border-bottom:1px solid var(--line);max-width:none}
.astro2-hub>.hero:after{display:none}.astro2-hub>.hero>*{max-width:1116px;margin-inline:auto}
.astro2-hub>.hero .logo{width:166px;height:60px;background:transparent url('logo.jpg') center/contain no-repeat;font-size:0;display:block;border-radius:0;backdrop-filter:none;margin-bottom:32px;margin-inline-start:max(0px,calc((100% - 1116px)/2));margin-inline-end:0}
.astro2-hub>.hero h1{font-size:38px;font-weight:600;letter-spacing:-.03em;line-height:1.15}.astro2-hub>.hero p{font-size:16px;color:var(--muted);margin-top:12px}
.astro2-hub .wrap{max-width:1160px;margin:32px auto 40px;padding:0 22px}
.astro2-hub .sec{font-size:14px;font-weight:600;color:#6f6b7c;margin:32px 0 16px}
.astro2-hub .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.astro2-hub .tile{padding:26px;border-radius:24px;border-color:#e8e8ef;box-shadow:var(--staff-shadow);gap:12px;position:relative}
.astro2-hub .tile h2{font-size:22px;font-weight:600;letter-spacing:-.02em}.astro2-hub .tile p{font-size:14px;line-height:1.65;max-width:420px}
.astro2-hub .tile .ic{background:#f1edf8;border-radius:16px;width:48px;height:48px;font-size:23px}.astro2-hub .tile .tag{position:absolute;top:28px;left:26px;background:#f3f1f7;color:#80788f;font-size:11px}
.astro2-hub .tile .tag.stu{color:#3c8161;background:#edf6f1}.astro2-hub .go{margin-top:12px;font-size:14px;color:var(--accent)}
.astro2-hub .sec:first-child+.grid{grid-template-columns:1fr}
.astro2-hub .sec:first-child+.grid .tile{padding:28px;border-color:#e0d9ee}
.astro2-hub .mig{border-color:#e8e8ef;border-radius:22px;box-shadow:var(--staff-shadow);padding:24px}
@media(min-width:900px){.astro2-staff:not(.astro2-hub) .wrap{padding-top:20px}.astro2-hub .sec:first-child+.grid .tile{display:grid;grid-template-columns:56px 1fr auto;column-gap:22px;align-items:center}.astro2-hub .sec:first-child+.grid .tile .ic{grid-column:1;grid-row:1/3}.astro2-hub .sec:first-child+.grid .tile h2{grid-column:2;grid-row:1}.astro2-hub .sec:first-child+.grid .tile p{grid-column:2;grid-row:2;max-width:690px}.astro2-hub .sec:first-child+.grid .tile .go{grid-column:3;grid-row:1/3;padding:12px 18px;background:var(--accent);color:#fff;border-radius:13px;align-self:end}.astro2-hub .sec:first-child+.grid .tile .tag{top:16px;left:28px}}
@media(max-width:600px){
 .astro2-staff .hd h1,.astro2-staff .topbar h1{font-size:26px}
 .astro2-staff .stats{gap:10px}.astro2-staff .stat{padding:16px;min-width:0;flex:1 1 42%}.astro2-staff .stat b,.astro2-staff .stat .n{font-size:27px}
 .astro2-staff .tabs{gap:3px}.astro2-staff .tab{padding:10px 12px;font-size:13px;flex:1 0 auto}
 .astro2-staff .gate,.astro2-staff #login.login{width:calc(100% - 32px);margin:8vh auto}
 .astro2-staff .topbar>div:not(.brand-dot){min-width:0}.astro2-staff .chead{padding:18px}
 .astro2-hub>.hero{padding:30px 24px 32px}.astro2-hub>.hero .logo{margin-bottom:28px;width:145px;height:50px}.astro2-hub>.hero h1{font-size:32px}.astro2-hub>.hero p{font-size:15px;line-height:1.6}
 .astro2-hub .wrap{margin-top:22px}.astro2-hub .grid{grid-template-columns:1fr;gap:14px}.astro2-hub .tile{padding:24px}.astro2-hub .tile h2{font-size:21px}.astro2-hub .sec:first-child+.grid .tile{padding:24px}
}
@media(prefers-reduced-motion:reduce){.astro2-staff *, .astro2-staff *:before,.astro2-staff *:after{animation:none!important;transition:none!important}}

/* Restrained line iconography for the staff launchpad, replacing decorative emoji visually. */
.astro2-hub .tile .ic{font-size:0}.astro2-hub .tile .ic:before{content:"";display:block;width:24px;height:24px;background:var(--accent);mask:var(--hub-icon) center/contain no-repeat;-webkit-mask:var(--hub-icon) center/contain no-repeat}
.astro2-hub .tile[href$="/portal/"] .ic{--hub-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%225%22%20y%3D%222%22%20width%3D%2214%22%20height%3D%2220%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M10%2018h4%22%2F%3E%3C%2Fsvg%3E")}
.astro2-hub .tile[href$="incontrol.html"] .ic{--hub-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%207h16M4%2017h16%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%223%22%20fill%3D%22white%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2217%22%20r%3D%223%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E")}
.astro2-hub .tile[href$="office.html"] .ic{--hub-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2217%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M8%202v4M16%202v4M3%2010h18M8%2014h3M8%2017h6%22%2F%3E%3C%2Fsvg%3E")}
.astro2-hub .tile[href$="videos.html"] .ic{--hub-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%224%22%2F%3E%3Cpath%20d%3D%22m10%208%206%204-6%204z%22%2F%3E%3C%2Fsvg%3E")}
.astro2-hub .tile[href$="admin.html"] .ic{--hub-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20M6.5%203H20v19H6.5A2.5%202.5%200%200%201%204%2019.5v-14A2.5%202.5%200%200%201%206.5%203Z%22%2F%3E%3C%2Fsvg%3E")}

/* ── UI/UX + mobile audit fixes (Fable 5, 07.09) ─────────────────────── */

/* 🔴 1. Logout / user chip was white-on-white after the astro2 light redraw.
   Page-inline `.who` (1 class) is overridden by these 2-class rules. */
.astro2-staff .who{position:static;inset:auto;background:#f0ebfa;color:#51369a;
  width:fit-content;max-width:100%;margin:0 0 10px;backdrop-filter:none;
  -webkit-backdrop-filter:none;box-shadow:none}
.astro2-staff .who a{color:#6a45c9;opacity:1;font-weight:600}

/* 🔴 2. office overview: "recent activity" + "most watched" grid → 1 col on phones */
@media(max-width:600px){#actgrid{grid-template-columns:1fr!important}}

/* 🔴 3. staff user list: role pill was crowding/overlapping the name on mobile */
@media(max-width:600px){
 .urow{flex-wrap:wrap;row-gap:8px}
 .urow .uinfo{flex:1 1 62%}
 .urow .uinfo .nm{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
 .urow .uacts{flex-basis:100%;justify-content:flex-start;margin-top:2px}
}

/* 🟡 5. inputs <16px trigger iOS zoom-on-focus. Cover the staff surfaces the
   existing rules miss: office/monitor/staff/videos forms + monitor/staff login. */
@media(max-width:600px){
 .astro2-staff .in,.astro2-staff .fi,.astro2-staff .fld input,
 .astro2-staff .fld select,.astro2-staff .tagedit input,
 .astro2-staff .searchbar input,.astro2-staff .login input,
 .astro2-staff #gate input,.astro2-staff .filt input,.astro2-staff .filt select{
   font-size:16px!important}
}

/* 🟡 6. office student table: hide secondary cols on phones (still in the
   student card). Cols 5-6 = watch-minutes / last-viewed. */
@media(max-width:600px){
 #studtbl th:nth-child(5),#studtbl td:nth-child(5),
 #studtbl th:nth-child(6),#studtbl td:nth-child(6){display:none}
}

/* 🟡 4. ₪ glyph in Ploni collides with digits under negative letter-spacing.
   Neutralise spacing on money spans so "₪ 5,000" reads cleanly. */
.astro2-staff .money,.astro2-staff .amt,.astro2-staff [data-money],
#b-balance,.pay-amt,.money{letter-spacing:normal;font-feature-settings:"tnum"}
