:root{--PhoneInput-color--focus: #03b2cb;--PhoneInputInternationalIconPhone-opacity: .8;--PhoneInputInternationalIconGlobe-opacity: .65;--PhoneInputCountrySelect-marginRight: .35em;--PhoneInputCountrySelectArrow-width: .3em;--PhoneInputCountrySelectArrow-marginLeft: var(--PhoneInputCountrySelect-marginRight);--PhoneInputCountrySelectArrow-borderWidth: 1px;--PhoneInputCountrySelectArrow-opacity: .45;--PhoneInputCountrySelectArrow-color: currentColor;--PhoneInputCountrySelectArrow-color--focus: var(--PhoneInput-color--focus);--PhoneInputCountrySelectArrow-transform: rotate(45deg);--PhoneInputCountryFlag-aspectRatio: 1.5;--PhoneInputCountryFlag-height: 1em;--PhoneInputCountryFlag-borderWidth: 1px;--PhoneInputCountryFlag-borderColor: rgba(0,0,0,.5);--PhoneInputCountryFlag-borderColor--focus: var(--PhoneInput-color--focus);--PhoneInputCountryFlag-backgroundColor--loading: rgba(0,0,0,.1)}.PhoneInput{display:flex;align-items:center}.PhoneInputInput{flex:1;min-width:0}.PhoneInputCountryIcon{width:calc(var(--PhoneInputCountryFlag-height) * var(--PhoneInputCountryFlag-aspectRatio));height:var(--PhoneInputCountryFlag-height)}.PhoneInputCountryIcon--square{width:var(--PhoneInputCountryFlag-height)}.PhoneInputCountryIcon--border{background-color:var(--PhoneInputCountryFlag-backgroundColor--loading);box-shadow:0 0 0 var(--PhoneInputCountryFlag-borderWidth) var(--PhoneInputCountryFlag-borderColor),inset 0 0 0 var(--PhoneInputCountryFlag-borderWidth) var(--PhoneInputCountryFlag-borderColor)}.PhoneInputCountryIconImg{display:block;width:100%;height:100%}.PhoneInputInternationalIconPhone{opacity:var(--PhoneInputInternationalIconPhone-opacity)}.PhoneInputInternationalIconGlobe{opacity:var(--PhoneInputInternationalIconGlobe-opacity)}.PhoneInputCountry{position:relative;align-self:stretch;display:flex;align-items:center;margin-right:var(--PhoneInputCountrySelect-marginRight)}.PhoneInputCountrySelect{position:absolute;top:0;left:0;height:100%;width:100%;z-index:1;border:0;opacity:0;cursor:pointer}.PhoneInputCountrySelect[disabled],.PhoneInputCountrySelect[readonly]{cursor:default}.PhoneInputCountrySelectArrow{display:block;content:"";width:var(--PhoneInputCountrySelectArrow-width);height:var(--PhoneInputCountrySelectArrow-width);margin-left:var(--PhoneInputCountrySelectArrow-marginLeft);border-style:solid;border-color:var(--PhoneInputCountrySelectArrow-color);border-top-width:0;border-bottom-width:var(--PhoneInputCountrySelectArrow-borderWidth);border-left-width:0;border-right-width:var(--PhoneInputCountrySelectArrow-borderWidth);transform:var(--PhoneInputCountrySelectArrow-transform);opacity:var(--PhoneInputCountrySelectArrow-opacity)}.PhoneInputCountrySelect:focus+.PhoneInputCountryIcon+.PhoneInputCountrySelectArrow{opacity:1;color:var(--PhoneInputCountrySelectArrow-color--focus)}.PhoneInputCountrySelect:focus+.PhoneInputCountryIcon--border{box-shadow:0 0 0 var(--PhoneInputCountryFlag-borderWidth) var(--PhoneInputCountryFlag-borderColor--focus),inset 0 0 0 var(--PhoneInputCountryFlag-borderWidth) var(--PhoneInputCountryFlag-borderColor--focus)}.PhoneInputCountrySelect:focus+.PhoneInputCountryIcon .PhoneInputInternationalIconGlobe{opacity:1;color:var(--PhoneInputCountrySelectArrow-color--focus)}:root{--bg: #f4f4f5;--fg: #18181b;--muted: #71717a;--border: #e4e4e7;--accent: #2563eb;--cell: #ffffff;--weekend: #fafafa}[data-theme=dark]{--bg: #09090b;--fg: #fafafa;--muted: #a1a1aa;--border: #27272a;--accent: #60a5fa;--cell: #18181b;--weekend: #0c0c0e}*{box-sizing:border-box}html{font-size:17px}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg)}button,input,select{font:inherit}button{cursor:pointer}.layout{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--cell)}.tabs{display:flex;gap:.25rem;flex-wrap:wrap}.tabs button{padding:.4rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg)}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}main{padding:1rem;flex:1}main.auth-screen{display:flex;align-items:center;justify-content:center}.tabs a.tab{display:inline-flex;align-items:center;padding:.4rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg);text-decoration:none;font:inherit;cursor:pointer}.tabs a.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.phone-field .PhoneInput{width:100%}.phone-field .PhoneInputInput{width:100%;min-height:2rem;border:1px solid var(--border);border-radius:6px;padding:.25rem .5rem;background:var(--cell);color:var(--fg)}.phone-field .PhoneInputCountry{margin-right:.35rem}.card{background:var(--cell);border:1px solid var(--border);border-radius:8px;padding:1rem;max-width:720px}.grid-form{display:grid;gap:.5rem}.grid-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--muted)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--cell);color:var(--fg);border:1px solid var(--border);border-radius:10px;padding:1rem;min-width:320px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal-tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.75rem;border-bottom:1px solid var(--border)}.modal-tabs button{padding:.35rem .7rem;border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;background:var(--bg);color:var(--fg);font-size:.9rem}.modal-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{border:1px solid var(--border);padding:.35rem .5rem;text-align:left}.cal-week{display:grid;grid-template-columns:48px repeat(7,1fr);gap:0;border:1px solid var(--border);border-radius:8px;overflow:auto;max-width:100%}.cal-week .corner{background:var(--cell);border-bottom:1px solid var(--border)}.cal-week .dhead{padding:.35rem;text-align:center;font-size:.75rem;border-left:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--cell)}.cal-week .dhead.weekend{background:var(--weekend);color:var(--muted)}.cal-week .dhead.holiday{color:var(--accent)}.cal-week .dhead.today{box-shadow:inset 0 -3px 0 var(--accent);font-weight:600}.cal-week .cell.today{background:color-mix(in srgb,var(--accent) 14%,var(--cell))}[data-theme=dark] .cal-week .cell.today{background:color-mix(in srgb,var(--accent) 22%,var(--cell))}.cal-week .tlabel{font-size:.65rem;color:var(--muted);padding:0 4px;text-align:right;border-top:1px solid var(--border);min-height:48px}.cal-week .cell{border-left:1px solid var(--border);border-top:1px solid var(--border);min-height:48px;position:relative;background:var(--cell)}.cal-week .cell.weekend{background:var(--weekend)}.cal-week .block{position:absolute;left:2px;right:2px;background:var(--accent);color:#fff;font-size:.65rem;padding:2px 4px;border-radius:4px;overflow:hidden;z-index:2;cursor:pointer}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.month-day{border:1px solid var(--border);min-height:100px;padding:4px;font-size:.75rem;background:var(--cell);cursor:pointer}.month-day.weekend{background:var(--weekend)}.month-day.today{outline:2px solid var(--accent);outline-offset:-2px}.month-day.month-day-outside{opacity:.45;cursor:default}.month-day.month-day-outside .ev{cursor:default;text-decoration:none}.day-closed-badge{display:inline-flex;align-items:center;align-self:center;padding:.4rem .85rem;border-radius:6px;font-size:.9rem;font-weight:600;background:color-mix(in srgb,var(--accent) 22%,var(--cell));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border))}[data-theme=dark] .day-closed-badge{background:color-mix(in srgb,var(--accent) 28%,var(--cell))}.month-day .num{font-weight:600}.month-day .ev{margin-top:2px;font-size:.65rem;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.col-teacher-work{min-width:7.5rem}.admin-teacher-employment-pill{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.85rem;font-weight:500}.admin-teacher-employment-pill.active{background:#dcfce7;color:#166534}.admin-teacher-employment-pill.terminated{background:#fee2e2;color:#991b1b}[data-theme=dark] .admin-teacher-employment-pill.active{background:color-mix(in srgb,#22c55e 32%,var(--cell));color:#86efac}[data-theme=dark] .admin-teacher-employment-pill.terminated{background:color-mix(in srgb,#ef4444 28%,var(--cell));color:#fca5a5}.admin-chart-teachers summary{-webkit-user-select:none;user-select:none}.student-status-select.student-status-studying{background:#dcfce7;color:#166534;border-color:#86efac}.student-status-select.student-status-pause{background:#fef9c3;color:#854d0e;border-color:#fde047}.student-status-select.student-status-quit{background:#fee2e2;color:#991b1b;border-color:#fca5a5}[data-theme=dark] .student-status-select.student-status-studying{background:color-mix(in srgb,#22c55e 32%,var(--cell));color:#86efac;border-color:#166534}[data-theme=dark] .student-status-select.student-status-pause{background:color-mix(in srgb,#eab308 28%,var(--cell));color:#fde047;border-color:#854d0e}[data-theme=dark] .student-status-select.student-status-quit{background:color-mix(in srgb,#ef4444 28%,var(--cell));color:#fca5a5;border-color:#991b1b}.admin-student-status-pill{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.85rem;font-weight:500}.admin-student-status-pill.studying{background:#dcfce7;color:#166534}.admin-student-status-pill.pause{background:#fef9c3;color:#854d0e}.admin-student-status-pill.quit{background:#fee2e2;color:#991b1b}[data-theme=dark] .admin-student-status-pill.studying{background:color-mix(in srgb,#22c55e 32%,var(--cell));color:#86efac}[data-theme=dark] .admin-student-status-pill.pause{background:color-mix(in srgb,#eab308 28%,var(--cell));color:#fde047}[data-theme=dark] .admin-student-status-pill.quit{background:color-mix(in srgb,#ef4444 28%,var(--cell));color:#fca5a5}.translator-fab{position:fixed;right:20px;bottom:20px;width:52px;height:52px;border-radius:50%;border:1px solid var(--border);background:var(--accent);color:#fff;font-size:22px;box-shadow:0 4px 14px #00000026;z-index:1000}.translator-fab:hover{filter:brightness(1.05)}.translator-chat{position:fixed;right:20px;bottom:20px;width:340px;max-width:calc(100vw - 40px);height:460px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:var(--cell);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #0000002e;z-index:1000;overflow:hidden}.translator-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--weekend);font-weight:600}.translator-header-actions{display:flex;align-items:center;gap:6px}.translator-dir{background:transparent;border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:12px;color:var(--fg)}.translator-close{background:transparent;border:none;color:var(--muted);font-size:22px;line-height:1;padding:0 4px}.translator-body{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.translator-empty{color:var(--muted);font-size:13px;text-align:center;margin-top:12px}.translator-msg{padding:6px 10px;border-radius:8px;font-size:14px;max-width:85%;word-wrap:break-word;white-space:pre-wrap}.translator-msg-in{background:color-mix(in srgb,var(--accent) 14%,var(--cell));align-self:flex-end}.translator-msg-out{background:var(--weekend);border:1px solid var(--border);align-self:flex-start}.translator-error{color:#ef4444;font-size:13px}.translator-input-row{display:flex;gap:6px;padding:8px;border-top:1px solid var(--border)}.translator-input-row textarea{flex:1;resize:none;border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:var(--cell);color:var(--fg);font-size:14px}.translator-input-row button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:0 12px;font-size:14px}.translator-input-row button:disabled{opacity:.55;cursor:not-allowed}.cal-week .block.block-cancelled,.month-day .ev.ev-cancelled{text-decoration:line-through;opacity:.55}.brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--fg);font-weight:600;font-size:.95rem;white-space:nowrap}.brand:hover{color:var(--accent)}.brand img{display:block}.reminders-section{margin-top:.75rem;padding:.6rem .75rem;border:1px solid var(--border, #e4e4e7);border-radius:6px;background:#ffc8000d}.reminder-item{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.85rem;border-bottom:1px dashed rgba(0,0,0,.06)}.reminder-item:last-child{border-bottom:none}.reminder-date{font-weight:600;white-space:nowrap;color:var(--accent);min-width:84px}.reminder-text{flex:1;min-width:0;overflow-wrap:anywhere}.reminder-done .reminder-text,.reminder-done .reminder-date{text-decoration:line-through;opacity:.6}.reminder-add{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;align-items:center}.link-btn{background:none;border:none;color:var(--muted, #888);cursor:pointer;padding:2px 4px;font-size:.85rem}.link-btn:hover{color:#dc143c}.report-multicheck{border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;background:var(--cell);min-width:12rem}.report-multicheck-list{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem;max-height:160px;overflow-y:auto}.subs-manager .sub-item{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.subs-manager .sub-item:last-of-type{border-bottom:none}.sub-status{font-size:.8rem;color:var(--muted);min-width:6rem}.sub-total-btn{color:var(--accent);font-weight:700;font-size:1rem;text-decoration:underline;padding:0 2px}.sub-total-btn:hover{color:var(--accent);opacity:.8}.reminder-badge{display:inline-flex;align-items:center;gap:2px;background:#ffc107;color:#333;border-radius:999px;padding:1px 6px;font-size:.7rem;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:4px}.reminder-badge:hover{background:#ffb300}tr.has-pending-reminder td{background:#ffc10714}.modal{position:relative}.modal-close{position:absolute;top:8px;right:8px;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--muted, #888);padding:4px 8px;line-height:1}.modal-close:hover{color:var(--fg)}.confirm-inline{display:inline-flex;gap:.25rem;align-items:center}.confirm-inline .confirm-question{font-size:.85rem;color:var(--muted);margin-right:.25rem}.confirm-inline .confirm-yes{background:#dc143c;color:#fff;border:none;border-radius:4px;padding:.2rem .5rem;font-size:.85rem}.confirm-inline .confirm-no{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.2rem .5rem;font-size:.85rem}.table thead th{position:sticky;top:0;background:var(--cell);z-index:1}.status-pill{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:.15rem .6rem;font-size:.85rem;cursor:pointer;font:inherit}.status-pill.studying{background:#dcfce7;color:#166534;border-color:#86efac}.status-pill.pause{background:#fef9c3;color:#854d0e;border-color:#fde047}.status-pill.quit{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.empty-state{padding:1.5rem 1rem;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:6px;margin:.5rem 0}.empty-state .empty-cta{margin-top:.5rem}.tabs-mobile{display:none;padding:.35rem .6rem;font-size:.95rem;border:1px solid var(--border);border-radius:6px;background:var(--cell);color:var(--fg);font-weight:600}@media (max-width: 768px){.col-hide-md{display:none!important}main{padding:.5rem}.topbar{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.brand{font-size:.9rem}.tabs{display:none}.tabs-mobile{display:inline-block;flex:1 1 100%;order:3;width:100%;max-width:100%}.topbar>button{padding:.35rem .6rem;font-size:.85rem}.card{padding:.75rem;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{font-size:.8rem}.table th,.table td{padding:.3rem .35rem}.cards-table thead{display:none}.cards-table,.cards-table tbody{display:block;width:100%}.cards-table tr{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;background:var(--cell);margin-bottom:.6rem;padding:.5rem .65rem}.cards-table td{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.28rem 0;border:none;text-align:right}.cards-table td.col-hide-md{display:flex!important}.cards-table td:before{content:attr(data-label);font-weight:600;color:var(--muted);text-align:left;flex:0 0 auto}.cards-table td.card-title{order:-1;font-weight:700;font-size:.95rem;border-bottom:1px solid var(--border);margin-bottom:.3rem;padding-bottom:.4rem}.cards-table td.card-title:before{content:none}.cards-table td.card-actions{justify-content:flex-end;flex-wrap:wrap;gap:.4rem;border-top:1px solid var(--border);margin-top:.25rem;padding-top:.45rem}.cards-table td.card-actions:before{content:none}.cards-table td.card-empty{display:block;text-align:center}.cards-table td.card-empty:before{content:none}.modal{min-width:0;width:calc(100vw - 1rem);max-width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);overflow-y:auto;padding:.75rem}.month-grid{gap:1px}.month-day{min-height:64px;padding:2px;font-size:.65rem}.month-day .num{font-size:.75rem}.month-day .ev{font-size:.55rem}.cal-week{font-size:.7rem}.cal-week .dhead{padding:.25rem .15rem;font-size:.65rem}.cal-week .tlabel{font-size:.55rem;min-height:36px}.cal-week .cell{min-height:36px}.cal-week .block{font-size:.55rem;padding:1px 2px}.grid-form{gap:.4rem}.translator-chat{width:calc(100vw - 16px);right:8px;bottom:8px;height:min(60vh,380px)}.translator-fab{right:12px;bottom:12px}}@media (max-width: 420px){.brand span{display:none}.table{font-size:.75rem}}
