.storage-meter{display:grid;gap:6px;min-width:0}.storage-meter-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px;font-size:13px}.storage-meter-head span{color:var(--text-muted);font-size:12px;white-space:nowrap}.storage-meter-bar{height:8px;border-radius:999px;background:var(--border, #e5e7eb);overflow:hidden}.storage-meter-bar i{display:block;height:100%;border-radius:inherit;background:var(--primary, #2563eb);transition:width .3s ease}.storage-meter-warn .storage-meter-bar i{background:#d97706}.storage-meter-full .storage-meter-bar i{background:#dc2626}.storage-meter-full .storage-meter-head strong{color:#b91c1c}.storage-meter-note{margin:0;font-size:12px;line-height:1.5;color:var(--text-muted)}.storage-meter-full .storage-meter-note{color:#b91c1c}.storage-meter-compact{min-width:140px}.academy-storage-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}.academy-storage-row .storage-meter{flex:1 1 200px;max-width:320px}.academy-storage-row a{font-size:13px;white-space:nowrap}.admin-storage-quota{display:grid;gap:8px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px}.admin-storage-quota-head{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}.admin-storage-quota-head span{color:var(--text-muted);font-size:12.5px}.admin-storage-quota-stepper{display:flex;align-items:center;gap:10px}.admin-storage-quota-stepper output{min-width:72px;text-align:center;font-size:16px;font-weight:800;color:var(--blue-900, #1e3a8a)}.admin-storage-quota .admin-registration-note{margin:0}@media(max-width:600px){.table.academy-info-table{min-width:0}.table.academy-info-table td:first-child{width:88px!important}}.storage-addon{display:grid;gap:8px;margin-top:10px}.storage-addon-status{margin:0;font-size:13px;color:var(--text)}.storage-addon-note{margin:0;font-size:12.5px;line-height:1.55;color:var(--text-muted)}.storage-addon .storage-addon-button{justify-self:start;width:auto;min-height:36px;padding:6px 14px;font-size:13px}.storage-pending{display:grid;gap:8px;padding:12px;border:1px solid #ffd591;border-radius:10px;background:#fffaf0}.storage-pending-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px}.storage-bank{display:grid;gap:4px;margin:0;padding:10px 12px;border-radius:8px;background:var(--surface-muted, #f7f8fa);font-size:13px}.storage-bank>div{display:flex;flex-wrap:wrap;column-gap:10px}.storage-bank dt{min-width:64px;color:var(--text-muted)}.storage-bank dd{margin:0;font-weight:700;overflow-wrap:anywhere}.storage-order{display:grid;gap:14px}.storage-order fieldset{margin:0;padding:0;border:0;min-width:0}.storage-order legend{padding:0;margin-bottom:8px;font-size:13.5px;font-weight:700}.storage-chips{display:flex;flex-wrap:wrap;gap:8px}.storage-order .storage-chip{width:auto;min-height:38px;margin:0;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface, white);color:var(--text);font-size:13.5px;font-weight:700;cursor:pointer}.storage-order .storage-chip[aria-pressed=true]{border-color:var(--blue-700, #1d4ed8);background:var(--blue-700, #1d4ed8);color:#fff}.storage-order .storage-chip-period{display:grid;gap:2px;border-radius:12px;padding:8px 16px;text-align:left}.storage-order .storage-chip-period small{font-size:11.5px;font-weight:600;opacity:.85}.storage-total{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;border-radius:10px;background:var(--blue-50, #eef4ff)}.storage-total strong{font-size:20px;color:var(--blue-900, #1e3a8a)}.storage-field{display:grid;gap:6px;font-size:13px;font-weight:700;min-width:0}.storage-field input{min-height:40px;box-sizing:border-box;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-weight:400}.storage-check{display:flex;align-items:center;gap:8px;font-size:13.5px}.storage-check input{width:18px;height:18px;margin:0}.storage-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.storage-order .storage-submit{width:100%;min-height:46px;font-size:15px;font-weight:800}@media(max-width:600px){.storage-row{grid-template-columns:minmax(0,1fr)}}.admin-storage-orders{margin-bottom:14px}.admin-storage-orders-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.admin-storage-orders-head h2{margin:0}.admin-storage-order{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border);font-size:13px}.admin-storage-order:first-of-type{border-top:0}.admin-storage-order small{display:block;color:var(--text-muted);font-size:12px;overflow-wrap:anywhere}.admin-storage-order-actions{display:flex;gap:6px}.admin-storage-order-warn{color:#b42318;font-weight:700}.admin-storage-pricing{margin-top:12px}.admin-storage-pricing .form-grid{margin:10px 0}@media(max-width:700px){.admin-storage-order{grid-template-columns:minmax(0,1fr)}}.admin-storage-empty{line-height:1.65}.storage-refund{font-size:12.5px;color:var(--text-muted)}.storage-refund summary{cursor:pointer;font-weight:700}.storage-refund p{margin:8px 0;white-space:pre-line;line-height:1.6;color:var(--text)}.storage-retention-note{margin:0;font-size:12.5px;line-height:1.5;font-weight:700;color:#b45309}.storage-retention-note.storage-retention-plus{color:var(--blue-800, #1e40af)}.storage-retention-note.storage-retention-grace{color:#b91c1c}.archive-plus{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--blue-100, #dbe7ff);border-radius:12px;background:var(--blue-50, #eef4ff)}.archive-plus-title{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;margin:0;font-size:14px}.archive-plus-title span{font-size:13px;font-weight:800;color:var(--blue-900, #1e3a8a)}.archive-plus-points{display:grid;gap:3px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;color:var(--text)}.archive-plus-text{margin:0;font-size:13px;line-height:1.55;color:var(--text)}.archive-plus .archive-plus-cta{justify-self:start;display:inline-flex;align-items:center;width:auto;min-height:38px;padding:7px 16px;font-size:13.5px;text-decoration:none}.archive-plus-grace{border-color:#fecaca;background:#fff5f5}.admin-archive-plan{display:grid;gap:8px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px}.admin-archive-plan-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-archive-plan-row input[type=date]{min-height:36px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;font:inherit}.admin-archive-plan .admin-registration-note{margin:0}.archive-notice{display:grid;gap:8px;border-color:#fcd9a8;background:#fffaf2}.archive-notice-danger{border-color:#fecaca;background:#fff5f5}.archive-notice-title{margin:0;font-size:15px;font-weight:800;color:var(--text)}.archive-notice-text{margin:0;font-size:13.5px;line-height:1.55;color:var(--text-muted)}.archive-notice-actions{display:flex;flex-wrap:wrap;gap:8px}.archive-notice-actions .btn-small,.archive-notice-actions .btn-primary{display:inline-flex;align-items:center;width:auto;min-height:36px;text-decoration:none}.badge.badge-expiring{background:#fee2e2;color:#b91c1c;font-weight:800}.retention-hint{margin:8px 0 0;font-size:12.5px;color:var(--text-muted)}.retention-hint.retention-soon{color:#b91c1c;font-weight:700}.storage-files-summary{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 12px;font-size:13.5px}.storage-files-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.storage-files-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.storage-files-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:10px 0;border-top:1px solid var(--border);font-size:13.5px}.storage-files-list li:first-child{border-top:0}.storage-files-list small{display:block;color:var(--text-muted);font-size:12px}.storage-files-list .storage-files-name{min-width:0;overflow-wrap:anywhere}.storage-files-list .btn-small{width:auto}.storage-usage-card{margin-bottom:18px}.storage-files-title{margin:6px 0 10px;font-size:16px}.information-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin:12px 0;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);min-width:0}.information-card-notice{background:var(--blue-50);border-color:#dce7ff}.information-card-warning{background:#fffaf0;border-color:#f0ddb3}.information-card-body{flex:1;min-width:0}.information-card .information-card-body h3{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:14px;line-height:1.5;font-weight:650}.information-card h3 svg{flex-shrink:0;margin-top:2px;color:var(--blue-700)}.information-card-warning h3 svg{color:#946219}.information-card h3 span{min-width:0;overflow-wrap:anywhere}.information-card-content{margin-top:7px;color:var(--text-muted);font-size:13px;line-height:1.65;overflow-wrap:anywhere}.information-card-content>p{margin:0}.information-card-content>p+p{margin-top:5px}.information-card-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.information-card-actions>a,.information-card-actions>button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid #dce7ff;border-radius:7px;background:var(--blue-50);color:var(--blue-700);font:inherit;font-size:13px;font-weight:650;text-align:center;text-decoration:none;overflow-wrap:anywhere}.information-card-actions>a:hover,.information-card-actions>button:hover{background:#e6efff}.information-card-actions>:focus-visible{outline:3px solid #80aaff;outline-offset:3px}.information-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:10px;margin:12px 0}.information-facts>div{min-width:0;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.information-facts dt{color:var(--text-muted);font-size:12px;line-height:1.5}.information-facts dd{margin:5px 0 0;color:var(--text);font-size:16px;line-height:1.4;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.information-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}.information-card-grid>.information-card{margin:0;flex-direction:column;align-items:stretch}.information-card-grid .information-card-actions{margin-top:auto}.information-card-grid .information-card-actions>*{flex:1}.information-card .information-facts{margin-bottom:0}.information-facts-compact .information-facts dd{font-size:14px}.information-card-field{display:grid;gap:6px;margin-top:12px;color:var(--text-muted);font-size:12px}.information-card-field select{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;color:var(--text);background:var(--surface);font:inherit;font-size:13px}@media(max-width:600px){.information-card{flex-direction:column;align-items:stretch;gap:12px;padding:14px}.information-card-actions>*{flex:1}.information-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.information-facts>div{padding:10px}.information-facts>div:last-child:nth-child(odd){grid-column:1/-1}}.site-footer{display:grid;gap:6px;margin:18px auto 0;max-width:560px;padding:0 12px 18px;font-size:12px;line-height:1.6;color:var(--text-muted);text-align:center}.site-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px}.site-footer-links a,.site-footer-links button{color:inherit;font:inherit;font-size:12px;text-decoration:none;background:none;border:0;padding:0;width:auto;min-height:0;margin:0;cursor:pointer}.site-footer-links a:hover,.site-footer-links button:hover{text-decoration:underline}.site-footer-refund{margin:4px 0;padding:10px 12px;border-radius:10px;background:var(--surface, #fff);border:1px solid var(--border);white-space:pre-line;text-align:left;color:var(--text)}.site-footer-business p{margin:0;overflow-wrap:anywhere}.login-shell .site-footer{color:#ffffffd1}.login-shell .site-footer-refund{color:var(--text)}body footer.site-footer{display:grid;gap:6px;margin:18px auto 0}body footer.site-footer .site-footer-links button{flex:none;min-height:0;width:auto;padding:0}.login-shell.auth-entry{padding:32px 16px;min-height:100dvh;box-sizing:border-box}.auth-entry .login-card{width:100%;max-width:440px;padding:28px 32px 24px;border-radius:22px;box-shadow:0 18px 50px #091e4229}.auth-entry .login-head{margin:0 0 22px}.entry-heading{margin-bottom:24px}.entry-heading .entry-brand{margin:0 0 12px;color:var(--blue-700);font-size:16px;font-weight:800;letter-spacing:-.5px}.entry-heading h1{margin:0 0 8px;font-size:24px;line-height:1.35;font-weight:800;letter-spacing:-.8px;word-break:keep-all;overflow-wrap:anywhere}.entry-heading>p:last-child{margin:0;font-size:13px;line-height:1.6;color:var(--text-muted);word-break:keep-all}.auth-entry .login-social-list{gap:10px}.auth-entry .login-social{min-height:50px;margin:0;padding:12px 16px;border-radius:11px;font-size:14px;gap:10px}.auth-entry .login-social svg{flex-shrink:0;width:18px}.auth-entry button:disabled{opacity:.55;cursor:wait}.auth-entry button:focus-visible,.entry-extras a:focus-visible{outline:3px solid #6c8df3;outline-offset:3px}.entry-social-note{margin:12px 0 24px;color:var(--text-muted);text-align:center;font-size:12px;line-height:1.6;word-break:keep-all}.entry-email{border:1px solid var(--border);border-radius:12px;background:#f8f9fc;overflow:hidden}.entry-email-option+.entry-email-option{border-top:1px solid var(--border)}.entry-email-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:49px;margin:0;padding:12px 16px;border:0;background:none;color:var(--text);font:inherit;font-size:13px;font-weight:600;text-align:left;cursor:pointer}.entry-email-toggle:hover{background:#eef2f9}.entry-email-toggle[aria-expanded=true]{color:var(--blue-700)}.entry-email-toggle>svg,.entry-plus{flex:0 0 18px;text-align:center;color:var(--text-muted)}.entry-plus{font-size:20px;line-height:1;font-weight:400}.entry-chevron{margin-left:auto;color:var(--text-muted);font-size:19px;line-height:1}.entry-email-toggle[aria-expanded=true] .entry-chevron{transform:rotate(180deg)}.entry-email-form{display:grid;gap:14px;padding:4px 16px 18px}.entry-field{display:grid;gap:6px;min-width:0;font-size:12px;font-weight:700}.entry-field small{color:var(--text-muted);font-size:11.5px;font-weight:400;line-height:1.5}.entry-field>span>small{margin-left:4px}.auth-entry .login-field{margin:0;min-height:44px;background:var(--surface);color:var(--text)}.entry-email-form .btn-primary{min-height:46px}.entry-email-form .login-forgot{margin:0;justify-self:center;min-height:32px;text-underline-offset:3px}.entry-extras{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;margin-top:20px}.entry-extras a,.entry-extras button{display:inline-flex;align-items:center;min-height:36px;padding:4px 0;border:0;background:none;color:var(--text-muted);font:inherit;font-size:12px;text-decoration:none;cursor:pointer}.entry-extras a:hover,.entry-extras button:hover{color:var(--blue-700);text-decoration:underline;text-underline-offset:4px}.entry-extras>span{color:var(--border)}.entry-notice{padding:10px 12px;margin:0 0 18px;border-radius:8px;background:var(--blue-50);color:var(--blue-900);font-size:12px;line-height:1.6}@media(max-width:480px){.login-shell.auth-entry{padding:20px 12px}.auth-entry .login-card{padding:24px 22px 18px;border-radius:18px}.entry-heading h1{font-size:22px}.auth-entry .login-field{font-size:16px}}@media(max-width:350px){.auth-entry .login-card{padding-inline:18px}.entry-heading h1{font-size:20px}.entry-email-toggle,.entry-email-form{padding-inline:12px}}.academy-join{max-width:600px;margin:0 auto;padding:24px 20px 64px}.academy-join>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:32px}.academy-join>header>a{color:var(--blue-700);font-weight:800;text-decoration:none}.academy-join-card{background:var(--surface, white);border:1px solid var(--border);border-radius:20px;padding:28px}.academy-join h1{font-size:26px;line-height:1.35;margin:8px 0 16px}.academy-join h2{font-size:20px;margin:0 0 16px}.academy-join p{line-height:1.65;overflow-wrap:anywhere}.academy-join-eyebrow{color:var(--blue-700);font-size:12px;font-weight:800;letter-spacing:.08em}.academy-join-account{color:var(--text-muted);font-size:14px}.academy-join label{display:block;font-weight:700;font-size:14px;margin-bottom:8px}.academy-join input{width:100%;min-width:0;min-height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}.academy-join input:focus-visible{outline:2px solid var(--blue-700);outline-offset:2px}.academy-join-code{display:flex;gap:8px}.academy-join-code input{flex:1;letter-spacing:.08em}.academy-join-code button{width:auto;flex:none;white-space:nowrap}.academy-join-preview{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.academy-join dl{margin:0 0 24px}.academy-join dl>div{display:flex;justify-content:space-between;gap:16px;margin:12px 0}.academy-join dt{color:var(--text-muted);flex-shrink:0}.academy-join dd{margin:0;text-align:right;overflow-wrap:anywhere}.academy-join-preview>button{margin-top:16px;width:100%}.academy-join-error{color:#b42318}.academy-join footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.academy-join footer button{flex:1;width:auto;min-height:44px}@media(max-width:480px){.academy-join{padding:16px 12px 36px}.academy-join-card{padding:20px 16px}.academy-join h1{font-size:23px}.academy-join input{font-size:16px}}.guardian-link h2{display:flex;align-items:center;gap:8px}.guardian-link-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.guardian-link-optional{font-size:11px;font-weight:700;color:var(--blue-700);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:999px;padding:2px 8px}.guardian-link-lead{margin:0 0 12px;font-size:13.5px;line-height:1.65;color:var(--text);overflow-wrap:anywhere}.guardian-link-scope{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}.guardian-link-scope li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;font-size:13px;line-height:1.55;color:var(--text-muted);padding:10px 12px;background:var(--bg);border-radius:8px}.guardian-link-scope strong{color:var(--text);font-weight:650}.guardian-link-result label{display:block;font-size:12.5px;font-weight:700;margin:0 0 6px}.guardian-link-result input{width:100%;min-height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}.guardian-link-note{margin:8px 0 0;font-size:12.5px;line-height:1.6;color:var(--text-muted);overflow-wrap:anywhere}.guardian-link-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.guardian-link-actions>button{width:auto;min-height:44px;padding:10px 16px;flex:0 1 auto}.guardian-link-actions>.guardian-link-note{flex-basis:100%}.academy-join .guardian-link{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.academy-join .guardian-link h2{font-size:17px;margin:0 0 10px}@media(max-width:600px){.guardian-link-scope li{grid-template-columns:1fr;gap:4px}.guardian-link-actions>button{flex:1 1 auto}.guardian-link-result input{font-size:16px}}.guardian-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.guardian-list-head .card-title{margin:0;display:flex;align-items:center;gap:6px}.guardian-list-count{font-size:11.5px;font-weight:700;color:var(--blue-700);background:var(--blue-50);border-radius:999px;padding:1px 8px}.guardian-list-rows{list-style:none;margin:0;padding:0}.guardian-list-rows li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.guardian-list-rows li:last-child{border-bottom:0}.guardian-list-rows li>div{min-width:0;display:flex;flex-direction:column;gap:2px}.guardian-list-rows strong{font-size:13.5px}.guardian-list-rows small{font-size:12px;color:var(--text-muted);overflow-wrap:anywhere}.guardian-unlink{color:#b42318;flex-shrink:0}.guardian-list-note{margin:6px 0;font-size:13px;line-height:1.6;color:var(--text-muted)}.guardian-list-hint{margin:10px 0 0;font-size:11.5px;line-height:1.6;color:var(--text-muted)}.join-links{display:grid;gap:14px}.join-link-block{padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.join-link-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.join-link-head h3{margin:0;font-size:14px;font-weight:700}.join-link-desc{margin:0 0 10px;font-size:12.5px;line-height:1.6;color:var(--text-muted)}.join-link-url,.join-link-form{display:flex;gap:8px;align-items:center}.join-link-url input,.join-link-form input,.join-link-form select{flex:1;min-width:0;height:var(--form-control-height);box-sizing:border-box;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}.join-link-url>button,.join-link-form>button{flex:none;min-height:var(--form-control-height);white-space:nowrap}.join-link-meta{margin:6px 0 0;font-size:12px;color:var(--text-muted);overflow-wrap:anywhere}.join-link-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.join-link-danger{color:#b42318!important}.join-link-error{margin:0;font-size:12.5px;color:#b42318}.join-link-created{margin-top:10px;padding:10px 12px;border-radius:8px;background:var(--blue-50);border:1px solid var(--blue-100);display:grid;gap:8px}.join-link-created strong{font-size:12.5px}.join-link-created .join-link-actions{margin-top:0}.join-link-list{list-style:none;margin:10px 0 0;padding:0}.join-link-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.join-link-list li>div{min-width:0;display:flex;flex-direction:column;gap:2px}.join-link-list strong{font-size:13px}.join-link-list small{font-size:11.5px;color:var(--text-muted)}.join-link-row-actions{display:flex;gap:6px;flex-shrink:0}.join-app-codes{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.join-app-codes>summary{cursor:pointer;font-size:13px;font-weight:650;color:var(--text)}.join-app-codes>summary small{font-weight:400;color:var(--text-muted);margin-left:6px}.join-app-codes[open]>summary{margin-bottom:8px}.join-code-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.join-code-row:last-child{border-bottom:0}.join-code-label{min-width:84px;color:var(--text-muted)}.join-code-value{min-width:86px;font-size:16px;letter-spacing:1px}.join-code-row .btn-small{width:auto;margin-left:auto}@media(max-width:600px){.join-link-url,.join-link-form{flex-wrap:wrap}.join-link-url input,.join-link-form input,.join-link-form select{flex-basis:100%;height:44px;font-size:16px}.join-link-url>button,.join-link-form>button{flex:1 1 auto;min-height:44px}.join-link-list li{flex-wrap:wrap}}.demo-role-selector>summary{color:var(--blue-800);background:var(--blue-50);border-color:var(--blue-100)}.demo-role-options{min-width:176px;left:0;right:auto}.demo-role-options p{margin:8px;font-size:12px;line-height:1.5;color:var(--text-muted)}.demo-role-options button:disabled{opacity:.45;cursor:not-allowed}.demo-readonly .layout-utilities{flex-wrap:wrap;justify-content:flex-end;max-width:100%}@media(max-width:480px){.demo-readonly .layout-utilities{gap:5px}.demo-role-selector .utility-button{padding-inline:8px}}.app-update-notice{position:fixed;right:24px;bottom:24px;z-index:80;box-sizing:border-box;width:min(420px,calc(100% - 32px));padding:18px 20px;border:1px solid var(--blue-100);border-radius:16px;background:var(--surface,#fff);color:var(--text);box-shadow:0 8px 32px #172b4d2e}.app-update-notice strong{display:block;font-size:15px;line-height:1.5;color:var(--blue-900)}.app-update-notice p{margin:6px 0 14px;font-size:13px;line-height:1.6;color:var(--text-muted);overflow-wrap:anywhere}.app-update-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.app-update-actions button{min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:10px;font:inherit;font-size:13px;font-weight:700;line-height:1.4;white-space:nowrap;cursor:pointer}.app-update-actions .app-update-later{background:transparent;color:var(--text-muted)}.app-update-actions .app-update-refresh{background:var(--blue-700);color:#fff}.app-update-actions button:disabled{cursor:wait;opacity:.65}.app-update-actions button:focus-visible{outline:3px solid var(--blue-700);outline-offset:3px}@media(max-width:900px){.app-update-notice{right:16px;bottom:calc(84px + env(safe-area-inset-bottom));padding:16px}}@media print{.app-update-notice{display:none}}.operation-form{--operation-control-height:44px;display:grid;gap:16px}.operation-fieldset{border:0;padding:0;margin:0;min-width:0}.operation-history{border:1px solid var(--border);border-radius:10px;padding:0 14px;margin:10px 0;background:var(--surface);min-width:0}.operation-history[open]{padding-bottom:14px}.compact-attendance-page .attendance-agenda .operation-history{border-radius:10px}.operation-history p{overflow-wrap:anywhere}.operation-summary{white-space:pre-wrap;line-height:1.7;padding:14px;border-radius:10px;background:var(--bg,#f5f7fb)}.operation-history summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.operation-form label,.operation-form .booking-date-field{display:grid;align-content:start;min-width:0;gap:6px;font-weight:600;line-height:1.5}.operation-form :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select,textarea,.booking-date-trigger){box-sizing:border-box;width:100%;min-width:0;min-height:var(--operation-control-height);border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface);color:var(--text);font:inherit;font-weight:400}.operation-form :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select,.booking-date-trigger){height:var(--operation-control-height)}.operation-form .operation-check{display:flex;align-items:center;gap:10px}.operation-check input{width:18px;height:18px;min-height:18px;padding:0;flex-shrink:0}.operation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.operation-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.operation-actions button,.operation-actions a{width:auto;min-height:44px}.workspace-section-heading>.btn-secondary{width:auto;flex-shrink:0;min-height:44px;display:inline-flex;align-items:center;text-decoration:none}.operation-note{color:var(--text-muted);line-height:1.6;font-size:14px}.operation-period{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.operation-period button{min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#fff);color:var(--text);font:inherit;cursor:pointer}.operation-period button[aria-pressed=true]{background:var(--blue-50);color:var(--blue-700);border-color:var(--blue-700);font-weight:700}@media(max-width:600px){.operation-period{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.operation-period button{min-width:0;padding:10px 6px;font-size:13px}}.operation-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.operation-row p{margin:6px 0;overflow-wrap:anywhere}.operation-row .operation-actions{flex-shrink:0;margin-top:0}.operation-error{color:var(--danger,#b42318)}.operation-dialog{box-sizing:border-box;width:min(600px,calc(100vw - 24px));border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text)}.operation-dialog::backdrop{background:#091e4280}.operation-dialog h2{margin-top:0}.operation-history summary{cursor:pointer;padding:14px 0;font-weight:700}@media(max-width:600px){.operation-grid{grid-template-columns:1fr}.operation-row{align-items:flex-start;flex-direction:column;gap:8px}.operation-form :where(input,select,textarea,.booking-date-trigger){font-size:16px}}.academy-workspace:not(.student-app) .operation-form{--operation-control-height:var(--form-control-height);gap:12px}.academy-workspace:not(.student-app) .operation-form label,.academy-workspace:not(.student-app) .operation-form .booking-date-field{gap:6px;font-size:12.5px;font-weight:600;color:var(--text-muted)}.academy-workspace:not(.student-app) .operation-form :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select,textarea,.booking-date-trigger){min-height:var(--operation-control-height);padding:8px 10px;border-radius:7px;font-size:13px;font-weight:400;font-family:inherit;color:var(--text)}.academy-workspace:not(.student-app) .operation-form textarea{min-height:90px;line-height:1.6}.academy-workspace:not(.student-app) .operation-form .operation-check{gap:8px;font-size:13px;font-weight:500;color:var(--text)}.academy-workspace:not(.student-app) .operation-check input{width:18px;height:18px;min-height:18px}.academy-workspace:not(.student-app) .operation-note{font-size:12.5px}.academy-workspace:not(.student-app) .operation-form h3,.academy-workspace:not(.student-app) .operation-dialog h3{margin:4px 0 0;font-size:14px;font-weight:700}.academy-workspace:not(.student-app) .operation-form p,.academy-workspace:not(.student-app) .operation-row p,.academy-workspace:not(.student-app) .operation-history p,.academy-workspace:not(.student-app) .operation-dialog p{font-size:13px;line-height:1.65}.academy-workspace:not(.student-app) .operation-row{padding:12px 0}.academy-workspace:not(.student-app) .operation-row strong{font-size:14px}.academy-workspace:not(.student-app) .operation-history summary{padding:12px 0;font-size:13.5px}.academy-workspace:not(.student-app) .operation-actions{margin-top:12px}.academy-workspace:not(.student-app) .operation-actions button,.academy-workspace:not(.student-app) .operation-actions a{min-height:36px}.academy-workspace:not(.student-app) .operation-actions .btn-primary,.academy-workspace:not(.student-app) .operation-actions .btn-secondary,.academy-workspace:not(.student-app) .operation-form .btn-primary,.academy-workspace:not(.student-app) .operation-form .btn-secondary{width:auto;justify-self:start;margin-top:0;padding:8px 16px;font-size:13px;border-radius:7px;display:inline-flex;align-items:center;text-decoration:none}.academy-workspace:not(.student-app) .operation-period button{min-height:36px;padding:7px 12px;font-size:13px;border-radius:8px}.academy-workspace:not(.student-app) .operation-summary{font-size:13px;padding:12px}.academy-workspace:not(.student-app) .operation-dialog{--modal-px:22px;--modal-py:20px}.academy-workspace:not(.student-app) .operation-error{font-size:13px}@media(max-width:600px){.academy-workspace:not(.student-app) .operation-form :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select,textarea,.booking-date-trigger){font-size:16px}.academy-workspace:not(.student-app) .operation-actions button,.academy-workspace:not(.student-app) .operation-actions a{min-height:44px}}.policy-lead{margin:0 0 12px;font-size:13px;color:var(--text-muted);line-height:1.6}.policy-table-wrap{overflow-x:auto;margin-bottom:14px}.policy-table{min-width:560px}.policy-table th,.policy-table td{font-size:13px;vertical-align:middle}.policy-table thead th{font-size:12px}.policy-table tbody th{font-weight:700;color:var(--text);white-space:nowrap;text-align:left;background:transparent}.policy-table tbody th small{display:block;font-size:11px;font-weight:500;color:var(--text-muted);margin-top:2px}.policy-toggle{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:13px}.policy-toggle input{width:16px;height:16px;margin:0}.policy-toggle input:not(:checked)+span{color:var(--text-muted)}.policy-select{padding:7px 9px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:13px;color:var(--text);background:var(--surface)}.policy-fixed{color:var(--text-muted)}.policy-subtitle{margin:4px 0 8px;font-size:13px;font-weight:700}.policy-note{margin:2px 0 12px;font-size:12.5px;color:var(--text-muted);line-height:1.6}@media(max-width:600px){.policy-select{font-size:16px}}.operation-history .attendance-lesson-actions{justify-content:flex-end}@media(max-width:600px){.policy-table-wrap{overflow-x:visible}.table.policy-table{min-width:0;width:100%;display:block;border-collapse:separate}.policy-table thead,.policy-table tbody{display:block}.policy-table thead tr,.policy-table tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.policy-table thead th:first-child{display:none}.policy-table thead th{padding:8px 6px;text-align:center}.policy-table tbody tr{border-top:1px solid var(--border)}.policy-table tbody th[scope=row]{grid-column:1 / -1;display:flex;align-items:baseline;gap:6px;padding:10px 6px 4px;border:0;white-space:normal}.policy-table tbody th[scope=row] small{display:inline;margin:0}.policy-table tbody td{padding:4px 6px 10px;border:0;text-align:center;min-width:0;display:flex;align-items:center;justify-content:center}.policy-table .policy-select{width:100%;min-width:0;padding-left:6px;padding-right:4px}.policy-table .policy-toggle{justify-content:center;flex-wrap:wrap}}.first-steps .modal-body{display:grid;gap:18px}.first-steps-nav{display:flex;flex-wrap:wrap;gap:6px}.first-steps-nav button{min-height:40px;padding:7px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;cursor:pointer}.first-steps-nav [aria-current=step]{border-color:var(--blue-700);background:var(--blue-50);color:var(--blue-700);font-weight:700}.first-steps-panel{display:grid;gap:8px}.first-steps-panel h3{margin:0 0 4px;font-size:18px}.first-steps-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;border:1px solid var(--border);border-radius:12px;padding:14px;color:var(--text);text-decoration:none}.first-steps-action:hover,.first-steps-action:focus-visible{border-color:var(--blue-700)}.first-steps-action span{grid-row:2;font-size:14px;line-height:1.55;color:var(--text-muted);overflow-wrap:anywhere}.first-steps-action svg{grid-column:2;grid-row:1 / 3;color:var(--blue-700)}.first-steps-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}.first-steps-footer small{color:var(--text-muted)}.first-steps-footer .btn-primary{display:inline-flex;width:auto;align-items:center;gap:4px;margin-inline-start:auto}.first-steps-replay{width:fit-content;margin-bottom:12px}.layout-toolbar{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px;flex-wrap:wrap}.layout-utilities{display:flex;align-items:flex-start;gap:8px;margin-left:auto;flex-shrink:0}.utility-button{display:inline-flex;gap:7px;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;font-weight:650;line-height:20px;white-space:nowrap;cursor:pointer}.utility-button:hover{background:var(--blue-50)}.utility-button:focus-visible,.language-options button:focus-visible{outline:2px solid var(--blue-700);outline-offset:2px}.utility-button:disabled{opacity:.6;cursor:wait}.utility-button>span:first-child{font-size:16px}.app-install-button{width:auto;height:36px;padding:7px 10px;flex-shrink:0}.app-install-button svg{width:20px;height:20px;flex-shrink:0}.language-accordion{position:relative}.language-accordion>summary{list-style:none}.language-accordion>summary::-webkit-details-marker{display:none}.language-chevron{font-size:12px;transition:transform .15s}.language-accordion[open] .language-chevron{transform:rotate(180deg)}.language-options{position:absolute;z-index:30;top:calc(100% + 5px);right:0;width:160px;padding:5px;border:1px solid var(--border);border-radius:9px;background:var(--surface);box-shadow:0 6px 20px #091e4226}.language-options button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px;border:0;border-radius:5px;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.language-options button:hover,.language-options button[aria-pressed=true]{background:var(--blue-50);color:var(--blue-700)}.app-install-dialog{width:min(480px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 12px 60px #091e4240;overflow:auto}.app-install-dialog::backdrop{background:#091e4273}.app-install-content{padding:22px}.app-install-content header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.app-install-content h2{margin:4px 0 20px;font-size:18px;line-height:1.4;overflow-wrap:anywhere}.install-close{padding:0;width:36px;flex-shrink:0;font-size:22px}.app-install-brand{display:flex;align-items:center;gap:12px;padding:16px;border-radius:9px;background:var(--blue-50)}.app-install-brand img{border-radius:12px;flex-shrink:0}.app-install-brand p{margin:5px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted)}.app-install-content h3{margin:22px 0 12px;font-size:14px}.app-install-content ol{margin:0;padding-left:22px}.app-install-content li{padding-left:3px;margin:12px 0;font-size:14px;line-height:1.65;overflow-wrap:anywhere}.app-install-content li::marker{color:var(--blue-700);font-weight:750}.app-install-note{margin:18px 0 0;color:var(--text-muted);font-size:12px;line-height:1.6}.app-install-content>button{margin-top:18px;width:100%}.app-install-ready{margin-top:18px}.app-install-ready p{font-size:14px;line-height:1.65;word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}.app-install-ready button{width:100%;min-height:44px}.app-install-manual{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.app-install-manual summary{cursor:pointer;font-size:13px;color:var(--text-muted)}@media(max-width:480px){.layout-toolbar,.layout-utilities{gap:6px}.layout-toolbar .nav-toggle{font-size:12px;min-height:36px;padding:7px 9px}.utility-button{gap:5px;padding:7px 8px}.app-install-button{padding:7px}.app-install-content{padding:18px}}.web-push-button{width:36px;height:36px;padding:7px;flex-shrink:0}.web-push-button svg{width:20px;height:20px;flex-shrink:0}.web-push-banner{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:16px;padding:14px 18px;border:1px solid var(--blue-100);border-radius:14px;background:linear-gradient(100deg,var(--blue-50) 0%,var(--surface) 70%)}.web-push-banner-icon{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:var(--blue-700);color:#fff;font-size:20px}.web-push-banner-text{flex:1 1 220px;min-width:0}.web-push-banner-text strong{display:block;font-size:14.5px;font-weight:800;color:var(--blue-900)}.web-push-banner-text p{margin:3px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-muted)}.web-push-banner-text details{margin-top:6px;font-size:12.5px;color:var(--text-muted)}.web-push-banner-text summary{cursor:pointer}.web-push-banner-text ol{margin:6px 0 0;padding-left:18px}.web-push-banner-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.web-push-banner-actions button{width:auto;flex:0 0 auto;min-height:44px;margin:0;white-space:nowrap}@media(max-width:480px){.web-push-banner{padding:12px 14px;gap:10px}.web-push-banner-actions{width:100%;justify-content:flex-end}}.academy-workspace{--bg:#f5f7fb;--border:#e2e7ef;--text-muted:#606f85}.academy-workspace .content{min-width:0;padding-top:24px}.academy-workspace .sidebar{background:var(--blue-900)}.academy-workspace .sidebar-brand{padding:22px 18px}.academy-workspace .sidebar-brand-copy{flex:1;min-width:0}.academy-workspace .sidebar-title{font-size:17px;letter-spacing:-.4px}.academy-workspace .sidebar-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.academy-workspace .sidebar-nav{gap:5px;padding:18px 12px}.academy-workspace .sidebar-link{min-height:44px;font-size:13px;line-height:1.5;border-radius:9px}.academy-workspace .sidebar-link-icon{flex-shrink:0;font-size:14px}.academy-workspace .sidebar-group-toggle{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit}.academy-workspace .sidebar-group-toggle:hover{background:#ffffff14}.academy-workspace .sidebar-link-active{background:#fff;color:var(--blue-900);box-shadow:0 2px 8px #091e4212}.academy-workspace .sidebar-link-active:hover{background:var(--blue-50)}.academy-workspace .sidebar-submenu{margin:4px 0 8px 10px;border-left:1px solid #ffffff38;padding-left:6px}.academy-workspace .sidebar-submenu .sidebar-link{padding:9px 10px;font-size:12px}.academy-workspace .sidebar-footer{padding:18px}.academy-workspace .sidebar-signout{min-height:36px}.academy-workspace .sidebar :focus-visible{outline:2px solid #fff;outline-offset:2px}.academy-workspace .sidebar-link-active:focus-visible{outline-offset:3px}.academy-workspace .layout-toolbar{margin-bottom:22px}.academy-workspace .page-title,.academy-workspace .student-title h1{font-size:25px;font-weight:750;letter-spacing:-.65px;line-height:1.35}.academy-workspace .page-subtitle{line-height:1.65;margin-top:6px}.academy-workspace .card,.academy-workspace .student-card{border-radius:14px;box-shadow:0 2px 5px #23334a04;padding:22px;margin-bottom:18px}.academy-workspace .card-title,.academy-workspace .student-card h2{font-size:15px;line-height:1.5}.academy-workspace .table th{background:var(--bg);font-size:12px;border-bottom-width:1px}.academy-workspace .table td{padding-top:13px;padding-bottom:13px}.academy-workspace .stat-card{border-left-width:1px;border-radius:12px;padding:18px 20px}.academy-workspace .stat-value{font-size:28px;font-weight:750}.academy-workspace .stat-label{font-size:12px;margin-top:5px}.workspace-page-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.workspace-page-intro>:first-child{flex:1;min-width:0}.workspace-page-intro .page-subtitle,.workspace-page-intro .student-title{margin-bottom:0}.workspace-page-intro>a,.workspace-page-intro>button{flex-shrink:0}.workspace-kicker{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--blue-900)}.workspace-primary-link{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;min-height:44px;border:1px solid var(--blue-700);border-radius:9px;background:var(--blue-700);color:#fff;font:inherit;font-size:13px;font-weight:650;line-height:1.4;text-decoration:none;cursor:pointer}.workspace-primary-link:hover{background:var(--blue-900)}.workspace-quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.workspace-quick-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 17px;border:1px solid var(--border);border-radius:11px;background:var(--surface);text-decoration:none;color:var(--text)}.workspace-quick-links a:hover{border-color:var(--blue-700);background:var(--blue-50)}.workspace-quick-links strong{display:block;font-size:13px}.workspace-quick-links small{display:block;color:var(--text-muted);font-size:11px;line-height:1.5;margin-top:3px}.workspace-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.workspace-section-heading .card-title{margin:0}.workspace-section-heading>a{font-size:12px;font-weight:650;color:var(--blue-700);text-underline-offset:4px;white-space:nowrap}.workspace-dashboard .empty-state{padding:24px 8px;line-height:1.7}.workspace-dashboard .workspace-table-scroll{overflow-x:auto}.workspace-operation-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 0;border:0;background:none;font:inherit;font-size:13px;color:var(--text);text-align:left;cursor:pointer}.workspace-disclosure>summary{cursor:pointer;font-size:14px;font-weight:650;line-height:1.5;padding:2px 0}.workspace-disclosure>summary::marker{color:var(--blue-700)}.workspace-disclosure[open]>summary{margin-bottom:18px}.workspace-disclosure>summary small{font-weight:400;color:var(--text-muted);margin-left:10px;font-size:12px}.workspace-disclosure .card-title{flex-wrap:wrap}.workspace-scroll-hint{display:none}.booking-floor-plan h2{margin:0 0 8px}.booking-floor-plan>p{margin:0 0 14px;font-size:12px;line-height:1.6;color:var(--text-muted)}.booking-floor-plan g[role=button]:focus-visible{outline:none}.booking-floor-plan g[role=button]:focus-visible rect{stroke:var(--blue-700);stroke-width:4}.academy-workspace .student-room-list{margin-top:0}.academy-workspace .student-room-list button{flex-basis:120px;min-width:0;overflow-wrap:anywhere}.student-time-period{border-top:1px solid var(--border)}.student-time-period h3{margin:0}.student-time-period-toggle{display:flex;align-items:center;gap:8px;min-height:48px;width:100%;padding:10px 0;border:0;background:none;color:var(--text);text-align:left}.student-time-period-toggle strong{font-size:13px}.student-time-period-toggle span{margin-left:auto;font-size:11px;color:var(--text-muted);font-weight:400}.student-time-period .student-times{margin:0 0 16px}.academy-workspace .student-times{grid-template-columns:repeat(auto-fill,minmax(62px,1fr))}.academy-workspace .student-times button{min-height:44px;font-size:12px}.academy-workspace .student-booking-summary{border:1px solid var(--blue-100)}.academy-workspace .student-booking-summary strong{font-size:18px}.academy-workspace .student-booking-layout{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr)}.academy-workspace .student-columns{gap:18px}.academy-workspace .student-text-link{font-size:12px;text-decoration:none}.academy-workspace .student-text-link:hover{text-decoration:underline}.academy-workspace .content button:focus-visible,.academy-workspace .content summary:focus-visible,.academy-workspace .content a:focus-visible{outline:2px solid var(--blue-700);outline-offset:3px}@media(max-width:1100px){.academy-workspace .student-booking-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.academy-workspace .content{padding:16px}.academy-workspace .layout-toolbar{margin-bottom:24px}.academy-workspace .page-title,.academy-workspace .student-title h1{font-size:22px}.academy-workspace .card,.academy-workspace .student-card{padding:18px;margin-bottom:14px}.workspace-page-intro{align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:20px}.workspace-page-intro>:first-child{flex-basis:100%}.workspace-quick-links{gap:8px}.workspace-quick-links a{padding:13px 10px}.workspace-quick-links small{display:none}.workspace-quick-links a>span{display:none}.workspace-dashboard .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workspace-dashboard .stat-card:last-child:nth-child(3){grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.workspace-disclosure>summary small{display:block;margin:5px 0 0 15px}.workspace-scroll-hint{display:block;margin:10px 0;color:var(--text-muted);font-size:12px;line-height:1.5}}@media(max-width:360px){.academy-workspace .content{padding:14px 12px}.academy-workspace .card,.academy-workspace .student-card{padding:16px}.academy-workspace .student-room-list{gap:6px}.academy-workspace .student-room-list button{flex-basis:100px;padding:12px 9px}.academy-workspace .student-times{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-quick-links strong{font-size:12px}}@media print{.workspace-quick-links,.workspace-primary-link{display:none}}.workspace-mobile-dock{position:fixed;bottom:0;left:0;right:0;z-index:40;pointer-events:none}.workspace-history-nav{position:absolute;bottom:calc(100% + 10px);left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none}.workspace-mobile-nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--surface,#fff);border-top:1px solid var(--border);pointer-events:auto}.workspace-history-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface,#fff);color:var(--blue-700);box-shadow:0 2px 8px #1428501a;pointer-events:auto}.workspace-history-button:hover:not(:disabled){background:var(--blue-50)}.workspace-history-button:disabled{color:var(--text-muted);opacity:.5;cursor:default}.workspace-history-button:focus-visible{outline:3px solid var(--blue-700);outline-offset:-3px}.workspace-mobile-nav a{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-muted);text-decoration:none;font-size:11px;white-space:nowrap;border-radius:10px}.workspace-mobile-nav a>span:first-child{font-size:17px}.workspace-mobile-nav a.workspace-mobile-active{background:var(--blue-50);color:var(--blue-700);font-weight:800}.workspace-mobile-nav a:focus-visible{outline:3px solid var(--blue-700);outline-offset:-3px}.student-skip{position:fixed;top:8px;left:8px;z-index:2000;transform:translateY(-180%)}.student-skip:focus{transform:none;padding:12px;background:#fff;color:var(--blue-900)}@media(max-width:900px){.has-mobile-nav .content{padding-bottom:calc(94px + env(safe-area-inset-bottom))}}@media print{.workspace-mobile-dock{display:none!important}}.section-tabs{display:flex;align-items:center;gap:14px;margin:0 0 22px;min-width:0}.section-tabs-title{flex:none;padding:0 4px 13px 0;font-size:13px;font-weight:800;color:var(--text-muted);white-space:nowrap}.section-tabs-list{width:100%}@media(max-width:600px){.section-tabs{gap:6px;margin-bottom:14px}.section-tabs-title{display:none}}.academy-workspace .sidebar-link.sidebar-section-link{min-height:48px;font-size:14.5px;font-weight:700}.academy-workspace .sidebar-link.sidebar-section-link .sidebar-link-icon{font-size:16px}.sidebar-account{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.sidebar-account-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:8px 10px;border:0;border-radius:10px;background:#ffffff1a;color:#fff;font-family:inherit;text-align:left;cursor:pointer}.sidebar-account-toggle:hover,.sidebar-account-toggle.is-active{background:#ffffff2e}.sidebar-account-toggle>span:first-child{flex:1;min-width:0;display:grid;gap:1px}.sidebar-account-caret{flex:none;font-size:11px;opacity:.85}.sidebar-account-menu{display:grid;gap:2px;padding:6px;border-radius:12px;background:#fff;box-shadow:0 8px 24px #091e4247}.sidebar-account-menu a,.sidebar-account-menu button{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font-family:inherit;font-size:14px;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.sidebar-account-menu a:hover,.sidebar-account-menu button:hover{background:var(--blue-50)}.sidebar-account-menu a.is-active{background:var(--blue-50);color:var(--blue-900);font-weight:800}.sidebar-account-menu .sidebar-account-signout{margin-top:2px;border-top:1px solid var(--border);border-radius:0 0 8px 8px;color:var(--text-muted)}.academy-workspace .sidebar .sidebar-account-menu :focus-visible{outline:2px solid var(--blue-700);outline-offset:-2px}.workspace-mobile-nav button{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;border:0;background:transparent;color:var(--text-muted);font-family:inherit;font-size:11px;white-space:nowrap;border-radius:10px;cursor:pointer}.workspace-mobile-nav button>span:first-child{font-size:17px}.workspace-mobile-nav button:focus-visible{outline:3px solid var(--blue-700);outline-offset:-3px}.staff-workspace{--blue-700:#0052cc;--blue-900:#0747a6;--bg:#f6f8fb;--border:#e3e9f1}.staff-workspace .content{max-width:1440px;padding:24px 34px 42px}.staff-workspace .layout-toolbar{min-height:40px;margin-bottom:25px}.staff-workspace .sidebar-brand{padding:25px 18px}.staff-workspace .sidebar-nav{padding:15px 12px}.staff-workspace .sidebar-link.sidebar-section-link{font-size:13px;min-height:45px;font-weight:600}.staff-workspace .sidebar-link-icon{display:inline-flex;align-items:center}.staff-workspace .sidebar-link-icon svg{flex-shrink:0}.staff-workspace .section-tabs-title{display:none}.staff-workspace .section-tabs{margin-bottom:22px;gap:0}.compact-page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.compact-page-heading .page-title{font-size:25px;margin:0;line-height:1.4}.compact-page-meta{margin:5px 0 0;color:var(--text-muted);font-size:11px}.compact-heading-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.compact-heading-actions .btn-primary,.compact-heading-actions .btn-secondary{width:auto;min-height:36px;margin:0;padding:8px 12px;font-size:12px;text-decoration:none;white-space:nowrap}.staff-workspace .card{border-radius:10px;box-shadow:none}.staff-workspace .workspace-mobile-nav button.workspace-mobile-active{color:var(--blue-700);background:var(--blue-50);font-weight:750}.staff-workspace .workspace-mobile-nav span:first-child{display:flex;align-items:center;justify-content:center}.compact-inline-summary{display:flex;gap:20px;font-size:12px;color:var(--text-muted);padding:0 0 16px;flex-wrap:wrap}.compact-inline-summary b{margin-left:5px;color:var(--text);font-weight:650}.compact-student-search{display:flex;gap:8px;max-width:500px;margin-bottom:14px}.compact-student-search label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;background:#fff;border:1px solid var(--border);border-radius:7px;padding:0 12px;color:#8798ad}.compact-student-search input{border:0!important;box-shadow:none!important;min-width:0;width:100%;padding:11px 0!important;font-size:13px!important;background:transparent}.compact-student-search label:focus-within{outline:2px solid var(--blue-100)}.compact-student-search>.utility-button{width:40px}.compact-student-filter{padding:12px 15px;background:var(--blue-50);border-radius:7px;margin-bottom:14px;max-width:500px}.compact-student-filter label{display:flex;align-items:center;gap:10px;font-size:12px}.compact-student-filter select{min-width:0;max-width:70%;border:1px solid var(--border);background:#fff;padding:8px;border-radius:6px}.compact-student-list{margin-bottom:22px}.compact-roster{border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#fff}.compact-roster-columns,.compact-roster li{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(80px,.8fr) minmax(110px,1.2fr) 92px 70px 24px;gap:14px;align-items:center;padding:14px 20px}.compact-roster-columns{font-size:11px;color:#8a9aaf;background:#fbfcfe;padding-top:11px;padding-bottom:11px}.compact-roster ul{list-style:none;padding:0;margin:0}.compact-roster li{border-bottom:1px solid #edf1f6;min-height:68px}.compact-roster li:last-child{border:0}.compact-group-toggle{display:flex;align-items:center;gap:6px;min-height:36px;width:100%;padding:8px 19px;background:#f0f5fc;border:0;color:#41628e;text-align:left;font:inherit;font-size:12px;cursor:pointer}.compact-group-toggle strong{font-size:12px;font-weight:600}.compact-group-toggle span{color:#8495aa;margin-left:4px;font-size:11px}.compact-group-toggle .is-closed{transform:rotate(-90deg)}.compact-student-link{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:var(--text)}.compact-student-link>span:last-child{min-width:0}.compact-student-link strong{font-size:13px;overflow-wrap:anywhere}.compact-student-link small{display:block;color:#8a98aa;font-size:10px;line-height:1.5;margin-top:4px}.compact-avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:#edf3ff;color:#6b8bb8;flex-shrink:0;font-size:12px}.compact-roster-subject,.compact-roster-date,.compact-roster-contact{font-size:12px;color:#6f8096;overflow-wrap:anywhere}.compact-roster li>.badge{justify-self:start;font-size:10px;white-space:nowrap;min-height:25px;display:flex;align-items:center;border-radius:5px}.compact-row-open{color:#9caab9;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:34px}.compact-teacher-actions{grid-column:1/-1;display:flex;gap:14px;padding-left:43px}.compact-teacher-actions a{font-size:11px;color:var(--blue-700);text-decoration:none}.compact-dashboard .stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:22px;padding:18px 0}.compact-dashboard .stat-card{margin:0;padding:0 23px;border:0;border-right:1px solid var(--border);background:none;border-radius:0;box-shadow:none}.compact-dashboard .stat-card:last-child{border:0}.compact-dashboard .stat-value{font-size:27px;line-height:1.2}.compact-dashboard .stat-label{font-size:11px;line-height:1.5;margin-top:7px}.compact-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:20px;align-items:start}.compact-dashboard-grid>section.card{padding:0;overflow:hidden;margin:0}.compact-dashboard .workspace-section-heading{padding:20px;margin:0;border-bottom:1px solid var(--border)}.compact-dashboard .workspace-section-heading .btn-secondary{padding:5px 8px;font-size:11px;min-height:30px;border:0;background:none;text-decoration:none}.compact-dashboard .dash-lessons{gap:0}.compact-dashboard .dash-lesson{border:0;border-bottom:1px solid #edf1f6;border-left:3px solid transparent;border-radius:0;padding:17px 18px;gap:14px;grid-template-columns:55px minmax(95px,1fr) auto;min-height:88px}.compact-dashboard .dash-lesson:last-child{border-bottom:0}.compact-dashboard .dash-lesson-live{border-left-color:var(--blue-700)}.compact-dashboard .dash-lesson-warn{border-left-color:#de350b}.compact-dashboard .dash-lesson-time strong{font-size:13px}.compact-dashboard .dash-lesson-time small{font-size:10px;margin-top:5px}.compact-dashboard .dash-lesson-main strong{font-size:13px}.compact-dashboard .dash-lesson-main small{font-size:11px;margin-top:4px}.compact-dashboard .dash-lesson-status{font-size:10px;min-height:27px;padding:4px 8px;border-radius:5px;justify-self:end}.compact-dashboard .dash-lesson-actions{grid-column:2/-1;justify-content:flex-end;gap:8px}.compact-dashboard .dash-lesson-actions a{min-height:30px;padding:5px 9px;font-size:11px;border-radius:6px}.compact-dashboard-aside{display:grid;gap:18px}.compact-dashboard-aside>.card{margin:0;padding:20px}.compact-eyebrow{display:flex;align-items:center;gap:7px;font-size:11px;color:#7c8fa9}.compact-next-lesson h2{font-size:18px;margin:19px 0 7px}.compact-next-lesson p{font-size:12px;margin:0 0 7px}.compact-next-lesson small{font-size:11px;color:#8796aa;display:block;line-height:1.5}.compact-next-lesson .btn-secondary{display:flex;justify-content:space-between;align-items:center;font-size:11px;width:100%;margin-top:18px;padding:8px 10px;min-height:35px;text-decoration:none}.compact-attention h2{margin:0 0 10px}.compact-attention>a{display:flex;align-items:center;gap:9px;padding:14px 0;border-top:1px solid #edf1f6;text-decoration:none;color:#456183;font-size:12px;line-height:1.5}.compact-attention>a>span{flex:1}.compact-attention b{font-size:13px}.compact-attention>a>svg{color:#9faec1;flex-shrink:0}.compact-dashboard .workspace-quick-links{display:flex;flex-wrap:wrap;gap:22px;margin:22px 0}.compact-dashboard .workspace-quick-links a{border:0;background:none;padding:6px 0;gap:14px}.compact-dashboard .workspace-quick-links small{display:none}.compact-dashboard .workspace-quick-links strong{font-size:12px;font-weight:500;color:#627b9a}.compact-dashboard .workspace-quick-links a>span{font-size:13px;color:#9baec6}.compact-dashboard .workspace-disclosure{margin-top:20px}.compact-day-picker{margin-bottom:14px}.compact-day-toolbar{display:flex;align-items:center;gap:8px}.compact-day-toolbar>button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;min-width:32px;border:0;border-radius:6px;background:none;color:var(--text-muted);font-size:12px;cursor:pointer}.compact-day-toolbar>strong{font-size:15px;white-space:nowrap}.compact-day-toolbar .compact-day-today{margin-left:auto;color:var(--blue-700)}.compact-day-toolbar .compact-calendar-toggle{padding:7px 10px;border:1px solid var(--border);background:#fff}.compact-week{display:grid;grid-template-columns:repeat(7,1fr);max-width:600px;margin-top:13px;border-bottom:1px solid var(--border);padding-bottom:11px}.compact-week button{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;color:var(--text-muted);font:inherit;font-size:11px;cursor:pointer;min-height:55px}.compact-week strong{height:29px;width:29px;display:grid;place-items:center;border-radius:50%;font-size:12px}.compact-week [aria-pressed=true] strong{background:var(--blue-700);color:#fff}.compact-week [aria-pressed=true]>span{color:var(--blue-700)}.compact-calendar-collapsed{display:none}.compact-attendance-page .attendance-calendar-layout{display:block}.compact-attendance-page .attendance-calendar{margin-bottom:20px}.compact-attendance-page .attendance-agenda{min-width:0}.compact-attendance-page .attendance-filter-bar{margin-bottom:14px;gap:10px}.compact-attendance-page .attendance-filter-bar label{display:flex;align-items:center;gap:8px;font-size:12px}.compact-attendance-page .attendance-filter-bar select{max-width:100%;min-height:36px;font-size:12px;padding:7px 10px}.compact-attendance-page .attendance-filter-bar a{font-size:11px;min-height:36px;width:auto;padding:7px 10px}.compact-attendance-page .attendance-day-heading h2{font-size:16px}.compact-attendance-page .attendance-agenda>.operation-note{font-size:11px;margin:0 0 12px}.compact-attendance-page .attendance-agenda>.card{padding:0 20px}.compact-attendance-page .operation-history{border-radius:0;box-shadow:none}.compact-attendance-page .operation-history summary{min-height:55px;gap:12px;font-size:13px}.compact-attendance-page .operation-history>p{font-size:12px;line-height:1.6}.compact-attendance-page .attendance-lesson-actions{gap:8px;padding-bottom:10px}.compact-attendance-page .attendance-lesson-actions button{font-size:12px;min-height:36px;padding:8px 12px}.compact-invoices-page .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:18px;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;padding:19px 0}.compact-invoices-page .stat-card{border:0;border-right:1px solid var(--border);border-radius:0;box-shadow:none;padding:0 20px;background:none}.compact-invoices-page .stat-card:last-child{border:0}.compact-invoices-page .stat-value{font-size:23px;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.25}.compact-invoices-page .stat-label{font-size:11px;margin-top:8px}.compact-billing-help{font-size:12px;color:var(--text-muted);margin:0 0 18px}.compact-billing-help summary{cursor:pointer}.compact-billing-help p{line-height:1.7;margin:8px 0}.compact-invoices-page [data-tour=invoices-list]{padding:18px 20px}.compact-invoices-page .invoice-filter-bar{gap:8px;margin-bottom:16px}.compact-invoices-page .invoice-filter-control{min-width:0;font-size:12px;min-height:36px}.compact-invoices-page .invoice-filter-search{flex-basis:170px}.compact-invoices-page .invoice-filter-bar button{font-size:11px;min-height:36px}.compact-invoices-page .card-title{font-size:14px}.compact-invoices-page .card-title>.badge{font-size:10px;font-weight:500}.compact-invoice-table{table-layout:fixed;min-width:0!important}.compact-invoice-table th{font-size:10px!important;padding:10px 7px}.compact-invoice-table td{font-size:12px;padding:14px 7px!important;overflow-wrap:anywhere}.compact-invoice-table th:nth-child(1){width:15%}.compact-invoice-table th:nth-child(3){width:13%}.compact-invoice-table th:nth-child(6){width:14%}.compact-invoice-table th:nth-child(7){width:13%}.compact-invoice-table th:last-child{width:20%}.compact-invoice-detail{border:0;background:none;font:inherit;font-weight:600;color:var(--text);padding:5px 0;text-align:left;cursor:pointer}.compact-invoice-detail:hover{color:var(--blue-700);text-decoration:underline}.compact-invoice-table td .badge{font-size:10px;white-space:normal}.compact-invoice-table .invoice-actions-grid{display:flex;flex-wrap:wrap;gap:5px}.compact-invoice-table .invoice-actions-grid button{font-size:10px;min-height:29px;padding:5px 7px;min-width:0;width:auto}.compact-invoice-table .invoice-action-placeholder{display:none}.compact-invoice-table th:nth-child(5),.compact-invoice-table td:nth-child(5){display:none}@media(min-width:901px)and (max-width:1230px){.staff-workspace .content{padding:22px 25px 40px}.compact-dashboard-grid{grid-template-columns:1fr}.compact-dashboard-aside{grid-template-columns:1fr 1fr}.compact-roster-columns,.compact-roster li{grid-template-columns:minmax(125px,1.3fr) 70px minmax(90px,1fr) 75px 60px 18px;gap:10px;padding-left:15px;padding-right:15px}.compact-invoices-page .stat-value{font-size:20px}.compact-invoices-page .stat-card{padding:0 14px}.compact-invoice-table th:nth-child(4),.compact-invoice-table td:nth-child(4){display:none}}@media(min-width:1500px){.compact-dashboard .dash-lesson{grid-template-columns:60px minmax(100px,1fr) auto auto}.compact-dashboard .dash-lesson-actions{grid-column:auto}.compact-dashboard .dash-lesson-actions a{padding:5px 7px;font-size:10px}}@media(max-width:900px){.staff-workspace .content{padding:14px 17px calc(82px + env(safe-area-inset-bottom))!important}.staff-workspace .layout-toolbar{margin-bottom:22px;gap:6px;min-height:36px}.staff-workspace .layout-utilities{gap:6px}.staff-workspace .section-tabs{margin-bottom:18px}.compact-page-heading{gap:10px;margin-bottom:16px}.compact-page-heading .page-title{font-size:22px}.compact-heading-actions{gap:5px}.compact-heading-actions .btn-primary,.compact-heading-actions .btn-secondary{font-size:11px;padding:7px 9px;min-height:35px}.compact-heading-actions .compact-student-requests{display:none}.compact-inline-summary{font-size:11px;gap:15px}.compact-inline-summary b{margin-left:3px}.compact-roster-columns{display:none}.compact-roster li{grid-template-columns:minmax(0,1fr) auto 24px;gap:8px;min-height:73px;padding:13px 12px}.compact-roster-subject,.compact-roster-contact,.compact-roster-date{display:none}.compact-student-link strong{font-size:14px}.compact-student-link small{font-size:11px}.compact-group-toggle{padding:9px 12px;font-size:11px}.compact-group-toggle strong{font-size:11px}.compact-roster li>.badge{font-size:10px;min-height:25px;padding:4px 7px}.compact-teacher-actions{padding-left:43px;gap:18px}.compact-teacher-actions a{font-size:11px;min-height:30px;display:flex;align-items:center}.compact-student-search input{font-size:16px!important}.compact-student-search input::placeholder{font-size:12px}.compact-student-search,.compact-student-filter{max-width:none}.compact-student-list{margin-bottom:20px}.compact-dashboard .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 0;margin-bottom:20px}.compact-dashboard .stat-card{padding:0 12px}.compact-dashboard .stat-card:last-child:nth-child(3){grid-column:auto;display:block}.compact-dashboard .stat-value{font-size:24px}.compact-dashboard .stat-label{font-size:10px;line-height:1.6}.compact-dashboard-grid{grid-template-columns:1fr;gap:18px}.compact-dashboard .workspace-section-heading{padding:15px}.compact-dashboard .dash-lesson{grid-template-columns:48px minmax(0,1fr) auto;padding:15px 13px;gap:8px;min-height:85px}.compact-dashboard .dash-lesson-main{grid-column:2/-1}.compact-dashboard .dash-lesson-main strong{font-size:14px}.compact-dashboard .dash-lesson-main small{font-size:11px}.compact-dashboard .dash-lesson-status{grid-column:1/3;grid-row:2;justify-self:start}.compact-dashboard .dash-lesson-actions{grid-column:3;grid-row:2;gap:5px}.compact-dashboard .dash-lesson-actions a{font-size:10px;min-height:34px;padding:7px}.compact-dashboard-aside{grid-template-columns:1fr}.compact-dashboard .compact-next-lesson{display:none}.compact-dashboard-aside>.card{padding:16px}.compact-dashboard .workspace-quick-links{gap:16px;margin:20px 0}.compact-dashboard .workspace-quick-links strong{font-size:11px}.compact-dashboard .workspace-quick-links a{padding:5px 0}.compact-attention>a{min-height:44px;font-size:12px}.compact-attendance-page .attendance-filter-bar{align-items:center;flex-wrap:wrap}.compact-day-toolbar>strong{font-size:13px}.compact-day-toolbar{gap:3px}.compact-day-toolbar .compact-calendar-toggle{padding:7px 8px;font-size:11px}.compact-day-toolbar .compact-day-today{font-size:11px}.compact-week{max-width:none;margin-top:12px}.compact-attendance-page .attendance-agenda>.card{padding:0 13px}.compact-attendance-page .attendance-day-heading h2{font-size:14px}.compact-attendance-page .attendance-day-heading{gap:8px}.compact-attendance-page .operation-history summary{flex-wrap:wrap;gap:6px;font-size:12px;padding:13px 0}.compact-attendance-page .operation-history summary>span:first-child{flex-basis:100%}.compact-attendance-page .attendance-lesson-actions button{font-size:11px}.compact-attendance-page .attendance-filter-bar select{font-size:13px;max-width:190px}.compact-attendance-page .attendance-filter-bar a{margin-left:auto}.compact-invoices-page .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.compact-invoices-page .stat-card{padding:16px 13px}.compact-invoices-page .stat-card:nth-child(-n+2){border-bottom:1px solid var(--border)}.compact-invoices-page .stat-card:nth-child(2){border-right:0}.compact-invoices-page .stat-value{font-size:clamp(16px,4.8vw,23px)}.compact-invoices-page .stat-label{font-size:10px}.compact-invoices-page [data-tour=invoices-list]{padding:14px 12px}.compact-invoices-page .card-title{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:13px}.compact-invoices-page .card-title>.badge{font-size:9px;margin-left:0!important}.compact-invoices-page .invoice-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}.compact-invoices-page .invoice-filter-search{grid-column:1/-1}.compact-invoices-page .invoice-filter-control{font-size:13px;padding:8px;min-width:0;width:100%}.compact-invoices-page .invoice-filter-search{font-size:16px}.compact-invoices-page .invoice-bulk-send-button{grid-column:1/-1;white-space:normal;line-height:1.4}.compact-invoice-table thead{display:none}.compact-invoice-table,.compact-invoice-table tbody{display:block;width:100%}.compact-invoice-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 9px;padding:12px 0;border-bottom:1px solid var(--border);background:transparent!important}.compact-invoice-table td{padding:3px 0!important;border:0!important;min-width:0}.compact-invoice-table td:nth-child(1){grid-column:1;grid-row:1;display:block;font-weight:600}.compact-invoice-table td:nth-child(2),.compact-invoice-table td:nth-child(4),.compact-invoice-table td:nth-child(5),.compact-invoice-table td:nth-child(6){display:none}.compact-invoice-table td:nth-child(3){grid-column:2;grid-row:1;white-space:nowrap;text-align:right;align-self:center}.compact-invoice-table td:nth-child(7){grid-column:1;grid-row:2;align-self:center}.compact-invoice-table td:last-child{grid-column:2;grid-row:2;display:block;width:auto!important}.compact-invoice-table .invoice-actions-grid{justify-content:flex-end;max-width:180px}.compact-invoice-table .invoice-actions-grid button{font-size:10px;min-height:32px;padding:6px 7px}.compact-invoice-table .badge{font-size:9px!important;padding:4px 6px}.compact-invoice-detail{font-size:13px}.compact-billing-help{font-size:11px}}@media(max-width:360px){.staff-workspace .content{padding-left:12px!important;padding-right:12px!important}.compact-page-heading .page-title{font-size:20px}.compact-heading-actions .btn-primary,.compact-heading-actions .btn-secondary{font-size:10px}.compact-dashboard .dash-lesson-actions a{font-size:9px;padding:6px}.compact-day-toolbar>strong{font-size:12px}.compact-day-toolbar>button{min-width:27px}.compact-attendance-page .attendance-filter-bar label{font-size:11px}.compact-invoice-table .invoice-actions-grid{max-width:160px}}.compact-dashboard .stat-label,.compact-invoices-page .stat-label{font-size:12px}.compact-dashboard .dash-lesson-actions a,.compact-invoice-table .invoice-actions-grid button{font-size:12px;min-height:36px}.compact-dashboard .dash-lesson-status,.compact-invoice-table td .badge{font-size:11px}.compact-invoice-table th{font-size:12px!important}@media(min-width:901px){.compact-dashboard .dash-lesson{grid-template-columns:55px minmax(95px,1fr) auto auto;min-height:80px;padding:15px 18px;gap:12px}.compact-dashboard .dash-lesson-actions{grid-column:auto;grid-row:auto}.compact-dashboard .dash-lesson-main strong{font-size:14px}.compact-dashboard .dash-lesson-actions a{font-size:12px;padding:6px 8px}}@media(max-width:900px){.compact-dashboard .stat-label,.compact-invoices-page .stat-label{font-size:11px;line-height:1.5;word-break:keep-all}.compact-heading-actions .btn-primary,.compact-heading-actions .btn-secondary{font-size:12px;min-height:38px}.compact-dashboard .dash-lesson-actions a{font-size:11px;min-height:36px;padding:7px 8px}.compact-dashboard .dash-lesson-status{font-size:11px}.compact-dashboard .dash-lesson-main small,.compact-student-link small,.compact-group-toggle,.compact-group-toggle strong,.compact-inline-summary{font-size:12px}.compact-roster li>.badge{font-size:11px}.compact-attendance-page .attendance-filter-bar{display:flex;flex-direction:row;gap:8px}.compact-attendance-page .attendance-filter-bar label{flex:1;min-width:0}.compact-attendance-page .attendance-filter-bar select{min-width:0;width:100%;max-width:165px}.compact-attendance-page .attendance-filter-bar a{flex:none;font-size:11px;padding:8px}.compact-invoice-table .invoice-actions-grid button{font-size:11px;min-height:36px}}@media print{.compact-dashboard-aside,.compact-day-picker,.app-install-notice,.compact-heading-actions{display:none!important}.compact-calendar-collapsed,.compact-dashboard-grid{display:block}}.finance-workspace{min-width:0}.finance-workspace :is(.btn-primary,.btn-secondary),.finance-dialog :is(.btn-primary,.btn-secondary){width:auto;margin:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;text-decoration:none;white-space:nowrap}.finance-month{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:13px}.finance-month input{min-height:42px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font:inherit}.finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}.finance-kpi{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;min-width:0}.finance-kpi span{display:block;font-size:13px;color:var(--text-muted);margin-bottom:12px}.finance-kpi strong{font-size:clamp(18px,2vw,26px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.finance-success{color:var(--success)}.finance-warning{color:#b45309}.finance-notice{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;margin:16px 0;background:#fff8ed;border:1px solid #f3dfbd;border-radius:12px;font-size:14px}.finance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:22px 0 16px}.finance-filters{display:flex;gap:7px;flex-wrap:wrap}.finance-filters input,.finance-filters select{min-height:42px;min-width:0;max-width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font:inherit;font-size:13px}.finance-filters input{width:180px}.finance-filters button{min-height:40px}.finance-list{display:grid;gap:10px}.finance-payment-details{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--border);padding-top:12px;font-size:14px;overflow-wrap:anywhere}.finance-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(100px,.8fr) minmax(120px,1fr) auto;align-items:center;gap:20px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px}.finance-person{display:flex;align-items:center;gap:12px;min-width:0}.finance-person>div{min-width:0}.finance-avatar{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;background:#f1f4fb;color:var(--blue-700);font-weight:700;border-radius:50%}.finance-person strong{display:block;overflow-wrap:anywhere}.finance-row small,.finance-card small{display:block;color:var(--text-muted);font-size:12px;margin-top:6px}.finance-row-amount{font-size:19px;font-weight:750;font-variant-numeric:tabular-nums}.finance-status{display:inline-flex;align-items:center;width:fit-content;padding:5px 9px;border-radius:6px;background:#f1f3f8;color:#65718a;font-size:12px;font-weight:700;white-space:nowrap}.finance-status.paid{background:#eaf6ee;color:#33744e}.finance-status.overdue{background:#fff0e9;color:#a64724}.finance-status.sent{background:#fff8ce;color:#786000}.finance-row-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.finance-kakao{display:inline-flex;gap:8px;justify-content:center;align-items:center;background:#fee500!important;color:#191919!important;border:1px solid #fee500!important;font-weight:750;border-radius:10px;padding:10px 16px;min-height:44px;cursor:pointer}.finance-kakao:disabled{opacity:.55;cursor:not-allowed}.finance-dialog{display:grid;gap:20px}.finance-dialog label{display:grid;gap:8px;font-size:13px;font-weight:650}.finance-dialog input,.finance-dialog select{width:100%;min-width:0;min-height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font:inherit;background:#fff}.finance-dialog-total{display:grid;gap:10px;padding:22px;border-radius:12px;background:#f3f5ff}.finance-dialog-total strong{font-size:30px;color:var(--blue-700)}.finance-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.finance-dialog-note{color:var(--text-muted);font-size:13px;line-height:1.65;margin:0}.finance-dialog-status{padding:12px 14px;border-radius:10px;background:#edf7ef;color:#33744e;font-size:13px}.finance-secondary-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.finance-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.finance-card{padding:24px;border:1px solid var(--border);border-radius:16px;background:#fff;min-width:0}.finance-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.finance-card-amount{font-size:28px;font-weight:750;margin:24px 0 8px;color:var(--blue-700)}.finance-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.finance-workspace .payroll-toolbar{padding:12px 18px}.finance-workspace .payroll-review-grid{grid-template-columns:1.2fr 1fr}.finance-settings-status{display:flex;align-items:center;justify-content:space-between;gap:16px}@media(max-width:1000px){.finance-row{grid-template-columns:minmax(140px,1fr) 90px minmax(100px,1fr) auto;gap:12px;padding:16px}}@media(max-width:700px){.finance-workspace .compact-page-heading{flex-direction:column;align-items:stretch;gap:12px}.finance-workspace .compact-heading-actions{justify-content:flex-end}.finance-workspace .compact-page-heading .page-title{white-space:nowrap}.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.finance-kpi{padding:16px}.finance-kpi span{margin-bottom:8px}.finance-month>span{display:none}.finance-month input{max-width:160px}.finance-toolbar{gap:12px}.finance-filters{width:100%}.finance-filters input{flex:1 1 120px;width:0}.finance-filters select{flex:1 1 100px;width:0}.finance-search-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.finance-search-filters select{width:100%}.finance-search-filters input{grid-column:1/-1;width:100%;box-sizing:border-box}.finance-row{grid-template-columns:minmax(0,1fr) auto;gap:15px}.finance-row-state{text-align:right}.finance-row-amount{padding-left:50px;font-size:18px}.finance-row-actions{grid-column:2}.finance-cards{grid-template-columns:minmax(0,1fr)}.finance-card{padding:20px}.finance-dialog-grid{gap:14px}.finance-workspace .payroll-review-grid{grid-template-columns:1fr}.finance-dialog .modal-actions{display:flex;flex-wrap:wrap}.finance-dialog .modal-actions>button{flex:1 1 auto;min-width:0;font-size:13px;padding:10px}}@media(max-width:360px){.finance-dialog-grid{grid-template-columns:minmax(0,1fr)}.finance-row-amount{padding-left:0}.finance-row{padding:14px}.finance-avatar{display:none}}.finance-dialog-warning{padding:12px 14px;border-radius:10px;background:#fff4e5;color:#8a4b00;font-size:13px;line-height:1.65}.finance-workspace .btn-secondary.finance-danger,.finance-dialog .btn-secondary.finance-danger{color:var(--danger, #c9372c);border-color:currentColor}.collapsible-heading{margin:0}.collapsible-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:28px;padding:0;border:0;background:transparent;color:var(--text);font-family:inherit;text-align:left;cursor:pointer}.collapsible-arrow{flex:0 0 14px;color:var(--blue-700)}.collapsible-label{flex:1;min-width:0;overflow-wrap:anywhere}.collapsible-badge{flex-shrink:0;max-width:45%;white-space:normal}.collapsible-toggle:focus-visible{outline:2px solid var(--blue-700);outline-offset:6px;border-radius:2px}.workspace-report-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.workspace-report-periods{display:flex;flex-wrap:wrap;gap:6px}.workspace-report-toolbar button{white-space:nowrap;flex-shrink:0}.workspace-report-download{margin-left:auto}.workspace-report-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:14px}.workspace-reservation-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:8px}.workspace-reservation-toolbar button{white-space:nowrap}@media print{.card .collapsible-toggle{display:flex!important}}@media(max-width:600px){.workspace-report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-report-download{margin-left:0}.workspace-reservation-toolbar{grid-template-columns:1fr auto}.workspace-reservation-toolbar>:nth-child(2){grid-column:1 / -1;grid-row:1}.workspace-reservation-toolbar>:first-child{grid-column:1;grid-row:2}.workspace-reservation-toolbar>:last-child{grid-column:2;grid-row:2}}.address-search{margin-top:6px}.address-search-close{width:auto;min-height:32px;margin:0}.branch-tabs{margin:0 0 12px}.branch-manager{display:grid;gap:8px;padding:12px;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.branch-manager-head{display:grid;gap:2px}.branch-manager-head strong{font-size:13.5px}.branch-manager-head span{font-size:12px;color:var(--text-muted);line-height:1.5}.branch-manager>.btn-small{justify-self:start;width:auto}.branch-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.branch-list li{display:flex;align-items:center;gap:8px}.branch-list input{flex:0 1 180px;min-width:0;height:var(--form-control-height);padding:7px 10px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:13px}.branch-list small{flex:1;font-size:12px;color:var(--text-muted)}.branch-list .btn-small,.branch-manager-actions .btn-small{width:auto;min-height:var(--form-control-height)}.branch-manager-actions{display:flex;flex-wrap:wrap;gap:6px}.branch-save{background:var(--blue-700)!important;color:#fff!important;border-color:var(--blue-700)!important}.room-branch-select{padding:5px 8px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:12.5px;background:var(--surface)}.branch-chips{display:flex;flex-wrap:wrap;gap:6px}.branch-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.branch-card{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fbfcfe}.branch-card-head{display:flex;align-items:center;gap:8px}.branch-card-head small{flex:1;font-size:12px;color:var(--text-muted)}.branch-card-head .btn-small{width:auto}.branch-order{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--blue-700);color:#fff;font-size:12px;font-weight:900}.branch-field{display:grid;gap:6px;min-width:0;font-size:12.5px;font-weight:700;color:var(--text)}.branch-field input{width:100%;min-width:0;box-sizing:border-box;height:var(--form-control-height);min-height:var(--form-control-height);padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;font-weight:400;font-size:13.5px}.branch-address-row{display:flex;gap:6px}.branch-address-row input{flex:1 1 0}.branch-address-row .btn-small{width:auto;flex:none;min-height:var(--form-control-height)}.branch-start{width:auto!important;justify-self:start}.branch-address{margin:-6px 0 12px;font-size:12.5px;color:var(--text-muted);overflow-wrap:anywhere}@media(max-width:560px){.branch-cards{grid-template-columns:minmax(0,1fr)}.branch-field input{font-size:16px}}.branch-links{display:flex;flex-wrap:wrap;gap:6px}.branch-links .btn-small{width:auto}.branch-hours{display:grid;gap:12px}.branch-hours-toggle{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:9px;background:var(--blue-50);font-size:13px;cursor:pointer}.branch-hours-toggle input{margin-top:2px}.branch-hours-toggle small{display:block;margin-top:2px;font-size:12px;color:var(--text-muted);font-weight:400}.branch-hours-summary{margin:0;padding:10px 12px;border:1px dashed var(--border);border-radius:9px;font-size:13px;line-height:1.6;color:var(--text)}.branch-hours-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.branch-hours-row>b{width:24px}.branch-hours-row label{display:flex;align-items:center;gap:4px;font-size:12.5px;cursor:pointer}.branch-hours-row input[type=time]{min-width:0;height:var(--form-control-height);padding:5px 8px;border:1px solid var(--border);border-radius:6px;font:inherit}.branch-hours-actions{display:flex;flex-wrap:wrap;gap:8px}.branch-hours-actions button{width:auto}.branch-closed{display:grid;gap:8px}.branch-closed-head{font-size:13px;font-weight:700}.branch-closed-head small{display:block;font-weight:400;font-size:12px;color:var(--text-muted);margin-top:2px}.branch-closed-chips{display:flex;flex-wrap:wrap;gap:6px}.branch-closed-chips span{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:#fff1f0;color:#b42318;font-size:12.5px;font-weight:700}.branch-closed-chips button{margin:0;padding:0 2px;border:0;background:none;color:inherit;cursor:pointer;width:auto;min-height:0;font:inherit}.branch-closed-add{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.branch-closed-add input{min-width:0;max-width:100%;height:var(--form-control-height);padding:6px 8px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:13px}.branch-closed-add .btn-small{width:auto;min-height:var(--form-control-height)}.branch-closed-add select{min-width:0;max-width:100%;height:var(--form-control-height);padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font:inherit;font-size:13px}.closed-days{display:grid;gap:10px}.closed-days-note,.closed-days-none,.hours-note{margin:0;font-size:12.5px;line-height:1.6;color:var(--text-muted)}.closed-days-group{display:grid;gap:6px}.closed-days-group>b{font-size:12.5px}.branch-room-note{margin:0 0 10px;font-size:12.5px;color:var(--text-muted)}@media(max-width:560px){.branch-hours-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;padding:10px 0}.branch-hours-row>b{width:auto;grid-area:1 / 1}.branch-hours-row>label{grid-area:1 / 3;justify-self:end}.branch-hours-row>input[type=time]{width:100%;min-width:0;box-sizing:border-box;grid-row:2}.branch-hours-row>input[type=time]:first-of-type{grid-column:1}.branch-hours-row>span{grid-area:2 / 2}.branch-hours-row>input[type=time]:last-of-type{grid-column:3}}.portal-home-grid,.portal-two-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;align-items:start}.portal-home-grid{align-items:stretch}.portal-home-grid>.student-card{margin-bottom:0}.portal-home-grid{margin-bottom:18px}.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.portal-heading h2,.portal-heading .card-title{margin:0}.portal-heading>.btn-secondary,.portal-actions>.btn-secondary,.portal-request>a.btn-secondary{width:auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:10px 14px}.portal-muted{color:var(--text-muted);font-size:13px;line-height:1.65}.portal-empty{padding:14px 0}.portal-empty strong{font-size:16px;color:var(--text)}.portal-empty p{color:var(--text-muted);line-height:1.7}.portal-text-action{color:var(--blue-700)!important;font-size:13px;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.portal-balance{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:8px 0 20px}.portal-balance>strong{font-size:42px;line-height:1.1;letter-spacing:-1.5px;color:var(--blue-700);font-weight:750}.portal-balance>span:not(.portal-badge){color:var(--text-muted)}.portal-facts{display:grid;grid-template-columns:.7fr .7fr 1.5fr;gap:12px;margin:0 0 18px}.portal-facts>div{min-width:0}.portal-facts dt{color:var(--text-muted);font-size:12px;margin-bottom:4px}.portal-facts dd{margin:0;color:var(--text);font-weight:650;font-size:14px;overflow-wrap:anywhere}.portal-progress{display:block;width:100%;height:6px;border:0;border-radius:5px;background:var(--blue-50);color:var(--blue-700);accent-color:var(--blue-700);overflow:hidden}.portal-progress::-webkit-progress-bar{background:var(--blue-50)}.portal-progress::-webkit-progress-value{background:var(--blue-700);border-radius:5px}.portal-progress::-moz-progress-bar{background:var(--blue-700);border-radius:5px}.portal-action-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border);text-decoration:none}.portal-action-row>div{min-width:0}.portal-action-row strong,.portal-action-row small{display:block;overflow-wrap:anywhere}.portal-action-row small{margin-top:5px;color:var(--text-muted);font-size:13px}.portal-action-row>span{color:var(--blue-700)}.portal-action-card>.portal-actions{margin:18px 0 0}.portal-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.portal-badge{display:inline-flex;align-items:center;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.4;font-weight:650;background:var(--bg);color:var(--text-muted)}.portal-badge-blue{background:var(--blue-50);color:var(--blue-700)}.portal-badge-warning{background:#fff4e5;color:#92400e}.portal-warning,.portal-action-row small.portal-warning{color:#9a3412}.portal-details{margin-top:14px}.portal-details>summary{display:flex;gap:12px;align-items:center;min-height:48px;padding:12px 0;font-weight:650;cursor:pointer;list-style:none}.portal-details>summary::-webkit-details-marker{display:none}.portal-details>summary:after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:4px;flex-shrink:0}.portal-details[open]>summary:after{transform:rotate(225deg)}.portal-details>summary>span{font-size:12px;color:var(--text-muted);background:var(--bg);padding:2px 8px;border-radius:6px}.portal-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;margin-top:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.portal-history-row>div{min-width:0}.portal-history-row strong,.portal-history-row small{display:block;overflow-wrap:anywhere}.portal-history-row small{color:var(--text-muted);margin-top:4px}.portal-history-row>span{flex-shrink:0;font-size:13px}.portal-request{padding:16px;margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);min-width:0}.portal-request>.portal-heading:last-child{margin-top:16px;margin-bottom:0}.portal-request p{margin:8px 0}.portal-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}.portal-response{padding:14px 16px;border-radius:8px;background:var(--blue-50);margin:14px 0}.portal-response>strong{font-size:12px;color:var(--blue-700)}.portal-response p{margin:6px 0 0}.portal-form{margin-top:16px}.portal-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:16px}.portal-form label,.portal-form input,.portal-form textarea,.portal-form select{min-width:0}.portal-form textarea{resize:vertical}.portal-contact-details{margin:0;display:grid;gap:16px}.portal-contact-details dt{font-size:12px;color:var(--text-muted);margin-bottom:5px}.portal-contact-details dd{margin:0;overflow-wrap:anywhere;line-height:1.65}.portal-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px}.portal-shortcuts>a{min-height:68px;padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.portal-invoice-summary{display:grid!important;grid-template-columns:1fr auto;gap:12px!important;align-items:center}.portal-invoice-summary>div{min-width:0}.portal-invoice-summary strong{display:block;font-size:15px}.portal-invoice-summary small{display:block;color:var(--text-muted);font-size:12px;margin-top:5px}.portal-invoice-summary>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.portal-invoice-summary .portal-badge{margin:0}.portal-invoice-detail{padding:12px 0 4px;border-top:1px solid var(--border)}.portal-staff-panel{min-width:0}.portal-staff-panel .student-card h2{font-size:16px}.portal-contact-settings :focus-visible,.portal-staff-panel :focus-visible,.portal-requests :focus-visible{outline:3px solid var(--blue-700);outline-offset:3px}@media(max-width:600px){.portal-home-grid,.portal-two-columns{gap:14px}.portal-balance>strong{font-size:36px}.portal-heading{gap:8px}.portal-form input,.portal-form select,.portal-form textarea{font-size:16px}.portal-request{padding:14px}.portal-actions>.btn-secondary{flex:1 1 auto}.portal-invoice-summary{gap:8px!important}.portal-invoice-summary strong{font-size:14px}.portal-two-columns>.student-card{margin-bottom:0}}@media(prefers-reduced-motion:reduce){.portal-details>summary:after{transition:none}}@media(min-width:601px){.academy-workspace:not(.student-app) .portal-heading>.btn-secondary,.academy-workspace:not(.student-app) .portal-actions>.btn-secondary,.academy-workspace:not(.student-app) .portal-request>a.btn-secondary{min-height:36px;padding:7px 14px;margin-top:0;font-size:13px;border-radius:7px}.academy-workspace:not(.student-app) .portal-contact-settings p{font-size:13px}}.portal-address-field{display:grid;gap:6px;min-width:0}.portal-address-field>label{font-weight:600}.portal-address-row{display:flex;gap:6px;min-width:0}.portal-address-row input{flex:1 1 0;min-width:0}.portal-address-row .btn-secondary{width:auto;flex:none;white-space:nowrap}.guardian-notice-card .guardian-notice-open{width:auto}.guardian-notice-form{display:grid;gap:12px;margin-top:4px}.guardian-notice-form label{display:grid;gap:6px;font-size:13px;font-weight:650;color:var(--text);min-width:0}.guardian-notice-form select,.guardian-notice-form input,.guardian-notice-form textarea{width:100%;min-width:0;box-sizing:border-box;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;font-weight:400;font-size:15px;color:var(--text)}.guardian-notice-form textarea{resize:vertical;min-height:64px}.guardian-notice-kind{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;border:0;min-width:0}.guardian-notice-kind legend{width:100%;margin-bottom:6px;padding:0;font-size:13px;font-weight:650;color:var(--text)}.guardian-notice-kind button{min-height:40px;padding:0 16px;margin:0;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:14px;font-weight:700;cursor:pointer;width:auto}.guardian-notice-kind button.is-active{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.guardian-notice-kind select{width:auto;min-height:40px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:14px;background:var(--surface)}.guardian-notice-actions{display:flex;flex-wrap:wrap;gap:8px}.guardian-notice-actions>button{width:auto}.guardian-notice-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.guardian-notice-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.guardian-notice-list li>div{display:grid;gap:2px;min-width:0}.guardian-notice-list li strong{font-size:14px}.guardian-notice-list li small{font-size:12.5px;color:var(--text-muted);overflow-wrap:anywhere}.guardian-notice-list li p{margin:4px 0 0;font-size:13.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.guardian-notice-list li>.guardian-quiet-btn,.guardian-notice-row-actions{grid-column:1 / -1;justify-self:start}.guardian-notice-row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.guardian-notice-row-actions .btn-small{width:auto}.guardian-notice-list li.is-sent{border-color:#f0dfb7;background:#fffaf0}.guardian-notice-list li.is-canceled{opacity:.6}.guardian-notice-inbox{margin-bottom:16px}.guardian-notice-inbox .page-subtitle{margin:0 0 10px;font-size:13px}.dash-lesson-notice{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:1px 8px;border-radius:999px;background:#fff4e5;color:#8a5a00;font-size:12px;font-weight:800;white-space:nowrap}.dash-lesson-notice.is-checked{background:var(--blue-50);color:var(--blue-900)}.guardian-quiet-btn{display:inline-flex;align-items:center;width:auto;min-height:32px;margin:0;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--blue-900);font:inherit;font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer}.guardian-quiet-btn:disabled{opacity:.5;cursor:default}.guardian-notice-row-actions .guardian-check{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.list-card{display:grid;gap:6px;min-width:0;padding:14px 16px;margin-bottom:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:inherit;text-decoration:none}.list-card:last-child{margin-bottom:0}a.list-card:hover{border-color:var(--blue-700);background:var(--blue-50)}a.list-card:focus-visible{outline:3px solid var(--blue-700);outline-offset:2px}.list-card-accent{border-left:3px solid var(--blue-700)}.list-card-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:6px 12px;min-width:0}.list-card-title,.list-card-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.list-card-title{min-width:0;font-size:14.5px;font-weight:700;line-height:1.45;color:var(--text)}.list-card-preview{font-size:13px;line-height:1.6;color:var(--text-muted)}.list-card-body{margin:0;font-size:13px;line-height:1.65;color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere}.list-card-meta{display:flex;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--text-muted)}.list-card-meta>span+span:before{content:"·";margin:0 6px}.list-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex-shrink:0}.list-card-actions .btn-small{width:auto}.list-card-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:12px;font-size:13px;color:var(--text-muted)}.list-card-more{width:100%;margin-top:10px}.admin-registration-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.admin-registration-heading .card-title{margin:0}.admin-registration-heading button{min-height:44px}.admin-registration-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:20px 0}.admin-registration-stats>div{display:grid;gap:8px}.admin-registration-stats span,.admin-registration-note{color:var(--text-muted);font-size:12px;line-height:1.65}.admin-registration-stats strong{color:var(--blue-900);font-size:24px}.admin-registration-note{margin:8px 0 0}.admin-registration-error{color:var(--danger);font-size:12px}.admin-registration-cell{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px}.admin-registration-cell strong{font-size:16px;color:var(--blue-900)}.admin-registration-cell>span:not(.badge){color:var(--text-muted);font-size:12px}.admin-academies-table{overflow-x:auto}.admin-academies-table .table{min-width:860px}.admin-academy-name{padding:0;border:0;background:transparent;color:var(--blue-700);font:inherit;font-weight:700;text-align:left;cursor:pointer;min-height:44px;overflow-wrap:anywhere}.admin-academy-id{color:var(--text-muted);font-size:11px;overflow-wrap:anywhere}.admin-member-group{margin-top:12px}.admin-member-group summary{cursor:pointer;padding:10px 0;font-size:13px;font-weight:600}.admin-member-list{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 10px}.admin-member-list .badge{white-space:normal;overflow-wrap:anywhere;max-width:100%}@media(max-width:700px){.admin-registration-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-registration-stats>div:first-child{grid-column:1 / -1}.admin-academies-table .table{min-width:0}.admin-academies-table thead{display:none}.admin-academies-table tbody{display:block}.admin-academies-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px 0;border-bottom:1px solid var(--border)}.admin-academies-table td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}.admin-academies-table td:before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:5px}.admin-academies-table td:first-child{grid-column:1 / -1}.admin-academies-table td:last-child button{min-height:44px}}.admin-ops-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.admin-ops-head .btn-small{flex:none}.admin-visit-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.admin-visit-kpis .admin-ops-kpi{background:var(--blue-50, #f4f6ff)}.admin-visit-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.admin-visit-tools input{flex:1 1 220px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit}.admin-visit-user{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,auto) auto;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--border);font-size:13px}.admin-visit-identity,.admin-visit-dates{display:grid;justify-items:start;gap:3px;min-width:0}.admin-visit-identity{background:none;border:0;padding:0;color:var(--blue-900);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere}.admin-visit-user small{color:var(--text-muted)}.admin-visit-user a{text-decoration:none;text-align:center}@media(max-width:600px){.admin-visit-user{grid-template-columns:minmax(0,1fr) auto;gap:8px}.admin-visit-user .admin-visit-dates{grid-row:2}.admin-visit-user a{grid-column:2;grid-row:1 / span 2}}.admin-ops-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:14px}.admin-ops-kpi{display:grid;gap:4px;padding:13px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface, white);text-decoration:none;color:var(--text)}.admin-ops-kpi:hover{border-color:var(--blue-700, #1d4ed8)}.admin-ops-kpi span{font-size:12px;color:var(--text-muted)}.admin-ops-kpi strong{font-size:20px;color:var(--blue-900, #1e3a8a)}.admin-ops-section{margin-bottom:14px}.admin-ops-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.admin-ops-section-head .card-title{margin:0}.admin-ops-todos{list-style:none;margin:0;padding:0;display:grid;gap:6px}.admin-ops-todos a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text);font-size:13.5px}.admin-ops-todos a:hover{background:var(--blue-50, #eef4ff)}.admin-ops-count{min-width:28px;padding:2px 8px;border-radius:999px;background:#fee4e2;color:#b42318;text-align:center;font-size:13px}.admin-ops-count-muted{color:var(--text-muted);font-weight:600}.admin-ops-signups{display:grid}.admin-ops-signup{display:grid;gap:6px;padding:12px 0;border-top:1px solid var(--border)}.admin-ops-signup:first-child{border-top:0}.admin-ops-signup-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-ops-signup-main a{color:var(--text);text-decoration:none}.admin-ops-signup-main small{margin-left:auto;color:var(--text-muted)}.admin-ops-signup-meta{display:grid;gap:2px;font-size:12.5px;color:var(--text-muted);overflow-wrap:anywhere}.admin-ops-signup-meta a{color:var(--blue-700, #1d4ed8)}.admin-ops-note{color:#8a5a00}.admin-flags{display:inline-flex;flex-wrap:wrap;gap:4px}.badge.admin-flag-amber{background:#fff7e6;color:#b25000}.admin-ops-filters{display:flex;flex-wrap:wrap;gap:6px}.admin-ops-filter{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:34px;padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface, white);color:var(--text);font-size:13px;font-weight:600;cursor:pointer}.admin-ops-filter[aria-pressed=true]{border-color:var(--blue-700, #1d4ed8);background:var(--blue-700, #1d4ed8);color:#fff}.admin-ops-filter span{font-size:12px;opacity:.85}.admin-owner-cell{display:grid;gap:2px;font-size:12.5px;min-width:0}.admin-owner-cell a{color:var(--blue-700, #1d4ed8);white-space:nowrap}.admin-ops-section-head a{text-decoration:none}.admin-signup-box{display:grid;gap:6px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:13px}.admin-signup-box dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:4px 10px;margin:0}.admin-signup-box dt{color:var(--text-muted)}.admin-signup-box dd{margin:0;overflow-wrap:anywhere}.admin-signup-box textarea{width:100%;box-sizing:border-box;min-height:64px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13px;resize:vertical}@media(max-width:600px){.admin-ops-head{flex-direction:column}.admin-ops-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-ops-signup-main small{margin-left:0}}.support-center{display:grid;gap:12px}.support-note{margin:0;font-size:13px;line-height:1.6;color:var(--text-muted)}.support-new{display:grid;gap:12px}.support-new label{display:grid;gap:6px;font-size:13.5px;font-weight:700}.support-new input,.support-new textarea,.support-reply textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:14px;font-weight:400;resize:vertical}.support-new small{justify-self:end;font-size:11.5px;font-weight:500;color:var(--text-muted)}.support-actions{display:flex;justify-content:flex-end;gap:8px}.support-actions button,.support-head button{width:auto;min-height:40px}.support-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px;color:var(--text-muted)}.support-subject{flex:1;min-width:0;color:var(--text);overflow-wrap:anywhere}.support-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.support-list button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:0;margin:0;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface, #fff);color:var(--text);text-align:left;cursor:pointer;font:inherit}.support-list-main{display:grid;gap:2px;min-width:0}.support-list-main strong{font-size:14px;overflow-wrap:anywhere}.support-list-main small{font-size:12.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-list-meta{display:grid;justify-items:end;gap:4px;flex:none}.support-list-meta small{font-size:11.5px;color:var(--text-muted)}.support-status{padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700}.support-status-wait{background:#fff7e6;color:#b25000}.support-status-done{background:#e3fcef;color:#064}.support-status-muted{background:var(--surface-muted, #f1f2f4);color:var(--text-muted)}.support-messages{list-style:none;margin:0;padding:0;display:grid;gap:10px}.support-messages li{display:grid;gap:4px;max-width:86%;padding:10px 12px;border-radius:12px}.support-messages li p{margin:0;white-space:pre-wrap;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.support-messages small{font-size:11.5px;color:var(--text-muted)}.support-mine{justify-self:end;background:var(--blue-50, #eef4ff)}.support-theirs{justify-self:start;background:var(--surface-muted, #f4f5f7)}.support-reply{display:grid;gap:8px}.support-reply button{justify-self:end;width:auto;min-height:40px}.support-center .support-new input,.support-center .support-new textarea,.support-center .support-reply textarea{font-weight:400;color:var(--text, #172b4d)}.support-center ::placeholder{color:#98a2b3;font-weight:400;opacity:1}.apb-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.apb-chips{display:flex;flex-wrap:wrap;gap:6px}.apb-chip{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:32px;padding:5px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.apb-chip span{font-size:11.5px;font-weight:700;color:var(--text-muted)}.apb-chip[aria-pressed=true]{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.apb-chip[aria-pressed=true] span{color:#fff;opacity:.85}.apb-chip-overdue:not([aria-pressed=true]) span{color:#b42318}.apb-search{margin-left:auto;width:220px;min-width:0;height:34px;box-sizing:border-box;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:12.5px}.apb-summary{margin:0 0 8px;font-size:12px;color:var(--text-muted)}.apb-row>td{vertical-align:top}.apb-more{display:inline-flex;align-items:center;width:auto;min-height:24px;margin-top:4px;padding:2px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--blue-700);font:inherit;font-size:11.5px;font-weight:650;cursor:pointer}.apb-pager{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;margin-top:12px}.apb-pager .btn-small{min-width:32px;width:auto}.apb-page[aria-current=page]{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.apb-range{margin-left:8px;font-size:12px;color:var(--text-muted)}@media(max-width:700px){.apb-search{margin-left:0;width:100%;height:44px;font-size:16px}.apb-chip{min-height:36px}.apb-more{min-height:32px}.apb-pager .btn-small{min-height:40px;min-width:40px}.apb-range{flex-basis:100%;text-align:center;margin:4px 0 0}}.assignments-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.assignments-heading .page-title{margin-bottom:7px}.assignments-heading .page-subtitle{margin-bottom:0}.assignments-heading>div{min-width:0}.assignments-heading .btn-inline{flex-shrink:0;min-height:44px;margin:0}.assignment-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}.assignment-status-tabs{display:flex;gap:4px;flex-wrap:wrap}.assignment-status-tabs button{background:transparent;border:0;border-radius:8px;color:var(--text-muted);font:inherit;font-size:13px;font-weight:600;min-height:40px;padding:9px 12px;cursor:pointer}.assignment-status-tabs button[aria-pressed=true]{background:var(--blue-50);color:var(--blue-700)}.assignment-status-tabs button>span{margin-left:7px;font-size:11px}.assignment-search-tools{display:flex;gap:8px;min-width:0}.assignment-search-tools select,.assignment-search-tools input{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;min-height:40px;padding:9px 11px;min-width:0}.assignment-search-tools select{width:132px}.assignment-search-tools input{width:220px}.assignment-status-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.assignment-status-board.is-filtered{grid-template-columns:1fr}.assignment-status-board.is-filtered .assignment-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.assignment-column{background:var(--surface-soft,#eef1f5);border:1px solid var(--border);border-radius:14px;padding:16px;min-width:0}.assignment-column>header{display:flex;align-items:center;gap:8px;padding:2px 2px 16px}.assignment-column h2{font-size:14px;font-weight:700;margin:0}.assignment-column>header>span:last-child{margin-left:auto;color:var(--text-muted);font-size:12px}.assignment-stage-dot{width:7px;height:7px;background:#8095c7;border-radius:50%;flex-shrink:0}.stage-review .assignment-stage-dot{background:#bb9145}.stage-done .assignment-stage-dot{background:#7da58b}.assignment-cards{display:grid;gap:12px}.assignment-task-card{padding:18px;border:1px solid var(--border);border-radius:11px;background:var(--surface);min-width:0}.assignment-card-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;color:var(--text-muted);font-size:11px}.assignment-card-meta>span:first-child{background:var(--surface-alt,#f5f7fa);padding:4px 7px;border-radius:5px;white-space:nowrap}.assignment-card-meta>span:last-child{text-align:right;line-height:1.7}.assignment-card-meta .is-overdue{color:var(--danger,#b65d38)}.assignment-card-meta small{display:block;font-size:10px}.assignment-task-card h3{font-size:15px;line-height:1.6;margin:16px 0 20px;min-height:48px;word-break:keep-all;overflow-wrap:anywhere}.assignment-task-card h3 a{color:var(--text);text-decoration:none}.assignment-task-card h3 a:hover{text-decoration:underline;text-underline-offset:4px}.assignment-card-student{display:flex;align-items:center;gap:8px;min-width:0}.assignment-avatar{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;background:var(--surface-alt,#f1f4f8);color:var(--text-muted);border-radius:50%;font-size:9px}.assignment-card-student strong{font-size:12px;font-weight:600;min-width:0;overflow-wrap:anywhere}.assignment-card-student>small{margin-left:auto;flex-shrink:0;font-size:10px;color:var(--text-muted)}.assignment-task-card footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin-top:17px;padding-top:13px;border-top:1px solid var(--border)}.assignment-task-card footer .btn-small{margin:0;min-height:38px;font-size:11px;text-decoration:none;padding:8px 10px;white-space:normal;text-align:center}.assignment-open{display:inline-flex;align-items:center;justify-content:center;gap:8px}.assignment-open.is-primary{background:var(--blue-50);border-color:var(--blue-100);color:var(--blue-700)}.assignment-review{margin-right:auto!important;background:transparent!important;color:var(--text-muted)!important}.assignment-column-empty{font-size:12px;text-align:center;color:var(--text-muted);margin:24px 0}.assignment-show-more{width:100%;border:0;background:none;color:var(--blue-700);font-size:12px;font-weight:600;min-height:44px;margin-top:12px;cursor:pointer}.assignment-empty{display:grid;justify-items:center;gap:14px;padding:40px 20px;color:var(--text-muted);text-align:center}.assignment-empty p{margin:0;font-size:13px}.assignment-history{margin-top:24px}.assignment-create .form-grid{gap:18px}.assignment-create .form-field{gap:7px}.assignment-create .form-field>input,.assignment-create .form-field>select,.assignment-create .form-field>textarea{min-height:44px;min-width:0}.assignment-create .assignment-student-tools{display:flex;gap:8px;margin-bottom:6px;flex-wrap:wrap}.assignment-student-tools select{max-width:145px;min-height:40px}.assignment-student-tools input{flex:1;min-width:130px;min-height:40px}.assignment-create textarea{resize:vertical}.assignment-reference{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.assignment-reference>summary{cursor:pointer;color:var(--text-muted);font-size:13px;min-height:36px}.assignment-reference .form-grid{margin-top:12px}.assignment-create .modal-actions{justify-content:flex-end}.assignment-create .modal-actions>.btn-small,.assignment-create .modal-actions>.btn-inline{flex:0 0 auto;width:auto;min-height:44px}@media(max-width:1100px){.assignment-status-board{gap:12px}.assignment-column{padding:12px}.assignment-task-card{padding:14px}.assignment-task-card footer{gap:6px}}.assignment-create .form-field>textarea{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;padding:12px;line-height:1.6;min-height:96px;width:100%;box-sizing:border-box}@media(max-width:760px){.assignments-heading{gap:10px;margin-bottom:20px}.assignments-heading .page-title{font-size:22px;margin:0}.assignments-heading .page-subtitle{display:none}.assignments-heading .btn-inline{font-size:12px;padding:10px 13px;max-width:52%;white-space:normal}.assignment-toolbar{align-items:stretch;gap:12px}.assignment-status-tabs{width:100%}.assignment-status-tabs button{min-height:44px;font-size:12px;padding:9px 10px}.assignment-search-tools{width:100%}.assignment-search-tools select{width:125px}.assignment-search-tools input{width:0;flex:1}.assignment-search-tools input,.assignment-search-tools select{min-height:44px;font-size:14px}.assignment-status-board{grid-template-columns:1fr;gap:16px}.assignment-status-board.is-filtered .assignment-cards{grid-template-columns:1fr}.assignment-column{padding:14px}.assignment-task-card{padding:17px}.assignment-task-card h3{min-height:0;margin:13px 0 18px}.assignment-task-card footer .btn-small{min-height:44px;font-size:12px}.assignment-create .form-field>input,.assignment-create .form-field>select,.assignment-create .form-field>textarea,.assignment-student-tools input,.assignment-student-tools select{font-size:16px}.assignment-create .modal-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}.assignment-create .modal-actions>.btn-inline{min-width:110px}.assignment-create .assignment-student-tools select{max-width:100%}}.dash-lessons{list-style:none;margin:0;padding:0;display:grid;gap:8px}.dash-lesson{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:10px;background:var(--surface)}.dash-lesson-time{display:flex;flex-direction:column;line-height:1.25}.dash-lesson-time strong{font-size:15px;font-variant-numeric:tabular-nums;color:var(--text)}.dash-lesson-time small{font-size:11.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.dash-lesson-main{min-width:0;display:flex;flex-direction:column;gap:2px}.dash-lesson-main strong{font-size:14px;overflow-wrap:anywhere}.dash-lesson-main small{font-size:12px;color:var(--text-muted);overflow-wrap:anywhere}.dash-lesson-status,.dash-lesson-actions a{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:34px;margin:0;padding:7px 12px;border:1px solid transparent;border-radius:8px;font-size:12.5px;font-weight:700;line-height:18px;white-space:nowrap}.dash-lesson-status{background:var(--bg);color:var(--text-muted)}.dash-lesson-actions{display:flex;gap:6px}.dash-lesson-actions a{width:auto;text-decoration:none}.dash-lesson-actions .btn-secondary{border-color:var(--border)}.dash-lesson-warn{border-left-color:#de350b}.dash-lesson-warn .dash-lesson-status{background:#ffebe6;color:#b42318}.dash-lesson-live{border-left-color:var(--blue-700);background:var(--blue-50)}.dash-lesson-live .dash-lesson-status{background:var(--blue-700);color:#fff}.dash-lesson-done{border-left-color:#36b37e}.dash-lesson-done .dash-lesson-status{background:#e3fcef;color:#216342}.dash-lesson-review{border-left-color:#ffab00}.dash-lesson-review .dash-lesson-status{background:#fff4e5;color:#974f0c}.dash-lesson-plan{border-left-color:var(--blue-100)}.dash-lesson-plan .dash-lesson-status{background:var(--blue-50);color:var(--blue-700)}.dash-lesson-muted{opacity:.6}.dash-lesson-muted .dash-lesson-main strong{text-decoration:line-through}@media(max-width:700px){.dash-lesson{grid-template-columns:56px minmax(0,1fr) auto}.dash-lesson-main{grid-column:2 / -1}.dash-lesson-status{grid-column:1 / 3;grid-row:2;justify-self:start}.dash-lesson-actions{grid-column:3;grid-row:2}.dash-lesson-status,.dash-lesson-actions a{min-height:40px;padding-block:10px}}@media(max-width:380px){.dash-lesson-status,.dash-lesson-actions a{padding-inline:7px;font-size:12px}}.setup-checklist{border-color:var(--blue-700, #1d4ed8)}.setup-checklist-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.setup-checklist-head .card-title{margin:0}.setup-checklist-head .card-title span{margin-left:6px;font-size:13px;color:var(--blue-700, #1d4ed8)}.setup-checklist-head .btn-small{width:auto}.setup-checklist-bar{height:6px;margin:10px 0 12px;border-radius:999px;background:var(--border, #e5e7eb);overflow:hidden}.setup-checklist-bar i{display:block;height:100%;background:var(--blue-700, #1d4ed8);border-radius:inherit}.setup-checklist-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}.setup-checklist-steps li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px}.setup-check{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff}.setup-done .setup-check{background:#36b37e;border-color:#36b37e}.setup-done strong{color:var(--text-muted);text-decoration:line-through}.setup-step-text{display:grid;gap:2px;flex:1;min-width:0}.setup-step-text strong{font-size:14px}.setup-step-text small{font-size:12.5px;color:var(--text-muted);line-height:1.5}.setup-step-actions{display:flex;gap:6px;flex:none}.setup-step-actions a,.setup-step-actions button{width:auto;min-height:34px;padding:6px 12px;font-size:13px}@media(max-width:600px){.setup-checklist-steps li{flex-wrap:wrap}.setup-step-actions{width:100%;justify-content:flex-end}}.setup-checklist-steps li.setup-next{border-color:var(--blue-700, #1d4ed8);background:var(--blue-50, #f0f6ff)}.setup-step-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}@media(max-width:600px){.setup-checklist-steps li.setup-later{flex-wrap:nowrap}.setup-checklist-steps li.setup-later small{display:none}.setup-checklist-steps li.setup-later .setup-step-actions{width:auto}.setup-checklist-steps li.setup-later .setup-step-actions .btn-small{display:none}}.onboarding-survey{display:grid;gap:12px;border-color:var(--blue-100, #cfe0ff)}.onboarding-survey-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.onboarding-survey-head .card-title{margin:0}.onboarding-survey-head .btn-small{width:auto}.onboarding-survey-lead{margin:0;font-size:13px;color:var(--text-muted)}.onboarding-survey-q{margin:0;padding:0;border:0;min-width:0;display:grid;gap:8px}.onboarding-survey-q legend{padding:0;margin-bottom:8px;font-size:14px;font-weight:700}.onboarding-survey-q legend small{margin-left:6px;font-size:12px;font-weight:500;color:var(--text-muted)}.onboarding-chips{display:flex;flex-wrap:wrap;gap:6px}.onboarding-chip{width:auto;margin:0;min-height:38px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}.onboarding-chip[aria-pressed=true]{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.onboarding-survey-actions{display:flex;justify-content:flex-end}.onboarding-survey-actions .btn-primary{width:auto;min-width:120px}.setup-focus-tip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;padding:10px 12px;border-radius:10px;background:var(--blue-50);color:var(--blue-900);font-size:13px;font-weight:650}.setup-focus-tip a{flex:none;width:auto}.attendance-review-context{display:grid;gap:5px;padding:14px 16px;margin:0 0 16px;border:1px solid var(--border);border-radius:9px;background:var(--blue-50)}.attendance-review-context strong{font-size:16px;color:var(--text);overflow-wrap:anywhere}.attendance-review-context span{font-size:13px;line-height:1.6;color:var(--text-muted);font-variant-numeric:tabular-nums}.feedback-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.feedback-heading .page-title{margin:0 0 8px}.feedback-heading .page-subtitle{margin:0}.feedback-heading-actions{display:flex;justify-content:flex-end;gap:8px}.feedback-heading-actions>button{display:inline-flex;align-items:center;gap:7px;min-height:42px;white-space:nowrap}.feedback-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:24px 0}.feedback-filters{display:flex;gap:6px}.feedback-filters button{display:inline-flex;align-items:center;gap:7px;padding:11px 13px;min-height:42px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.feedback-filters button[aria-pressed=true]{background:var(--blue-50);color:var(--blue-700)}.feedback-filters span{font-size:12px;font-weight:500}.feedback-search{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;padding:10px 13px;background:#fff;color:var(--text-muted);min-height:42px;box-sizing:border-box}.feedback-search input{border:0;background:transparent;outline:0;font:inherit;font-size:13px;width:230px;min-width:0}.feedback-search:focus-within{outline:2px solid var(--blue-600);outline-offset:2px}.feedback-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.feedback-caption h2{font-size:15px;margin:0}.feedback-caption>span{font-size:12px;color:var(--text-muted)}.feedback-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.feedback-request-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px}.feedback-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.feedback-card-meta time{color:var(--text-muted);font-size:12px;white-space:nowrap}.feedback-status{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:600;line-height:1.3}.feedback-status.pending{color:#89652c;background:#fff7e9}.feedback-status.done{color:#3e7960;background:#edf8f1}.feedback-status.memo{color:#687489;background:#f1f3f7}.feedback-person{display:flex;align-items:center;gap:10px;min-width:0}.feedback-person strong{font-size:13px;overflow-wrap:anywhere}.feedback-person small{font-size:11px;color:var(--text-muted);overflow-wrap:anywhere}.feedback-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;font-size:10px;background:#f3f5f9;color:#8290a6}.feedback-request-card>.feedback-person{margin:24px 0 0}.feedback-request-card h3{font-size:17px;line-height:1.5;margin:20px 0 10px;overflow-wrap:anywhere}.feedback-request-card>p{font-size:13px;color:var(--text-muted);line-height:1.8;margin:0 0 24px;min-height:47px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-request-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:18px;margin-top:auto}.feedback-request-card footer>span{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.feedback-request-card footer svg{flex-shrink:0}.feedback-card-action{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;min-height:42px;box-sizing:border-box}.feedback-empty{display:flex;flex-direction:column;align-items:center;gap:14px;padding:42px 20px;text-align:center;color:var(--text-muted)}.feedback-empty strong{font-size:14px;font-weight:500}.feedback-more{display:block;margin:22px auto}.feedback-full-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:24px 0}.feedback-delete{color:#b42318}.feedback-compose .form-field{margin-bottom:18px}.feedback-compose .form-field textarea{min-height:150px}.feedback-audience{display:flex;gap:9px;align-items:center;padding:12px 14px;background:var(--blue-50);border-radius:8px;font-size:13px;color:var(--text-muted);margin-bottom:22px}.feedback-audience svg{flex-shrink:0}.feedback-compose .form-field textarea{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font:inherit;line-height:1.6;resize:vertical}.feedback-compose .form-field textarea:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px}@media(max-width:1150px){.feedback-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-heading{align-items:flex-start}}@media(max-width:700px){.feedback-heading{flex-direction:column;gap:16px}.feedback-heading-actions{align-self:flex-end}.feedback-heading-actions>button{min-height:44px}.feedback-toolbar{gap:14px;margin:20px 0}.feedback-filters{width:100%;gap:3px;flex-wrap:wrap}.feedback-filters button{font-size:12px;padding:10px 8px;gap:5px;min-height:44px}.feedback-filters span{font-size:11px}.feedback-search{width:100%;min-height:44px}.feedback-search input{width:0;flex:1;font-size:16px}.feedback-card-grid{grid-template-columns:1fr}.feedback-request-card{padding:20px}.feedback-request-card h3{font-size:16px;margin-top:16px}.feedback-request-card>p{min-height:0}.feedback-card-action{min-height:44px}.feedback-compose .form-field textarea{font-size:16px}.feedback-heading .page-subtitle{font-size:13px}.feedback-audience{align-items:flex-start;line-height:1.6}}.feedback-reply{min-width:0}.reply-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;text-decoration:none}.reply-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 20px}.reply-context h2{font-size:21px;margin:0 0 10px;overflow-wrap:anywhere}.reply-context-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--text-muted)}.reply-context-meta a{color:var(--blue-700);font-weight:650;text-decoration:none}.reply-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}.reply-submission{display:grid;gap:16px;min-width:0}.reply-insight-column{display:grid;gap:20px;min-width:0}.reply-trends h2{margin-bottom:6px}.reply-trend-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.reply-trend-chart{min-width:0;color:var(--blue-700)}.reply-trend-chart.focus{color:#208365}.reply-trend-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px}.reply-trend-heading h3{color:var(--text);margin:0}.reply-trend-heading>span{display:flex;align-items:center;gap:6px;font-size:12px}.reply-trend-heading b{font-size:18px}.reply-trend-heading small{color:var(--text-muted);font-size:11px;font-weight:400}.reply-trend-chart svg{display:block;width:100%;height:auto;overflow:visible}.reply-trend-chart svg text{fill:var(--text-muted);font:12px sans-serif}.reply-trend-grid{stroke:var(--border);stroke-dasharray:3 4}.reply-trend-empty{display:grid;place-items:center;min-height:120px;margin:0;color:var(--text-muted);font-size:12px;text-align:center}.reply-trend-state{padding:24px 0 4px;margin:0;color:var(--text-muted);font-size:13px}.reply-trend-records{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.reply-trend-records summary{cursor:pointer;font-size:12px;color:var(--text-muted);min-height:32px;align-content:center}.reply-trend-record-list{display:grid;gap:12px;margin-top:12px}.reply-trend-record-list article{padding:12px;border-radius:8px;background:var(--blue-50);font-size:12px}.reply-trend-record-list article>div{display:flex;flex-wrap:wrap;gap:6px 12px}.reply-trend-record-list time{color:var(--text-muted)}.reply-trend-record-list dl{display:flex;flex-wrap:wrap;gap:8px 20px;margin:8px 0 0}.reply-trend-record-list dl div{display:flex;gap:8px}.reply-trend-record-list dt{color:var(--text-muted)}.reply-trend-record-list dd{margin:0}.reply-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:24px;min-width:0;overflow-wrap:anywhere}.reply-card h2{font-size:16px;margin:0 0 20px}.reply-card h3{font-size:13px;margin:0 0 10px}.reply-note+.reply-note{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.reply-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.reply-media+.reply-media{margin-top:20px}.reply-media video,.reply-media audio{width:100%;max-width:100%;border-radius:10px}.reply-media video{max-height:440px;background:#111}.reply-muted{font-size:13px;color:var(--text-muted);line-height:1.65;margin:0}.reply-compose{position:sticky;top:20px;border-top:3px solid var(--blue-700)}.reply-mode{display:flex;gap:8px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}.reply-mode button{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:9px 12px;border:1px solid var(--border);background:#fff;border-radius:9px;color:var(--text-muted);font:inherit;font-size:13px;font-weight:650;cursor:pointer}.reply-mode button[aria-pressed=true]{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-700)}.reply-editor{display:grid;gap:16px}.reply-editor label{display:grid;gap:8px;font-size:13px;font-weight:650}.reply-editor textarea,.reply-editor select{box-sizing:border-box;min-width:0;width:100%;border:1px solid var(--border);border-radius:10px;padding:12px;font:inherit;font-size:14px;line-height:1.7;background:#fff;color:var(--text)}.reply-editor textarea{resize:vertical}.reply-editor textarea:focus{outline:2px solid var(--blue-700);outline-offset:2px}@media(min-width:801px){.reply-compose{align-self:stretch;display:flex;flex-direction:column}.reply-compose .reply-editor,.reply-compose label:has(>textarea){display:flex;flex-direction:column;flex:1 0 auto}.reply-compose textarea{flex:1 0 auto}.reply-layout:has(.reply-trend-records[open]) .reply-compose{align-self:start;min-height:min(42rem,calc(100dvh - 40px))}}.reply-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px}.feedback-reply :is(.btn-inline,.btn-small){min-height:42px;width:auto;margin-top:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;text-decoration:none}.reply-history{margin-top:20px}.reply-history summary{font-size:14px;font-weight:650;cursor:pointer}.reply-history summary svg{vertical-align:middle;margin-right:6px}.reply-record{border-top:1px solid var(--border);padding:18px 0}.reply-record:first-of-type{margin-top:16px}.reply-record:last-child{padding-bottom:0}.reply-record-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.reply-record-head small{color:var(--text-muted);font-size:12px;flex:1}.reply-record p{font-size:14px;line-height:1.8;white-space:pre-wrap;margin:12px 0 0}@media(max-width:800px){.reply-layout{grid-template-columns:minmax(0,1fr)}.reply-compose{position:static}.reply-card{padding:20px}.reply-context h2{font-size:18px}.reply-context{align-items:flex-start}.reply-editor textarea,.reply-editor select{font-size:16px}.feedback-reply :is(.btn-inline,.btn-small){min-height:44px}}@media(max-width:800px){.reply-insight-column{display:contents}.reply-layout>.reply-compose{grid-row:2}.reply-trends{grid-row:3}.reply-trend-records summary{min-height:44px}}@media(max-width:480px){.reply-trend-charts{grid-template-columns:minmax(0,1fr);gap:22px}.reply-trend-chart+.reply-trend-chart{border-top:1px solid var(--border);padding-top:18px}}.settlement-attribution-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;border-bottom:1px solid var(--border)}.settlement-attribution-info{flex:1 1 220px;min-width:0;overflow-wrap:anywhere;font-size:14px}.settlement-attribution-info>div{margin-top:5px;color:var(--text-muted);font-size:12px}.settlement-attribution-actions{display:flex;flex:0 1 360px;align-items:center;gap:8px;min-width:0}.settlement-attribution-actions select{flex:1;min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}.settlement-attribution-actions button{flex-shrink:0;min-height:40px}.settlement-attribution-actions button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:600px){.settlement-attribution-actions{flex-basis:100%;flex-wrap:wrap}.settlement-attribution-actions select{flex-basis:160px;min-height:44px;font-size:16px}.settlement-attribution-actions button{min-height:44px;margin-left:auto}}.booking-date-field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:13px;font-weight:600}.student-form-grid>.booking-date-field{margin:14px 0}.booking-date-native{box-sizing:border-box;width:100%;height:44px;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);font:inherit;font-weight:400}.booking-date-mobile{display:none}.reservation-calendar .calendar-cell{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:left;font:inherit;color:var(--text);min-width:0}.reservation-calendar .calendar-cell:focus-visible{outline:2px solid var(--blue-700);outline-offset:1px}.reservation-calendar .calendar-cell[aria-current=date] .calendar-day{color:var(--blue-700);text-decoration:underline;text-underline-offset:4px}.reservation-calendar-count,.reservation-calendar-hint{display:none}.reservation-month-nav button{min-width:44px;min-height:44px}.reservation-mobile-room-select{display:none}@media(max-width:700px){.reservation-mobile-room-select{display:flex;flex-direction:column;gap:8px;margin:12px 0;font-size:13px;font-weight:600}.reservation-mobile-room-select select{width:100%;min-width:0;min-height:44px;padding:10px;font:inherit;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface)}.lesson-schedule-grid.reservation-day-grid{grid-template-columns:48px minmax(0,1fr)!important;min-width:0}.reservation-day-grid [data-mobile-room=false]{display:none}.reservation-day-grid [data-mobile-room=true]{grid-column:2!important}.reservation-day-grid .lesson-schedule-teacher{pointer-events:none}.booking-date-native{display:none}.booking-date-mobile{display:block}.student-form-grid.student-booking-date-grid{grid-template-columns:minmax(0,1fr);gap:0}.booking-date-mobile button{font:inherit;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);min-height:44px;cursor:pointer}.booking-date-mobile button:disabled{opacity:.35;cursor:not-allowed}.booking-date-trigger{width:100%;height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;text-align:left;font-weight:400}.booking-date-trigger[aria-expanded=true]{border-color:var(--blue-700)}.booking-date-calendar{margin-top:10px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.booking-date-nav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px;margin-bottom:8px;text-align:center}.booking-date-nav strong{font-size:14px}.booking-date-nav button{font-size:24px}.booking-date-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.booking-date-weekday{text-align:center;padding:8px 0;font-size:11px;color:var(--text-muted)}.booking-date-days button{min-width:0;padding:0;border-color:transparent;font-size:13px}.booking-date-days button[aria-current=date]{text-decoration:underline;text-underline-offset:4px}.booking-date-days button[aria-pressed=true]{color:#fff;background:var(--blue-700);border-color:var(--blue-700)}.booking-date-footer{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.booking-date-footer button{padding:6px 14px}.reservation-month-nav{width:100%;justify-content:space-between}.calendar-grid.reservation-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.reservation-calendar .calendar-cell{min-height:62px;padding:7px 1px;text-align:center}.reservation-calendar .calendar-day{font-size:13px;margin-bottom:6px}.reservation-calendar .calendar-item,.reservation-calendar .calendar-more{display:none}.reservation-calendar-count{display:block;margin:0 auto;width:max-content;max-width:100%;padding:2px 5px;border-radius:5px;background:var(--blue-50);color:var(--blue-700);font-size:11px;font-weight:700;line-height:1.3}.reservation-calendar-hint{display:block;color:var(--text-muted);font-size:12px;line-height:1.6;margin:0 0 12px}.modal-backdrop.reservation-calendar-backdrop{align-items:flex-end;padding:0}.reservation-calendar-backdrop .reservation-day-modal{box-sizing:border-box;width:100%!important;max-width:100%;max-height:85vh;max-height:85dvh;margin:0;border-radius:18px 18px 0 0;padding:20px 16px max(20px,env(safe-area-inset-bottom))}.reservation-calendar-backdrop .modal-close,.reservation-calendar-backdrop .btn-small{min-height:44px}}.attendance-calendar{min-width:0;margin:20px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface,#fff);overflow:hidden}.attendance-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px}.attendance-month-nav{display:flex;align-items:center;gap:8px;min-width:0}.attendance-calendar-toolbar button{border:1px solid var(--border);border-radius:8px;background:var(--surface,#fff);color:var(--text);font:inherit;cursor:pointer;min-width:44px;min-height:44px;padding:8px 12px}.attendance-month-nav>button{font-size:24px;line-height:1;padding:4px}.attendance-month-nav input{width:176px;max-width:100%;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface,#fff);font:inherit;font-size:16px;font-weight:700}.attendance-calendar-legend{display:flex;flex-wrap:wrap;gap:8px 14px;padding:0 16px 14px;font-size:12px;color:var(--text-muted)}.attendance-calendar-legend>span{display:inline-flex;align-items:center;gap:5px}.attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.attendance-weekday{text-align:center;padding:10px 0;font-size:12px;color:var(--text-muted);background:var(--bg);border-top:1px solid var(--border)}.attendance-weekday:first-child{color:var(--danger)}.attendance-day,.attendance-day-blank{border:0;border-top:1px solid var(--border);border-right:1px solid var(--border);min-height:96px;min-width:0}.attendance-day:nth-child(7n),.attendance-day-blank:nth-child(7n){border-right:0}.attendance-day{display:flex;flex-direction:column;gap:8px;padding:10px 8px;font:inherit;color:var(--text);background:var(--surface,#fff);text-align:left;cursor:pointer}.attendance-day:hover,.attendance-day-blank{background:var(--bg)}.attendance-day[aria-pressed=true]{background:var(--blue-50);box-shadow:inset 0 0 0 2px var(--blue-700)}.attendance-calendar button:focus-visible{outline:3px solid var(--blue-700);outline-offset:-3px}.attendance-day-top{display:flex;align-items:center;justify-content:space-between;gap:3px;font-size:13px}.attendance-day-top strong{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;border-radius:50%}.attendance-day[aria-current=date] .attendance-day-top strong{color:#fff;background:var(--blue-700)}.attendance-day-count{color:var(--text-muted);font-size:11px}.attendance-day-previews{display:grid;gap:5px;width:100%}.attendance-event{display:flex;flex-direction:column;gap:2px;border-left:3px solid var(--blue-700);padding-left:5px;font-size:11px;line-height:1.45}.attendance-event>span,.attendance-event>small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.attendance-event>small{display:none}.attendance-event-attended{border-color:var(--success)}.attendance-event-late{border-color:#a56800}.attendance-event-review{border-color:#6b42a8}.attendance-event-unrecorded{border-color:var(--text-muted)}.attendance-event-noShow,.attendance-event-excusedAbsent,.attendance-event-sameDayCancel{border-color:var(--danger)}.attendance-event-canceled{border-color:var(--text-muted)}.attendance-more{color:var(--text-muted);font-size:11px}.attendance-day-dots{display:none}.attendance-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue-700);flex-shrink:0}.attendance-dot-attended{background:var(--success)}.attendance-dot-late{background:#a56800}.attendance-dot-review{background:#6b42a8}.attendance-dot-unrecorded{background:var(--text-muted)}.attendance-dot-noShow,.attendance-dot-excusedAbsent,.attendance-dot-sameDayCancel{background:var(--danger)}.attendance-dot-canceled{background:var(--text-muted)}.attendance-calendar-hint{margin:0;padding:12px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted);line-height:1.6}.attendance-day-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 12px}.attendance-day-heading h2{font-size:16px;margin:0}.attendance-day-heading span{color:var(--text-muted);font-size:13px}.attendance-status{display:inline-flex;align-items:center;border-radius:6px;padding:4px 8px;background:var(--blue-50);color:var(--blue-900);font-size:12px;font-weight:600;white-space:nowrap}.attendance-status-attended{background:#e5f5ee;color:#064}.attendance-status-late{background:#fff4db;color:#805000}.attendance-status-review{background:#f2ebff;color:#624097}.attendance-status-unrecorded{background:var(--bg);color:var(--text-muted)}.attendance-status-noShow,.attendance-status-excusedAbsent,.attendance-status-sameDayCancel{background:#fff0eb;color:#a82d12}.attendance-status-canceled{background:var(--bg);color:var(--text-muted)}.attendance-filter-bar{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-top:18px}.attendance-filter-bar>label{display:grid;gap:6px;font-size:13px}.attendance-filter-bar select{padding:10px 12px;min-height:44px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}.attendance-filter-bar>a{width:auto;min-height:44px;display:inline-flex;align-items:center;text-decoration:none}.attendance-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.attendance-calendar-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr);gap:20px;align-items:start}.attendance-agenda{min-width:0;margin-top:20px}.attendance-agenda>.operation-note:first-child{margin:0 0 12px;font-size:12px}.attendance-agenda .attendance-day-heading{margin:0 0 16px}.attendance-agenda .operation-history summary{font-size:13px}.attendance-agenda .operation-history summary:after{content:"";width:7px;height:7px;margin-left:auto;margin-right:3px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:rotate(45deg);flex-shrink:0}.attendance-agenda .operation-history[open]>summary:after{transform:rotate(225deg)}.attendance-agenda .operation-history p{font-size:13px;line-height:1.7}.attendance-student-history .attendance-calendar,.attendance-student-history .attendance-agenda{margin-top:0}.pay-ready-message{flex:1 1 320px;min-width:0;display:grid;gap:8px}.pay-attribution-notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pay-attribution-notice>div{flex:1 1 220px;min-width:0}.pay-attribution-notice small,.pay-ready-estimate small{display:block;margin-top:4px;font-size:12px;line-height:1.5}.pay-attribution-notice .btn-small{margin:0;flex-shrink:0;text-decoration:none}.pay-ready-estimate{min-width:0}@media(max-width:1100px){.attendance-calendar-layout{grid-template-columns:minmax(0,1fr);gap:0}.attendance-agenda{margin-top:0}}@media(max-width:700px){.attendance-calendar-toolbar{padding:12px 8px;gap:6px}.attendance-month-nav{gap:3px;flex:1}.attendance-month-nav label{min-width:0}.attendance-month-nav input{width:155px;padding:6px}.attendance-calendar-toolbar .attendance-today{padding:6px 8px;font-size:12px}.attendance-month-nav>button{min-width:36px}.attendance-calendar-legend{padding:0 8px 12px;gap:7px 10px;font-size:11px}.attendance-day,.attendance-day-blank{min-height:68px;padding:7px 2px;gap:7px}.attendance-day-top{justify-content:center;flex-wrap:wrap;gap:1px;font-size:12px}.attendance-day-count{font-size:10px}.attendance-day-previews{display:none}.attendance-day-dots{display:flex;justify-content:center;gap:3px}.attendance-calendar-hint{padding:10px;font-size:11px}.attendance-filter-bar>label,.attendance-filter-bar select{width:100%}.attendance-filter-bar{gap:10px}.attendance-day-heading{margin-top:18px}}@media(max-width:420px){.attendance-calendar-toolbar{flex-wrap:wrap}.attendance-month-nav{flex:1 1 230px}.attendance-month-nav label{flex:1}.attendance-month-nav input{width:100%}.attendance-calendar-toolbar .attendance-today{margin-left:auto}}@media(min-width:701px){.academy-workspace:not(.student-app) .attendance-filter-bar>label{gap:4px;font-size:12.5px;font-weight:600;color:var(--text-muted)}.academy-workspace:not(.student-app) .attendance-filter-bar select{min-height:38px;padding:7px 10px;border-radius:7px;font-size:13px}.academy-workspace:not(.student-app) .attendance-filter-bar>a{min-height:38px;padding:7px 14px;margin-top:0;font-size:13px;border-radius:7px}}.teacher-lesson-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.teacher-lesson-card{display:flex;flex-direction:column;min-width:0;padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.teacher-lesson-card.needs-action{border-color:#d4e1fa}.teacher-lesson-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.teacher-lesson-card-heading h3{margin:0;font-size:16px;line-height:1.5;min-width:0}.teacher-lesson-card-heading h3 a{color:var(--text);font-weight:700;text-decoration:none;overflow-wrap:anywhere}.teacher-lesson-card-heading h3 a:hover{color:var(--blue-700);text-decoration:underline}.teacher-lesson-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0;gap:5px}.teacher-lesson-card-badges .badge,.teacher-lesson-card-badges .attendance-status{display:inline-flex;align-items:center;min-height:24px;margin:0;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap}.teacher-lesson-card-time{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:9px;color:var(--text-muted);font-size:12px;line-height:1.6;font-variant-numeric:tabular-nums}.teacher-lesson-card-time>span{display:inline-flex;align-items:center;gap:6px}.teacher-lesson-card-time svg{flex-shrink:0;color:#8491a5}.teacher-lesson-card-details{margin:13px 0 16px;color:var(--text-muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.teacher-lesson-card-details:empty{margin:0 0 16px}.teacher-lesson-card-details p{margin:0}.teacher-lesson-card-details p+p,.teacher-lesson-card-details .teacher-lesson-card-note{margin-top:5px}.teacher-lesson-card-decisions{display:flex;flex-wrap:wrap;gap:5px 16px}.teacher-lesson-card-decisions strong{color:var(--text);font-weight:500}.teacher-lesson-card-action{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;margin-top:auto;padding:10px 14px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--blue-700);font:inherit;font-size:12px;font-weight:650;text-align:center;text-decoration:none;cursor:pointer}.needs-action .teacher-lesson-card-action{background:var(--blue-50);border-color:#dce7ff}.teacher-lesson-card-action:hover{background:#e6efff;border-color:#8babeb;color:var(--blue-900);text-decoration:none}.teacher-lesson-card-action svg{flex-shrink:0}.teacher-lesson-card-action:focus-visible,.teacher-lesson-card-heading a:focus-visible{outline:3px solid #80aaff;outline-offset:3px}@media(min-width:1101px){.teacher-lesson-card:only-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"heading action" "time action" "details action";column-gap:28px}.teacher-lesson-card:only-child .teacher-lesson-card-heading{grid-area:heading;justify-content:flex-start}.teacher-lesson-card:only-child .teacher-lesson-card-time{grid-area:time}.teacher-lesson-card:only-child .teacher-lesson-card-details{grid-area:details;margin-bottom:0}.teacher-lesson-card:only-child .teacher-lesson-card-action{grid-area:action;align-self:center;margin:0;min-width:155px}}@media(max-width:800px){.teacher-lesson-cards{grid-template-columns:minmax(0,1fr)}}.opr{display:grid;gap:24px;min-width:0;color:var(--text)}.opr h2{font-size:17px;margin:0;font-weight:750;line-height:1.5}.opr p{line-height:1.6}.opr button,.opr input,.opr select{font:inherit}.opr button{cursor:pointer}.opr button:disabled{cursor:default;opacity:.4}.opr button:focus-visible,.opr a:focus-visible{outline:3px solid #7c9bff;outline-offset:3px}.opr .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;width:auto;padding:9px 14px;text-decoration:none;font-size:13px;white-space:nowrap}.opr-period,.opr-month{display:flex;align-items:center;gap:10px}.opr-period{justify-content:space-between;color:var(--text-muted);font-size:12px}.opr-month{border:1px solid var(--border);border-radius:10px;background:#fff;gap:0}.opr-month button{border:0;background:transparent;display:grid;place-items:center;width:42px;height:44px;color:var(--text)}.opr-month input{border:0;background:transparent;min-width:0;width:160px;height:44px;color:var(--text);padding:0 8px;font-weight:700}.opr-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.opr-kpi{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:12px;min-width:0}.opr-kpi>span,.opr-kpi>small{color:var(--text-muted);font-size:12px;line-height:1.5}.opr-kpi>strong{font-size:clamp(20px,2.1vw,30px);letter-spacing:-.7px;overflow-wrap:anywhere}.opr-kpi strong small{font-size:13px;margin-left:4px;font-weight:500}.opr-section-title{margin-bottom:14px!important}.opr-tasks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.opr-task{display:flex;align-items:center;gap:12px;min-width:0;text-align:left;border:1px solid var(--border);background:#fff;border-radius:14px;padding:20px;color:var(--text)}.opr-task:hover{border-color:#8baff0;background:#fafcff}.opr-task>span:nth-child(2){flex:1;min-width:0}.opr-task strong,.opr-task small{display:block}.opr-task strong{font-size:14px;line-height:1.4}.opr-task small{margin-top:6px;font-size:11px;color:var(--text-muted);line-height:1.5}.opr-task>b{font-size:23px}.opr-task>svg{flex-shrink:0;color:var(--text-muted)}.opr-icon{width:40px;height:40px;border-radius:12px;background:#edf3ff;color:var(--blue-700);display:grid;place-items:center;flex-shrink:0}.opr-icon.amber{background:#fff5e5;color:#986719}.opr-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.opr-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px;min-width:0}.opr-rate{display:flex;align-items:center;gap:18px;margin:24px 0}.opr-rate>strong{font-size:38px;letter-spacing:-1px}.opr-rate>span{font-size:13px}.opr-rate small{display:block;color:var(--text-muted);font-size:12px;margin-top:6px}.opr-bar{display:flex;background:#edf0f5;border-radius:8px;height:10px;overflow:hidden}.opr-bar>span{background:var(--blue-700)}.opr-breakdown{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:24px 0}.opr-breakdown div{display:flex;flex-direction:column;gap:8px}.opr-breakdown b{font-size:21px}.opr-breakdown span{color:var(--text-muted);font-size:12px}.opr-note{display:flex;gap:8px;color:var(--text-muted);font-size:12px;line-height:1.6;margin:14px 0 0}.opr-note>svg{flex-shrink:0;margin-top:3px}.opr-action-list{display:grid;margin:18px 0}.opr-action-list button{border:0;border-bottom:1px solid var(--border);background:#fff;display:flex;align-items:center;gap:16px;padding:22px 0;text-align:left;color:var(--text)}.opr-action-list span{flex:1;min-width:0}.opr-action-list strong,.opr-action-list small{display:block}.opr-action-list strong{font-size:14px}.opr-action-list small{font-size:12px;color:var(--text-muted);margin-top:6px;line-height:1.5}.opr-empty{padding:40px 20px;background:#fff;border:1px solid var(--border);border-radius:14px;text-align:center;color:var(--text-muted);line-height:1.7}.opr-empty p{font-size:13px}.opr-asof{margin:0;color:var(--text-muted);font-size:13px}.opr-care-intro{display:flex;align-items:center;gap:16px}.opr-care-intro p{margin:5px 0 0;font-size:13px;color:var(--text-muted)}.opr-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.opr-filters{display:flex;flex-wrap:wrap;gap:6px}.opr-filters button{border:1px solid transparent;background:transparent;border-radius:8px;color:var(--text-muted);min-height:42px;padding:9px 12px;font-size:13px}.opr-filters b{margin-left:8px;font-size:12px}.opr-filters button[aria-pressed=true]{color:var(--blue-700);border-color:#ccdafa;background:#edf3ff;font-weight:700}.opr-search-controls{display:flex;gap:10px}.opr-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:0 12px;height:42px;min-width:0;color:var(--text-muted)}.opr-search input{border:0;outline:0;background:transparent;min-width:0;width:170px;color:var(--text);font-size:13px}.opr-search:focus-within{outline:2px solid var(--blue-700)}.opr-search-controls select{height:42px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);padding:0 10px;max-width:200px;font-size:13px}.opr-result{display:flex;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:13px}.opr-result small{font-size:12px}.opr-students{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.opr-student{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;display:flex;flex-direction:column;min-width:0}.opr-student header{display:flex;align-items:center;gap:12px}.opr-student header>div{min-width:0}.opr-student h2{font-size:16px;overflow-wrap:anywhere}.opr-student small{color:var(--text-muted);font-size:12px;line-height:1.6}.opr-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#f1f4f8;color:#68778d;font-size:12px}.opr-badges{display:flex;flex-wrap:wrap;gap:6px;margin:22px 0 12px}.opr-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;padding:5px 9px;border-radius:6px;background:#edf3ff;color:#365a96;font-size:12px;line-height:1.4;font-weight:600}.opr-badge.amber{color:#956017;background:#fff3df}.opr-badge.green{color:#287352;background:#eaf7ef}.opr-evidence{flex:1}.opr-evidence p{font-size:13px;margin:0 0 9px}.opr-next{display:flex;align-items:center;gap:7px;color:var(--text-muted);font-size:12px;margin:18px 0}.opr-next svg{flex-shrink:0}.opr-student footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--border);padding-top:16px;flex-wrap:wrap}.opr-more{justify-self:center}.opr-billing-summary{display:flex;gap:30px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px}.opr-collection{display:flex;flex-direction:column;gap:10px;min-width:220px}.opr-collection>span,.opr-amounts span{font-size:13px;color:var(--text-muted)}.opr-collection>strong{font-size:42px;letter-spacing:-1px;color:var(--blue-700)}.opr-collection small{color:var(--text-muted);font-size:12px}.opr-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:center;flex:1;border-left:1px solid var(--border);padding-left:28px;min-width:0}.opr-amounts>div{display:flex;flex-direction:column;gap:12px;min-width:0}.opr-amounts strong{font-size:clamp(18px,1.7vw,25px);overflow-wrap:anywhere}.opr-overdue{display:flex;align-items:center;gap:18px;border:1px solid #efe2c9;background:#fffbf3;border-radius:12px;padding:18px 22px}.opr-overdue>div{flex:1}.opr-overdue strong{font-size:14px}.opr-overdue small{display:block;color:var(--text-muted);font-size:12px;margin-top:6px}.opr-overdue>b{font-size:19px;color:#916016}.opr-invoices{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.opr-invoice-heading,.opr-invoice{display:grid;grid-template-columns:minmax(110px,1.2fr) 1fr 1fr 110px 142px;align-items:center;gap:16px;padding:18px 22px}.opr-invoice-heading{font-size:12px;color:var(--text-muted);background:#f9fafc}.opr-invoice{border-top:1px solid var(--border);font-size:13px}.opr-invoice>div{min-width:0}.opr-invoice strong{overflow-wrap:anywhere}.opr-invoice small{display:block;color:var(--text-muted);font-size:12px;margin-top:7px}.opr-invoice .btn-secondary{font-size:12px}.opr-invoices>footer{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;border-top:1px solid var(--border);background:#f9fafc;font-size:13px}.opr-mobile-label{display:none}.opr-extra{margin:16px 0 24px}.opr-extra summary{cursor:pointer;font-size:13px;color:var(--text-muted)}.opr-extra .page-tabs{margin-top:12px}.opr-exports summary{cursor:pointer;font-size:13px;color:var(--text-muted)}.opr-exports>div{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.opr-print-only{display:none}@media print{.opr-exports,.opr-export-button{display:none!important}.opr-student.opr-print-only{display:flex}}@media(max-width:1150px){.opr-tasks{grid-template-columns:1fr}.opr-task{padding:16px}.opr-students{grid-template-columns:repeat(2,minmax(0,1fr))}.opr-billing-summary{flex-direction:column;gap:24px}.opr-amounts{border:0;padding:0}}@media(max-width:850px){.opr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.opr-columns{grid-template-columns:1fr}.opr-invoice-heading{display:none}.opr-invoices{background:transparent;border:0;display:grid;gap:12px;overflow:visible}.opr-invoice{background:#fff;border:1px solid var(--border);border-radius:12px;grid-template-columns:1fr auto;gap:14px;padding:18px}.opr-invoice>div{grid-column:1;grid-row:1}.opr-invoice>.opr-badge{grid-column:2;grid-row:1;justify-self:end}.opr-due{grid-column:1 / -1;grid-row:2;color:var(--text-muted);font-size:12px}.opr-invoice-amount{grid-column:1;grid-row:3;font-size:17px}.opr-invoice>a{grid-column:2;grid-row:3}.opr-mobile-label{display:inline}.opr-invoices>footer{border:1px solid var(--border);border-radius:12px}}@media(max-width:560px){.opr{gap:20px}.opr-period{align-items:flex-start;gap:8px;flex-direction:column}.opr-period>span{font-size:11px}.opr-month input{width:155px}.opr-kpis{gap:10px}.opr-kpi{padding:16px 13px;gap:10px}.opr-kpi>strong{font-size:22px}.opr-kpi>small{font-size:11px}.opr-card{padding:20px 16px}.opr-breakdown{gap:7px}.opr-breakdown span{font-size:11px}.opr-breakdown b{font-size:18px}.opr-students{grid-template-columns:1fr}.opr-student{padding:20px}.opr-toolbar{display:grid}.opr-search-controls{display:grid;grid-template-columns:1fr 1fr;min-width:0}.opr-search-controls select{width:100%;max-width:none;min-width:0}.opr-search input{width:100%}.opr-search-controls .opr-search{padding:0 8px}.opr-search-controls .opr-search svg{display:none}.opr-filters button{padding:8px;font-size:12px}.opr-filters b{margin-left:5px}.opr-care-intro{align-items:flex-start}.opr-care-intro h2{font-size:16px}.opr-care-intro p{font-size:12px}.opr-amounts{grid-template-columns:1fr;gap:14px}.opr-amounts>div{flex-direction:row;justify-content:space-between;align-items:center}.opr-amounts strong{font-size:19px}.opr-billing-summary{padding:22px}.opr-overdue{flex-wrap:wrap;padding:16px;gap:14px}.opr-overdue>div{flex-basis:100%}.opr-overdue>b{flex:1;font-size:17px}.opr-invoice{padding:16px;gap:12px}.opr-invoice>a{padding:8px 10px!important}.opr-result{font-size:12px}}@media print{.opr-extra,.opr-period button,.opr-toolbar,.opr-task>svg,.opr-student footer,.opr-invoice>a,.opr-overdue button,.opr-more{display:none!important}.opr-students{grid-template-columns:repeat(2,minmax(0,1fr))}.opr-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.opr-card,.opr-student,.opr-kpi,.opr-invoice,.opr-billing-summary{break-inside:avoid;box-shadow:none}.opr-tasks{grid-template-columns:repeat(3,minmax(0,1fr))}.opr-task{padding:12px}.opr{gap:14px}}.orp{display:grid;gap:14px}.orp-month{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.orp-month .btn-small{width:auto;min-width:34px}.orp-month input[type=month]{height:34px;padding:0 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}.orp-month-label{margin-left:6px;font-size:15px}.orp-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.orp-kpi{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px 14px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);text-decoration:none}a.orp-kpi:hover{border-color:var(--blue-300, #8fb3f0)}.orp-kpi-label{font-size:12px;color:var(--text-muted);font-weight:600}.orp-kpi strong{font-size:20px;color:var(--blue-900);font-weight:800;overflow-wrap:anywhere}.orp-kpi small{font-size:11.5px;color:var(--text-muted);line-height:1.5;overflow-wrap:anywhere}.orp-warn{color:#b42318;font-weight:700}.orp-delta{font-size:11px;color:var(--text-muted)}.orp-up{color:#216342}.orp-down{color:#b42318}.orp>.orp-section.card,.orp>.card{margin:0}.orp-section .card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.orp-muted{font-size:12px;color:var(--text-muted);font-weight:400;margin:0 0 8px;line-height:1.6}.orp-empty{font-size:13px;color:var(--text-muted);margin:6px 0 0}.orp-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--bg)}.orp-seg{display:block;min-width:4px}.orp-seg-attended{background:#36b37e}.orp-seg-late{background:#ffab00}.orp-seg-noShow{background:#de350b}.orp-seg-sameDayCancel{background:#ff8b00}.orp-seg-excusedAbsent{background:#8993a4}.orp-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;padding:0;font-size:12px;color:var(--text-muted)}.orp-legend li{display:inline-flex;align-items:center;gap:5px}.orp-legend b{color:var(--text)}.orp-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.orp-todos{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}.orp-todos a{font-size:13px;font-weight:600;color:var(--blue-700);text-decoration:none}.orp-care-link{width:auto}.orp-list{list-style:none;margin:0;padding:0}.orp-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.orp-list li>div:first-child{min-width:0;display:flex;flex-direction:column;gap:2px}.orp-list a{font-weight:700;font-size:13.5px;color:var(--blue-700);text-decoration:none}.orp-list small{font-size:11.5px;color:var(--text-muted);overflow-wrap:anywhere}.orp-list-side{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;font-size:12.5px}.orp-tag{font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px}.orp-tag-red{background:#ffebe6;color:#b42318}.orp-tag-amber{background:#fff4e5;color:#974f0c}.orp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.orp-chips a{font-size:12.5px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;color:var(--text);text-decoration:none;background:var(--surface)}.orp-details{margin-top:10px;font-size:12.5px}.orp-details summary{cursor:pointer;color:var(--text-muted);font-weight:600}@media(max-width:1100px){.orp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.orp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.orp-kpi strong{font-size:17px}.orp-month input[type=month]{height:40px;font-size:16px}.orp-month .btn-small{min-height:40px;min-width:40px}.orp-list li{flex-wrap:wrap}.orp-list-side{justify-content:flex-start}}@media print{.orp-month,.orp-care-link{display:none}}.orp-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.orp-header .page-title{margin:0}.orp-exports{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.orp-exports .btn-small{width:auto}.orp-renew-btn{width:auto;margin-left:4px}@media print{.orp-exports{display:none}}.operation-form .portal-check{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:600}.operation-form .portal-check input{width:auto;min-height:0}.orp-privacy-note{margin-top:6px;padding:8px 10px;border-radius:8px;background:#fffaf0;color:#8a5a00}button.print-icon-button,.diary-toolbar button.print-icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;flex:0 0 44px}.print-icon-button svg{width:20px;height:20px;flex-shrink:0}.print-icon-button:focus-visible{outline:2px solid var(--blue-700);outline-offset:3px}@media print{button.print-icon-button{display:none!important}}.trp-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.trp-kpi-button{font:inherit;text-align:left;cursor:pointer}.trp-kpi-button:hover{border-color:var(--blue-300, #8fb3f0)}.trp-link-button{padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--blue-700);cursor:pointer;text-align:left}.trp-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.trp-section-head .card-title{margin:0}.trp-students{list-style:none;margin:0;padding:0;display:grid;gap:8px}.trp-student{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);text-decoration:none}.trp-student:hover{border-color:var(--blue-300, #8fb3f0);background:var(--blue-50)}.trp-student:focus-visible{outline:2px solid var(--blue-700);outline-offset:2px}.trp-avatar{flex:none;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--blue-50);color:var(--blue-700);font-weight:800;font-size:14px}.trp-student-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.trp-student-main strong{font-size:14px;color:var(--text)}.trp-student-main small{font-size:12px;color:var(--text-muted);overflow-wrap:anywhere}.trp-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.trp-chevron{flex:none;font-size:18px;color:var(--text-muted)}.trp-item-title{font-size:13px;font-weight:650;color:var(--text);overflow-wrap:anywhere}.trp-action{width:auto;text-decoration:none;display:inline-flex;align-items:center}.trp-review-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.trp-bars{display:flex;align-items:flex-end;height:120px;padding:0 4px}.trp-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.trp-bar-count{font-size:11.5px;font-weight:700;color:var(--blue-900);min-height:15px}.trp-bar-fill{width:70%;border-radius:4px;display:block}.trp-bar-label{font-size:10.5px;color:var(--text-muted);white-space:nowrap}@media(max-width:1100px){.trp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.trp-review-actions{justify-content:flex-start}.trp-student{flex-wrap:wrap}.trp-tags{width:100%;justify-content:flex-start;padding-left:46px}.trp-chevron{display:none}}.tsl-card:hover{background:var(--surface)}.tsl-name{text-decoration:none;color:inherit}.tsl-name:hover strong{color:var(--blue-700)}.tsl-actions{display:flex;gap:6px;flex:none}.tsl-actions .btn-small{width:auto;text-decoration:none;display:inline-flex;align-items:center}@media(max-width:700px){.tsl-actions{width:100%;padding-left:46px}.tsl-actions .btn-small{flex:1;justify-content:center;min-height:40px}}.trp-todo-people{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.trp-todo-label{font-size:13px;font-weight:700;color:#b42318;margin-right:2px}.orp-todos a.trp-person-chip,.trp-person-chip{display:inline-flex;align-items:center;min-height:28px;padding:3px 11px;border-radius:999px;border:1px solid #fecdca;background:#fef3f2;color:#b42318;font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer}.orp-todos a.trp-person-chip:hover,.trp-person-chip:hover{background:#fee4e2}.trp-person-more{font:inherit;font-size:12.5px}.ops-log-page{max-width:1240px;margin:0 auto;min-width:0}.ops-log-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ops-log-heading>div{min-width:0;flex:1}.ops-log-heading>button{width:auto;flex-shrink:0;white-space:nowrap}.ops-log-notice{padding:14px 18px;background:#eef4ff;border:1px solid #dce6f9;border-radius:12px;font-size:13px;line-height:1.7;color:#34527c;margin:4px 0 18px}.ops-log-tabs{margin:0 0 16px;flex-wrap:wrap}.ops-log-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.ops-log-filters>button{width:auto}.ops-log-filters label,.ops-log-review label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:var(--text-muted);min-width:0}.ops-log-filters label{flex:1 1 150px}.ops-log-filters .ops-log-search{flex:2 1 290px}.ops-log-page input,.ops-log-page select,.ops-log-detail select,.ops-log-detail textarea{width:100%;box-sizing:border-box;min-height:42px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:9px 11px;font:inherit;color:var(--text)}.ops-log-validation{flex-basis:100%;margin:0;color:#b42318}.ops-log-count{margin:18px 0 12px;color:var(--text-muted);font-size:13px}.ops-log-group{padding:0 18px;overflow:hidden}.ops-log-group>summary{cursor:pointer;padding:18px 0;font-weight:700}.ops-log-group>summary .badge{margin-left:10px}.ops-log-row{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;text-align:left;border:0;border-top:1px solid var(--border);background:transparent;padding:17px 0;cursor:pointer;font:inherit;color:inherit}.ops-log-row:hover{background:#f7f9fd}.ops-log-row:focus-visible{outline:2px solid var(--blue-700);outline-offset:-2px}.ops-log-main{display:flex;flex-direction:column;gap:7px;min-width:0;overflow-wrap:anywhere}.ops-log-main strong{font-size:14px}.ops-log-main>span{font-size:13px;color:var(--text-muted)}.ops-log-main small{font-size:11px;color:var(--text-muted)}.ops-log-side{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:12px;color:var(--text-muted)}.ops-log-side time{font-variant-numeric:tabular-nums}.ops-log-badge{padding:4px 9px;border-radius:6px;background:#eef2f8;color:#42526e;white-space:nowrap}.ops-log-badge.open,.ops-log-badge.delete{background:#fff0eb;color:#ae3c21}.ops-log-badge.checking,.ops-log-badge.update{background:#eef3ff;color:#2753a2}.ops-log-badge.done,.ops-log-badge.create{background:#eaf7ef;color:#216e41}.ops-log-more{text-align:center;margin:22px 0 32px;font-size:12px;color:var(--text-muted);line-height:1.6}.ops-log-detail{min-width:0}.ops-log-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px;background:#f5f7fb;border-radius:10px}.ops-log-detail dt{font-size:11px;color:var(--text-muted);margin-bottom:5px}.ops-log-detail dd{margin:0;font-size:13px;overflow-wrap:anywhere}.ops-log-help{font-size:12px;color:var(--text-muted);line-height:1.6}.ops-log-diff{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--border);padding:14px 0;min-width:0}.ops-log-diff>strong{grid-column:1/-1;font-size:13px}.ops-log-diff>div{padding:12px;background:#f5f7fa;border-radius:8px;overflow-wrap:anywhere;min-width:0}.ops-log-diff>div:last-child{background:#edf4ff}.ops-log-diff small,.ops-log-diff span{display:block;font-size:12px;line-height:1.6}.ops-log-diff small{color:var(--text-muted);margin-bottom:5px}.ops-log-error{padding:16px;border:1px solid #efd9d3;background:#fff8f5;border-radius:10px;margin:20px 0;overflow-wrap:anywhere}.ops-log-error small{line-height:1.6;color:var(--text-muted)}.ops-log-review{display:grid;gap:15px}.ops-log-review h3{margin-bottom:0}.ops-log-review>button{justify-self:end}@media(max-width:640px){.ops-log-heading{gap:10px}.ops-log-heading>button{padding:8px 10px;font-size:12px}.ops-log-heading .page-title{font-size:23px}.ops-log-filters{padding:14px;gap:12px}.ops-log-filters label{flex:1 1 calc(50% - 12px);width:0}.ops-log-filters>button{width:100%}.ops-log-filters .ops-log-search{flex-basis:100%;width:100%}.ops-log-row{flex-direction:column;align-items:stretch;gap:12px}.ops-log-side{justify-content:space-between}.ops-log-detail dl{grid-template-columns:1fr}.ops-log-group{padding:0 14px}.ops-log-review>button{width:100%}}.admin-visit-actor{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:13px;overflow-wrap:anywhere}.account-care-rows{display:grid;gap:6px}.account-care .account-care-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:48px;margin:0;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface, #fff);color:var(--text);text-decoration:none;font:inherit;text-align:left;cursor:pointer}.account-care .account-care-row strong{font-size:14px}.account-care .account-care-row span{font-size:12.5px;color:var(--text-muted);text-align:right}.account-care .account-care-danger strong{color:#b42318}.account-delete{display:grid;gap:12px}.account-delete p{margin:0;line-height:1.65}.account-delete ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13.5px;line-height:1.6}.account-delete label{display:grid;gap:6px;font-size:13.5px;font-weight:700}.account-delete input{min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit}.account-delete-actions{display:flex;justify-content:flex-end;gap:8px}.account-delete-actions button{width:auto;min-width:96px;min-height:42px}.account-delete .account-delete-confirm{background:#b42318;border-color:#b42318}.account-delete>.btn-primary{justify-self:start;width:auto}.account-delete .account-delete-confirm:disabled{opacity:.45;cursor:not-allowed}.account-delete .account-delete-confirm:not(:disabled):hover{background:#912018}.guide-center{display:grid;gap:12px;word-break:keep-all;overflow-wrap:anywhere}.guide-note{margin:0;font-size:12.5px;color:var(--text-muted)}.guide-search{display:flex;align-items:center;gap:8px;padding:0 12px;min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.guide-search input{flex:1;min-width:0;border:0;outline:none;background:none;font:inherit;font-size:15px;color:var(--text)}.guide-category{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}.guide-category>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}.guide-category>summary::-webkit-details-marker{display:none}.guide-category[open]>summary{border-bottom:1px solid var(--border)}.guide-category-icon{font-size:22px}.guide-category-title{flex:1;display:grid;gap:2px;min-width:0}.guide-category-title strong{font-size:16px}.guide-category-title small{font-size:12.5px;color:var(--text-muted)}.guide-count{min-width:24px;padding:2px 8px;border-radius:999px;background:var(--blue-50);color:var(--blue-900);font-size:12px;font-weight:800;text-align:center}.guide-items{list-style:none;margin:0;padding:4px 16px 8px;display:grid}.guide-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid #eef1f6}.guide-item:last-child{border-bottom:0}.guide-item-icon{font-size:18px;line-height:1.4}.guide-item-body{display:grid;gap:4px;min-width:0}.guide-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.guide-item-head strong{font-size:14.5px}.guide-badge{padding:1px 7px;border-radius:999px;background:#fff4e5;color:#8a5a00;font-size:11px;font-weight:800}.guide-item-body p{margin:0;font-size:13.5px;line-height:1.6;color:var(--text)}.guide-item-body .guide-where{font-size:12.5px;color:var(--text-muted)}.guide-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.guide-link,.guide-tour{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:8px;font-size:12.5px;font-weight:800;text-decoration:none;cursor:pointer;width:auto;margin:0}.guide-link{background:var(--blue-700);color:#fff;border:1px solid var(--blue-700)}.guide-tour{background:var(--surface);color:var(--blue-900);border:1px solid var(--border)}.guide-empty{margin:0;padding:20px;text-align:center;color:var(--text-muted)}.guide-faq{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.guide-faq h2{margin:0 0 4px;font-size:16px}.guide-faq details{border-top:1px solid #eef1f6;padding:10px 0 0}.guide-faq summary{cursor:pointer;font-size:14px;font-weight:700}.guide-faq details p{margin:6px 0 4px;font-size:13.5px;line-height:1.6;color:var(--text-muted)}.guide-help{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;border-radius:12px;background:var(--blue-50);font-size:13.5px}.guide-help a{color:var(--blue-700);font-weight:800;text-decoration:none}.guide-tour-card{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.guide-tour-card>div{flex:1 1 260px;display:grid;gap:4px}.guide-tour-card strong{font-size:15px}.guide-tour-card small{font-size:12.5px;color:var(--text-muted)}.guide-tour-card .guide-start-btn{width:auto}@media(max-width:560px){.guide-category>summary{padding:12px 14px}.guide-items{padding:4px 14px 8px}}.qa-search input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:7px;font-size:13px}.qa-group{margin-top:10px}.qa-group>summary{display:flex;gap:10px;align-items:center;min-height:44px;padding:8px 0;font-weight:650;cursor:pointer;list-style:none}.qa-group>summary::-webkit-details-marker{display:none}.qa-group>summary:after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:4px;flex-shrink:0}.qa-group[open]>summary:after{transform:rotate(225deg)}.qa-group>summary>span{font-size:12px;color:var(--text-muted);background:var(--bg);padding:2px 8px;border-radius:6px}.qa-group-open>summary>span{background:var(--blue-50);color:var(--blue-700)}.qa-group>summary:focus-visible{outline:3px solid var(--blue-700);outline-offset:2px;border-radius:6px}.qa-none{margin:2px 0 10px;font-size:13px;color:var(--text-muted)}.qa-group>.list-card:last-of-type{margin-bottom:10px}.qa-more{width:100%;margin-bottom:6px}.booking-form{display:grid;gap:14px}.booking-floor-plan-empty{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;margin-bottom:20px;border:1px dashed var(--blue-100);border-radius:12px;background:var(--blue-50)}.booking-floor-plan-empty>div{min-width:0}.booking-floor-plan-empty h2{margin:0;font-size:14px;color:var(--text)}.booking-floor-plan-empty p{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere}.booking-floor-plan-empty>button{width:auto;min-height:44px;margin:0;flex-shrink:0;padding:10px 16px;font-size:13px;white-space:nowrap}@media(max-width:600px){.booking-floor-plan-empty{flex-wrap:wrap;gap:12px;padding:14px}.booking-floor-plan-empty>button{flex:1 1 auto}}.booking-purpose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.booking-form .booking-purpose-option{display:grid;gap:2px;width:100%;min-height:56px;margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface, white);color:var(--text);text-align:left;cursor:pointer}.booking-form .booking-purpose-option strong{font-size:14px}.booking-form .booking-purpose-option small{font-size:12px;color:var(--text-muted);font-weight:500}.booking-form .booking-purpose-option[aria-checked=true]{border-color:var(--blue-700, #1d4ed8);box-shadow:0 0 0 1px var(--blue-700, #1d4ed8) inset;background:var(--blue-50, #eef4ff)}.booking-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.booking-form-grid .form-field,.booking-form-grid .booking-date-field{min-width:0;gap:6px;font-size:12px;font-weight:400;line-height:1.5;color:var(--text-muted)}.booking-form-grid select,.booking-form-grid input,.booking-form-grid .booking-date-trigger{width:100%;min-width:0;box-sizing:border-box;height:44px;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:400;line-height:1.5;color:var(--text);background:var(--surface)}.booking-repeat{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.booking-repeat label{display:inline-flex;align-items:center;gap:6px;font-size:13.5px}.booking-repeat select{width:auto;min-height:36px;padding:6px 10px;border:1px solid var(--border);border-radius:8px}.booking-summary{margin:0;padding:10px 12px;border-radius:10px;background:var(--surface-muted, #f7f8fa);font-size:13px;color:var(--text);overflow-wrap:anywhere}.booking-actions{display:flex;justify-content:flex-end;gap:8px}.booking-actions button{width:auto;min-width:96px;min-height:42px}@media(max-width:600px){.booking-form-grid{grid-template-columns:minmax(0,1fr)}.booking-form-grid .booking-date-trigger{font-size:16px}.booking-actions button{flex:1}}.settlement-month{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px;white-space:nowrap}.settlement-month input{min-height:38px;min-width:0;padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:14px}.settlement-help{margin:16px 0;font-size:12px}.settlement-help a,.payroll-attendance-link{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:40px;margin:0;padding:8px 12px;font-size:13px;color:var(--blue-700);text-decoration:none}.payroll-panel{display:grid;gap:16px;min-width:0}.payroll-panel>.card{margin:0}.payroll-panel button:disabled{opacity:.45;cursor:not-allowed}.payroll-panel .payroll-workbench{padding:0;overflow:hidden}.payroll-toolbar.operation-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:20px 24px}.payroll-toolbar label{flex:1 1 200px;max-width:360px}.payroll-panel .payroll-toolbar button{width:auto;min-height:var(--form-control-height);margin:0}.payroll-toolbar .payroll-attendance-link{min-height:var(--form-control-height)}.payroll-attendance-link{margin-left:auto;white-space:nowrap}.payroll-panel .payroll-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 16px;margin:0;color:var(--text-muted);text-align:center;font-size:13px}.payroll-empty strong{color:var(--text);font-size:14px}.payroll-panel .payroll-review{gap:0;border-top:1px solid var(--border)}.payroll-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;background:#f3f7ff}.payroll-panel .payroll-person h2{margin:5px 0 10px;font-size:22px;line-height:1.3;overflow-wrap:anywhere}.payroll-summary-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.payroll-total{display:grid;gap:6px;text-align:right;flex-shrink:0}.payroll-total>span{font-size:12px;font-weight:600;color:var(--blue-700)}.payroll-total>strong{font-size:clamp(26px,3vw,36px);line-height:1.25;letter-spacing:-.8px;color:var(--blue-700);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.payroll-status{display:inline-flex;align-items:center;width:fit-content;min-height:24px;box-sizing:border-box;padding:3px 8px;border-radius:5px;font-size:11px;line-height:1.4;font-weight:600;white-space:nowrap}.payroll-status.ready{color:#216e4e;background:#dcf3e5}.payroll-status.pending{color:#805300;background:#fff0c2}.payroll-status.neutral{color:#53627a;background:#edf0f5}.payroll-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.65fr)}.payroll-calculation,.payroll-confirm{padding:24px;min-width:0}.payroll-confirm{border-left:1px solid var(--border);background:#fafbfd;display:flex;flex-direction:column;gap:16px;align-self:stretch}.payroll-panel h3,.payroll-dialog h3{font-size:14px;margin:0 0 14px}.payroll-panel .payroll-confirm h3{margin:0}.payroll-contract>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.payroll-contract strong{font-size:14px}.payroll-panel .payroll-muted,.payroll-dialog .payroll-muted{font-size:12px;line-height:1.6;color:var(--text-muted);margin:8px 0}.payroll-breakdown{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:18px 0}.payroll-breakdown summary{cursor:pointer;padding:12px 0;font-size:12px;font-weight:600}.payroll-breakdown summary>span{margin-left:8px;color:var(--text-muted);font-weight:400}.payroll-breakdown ul{list-style:none;padding:0;margin:0}.payroll-breakdown li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--border)}.payroll-breakdown li>div{display:grid;gap:4px}.payroll-breakdown li>div:last-child{justify-items:end}.payroll-breakdown li strong{font-size:12px}.payroll-breakdown li .payroll-muted{margin:0}.payroll-adjustment{display:grid;grid-template-columns:minmax(140px,.65fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:20px}.payroll-panel .payroll-adjustment label{font-size:12px}.payroll-adjustment small{color:var(--text-muted);font-size:11px;font-weight:400;line-height:1.5}.payroll-money-input{position:relative}.payroll-money-input input{padding-right:44px;font-variant-numeric:tabular-nums}.payroll-money-input>span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:11px;pointer-events:none}.payroll-label-title{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px}.payroll-label-title small{font-size:10px}.payroll-panel .payroll-adjustment textarea{min-height:74px;resize:vertical}.payroll-totals{display:grid;gap:12px;margin:0;padding-bottom:16px;border-bottom:1px solid var(--border);font-size:13px}.payroll-totals>div{display:flex;justify-content:space-between;gap:12px}.payroll-totals dt{color:var(--text-muted)}.payroll-totals dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.payroll-panel .payroll-confirm .operation-check{align-items:flex-start;font-size:12px;line-height:1.6;font-weight:400;color:var(--text)}.payroll-confirm .operation-check input{margin-top:2px}.payroll-panel .payroll-confirm>button{width:100%;min-height:42px;margin:0;justify-content:center;text-align:center}.payroll-panel .payroll-confirm>p{margin:0}.payroll-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:20px 24px 0;padding:14px 16px;border-radius:6px;background:#fff8e6;color:#805300;font-size:12px}.payroll-notice>div{flex:1 1 240px}.payroll-notice p{margin:6px 0 0;font-size:12px;line-height:1.6}.payroll-notice a{width:auto;flex-shrink:0;text-decoration:none}.payroll-records-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:8px}.payroll-panel .payroll-records-heading h2{margin:0;font-size:15px}.payroll-records-heading h2>span{color:var(--text-muted);margin-left:6px;font-size:12px;font-weight:400}.payroll-records-heading .payroll-muted{margin:0}.payroll-ledger{display:grid;grid-template-columns:minmax(90px,1fr) auto minmax(110px,.6fr) minmax(190px,auto);align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--border)}.payroll-ledger:first-child{border-top:0}.payroll-ledger-person{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere;font-size:13px}.payroll-ledger-person small{font-size:11px;color:var(--text-muted)}.payroll-ledger-total{text-align:right;font-size:15px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.payroll-ledger-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.payroll-panel .payroll-ledger-actions button{width:auto;min-height:36px;font-size:12px;margin:0}.payroll-dialog-total{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px;margin-bottom:16px;border-radius:8px;background:#f3f7ff}.payroll-dialog-total>span:first-child{flex-basis:100%;color:var(--text-muted);font-size:12px;overflow-wrap:anywhere}.payroll-dialog-total>strong{font-size:26px;color:var(--blue-700);overflow-wrap:anywhere}.payroll-record-note{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.payroll-audit-list{list-style:none;padding:0}.payroll-audit-list li{display:grid;gap:6px;border-left:2px solid var(--border);padding:0 0 18px 14px;font-size:13px}.payroll-audit-list small{color:var(--text-muted)}.payroll-audit-list p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:1100px){.payroll-review-grid{grid-template-columns:minmax(0,1fr)}.payroll-confirm{border-left:0;border-top:1px solid var(--border)}.payroll-ledger{grid-template-columns:minmax(90px,1fr) auto;gap:10px}.payroll-ledger>.payroll-status{justify-self:end}.payroll-ledger-total{text-align:left}}@media(max-width:600px){.settlement-page .compact-page-heading{flex-wrap:wrap}.settlement-page .compact-page-heading>div:first-child{flex-basis:100%}.settlement-page .compact-heading-actions{margin-left:auto}.settlement-help a{min-height:44px}.settlement-month{gap:6px}.settlement-month input{min-height:44px;font-size:16px;max-width:180px}.payroll-toolbar.operation-form{padding:16px;gap:12px 8px}.payroll-toolbar label{flex-basis:100%;max-width:none}.payroll-panel .payroll-toolbar button{min-height:44px}.payroll-attendance-link{display:flex;align-items:center;min-height:44px;margin:0 0 0 auto}.payroll-hero{display:grid;gap:18px;padding:20px 16px}.payroll-panel .payroll-person h2{font-size:20px}.payroll-total{text-align:left}.payroll-total>strong{font-size:32px}.payroll-calculation,.payroll-confirm{padding:20px 16px}.payroll-adjustment{grid-template-columns:minmax(0,1fr)}.payroll-panel .payroll-adjustment input,.payroll-panel .payroll-adjustment textarea{font-size:16px}.payroll-panel .payroll-adjustment label{gap:8px}.payroll-notice{margin:16px 16px 0}.payroll-panel .payroll-confirm>button,.payroll-panel .payroll-ledger-actions button{min-height:44px}.payroll-ledger{grid-template-columns:minmax(0,1fr) auto}.payroll-ledger-total{grid-column:1 / -1}.payroll-ledger-actions{grid-column:1 / -1;justify-content:flex-end}}.payroll-basis{margin:14px 0;padding:12px 14px;border:1px solid #f0c36d;border-radius:8px;background:#fff8e6}.payroll-basis legend{padding:0 6px;font-size:12px;font-weight:700;color:#805300}.payroll-basis label{display:flex;align-items:flex-start;gap:10px;padding:8px 0;cursor:pointer}.payroll-basis label+label{border-top:1px solid #f3dca6}.payroll-basis input[type=radio]{flex:none;width:18px;height:18px;margin:2px 0 0}.payroll-basis label>span{display:grid;gap:2px;min-width:0}.payroll-basis strong{font-size:13px}.payroll-basis small{font-size:12px;line-height:1.5;color:var(--text-muted)}.payroll-inline-notice{margin:10px 0;padding:10px 12px;border-radius:6px;background:#fff8e6;color:#805300;font-size:12px;line-height:1.6}.student-detail-tabs{margin:18px 0}.diary-day summary:focus-visible{outline:3px solid var(--blue-700);outline-offset:-3px}.diary-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.diary-heading .btn-primary{width:auto;flex-shrink:0;min-height:44px}.diary-heading p{margin:0 0 16px}.diary-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding-bottom:18px}.diary-toolbar label{display:grid;gap:6px;font-weight:600}.diary-toolbar input{width:168px;max-width:100%;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:8px;font:inherit}.diary-toolbar button{width:auto;min-height:44px}.diary-day{border-top:1px solid var(--border)}.diary-day summary{display:flex;justify-content:space-between;gap:12px;padding:18px 0;cursor:pointer}.diary-day summary strong:before{content:"▸ ";color:var(--blue-700)}.diary-day[open] summary strong:before{content:"▾ "}.diary-entry{padding:18px;margin-bottom:16px;background:var(--bg);border:1px solid var(--border);border-radius:12px;min-width:0}.diary-entry h3{margin:0 0 6px;font-size:16px;overflow-wrap:anywhere}.diary-meta{color:var(--text-muted);font-size:13px}.diary-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}.diary-next{border-top:1px solid var(--border);padding-top:14px;margin-top:18px}.diary-next p{margin-bottom:0}.lesson-diary-paper{background:#fff;color:#1b1f24;padding:28px 30px;font-size:13px;line-height:1.6;border:1px solid #e3e6ea;border-radius:6px}.ldp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:2.5px solid #0b2e6f;margin-bottom:14px}.ldp-academy{margin:0 0 2px;font-size:12px;font-weight:700;color:#0b2e6f;letter-spacing:.02em}.ldp-head h1{margin:0;font-size:24px;font-weight:800;letter-spacing:.08em}.ldp-head-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ldp-head-meta small{font-size:10.5px;color:#667;white-space:nowrap}.ldp-stamp{font-size:10.5px;font-weight:700;color:#8a1c1c;border:1.5px solid #8a1c1c;border-radius:4px;padding:3px 8px;white-space:nowrap}.ldp-info,.ldp-body{width:100%;border-collapse:collapse;table-layout:fixed}.ldp-info{margin-bottom:18px;font-size:12px}.ldp-info th,.ldp-info td{border:1px solid #c9ced6;padding:6px 9px;text-align:left;vertical-align:middle}.ldp-info th{width:16%;background:#f1f4f9;color:#334;font-weight:700}.ldp-info td{width:34%;overflow-wrap:anywhere}.ldp-info small{color:#667}@media screen and (max-width:600px){.lesson-diary-paper .ldp-info tr{display:grid;grid-template-columns:84px minmax(0,1fr)}.lesson-diary-paper .ldp-info th,.lesson-diary-paper .ldp-info td{display:block;width:auto;min-width:0}.lesson-diary-paper .ldp-info small{display:block}.lesson-diary-paper .ldp-topic{flex-basis:100%;order:3}.lesson-diary-paper .ldp-author{white-space:normal;overflow-wrap:anywhere}.lesson-diary-paper .ldp-head{align-items:flex-start;flex-wrap:wrap}}.ldp-entry{margin-bottom:14px;border:1px solid #c9ced6;border-radius:4px;overflow:hidden}.ldp-entry-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:7px 10px;background:#f1f4f9;border-bottom:1px solid #c9ced6;font-size:12px}.ldp-no{font-weight:800;color:#0b2e6f}.ldp-date{font-weight:700;white-space:nowrap}.ldp-topic{flex:1;min-width:0;font-size:13px;overflow-wrap:anywhere}.ldp-author{color:#556;white-space:nowrap}.ldp-body th,.ldp-body td{padding:8px 10px;text-align:left;vertical-align:top;border-top:1px solid #e1e4ea}.ldp-body tr:first-child th,.ldp-body tr:first-child td{border-top:0}.ldp-body th{width:92px;font-size:11.5px;color:#445;font-weight:700;border-right:1px solid #e1e4ea;background:#fafbfd}.ldp-body td{font-size:12.5px}.ldp-body .diary-prose{line-height:1.7}.ldp-empty{color:#99a}.ldp-sign{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.ldp-sign>div{width:96px;border:1px solid #c9ced6;border-radius:4px;text-align:center;font-size:11px;color:#445}.ldp-sign span{display:block;padding:4px 2px;background:#f1f4f9;border-bottom:1px solid #c9ced6;font-weight:700;line-height:1.3}.ldp-sign i{display:block;aspect-ratio:1/1}.ldp-note{margin:12px 0 0;font-size:10.5px;color:#778}.lesson-diary-print-document{display:none}.diary-print-button{margin-bottom:16px}@media(max-width:600px){.diary-heading{flex-direction:column;gap:0;margin-bottom:16px}.diary-heading .btn-primary{width:100%}.diary-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.diary-toolbar input{box-sizing:border-box;width:100%;min-width:0}.diary-toolbar button{width:100%;font-size:12px;padding:8px}.diary-entry{padding:14px}.lesson-diary-paper{padding:14px 12px}.ldp-info th{width:24%}.ldp-info td{width:26%}.ldp-body th{width:70px}.ldp-sign>div{width:84px}}@media print{@page lesson-diary{size:A4;margin:14mm 14mm 16mm;@bottom-center{content:counter(page) " / " counter(pages);font-size:8.5pt;color:#777}}body.lesson-diary-printing{background:#fff!important;overflow:visible!important}body.lesson-diary-printing>:not(.lesson-diary-print-document){display:none!important}body.lesson-diary-printing .lesson-diary-print-document{display:block!important;page:lesson-diary}.lesson-diary-print-document .lesson-diary-paper{padding:0;border:0;border-radius:0;font-size:10.5pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.lesson-diary-print-document .ldp-head,.lesson-diary-print-document .ldp-entry-head{break-after:avoid}.lesson-diary-print-document .ldp-entry{break-inside:avoid-page}.lesson-diary-print-document .ldp-info,.lesson-diary-print-document .ldp-sign{break-inside:avoid}.lesson-diary-print-document .ldp-sign>div{width:26mm}.lesson-diary-print-document .diary-prose{orphans:3;widows:3}}@media(min-width:601px){.academy-workspace:not(.student-app) .diary-heading .btn-primary{min-height:38px;padding:8px 16px;font-size:13px;border-radius:7px}.academy-workspace:not(.student-app) .diary-heading p{font-size:12.5px}.academy-workspace:not(.student-app) .diary-toolbar{gap:8px;padding-bottom:14px}.academy-workspace:not(.student-app) .diary-toolbar label{gap:4px;font-size:12.5px;color:var(--text-muted)}.academy-workspace:not(.student-app) .diary-toolbar input{min-height:38px;padding:7px 9px;border-radius:7px;font-size:13px;color:var(--text)}.academy-workspace:not(.student-app) .diary-toolbar button,.academy-workspace:not(.student-app) .diary-toolbar a{min-height:38px;padding:7px 12px;margin-top:0;font-size:13px;border-radius:7px}.academy-workspace:not(.student-app) .diary-day summary{padding:14px 0;font-size:14px}.academy-workspace:not(.student-app) .diary-entry{padding:16px;font-size:14px}.academy-workspace:not(.student-app) .diary-entry h3{font-size:15px}.academy-workspace:not(.student-app) .diary-entry button{min-height:34px;padding:6px 12px;margin-top:0;font-size:12.5px;border-radius:7px}}.sd-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}.sd-chip{font-size:12px;font-weight:600;color:var(--blue-900);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:999px;padding:3px 10px}.ln-browser{display:grid;gap:12px;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.ln-view-tabs button span{min-width:20px;padding:0 6px;border-radius:999px;background:var(--blue-50);color:var(--blue-900);font-size:11.5px}.ln-hub-tabs{margin-bottom:16px}.ln-summary{display:flex;flex-wrap:wrap;gap:6px}.ln-summary span{padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12.5px;font-weight:700;color:var(--text)}.ln-day{display:grid;gap:8px;min-width:0}.ln-day h3{display:flex;align-items:baseline;gap:8px;margin:6px 2px 0;font-size:15px;color:var(--text)}.ln-day h3 small{font-size:12px;font-weight:600;color:var(--text-muted)}.ln-card{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);min-width:0}.ln-songs,.ln-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ln-song{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid #f5d9a8;background:#fff7e6;color:#7a4b00;font-size:13px;font-weight:800}.ln-song.is-match{border-color:#e6a23c;box-shadow:0 0 0 2px #fde7c2}.ln-song button{margin:0;padding:0 2px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;width:auto;min-height:0}.ln-new{padding:1px 7px;border-radius:6px;background:#ffe9e6;color:#bf2600;font-size:11px;font-weight:800}.ln-section h4{margin:0 0 6px;font-size:12.5px;color:var(--text-muted)}.ln-points{margin:0;padding:0;list-style:none;display:grid;gap:6px}.ln-points li{display:flex;gap:8px;font-size:14px;line-height:1.55}.ln-points li:before{content:"✓";color:var(--blue-700);font-weight:900;flex:none}.ln-points b{color:var(--blue-900)}.ln-comment{margin:0;font-size:14px;line-height:1.6;white-space:pre-wrap}.ln-homework{padding:10px 12px;border-radius:10px;background:var(--blue-50)}.ln-homework b,.ln-private b{font-size:13px;color:var(--blue-900)}.ln-homework p,.ln-private p{margin:4px 0 0;font-size:14px;line-height:1.55;white-space:pre-wrap}.ln-private{padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:#fafbfc}.ln-private b{color:var(--text-muted)}.ln-legacy{background:#fafbfc}.ln-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.ln-actions{display:flex;gap:6px}.ln-actions .btn-small{width:auto}.ln-empty{margin:0;padding:18px;text-align:center;color:var(--text-muted)}.ln-more,.ln-back{justify-self:center;min-height:40px;padding:0 16px;margin:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--blue-900);font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;width:auto}.ln-back{justify-self:start}.ln-song-title{display:flex;align-items:baseline;gap:8px;margin:0;font-size:16px}.ln-song-title small{font-size:12.5px;color:var(--text-muted);font-weight:600}.ln-song-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ln-song-list button{width:100%;margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title meta" "artist meta";align-items:center;gap:2px 10px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.ln-song-list strong{grid-area:title;font-size:14.5px}.ln-song-list small{grid-area:artist;font-size:12.5px;color:var(--text-muted)}.ln-song-list span{grid-area:meta;font-size:12.5px;color:var(--text-muted);white-space:nowrap}.ln-hint{margin:8px 0 0;font-size:13px;color:var(--text-muted);text-align:center}.ln-hint a{color:var(--blue-700);font-weight:700;text-decoration:none}.ln-page{padding:14px}.ln-editor{width:min(560px,96vw)}.ln-form .ln-block{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0}.ln-block-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px}.ln-block-head strong{font-size:14px}.ln-block-head small{font-size:12px;color:var(--text-muted);font-weight:500}.ln-link{margin:0;padding:0;border:0;background:none;color:var(--blue-700);font:inherit;font-size:13px;font-weight:800;cursor:pointer;width:auto;min-height:32px;justify-self:start}.ln-row{display:flex;gap:6px;min-width:0}.ln-row input{flex:1 1 0;min-width:0}.ln-row .btn-secondary{width:auto;flex:none}.ln-tag{margin:0;min-height:36px;padding:0 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;width:auto}.ln-tag.is-on{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.ln-tag.is-add{color:var(--blue-700);border-style:dashed}.ln-tag-input input{width:150px;min-height:36px;border-radius:999px;padding:0 12px}.ln-point{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.ln-point-tag{padding:4px 9px;border-radius:8px;background:var(--blue-50);color:var(--blue-900);font-size:12.5px;font-weight:800;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.ln-remove{margin:0;width:36px;min-height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-muted);cursor:pointer}.ln-private-field textarea{background:#fafbfc;border-style:dashed!important}@media(max-width:560px){.ln-card{padding:12px 14px}.ln-form input,.ln-form textarea,.ln-form select{font-size:16px}.ln-point{grid-template-columns:minmax(0,1fr) auto}.ln-point-tag{grid-column:1 / -1;justify-self:start;max-width:none}}.operation-dialog.managed-student-dialog,.academy-workspace .operation-dialog.managed-student-dialog{width:min(680px,calc(100vw - 24px));max-height:92dvh;padding:0;overflow:hidden;box-shadow:0 24px 80px #091e4230}.operation-dialog.managed-student-dialog .modal-head{min-height:72px;padding:16px 24px 16px 28px}.operation-dialog.managed-student-dialog .modal-title{font-size:19px}.operation-dialog.managed-student-dialog .modal-body{padding:0;overflow:hidden;display:grid}.managed-student-form{display:grid;grid-template-rows:minmax(0,1fr) auto;max-height:calc(92dvh - 74px);clear:both}.managed-student-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 28px;display:grid;gap:24px;scrollbar-gutter:stable}.managed-student-body .managed-student-lead{margin:0;font-size:13px;line-height:1.7;color:var(--text-muted)}.managed-student-body p,.managed-field small{word-break:keep-all;overflow-wrap:anywhere}.managed-section{display:grid;gap:18px}.managed-section+.managed-section{padding-top:24px;border-top:1px solid var(--border)}.managed-section>h3{margin:0;color:var(--blue-900);font-size:14px;font-weight:750}.managed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}.managed-span{grid-column:1 / -1}.managed-field{align-content:start}.managed-field{display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0;font-size:13px;font-weight:600;color:var(--text)}.managed-field legend{padding:0;margin-bottom:8px;font-size:13px;font-weight:600}.managed-field em{font-style:normal;font-size:11px;font-weight:800;color:#b42318;margin-left:4px}.managed-field input,.managed-field select,.managed-field textarea{width:100%;min-width:0;min-height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-weight:400;font-size:14px}.managed-field textarea{resize:vertical;min-height:72px}.managed-field small{font-size:12px;font-weight:400;color:var(--text-muted);line-height:1.6}.managed-field input:focus-visible,.managed-field select:focus-visible,.managed-field textarea:focus-visible,.managed-student-form button:focus-visible,.managed-extras>summary:focus-visible{outline:3px solid #a8c8fa;outline-offset:2px}.managed-student-form button:disabled{opacity:.5;cursor:not-allowed}.managed-count{justify-self:end}.managed-segment,.managed-chips{display:flex;flex-wrap:wrap;gap:8px}.managed-segment button,.managed-chips button{width:auto;min-height:44px;margin:0;padding:9px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer}.managed-segment button[aria-pressed=true],.managed-chips button[aria-pressed=true]{background:var(--blue-50);border-color:var(--blue-700);color:var(--blue-900);box-shadow:inset 0 0 0 1px var(--blue-700)}.managed-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.managed-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;border-top:1px solid var(--border);background:var(--surface)}.managed-actions button{width:auto;min-width:104px;min-height:44px;margin:0}.managed-extras{min-width:0;border:1px solid var(--border);border-radius:12px;background:#f8f9fc}.managed-extras>summary{display:flex;align-items:center;gap:10px;padding:16px 18px;cursor:pointer;list-style:none;font-size:13px;font-weight:700}.managed-extras>summary::-webkit-details-marker{display:none}.managed-extras>summary small{font-size:12px;font-weight:400;color:var(--text-muted)}.managed-chevron{margin-left:auto;font-size:20px;line-height:1;color:var(--text-muted)}.managed-extras[open] .managed-chevron{transform:rotate(180deg)}.managed-extras>.managed-grid{padding:4px 18px 20px}.managed-student-body .managed-student-footnote{margin:0;font-size:12px;line-height:1.7;color:var(--text-muted)}.managed-note{margin:0;font-size:12.5px;color:var(--text-muted)}.managed-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#fff4e5;color:#8a5a00;font-size:11.5px;font-weight:800;white-space:nowrap}.managed-badge.is-linked{background:#e8f5ee;color:#1f7a4d}.student-profile-card{display:grid;gap:10px}.student-profile-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.student-profile-head .card-title{margin:0}.student-profile-head .btn-small{margin-left:auto;width:auto}.student-profile-rows{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px}.student-profile-rows div{display:grid;gap:2px;min-width:0}.student-profile-rows dt{font-size:12px;color:var(--text-muted)}.student-profile-rows dd{margin:0;font-size:14px;overflow-wrap:anywhere;white-space:pre-line}.student-claim{display:grid;gap:8px;padding:12px;border-radius:10px;background:var(--blue-50);border:1px solid #d6e4ff}.student-claim p{margin:0;font-size:12.5px;line-height:1.55;color:var(--text-muted)}.student-claim>.btn-primary{justify-self:start;width:auto}.student-claim-result{display:grid;gap:8px}.student-claim-result input{width:100%;min-height:40px;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13px}.student-claim-actions{display:flex;flex-wrap:wrap;gap:6px}.student-claim-actions button{width:auto;margin:0}.students-add-button{width:auto}@media(max-width:560px){.operation-dialog.managed-student-dialog .modal-head{padding:12px 16px 12px 20px}.operation-dialog.managed-student-dialog .modal-title{font-size:18px}.managed-student-body{padding:20px;gap:24px;scrollbar-gutter:auto}.managed-grid{grid-template-columns:minmax(0,1fr)}.managed-actions{padding:14px 20px}.managed-actions button{flex:1}.managed-field input,.managed-field select,.managed-field textarea{font-size:16px}.managed-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.managed-segment button{padding-inline:12px}}.students-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}.students-actions>.btn-primary,.students-actions>.btn-secondary{width:auto;margin:0;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;text-decoration:none}.managed-consent{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 12px;border-radius:10px;background:#fff8e6;border:1px solid #f5d48a;font-size:13px;line-height:1.55;cursor:pointer}.managed-consent input{width:18px;height:18px;min-height:18px;flex:none;margin:2px 0 0;accent-color:var(--blue-700)}.managed-consent small{display:block;color:var(--text-muted);font-size:12px;margin-top:2px}.pn-summary{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.pn-summary>div{display:grid;gap:2px}.pn-summary span{font-size:12.5px;color:var(--text-muted)}.pn-summary strong{font-size:20px;color:var(--blue-900)}.pn-summary .student-primary{margin-left:auto}.pn-form{display:grid;gap:12px}.pn-form h2{margin:0;font-size:17px}.pn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pn-field{display:grid;gap:6px;min-width:0;margin:0;padding:0;border:0;font-size:13px;font-weight:700}.pn-field legend{padding:0;margin-bottom:6px}.pn-field input,.pn-field textarea{width:100%;min-width:0;box-sizing:border-box;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:400;font-size:15px}.pn-field textarea{resize:vertical}.pn-chips,.pn-conditions{display:flex;flex-wrap:wrap;gap:6px}.pn-chips button,.pn-conditions button{width:auto;min-height:34px;margin:0;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;font-weight:700;cursor:pointer}.pn-conditions button{font-size:20px;padding:2px 10px}.pn-chips button[aria-pressed=true],.pn-conditions button[aria-pressed=true]{border-color:var(--blue-700);background:var(--blue-50);color:var(--blue-900);box-shadow:0 0 0 1px var(--blue-700) inset}.pn-share{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;background:#f6f8fc;cursor:pointer}.pn-share input{width:18px;height:18px;min-height:18px;margin:2px 0 0;flex:none;accent-color:var(--blue-700)}.pn-share span{display:grid;gap:2px}.pn-share small{font-size:12px;color:var(--text-muted)}.pn-actions{display:flex;justify-content:flex-end;gap:8px}.pn-list,.pn-staff-list{display:grid;gap:10px}.pn-card{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.pn-card header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.pn-card h3{margin:0;font-size:15px}.pn-content{margin:0;font-size:14px;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}.pn-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#eef1f6;color:var(--text-muted);font-size:11.5px;font-weight:800}.pn-pill.is-shared{background:#e8f5ee;color:#1f7a4d}.pn-reply{padding:8px 10px;border-left:3px solid var(--blue-700);border-radius:6px;background:var(--blue-50)}.pn-reply span{font-size:12px;font-weight:800;color:var(--blue-900)}.pn-reply p{margin:4px 0 0;font-size:13.5px;line-height:1.55;white-space:pre-line}.pn-card-actions{display:flex;justify-content:flex-end;gap:6px}.pn-card-actions .btn-small{width:auto}.pn-danger{color:#b42318}.pn-staff{display:grid;gap:10px}.pn-staff-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.pn-staff-head .card-title{margin:0}.pn-note{margin:0;font-size:12.5px;color:var(--text-muted)}.pn-reply-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end}.pn-reply-form textarea{width:100%;box-sizing:border-box;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13.5px;resize:vertical}.pn-reply-form .btn-small{width:auto}@media(max-width:560px){.pn-summary .student-primary{margin-left:0;width:100%}.pn-reply-form{grid-template-columns:minmax(0,1fr)}}.student-import .import-tools{display:flex;gap:16px;align-items:center;justify-content:space-between}.student-import .import-tools p,.student-import .import-status{margin:0;font-size:14px;line-height:1.6}.student-import .import-tools .btn-secondary{width:auto;flex:none}.student-import .import-status:empty{display:none}.student-import .import-preview{padding:0;margin:0;list-style:none}.student-import .import-preview li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.student-import .import-preview span{display:block;font-size:13px;color:var(--text-muted)}.student-import .import-preview small{color:var(--text-muted)}.student-import .import-preview .import-warning{color:#8c4607}@media(max-width:560px){.student-import .import-tools,.student-import .import-preview li{flex-direction:column;align-items:start;gap:6px}}.teacher-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:#fff4db;color:#805000;font-size:11.5px;font-weight:800}.teacher-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 24px}.teacher-hero h1{margin:0}.teacher-hero-meta{color:var(--text-muted);font-size:13px;margin-top:4px}.teacher-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 0}.teacher-stat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.teacher-stat span{display:block;font-size:12px;color:var(--text-muted)}.teacher-stat strong{display:block;margin-top:3px;font-size:19px;color:var(--blue-900);font-variant-numeric:tabular-nums}.teacher-stat strong.warn{color:#b42318}.teacher-stat small{display:block;margin-top:2px;font-size:11.5px;color:var(--text-muted)}.teacher-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.teacher-month-nav{display:flex;align-items:center;gap:8px;font-weight:700;font-variant-numeric:tabular-nums}.teacher-month-nav button{min-width:36px}.teacher-lesson-row{display:grid;grid-template-columns:minmax(150px,auto) 1fr auto;gap:10px 14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.teacher-lesson-row:last-child{border-bottom:0}.teacher-lesson-row .when{font-weight:700;font-variant-numeric:tabular-nums}.teacher-lesson-row .who{min-width:0}.teacher-lesson-row .who a{font-weight:700;color:var(--blue-700)}.teacher-lesson-row .who p{margin:3px 0 0;font-size:12.5px;color:var(--text-muted);overflow-wrap:anywhere}.teacher-lesson-row .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.teacher-note{color:var(--text-muted);font-size:13px;line-height:1.6;margin:8px 0 0}.teacher-search{min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font:inherit;width:240px;max-width:100%}.teacher-student-row{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(110px,1fr) minmax(110px,1fr) auto;gap:8px 14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.teacher-student-row:last-child{border-bottom:0}.teacher-student-row .name a{font-weight:700;color:var(--blue-700)}.teacher-student-row .name p,.teacher-student-row .meta p{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.teacher-student-row .meta{font-size:13px;font-variant-numeric:tabular-nums}.teacher-student-row select{padding:6px 8px;border-radius:6px;border:1px solid var(--border);font:inherit;max-width:180px}.teacher-signals{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.teacher-week-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.teacher-week{border-collapse:separate;border-spacing:0;width:100%;min-width:720px;table-layout:fixed}.teacher-week th,.teacher-week td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:0;vertical-align:top;font-size:12px}.teacher-week tr>:last-child{border-right:0}.teacher-week tbody tr:last-child>*{border-bottom:0}.teacher-week thead th{background:var(--bg);padding:7px 4px;text-align:center;color:var(--text);font-weight:700}.teacher-week thead th small{display:block;color:var(--text-muted);font-weight:500}.teacher-week thead th.today{color:var(--blue-700)}.teacher-week tbody th{width:58px;background:var(--bg);color:var(--text-muted);font-weight:600;padding:6px 4px;text-align:center;font-variant-numeric:tabular-nums}.teacher-week td{height:38px;background:var(--surface)}.teacher-week td.closed{background:repeating-linear-gradient(135deg,var(--bg) 0 6px,var(--surface) 6px 12px)}.teacher-week td.outside{background:var(--bg)}.teacher-slot{display:block;margin:3px;padding:3px 6px;border-radius:5px;border-left:3px solid var(--blue-700);background:var(--blue-50);color:var(--blue-900);font-weight:600;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.teacher-slot small{font-weight:500;color:var(--text-muted);margin-left:4px}.teacher-slot.past{border-left-color:#36b37e;background:#e5f5ee;color:#064}.teacher-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--text-muted);margin-top:10px}.teacher-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-2px;border:1px solid var(--border)}.teacher-bars{display:flex;align-items:flex-end;gap:8px;height:170px;padding:22px 4px 0;border-bottom:1px solid var(--border)}.teacher-bars .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.teacher-bars .bar{width:min(24px,60%);background:var(--blue-700);border-radius:4px 4px 0 0;min-height:2px}.teacher-bars .val{font-size:12px;font-weight:700;margin-bottom:4px;font-variant-numeric:tabular-nums}.teacher-bars-labels{display:flex;gap:8px;padding:6px 4px 0}.teacher-bars-labels span{flex:1;text-align:center;font-size:11.5px;color:var(--text-muted)}.teacher-todo{display:grid;gap:12px}.teacher-todo-item{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.teacher-todo-item strong{font-size:13.5px}.teacher-todo-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.teacher-todo-chips a{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text);font-size:12.5px;text-decoration:none}.teacher-todo-chips a:hover{border-color:var(--blue-700);color:var(--blue-900)}.teacher-month-actions{display:flex;flex-wrap:wrap;gap:8px}.teacher-month-actions .btn-small{display:inline-flex;align-items:center;min-height:40px;text-decoration:none}.btn-secondary.teacher-navigation{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:40px;margin:0;padding:8px 12px;color:var(--blue-700);font-size:13px;text-decoration:none}.teacher-payroll-paid-label{display:none}.teacher-payroll-history button{white-space:nowrap}@media(max-width:600px){.btn-secondary.teacher-navigation,.teacher-payroll-history button,.teacher-month-actions .btn-small{min-height:44px}.table.teacher-payroll-history,.teacher-payroll-history tbody{display:block;width:100%;min-width:0}.teacher-payroll-history thead{display:none}.teacher-payroll-history tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 0;border-bottom:1px solid var(--border)}.table.teacher-payroll-history td{border:0;padding:0;min-width:0;align-self:center}.teacher-payroll-history td:nth-child(4){text-align:right;font-size:12px;color:var(--text-muted)}.teacher-payroll-paid-label{display:inline}}@media(max-width:760px){.teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-lesson-row{grid-template-columns:1fr;gap:4px}.teacher-lesson-row .acts{justify-content:flex-start}.teacher-student-row{grid-template-columns:1fr 1fr}.teacher-student-row .assign{grid-column:1 / -1}.teacher-search{width:100%}}.pay-event-included{border-color:var(--success)!important}.pay-event-excluded,.pay-event-canceled{border-color:var(--text-muted)!important}.pay-event-pending{border-color:#a56800!important}.pay-event-review{border-color:#6b42a8!important}.pay-event-unrecorded{border-color:var(--danger)!important}.pay-event-scheduled{border-color:var(--blue-700)!important}.pay-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.pay-dot-included{background:var(--success)}.pay-dot-excluded,.pay-dot-canceled{background:var(--text-muted)}.pay-dot-pending{background:#a56800}.pay-dot-review{background:#6b42a8}.pay-dot-unrecorded{background:var(--danger)}.pay-dot-scheduled{background:var(--blue-700)}.pay-state{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--bg);color:var(--text)}.pay-state-included{background:#e5f5ee;color:#064}.pay-state-pending{background:#fff4db;color:#805000}.pay-state-review{background:#f2ebff;color:#624097}.pay-state-unrecorded{background:#fff0eb;color:#a82d12}.pay-state-scheduled{background:var(--blue-50);color:var(--blue-900)}.pay-state-excluded,.pay-state-canceled{color:var(--text-muted)}.pay-day-flag{color:#a82d12;font-size:11px;font-weight:800}.pay-summary{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0}.pay-summary>span{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:12.5px;font-variant-numeric:tabular-nums}.pay-summary>span strong{font-size:13.5px}.pay-ready{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:10px 12px;border-radius:8px;font-size:13px}.pay-ready.ok{background:#e5f5ee;color:#064}.pay-ready.block{background:#fff4db;color:#805000}.pay-ready strong{font-size:15px;font-variant-numeric:tabular-nums}.pay-agenda-row{display:grid;grid-template-columns:auto 1fr auto;gap:6px 10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border);font-size:13px}.pay-agenda-row:last-child{border-bottom:0}.pay-agenda-row .when{font-weight:700;font-variant-numeric:tabular-nums}.pay-agenda-row .who a{font-weight:700;color:var(--blue-700)}.pay-agenda-row .who p{margin:3px 0 0;color:var(--text-muted);font-size:12px}.pay-agenda-row .amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.pay-agenda-row .amt a{display:inline-block;margin-top:4px;font-weight:600}@media(max-width:700px){.pay-agenda-row{grid-template-columns:1fr auto}.pay-agenda-row .when{grid-column:1 / -1}}.teacher-share-basis{grid-column:1 / -1;margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:10px}.teacher-share-basis legend{padding:0 6px;font-size:13px;font-weight:700}.teacher-share-basis label{display:flex;align-items:flex-start;gap:10px;padding:8px 0;cursor:pointer}.teacher-share-basis label+label{border-top:1px solid var(--border)}.teacher-share-basis input[type=radio]{flex:none;width:18px;height:18px;margin:2px 0 0}.teacher-share-basis label>span{display:grid;gap:2px;min-width:0}.teacher-share-basis strong{font-size:14px}.teacher-share-basis small{font-size:12.5px;line-height:1.5;color:var(--text-muted)}.teacher-share-basis:disabled label{cursor:default;opacity:.75}.teacher-task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teacher-task-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-task-grid[data-count="1"]{grid-template-columns:minmax(0,1fr)}.teacher-management-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.teacher-task-card{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.teacher-task-heading{display:flex;align-items:flex-start;gap:8px}.teacher-task-heading>svg{color:var(--blue-700);flex-shrink:0;margin-top:1px}.teacher-task-heading h3{flex:1;min-width:0;margin:0;font-size:13px;line-height:1.5;font-weight:650;overflow-wrap:anywhere}.teacher-task-count{flex-shrink:0;padding:2px 6px;border-radius:4px;background:var(--blue-50);color:var(--blue-700);font-size:11px;font-weight:650;line-height:1.5;white-space:nowrap}.teacher-task-person{margin:12px 0 15px}.teacher-task-person strong{display:block;font-size:14px;font-weight:650;overflow-wrap:anywhere}.teacher-task-person span{display:block;margin-top:4px;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.teacher-task-action{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:auto;min-height:44px;padding:10px 12px;border:1px solid #dce7ff;border-radius:6px;background:var(--blue-50);color:var(--blue-700);font:inherit;font-size:12px;font-weight:650;line-height:1.5;text-align:center;text-decoration:none;cursor:pointer}.teacher-task-action>svg{flex-shrink:0}.teacher-task-action:hover{background:#e6efff;border-color:#8babeb;color:var(--blue-900);text-decoration:none}.teacher-task-more{display:block;min-height:44px;margin:12px auto 0;padding:8px 16px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--blue-700);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.teacher-task-action:focus-visible,.teacher-task-more:focus-visible{outline:3px solid #80aaff;outline-offset:3px}.teacher-task-lessons{display:grid;grid-column:1/-1;gap:8px;max-height:340px;overflow-y:auto;margin-top:12px;padding:3px}.teacher-task-lesson{display:flex;align-items:center;gap:10px;width:100%;min-height:64px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);text-align:left;font:inherit;cursor:pointer}.teacher-task-lesson>span:first-child{flex:1;min-width:0}.teacher-task-lesson strong{display:block;font-size:14px;overflow-wrap:anywhere}.teacher-task-lesson small{display:block;margin-top:4px;font-size:12px;line-height:1.6;color:var(--text-muted);font-variant-numeric:tabular-nums}.teacher-task-lesson>svg{flex-shrink:0;color:var(--blue-700)}.teacher-task-lesson .attendance-status{flex-shrink:0;font-size:11px}.teacher-task-lesson:hover{background:var(--blue-50)}.teacher-task-lesson:focus-visible{outline:3px solid #80aaff;outline-offset:1px}@media(min-width:1101px){.teacher-task-grid[data-count="1"] .teacher-task-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:24px}.teacher-task-grid[data-count="1"] .teacher-task-person{margin:0}.teacher-task-grid[data-count="1"] .teacher-task-action{margin:0;min-width:160px}}@media(max-width:1100px){.teacher-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.teacher-task-grid[data-count]{grid-template-columns:minmax(0,1fr)}.teacher-management-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.student-home{max-width:1040px;margin:0 auto;font-size:16px}.student-home-intro{margin:22px 0 20px}.student-home-intro p{margin:0 0 10px;color:var(--text-muted);font-size:14px;font-weight:600}.student-home-intro h1{margin:0;font-size:26px;line-height:1.4;letter-spacing:-.7px;overflow-wrap:anywhere}.student-home-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:32px}.student-home-primary,.student-home-secondary{min-width:0}.student-home-summary{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:22px}.student-home h2{margin:0;font-size:18px;font-weight:750;line-height:1.4}.student-home-heading{display:flex;align-items:center;gap:12px}.student-home-tag,.student-home-count{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:3px 9px;background:var(--blue-50);color:var(--blue-700);font-size:13px;font-weight:700;white-space:nowrap}.student-home-time{display:flex;flex-wrap:wrap;gap:3px;margin:12px 0 4px;font-size:32px;font-weight:800;line-height:1.3;letter-spacing:-.9px;font-variant-numeric:tabular-nums}.student-home-date{margin:0;color:var(--text-muted);font-size:15px}.student-home-booking-details{margin:6px 0 0;color:var(--text-muted)}.student-home-booking-details summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;font-size:14px}.student-home-booking-details summary span{min-width:0;overflow-wrap:anywhere;flex:1}.student-home svg{flex-shrink:0;stroke-width:1.8}.student-home summary::-webkit-details-marker{display:none}.student-home-chevron{transition:transform .15s}.student-home details[open]>summary>.student-home-chevron{transform:rotate(180deg)}.student-home-booking-body{border-top:1px solid var(--border);padding:10px 0 0;font-size:14px;overflow-wrap:anywhere}.student-home-booking-body p{margin:0 0 8px}.student-home-booking-body a,.student-home-other-bookings{display:inline-flex;align-items:center;gap:4px;min-height:44px;font-size:13px;color:var(--blue-700);text-decoration:none}.student-home-pass{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}.student-home-balance-link{display:flex;gap:8px;min-height:44px;align-items:center;text-decoration:none}.student-home-balance-link>h2{flex:1}.student-home-balance-link>svg{color:var(--text-muted)}.student-home-balance{display:flex;align-items:baseline;gap:10px}.student-home-balance strong{font-size:28px;color:var(--blue-700);line-height:1.2;white-space:nowrap}.student-home-balance strong small{font-size:22px}.student-home-balance>span{color:var(--text-muted);font-size:13px;white-space:nowrap}.student-home-progress{display:block;width:100%;height:10px;margin:6px 0 0;border:0;border-radius:99px;overflow:hidden;background:#d9dfeb;accent-color:var(--blue-700)}.student-home-progress::-webkit-progress-bar{background:#d9dfeb;border-radius:99px}.student-home-progress::-webkit-progress-value{background:var(--blue-700);border-radius:99px}.student-home-progress::-moz-progress-bar{background:var(--blue-700);border-radius:99px}.student-home-pass-flags{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:10px;font-size:13px;color:var(--text-muted)}.student-home-warning{color:#9b5200}.student-main .student-home-book{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;margin:18px 0 0;border:1px solid var(--blue-700);border-radius:12px;background:var(--blue-700);color:#fff;text-decoration:none;font-size:18px;font-weight:700;text-align:center;padding:12px 16px}.student-home-book:hover{background:var(--blue-800)}.student-home-updates h2{margin:4px 0 16px}.student-home-update-row{display:flex;align-items:center;gap:12px;min-height:66px;padding:14px;margin:10px 0;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-decoration:none;cursor:pointer;list-style:none}.student-home-update-row:hover{border-color:#b5c9ed;background:var(--blue-50)}.student-home-update-row:focus-visible{outline:3px solid #80aaff;outline-offset:3px}.student-home-update-row>svg,.student-home-update-icon{color:var(--text-muted);display:flex}.student-home-update-label{flex:1;min-width:0;font-size:16px;font-weight:650;overflow-wrap:anywhere}.student-home-update-label small{display:block;color:#9b5200;font-size:12px;font-weight:500;margin-top:2px}.student-home-count{flex-shrink:0;font-size:12px}.student-home-count.is-warning{color:#945400;background:#fff1d9}.student-home-notice-list{padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--border);font-size:14px}.student-home-notice-list summary{padding:12px 0;cursor:pointer;overflow-wrap:anywhere}.student-home-notice-list p{margin:0 0 12px}.student-home-notice-list>a{display:inline-flex;align-items:center;min-height:44px;color:var(--blue-700)}.student-home-muted,.student-home-error{margin:12px 0 0;font-size:14px;color:var(--text-muted);overflow-wrap:anywhere}.student-home-error{color:var(--danger)}.student-home-push{display:flex;align-items:center;gap:12px;min-height:52px;width:100%;margin:24px 0 0;padding:10px 4px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);text-align:left}.student-home-push>span{flex:1}.student-home-push:hover{background:var(--blue-50)}.student-home-shell{--blue-700:#3654ce;--blue-800:#2c47b7;--blue-900:#304596;--blue-50:#eef2ff}.student-home-shell .layout-toolbar{max-width:1040px;margin-left:auto;margin-right:auto;align-items:center}.student-home-brand{display:flex;align-items:center;gap:6px;padding:0;min-height:44px;background:transparent;border:0;font-weight:800!important;font-size:19px!important;letter-spacing:-.7px;white-space:nowrap;color:var(--text)}.student-home-brand svg{color:var(--blue-700);flex-shrink:0}.student-home-brand{min-width:0}.student-home-brand span{overflow:hidden;text-overflow:ellipsis}.student-home-shell .layout-utilities{align-items:center}.student-home-shell .utility-button{min-height:40px}.student-home-shell .workspace-mobile-nav a{font-size:12px}.student-home-shell .workspace-mobile-nav svg{display:block;width:23px;height:23px}@media(max-width:1100px){.student-home-grid{grid-template-columns:minmax(0,1fr);gap:26px}.student-home,.student-home-shell .layout-toolbar{max-width:640px}}@media(max-width:600px){.student-home-shell.academy-workspace .content{padding:14px 16px calc(92px + env(safe-area-inset-bottom))!important}.student-home-intro{margin:22px 0 20px}.student-home-intro h1{font-size:23px}.student-home-summary{padding:18px;border-radius:16px}.student-home-time{font-size:30px}.student-home-push{margin-top:22px}.student-home-shell .layout-toolbar{flex-wrap:nowrap;gap:6px}.student-home-shell .layout-utilities{gap:6px}.student-home-shell .language-accordion>summary>span:first-child{display:none}}@media(max-width:360px){.student-home-brand{font-size:17px!important;gap:4px}.student-home-brand svg{width:20px}.student-home-shell.academy-workspace .content{padding-left:12px!important;padding-right:12px!important}.student-home-shell .layout-utilities{gap:4px}.student-home-shell .utility-button{padding:7px}.student-home-summary{padding:16px}.student-home-time{font-size:28px}.student-home-balance{gap:6px}.student-home-balance strong{font-size:25px}.student-home-update-row{gap:8px}}.student-app{background:var(--bg);color:var(--text)}.student-app *{box-sizing:border-box}.student-main{min-width:0;font-size:14px;line-height:1.6}.student-main button,.student-main input,.student-main select,.student-main textarea{font:inherit}.student-main a{color:inherit}.student-main button{cursor:pointer}.student-main button:disabled{cursor:not-allowed;opacity:.45}.student-main :focus-visible{outline:3px solid var(--blue-700);outline-offset:3px}.student-title{margin-bottom:22px}.student-title>p:first-child{color:var(--blue-900);font-size:12px;font-weight:750;letter-spacing:1px;margin:0 0 8px}.student-title h1{font-size:22px;line-height:1.35;font-weight:800;margin:0 0 4px;color:var(--text)}.student-title p{margin:0;color:var(--text-muted)}.student-hero{background:var(--blue-50);padding:20px;display:flex;gap:20px;align-items:center;justify-content:space-between;border-radius:10px;margin-bottom:16px;border:1px solid var(--blue-100)}.student-hero p{margin:0;color:var(--blue-900)}.student-hero p:first-child{font-size:11px;letter-spacing:1.2px;font-weight:750}.student-hero h2{margin:6px 0;font-size:18px;line-height:1.4}.student-card{min-width:0;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px}.student-card h2{margin:0 0 12px;font-size:14px;color:var(--text);font-weight:700}.student-card h2:not(:first-child){margin-top:28px}.student-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-booking-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}.student-row{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;padding:14px 0;border-bottom:1px solid var(--border)}.student-row:last-child{border-bottom:0}.student-row strong{display:block;overflow-wrap:anywhere}.student-row small{display:block;color:var(--text-muted);font-size:12px;margin-top:4px}.student-row:hover strong,.student-text-link:hover{color:var(--blue-700)}.student-app .student-primary,.student-app .student-secondary{display:inline-flex;justify-content:center;align-items:center;gap:10px;border-radius:8px;padding:10px 18px;min-height:44px;font-weight:650;text-decoration:none;line-height:1.4;border:1px solid transparent}.student-app .student-primary{background:var(--blue-700);color:#fff}.student-hero .student-primary{flex-shrink:0}.student-app .student-secondary{border-color:var(--border);background:var(--surface);color:var(--blue-900)}.student-text-link{font-size:14px;font-weight:650;display:inline-block;margin:8px 0;text-underline-offset:4px}.student-muted{color:var(--text-muted);font-size:13px}.student-empty{font-size:14px;color:var(--text-muted);padding:18px 0}.student-error,.student-success,.student-notice{padding:14px 18px;border-radius:10px;font-size:14px;overflow-wrap:anywhere}.student-error{background:#fff0f0;color:#a22232;border:1px solid #f1cbd1}.student-success{background:#ecf9f2;color:#166141;border:1px solid #c8e8d7}.student-notice{background:#fff6e2;color:#79540a;border:1px solid #f0dfb7}.student-group{border-bottom:1px solid var(--border)}.student-group:last-child{border:0}.student-group summary{cursor:pointer;padding:16px 0;font-weight:650;overflow-wrap:anywhere}.student-group summary>span,.student-group summary>small{float:right;font-size:12px;margin-left:12px;color:var(--text-muted);font-weight:500}.student-group[open] summary{color:var(--blue-700)}.student-prose{white-space:pre-wrap;overflow-wrap:anywhere}.student-booking{padding:16px;margin:10px 0;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.student-booking:last-child{margin-bottom:0}.student-booking p{margin:5px 0 9px;color:var(--text-muted);font-size:13px}.student-badge{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11px;background:var(--blue-50);color:var(--blue-900)}.student-room-list{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.student-room-list button{padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left;min-width:100px;flex:1}.student-room-list small{display:block;font-size:11px;color:var(--text-muted);margin-top:4px}.student-room-list button[aria-pressed=true],.student-times button[aria-pressed=true]{border-color:var(--blue-700);background:var(--blue-50);color:var(--blue-700);box-shadow:inset 0 0 0 1px var(--blue-700)}.student-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.student-form-grid label,.student-field,.student-file{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;margin:14px 0;min-width:0}.student-form-grid input,.student-form-grid select,.student-field textarea{width:100%;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px;color:var(--text)}.student-main .student-form-grid :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,.booking-date-trigger){height:44px;min-height:44px;font-weight:400}.student-main .operation-form :where(input,select,textarea){font-weight:400}@media(max-width:600px){.student-form-grid .booking-date-trigger{font-size:16px}}.student-file>input{width:100%;font-size:13px;padding:12px;border:1px dashed #bbcbe1;border-radius:8px}.student-file .file-picker{padding:12px;border:1px dashed #bbcbe1;border-radius:8px}.student-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.student-times button{min-height:42px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;font-size:13px;font-weight:600}.student-times button:disabled{background:#f2f4f7;color:#8190a5;opacity:.7;text-decoration:line-through}.student-booking-summary{background:var(--blue-50);padding:14px 16px;border-radius:8px;font-size:13px;margin:20px 0}.student-booking-layout form>.student-primary{margin-top:20px;width:100%}.student-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;font-size:12px}.student-actions button{border:1px solid var(--border);border-radius:7px;padding:7px 12px;background:var(--surface);color:var(--text);min-height:36px}.student-media{width:100%;max-height:360px;margin:14px 0;border-radius:10px}.student-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;margin:18px 0}.student-check input{margin-top:5px}.student-app progress{display:block;width:100%;accent-color:var(--blue-700)}.student-skip{position:absolute;top:-80px;left:20px;padding:12px;background:var(--surface);z-index:20}.student-skip:focus{top:12px}@media(max-width:1100px){.student-booking-layout{grid-template-columns:minmax(0,1fr);gap:0}}@media(max-width:900px){.student-title h1{font-size:19px}.student-title>p:last-child{font-size:13px}.student-columns{grid-template-columns:minmax(0,1fr);gap:0}.student-hero{flex-direction:column;align-items:flex-start;gap:16px}.student-hero p{font-size:13px}.student-group summary>small{float:none;display:block;margin:4px 0 0 16px}}.student-assessment-fields{border:1px solid var(--border);border-radius:8px;margin:20px 0;padding:14px;min-width:0}.student-assessment-fields legend{padding:0 5px;font-size:13px;font-weight:700}.student-assessment-fields p{margin:0}.student-assessment-fields .student-form-grid label{margin-bottom:0}.student-condition-latest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.student-condition-latest>div{background:var(--blue-50);border-radius:8px;padding:12px 14px}.student-condition-latest span{display:block;font-size:12px;color:var(--text-muted)}.student-condition-latest strong{display:block;margin-top:4px;font-size:16px;overflow-wrap:anywhere}.student-condition-chart svg{display:block;width:100%;height:180px}.student-condition-legend{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0;font-size:12px;color:var(--text-muted)}.student-condition-legend span{display:flex;align-items:center;gap:6px}.student-condition-legend i{display:inline-block;width:18px;border-top:3px solid #36b37e}.student-condition-legend i.focus{border-top:2px dashed var(--blue-700)}.student-condition-records table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}.student-condition-records th,.student-condition-records td{padding:10px 6px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.student-condition-records th:first-child{width:42%}.student-condition-records small{display:block;color:var(--text-muted);margin-top:4px}@media(max-width:480px){.student-assessment-fields .student-form-grid{grid-template-columns:1fr;gap:0}.student-condition-latest{gap:8px}.student-condition-latest>div{padding:10px}.student-condition-latest strong{font-size:14px}}.parent-child-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;padding:18px 20px;border:1px solid var(--blue-100);border-radius:12px;background:var(--blue-50)}.parent-child-bar>div{min-width:0;overflow-wrap:anywhere}.parent-child-bar .workspace-kicker{margin-bottom:5px;font-size:11px}.parent-child-bar strong{font-size:14px}.parent-child-bar label{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-muted);white-space:nowrap}.parent-child-bar select{width:180px;min-height:44px;max-width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}.parent-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0 18px}.parent-summary-grid section{padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.parent-summary-grid span{font-size:12px;color:var(--text-muted)}.parent-summary-grid strong{display:block;margin:8px 0;font-size:28px;color:var(--blue-900)}.parent-summary-grid small{color:var(--text-muted);font-size:11px;line-height:1.5}.parent-app .workspace-section-heading h2{margin:0}.parent-app .student-group summary>.parent-summary-text{float:none;margin-left:0;font-size:13px;color:inherit;font-weight:650;display:inline-block;vertical-align:top;max-width:calc(100% - 20px)}.parent-app .parent-booking summary>.parent-summary-text{max-width:calc(100% - 92px)}.parent-app .parent-booking summary>.student-badge{float:right;margin-left:8px}.parent-app .student-group summary::marker{color:var(--blue-700)}.parent-booking summary>span:first-child{min-width:0;flex:1}.parent-booking summary strong{font-size:13px}.student-group.parent-booking{padding:0 14px;margin:10px 0;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.parent-app .student-group summary small{display:block;font-size:12px;line-height:1.6;color:var(--text-muted);font-weight:400;margin-top:4px;overflow-wrap:anywhere}.parent-booking summary .student-badge{flex-shrink:0;align-self:flex-start;font-size:11px;white-space:nowrap}.parent-confirmed{background:#e8f5ed;color:#216342}.parent-details{margin:14px 0 0;font-size:13px}.parent-details>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.parent-details>div:last-child{border-bottom:0}.parent-details dt{color:var(--text-muted)}.parent-details dd{margin:0;overflow-wrap:anywhere}.parent-period{display:flex;gap:8px;margin:20px 0}.parent-period button{min-height:44px;padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}.parent-period button[aria-pressed=true]{background:var(--blue-700);border-color:var(--blue-700);color:#fff}.parent-empty h1{margin:0 0 16px;font-size:22px}.parent-empty p{line-height:1.8;color:var(--text-muted)}.parent-app .student-prose{overflow-wrap:anywhere}.parent-child-single{margin:0;display:flex;align-items:baseline;gap:10px;font-size:12px;color:var(--text-muted)}.parent-child-single strong{font-size:15px;color:var(--blue-900)}.academy-workspace .student-columns.parent-home-grid{align-items:start;row-gap:0}.parent-home-grid>.student-card{margin-bottom:16px}.parent-steps{margin:0 0 12px;padding-left:20px;font-size:13.5px;line-height:1.7}.parent-steps li+li{margin-top:6px}.parent-empty-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.parent-app .portal-contact{margin-top:0}.parent-report-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.parent-report-head h2{margin:0}.parent-report-nav{display:flex;gap:6px}.parent-report-nav button{width:36px;min-height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.parent-report-nav button:disabled{opacity:.4;cursor:default}.parent-report-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}.parent-report-stats>div{background:var(--blue-50);border-radius:10px;padding:10px;text-align:center}.parent-report-stats dt{font-size:12px;color:var(--text-muted)}.parent-report-stats dd{margin:4px 0 0;font-size:17px;font-weight:800;color:var(--blue-900)}.parent-report-notes h3{margin:6px 0 8px;font-size:13px}.parent-report-notes article{padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px}.parent-report-notes small{font-size:12px;color:var(--text-muted)}.parent-report-notes p{margin:6px 0 0;font-size:13.5px;line-height:1.65}.parent-report-notes-line{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:#fff7e6;color:#7a4b00;font-size:13.5px;font-weight:650;line-height:1.6}.parent-report-notes-line a{color:inherit;font-weight:800}.parent-report-foot{margin:8px 0 0;font-size:12px;color:var(--text-muted);line-height:1.6}.parent-alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin:0 0 12px;padding:12px 16px;border:1px solid var(--blue-100);border-radius:10px;background:var(--blue-50);color:var(--blue-900);font-size:14px;font-weight:650;overflow-wrap:anywhere}.parent-alert.is-warning{border-color:#f0dfb7;background:#fff6e2;color:#79540a}.parent-alert a{flex:none;color:inherit;font-weight:800;text-decoration:none}.parent-branch-tag{display:inline-block;margin-right:4px;padding:0 6px;border-radius:5px;background:var(--blue-50);color:var(--blue-900);font-size:11px;font-weight:800;vertical-align:1px}@media(max-width:600px){.parent-child-bar{padding:16px;gap:14px;flex-wrap:wrap}.parent-child-bar label{width:100%;justify-content:space-between}.parent-child-bar select{width:55%}.parent-summary-grid{gap:10px}.parent-summary-grid section{padding:14px}.parent-summary-grid small{display:block}.parent-details>div{grid-template-columns:76px minmax(0,1fr);gap:8px}.parent-app .sidebar-link{font-size:12px}.parent-child-single{width:100%;justify-content:space-between}.parent-empty-actions>*{flex:1 1 auto}.parent-report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-report-nav button{width:44px;min-height:44px}}.start-academy .academy-join-card{padding:28px}.start-perks{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.start-perks li{position:relative;padding:9px 10px 9px 30px;border-radius:10px;background:var(--blue-50, #eef4ff);color:var(--blue-800, #1e3a8a);font-size:13px;font-weight:700;line-height:1.4}.start-perks li:before{content:"✓";position:absolute;left:11px;top:9px;font-weight:800}.start-form{display:grid;gap:16px;margin-top:8px}.start-field{min-width:0;margin:0;padding:0;border:0}.start-field label,.start-field legend{display:flex;align-items:baseline;gap:6px;font-weight:700;font-size:14px;margin-bottom:8px;padding:0}.start-field em{font-style:normal;font-size:11px;font-weight:700;color:#b42318}.start-field small{font-size:11.5px;font-weight:500;color:var(--text-muted)}.start-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.start-chips{display:flex;flex-wrap:wrap;gap:8px}.start-academy .start-chip{width:auto;min-height:38px;margin:0;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface, white);color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer}.start-academy .start-chip[aria-pressed=true]{border-color:var(--blue-700, #1d4ed8);background:var(--blue-700, #1d4ed8);color:#fff}.start-academy .start-chip:focus-visible{outline:2px solid var(--blue-700, #1d4ed8);outline-offset:2px}.start-consent{display:grid;gap:10px;padding:14px;border-radius:12px;background:var(--surface-muted, #f7f8fa)}.start-academy .start-consent label{display:flex;align-items:flex-start;gap:10px;margin:0;font-weight:500;font-size:13.5px;line-height:1.5}.start-academy .start-consent input{width:18px;min-height:18px;height:18px;flex:none;margin:2px 0 0;padding:0}.start-consent a{color:var(--blue-700, #1d4ed8);font-weight:700}.start-academy .start-submit{width:100%;min-height:48px;font-size:15.5px;font-weight:800}.start-foot{margin:18px 0 0;font-size:13px;color:var(--text-muted);text-align:center}.start-foot a{color:var(--blue-700, #1d4ed8);font-weight:700}.start-steps{margin:8px 0 22px;padding:0;list-style:none;counter-reset:start-step;display:grid;gap:10px}.start-steps li{counter-increment:start-step;position:relative;display:grid;gap:2px;padding:12px 14px 12px 50px;border:1px solid var(--border);border-radius:12px}.start-steps li:before{content:counter(start-step);position:absolute;left:14px;top:12px;width:24px;height:24px;border-radius:50%;background:var(--blue-700, #1d4ed8);color:#fff;font-size:12.5px;font-weight:800;display:grid;place-items:center}.start-steps strong{font-size:14.5px}.start-steps span{font-size:13px;color:var(--text-muted);line-height:1.5}.no-academy{max-width:560px;margin:0 auto;padding:40px 20px 64px}.no-academy h1{font-size:24px;line-height:1.35;margin:0 0 8px}.no-academy>p{margin:0 0 20px;color:var(--text-muted);line-height:1.6}.no-academy-choices{display:grid;gap:12px}.no-academy-choice{display:grid;gap:6px;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--surface, white);text-decoration:none;color:var(--text)}.no-academy-choice strong{font-size:17px}.no-academy-choice span{font-size:13.5px;color:var(--text-muted);line-height:1.55}.no-academy-choice.primary{border-color:var(--blue-700, #1d4ed8);box-shadow:0 0 0 1px var(--blue-700, #1d4ed8) inset}.no-academy-choice.primary strong{color:var(--blue-700, #1d4ed8)}.no-academy-foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.no-academy-foot button{flex:1;width:auto;min-height:44px}.no-academy-account{font-size:13px;color:var(--text-muted);margin:16px 0 0}@media(max-width:600px){.start-academy .academy-join-card{padding:20px 16px}.start-row,.start-perks{grid-template-columns:minmax(0,1fr)}.no-academy{padding:28px 16px 48px}}.start-region-input{display:flex;gap:6px;min-width:0}.start-region-input input{flex:1 1 0;width:auto;min-width:0}.start-region-search{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:0 12px;min-height:44px;border:1px solid var(--blue-700, #1d4ed8);border-radius:10px;background:#fff;color:var(--blue-700, #1d4ed8);font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}.start-region-search[aria-expanded=true]{background:var(--blue-50, #f0f6ff)}.start-region-search:disabled{opacity:.55;cursor:not-allowed}.address-search{border:1px solid var(--border, #dfe1e6);border-radius:12px;padding:12px;background:#fbfcfe}.address-search-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.address-search-head strong{font-size:14px}.address-search-close{border:0;background:none;color:var(--text-muted);font-size:13px;padding:4px 6px;cursor:pointer}.address-search-hint{margin:0 0 8px;font-size:12px;color:var(--text-muted);line-height:1.5}.address-search-status{margin:6px 0;font-size:13px;color:var(--text-muted)}.address-search-status.is-error{color:#b42318}.address-search-frame{width:100%;overflow:hidden;border-radius:8px;background:#fff}.start-row-stack{grid-template-columns:minmax(0,1fr)}.start-address-detail{margin-top:8px;width:100%;box-sizing:border-box}.start-address-note{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin:6px 0 0;min-height:20px;font-size:12px;color:var(--text-muted)}.start-link{margin:0 0 0 auto;padding:0;border:0;background:none;color:var(--blue-700, #1d4ed8);font:inherit;font-size:12px;font-weight:700;cursor:pointer;width:auto;min-height:0}#start-address[readonly]{cursor:pointer;background:#fff}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs){display:flex;gap:10px;min-width:0;max-width:100%;overflow-x:auto;padding:2px;scrollbar-width:thin}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is(a,button){flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:46px;margin:0;padding:12px 20px;border:1px solid #dce4ef;border-radius:10px;background:var(--surface, #fff);color:#64748b;font:inherit;font-size:14px;font-weight:650;line-height:20px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.section-tabs-list>a{min-width:110px}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:where(a,button):hover{border-color:#94b4e4;color:var(--blue-900)}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is([aria-current=page],[aria-selected=true]){padding:11px 19px;border:2px solid var(--blue-700);background:#eef4ff;color:var(--blue-700);font-weight:750}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is(a,button):focus-visible{outline:2px solid var(--blue-700);outline-offset:-4px}@media(max-width:600px){:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs){gap:6px}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is(a,button){min-width:0;min-height:44px;padding:10px 12px;font-size:13px}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is([aria-current=page],[aria-selected=true]){padding:9px 11px}}@media(max-width:360px){:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs){gap:4px}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is(a,button){padding:10px 8px}:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is([aria-current=page],[aria-selected=true]){padding:9px 7px}}@media(prefers-reduced-motion:reduce){:is(.section-tabs-list,.page-tabs,.student-detail-tabs,.branch-tabs,.guide-tabs,.ln-view-tabs,.ln-hub-tabs,.ops-log-tabs)>:is(a,button){transition:none}}:root{--blue-900: #0747a6;--blue-800: #0a52bb;--blue-700: #0052cc;--blue-100: #deebff;--blue-50: #f0f6ff;--bg: #f4f5f7;--surface: #ffffff;--border: #dfe1e6;--text: #172b4d;--text-muted: #6b778c;--danger: #de350b;--success: #00875a;--form-control-height: 40px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea,optgroup{font-family:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:linear-gradient(180deg,var(--blue-900),var(--blue-800));color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.14)}.sidebar-logo-img{width:38px;height:38px;border-radius:9px;object-fit:cover;box-shadow:0 2px 8px #00000040}.sidebar-title{font-size:14px;font-weight:700}.sidebar-subtitle{font-size:12px;opacity:.75;margin-top:2px}.sidebar-divider{height:1px;margin:10px 12px;background:#ffffff2e}.page-tabs{margin:4px 0 18px}.page-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#fff4db;color:#805000;font-size:11.5px;font-weight:800}.sidebar-nav{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff59}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:#ffffffd9;text-decoration:none;font-size:14px;font-weight:500;transition:background .12s ease}.sidebar-link:hover{background:#ffffff1a}.sidebar-link-active{background:#ffffff2e;color:#fff;font-weight:700}.sidebar-link-icon{width:20px;text-align:center}.sidebar-footer{padding:14px 18px;border-top:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-user{min-width:0;flex:1}a.sidebar-user{display:block;text-decoration:none;color:inherit;padding:6px 8px;margin:-6px -8px;border-radius:6px;transition:background .12s ease}a.sidebar-user:hover,a.sidebar-user.sidebar-user-active{background:#ffffff1f}.sidebar-user-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:11px;opacity:.75}.sidebar-signout{background:#ffffff24;color:#fff;border:none;border-radius:6px;padding:7px 10px;font-size:12px;cursor:pointer}.sidebar-signout:hover{background:#ffffff3d}.content{flex:1;padding:28px 32px;max-width:1240px;margin-inline:auto;width:100%}.page-title{font-size:22px;font-weight:800;margin:0 0 4px}.page-subtitle{color:var(--text-muted);font-size:13px;margin:0 0 22px}.page-section-title{font-size:17px;font-weight:800;margin:26px 0 4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin-bottom:16px}.card-title{font-size:14px;font-weight:700;margin:0 0 12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}.stat-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--blue-700);border-radius:10px;padding:16px 18px}.stat-value{font-size:26px;font-weight:800;color:var(--blue-700)}.stat-label{font-size:12px;color:var(--text-muted);margin-top:2px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;padding:9px 10px;color:var(--text-muted);font-weight:600;border-bottom:2px solid var(--border);background:var(--blue-50)}.table td{padding:10px;border-bottom:1px solid var(--border)}.table tr:hover td{background:var(--blue-50)}.group-header{background:var(--blue-100);font-weight:700;color:var(--blue-900)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700}.badge-blue{background:var(--blue-100);color:var(--blue-900)}.badge-green{background:#e3fcef;color:var(--success)}.badge-gray{background:#ebecf0;color:var(--text-muted)}.badge-red{background:#ffebe6;color:var(--danger)}.badge-amber{background:#fff0d6;color:#8a4200}.bar-chart{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:110px 1fr 64px;align-items:center;gap:10px;font-size:13px}.bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.bar-track{background:var(--blue-50);border-radius:6px;height:18px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--blue-700),#2684ff);border-radius:6px}.bar-value{text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0;line-height:1.5;font-size:12px;color:var(--text-muted)}.form-field :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select){width:100%;min-width:0;height:var(--form-control-height);min-height:var(--form-control-height);padding:9px 10px;border:1px solid var(--border);border-radius:7px;font-size:13px;line-height:1.5}.modal-shell{--form-control-height: 44px}@media(max-width:600px){:root{--form-control-height: 44px}}.btn-inline{background:var(--blue-700);color:#fff;border:none;border-radius:7px;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer}.btn-inline:disabled{opacity:.5;cursor:default}.btn-small{background:var(--blue-50);color:var(--blue-900);border:1px solid var(--blue-100);border-radius:6px;padding:5px 10px;font-size:12px;font-weight:700;cursor:pointer}.invoice-filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) 140px 160px 150px auto auto;gap:10px;align-items:center;margin-bottom:12px}.invoice-filter-control{min-width:0;width:100%;height:38px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);font-size:13px}.invoice-filter-search{padding-left:12px}.invoice-filter-clear{height:38px;white-space:nowrap}.invoice-bulk-send-button{height:38px;padding:0 14px;white-space:nowrap;background:#fee500;color:#191919}.invoice-bulk-send-button:disabled{opacity:.45;cursor:default}.invoice-actions-header{width:270px}.invoice-actions-cell{min-width:270px}.invoice-actions-grid{display:grid;grid-template-columns:repeat(3,86px);gap:6px;align-items:center}.invoice-actions-grid-single{grid-template-columns:repeat(3,86px)}.invoice-actions-grid .btn-small{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:32px;padding:5px 8px;text-align:center;white-space:nowrap}.invoice-action-placeholder{display:block;min-height:32px}.invoice-action-kakao{background:#fee500;border-color:#fee500;color:#191919;font-weight:800}.invoice-action-success{background:#e6f4ea;border-color:#b7e1c5;color:#0a7a3d;font-weight:700}.invoice-action-danger{background:#d92d20;border-color:#d92d20;color:#fff;font-weight:800}.invoice-action-danger:hover{background:#b42318;border-color:#b42318}.vbar-chart{display:flex;align-items:flex-end;gap:14px;height:220px;padding:26px 6px 0;overflow-x:auto}.vbar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:58px;height:100%;position:relative;cursor:pointer}.vbar-value{font-size:11px;color:var(--text-muted);margin-bottom:3px;font-variant-numeric:tabular-nums}.vbar-bar{width:30px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#ff8b00,#ff5630);transition:height .3s ease,filter .15s;min-height:4px}.vbar-col:hover .vbar-bar{filter:brightness(1.12)}.vbar-bar-cool{background:linear-gradient(180deg,#4c9aff,#0052cc)}.vbar-bar-low{background:linear-gradient(180deg,#b3bac5,#8993a4)}.vbar-name{font-size:11.5px;font-weight:700;margin-top:5px;max-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vbar-crown{position:absolute;top:-24px;font-size:16px}.vbar-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--text);color:#fff;border-radius:8px;padding:7px 11px;font-size:12px;white-space:nowrap;z-index:20;box-shadow:0 6px 18px #091e424d}.vbar-king-banner{display:flex;align-items:center;gap:8px;background:linear-gradient(90deg,#fff7e6,#ffeccc);border:1px solid #ffd591;border-radius:10px;padding:9px 14px;font-size:13.5px;font-weight:700;margin-bottom:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#091e4280;display:flex;align-items:center;justify-content:center;z-index:100}.modal-card{width:min(560px,92vw);max-height:84vh;overflow-y:auto;background:var(--surface);border-radius:14px;padding:22px 24px;box-shadow:0 24px 60px #091e4259}.reservation-day-modal{width:min(920px,96vw);max-height:90vh}.reservation-day-list{max-height:min(62vh,640px);overflow-y:auto;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:4px}.reservation-modal-row{display:grid;grid-template-columns:10px 122px minmax(180px,1fr) auto auto auto;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:8px 0;font-size:13px}.reservation-modal-row:last-child{border-bottom:0}.reservation-modal-time{font-variant-numeric:tabular-nums;white-space:nowrap}.reservation-modal-student{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-close{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekday{text-align:center;font-size:12px;font-weight:700;color:var(--text-muted);padding:4px 0}.calendar-cell{min-height:86px;border:1px solid var(--border);border-radius:8px;padding:5px 6px;cursor:pointer;background:var(--surface);overflow:hidden}.calendar-cell:hover{background:var(--blue-50)}.calendar-cell-active{outline:2px solid var(--blue-700)}.calendar-cell-blank{border:none;background:transparent;cursor:default}.calendar-day{font-size:12px;font-weight:700;margin-bottom:3px}.calendar-item{font-size:11px;background:var(--blue-100);color:var(--blue-900);border-radius:4px;padding:1px 4px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-more{font-size:11px;color:var(--text-muted)}.lesson-confirm-controls{display:grid;gap:12px}.lesson-confirm-control-row,.lesson-confirm-summary,.lesson-confirm-subject-filter{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.lesson-confirm-check,.lesson-confirm-today-label{display:inline-flex;align-items:center;gap:6px}.lesson-confirm-check{font-size:13px;font-weight:700;color:var(--text-muted)}.lesson-confirm-today-label{font-size:14px;color:var(--text)}.lesson-confirm-summary{padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:13px}.lesson-confirm-subject-filter{gap:8px;font-size:12px}.lesson-confirm-subject-label{color:var(--text-muted);font-weight:800;margin-right:2px}.lesson-confirm-subject-button{white-space:nowrap}.assignment-subject-filter-card{display:grid;gap:12px}.assignment-subject-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.assignment-subject-filter-caption{color:var(--text-muted);font-size:12.5px;margin-top:4px}.assignment-subject-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.assignment-subject-filter-button{display:inline-flex;align-items:center;gap:5px;font-weight:800;white-space:nowrap}.lesson-schedule-scroll{overflow:auto;max-height:72vh;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.lesson-schedule-grid{display:grid;min-width:760px;position:relative}.lesson-schedule-corner,.lesson-schedule-teacher,.lesson-schedule-time{position:sticky;z-index:3;background:var(--bg);border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:6px 8px;font-size:11.5px}.lesson-schedule-corner{left:0;top:0;z-index:5;font-weight:800;color:var(--text-muted);justify-content:center;text-align:center}.lesson-schedule-teacher{top:0;justify-content:center;flex-direction:column;gap:4px;font-weight:800;color:var(--text);text-align:center;line-height:1.25}.lesson-schedule-teacher b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-schedule-teacher span{color:var(--text-muted);font-size:10.5px;white-space:nowrap}.lesson-schedule-time{left:0;z-index:4;justify-content:center;color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700;padding:0 5px}.lesson-schedule-slot{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface)}.lesson-schedule-event{z-index:2;margin:3px;border:1.5px solid;border-radius:6px;padding:5px 6px;overflow:hidden;box-shadow:0 2px 5px #091e4214;display:flex;flex-direction:column;gap:2px;font-size:11.2px}.lesson-schedule-event-clickable{cursor:pointer}.lesson-schedule-event-clickable:hover{box-shadow:0 4px 12px #091e4229;transform:translateY(-1px)}.lesson-schedule-event-clickable:focus-visible{outline:2px solid var(--blue-700);outline-offset:2px}.lesson-schedule-event-top,.lesson-schedule-event-actions{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}.lesson-schedule-event-top span{font-size:10px;font-weight:800}.lesson-schedule-event-name{color:var(--text);font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-schedule-event-meta{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-schedule-event .badge{padding:1px 5px;font-size:10px}.lesson-schedule-event .btn-small{padding:3px 6px;border-radius:5px;font-size:10px;line-height:1.15}.lesson-confirm-detail-modal{width:min(560px,94vw)}.lesson-confirm-detail-head,.lesson-confirm-detail-status,.lesson-confirm-detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lesson-confirm-detail-head{justify-content:space-between;align-items:flex-start;margin-bottom:12px}.lesson-confirm-detail-subtitle{color:var(--text-muted);font-size:13px;font-weight:700;margin-top:4px}.lesson-confirm-detail-status{padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.lesson-confirm-detail-grid{display:grid;gap:0;margin-top:10px}.lesson-confirm-detail-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.lesson-confirm-detail-row span:first-child{color:var(--text-muted);font-weight:800}.lesson-confirm-detail-row b{min-width:0;overflow-wrap:anywhere}.lesson-confirm-detail-actions{justify-content:flex-end;margin-top:16px}.row-link{color:inherit;text-decoration:none;display:block}.empty-state{padding:36px 0;text-align:center;color:var(--text-muted);font-size:13px}.error-banner{background:#ffebe6;border:1px solid #ffbdad;color:var(--danger);border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}.subscription-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff8e8;border:1px solid #f2d19a;border-left:4px solid #d99a2b;border-radius:10px;padding:13px 16px;margin-bottom:16px}.subscription-notice-title{color:#704800;font-size:14px;font-weight:800;margin-bottom:4px}.subscription-notice-copy{color:#6f5b38;font-size:12.5px;line-height:1.55}.subscription-notice-action{flex:0 0 auto;background:#fff;border:1px solid #e3bd78;border-radius:8px;color:#704800;font-size:12.5px;font-weight:800;padding:8px 11px;text-decoration:none}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue-900),var(--blue-700))}.login-card{width:380px;background:var(--surface);border-radius:14px;padding:34px 32px;box-shadow:0 18px 50px #0747a659}.login-title{font-size:20px;font-weight:800;margin:0 0 4px}.login-subtitle{font-size:13px;color:var(--text-muted);margin:0 0 22px}.login-field{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin-bottom:10px}.login-field:focus{outline:2px solid var(--blue-700);border-color:transparent}.btn-primary{width:100%;background:var(--blue-700);color:#fff;border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:700;cursor:pointer}.btn-primary:hover{background:var(--blue-800)}.btn-secondary{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:11px;font-size:14px;font-weight:600;cursor:pointer;margin-top:8px}.btn-secondary:hover{background:var(--blue-50)}.login-card>a.btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;text-decoration:none}.login-start-button{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;border-color:var(--blue-700, #1d4ed8);color:var(--blue-700, #1d4ed8)}.login-start-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#eef4ff;border:1px solid #c7d7fe;color:#1e3a8a;font-size:13px;line-height:1.55}.login-forgot{display:block;width:auto;min-height:0;margin:8px auto 0;padding:4px 6px;border:0;background:none;color:var(--text-muted);font-size:12.5px;cursor:pointer;text-decoration:underline}.login-shell{flex-direction:column}.login-divider{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px;margin:14px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.centered-note{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted)}.nav-toggle{white-space:nowrap;flex-shrink:0;border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:6px 11px;font-size:15px;cursor:pointer;color:var(--text)}.nav-toggle:hover{background:var(--blue-50)}.sidebar{transition:transform .22s ease,margin-left .22s ease}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#091e4273;z-index:850}@media(min-width:901px){.sidebar.sidebar-closed{margin-left:-248px}}@media(max-width:900px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:900;width:264px;transform:translate(-105%);box-shadow:4px 0 18px #091e424d}.sidebar.sidebar-open{transform:none}.content{padding:14px 12px!important;width:100%}.page-title{font-size:19px}.subscription-notice{align-items:flex-start;flex-direction:column}.subscription-notice-action{width:100%;text-align:center}.invoice-filter-bar{grid-template-columns:1fr}.invoice-filter-clear,.invoice-bulk-send-button{width:100%}.card{overflow-x:auto}.table{min-width:520px}.table.table-kv,.table.table-fit{min-width:0}.table.table-kv td:first-child{width:96px!important}.table.table-kv td{overflow-wrap:anywhere}.vbar-chart{overflow-x:auto}.modal-card{width:94vw!important;max-height:88vh;overflow-y:auto}.reservation-day-modal{max-height:90vh}.reservation-modal-row{grid-template-columns:10px 1fr auto;gap:8px}.reservation-modal-time,.reservation-modal-student{grid-column:2 / -1}.reservation-modal-row .badge,.reservation-modal-row .btn-small{grid-column:2 / -1;justify-self:start}.calendar-grid{font-size:11px}}@media print{.sidebar,.sidebar-backdrop,.nav-toggle,button,select,input{display:none!important}.app-shell{display:block}.content{max-width:100%;padding:0}.card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}body{background:#fff}}@keyframes vs-otp-blink{0%,to{background:#de350b;color:#fff;box-shadow:0 0 #de350b80}50%{background:#fff0f0;color:#de350b;box-shadow:0 0 0 5px #de350b1f}}.badge-otp-blink{animation:vs-otp-blink .6s ease-in-out infinite;font-weight:800}.lesson-schedule-fullscreen-toggle{white-space:nowrap}.lesson-schedule-card--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;margin:0;border-radius:0;max-width:100%;display:flex;flex-direction:column;background:var(--surface);padding:16px 20px}.lesson-schedule-card--fullscreen .lesson-schedule-scroll{flex:1;min-height:0;max-height:none}.lesson-day-nav{display:inline-flex;align-items:center;gap:6px}.lesson-day-nav-arrow{min-width:30px;padding:5px 9px;font-size:15px;line-height:1}.lesson-day-nav-label{min-width:132px;text-align:center;font-size:13.5px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}.lesson-schedule-now{position:absolute;left:0;right:0;height:0;border-top:2px solid #f6c945;box-shadow:0 0 0 4px #f6c94524;z-index:6;pointer-events:none}.lesson-schedule-now:before{content:"";position:absolute;left:2px;top:-5px;width:9px;height:9px;border-radius:50%;background:#f6c945}.demo-readonly .btn-primary,.demo-readonly .btn-danger,.demo-readonly .btn-inline,.demo-readonly button[type=submit]{pointer-events:none!important;opacity:.5!important;cursor:not-allowed!important;filter:grayscale(.2)}.mypage{max-width:640px}.mypage-hero{display:flex;align-items:center;gap:16px}.mypage-avatar{width:104px;height:104px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--blue-700),#2684ff);text-transform:uppercase}.mypage-avatar-btn{position:relative;border:none;padding:0;cursor:pointer}.mypage-avatar-btn:disabled{cursor:default;opacity:.7}.mypage-avatar-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.mypage-avatar-edit{position:absolute;right:2px;bottom:2px;width:26px;height:26px;border-radius:50%;background:var(--blue-700);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface);box-shadow:0 1px 3px #0003;z-index:1}.mypage-photo-actions{display:flex;gap:12px;margin-top:8px}.mypage-linkbtn{background:none;border:none;padding:0;font-size:12px;font-weight:700;color:var(--blue-700);cursor:pointer}.mypage-linkbtn:hover:not(:disabled){text-decoration:underline}.mypage-linkbtn:disabled{color:var(--text-muted);cursor:default}.mypage-linkbtn-danger{color:#d9534f}.mypage-hero-name{font-size:18px;font-weight:800;color:var(--text);line-height:1.3}.mypage-hero-sub{font-size:13px;color:var(--text-muted);margin-top:2px}.mypage-name-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.mypage-name-row .form-field{flex:1;min-width:200px;margin:0}.mypage-save{flex-shrink:0;background:var(--blue-700);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:13px;font-weight:700;cursor:pointer;height:38px;transition:background .12s ease}.mypage-save:hover:not(:disabled){background:var(--blue-800)}.mypage-save:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.mypage-hint{font-size:12px;color:var(--text-muted);margin:10px 0 0}.mypage-info{display:flex;flex-direction:column;gap:2px}.mypage-info-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.mypage-info-row:last-child{border-bottom:none}.mypage-info-label{width:90px;flex-shrink:0;font-size:12px;color:var(--text-muted)}.mypage-info-value{font-size:14px;color:var(--text);font-weight:600;word-break:break-all}.mypage-role-badge{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--blue-50);color:var(--blue-700);font-size:12px;font-weight:700}.mypage-photo-viewer{max-width:460px;text-align:center}.mypage-photo-viewer-img{width:100%;max-height:60vh;object-fit:contain;border-radius:12px;background:var(--bg)}.mypage-photo-viewer-actions{display:flex;justify-content:center;gap:8px;margin-top:14px}.mypage-btn-danger{background:#d9534f}.mypage-btn-danger:hover{background:#c9302c}.mypage-btn-neutral{background:var(--surface);color:var(--text);border:1px solid var(--border)}.mypage-btn-neutral:hover{background:var(--bg)}.tour{max-width:900px;margin:0 auto}.tour-progress{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tour-dot{height:8px;border-radius:999px;background:var(--border);transition:all .2s ease;cursor:pointer;border:none;padding:0;width:8px}.tour-dot-active{width:26px;background:var(--blue-700)}.tour-step-count{margin-left:auto;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.tour-stage-wrap{overflow-x:auto}.tour-stage{position:relative;width:760px;min-height:440px;margin:0 auto;background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:26px;box-shadow:inset 0 1px #fff9}.tour-browserbar{display:flex;align-items:center;gap:6px;margin:-6px 0 18px}.tour-browserbar i{width:11px;height:11px;border-radius:50%;display:inline-block}.tour-browserbar .r{background:#ff5f57}.tour-browserbar .y{background:#febc2e}.tour-browserbar .g{background:#28c840}.tour-browserbar span{margin-left:10px;font-size:12px;color:var(--text-muted)}.tour-spot{position:relative;border-radius:10px;box-shadow:0 0 0 3px var(--blue-700),0 0 0 7px #0052cc38;animation:tourpulse 1.8s ease-in-out infinite}@keyframes tourpulse{0%,to{box-shadow:0 0 0 3px var(--blue-700),0 0 0 7px #0052cc38}50%{box-shadow:0 0 0 3px var(--blue-700),0 0 0 11px #0052cc1a}}.tour-bubble{position:absolute;max-width:260px;background:#fff;border:1.5px solid var(--blue-700);border-radius:14px;padding:11px 13px;font-size:13px;line-height:1.55;color:var(--text);box-shadow:0 8px 22px #091e4229;z-index:5}.tour-bubble b{color:var(--blue-700)}.tour-bubble-mascot{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--blue-700);margin-bottom:4px}.tour-bubble-tail{position:absolute;width:14px;height:14px;background:#fff;border-left:1.5px solid var(--blue-700);border-top:1.5px solid var(--blue-700)}.tour-tail-left{left:-8px;top:22px;transform:rotate(-45deg)}.tour-tail-right{right:-8px;top:22px;transform:rotate(135deg)}.tour-tail-up{top:-8px;left:26px;transform:rotate(45deg)}.tour-tail-down{bottom:-8px;left:26px;transform:rotate(225deg)}.tour-mini-title{font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px}.tour-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px}.tour-row{display:flex;align-items:center;gap:10px}.tour-chip{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}.tour-btn{display:inline-flex;align-items:center;gap:5px;background:var(--blue-700);color:#fff;border-radius:7px;padding:7px 12px;font-size:12px;font-weight:700;white-space:nowrap}.tour-btn-ghost{background:var(--blue-50);color:var(--blue-900);border:1px solid var(--blue-100)}.tour-phone{width:210px;margin:0 auto;background:#fff;border:8px solid #1f2b45;border-radius:26px;padding:12px 10px;box-shadow:0 14px 30px #091e4238}.tour-push{display:flex;gap:8px;background:#f4f7fc;border:1px solid var(--border);border-radius:12px;padding:9px 10px;margin-bottom:8px;text-align:left}.tour-push-ico{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--blue-700),#2684ff);flex-shrink:0}.tour-push-title{font-size:11px;font-weight:800}.tour-push-body{font-size:10.5px;color:var(--text-muted);line-height:1.4}.tour-nav{display:flex;align-items:center;gap:10px;margin-top:18px}.tour-nav .spacer{flex:1}.tour-nav button{border-radius:8px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text)}.tour-nav .tour-next{background:var(--blue-700);color:#fff;border-color:var(--blue-700)}.tour-nav button:disabled{opacity:.4;cursor:default}.tour-menu{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.tour-menu button{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;color:var(--text-muted)}.tour-menu button.active{background:var(--blue-700);border-color:var(--blue-700);color:#fff;font-weight:700}.tour-intro{text-align:center;padding:30px 20px}.tour-intro-mascot{font-size:60px}.tour-intro h2{font-size:22px;margin:12px 0 6px}.tour-intro p{color:var(--text-muted);font-size:14px;line-height:1.6}.tour-console{display:flex;min-height:430px;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.tour-side{width:172px;flex-shrink:0;background:linear-gradient(180deg,var(--blue-900),var(--blue-800));color:#fff;padding:12px 10px;font-size:12px}.tour-side-brand{font-size:13px;font-weight:800;padding:4px 8px 12px;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:10px}.tour-side-gtitle{font-size:10.5px;opacity:.6;padding:8px 8px 3px;font-weight:700}.tour-side-item{position:relative;display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:7px;color:#ffffffd1;margin-bottom:1px}.tour-side-item-on{background:#fff;color:var(--blue-900);font-weight:800;z-index:4}.tour-side-callout{position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%);width:190px;background:#fff;border:1.5px solid var(--blue-700);border-radius:12px;padding:9px 11px;font-size:12px;line-height:1.5;color:var(--text);box-shadow:0 8px 22px #091e422e;z-index:6}.tour-side-callout b{color:var(--blue-700)}.tour-side-callout:before{content:"";position:absolute;left:-8px;top:50%;width:13px;height:13px;background:#fff;border-left:1.5px solid var(--blue-700);border-bottom:1.5px solid var(--blue-700);transform:translateY(-50%) rotate(45deg)}.tour-content{position:relative;flex:1;padding:16px 18px;background:var(--bg);min-width:0}.tour-crumb{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--blue-900);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:999px;padding:4px 10px;margin-bottom:12px}.tourx-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none}.tourx-hole{position:fixed;border-radius:10px;box-shadow:0 0 0 9999px #091e4299;border:2px solid var(--blue-700);transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease;pointer-events:none}.tourx-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#091e4299;pointer-events:auto}.tourx-tip{position:fixed;width:340px;max-width:calc(100vw - 32px);background:#fff;border-radius:14px;border:1.5px solid var(--blue-700);box-shadow:0 14px 40px #091e424d;padding:14px 16px;pointer-events:auto;z-index:10000}.tourx-tip-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tourx-mascot{font-size:12px;font-weight:800;color:var(--blue-700)}.tourx-count{margin-left:auto;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.tourx-x{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:13px;padding:0 2px}.tourx-tip-title{font-size:16px;font-weight:800;margin-bottom:6px}.tourx-tip-body{font-size:13.5px;line-height:1.65;color:var(--text)}.tourx-tip-nav{display:flex;align-items:center;gap:8px;margin-top:14px}.tourx-tip-nav button{border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text)}.tourx-tip-nav button:disabled{opacity:.4;cursor:default}.tourx-skip{color:var(--text-muted)!important;border-color:transparent!important}.tourx-next{background:var(--blue-700)!important;color:#fff!important;border-color:var(--blue-700)!important}.guide-launch{max-width:720px}.guide-hero{text-align:center;padding:30px 20px 26px}.guide-hero-emoji{font-size:56px}.guide-hero h2{font-size:22px;margin:12px 0 6px}.guide-hero p{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0 0 18px}.guide-start-btn{background:var(--blue-700);color:#fff;border:none;border-radius:10px;padding:13px 26px;font-size:15px;font-weight:800;cursor:pointer}.guide-start-btn:hover{background:var(--blue-800)}.guide-feature-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:6px}.guide-feature-btn{text-align:left;background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;font-size:13.5px;font-weight:700;color:var(--text);transition:border-color .12s ease,background .12s ease}.guide-feature-btn:hover{border-color:var(--blue-700);background:var(--blue-50)}.tourx-svg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:auto}.tourx-ring{position:fixed;border:2px solid var(--blue-700);border-radius:10px;pointer-events:none;transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease;animation:tourxpulse 1.8s ease-in-out infinite}@keyframes tourxpulse{0%,to{box-shadow:0 0 0 4px #2684ff59}50%{box-shadow:0 0 0 9px #2684ff1f}}.tourx-menu-tag{position:fixed;transform:translateY(-50%);background:#fff;border:1.5px solid var(--blue-700);color:var(--blue-900);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 6px 16px #091e4240;pointer-events:none;z-index:10000}.login-shell{padding:28px 0}.login-card{width:min(392px,calc(100vw - 24px))}.login-head{display:flex;justify-content:flex-end;margin-bottom:12px}.login-subtitle{margin-bottom:16px}.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 14px;border-radius:11px;background:#eef1f6}.login-tabs button{min-height:40px;border:0;border-radius:8px;background:none;color:var(--text-muted);font-size:14px;font-weight:700;cursor:pointer}.login-tabs button.is-active{background:var(--surface);color:var(--blue-900);box-shadow:0 1px 3px #0f172a24}.login-tabs button:focus-visible{outline:2px solid var(--blue-700);outline-offset:1px}.login-inapp{background:#fff7e6;border:1px solid #ffd591;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:12.5px;line-height:1.6;color:#8a5a00}.login-demo-notice{background:#e6f4ff;border:1px solid #91caff;color:#0747a6}.login-guide{list-style:none;margin:0 0 12px;padding:10px 12px;display:grid;gap:6px;border-radius:10px;background:#f6f8fc;color:var(--text-muted);font-size:12.5px;line-height:1.5}.login-guide li{display:flex;gap:8px}.login-guide b{color:var(--text);margin-right:4px}.login-social-list{display:grid;gap:8px}.login-social{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px;font-weight:700;cursor:pointer}.login-social:hover{background:var(--blue-50)}.login-social.is-kakao{background:#fee500;border-color:#fee500;color:#191919}.login-social.is-kakao:hover{background:#f5dc00}.login-social.is-apple{background:#000;border-color:#000;color:#fff}.login-social.is-apple:hover{background:#1f1f1f}.login-social.is-email{margin-top:8px;color:var(--text-muted)}.login-text-link{display:block;margin:10px auto 0;padding:4px 6px;border:0;background:none;color:var(--text-muted);font-size:13px;cursor:pointer}.login-text-link:hover{color:var(--blue-700)}.login-extra{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.login-extra-item{display:flex;align-items:center;gap:8px;min-height:58px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.login-extra-item:hover{background:var(--blue-50)}.login-extra-item:disabled{opacity:.6;cursor:progress}.login-extra-item>span:first-child{font-size:18px;line-height:1}.login-extra-item>span:last-child{display:grid;gap:2px;min-width:0}.login-extra-item b{font-size:13px;font-weight:800}.login-extra-item small{font-size:11.5px;color:var(--text-muted);line-height:1.35}@media(max-width:420px){.login-card{padding:26px 20px}}.claim-email{display:grid;margin-top:10px}html.vs-modal-open,html.vs-modal-open body{overflow:hidden}html.vs-modal-open.vs-modal-gutter{scrollbar-gutter:stable}.modal-backdrop,.modal-card,.modal-body{overscroll-behavior:contain}.modal-backdrop{padding:12px;box-sizing:border-box}.modal-card{max-height:84vh;max-height:84dvh;overscroll-behavior:contain;box-sizing:border-box}.modal-card:focus{outline:none}@media(max-width:900px){.modal-card{max-height:88vh;max-height:88dvh}}@media(max-width:600px){.modal-card{padding:18px 16px}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),select,textarea{font-size:16px!important}}@media(pointer:coarse){.btn-small{min-height:36px}a.btn-small{display:inline-flex;align-items:center;justify-content:center}input[type=checkbox],input[type=radio]{width:18px;height:18px}select{min-height:36px}summary{padding-top:8px;padding-bottom:8px}}.meetups-layout{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:16px;align-items:start}@media(max-width:760px){.meetups-layout{grid-template-columns:minmax(0,1fr)}.meetups-layout .meetups-chat-empty{display:none!important}.meetups-layout .meetups-chat{height:72vh!important;height:72dvh!important}}.hours-row>label{white-space:nowrap;flex-shrink:0}.hours-row>input[type=time]{min-width:0;flex:1 1 0;max-width:160px}@media(max-width:600px){.hours-row{gap:6px!important}.hours-row>input[type=time]{padding:5px 4px!important}}.attendance-day-heading{scroll-margin-top:72px}.modal-shell{--modal-px: 24px;--modal-py: 20px;display:flex;flex-direction:column;padding:0!important;overflow:hidden!important;border-radius:16px;max-height:88vh;max-height:88dvh;box-sizing:border-box}dialog.modal-shell:not([open]){display:none}.modal-head{flex:none;display:flex;align-items:center;gap:10px;min-height:64px;padding:12px var(--modal-px);border-bottom:1px solid var(--border);box-sizing:border-box}.modal-head .modal-title{flex:1;min-width:0;margin:0;font-size:17px;font-weight:800;line-height:1.4;color:var(--text);overflow-wrap:anywhere}.modal-head .modal-close{flex:none;width:auto;min-height:36px;margin:0;float:none}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--modal-py) var(--modal-px)}.modal-actions{position:sticky;bottom:calc(-1 * var(--modal-py, 20px));z-index:2;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin:20px calc(-1 * var(--modal-px, 24px)) calc(-1 * var(--modal-py, 20px));padding:12px var(--modal-px, 24px);background:var(--surface);border-top:1px solid var(--border)}.modal-actions>button,.modal-actions>a{display:inline-flex;align-items:center;justify-content:center;width:auto!important;min-width:96px;min-height:44px!important;margin:0!important;padding:8px 18px!important;font-size:14px!important;border-radius:8px!important;justify-self:auto!important}.modal-actions>.modal-aux{margin-right:auto!important;min-width:0}.modal-actions>.modal-actions-grow{flex:1 1 220px;min-width:0}@media(max-width:600px){.modal-shell{--modal-px: 16px;--modal-py: 16px;width:calc(100vw - 16px)!important;max-height:92vh;max-height:92dvh}.modal-head{min-height:56px}.modal-actions{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.modal-actions>button,.modal-actions>a{flex:1 1 auto}.modal-actions>.modal-aux{flex:0 0 auto}.modal-actions>.modal-actions-grow{flex:1 1 100%}}.modal-actions.modal-actions-mid{margin-bottom:16px}.file-picker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0}.file-picker-button{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border:1px solid var(--blue-100, #cfe0ff);border-radius:8px;background:var(--blue-50, #eef4ff);color:var(--blue-900, #1e3a8a);font-size:13.5px;font-weight:700;cursor:pointer;overflow:hidden;box-sizing:border-box}.file-picker-button:hover{background:var(--blue-100, #dbe7ff)}.file-picker-button:focus-within{outline:2px solid var(--blue-700, #1d4ed8);outline-offset:2px}.file-picker-button input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;opacity:0;cursor:pointer;font-size:16px}.file-picker.is-disabled .file-picker-button{opacity:.55;cursor:not-allowed}.file-picker-name{flex:1 1 160px;min-width:0;font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker.has-file .file-picker-name{color:var(--text);font-weight:600}.file-picker .btn-small{width:auto}@media(max-width:600px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:12px 14px;min-width:0}.stat-value{font-size:21px;overflow-wrap:anywhere}}:where([role=button],[role=link],tr)[tabindex]:focus-visible{outline:3px solid var(--blue-700);outline-offset:-2px;border-radius:6px}
