@font-face{font-family:titillium;src:url(../media/TitilliumWeb_Light-s.p.44kdt4k_osh6v.ttf)format("truetype");font-display:swap;font-weight:300;font-style:normal}@font-face{font-family:titillium;src:url(../media/TitilliumWeb_Regular-s.p.3srj33y_v2zm6.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:titillium;src:url(../media/TitilliumWeb_SemiBold-s.p.0rho6vgk9t272.ttf)format("truetype");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:titillium;src:url(../media/TitilliumWeb_Bold-s.p.3inss2gn667nv.ttf)format("truetype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:titillium Fallback;src:local(Arial);ascent-override:119.58%;descent-override:40.95%;line-gap-override:0.0%;size-adjust:94.74%}.titillium_bb52b20c-module__mCWkRa__className{font-family:titillium,titillium Fallback}.titillium_bb52b20c-module__mCWkRa__variable{--font-titillium:"titillium", "titillium Fallback"}
:root{--bg:#e2ecf8;--surface:#fff;--panel:#ededed;--text:#333;--muted:#6a6a6a;--line:#787878;--line-soft:#dcdcdc;--header:#c54d34;--heading:#ab402b;--accent:#ec7d22;--strong:#b74b15;--primary:#394d93;--primary-hover:#2e3f7a;--nav-active:#f5c07a;--radius:14.4px;--radius-small:8px;--shadow:0 0 8px #00000026;--ok:#2e7d32;--ok-bg:#e3f2e5;--warn:#b74b15;--warn-bg:#fce9d4;--bad:#b3261e;--bad-bg:#fbe4e1;--info:#394d93;--info-bg:#e4e9f7}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);font:400 16px/24px var(--font-titillium), "Titillium Web", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;flex-direction:column;margin:0;display:flex}a{color:var(--primary)}.wrap{width:100%;max-width:1400px;margin:0 auto;padding:0 16px}main.wrap{flex:1;padding-top:24px;padding-bottom:40px}.topbar{background:var(--header);color:#fff}.topbar .wrap{flex-wrap:wrap;align-items:center;gap:14px;min-height:84px;padding-top:8px;padding-bottom:8px;display:flex}.logo-box{color:#000;background:#fff;border-radius:4.8px;flex-direction:column;gap:2px;max-width:200px;padding:4px 8px 4px 4px;font-size:15px;font-weight:600;line-height:20px;text-decoration:none;display:flex}.logo-row{align-items:center;gap:8px;display:flex}.logo-box img{flex:none;width:auto;height:60px}.brand{text-align:center;letter-spacing:.1em;color:var(--heading);white-space:nowrap;margin-right:-.1em;font-size:22px;font-weight:700;line-height:32px;display:block}.topbar nav{flex-wrap:wrap;flex:1;justify-content:space-evenly;gap:6px;display:flex}.topbar nav a{color:#fff;padding:4px 6px;font-size:18px;font-weight:600;line-height:28px;text-decoration:none}.topbar nav a:hover{text-underline-offset:6px;text-decoration:underline}.topbar nav a.active{color:var(--nav-active);text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}.usermenu{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:12px;display:flex}.logo-slot,.user-slot{flex:none}.nav-slot{flex:1;min-width:0;display:flex}.user-slot{margin-left:auto}.wrap[data-mode=collapsed] .user-slot{max-width:100%}.wrap[data-mode=collapsed] .usermenu{flex-wrap:wrap}.menu-toggle{color:#fff;border-radius:var(--radius-small);min-height:44px;font:600 18px/28px var(--font-titillium), sans-serif;cursor:pointer;background:0 0;border:1px solid #ffffffb3;align-items:center;gap:10px;margin-left:0;padding:4px 14px;display:inline-flex}.menu-toggle:hover,.menu-toggle[aria-expanded=true]{background:#ffffff2e}.menu-toggle:focus-visible{outline:2px solid var(--nav-active);outline-offset:2px}.menu-bars{flex-direction:column;gap:4px;display:inline-flex}.menu-bars span{background:#fff;border-radius:1px;width:20px;height:2px;display:block}.menu-panel{border-top:1px solid #ffffff59;flex-direction:column;flex:0 0 100%;gap:4px;padding:4px 0 8px;display:flex}.topbar .menu-panel nav{flex-flow:column;flex:none;justify-content:flex-start;gap:0}.topbar .menu-panel nav a{border-bottom:1px solid #ffffff2e;min-height:44px;padding:10px 6px;display:block}.wrap[data-mode=compact] .usermenu .badge{display:none}.usermenu form{margin:0}.usermenu .username{color:#fff;font-size:18px;font-weight:600;text-decoration:none}.usermenu .username:hover{text-decoration:underline}.usermenu button.link{background:var(--primary);color:#fff;border-radius:var(--radius-small);font:600 18px/28px var(--font-titillium), sans-serif;cursor:pointer;border:1px solid #0000;padding:2px 12px;text-decoration:none}.usermenu button.link:hover{background:var(--primary-hover)}.badge.role{color:#fff;background:#fff3;border:1px solid #ffffff80}.footer{background:var(--header);color:#fff;text-align:center;margin-top:8px;padding:24px 0 20px}.footer img{width:auto;height:91px}.footer p{margin:8px 0 0;font-size:14px}.footer .verse{max-width:720px;margin:12px auto 0;font-size:15px;font-style:italic}.footer .verse cite{white-space:nowrap;font-style:normal}h1{color:var(--heading);text-transform:uppercase;margin:0;font-size:2.1rem;font-weight:600;line-height:1.15}h2{color:var(--accent);text-transform:uppercase;margin:24px 0 12px;font-size:1.5rem;font-weight:600;line-height:1.2}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.actions{align-items:center;gap:8px;display:flex}.btn{border-radius:var(--radius-small);border:1px solid var(--primary);background:var(--surface);color:var(--primary);font:600 18px/26px var(--font-titillium), sans-serif;cursor:pointer;padding:6px 16px;text-decoration:none;display:inline-block}.btn:hover{background:var(--info-bg)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn:disabled{opacity:.6;cursor:progress}button.link{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}button.link.danger{color:var(--bad)}.muted{color:var(--muted)}.small{font-size:.875rem;line-height:1.3}.nowrap,.money{white-space:nowrap}.flash{border-radius:var(--radius-small);margin-bottom:16px;padding:10px 16px;font-weight:600}.flash.success{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok)}.flash.warning{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn)}.flash.error{background:var(--bad-bg);color:var(--bad);border:1px solid var(--bad)}.filters{background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:12px;padding:12px 16px;display:flex}.filters label{color:var(--strong);flex-direction:column;gap:4px;font-size:.9rem;font-weight:600;display:flex}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-small);max-width:100%;padding:7px 10px;font-weight:400}input:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:16px 0 24px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 16px}.card .label{color:var(--strong);text-transform:uppercase;font-size:1rem;font-weight:600}.card .value{color:var(--text);margin:2px 0;font-size:1.7rem;font-weight:700;line-height:1.3}.card .hint{color:var(--muted);font-size:.85rem;line-height:1.25}.card.ok,.card.warn,.card.bad,.card.info{border-left-width:6px}.card.ok{border-left-color:var(--ok)}.card.warn{border-left-color:var(--accent)}.card.bad{border-left-color:var(--bad)}.card.info{border-left-color:var(--primary)}.table-scroll{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background-color:var(--surface);background-image:linear-gradient(to right, var(--surface), #fff0), linear-gradient(to left, var(--surface), #fff0), radial-gradient(farthest-side at 0 50%, #00000024, #0000), radial-gradient(farthest-side at 100% 50%, #00000024, #0000);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:34px 100%,34px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);padding:10px 12px}th{text-transform:uppercase;letter-spacing:.02em;color:var(--strong);background:var(--panel);font-size:.9rem;font-weight:700}tr:last-child td{border-bottom:0}.num{text-align:right}.pos{color:var(--ok);font-weight:600}.neg{color:var(--bad);font-weight:600}.warn-text{color:var(--warn);font-weight:600}.info-text{color:var(--primary);font-weight:600}.ok-text{color:var(--ok);font-weight:600}.badge{border-radius:var(--radius);padding:1px 10px;font-size:.8rem;font-weight:600;line-height:1.4;display:inline-block}.badge.warn{background:var(--nav-active);color:#6b3305}.row-actions{white-space:nowrap;align-items:center;gap:12px;display:flex}.row-actions form{margin:0}.period{margin-bottom:8px}.period-head{flex-wrap:wrap;align-items:center;gap:4px 16px;margin:24px 0 8px;display:flex}.period-head h2{margin:0}.period-head .row-actions{margin-left:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.plan-nav{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0 12px;display:flex}.plan-nav .btn.disabled{opacity:.45;cursor:default;pointer-events:none}.plan-picker select{min-width:260px}.plan-lines .branch{color:var(--muted)}.plan-lines .plan-parent .cat-name{font-weight:600}.plan-lines input.cell-input:disabled{opacity:.45;cursor:not-allowed}.struck{color:var(--muted);font-weight:400;text-decoration:line-through}.plan-lines tfoot th,.plan-lines tfoot td{background:var(--panel);border-top:2px solid var(--line);border-bottom:0;font-weight:700}.plan-lines tfoot th{text-transform:none;letter-spacing:0;color:var(--text);font-size:1rem}.mini-form{align-items:center;gap:8px;margin:0;display:flex}.mini-form input{width:9rem;padding:3px 8px}.balances tbody th{text-transform:none;letter-spacing:0;color:var(--text);background:0 0;font-size:1rem;font-weight:400}.balances tr.strong th,.balances tr.strong td{background:var(--panel);font-weight:700}.balances tr.closing th,.balances tr.closing td{border-top:2px solid var(--line)}.balances tbody tr:last-child th,.balances tbody tr:last-child td{border-bottom:0}.empty{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:32px}.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:580px;box-shadow:var(--shadow);gap:16px;padding:20px;display:grid}.form label,.form .field,.inline-form label,.inline-form .field{color:var(--strong);flex-direction:column;gap:4px;font-weight:600;display:flex}.form label.check{flex-direction:row;align-items:center;gap:10px}.row-form{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;display:flex}.row-form input[type=text]{min-width:160px}.row-form label.check{color:var(--text);flex-direction:row;align-items:center;gap:6px;font-weight:400}.badge.paid{background:var(--ok-bg);color:var(--ok)}.badge.unpaid{background:var(--bad-bg);color:var(--bad)}table.roster td,table.roster th{white-space:nowrap;font-size:.9rem}table.grid select{font:inherit;border:1px solid var(--line-soft);background:0 0;border-radius:4px;min-width:7.5rem;max-width:11rem;padding:3px 2px;font-size:.85rem}table.grid td.saving{opacity:.55}table.grid .pass-price{color:var(--muted);margin-top:2px;font-size:.75rem;font-style:italic}table.grid th.editable{background:#fff4e0}table.grid input.new-student{width:100%;min-width:11rem;font:inherit;border:1px dashed var(--line);background:0 0;border-radius:4px;padding:4px 6px}table.grid tr.new-row td{background:#fafafa}table.grid input.student-name,table.grid input.student-email,table.grid input.student-note{width:100%;min-width:11rem;font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 4px}table.grid input.student-name{font-weight:700}table.grid input.student-email{color:var(--muted);font-size:.8rem}table.grid input.student-name:hover,table.grid input.student-email:hover,table.grid input.student-note:hover,table.grid input.student-name:focus,table.grid input.student-email:focus,table.grid input.student-note:focus{border-color:var(--line);background:var(--surface)}table.grid button.add-email{font:inherit;color:var(--link,#394d93);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:.75rem;text-decoration:underline}table.grid tfoot th{text-align:left}table.grid tfoot tr.total th,table.grid tfoot tr.total td{font-size:1rem}.kind-mkk_ticket.by-cash{background:#d6e6fb}.kind-mkk_ticket.by-card{background:#b0cdf6}.kind-external_ticket.by-cash{background:#d3f0dc}.kind-external_ticket.by-card{background:#a9e0bd}.kind-mkk_pass.by-cash{background:#fde2bd}.kind-mkk_pass.by-card{background:#f9c481}.kind-external_pass.by-cash{background:#e4d8f7}.kind-external_pass.by-card{background:#c8b3ee}.kind-discounted.by-cash{background:#fbd3df}.kind-discounted.by-card{background:#f5a9c0}table.grid td.pass-held,.roster-person.pass-held{background:#e3e3e3}table.grid td.pass-held select{color:var(--muted);border-color:#0000}table.grid td.pass-held select:hover,table.grid td.pass-held select:focus{border-color:var(--line)}.pass-note{color:var(--muted);margin-top:2px;font-size:.75rem;font-style:italic}table.grid td[class*=kind-] select{border-color:#0000}table.grid td[class*=kind-] select:hover,table.grid td[class*=kind-] select:focus{border-color:var(--line)}.kind-legend{flex-wrap:wrap;gap:6px 14px;margin:0 0 10px;padding:0;font-size:.85rem;list-style:none;display:flex}.kind-legend li{align-items:center;gap:6px;display:flex}.kind-legend .swatch{border:1px solid #00000026;border-radius:3px;width:14px;height:14px;margin-right:2px;display:inline-block}.kind-legend .shade-note{color:var(--muted)}table tfoot th,table tfoot td{border-top:2px solid var(--line);background:var(--panel);font-weight:700}.paid-toggle{margin:2px 0 0;display:block}.paid-toggle button{font-size:.8rem}table.summary th,table.summary td{padding-top:6px;padding-bottom:6px}table.summary tr.group th{background:var(--panel)}table.summary tr.total th,table.summary tr.total td{border-top:2px solid var(--line);font-size:1.05rem}caption{text-align:left;color:var(--strong);padding:8px 12px;font-weight:600}.form+.form{margin-top:20px}table.sessions input.cell-input,table.sessions select{font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;max-width:11rem;padding:3px 4px;font-size:.9rem}table.sessions input.cell-input:hover,table.sessions select:hover,table.sessions input.cell-input:focus,table.sessions select:focus{border-color:var(--line);background:var(--surface)}table.sessions input.cell-input.num{text-align:right;width:7rem}table.sessions input[type=date].cell-input{min-width:8.5rem}table.sessions tr.saving td{opacity:.6}.cost-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}table.sessions input.cell-input.overridden{border-color:var(--accent);background:#fff4e0;font-weight:700}.reset-cost{font-size:1rem}.badge.manual{color:var(--strong);background:#fff4e0}.paid-check{align-items:center;gap:4px;display:inline-flex}tr.own td{background:#fff4e0}.semester-bar{flex-wrap:wrap;align-items:center;gap:6px 16px;margin:4px 0 12px;display:flex}.form fieldset{border:1px solid var(--line-soft);border-radius:var(--radius-small);flex-direction:column;gap:6px;padding:10px 14px;display:flex}.form fieldset legend{padding:0 6px;font-weight:600}.form label.check input{width:18px;height:18px;accent-color:var(--primary)}.form .hint{color:var(--muted);font-size:.85rem;font-weight:400;line-height:1.3}.hint a{color:var(--primary)}.error{color:var(--bad);font-size:.9rem;font-weight:400}.form.narrow{max-width:420px}.inline-form{background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0;padding:12px 16px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.role-help{margin:4px 0 0;padding-left:18px}.facts{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:max-content 1fr;gap:6px 20px;margin:0 0 24px;padding:16px;display:grid}.facts dt{color:var(--strong);font-weight:600}.facts dd{margin:0}code{background:var(--panel);border:1px solid var(--line-soft);border-radius:4px;padding:1px 6px;font-size:.85em}.picker{position:relative}.picker-button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-small);text-align:left;cursor:pointer;width:100%;min-height:40px;padding:7px 32px 7px 10px;font-weight:400;position:relative}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.picker.compact .picker-input{min-width:9rem;min-height:0;padding:3px 6px;font-size:.9rem}.picker-input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-small);width:100%;min-height:40px;padding:7px 10px;font-weight:400}.picker-input[aria-invalid=true]{border-color:var(--bad)}.picker-input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.picker-button:after{content:"▾";color:var(--muted);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.picker-button[aria-invalid=true]{border-color:var(--bad)}.picker-button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.picker-list{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-small);max-height:280px;color:var(--text);margin:4px 0 0;padding:4px 0;font-weight:400;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #0003}.picker-list li{cursor:pointer;padding:7px 12px}.picker-list li.active{background:var(--panel)}.picker-list li[aria-selected=true]{color:var(--primary);font-weight:600}.picker-list li.empty-choice{color:var(--muted)}.picker-list li.parent-choice{color:var(--muted);cursor:default}.picker-list .branch{color:var(--muted)}.inline-form .picker{min-width:260px}.tree{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.tree li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding-top:10px;padding-bottom:10px;padding-right:14px;display:flex}.tree li:last-child{border-bottom:0}.tree .name{color:var(--strong);font-weight:600;text-decoration:none}.tree .branch{color:var(--muted)}.tree .name:hover{text-decoration:underline}section[aria-label]{margin-bottom:28px}section[aria-label] h2{margin-top:20px}.semester-bar .row-actions,.period-head .row-actions,.page-head .row-actions{white-space:normal;flex-wrap:wrap}.kassza-cards,.roster-mobile{display:none}@media (max-width:600px){table.cardify,table.cardify tbody,table.cardify tfoot,table.cardify tr,table.cardify td,table.cardify tfoot th{display:block}table.cardify thead{display:none}table.cardify tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:10px 14px}table.cardify tr:last-child{margin-bottom:0}table.cardify tfoot tr{background:var(--panel)}table.cardify td,table.cardify tfoot th{text-align:left;border:0;padding:3px 0}table.cardify td.num,table.cardify tfoot td.num{text-align:left}table.cardify td.hide-mobile,table.cardify td:empty{display:none}table.cardify td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:.7rem;font-weight:600;line-height:1.3;display:block}table.cardify td.money{font-size:1.05rem;font-weight:600}table.cardify .card-title{color:var(--strong);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:6px;padding-bottom:8px;font-size:1.05rem;font-weight:700;display:flex}table.cardify .card-title:before{display:none}table.cardify .card-actions{border-top:1px solid var(--line-soft);margin-top:6px;padding-top:8px}table.cardify .card-actions:before{display:none}table.cardify .card-actions .row-actions,table.cardify .card-actions form{white-space:normal;flex-wrap:wrap;gap:8px 16px;margin:0}table.cardify td input:not([type=checkbox]):not([type=radio]),table.cardify td select,table.cardify td .picker,table.cardify td .picker-input,table.cardify td .cost-cell{width:100%;max-width:none}table.cardify td input.cell-input,table.cardify td select{border-color:var(--line-soft);background:var(--surface)}table.cardify td .cost-cell{justify-content:flex-start}table.cardify td .cost-cell input.cell-input.num{text-align:right;flex:1;width:auto}.table-scroll:has(>table.cardify){box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.budget-matrix>.table-scroll{display:none}.budget-matrix>.kassza-cards{display:block}.kassza-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:10px 14px}.kassza-card:last-child{margin-bottom:0}.kassza-card.total{background:var(--panel)}.kassza-card h3{color:var(--heading);text-transform:uppercase;margin:0 0 6px;font-size:1.05rem}.kassza-card dl{margin:0}.kassza-line{justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;display:flex}.kassza-line dt{color:var(--muted)}.kassza-line dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:600}.kassza-line.strong dt{color:var(--text);font-weight:700}.kassza-line.strong dd{font-weight:700}.kassza-line.closing{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}.roster-grid-wide{display:none}.roster-mobile{display:block}.roster-focus-pick{color:var(--strong);flex-direction:column;gap:4px;margin-bottom:12px;font-weight:600;display:flex}.roster-focus-pick select{width:100%}.roster-people{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.roster-person{border:1px solid var(--line-soft);border-radius:var(--radius-small);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 10px;display:flex}.roster-person.saving{opacity:.55}.roster-person-name{flex:auto;min-width:0}.roster-person-pay{flex:0 0 46%;max-width:12rem}.roster-person-pay select{width:100%}.roster-person.new-row{background:#fafafa}.roster-mobile .student-name,.roster-mobile .student-email,.roster-mobile .new-student{width:100%;min-width:0}.roster-mobile button.add-email{border:1px dashed var(--primary);border-radius:var(--radius-small);font:inherit;color:var(--primary);cursor:pointer;background:0 0;margin-top:4px;padding:4px 12px;font-size:.85rem;line-height:1.3}.roster-mobile button.add-email:hover,.roster-mobile button.add-email:focus-visible{background:var(--info-bg)}.roster-focus-sums{background:var(--panel);border-radius:var(--radius-small);flex-wrap:wrap;gap:6px 16px;padding:10px 12px;display:flex}.roster-focus-sums strong{color:var(--strong)}}@media (max-width:800px){.logo-text{display:none}.wrap[data-mode=collapsed] .user-slot{flex:100%;order:2;margin-left:0}.wrap[data-mode=collapsed] .menu-toggle{order:1;margin-left:auto}.wrap[data-mode=collapsed] .menu-panel{order:3}.wrap[data-mode=collapsed] .usermenu{justify-content:space-between}.wrap[data-mode=collapsed] .usermenu .badge{display:none}h1{font-size:1.7rem}th,td{padding:8px}.topbar .wrap{gap:8px 12px;min-height:0}.logo-box{gap:0;max-width:none;padding:3px 8px 3px 4px}.logo-box img{height:38px}.brand{font-size:16px;line-height:20px}.topbar nav a{font-size:17px}.usermenu .username{font-size:16px}.usermenu button.link{font-size:16px;line-height:24px}.footer img{height:64px}}@media (max-width:600px){.wrap{padding:0 12px}main.wrap{padding-top:16px;padding-bottom:28px}h1{font-size:1.45rem}h2{margin:20px 0 10px;font-size:1.2rem}.page-head{gap:8px;margin-bottom:12px}.page-head .actions{flex-wrap:wrap}.btn{padding:6px 14px;font-size:16px;line-height:24px}.cards{grid-template-columns:1fr;gap:10px;margin:12px 0 18px}.card .value{font-size:1.45rem}.filters,.inline-form{gap:10px;padding:12px}.filters>label,.inline-form>label,.inline-form>.field,.inline-form>.field-group{flex:140px;min-width:0}.filters select,.filters input,.inline-form select,.inline-form input{width:100%}.filters .btn,.inline-form .btn{flex:100%}.form{gap:14px;max-width:none;padding:14px}.form input,.form select{width:100%}.form label.check input{width:22px;height:22px}.facts{grid-template-columns:1fr;gap:2px 0;padding:12px}.facts dd{margin-bottom:8px}.plan-nav{gap:8px}.plan-picker select,.inline-form .picker{width:100%;min-width:0}.plan-picker{flex:100%}.picker-list{max-height:50vh}.period-head .row-actions{margin-left:0}.empty{padding:20px 14px}.flash{padding:8px 12px}th,td{padding:7px 6px}th{font-size:.8rem}caption{padding:8px 6px}.plan-amount-field input.cell-input,.mini-form input{width:6.5rem}.pay-part-amount{min-width:7rem}.tree li{gap:8px;padding-right:8px}.footer .verse{padding:0 4px;font-size:14px}table.plan-lines,.plan-lines tbody,.plan-lines tfoot{display:block}.plan-lines thead{display:none}.plan-lines tr{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 1fr;align-items:end;padding:6px 0;display:grid}.plan-lines tbody tr:last-child{border-bottom:1px solid var(--line-soft)}.plan-lines td,.plan-lines th{border:0;padding:2px 12px}.plan-lines td.plan-name{grid-column:1/-1;padding-top:4px;padding-bottom:0}.plan-lines td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:.7rem;font-weight:600;line-height:1.2;display:block}.plan-lines td.plan-edit{text-align:left;grid-column:1/-1}.plan-lines td.plan-edit:before{display:none}.plan-lines td.plan-edit .row-actions{flex-wrap:wrap}.plan-lines tfoot tr{border-top:2px solid var(--line)}.plan-lines tfoot th{border:0;grid-column:1/-1}.plan-lines tfoot td{border:0}}@media (pointer:coarse){input,select,.picker-button,.picker-input{min-height:44px;font-size:16px}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0}table input.cell-input,table select,table.grid select,table.grid input.student-name,table.grid input.student-email,table.grid input.student-note,table.grid input.new-student,.picker.compact .picker-input{min-height:40px;font-size:16px}.btn,.usermenu button.link{justify-content:center;align-items:center;min-height:44px;display:inline-flex}button.link,.row-actions a,.row-actions button{padding-top:6px;padding-bottom:6px}.picker-list li{padding-top:11px;padding-bottom:11px}table.grid button.add-email{padding:6px 4px;font-size:.85rem}.roster-mobile button.add-email{min-height:36px;padding:6px 14px}}table.courses input.cell-input,table.courses select.cell-input{font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 4px}table.courses input.cell-input:hover,table.courses select.cell-input:hover,table.courses input.cell-input:focus,table.courses select.cell-input:focus{border-color:var(--line);background:var(--surface)}table.courses input[type=text].cell-input{min-width:16rem}table.courses tr.saving{opacity:.7}.table-add{margin:12px 0 0}table.events input.cell-input,table.events select.cell-input{font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;max-width:11rem;padding:3px 4px;font-size:.9rem}table.events input.cell-input:hover,table.events input.cell-input:focus{border-color:var(--line);background:var(--surface)}table.events input.cell-input.num{text-align:right;width:6.5rem}table.events input.cell-input.count{width:4.5rem}table.events input.cell-input.wide{min-width:10rem;max-width:18rem}table.events input[type=date].cell-input{min-width:8.5rem}table.events tr.new-row td{background:#fafafa}table.events tr.saving{opacity:.7}table.events tfoot th{text-align:left}.pay-parts{background:var(--panel,#ededed);border-radius:8px;flex-direction:column;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.pay-parts-head{font-size:.95rem}.pay-part-row{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.pay-part-row label{flex-direction:row;align-items:center;gap:6px;margin:0;font-weight:400;display:flex}.pay-part-row label.check{color:var(--text)}.pay-part-no{min-width:1.5rem;font-weight:700}.pay-part-amount{min-width:9rem}.pay-parts-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pay-parts .hint{margin:0}table.auto-table input.cell-input{font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 6px}table.auto-table input.cell-input:hover,table.auto-table input.cell-input:focus{border-color:var(--line);background:var(--surface)}table.auto-table input[type=text].cell-input,table.auto-table input[type=email].cell-input{min-width:12rem}table.auto-table .row-form{gap:8px 14px}input.cell-input.saving{opacity:.55}.settings-fields{flex-wrap:wrap;gap:12px 24px;margin:14px 0 6px;display:flex}.settings-fields label{flex-direction:column;gap:4px;display:flex}.plan-amount-field{flex-direction:column;gap:2px;display:inline-flex}.plan-amount-field input.cell-input{width:9rem;padding:3px 8px}.course-tabs{border-bottom:2px solid var(--line-soft);gap:6px;margin:4px 0 16px;display:flex}.course-tabs a{color:var(--primary);border-bottom:2px solid #0000;margin-bottom:-2px;padding:6px 16px;font-weight:600;text-decoration:none}.course-tabs a:hover{background:var(--info-bg)}.course-tabs a[aria-current=page]{border-bottom-color:var(--accent);color:var(--strong)}
