:root{--background:#ffffff;--foreground:#171717;--card:#ffffff;--card-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--border:#e5e5e5;--primary:#171717;--primary-foreground:#fafafa;--primary-hover:#262626;--focus-ring:rgba(23,23,23,0.12);--row-hover:rgba(245,245,245,0.65);--danger-background:#fef2f2;--danger-border:#fecaca;--danger-hover:#fee2e2;--danger-foreground:#991b1b;--paid-background:#dcfce7;--paid-foreground:#166534;--unpaid-background:#fee2e2;--unpaid-row:#fef2f2;--unpaid-row-hover:#fee2e2;--destructive:#dc2626;--success:#047857;--radius:10px;background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}:root[data-color-template=pink]{--primary:#be536f;--primary-hover:#a9435d;--primary-foreground:#ffffff;--muted:#fff1f5;--border:#f4ccd7;--focus-ring:rgba(190,83,111,0.18)}:root[data-color-template=blue]{--primary:#386fae;--primary-hover:#2f5f96;--primary-foreground:#ffffff;--muted:#eef6ff;--border:#c8dcf2;--focus-ring:rgba(56,111,174,0.18)}:root[data-color-template=beige]{--primary:#8a6a3f;--primary-hover:#735731;--primary-foreground:#ffffff;--muted:#f8f0e3;--border:#e6d6bc;--focus-ring:rgba(138,106,63,0.18)}:root[data-theme-mode=dark]{--background:#111111;--foreground:#f5f5f5;--card:#181818;--card-foreground:#f5f5f5;--muted:#242424;--muted-foreground:#a3a3a3;--border:#333333;--primary:#f5f5f5;--primary-hover:#e5e5e5;--primary-foreground:#111111;--focus-ring:rgba(245,245,245,0.18);--row-hover:rgba(255,255,255,0.05);--danger-background:#3b1518;--danger-border:#7f1d1d;--danger-hover:#4b1a1d;--danger-foreground:#fecaca;--paid-background:#123524;--paid-foreground:#bbf7d0;--unpaid-background:#3b1518;--unpaid-row:#211516;--unpaid-row-hover:#2b191b}:root[data-theme-mode=dark][data-color-template=pink]{--primary:#f3a6ba;--primary-hover:#f7bfd0;--primary-foreground:#2b1118;--muted:#2a1c22;--border:#4a2a34}:root[data-theme-mode=dark][data-color-template=blue]{--primary:#9bc7f5;--primary-hover:#b7d9fb;--primary-foreground:#0d1a29;--muted:#172333;--border:#2d425c}:root[data-theme-mode=dark][data-color-template=beige]{--primary:#dcc69f;--primary-hover:#ead8b8;--primary-foreground:#241b10;--muted:#282219;--border:#4a3c28}*{box-sizing:border-box}body{background:var(--background);margin:0}body,dialog{color:var(--foreground)}a{color:inherit;text-decoration:none}.app-container{margin:0 auto;max-width:1180px;padding-left:24px;padding-right:24px;width:100%}.site-header{background:var(--card);border-bottom:1px solid var(--border)}.site-footer{border-top:1px solid var(--border);color:var(--muted-foreground);font-size:13px;margin-top:48px;padding-bottom:24px;padding-top:24px}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between}.footer-nav{display:flex;gap:16px}.footer-nav a{color:var(--muted-foreground);text-decoration:none}.footer-nav a:hover{color:var(--foreground);text-decoration:underline}.legal-page{color:var(--foreground);line-height:1.65;margin:0 auto;max-width:760px;padding-bottom:24px;padding-top:32px}.legal-page h1{font-size:28px;margin-bottom:4px}.legal-page h2{font-size:18px;margin-bottom:8px;margin-top:28px}.legal-page p,.legal-page ul{margin-bottom:14px}.legal-page ul{padding-left:22px}.legal-page li{margin-bottom:6px}.legal-page a{color:var(--primary)}.legal-updated{color:var(--muted-foreground);font-size:14px}.legal-footnote{border-top:1px solid var(--border);margin-top:28px;padding-top:16px}.guide-page{color:var(--foreground);line-height:1.65;margin:0 auto;max-width:760px;padding-bottom:24px;padding-top:32px}.guide-page h1{font-size:28px;margin-bottom:6px}.guide-lead{color:var(--muted-foreground);font-size:16px;margin-bottom:28px}.guide-steps{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.guide-step{align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:16px;padding:18px 20px}.guide-step-num{align-items:center;background:var(--muted);border-radius:999px;color:var(--primary);display:flex;flex:0 0 34px;font-weight:700;height:34px;justify-content:center;width:34px}.guide-step-body h2{font-size:17px;margin:2px 0 4px}.guide-step-body p{color:var(--muted-foreground);margin:0}.guide-step-where{align-items:center;background:var(--muted);border-radius:999px;color:var(--primary);display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-top:10px;padding:3px 12px 3px 10px}.guide-step-where .nav-icon{height:14px;width:14px}.guide-step-where:hover{background:var(--row-hover)}.guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.guide-action{background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--foreground);font-size:12px;font-weight:600;padding:4px 10px}.guide-action.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.guide-tip{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius);font-size:15px;margin-top:24px;padding:14px 18px}.guide-more{margin-top:32px}.guide-more-title{font-size:18px;margin:0 0 12px}.guide-more-list{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));list-style:none;margin:0;padding:0}.guide-more-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.guide-more-item h3{font-size:15px;margin:0 0 4px}.guide-more-item p{margin:0}.guide-footnote,.guide-more-item p{color:var(--muted-foreground);font-size:14px}.guide-footnote{margin-top:24px}.guide-footnote a{color:var(--primary)}.header-inner{justify-content:space-between;padding-bottom:16px;padding-top:16px}.brand,.header-inner{align-items:center;display:flex}.brand{gap:12px}.brand-mark{align-items:center;background:var(--primary);border-radius:8px;color:var(--primary-foreground);display:inline-flex;font-size:13px;font-weight:700;height:40px;justify-content:center;letter-spacing:0;width:40px}.brand-subtitle,.brand-title{display:block}.brand-title{font-size:20px;font-weight:600;letter-spacing:0;line-height:1.2}.brand-subtitle{color:var(--muted-foreground);font-size:14px;line-height:1.35}.main-nav{align-items:center;display:flex;gap:4px;min-width:0}.nav-link{align-items:center;border-radius:6px;color:var(--muted-foreground);display:inline-flex;font-size:14px;font-weight:500;gap:8px;line-height:1;padding:10px 16px;transition:background .14s ease,color .14s ease}.nav-link:hover{background:var(--muted);color:var(--foreground)}.nav-link.active{background:var(--primary);color:var(--primary-foreground)}.button-icon,.nav-icon{display:inline-block;flex:0 0 auto;height:16px;position:relative;width:16px}.nav-icon.users:before,.users-icon:before{border:1.8px solid;border-radius:999px;content:"";height:5px;left:5px;position:absolute;top:1px;width:5px}.nav-icon.users:after,.users-icon:after{border:1.8px solid;border-radius:999px 999px 3px 3px;content:"";height:7px;left:2px;position:absolute;top:8px;width:10px}.book-icon:before,.nav-icon.book:before{border:1.8px solid;border-radius:2px;content:"";height:12px;left:2px;position:absolute;top:2px;width:12px}.book-icon:after,.nav-icon.book:after{background:currentColor;content:"";height:12px;left:7px;position:absolute;top:2px;width:1.8px}.nav-icon.card:before{border:1.8px solid;border-radius:3px;content:"";height:10px;left:1px;position:absolute;top:3px;width:14px}.nav-icon.card:after{background:currentColor;height:1.8px;top:6px}.nav-icon.card:after,.nav-icon.settings:before{content:"";left:2px;position:absolute;width:12px}.nav-icon.settings:before{border:1.8px solid;border-radius:999px;height:12px;top:2px}.nav-icon.settings:after{background:currentColor;border-radius:999px;box-shadow:0 -7px 0 currentColor,0 7px 0 currentColor,-7px 0 0 currentColor,7px 0 0 currentColor;content:"";height:3px;left:6.5px;position:absolute;top:6.5px;width:3px}.plus-icon:after,.plus-icon:before{background:currentColor;content:"";left:3px;position:absolute;top:7px}.plus-icon:before{height:2px;width:10px}.plus-icon:after{height:10px;left:7px;top:3px;width:2px}main.app-container{padding-bottom:32px;padding-top:32px}h1{font-size:24px;font-weight:600;letter-spacing:0;line-height:1.3}h1,p{margin:0}p{color:var(--muted-foreground);font-size:16px;line-height:1.5}.students-page{display:flex;flex-direction:column;gap:24px}.students-toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between}.student-form{display:grid;grid-gap:16px;gap:16px}.student-form label.checkbox-label{align-items:center;display:flex;flex-direction:row;font-weight:400;gap:8px;font-size:14px}.student-form label.checkbox-label input[type=checkbox]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:none;border:none;border-radius:0;flex:0 0 auto;height:18px;margin:0;min-height:0;padding:0;width:18px}.month-selector{align-items:flex-end;display:flex;flex-wrap:wrap;gap:8px}.month-selector .form-message{flex-basis:100%;text-align:right}.month-filter{min-width:220px}.month-filter-controls{display:flex;flex-wrap:wrap;gap:12px}.month-filter-controls label{flex:1 1;min-width:120px}.inline-action-form{justify-content:center}.inline-action-form,.row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.row-actions{min-width:0}.row-message{flex-basis:100%}label{color:var(--foreground);display:grid;font-size:14px;font-weight:500;grid-gap:8px;gap:8px}input,select,textarea{background:var(--card);border:1px solid var(--border);border-radius:6px;color:var(--foreground);font:inherit;min-height:40px;padding:8px 12px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23737373' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4.5l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;cursor:pointer;padding-right:34px}select:hover{border-color:var(--muted-foreground)}:root[data-theme-mode=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23a3a3a3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4.5l4 4 4-4'/%3E%3C/svg%3E")}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid var(--focus-ring);outline-offset:2px}.danger-button,.primary-button,.secondary-button{align-items:center;border-radius:6px;cursor:pointer;display:inline-flex;font:inherit;font-size:14px;font-weight:500;gap:8px;justify-content:center;line-height:1;max-width:100%;min-height:40px;padding:10px 16px;text-align:center;transition:background .14s ease,border-color .14s ease,color .14s ease;white-space:normal}.primary-button{background:var(--primary);border:1px solid var(--primary);color:var(--primary-foreground)}.primary-button:hover{background:var(--primary-hover)}.secondary-button{background:var(--card);border:1px solid var(--border);color:var(--foreground)}.secondary-button:hover{background:var(--muted)}.danger-button{background:var(--danger-background);border:1px solid var(--danger-border);color:var(--danger-foreground)}.danger-button:hover{background:var(--danger-hover)}.small-button{min-height:32px;padding:8px 12px}button:disabled{cursor:not-allowed;opacity:.65}.form-message{font-size:14px}.error{color:var(--destructive)}.success{color:var(--success)}.student-dialog{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 20px 48px rgba(0,0,0,.18);max-height:calc(100dvh - 32px);max-width:448px;overflow-x:hidden;overflow-y:auto;padding:24px;white-space:normal;width:min(448px,calc(100vw - 32px))}.student-dialog .student-form{min-width:0}.student-dialog input,.student-dialog select,.student-dialog textarea{min-width:0;width:100%}.student-dialog::-webkit-backdrop{background:rgba(0,0,0,.45)}.student-dialog::backdrop{background:rgba(0,0,0,.45)}.class-dialog{max-width:640px}.import-dialog{max-width:760px;width:min(760px,calc(100vw - 32px))}.students-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.visually-hidden-input{display:none}.import-template-row{align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:10px 14px}.import-template-text{color:var(--muted-foreground);flex:1 1;font-size:13px;min-width:160px}.import-template-row code{background:var(--background);border-radius:5px;font-size:12px;padding:1px 5px}.import-dropzone{background:var(--muted);border:1.5px dashed var(--border);border-radius:var(--radius);padding:28px 20px;text-align:center}.import-dropzone-title{font-size:16px;font-weight:600;margin:0 0 4px}.import-dropzone-hint{color:var(--muted-foreground);font-size:13px;margin:0 0 16px}.import-summary{align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;font-size:14px;gap:8px 16px;margin-bottom:14px;padding:10px 14px}.import-pill{border-radius:999px;font-size:12px;font-weight:700;padding:2px 10px}.import-pill.ok{background:var(--paid-background);color:var(--paid-foreground)}.import-pill.skip{background:var(--danger-background);color:var(--danger-foreground)}.import-table-wrap{border:1px solid var(--border);border-radius:8px;max-height:320px;overflow:auto}.import-table{border-collapse:collapse;font-size:13px;table-layout:fixed;width:100%}.import-table th:first-child{width:6%}.import-table th:nth-child(2){width:19%}.import-table th:nth-child(3){width:8%}.import-table th:nth-child(4){width:16%}.import-table th:nth-child(5){width:15%}.import-table th:nth-child(6){width:16%}.import-table th:nth-child(7){width:20%}.import-table th{background:var(--card);color:var(--muted-foreground);font-size:11px;letter-spacing:.03em;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0}.import-table td,.import-table th{border-bottom:1px solid var(--border);padding:8px 10px}.import-table td{overflow-wrap:anywhere;vertical-align:top}.import-row-bad td{background:var(--danger-background)}.import-rownum{color:var(--muted-foreground)}.import-missing{color:var(--danger-foreground)}.import-status-ok{color:var(--paid-foreground);font-weight:600}.import-status-bad{color:var(--danger-foreground);font-weight:600}.import-skipped{background:var(--danger-background);border:1px solid var(--danger-border);border-radius:8px;color:var(--danger-foreground);font-size:13px;margin-top:12px;padding:10px 14px}.import-skipped p{margin:0 0 6px}.import-skipped ul{margin:0;padding-left:18px}.dialog-header{display:grid;grid-gap:6px;gap:6px}.dialog-header h3,.empty-state h2{font-size:18px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0}.dialog-header p{font-size:14px}.dialog-header p,.student-dialog .form-message{overflow-wrap:anywhere}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.empty-state{align-items:center;border:1px solid var(--border);border-radius:8px;display:grid;justify-items:center;min-height:300px;padding:40px 24px;text-align:center}.empty-icon{align-items:center;background:var(--muted);border-radius:999px;display:flex;height:48px;justify-content:center;width:48px}.empty-icon span{display:none}.empty-icon:before{border:2px solid var(--muted-foreground);border-radius:999px;content:"";height:20px;width:20px}.students-table-wrap{border:1px solid var(--border);border-radius:8px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%}.students-table-wrap table{min-width:760px}.page-loading{min-height:340px}.loading-line{animation:loading-pulse 1.2s ease-in-out infinite;background:linear-gradient(90deg,var(--surface-muted),var(--border),var(--surface-muted));background-size:220% 100%;border-radius:8px}.loading-title{height:34px;max-width:220px}.loading-subtitle{height:18px;margin-top:12px;max-width:340px}.loading-table{display:grid;grid-gap:12px;gap:12px;padding:20px}.loading-row{height:52px}@keyframes loading-pulse{0%{background-position:120% 0}to{background-position:-120% 0}}td,th{border-bottom:1px solid var(--border);font-size:14px;padding:12px 14px;text-align:left;white-space:nowrap}th{color:var(--muted-foreground);font-weight:500}tbody tr:hover{background:var(--row-hover)}tbody tr:last-child td{border-bottom:0}.student-name-cell{font-weight:500}.empty-table-cell{color:var(--muted-foreground);height:72px;text-align:center}.summary-cell{max-width:360px;white-space:normal}.payment-status-bar{align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:10px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:14px 18px}.payment-status-line{align-items:center;color:var(--muted-foreground);display:flex;font-size:.95rem;gap:10px;margin:0}.payment-status-line strong{color:var(--foreground);font-weight:600}.payment-status-check{align-items:center;background:var(--paid-background);border-radius:999px;color:var(--paid-foreground);display:inline-flex;flex:none;height:20px;justify-content:center;width:20px}.payment-status-check svg{height:12px;width:12px}.payment-paid-pill{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:999px;color:var(--foreground);display:inline-flex;font-size:.85rem;gap:8px;padding:3px 11px 3px 8px;vertical-align:middle}.payment-paid-pill strong{font-weight:700}.payment-paid-track{background:var(--border);background:color-mix(in srgb,var(--paid-foreground) 22%,transparent);border-radius:999px;flex:none;height:6px;overflow:hidden;width:42px}.payment-paid-fill{background:var(--paid-foreground);border-radius:999px;display:block;height:100%;min-width:0;transition:width .22s ease}.payment-paid-pill.is-complete{background:var(--paid-background);border-color:transparent;color:var(--paid-foreground)}.payment-status-bar .inline-action-form{justify-content:flex-end}.payment-danger-row{margin-top:10px}.payment-danger-row,.payment-delete{align-items:center;display:flex;justify-content:flex-end}.payment-delete{flex-wrap:wrap;gap:12px}.payment-delete-help{color:var(--muted-foreground);font-size:.8rem}.payment-delete-link{background:none;border:0;color:var(--muted-foreground);cursor:pointer;font:inherit;font-size:.85rem;padding:4px 2px;text-decoration:underline;text-underline-offset:3px;transition:color .14s ease}.payment-delete-link:hover:not(:disabled){color:var(--danger-foreground)}.payment-delete-link:disabled{cursor:not-allowed;opacity:.7}.pagination{gap:6px;margin-top:18px}.pagination,.pagination-pages{align-items:center;display:flex;flex-wrap:wrap;justify-content:center}.pagination-pages{gap:4px;list-style:none;margin:0;padding:0}.pagination-arrow,.pagination-page{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--foreground);cursor:pointer;display:inline-flex;font:inherit;font-size:.85rem;font-weight:500;justify-content:center;min-height:40px;min-width:40px;padding:0 10px;transition:background .14s ease,border-color .14s ease}.pagination-arrow:hover:not(:disabled),.pagination-page:hover:not(.active){background:var(--muted)}.pagination-arrow:disabled{cursor:not-allowed;opacity:.45}.pagination-page.active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.pagination-gap{color:var(--muted-foreground);padding:0 2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.payments-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.payments-filter-field{display:flex;flex-direction:column;gap:6px;width:240px}.payments-filter-field>span{color:var(--muted-foreground);font-size:12px;font-weight:500}.payments-filter-field input,.payments-filter-field select{height:40px;min-height:40px;width:100%}@media (max-width:640px){.payments-filter-field{width:100%}}.payments-summary{color:var(--muted-foreground);font-size:13px;margin:14px 0 10px}.payments-summary strong{color:var(--foreground)}.payments-empty{color:var(--muted-foreground);padding:28px 16px!important;text-align:center}.class-tags{display:flex;flex-wrap:wrap;gap:6px;max-width:280px}.class-tag,.count-badge,.status-badge{align-items:center;background:var(--muted);border-radius:999px;color:var(--foreground);display:inline-flex;font-size:12px;font-weight:500;line-height:1;padding:5px 8px}.class-tag-private{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary);font-weight:600}.status-active,.status-paid{background:var(--paid-background);color:var(--paid-foreground)}.status-inactive{background:var(--muted);color:var(--muted-foreground)}.status-unpaid{background:var(--unpaid-background);color:var(--danger-foreground)}.payment-row-unpaid{background:var(--unpaid-row)}.payment-row-unpaid:hover{background:var(--unpaid-row-hover)}.payment-dialog{max-width:440px}.payment-actions{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px}.payment-actions .form-message{flex-basis:100%}.wa-share-button{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:6px;color:var(--foreground);cursor:pointer;display:inline-flex;gap:6px;justify-content:center;min-height:32px;min-width:36px;padding:6px 8px;transition:background .14s ease,border-color .14s ease}.wa-share-button:hover{background:#e9f9ef;border-color:#25d366}.wa-share-label{display:none}.wa-pulse{animation:wa-pulse .8s ease-in-out 3;border-color:#25d366!important}@keyframes wa-pulse{0%,to{box-shadow:0 0 0 0 rgba(37,211,102,0)}50%{box-shadow:0 0 0 4px rgba(37,211,102,.35)}}.payments-table-wrap{position:relative}.modal-backdrop{align-items:center;background:rgba(0,0,0,.45);display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:20}.payment-popover{background:transparent;border:0;margin:auto;max-width:440px;padding:0;width:calc(100% - 32px)}.payment-popover::-webkit-backdrop{background:rgba(0,0,0,.45)}.payment-popover::backdrop{background:rgba(0,0,0,.45)}.payment-modal{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 20px 48px rgba(0,0,0,.18);max-width:440px;padding:24px;width:min(100%,440px)}.payments-table{min-width:980px}.payments-table td:last-child,.payments-table th:last-child{background:var(--card);box-shadow:-1px 0 0 var(--border);min-width:260px;position:-webkit-sticky;position:sticky;right:0;z-index:2}.payments-table th:last-child{z-index:3}.payments-table tbody tr:hover td:last-child{background:var(--muted)}.payments-table .payment-row-unpaid td:last-child{background:var(--unpaid-row)}.payments-table .payment-row-unpaid:hover td:last-child{background:var(--unpaid-row-hover)}.class-assignment-list{display:grid;max-height:320px;overflow-y:auto}.class-assignment-row,.student-assignment-row{align-items:center;border-radius:6px;display:grid;grid-gap:12px;gap:12px;padding:8px}.class-assignment-row{grid-template-columns:auto minmax(0,1fr) 150px}.student-assignment-row{grid-template-columns:auto minmax(0,1fr)}.class-assignment-row:hover,.student-assignment-row:hover{background:var(--row-hover)}.class-assignment-row input[type=checkbox],.student-assignment-row input[type=checkbox]{height:16px;min-height:16px;padding:0;width:16px}.class-assignment-name{display:grid;grid-gap:3px;gap:3px;min-width:0}.class-assignment-name small{color:var(--muted-foreground);font-size:13px;font-weight:400}.custom-price-input{min-width:0}.student-count{font-size:14px}.private-lessons-section{border-top:1px solid var(--border);display:grid;grid-gap:12px;gap:12px;margin-top:4px;padding-top:16px}.private-lessons-header h4{font-size:15px;font-weight:600;margin:0}.private-lessons-toggle{align-items:center;display:flex;font-size:15px;font-weight:600;gap:8px}.private-lessons-toggle input{height:18px;width:18px}.private-lesson-row{border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:12px}@media (min-width:600px){.private-lesson-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.private-lesson-row .private-lesson-remove{grid-column:1/-1;justify-self:start}}.link-button{background:none;border:none;color:var(--primary);cursor:pointer;font:inherit;justify-self:start;padding:0;text-decoration:underline}.link-button.danger-link{color:var(--destructive)}.private-lessons-note{color:var(--muted-foreground);font-size:13px;margin:0}.private-classes-section{display:grid;grid-gap:16px;gap:16px;margin-top:24px}.private-classes-section h2{font-size:18px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0 0 4px}.private-classes-section>div p{color:var(--muted-foreground);font-size:14px;margin:0}.inactive-students-section{display:grid;grid-gap:16px;gap:16px}.inactive-students-section h2{font-size:18px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0 0 4px}.dashboard-actions{display:flex;flex-wrap:wrap;gap:8px}.profile-card{align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:18px;padding:20px 22px}.profile-logo{align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:12px;color:var(--muted-foreground);display:flex;flex:0 0 64px;font-size:20px;font-weight:700;height:64px;justify-content:center;overflow:hidden;width:64px}.profile-logo img{height:100%;object-fit:cover;width:100%}.profile-body{flex:1 1;min-width:0}.profile-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.profile-name{font-size:18px;font-weight:700;margin:0}.profile-reg{color:var(--muted-foreground);font-size:13px;margin:2px 0 0}.profile-edit{color:var(--foreground);font-size:13px;font-weight:600;text-decoration:underline;white-space:nowrap}.profile-grid{display:grid;grid-gap:8px 24px;gap:8px 24px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:14px}.profile-field{font-size:14px;min-width:0}.profile-field .k{color:var(--muted-foreground);display:block;font-size:12px;letter-spacing:.03em;text-transform:uppercase}.profile-field .v{color:var(--foreground);overflow-wrap:anywhere}@media (max-width:560px){.profile-card{flex-direction:column}}.dashboard-section{background:var(--card);border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:24px;gap:24px;padding:24px}.dashboard-section h2{font-size:18px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0}.dashboard-summary-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-summary-item{background:var(--muted);border-radius:8px;display:grid;grid-gap:8px;gap:8px;padding:16px}.dashboard-summary-item span{color:var(--muted-foreground);font-size:13px;font-weight:500}.dashboard-summary-item strong{font-size:28px;font-weight:600;line-height:1}.dashboard-steps{color:var(--foreground);display:grid;font-size:14px;grid-gap:8px;gap:8px;margin:0;padding-left:20px;text-align:left}.dashboard-steps a{color:var(--primary);font-weight:500}.dashboard-steps a:hover{text-decoration:underline}.settings-panel{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:24px}.setup-welcome{display:grid;grid-gap:16px;gap:16px;justify-items:center;padding:16px 8px;text-align:center}.setup-welcome-badge{align-items:center;background:var(--muted);border-radius:999px;display:flex;font-size:30px;height:64px;justify-content:center;line-height:1;width:64px}.setup-welcome h2{font-size:22px;font-weight:600;margin:0}.setup-welcome>p{color:var(--muted-foreground);font-size:15px;margin:0;max-width:420px}.setup-welcome-steps{display:grid;grid-gap:12px;gap:12px;list-style:none;margin:4px 0 0;max-width:420px;padding:0;text-align:left;width:100%}.setup-welcome-steps li{border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:2px;gap:2px;padding:12px 14px}.setup-welcome-steps li strong{font-size:14px;font-weight:600}.setup-welcome-steps li span{color:var(--muted-foreground);font-size:13px}.setup-welcome .primary-button{margin-top:4px}.setup-form-intro{display:grid;grid-gap:4px;gap:4px;margin-bottom:4px}.setup-form-intro h2{font-size:18px;font-weight:600;margin:0}.setup-form-intro p{color:var(--muted-foreground);font-size:14px;margin:0}.settings-layout{align-items:start;display:grid;grid-gap:16px;gap:16px;grid-template-columns:210px minmax(0,1fr)}.settings-nav{position:-webkit-sticky;position:sticky;top:24px}.settings-nav-disclosure{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:6px}.settings-nav-disclosure summary{border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;list-style:none;padding:10px 12px}.settings-nav-disclosure summary::-webkit-details-marker{display:none}.settings-nav-disclosure summary:after{color:var(--muted-foreground);content:"Hide";float:right;font-size:12px;font-weight:500}.settings-nav-disclosure:not([open]) summary:after{content:"Show"}.settings-nav-items{display:grid;grid-gap:4px;gap:4px;padding-top:4px}.settings-nav-link{border-radius:6px;display:grid;grid-gap:4px;gap:4px;padding:10px 12px}.settings-nav-link:hover{background:var(--muted)}.settings-nav-link.active{background:var(--primary);color:var(--primary-foreground)}.settings-nav-link span{font-size:14px;font-weight:600}.settings-nav-link small{color:var(--muted-foreground);font-size:12px;font-weight:400;line-height:1.35}.settings-nav-link.active small{color:inherit;opacity:.78}.settings-content{min-width:0}.settings-form{display:grid;grid-gap:16px;gap:16px;max-width:720px}.settings-form label.settings-checkbox{align-items:flex-start;display:flex;flex-direction:row;font-weight:400;gap:10px;font-size:14px;line-height:1.4}.settings-form label.settings-checkbox input[type=checkbox]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:none;border:none;border-radius:0;flex:0 0 auto;height:18px;margin:2px 0 0;min-height:0;padding:0;width:18px}.settings-form-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form-actions{display:flex;justify-content:flex-end}.appearance-panel{display:grid;grid-gap:28px;gap:28px}.appearance-section{display:grid;grid-gap:16px;gap:16px}.appearance-section h2{font-size:18px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0}.appearance-section p{font-size:14px}.segmented-control{background:var(--muted);border:1px solid var(--border);border-radius:8px;display:inline-flex;padding:4px;width:-moz-fit-content;width:fit-content}.segmented-control button{background:transparent;border:0;border-radius:6px;color:var(--muted-foreground);cursor:pointer;font:inherit;font-size:14px;font-weight:500;min-height:36px;padding:8px 16px}.segmented-control button.selected{background:var(--primary);color:var(--primary-foreground)}.template-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.template-card{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--foreground);cursor:pointer;display:grid;font:inherit;font-size:14px;font-weight:500;grid-gap:10px;gap:10px;justify-items:start;min-height:96px;padding:14px}.template-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring)}.template-swatch{border:1px solid var(--border);border-radius:999px;display:inline-block;height:32px;width:32px}.template-card[data-template=white] .template-swatch{background:#ffffff}.template-card[data-template=pink] .template-swatch{background:#f3a6ba}.template-card[data-template=blue] .template-swatch{background:#9bc7f5}.template-card[data-template=beige] .template-swatch{background:#dcc69f}.business-logo-preview{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:8px;display:flex;min-height:96px;padding:12px}.business-logo-preview img{max-height:72px;max-width:180px;object-fit:contain}.receipt-page{display:grid;grid-gap:24px;gap:24px}.receipt-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.receipt-back-link{align-items:center;color:var(--muted-foreground);display:inline-flex;font-size:14px;font-weight:500;gap:6px;margin-right:auto;min-height:40px;padding:8px 4px;transition:color .14s ease}.receipt-back-link:before{content:"←";font-size:16px;line-height:1}.receipt-back-link:hover{color:var(--foreground);text-decoration:underline}.receipt-export-action{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.public-receipt-page{--background:#ffffff;--foreground:#171717;--card:#ffffff;--card-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--border:#e5e5e5;--primary:#171717;--primary-foreground:#fafafa;--primary-hover:#262626;--focus-ring:rgba(23,23,23,0.12);--paid-background:#dcfce7;--paid-foreground:#166534;--success:#047857;background:var(--background);color:var(--foreground);display:flex;justify-content:center}.public-receipt-bar-sub,.public-receipt-bar-title{color:var(--primary-foreground)}.public-receipt-shell{display:grid;grid-gap:16px;gap:16px;width:100%;max-width:640px}.public-receipt-bar{align-items:center;background:var(--primary);border-radius:var(--radius);color:var(--primary-foreground);display:flex;gap:12px;padding:14px 18px}.public-receipt-badge{align-items:center;background:rgba(255,255,255,.18);border-radius:8px;display:flex;font-size:18px;height:36px;justify-content:center;width:36px}.public-receipt-bar-title{font-size:16px;font-weight:700;margin:0}.public-receipt-bar-sub{font-size:13px;margin:0;opacity:.8}.public-receipt-trust{background:var(--paid-background);border:1px solid var(--border);border-radius:var(--radius);color:var(--paid-foreground);font-size:14px;margin:0;padding:10px 16px;text-align:center}.public-receipt-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.public-receipt-help{color:var(--muted-foreground);font-size:13px;margin:0;text-align:center}.public-receipt-empty{display:grid;grid-gap:8px;gap:8px;justify-items:center;padding:64px 24px;text-align:center}.public-receipt-empty span{font-size:40px}.public-receipt-empty h1{font-size:18px;margin:0}.public-receipt-empty p{color:var(--muted-foreground);font-size:14px;margin:0;max-width:360px}.receipt-snackbar{border-radius:8px;bottom:24px;box-shadow:0 16px 40px rgba(15,23,42,.18);color:#ffffff;font-size:14px;font-weight:600;left:50%;max-width:min(420px,calc(100vw - 32px));padding:12px 16px;position:fixed;text-align:center;transform:translateX(-50%);z-index:60}.receipt-snackbar.success{background:#166534}.receipt-snackbar.error{background:#991b1b}.receipt-snackbar-link{color:#ffffff;display:block;font-size:13px;margin-top:6px;text-decoration:underline;text-underline-offset:3px}.receipt-card{background:var(--card);border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:28px;gap:28px;margin:0 auto;max-width:820px;padding:40px;width:100%}.receipt-header{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:24px;justify-content:space-between;padding-bottom:24px}.receipt-business{display:grid;grid-gap:6px;gap:6px}.receipt-logo{display:block;max-height:72px;max-width:180px;object-fit:contain}.receipt-business h1{font-size:22px}.receipt-business p,.receipt-footer p,.receipt-meta p{font-size:14px}.receipt-meta{display:grid;grid-gap:6px;gap:6px;text-align:right}.receipt-meta h2{font-size:24px;letter-spacing:0;line-height:1.2;margin:0}.receipt-details{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-details div{display:grid;grid-gap:4px;gap:4px}.receipt-details div:nth-child(2n){text-align:right}.receipt-details span{color:var(--muted-foreground);font-size:12px;font-weight:500;text-transform:uppercase}.receipt-details strong{font-size:15px;font-weight:600}.receipt-table td:last-child,.receipt-table th:last-child{text-align:right}.receipt-table tfoot th{border-bottom:0;border-top:1px solid var(--border);color:var(--foreground);font-size:15px;font-weight:600}.receipt-footer{border-top:1px solid var(--border);padding-top:20px;text-align:center}.receipt-capture-stage{position:absolute;left:-100000px;top:0;width:820px;pointer-events:none;--background:#ffffff;--foreground:#171717;--card:#ffffff;--card-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--border:#e5e5e5;--primary:#171717;color:#171717}.receipt-capture-stage .receipt-header{flex-direction:row;align-items:flex-start}.receipt-capture-stage .receipt-card{padding:40px}.receipt-capture-stage .receipt-meta{text-align:right}.receipt-capture-stage .receipt-details{grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-capture-stage .receipt-details div:nth-child(2n){text-align:right}@media (max-width:900px){.header-inner{align-items:stretch;flex-direction:column;gap:16px}.main-nav{overflow-x:auto;padding-bottom:2px}.nav-link{flex:0 0 auto}.students-toolbar{align-items:stretch;flex-direction:column}.students-toolbar .primary-button{width:-moz-fit-content;width:fit-content}}@media (max-width:640px){.app-container{padding-left:16px;padding-right:16px}.month-selector{align-items:stretch;flex-direction:column}.month-selector .form-message{text-align:left}.payment-status-bar{align-items:stretch;flex-direction:column}.payment-status-bar .inline-action-form,.payment-status-bar .primary-button{justify-content:center;width:100%}.payment-danger-row,.payment-delete{justify-content:flex-start}.dashboard-summary-grid,.settings-form-grid{grid-template-columns:1fr}.settings-form-actions{justify-content:stretch}.settings-layout{grid-template-columns:1fr}.settings-nav{position:static}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-header,.receipt-toolbar{align-items:stretch;flex-direction:column}.receipt-card{padding:24px}.receipt-meta{text-align:left}.receipt-details{grid-template-columns:1fr}.receipt-details div:nth-child(2n){text-align:left}.nav-link{flex:1 0 auto}.students-toolbar .danger-button,.students-toolbar .primary-button,.students-toolbar .secondary-button{width:100%}.class-assignment-row{grid-template-columns:auto minmax(0,1fr)}.custom-price-input{grid-column:2}.dialog-actions{flex-direction:column-reverse}.dialog-actions button{width:100%}}@media print{body{background:#ffffff}.mobile-tabbar,.no-print,.public-receipt-bar,.public-receipt-trust,.receipt-capture-stage,.site-footer,.site-header{display:none!important}main.app-container{max-width:none;padding:0}.receipt-card{border:0;border-radius:0;max-width:none;padding:24px}}.header-user{align-items:center;display:flex;gap:12px}.header-user-email{color:var(--muted-foreground);font-size:14px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-sign-out{padding:8px 14px}.profile-menu{position:relative}.profile-avatar-button{background:none;border:none;border-radius:50%;cursor:pointer;display:inline-flex;padding:0}.profile-avatar-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.profile-avatar-button:hover .profile-avatar{box-shadow:0 0 0 4px var(--row-hover)}.profile-avatar{align-items:center;background:var(--primary);border-radius:50%;display:inline-flex;height:40px;justify-content:center;overflow:hidden;transition:box-shadow .15s ease;width:40px}.profile-avatar img{height:100%;object-fit:cover;width:100%}.profile-avatar-initials{color:var(--primary-foreground);font-size:15px;font-weight:700;letter-spacing:.02em}.profile-menu-paper{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);min-width:248px;padding:8px 0;position:absolute;right:0;top:calc(100% + 10px);z-index:1000;animation:profile-menu-in .12s ease-out}@keyframes profile-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.profile-menu-identity{display:flex;flex-direction:column;gap:2px;padding:6px 16px 12px}.profile-menu-name{font-size:14px;font-weight:600}.profile-menu-email,.profile-menu-name{max-width:216px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu-email{color:var(--muted-foreground);font-size:13px}.profile-menu-divider{background:var(--border);height:1px;margin:4px 0}.profile-menu-item{align-items:center;background:none;border:none;color:var(--foreground);cursor:pointer;display:flex;font-size:14px;gap:12px;padding:10px 16px;text-align:left;text-decoration:none;width:100%}.profile-menu-item:hover{background:var(--row-hover)}.profile-menu-item:disabled{cursor:default;opacity:.6}.profile-menu-icon{color:var(--muted-foreground);flex:0 0 auto;height:20px;width:20px}.feedback-dialog{background:var(--card);border:none;border-radius:12px;color:var(--foreground);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);max-width:420px;padding:0;width:calc(100% - 32px)}.feedback-dialog::-webkit-backdrop{background:rgba(0,0,0,.5)}.feedback-dialog::backdrop{background:rgba(0,0,0,.5)}.feedback-dialog-body{padding:24px}.feedback-dialog-body h3{font-size:19px;margin:0 0 8px}.feedback-dialog-body p{color:var(--muted-foreground);line-height:1.6;margin:0 0 22px}.feedback-dialog-reach{align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;font-size:14px;gap:4px 8px;margin:0 0 22px;padding:10px 14px}.feedback-dialog-reach a{color:var(--primary);font-weight:600;text-decoration:none;word-break:break-all}.feedback-dialog-reach a:hover{text-decoration:underline}.feedback-dialog-actions{display:flex;gap:12px;justify-content:flex-end}.language-switcher{align-items:center;border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden;padding:2px}.language-switcher-option{background:transparent;border:none;border-radius:999px;color:var(--muted-foreground);cursor:pointer;font-size:13px;font-weight:600;line-height:1;padding:6px 10px;transition:background .14s ease,color .14s ease}.language-switcher-option:hover{color:var(--foreground)}.language-switcher-option.active{background:var(--primary);color:var(--primary-foreground)}.login-page{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 200px);padding:24px 0}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 32px rgba(15,23,42,.06);max-width:420px;padding:32px;width:100%}.login-card h1{margin:0 0 8px}.login-intro{color:var(--muted-foreground);margin:0 0 24px}.login-banner{align-items:flex-start;background:color-mix(in srgb,var(--success) 10%,var(--card));border:1px solid var(--success);border-left-width:4px;border-radius:8px;display:flex;font-size:14px;gap:10px;line-height:1.45;margin:0 0 20px;padding:12px 14px}.login-banner-tick{color:var(--success);font-size:16px;font-weight:700}.login-banner strong{display:block;margin-bottom:2px}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{font-size:14px;gap:6px}.login-field span{color:var(--foreground);font-weight:500}.login-field input{background:var(--background);border:1px solid var(--border);border-radius:8px;font-size:15px;padding:10px 12px}.login-field input:focus{border-color:var(--primary);outline:2px solid var(--focus-ring);outline-offset:0}.login-form .primary-button{margin-top:8px}.field-hint,.login-field-hint{color:var(--muted-foreground);font-weight:400}.field-hint{display:block;font-size:12px;margin-top:4px}.login-alt{color:var(--muted-foreground);font-size:14px;margin:20px 0 0;text-align:center}.login-alt a{color:var(--foreground);font-weight:600}@media (max-width:640px){.header-inner{flex-wrap:wrap;gap:12px}.header-user{margin-left:auto}.header-user-email{max-width:120px}}.toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.schedule-modal{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 20px 48px rgba(0,0,0,.18);max-height:calc(100dvh - 32px);max-width:min(1100px,calc(100vw - 32px));overflow:auto;padding:16px 24px 24px;width:min(1100px,calc(100vw - 32px))}.schedule-modal::-webkit-backdrop{background:rgba(0,0,0,.45)}.schedule-modal::backdrop{background:rgba(0,0,0,.45)}.schedule-modal-head{display:flex;justify-content:flex-end;margin-bottom:8px}.class-schedule{display:flex;flex-direction:column;gap:16px}.schedule-toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.schedule-toolbar h2{margin:0}.view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.view-toggle button{background:var(--card);border:0;color:var(--foreground);cursor:pointer;font:inherit;font-size:14px;min-height:36px;padding:8px 16px}.view-toggle button+button{border-left:1px solid var(--border)}.view-toggle button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.timetable{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.tt-body,.tt-header{display:grid;grid-template-columns:64px repeat(7,minmax(96px,1fr));min-width:760px}.tt-header{border-bottom:1px solid var(--border)}.tt-corner,.tt-day-name{border-right:1px solid var(--border)}.tt-day-name{color:var(--muted-foreground);font-size:13px;font-weight:600;padding:10px 8px;text-align:center}.tt-day-name:last-child{border-right:0}.tt-body,.tt-gutter{position:relative}.tt-gutter{border-right:1px solid var(--border)}.tt-hour{color:var(--muted-foreground);font-size:11px;position:absolute;right:6px;transform:translateY(-6px)}.tt-col{border-right:1px solid var(--border);position:relative;background-image:repeating-linear-gradient(to bottom,var(--border) 0,var(--border) 1px,transparent 1px,transparent 60px)}.tt-col:last-child{border-right:0}.tt-block{background:var(--primary);border:0;border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.12);color:var(--primary-foreground);cursor:pointer;display:flex;flex-direction:column;font:inherit;font-size:12px;line-height:1.3;overflow:hidden;padding:6px 8px;position:absolute;text-align:left}.tt-block-name{font-weight:600}.tt-block-name,.tt-block-students{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-block-students{opacity:.9}.tt-block-time{margin-top:2px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-list{display:flex;flex-direction:column;gap:12px}.schedule-list-day{background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.schedule-list-day h3{border-bottom:1px solid var(--border);font-size:14px;margin:0;padding:12px 16px}.schedule-list-empty{color:var(--muted-foreground);font-size:13px;margin:0;padding:12px 16px}.schedule-list-item{align-items:center;background:transparent;border:0;border-bottom:1px solid var(--border);color:var(--foreground);cursor:pointer;display:flex;font:inherit;gap:12px;justify-content:space-between;padding:12px 16px;text-align:left;width:100%}.schedule-list-item:last-child{border-bottom:0}.schedule-list-item:hover{background:var(--row-hover)}.sli-main{display:flex;flex-direction:column;gap:2px}.sli-name{font-size:14px;font-weight:600}.sli-subject{color:var(--muted-foreground)}.sli-students,.sli-subject{font-size:13px}.sli-time{white-space:nowrap}.schedule-note,.sli-time{color:var(--muted-foreground);font-size:13px}.schedule-note{margin:0}.roster-dialog .roster-list{list-style:none;margin:16px 0 0;padding:0}.roster-dialog .roster-list li{border-bottom:1px solid var(--border);font-size:14px;padding:8px 0}.roster-dialog .roster-list li:last-child{border-bottom:0}.mobile-tabbar,.settings-account{display:none}@media (max-width:640px){.header-inner{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:12px;padding-bottom:12px;padding-top:12px}.header-user,.main-nav{display:none}body{padding-bottom:76px}.mobile-tabbar{background:var(--card);border-top:1px solid var(--border);bottom:0;display:grid;grid-template-columns:repeat(4,1fr);left:0;padding-bottom:env(safe-area-inset-bottom,0);position:fixed;right:0;z-index:15}.mobile-tab{align-items:center;color:var(--muted-foreground);display:flex;flex-direction:column;font-size:11px;font-weight:500;gap:4px;justify-content:center;min-height:56px;padding:8px 4px}.mobile-tab.active{color:var(--primary)}.mobile-tab-label{line-height:1}.settings-account{border-top:1px solid var(--border);display:block;margin-top:20px;padding-top:20px}.settings-account-signout{min-height:44px;width:100%}.settings-account-email{color:var(--muted-foreground);font-size:13px;margin-top:10px;text-align:center}.students-table-wrap{background:transparent;border:0;overflow:visible}.students-table-wrap table,.students-table-wrap tbody,.students-table-wrap td,.students-table-wrap tr{display:block;min-width:0;width:auto}.students-table-wrap thead{display:none}.students-table-wrap tr{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:14px}.students-table-wrap .payment-row-unpaid{background:var(--unpaid-row)}.students-table-wrap td{align-items:baseline;border:0;display:flex;gap:16px;justify-content:space-between;padding:6px 0;text-align:right;white-space:normal}.students-table-wrap td:before{color:var(--muted-foreground);content:attr(data-label);flex:0 0 auto;font-size:12px;font-weight:500;letter-spacing:.02em;text-align:left;text-transform:uppercase}.students-table-wrap td:not([data-label]){display:block;text-align:left}.students-table-wrap td:not([data-label]):before{content:none}.students-table-wrap td.student-name-cell{font-size:16px;font-weight:600;padding-bottom:4px}.students-table-wrap td.summary-cell,.students-table-wrap td[data-label=Classes]{display:block;text-align:left}.students-table-wrap td.summary-cell:before,.students-table-wrap td[data-label=Classes]:before{display:block;margin-bottom:6px}.students-table-wrap td.amount-cell{font-size:18px;font-weight:700}.students-table-wrap td.action-cell{background:transparent;box-shadow:none;min-width:0;padding-top:12px;position:static;right:auto}.students-table-wrap td.action-cell .row-actions{gap:8px}.students-table-wrap td.action-cell .danger-button,.students-table-wrap td.action-cell .primary-button,.students-table-wrap td.action-cell .secondary-button,.students-table-wrap td.action-cell .small-button{min-height:44px}.students-table-wrap td.action-cell .payment-actions,.students-table-wrap td.action-cell>button{width:100%}.students-table-wrap td.action-cell .payment-actions>form{flex:1 1 100%}.students-table-wrap td.action-cell .payment-actions>button,.students-table-wrap td.action-cell .payment-actions>form>button{width:100%}.payment-actions .wa-share-button{min-height:44px}.payment-actions .wa-share-label{display:inline}.footer-nav{gap:20px}.footer-nav a{display:inline-block;padding:6px 0}}.time-picker{align-items:center;display:flex;gap:6px}.time-picker select{flex:1 1 auto;min-width:0}.time-picker-colon{color:var(--muted-foreground);font-weight:600}.tax-export{display:grid;grid-gap:20px;gap:20px}.tax-export-controls{align-items:end;display:flex;flex-wrap:wrap;gap:16px}.tax-export-scope{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.tax-export-scope button{background:var(--card);border:none;color:var(--muted-foreground);cursor:pointer;font-size:14px;font-weight:500;padding:9px 18px}.tax-export-scope button.active{background:var(--primary);color:var(--primary-foreground)}.tax-export-field{display:grid;grid-gap:6px;gap:6px}.tax-export-field span{color:var(--muted-foreground);font-size:13px;font-weight:500}.tax-export-field input,.tax-export-field select{border-radius:8px;font-size:14px}.tax-export-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:34px}.tax-export-download{margin-left:auto}.tax-export-total{align-items:center;background:var(--muted);border:1px solid var(--border);border-radius:8px;display:flex;justify-content:space-between;padding:14px 18px}.tax-export-total span{color:var(--muted-foreground);font-size:14px}.tax-export-total-value{align-items:center;display:flex;gap:10px}.tax-export-total strong{font-size:20px;font-weight:600;letter-spacing:.04em;min-width:96px;text-align:right}.tax-export-eye{align-items:center;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted-foreground);cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.tax-export-eye:hover{background:var(--muted);color:var(--foreground)}.tax-export-loading{color:var(--muted-foreground);font-size:14px;margin:0}.tax-export-table .amount-cell{text-align:right}.tax-export-month-header td{background:var(--muted);font-weight:600}.tax-export-subtotal td{color:var(--muted-foreground);font-weight:500}.tax-export-grand-total td{border-top:2px solid var(--border);font-size:15px;font-weight:600}.tax-export-disclaimer{color:var(--muted-foreground);font-size:13px;line-height:1.6;margin:0}