@charset "UTF-8";@import url(https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Baloo+2:wght@500;600;700;800&display=swap);*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{background-color:#f4f4f4;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:16px;line-height:1.6}:root{--primary-color:#007bff;--primary-hover:#0056b3;--secondary-color:#6c757d;--success-color:#28a745;--danger-color:#ff4d4f;--warning-color:#ffc107;--info-color:#17a2b8;--light-color:#f8f9fa;--dark-color:#343a40;--white:#fff;--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-xxl:1.5rem;--font-size-xxxl:2rem;--border-radius-sm:0.25rem;--border-radius-md:0.375rem;--border-radius-lg:0.5rem;--border-radius-xl:0.75rem;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #0000001a;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px}.container{margin:0 auto;max-width:1200px;padding:1.5rem;padding:var(--spacing-lg);width:100%}header{background:#343a40;box-shadow:0 4px 6px #0000001a;color:#fff;margin-bottom:1.5rem;padding:1.5rem}header h1{font-size:2rem}nav{background:#007bff;background:var(--primary-color);border-radius:.5rem;border-radius:var(--border-radius-lg);box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow-sm);margin-bottom:2rem;margin-bottom:var(--spacing-xl);padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}nav ul{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem;gap:var(--spacing-lg);justify-content:flex-start;list-style:none}nav ul li a{border-radius:.375rem;border-radius:var(--border-radius-md);color:#fff;color:var(--white);font-size:1.125rem;font-size:var(--font-size-lg);font-weight:500;padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .3s ease}nav ul li a:hover{background-color:#ffffff1a;transform:translateY(-1px)}main{background:#fff;border-radius:.5rem;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem;padding:2rem}.button,button{align-items:center;border:none;border-radius:.375rem;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-size:1rem;font-size:var(--font-size-base);font-weight:500;justify-content:center;line-height:1.5;min-height:44px;min-width:44px;padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .3s ease;white-space:nowrap}.btn-primary{background-color:#007bff;background-color:var(--primary-color);color:#fff;color:var(--white)}.btn-primary:hover{background-color:#0056b3;background-color:var(--primary-hover);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background-color:#6c757d;background-color:var(--secondary-color)}.btn-secondary,.btn-success{color:#fff;color:var(--white)}.btn-success{background-color:#28a745;background-color:var(--success-color)}.btn-danger{background-color:#ff4d4f;background-color:var(--danger-color);color:#fff;color:var(--white)}.btn-warning{background-color:#ffc107;background-color:var(--warning-color);color:#212529;color:var(--gray-900)}.btn-outline{background-color:initial;border:2px solid #007bff;border:2px solid var(--primary-color);color:#007bff;color:var(--primary-color)}.btn-outline:hover{background-color:#007bff;background-color:var(--primary-color);color:#fff;color:var(--white)}.btn-sm{font-size:.875rem;font-size:var(--font-size-sm);min-height:32px;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm)}.btn-lg{font-size:1.125rem;font-size:var(--font-size-lg);min-height:56px;padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}.button:disabled,button:disabled{cursor:not-allowed;opacity:.6;transform:none!important}input,select,textarea{background-color:#fff;background-color:var(--white);border:2px solid #dee2e6;border:2px solid var(--gray-300);border-radius:.375rem;border-radius:var(--border-radius-md);font-size:1rem;font-size:var(--font-size-base);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);transition:border-color .3s ease,box-shadow .3s ease;width:100%}input:focus,select:focus,textarea:focus{border-color:#007bff;border-color:var(--primary-color);box-shadow:0 0 0 3px #007bff1a;outline:none}input:disabled,select:disabled,textarea:disabled{background-color:#f8f9fa;background-color:var(--gray-100);cursor:not-allowed}.form-group{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.form-group label{color:#495057;color:var(--gray-700);margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.card{background:#fff;background:var(--white);border:1px solid #e9ecef;border:1px solid var(--gray-200);border-radius:.5rem;border-radius:var(--border-radius-lg);box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow-sm);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding:2rem;padding:var(--spacing-xl);transition:box-shadow .3s ease,transform .3s ease}.card:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--gray-200);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding-bottom:1rem;padding-bottom:var(--spacing-md)}.card-title{color:#212529;color:var(--gray-900);font-size:1.25rem;font-size:var(--font-size-xl);font-weight:600;margin:0}table{background:#fff;background:var(--white);border-collapse:collapse;border-radius:.5rem;border-radius:var(--border-radius-lg);box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow-sm);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);overflow:hidden;width:100%}td,th{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--gray-200);padding:1rem;padding:var(--spacing-md);text-align:left}th{background-color:#f8f9fa;background-color:var(--gray-100);color:#495057;color:var(--gray-700);font-size:.875rem;font-size:var(--font-size-sm);font-weight:600;letter-spacing:.5px;text-transform:uppercase}tr:hover{background-color:var(--gray-50)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:#007bff;color:var(--primary-color)}.text-success{color:#28a745;color:var(--success-color)}.text-danger{color:#ff4d4f;color:var(--danger-color)}.text-warning{color:#ffc107;color:var(--warning-color)}.text-muted{color:#6c757d;color:var(--gray-600)}.bg-primary{background-color:#007bff;background-color:var(--primary-color)}.bg-success{background-color:#28a745;background-color:var(--success-color)}.bg-danger{background-color:#ff4d4f;background-color:var(--danger-color)}.bg-warning{background-color:#ffc107;background-color:var(--warning-color)}.bg-light{background-color:#f8f9fa;background-color:var(--light-color)}.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.d-grid{display:grid}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.align-items-center{align-items:center}.w-100{width:100%}.h-100{height:100%}.m-0{margin:0}.mt-1{margin-top:.5rem;margin-top:var(--spacing-sm)}.mb-1{margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.ml-1{margin-left:.5rem;margin-left:var(--spacing-sm)}.mr-1{margin-right:.5rem;margin-right:var(--spacing-sm)}.p-0{padding:0}.pt-1{padding-top:.5rem;padding-top:var(--spacing-sm)}.pb-1{padding-bottom:.5rem;padding-bottom:var(--spacing-sm)}.pl-1{padding-left:.5rem;padding-left:var(--spacing-sm)}.pr-1{padding-right:.5rem;padding-right:var(--spacing-sm)}@media (max-width:575.98px){.container,header{padding:1rem;padding:var(--spacing-md)}header h1{font-size:1.25rem;font-size:var(--font-size-xl)}main{padding:1rem;padding:var(--spacing-md)}nav ul{flex-direction:column;gap:.5rem;gap:var(--spacing-sm)}nav ul li{width:100%}nav ul li a{display:block;padding:1rem;padding:var(--spacing-md);text-align:center}.button,button{margin-bottom:.5rem;margin-bottom:var(--spacing-sm);width:100%}.btn-group{flex-direction:column}table{font-size:.875rem;font-size:var(--font-size-sm)}td,th{padding:.5rem;padding:var(--spacing-sm)}.card{padding:1rem;padding:var(--spacing-md)}}@media (min-width:576px) and (max-width:767.98px){.container{padding:1.5rem;padding:var(--spacing-lg)}header h1{font-size:1.5rem;font-size:var(--font-size-xxl)}nav ul{gap:1rem;gap:var(--spacing-md)}}@media (min-width:768px){.container{padding:2rem;padding:var(--spacing-xl)}.d-md-flex{display:flex}.d-md-none{display:none}.btn-group{display:flex;gap:.5rem;gap:var(--spacing-sm)}.btn-group button{margin-bottom:0;width:auto}}@media (min-width:1200px){.container{max-width:1400px}}.fade-in{animation:fadeIn .5s ease-out}.slide-in{animation:slideIn .3s ease-out}.pulse{animation:pulse 2s infinite}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:2px solid #007bff;outline:2px solid var(--primary-color);outline-offset:2px}@media (prefers-contrast:high){:root{--primary-color:navy;--gray-300:#000;--gray-600:#000}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.no-print{display:none!important}body{background:#fff!important;color:#000!important}.card{border:1px solid #000!important;box-shadow:none!important}}.app-container{display:flex;flex-direction:column;margin:0 auto;max-width:1800px;min-height:100vh}.app-container,header{padding:var(--spacing-lg);width:100%}header{background:var(--dark-color);border-radius:0;box-shadow:var(--shadow-md);color:var(--white);left:0;margin-bottom:var(--spacing-lg);position:fixed;right:0;text-align:center;top:0;z-index:1000}.app-container.admin-page header{left:280px;width:calc(100% - 280px)}.app-container.admin-page main{margin-left:280px;max-width:1520px;width:calc(100% - 280px)}.app-container.admin-page .admin-main{margin-left:0}header h1{font-size:var(--font-size-xxxl);font-weight:600;margin:0;text-shadow:0 2px 4px #0000004d}main{background:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);flex:1 1;margin-bottom:var(--spacing-xl);max-width:100%;min-height:400px;padding:var(--spacing-xl);width:100%}.app-container.attendance-embed-page main{background:#f0f4f8;border-radius:0;box-shadow:none;display:flex;flex-direction:column;margin-bottom:0;min-height:100vh;min-height:100dvh;padding:8px}.app-container.attendance-embed-page main .att-page button{margin-bottom:0;max-width:100%;width:auto}.app-container.attendance-embed-page main .att-page .att-header-actions button{flex-shrink:0;min-width:fit-content;white-space:nowrap}.app-container.attendance-embed-page main .att-page .att-danger-btn,.app-container.attendance-embed-page main .att-page .att-modal-cancel.full,.app-container.attendance-embed-page main .att-page .att-modal-ok.full,.app-container.attendance-embed-page main .att-page button.att-picker-item,.app-container.attendance-embed-page main .att-page button.att-student-row{box-sizing:border-box;width:100%}.app-footer{background:var(--gray-100);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);margin-top:auto;padding:var(--spacing-lg);text-align:center}.signout-button{background:var(--danger-color);border:none;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);color:var(--white);cursor:pointer;font-size:var(--font-size-base);font-weight:500;min-height:48px;min-width:120px;padding:var(--spacing-md) var(--spacing-lg);transition:all .3s ease}.signout-button:hover{background:#d9363e;box-shadow:var(--shadow-md);transform:translateY(-2px)}.signout-button:focus{outline:2px solid var(--danger-color);outline-offset:2px}@media (max-width:575.98px){.app-container{padding:var(--spacing-sm)}header{padding:var(--spacing-md)}header h1{font-size:var(--font-size-xl)}main{padding:var(--spacing-sm)}.signout-button{font-size:var(--font-size-base);min-height:56px;width:100%}}@media (min-width:576px) and (max-width:767.98px){.app-container{padding:var(--spacing-lg)}header h1{font-size:var(--font-size-xxl)}}@media (min-width:768px){.app-container{padding:var(--spacing-xl)}}.app-container{animation:fadeIn .5s ease-out}.loading{align-items:center;color:var(--gray-600);display:flex;font-size:var(--font-size-lg);justify-content:center;min-height:200px}.loading:after{animation:spin 1s linear infinite;border-top:2px solid var(--gray-300);border:2px solid var(--gray-300);border-radius:50%;border-top-color:var(--primary-color);content:"";height:20px;margin-left:var(--spacing-sm);width:20px}.control-panel{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 8px #0000001a;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1800px;padding:20px;position:relative;width:100%}.control-panel h2{border-bottom:2px solid #e9ecef;color:#2c3e50;font-size:1.8em;font-weight:600;margin-bottom:20px;padding-bottom:10px;text-align:left}.month-navigation{margin-bottom:15px;padding:10px 0}.month-navigation>button{align-self:center;background-color:#3498db;border:none;border-radius:6px;box-shadow:0 2px 4px #3498db33;color:#fff;cursor:pointer;flex-shrink:0;font-size:.85em;font-weight:500;max-width:120px;min-width:80px;padding:8px 16px;transition:background-color .3s ease}.month-navigation>button:hover{background-color:#2980b9;box-shadow:0 3px 6px #3498db4d}.month-navigation--with-view-mode{align-items:flex-start;flex-wrap:wrap;row-gap:10px}.month-navigation-center{align-items:center;display:flex;flex:1 1 220px;flex-direction:column;gap:10px;justify-content:center;min-width:0}.month-navigation-title{background-color:#ecf0f1;border:1px solid #bdc3c7;border-radius:6px;color:#2c3e50;display:block;font-size:1.3em;font-weight:600;padding:8px 16px;text-align:center}.schedule-view-mode-toggle{background:#fff;border:1px solid #d0d7de;border-radius:8px;box-shadow:0 1px 2px #0000000f;display:inline-flex;overflow:hidden}.schedule-view-mode-toggle button{background:#fff;border:none;border-radius:0;box-shadow:none;color:#495057;cursor:pointer;font-size:.8em;font-weight:600;margin:0;max-width:none;min-width:0;padding:8px 14px;transition:background .2s,color .2s}.schedule-view-mode-toggle button+button{border-left:1px solid #e9ecef}.schedule-view-mode-toggle button:hover{background:#f1f3f5;box-shadow:none;color:#212529}.schedule-view-mode-toggle button.is-active{background:linear-gradient(135deg,#6f42c1,#5a32a3);color:#fff}.schedule-view-mode-toggle button.is-active:hover{color:#fff;filter:brightness(1.05)}.schedule-by-user-panel{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 8px #0000000f;box-sizing:border-box;margin:0 auto 20px;max-width:1800px;padding:16px 18px;width:100%}.schedule-by-user-empty{color:#868e96;font-size:.95em;margin:0}.schedule-by-user-grid-wrap{background:#fafbfc;border:1px solid #e9ecef;border-radius:8px;overflow:hidden;position:relative;width:100%}.schedule-by-user-grid-scroll{-webkit-overflow-scrolling:touch;--by-user-sbw:0px;--by-user-col-day:40px;--by-user-col-name:100px;--by-user-col-total:52px;box-sizing:border-box;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 6px;position:relative;touch-action:pan-x}@media (min-width:600px){.schedule-by-user-grid-scroll{--by-user-col-name:120px;--by-user-col-total:56px}}.schedule-by-user-hf-pad{box-sizing:border-box;min-width:100%;padding-right:0;padding-right:var(--by-user-sbw,0);width:100%}.schedule-by-user-body-scroll{-webkit-overflow-scrolling:touch;max-height:min(64dvh,68vh,calc(100dvh - 12.5rem),760px);min-height:8rem;min-width:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;width:max-content}.schedule-by-user-table{border-collapse:initial;border-spacing:0;isolation:isolate;min-width:100%;table-layout:fixed;width:max-content}.schedule-by-user-table--head{box-shadow:0 2px 0 0 #dee2e6;position:relative;z-index:3}.schedule-by-user-table--foot{box-shadow:0 -3px 8px -2px #0000001a;position:relative;z-index:3}.schedule-by-user-table thead th.schedule-by-user-th-corner{background:#e9ecef;border-bottom:2px solid #dee2e6;border-right:1px solid #dee2e6;box-shadow:2px 0 6px #0000000a;box-sizing:border-box;color:#343a40;font-size:.85em;font-weight:700;left:0;line-height:1.3;max-width:100px;max-width:var(--by-user-col-name,100px);min-width:100px;min-width:var(--by-user-col-name,100px);padding:8px 10px;position:sticky;text-align:left;vertical-align:middle;width:100px;width:var(--by-user-col-name,100px);word-break:break-word;z-index:6}.schedule-by-user-table thead th.schedule-by-user-th-day{background:#f1f3f5;border-bottom:2px solid #dee2e6;box-shadow:0 1px 0 0 #dee2e6;box-sizing:border-box;color:#343a40;font-size:.75em;font-weight:700;line-height:1.2;max-width:40px;max-width:var(--by-user-col-day,40px);min-height:32px;min-width:40px;min-width:var(--by-user-col-day,40px);padding:0;text-align:center;vertical-align:middle;width:40px;width:var(--by-user-col-day,40px)}.schedule-by-user-table thead th.schedule-by-user-th-day.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf,0 1px 0 0 #dee2e6;padding-left:3px}.schedule-by-user-th-day .schedule-by-user-daynum{color:#212529;display:block;font-size:1.15em;font-weight:800}.schedule-by-user-th-day .schedule-by-user-wd{color:#6c757d;display:block;font-size:.85em;font-weight:600;margin-top:2px}.schedule-by-user-td.is-week-sep,.schedule-by-user-th-day.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf;padding-left:3px}.schedule-by-user-td{border-bottom:1px solid #e9ecef;box-sizing:border-box;height:32px;max-width:40px;max-width:var(--by-user-col-day,40px);min-width:40px;min-width:var(--by-user-col-day,40px);padding:0;text-align:center;transition:filter .12s,opacity .12s;vertical-align:middle;width:40px;width:var(--by-user-col-day,40px)}.schedule-by-user-td[role=button]{cursor:pointer}.schedule-by-user-td[role=button]:hover{filter:brightness(.98);z-index:1}.schedule-by-user-td[role=button]:focus-visible{outline:2px solid #6f42c1;outline-offset:-1px;z-index:1}.schedule-by-user-td.is-processing{cursor:wait;opacity:.65;pointer-events:none}.schedule-by-user-td.is-on{background:linear-gradient(180deg,#e8f5e9,#c8e6c9);box-shadow:inset 0 0 0 1px #2e7d3259}.schedule-by-user-td.is-submitted{background:linear-gradient(180deg,#fffbeb,#fef3c7);box-shadow:inset 0 0 0 1px #d9770652}.schedule-by-user-td.is-off{background:#e9ecef;box-shadow:inset 0 0 0 1px #adb5bd66;opacity:.9}.schedule-by-user-td.is-off:after{color:#adb5bd;content:"—";font-size:.7em;line-height:1;opacity:.5;pointer-events:none}.schedule-by-user-td.is-submitted:after{color:#d97706;content:"·";font-size:1.1em;font-weight:700;line-height:1;opacity:.7;pointer-events:none}.schedule-by-user-td.is-on:after{color:#1b5e20;content:"✓";font-size:.75em;font-weight:700;line-height:1;opacity:.9;pointer-events:none}.schedule-by-user-td.is-off.is-week-sep,.schedule-by-user-td.is-on.is-week-sep,.schedule-by-user-td.is-submitted.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf,inset 0 0 0 1px #0000000f}.schedule-by-user-td.is-on.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf,inset 0 0 0 1px #2e7d3259}.schedule-by-user-td.is-submitted.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf,inset 0 0 0 1px #d9770652}.schedule-by-user-td.is-off.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf,inset 0 0 0 1px #adb5bd66}.schedule-by-user-th-name{background:#fff;background-clip:padding-box;border-bottom:1px solid #e9ecef;border-right:1px solid #dee2e6;box-shadow:2px 0 6px #0000000a;box-sizing:border-box;font-size:.85em;font-weight:700;left:0;line-height:1.3;max-width:100px;max-width:var(--by-user-col-name,100px);min-width:100px;min-width:var(--by-user-col-name,100px);padding:8px 10px;position:sticky;text-align:left;vertical-align:middle;width:100px;width:var(--by-user-col-name,100px);word-break:break-word;z-index:2}.schedule-by-user-th-day.is-hk-holiday .schedule-by-user-daynum,.schedule-by-user-th-day.is-hk-holiday .schedule-by-user-wd{color:#c92a2a}.schedule-by-user-table tfoot tr:first-child td,.schedule-by-user-table tfoot tr:first-child th{border-top:2px solid #ced4da}.schedule-by-user-table tfoot th.schedule-by-user-tfoot-name{background:#e9ecef;background-clip:padding-box;border-right:1px solid #dee2e6;box-shadow:2px 0 6px #0000000a;box-sizing:border-box;color:#343a40;font-size:.85em;font-weight:700;left:0;line-height:1.3;max-width:100px;max-width:var(--by-user-col-name,100px);min-width:100px;min-width:var(--by-user-col-name,100px);padding:8px 10px;position:sticky;text-align:left;vertical-align:middle;width:100px;width:var(--by-user-col-name,100px);word-break:break-word;z-index:5}.schedule-by-user-table tfoot tr:nth-child(2) th.schedule-by-user-tfoot-name,.schedule-by-user-tdfoot{border-top:1px solid #e9ecef}.schedule-by-user-tdfoot{box-sizing:border-box;font-size:.75em;font-weight:700;height:32px;line-height:1.2;max-width:40px;max-width:var(--by-user-col-day,40px);min-height:32px;min-width:40px;min-width:var(--by-user-col-day,40px);padding:0;text-align:center;vertical-align:middle;width:40px;width:var(--by-user-col-day,40px)}.schedule-by-user-tdfoot-num{display:inline-block;font-size:1.15em;font-weight:800;line-height:1.1;vertical-align:middle}.schedule-by-user-table thead th.schedule-by-user-th-shift-total{background:#e9ecef;background-clip:padding-box;border-bottom:2px solid #dee2e6;box-shadow:2px 0 6px #0000000f;color:#343a40;font-size:.7em;font-weight:700;line-height:1.2;padding:4px;white-space:normal;word-break:break-word;z-index:5}.schedule-by-user-table tbody td.schedule-by-user-td-shift-total,.schedule-by-user-table thead th.schedule-by-user-th-shift-total{border-right:1px solid #dee2e6;box-sizing:border-box;left:100px;left:var(--by-user-col-name,100px);max-width:52px;max-width:var(--by-user-col-total,52px);min-width:52px;min-width:var(--by-user-col-total,52px);position:sticky;text-align:center;vertical-align:middle;width:52px;width:var(--by-user-col-total,52px)}.schedule-by-user-table tbody td.schedule-by-user-td-shift-total{background:#fff;background-clip:padding-box;border-bottom:1px solid #e9ecef;box-shadow:2px 0 6px #0000000a;color:#212529;font-size:.85em;font-weight:800;height:32px;line-height:1.1;min-height:32px;padding:0 4px;z-index:3}.schedule-by-user-tdfoot.schedule-by-user-tdfoot--rail{background-clip:padding-box;border-right:1px solid #dee2e6;box-shadow:2px 0 6px #0000000a;box-sizing:border-box;font-size:.75em;height:32px;left:100px;left:var(--by-user-col-name,100px);max-width:52px;max-width:var(--by-user-col-total,52px);min-height:32px;min-width:52px;min-width:var(--by-user-col-total,52px);padding:0;position:sticky;vertical-align:middle;width:52px;width:var(--by-user-col-total,52px);z-index:4}.schedule-by-user-tdfoot--rail.schedule-by-user-tdfoot--target,.schedule-by-user-tdfoot--rail:not(.schedule-by-user-tdfoot--target){background:#e9ecef}.schedule-by-user-tdfoot--target{background:#e9ecef;color:#495057;font-weight:600}.schedule-by-user-tdfoot--low{background:#fff3cd;color:#856404}.schedule-by-user-tdfoot--ok{background:#d3edda;color:#1b5e20}.schedule-by-user-tdfoot--over{background:#f8d7da;color:#842029}.schedule-by-user-tdfoot--low.is-week-sep,.schedule-by-user-tdfoot--ok.is-week-sep,.schedule-by-user-tdfoot--over.is-week-sep,.schedule-by-user-tdfoot--target.is-week-sep,.schedule-by-user-tdfoot.is-week-sep{box-shadow:inset 3px 0 0 0 #7e5bbf;padding-left:3px}.calendar-grid{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 3px 12px #00000014;margin-bottom:25px;overflow-x:auto;padding:20px;width:100%}.calendar-header{grid-gap:8px;display:grid;font-weight:600;gap:8px;grid-template-columns:repeat(7,1fr);margin-bottom:10px;min-width:1200px;text-align:center}.calendar-header-cell{background:linear-gradient(135deg,#8e44ad,#9b59b6);border-radius:6px;box-shadow:0 2px 6px #8e44ad4d;color:#fff;font-size:.9em;font-weight:600;letter-spacing:.5px;padding:12px 8px;text-transform:uppercase;transition:all .3s ease}.calendar-header-cell:hover{box-shadow:0 4px 10px #8e44ad66;transform:translateY(-1px)}.calendar-cells{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr);min-height:1200px;min-width:1200px}.day-container{align-items:stretch;height:100%;min-height:0}.day,.day-container{display:flex;flex-direction:column}.day{align-items:center;background:linear-gradient(145deg,#fff,#f8f9fa);border:2px solid #e9ecef;border-radius:8px;box-shadow:0 2px 6px #0000000d;box-sizing:border-box;cursor:pointer;justify-content:flex-start;padding:15px;position:relative;transition:all .3s ease}.day,.day.empty{max-height:360px;min-height:280px}.day.empty{background:#0000;border:none;box-shadow:none;cursor:default}.day:hover{background:linear-gradient(145deg,#e3f2fd,#bbdefb);border-color:#2196f3;box-shadow:0 6px 20px #2196f326}.day.selected,.day:hover{transform:translateY(-2px)}.day.selected{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#f59e0b;box-shadow:0 6px 20px #f59e0b40;color:#fff}.day.full-shift{background:linear-gradient(145deg,#fff8e1,#ffecb3);border-color:#ffc107;overflow:hidden;position:relative}.day.full-shift:before{background:linear-gradient(90deg,#ff9800,#ffc107,#ffeb3b);content:"";height:3px;left:0;position:absolute;right:0;top:0}.day.hk-public-holiday{background:linear-gradient(145deg,#fff8f8,#ffecec);border-color:#c0392b;box-shadow:0 0 0 1px #c0392b33}.day.selected.hk-public-holiday{background:linear-gradient(135deg,#e67e22,#c0392b);border-color:#a93226}.day .day-number{color:#2c3e50;flex-shrink:0;font-size:1.4em;font-weight:700;margin-bottom:8px;position:relative;text-shadow:0 1px 2px #0000001a;z-index:2}.day.selected .day-number{color:#fff;text-shadow:0 1px 3px #0000004d}.day.full-shift .day-number{color:#e65100;font-weight:800}.day .grouping-details{background:#ffffffe6;border:1px solid #fff3;border-radius:4px;box-shadow:0 1px 3px #0000001a;color:#34495e;display:flex;flex:0 0 auto;flex-direction:column;font-size:.8em;line-height:1.35;margin-top:auto;max-height:250px;min-height:150px;overflow-y:auto;padding:4px 6px;text-align:left;width:95%}.grouping-details--placeholder{background:#ffffff59;border:1px dashed #0000001a;box-shadow:none;flex:0 0 auto;overflow:hidden;pointer-events:none;visibility:hidden}@media (min-width:769px){.day.is-current-month{max-height:none;min-height:340px}.day .grouping-details,.day .grouping-details--placeholder{max-height:300px;min-height:242px}.day .grouping-details--placeholder{min-height:242px}}.day.selected .grouping-details{background:#ffffff26;border:1px solid #ffffff4d;color:#fff}.group-label{background-color:#ffffff26!important;border-radius:3px;color:#fff!important;display:inline-block;font-size:.75em;font-weight:600;margin:1px 0;min-width:60px;padding:2px 6px;text-align:left!important}.day.selected .group-label{background-color:#ffffff40!important;color:#fff!important}.day.full-shift .group-label{background-color:#fff3!important;color:#fff!important}.empty-group{background:#9999991a;border:1px dashed #9999994d;border-radius:3px;font-style:italic;margin:1px 0;opacity:.6;padding:2px 4px}.user-name{color:inherit;font-size:.8em;font-weight:500;margin:0;overflow:hidden;padding:1px 0;text-align:left;text-overflow:ellipsis;transition:all .2s ease;white-space:nowrap}.user-name:hover{background:#fff3;overflow:visible;transform:scale(1.02);white-space:normal}.day.selected .user-name{color:#fff}.day.full-shift .user-name{color:#34495e}.grouping-line{border-radius:3px;font-weight:500;margin:0;overflow:hidden;padding:1px 0;text-align:left;text-overflow:ellipsis;transition:all .2s ease;white-space:nowrap}.grouping-line:hover{background:#fff3;overflow:visible;transform:scale(1.02);white-space:normal}.special-marker{animation:pulse 2s infinite;color:#e74c3c;font-size:1.2em;font-weight:800;margin-left:4px;text-shadow:0 1px 2px #0003}.special-day-checkbox{align-items:center;background:#fffc;border:1px solid #0000001a;border-radius:4px;display:flex;flex-direction:column;flex-shrink:0;font-size:.95em;gap:8px;justify-content:center;margin-top:8px;min-width:160px;padding:8px 12px;transition:all .2s ease}.special-day-checkbox:hover{background:#fffffff2;transform:scale(1.05)}.special-day-checkbox input[type=checkbox]{accent-color:#ffc107;transform:scale(1.1)}.time-inputs{display:flex;flex-direction:column;gap:8px;margin-top:8px;width:100%}.time-input-group{align-items:center;display:flex;font-size:.9em;gap:6px}.time-input-group label{color:#2c3e50;font-weight:600;min-width:40px}.time-input-group input[type=number]{border:1px solid #ddd;border-radius:3px;font-size:.9em;height:28px;padding:4px;text-align:center;width:48px}.time-input-group input[type=number]:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a;outline:none}.month-default-button{background-color:#9b59b6;border:none;border-radius:6px;box-shadow:0 2px 6px #9b59b633;color:#fff;cursor:pointer;font-size:.95em;font-weight:500;padding:12px 24px;transition:background-color .3s ease,box-shadow .2s ease}.month-default-button:hover{background-color:#8e44ad;box-shadow:0 4px 10px #9b59b64d;transform:translateY(-1px)}.month-default-button:active{transform:translateY(0)}.month-default-button:disabled{background-color:#bdc3c7;box-shadow:none;cursor:not-allowed;transform:none}.manual-trigger-button{background:linear-gradient(135deg,#f093fb,#f5576c);border:none;border-radius:6px;box-shadow:0 2px 6px #f093fb33;color:#fff;cursor:pointer;font-size:.9em;font-weight:500;padding:12px 20px;transition:all .3s ease}.manual-trigger-button:hover{box-shadow:0 4px 10px #f093fb4d;transform:translateY(-1px)}.manual-trigger-button:active{transform:translateY(0)}.manual-trigger-button:disabled{background-color:#bdc3c7;box-shadow:none;cursor:not-allowed;transform:none}.control-buttons{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 6px #0000000d;display:flex;flex-direction:column;gap:20px;margin-top:30px;padding:20px}.control-buttons-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.control-buttons-row.secondary{justify-content:center;margin-top:10px}.control-buttons button{background-color:#27ae60;border:none;border-radius:6px;box-shadow:0 2px 6px #27ae6033;color:#fff;cursor:pointer;flex:1 1;font-size:.9em;font-weight:500;max-width:200px;min-width:160px;padding:12px 20px;text-align:center;transition:all .3s ease}.control-buttons button:hover{background-color:#229954;box-shadow:0 4px 10px #27ae604d;transform:translateY(-1px)}.control-buttons button:active{transform:translateY(0)}.control-buttons .month-default-button{background:linear-gradient(135deg,#9b59b6,#8e44ad);box-shadow:0 2px 6px #9b59b633}.control-buttons .month-default-button:hover{background:linear-gradient(135deg,#8e44ad,#7d3c98);box-shadow:0 4px 10px #9b59b64d}.control-buttons .manual-trigger-button{background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 2px 6px #f093fb33;flex:1 1;max-width:300px;min-width:200px}.control-buttons .manual-trigger-button:hover{background:linear-gradient(135deg,#f5576c,#e74c3c);box-shadow:0 4px 10px #f093fb4d}.modal-overlay{animation:fadeIn .2s ease-in;background-color:#00000080;height:100%;left:0;overscroll-behavior:contain;position:fixed;top:0;width:100%;z-index:1000}.modal-nav-arrow,.modal-overlay{align-items:center;display:flex;justify-content:center}.modal-nav-arrow{background-color:#ffffffe6;border:none;border-radius:50%;box-shadow:0 2px 8px #0003;color:#333;cursor:pointer;font-size:20px;font-weight:700;height:45px;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:45px;z-index:1001}.modal-nav-arrow:hover{background-color:#fff;box-shadow:0 4px 12px #0000004d;transform:translateY(-50%) scale(1.1)}.modal-nav-arrow:active{transform:translateY(-50%) scale(.95)}.modal-nav-left{left:20px}.modal-nav-right{right:20px}.modal{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-width:90%;padding:25px;position:relative;width:350px}.enhanced-grouping-modal{max-height:85vh;max-width:95%;overflow-y:auto;overscroll-behavior:contain;width:650px}.modal h3{color:#2c3e50;font-size:1.4em;font-weight:600;text-align:center}.modal h3,.modal-header{border-bottom:2px solid #e9ecef;margin-bottom:20px;padding-bottom:10px}.modal-header{align-items:stretch;flex-direction:column;gap:16px}.modal-header-top{align-items:center;display:flex;justify-content:center;position:relative}.modal-header h3{border-bottom:none;font-size:1.25rem;margin:0;padding-bottom:0;text-align:center}.requirement-selector-container{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;padding:16px}.requirement-label{color:#495057;font-size:14px;font-weight:500;white-space:nowrap}.requirement-select{background:#fff;border:1px solid #ced4da;border-radius:4px;color:#495057;cursor:pointer;font-size:14px;min-width:80px;padding:6px 10px;transition:all .2s ease}.requirement-select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.requirement-select:hover{background:#f8f9fa;border-color:#007bff}.requirement-stepper{align-items:center;background:#fff;border:1px solid #ced4da;border-radius:6px;display:flex;gap:0;overflow:hidden}.requirement-stepper-btn{align-items:center;background:#f1f3f5;border:none;color:#495057;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;font-weight:600;height:34px;justify-content:center;transition:all .2s ease;width:32px}.requirement-stepper-btn:hover{background:#e9ecef;color:#007bff}.requirement-stepper-btn:active{background:#dee2e6}.requirement-stepper-input{border:1px solid #ced4da!important;border-bottom:none!important;border-radius:0!important;border-top:none!important;font-weight:600;min-width:48px!important;text-align:center;width:48px!important}.requirement-stepper-input:focus{box-shadow:none!important;outline:none!important}.requirement-unit{color:#495057;font-size:14px;font-weight:500;margin-left:4px}.save-status-slot{position:absolute;right:0;top:50%;transform:translateY(-50%)}.save-status{border-radius:6px;font-size:13px;padding:6px 12px}.save-status.saving{background:#fef3c7;color:#92400e}.save-status.success{background:#d1fae5;color:#065f46}.requirement-stepper-btn:disabled{cursor:not-allowed;opacity:.5}.apply-week-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s;white-space:nowrap}.apply-week-btn:hover:not(:disabled){background:#2563eb}.apply-week-btn:disabled{cursor:not-allowed;opacity:.5}.day.fully-assigned{background:linear-gradient(135deg,#10b981,#059669)!important;border:2px solid #059669!important;box-shadow:0 6px 20px #10b9814d!important}.day.fully-assigned .day-number{color:#fff!important}.clear-date-btn{background-color:#e74c3c;border:none;border-radius:6px;box-shadow:0 2px 4px #e74c3c33;color:#fff;cursor:pointer;font-size:.95em;font-weight:500;margin-top:4px;padding:10px 20px;transition:all .3s ease;white-space:nowrap;width:100%}.clear-date-btn:hover{background-color:#c0392b;box-shadow:0 4px 8px #e74c3c4d;transform:translateY(-1px)}.clear-date-btn:active{transform:translateY(0)}.group-management{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-bottom:20px;padding:15px}.group-controls{display:flex;flex-direction:column;gap:15px}.group-count{background-color:#fff;border:1px solid #dee2e6;border-radius:4px;color:#6c757d;font-size:.95em;font-weight:500;padding:8px;text-align:center}.grouping-form.enhanced{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.form-group.enhanced{background-color:#fff;border:1px solid #e9ecef;border-radius:6px;box-shadow:0 1px 3px #0000000d;padding:15px;transition:all .3s ease}.form-group.enhanced:hover{border-color:#3498db;box-shadow:0 2px 8px #3498db1a}.form-group.enhanced.disabled{background-color:#f8f9fa;border-color:#dee2e6;filter:grayscale(50%);opacity:.6;pointer-events:none}.form-group.enhanced.disabled .group-header{pointer-events:auto}.form-group.enhanced.disabled .group-name-label{color:#6c757d;cursor:default}.form-group.enhanced.disabled .edit-icon{display:none}.form-group.enhanced.disabled .enhanced-select{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.form-group.enhanced.disabled .btn-enable-group{background-color:#27ae60;color:#fff;cursor:pointer;filter:none;opacity:1;pointer-events:auto}.form-group.enhanced.disabled .btn-enable-group:hover{background-color:#229954;transform:scale(1.1)}.group-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.group-name-section{flex:1 1}.group-name-label{align-items:center;border-radius:4px;color:#2c3e50;cursor:pointer;display:flex;font-size:1em;font-weight:600;gap:8px;margin:0;padding:6px 10px;transition:background-color .3s ease}.group-name-label:hover{background-color:#f8f9fa}.edit-icon{font-size:.8em;opacity:.6;transition:opacity .3s ease}.group-name-label:hover .edit-icon{opacity:1}.group-name-edit{align-items:center;display:flex;gap:6px;width:100%}.group-name-input{background-color:#fff;border:2px solid #3498db;border-radius:4px;flex:1 1;font-size:1em;font-weight:500;min-width:120px;padding:10px 14px;transition:border-color .3s ease,box-shadow .3s ease}.group-name-input:focus{border-color:#2980b9;box-shadow:0 0 0 3px #3498db1a;outline:none}.btn-cancel-name,.btn-save-name{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:.85em;font-weight:700;justify-content:center;min-height:32px;min-width:32px;padding:6px 10px;transition:all .3s ease}.btn-save-name{background-color:#27ae601a;color:#27ae60}.btn-save-name:hover{background-color:#27ae60;color:#fff;transform:scale(1.1)}.btn-cancel-name{background-color:#e74c3c1a;color:#e74c3c}.btn-cancel-name:hover{background-color:#e74c3c;color:#fff;transform:scale(1.1)}.btn-disable-group{align-items:center;background-color:#e74c3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:700;height:24px;justify-content:center;transition:all .3s ease;width:24px}.btn-disable-group:hover{background-color:#c0392b;transform:scale(1.1)}.btn-enable-group{align-items:center;background-color:#27ae60;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:24px;justify-content:center;transition:all .3s ease;width:24px}.btn-enable-group:hover{background-color:#229954;transform:scale(1.1)}.select-clear-container{align-items:center;display:flex;gap:8px}.enhanced-select{background-color:#fff;border:2px solid #e9ecef;border-radius:4px;flex:1 1;font-size:.95em;padding:10px;transition:border-color .3s ease,box-shadow .3s ease}.btn-clear-group{background-color:#f39c12;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85em;font-weight:500;max-width:20px;padding:8px 12px;transition:all .3s ease;white-space:nowrap}.btn-clear-group:hover{background-color:#e67e22;box-shadow:0 2px 4px #f39c124d;transform:translateY(-1px)}.btn-clear-group:active{transform:translateY(0)}.enhanced-select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.enhanced-select:disabled{background-color:#e9ecef;border-color:#dee2e6;color:#6c757d;cursor:not-allowed}.selected-employee{background-color:#e8f5e8;border-left:3px solid #27ae60;border-radius:4px;font-size:.9em;font-weight:500;margin-top:10px;padding:10px 12px}.modal-buttons{display:flex;gap:12px;justify-content:space-around;margin-top:20px}.modal-buttons button{border:none;border-radius:6px;cursor:pointer;font-size:.95em;font-weight:500;min-width:100px;padding:10px 20px;transition:all .3s ease}.modal-buttons .btn-primary{background-color:#3498db;color:#fff}.modal-buttons .btn-primary:hover{background-color:#2980b9;box-shadow:0 3px 8px #3498db33;transform:translateY(-1px)}.modal-buttons .btn-secondary{background-color:#95a5a6;color:#fff}.modal-buttons .btn-secondary:hover{background-color:#7f8c8d;box-shadow:0 3px 8px #95a5a633;transform:translateY(-1px)}@media (max-width:768px){.control-panel{padding:15px}.calendar-grid{margin-bottom:20px;padding:15px}.control-buttons{gap:15px;padding:15px}.control-buttons-row{flex-direction:column;gap:10px}.control-buttons button{max-width:none;min-width:auto;width:100%}.control-buttons .manual-trigger-button{max-width:none}.calendar-header-cell{font-size:.8em;padding:8px 4px}.day{max-height:140px;min-height:100px;padding:8px}.day .day-number{font-size:1.1em}.day .grouping-details{font-size:.7em;max-height:70px;padding:3px 5px;width:95%}.special-day-checkbox{font-size:.85em;min-width:140px;padding:6px 8px}.time-input-group{font-size:.8em}.time-input-group input[type=number]{font-size:.8em;height:24px;width:42px}.enhanced-grouping-modal{margin:10px;width:95%}.modal-header{align-items:center;flex-direction:column;gap:10px}.modal-header h3{text-align:center}.clear-date-btn{font-size:.95em;padding:10px;width:100%}.modal-nav-arrow{font-size:18px;height:40px;width:40px}.modal-nav-left{left:10px}.modal-nav-right{right:10px}.group-controls{gap:10px}.group-header{align-items:flex-start;flex-direction:column;gap:10px}.group-name-edit{width:100%}.group-name-input{font-size:.9em;min-width:100px}.select-clear-container{flex-direction:column;gap:6px}.btn-clear-group{font-size:.9em;padding:10px;width:100%}.modal-buttons{flex-direction:column}.modal-buttons button{width:100%}}@media (max-width:480px){.calendar-grid,.control-panel{padding:10px}.control-buttons{gap:12px;padding:10px}.control-buttons button{font-size:.85em;padding:10px 16px}.calendar-header-cell{font-size:.75em;padding:6px 2px}.day{max-height:120px;min-height:80px;padding:6px}.day .day-number{font-size:1em}.day .grouping-details{font-size:.65em;max-height:60px;padding:2px 4px}.special-day-checkbox{font-size:.8em;min-width:120px;padding:4px 6px}.time-input-group{font-size:.75em}.time-input-group input[type=number]{font-size:.75em;height:20px;width:36px}.modal-nav-arrow{font-size:16px;height:35px;width:35px}.modal-nav-left{left:5px}.modal-nav-right{right:5px}}.control-panel.loading{opacity:.7;pointer-events:none}.btn-cancel-name:focus,.btn-clear-group:focus,.btn-disable-group:focus,.btn-enable-group:focus,.btn-save-name:focus,.clear-date-btn:focus,.enhanced-select:focus,.group-name-input:focus,.modal-nav-arrow:focus{outline:2px solid #3498db;outline-offset:2px}@media (prefers-contrast:high){.calendar-grid{border:2px solid #000}.calendar-header-cell{background:#000;border:1px solid #fff;color:#fff}.day{background:#fff;border:2px solid #000}.day:hover{background:#e0e0e0;border-color:#000}.day.selected{background:#000;border-color:#fff;color:#fff}.day.full-shift{background:#ffffe0}.day.full-shift,.form-group.enhanced{border-color:#000}.form-group.enhanced.disabled{background-color:#000;border-color:#fff;color:#fff}.selected-employee{background-color:#000;border-left-color:#fff;color:#fff}.btn-disable-group,.btn-enable-group{background-color:#000;border:1px solid #fff;color:#fff}}@media (prefers-reduced-motion:reduce){.btn-cancel-name,.btn-disable-group,.btn-enable-group,.btn-save-name,.calendar-header-cell,.day,.modal-buttons button,.modal-nav-arrow,.special-day-checkbox{transition:none}.btn-cancel-name:hover,.btn-disable-group:hover,.btn-enable-group:hover,.btn-save-name:hover,.calendar-header-cell:hover,.day:hover,.modal-nav-arrow:hover{transform:none}.special-marker{animation:none}}.day.other-month{background:#f8f9fa!important;border:1px solid #e9ecef!important;color:#ccc!important;opacity:.1}.time-display{background:#0000000d;border-radius:3px;margin-top:5px;padding:2px 4px;text-align:center}.time-text{color:#333;font-size:10px;font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day.selected .time-text{color:#fff}.day.selected .time-display{background:#fff3}.control-panel-loading-overlay{align-items:center;animation:control-panel-loading-fade .35s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(145deg,#0f172ae0,#1e3a5fd1 45%,#0f172ae6);box-sizing:border-box;display:flex;inset:0;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px;position:fixed;z-index:2000}@keyframes control-panel-loading-fade{0%{opacity:0}to{opacity:1}}.control-panel-loading-card{background:#fffffff7;border-radius:16px;box-shadow:0 25px 50px -12px #00000059,inset 0 0 0 1px #ffffff80;max-width:320px;padding:32px 28px;text-align:center}.control-panel-loading-spinner{animation:control-panel-loading-spin .75s linear infinite;border-color:#3498db #2980b9 #3498db33 #3498db33;border-radius:50%;border-style:solid;border-width:3px;height:52px;margin:0 auto 20px;width:52px}@keyframes control-panel-loading-spin{to{transform:rotate(1turn)}}.control-panel-loading-title{color:#1e293b;font-size:1.2rem;font-weight:700;letter-spacing:-.02em;margin:0 0 8px}.control-panel-loading-sub{color:#64748b;font-size:.9rem;line-height:1.5;margin:0}.control-panel-loading-dots{display:flex;gap:8px;justify-content:center;margin-top:18px}.control-panel-loading-dots span{animation:control-panel-loading-dot 1.1s ease-in-out infinite;background:linear-gradient(145deg,#3498db,#2980b9);border-radius:50%;height:8px;opacity:.35;width:8px}.control-panel-loading-dots span:nth-child(2){animation-delay:.15s}.control-panel-loading-dots span:nth-child(3){animation-delay:.3s}@keyframes control-panel-loading-dot{0%,to{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.employee-color-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.employee-color-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;overflow:hidden;width:1200px}.modal-header{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:24px 32px}.modal-header,.modal-header h2{align-items:center;display:flex}.modal-header h2{color:#1f2937;font-size:24px;font-weight:600;gap:12px;margin:0}.close-button{background:#ef4444;border-radius:8px;font-size:16px;font-weight:700;height:32px;width:32px}.close-button:hover{background:#dc2626;transform:scale(1.05)}.modal-content{flex:1 1;overflow-y:auto;padding:32px}.error-message{font-weight:500}.success-message{border-radius:8px;font-weight:500;margin-bottom:20px}.user-stats{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-left:4px solid #3b82f6;border-radius:12px;margin-bottom:30px;padding:20px}.user-stats p{color:#1f2937;font-size:16px;font-weight:500;margin:8px 0}.user-stats strong{color:#3b82f6;font-weight:700}.users-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:20px}.user-color-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:20px;transition:all .3s ease}.user-color-card:hover{border-color:#3b82f6;box-shadow:0 8px 25px #3b82f626;transform:translateY(-2px)}.user-info{margin-bottom:20px}.user-name{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:10px;margin-bottom:8px}.google-badge{background:linear-gradient(135deg,#4285f4,#34a853);border-radius:12px;color:#fff;font-size:11px;font-weight:500;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.user-username{color:#6b7280;font-family:Courier New,monospace;font-size:14px;margin-bottom:8px}.google-profile-info,.shift-info{color:#6b7280;font-size:12px}.shift-info{font-weight:500;margin-top:4px}.color-section{display:flex;flex-direction:column;gap:15px}.current-color-display{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:12px;padding:12px}.color-preview{border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 4px #0000001a;height:40px;width:40px}.color-code{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;font-family:Courier New,monospace;font-size:14px;font-weight:600;padding:4px 8px}.color-controls{align-items:center;display:flex;gap:12px}.color-input{border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;height:50px;transition:all .2s ease;width:50px}.color-input:hover{box-shadow:0 4px 8px #00000026;transform:scale(1.05)}.save-button{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:12px 20px;transition:all .2s ease}.save-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.save-button:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.no-users{color:#6b7280;padding:40px 20px;text-align:center}.no-users p{font-size:16px;margin:8px 0}@media (max-width:768px){.employee-color-modal{max-height:95vh;width:95vw}.modal-content,.modal-header{padding:20px}.users-grid{gap:16px;grid-template-columns:1fr}.user-color-card{padding:16px}.color-controls{align-items:stretch;flex-direction:column}.save-button{width:100%}}@media (max-width:480px){.modal-header h2{font-size:20px}.user-name{font-size:16px}.color-preview{height:30px;width:30px}.color-input{height:40px;width:40px}}.auto-schedule-modal{background:#fff;border-radius:12px;box-shadow:0 20px 40px #00000026;max-height:90vh;max-width:1200px;overflow-y:auto;width:95vw}.auto-schedule-modal .modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.auto-schedule-modal .modal-header h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.auto-schedule-modal .close-btn{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:24px;padding:4px;transition:all .2s}.auto-schedule-modal .close-btn:hover{background:#f3f4f6;color:#374151}.auto-schedule-modal .modal-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;padding:24px}.generate-section,.month-selection-section,.submissions-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:32px;padding:20px}.generate-section{grid-column:1/-1}.generate-section h4,.month-selection-section h4,.submissions-section h4{color:#1f2937;font-size:1.1rem;font-weight:600;margin:0 0 12px}.section-description{color:#6b7280;font-size:.9rem;line-height:1.5;margin:0 0 16px}.month-selector{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:16px}.year-month-inputs{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.input-group{align-items:center;display:flex;gap:8px}.input-group label{color:#374151;font-size:.9rem;font-weight:500}.month-select,.year-select{background:#fff;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem;min-width:80px;padding:8px 12px}.month-select:focus,.year-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.refresh-btn{background:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.refresh-btn:hover{background:#2563eb}.no-data{background:#f9fafb;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;font-style:italic;padding:20px;text-align:center}.auto-priority{background:#dbeafe;border-radius:12px;color:#1e40af;font-size:.8rem;font-weight:500;padding:2px 8px}.users-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.user-priority-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s}.user-priority-item:hover{border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.user-info{gap:8px}.nickname{color:#6b7280;font-size:.9rem}.priority-control{align-items:center;display:flex;gap:8px}.priority-control label{color:#374151;font-size:.9rem;font-weight:500}.priority-input{border:1px solid #d1d5db;border-radius:4px;font-size:.9rem;padding:4px 8px;text-align:center;width:60px}.priority-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.update-btn{background:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:4px 12px;transition:all .2s}.update-btn:hover{background:#2563eb}.batch-update-btn{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.batch-update-btn:hover{background:#059669}.submissions-list{display:flex;flex-direction:column;gap:12px}.submission-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:16px;transition:all .2s}.submission-item:hover{border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.submission-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.submission-header .username{color:#1f2937;font-weight:600}.submission-header .nickname{color:#6b7280;font-size:.9rem}.submission-header .priority{background:#fef3c7;color:#92400e}.submission-header .count,.submission-header .priority{border-radius:12px;font-size:.8rem;font-weight:500;padding:2px 8px}.submission-header .count{background:#dbeafe;color:#1e40af}.submitted-dates{display:flex;flex-wrap:wrap;gap:4px}.date-tag{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;color:#374151;font-size:.8rem;padding:2px 6px}.generate-btn{background:#8b5cf6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s;width:100%}.generate-btn:hover:not(:disabled){background:#7c3aed;box-shadow:0 4px 12px #8b5cf64d;transform:translateY(-1px)}.generate-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.error-message{background:#fef2f2}.error-message,.success-message{border-radius:6px;font-size:.9rem;margin-bottom:16px}.success-message{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;padding:12px 16px}.auto-schedule-modal .modal-buttons{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.btn-secondary{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;padding:8px 16px;transition:all .2s}.btn-secondary:hover{background:#e5e7eb}.priority-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.priority-item{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:grab;display:flex;padding:12px 16px;position:relative;touch-action:none;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.priority-item:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-1px)}.priority-item.dragging{opacity:0;transition:opacity .2s ease}.priority-item.drag-over{background:#f0fdf4;border-color:#10b981;box-shadow:0 4px 12px #10b98133;transform:scale(1.02)}.priority-item.drag-overlay{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-color:#3b82f6;box-shadow:0 12px 30px #00000040;cursor:grabbing;opacity:.95;transform:scale(1.1);z-index:9999}.month-requirement-setting{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;padding:20px}.requirement-input-group{align-items:center;display:flex;gap:12px;margin-bottom:12px}.requirement-input-group .requirement-label{color:#374151;font-size:16px;font-weight:600;white-space:nowrap}.requirement-input-group .requirement-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:16px;min-width:100px;padding:8px 12px;transition:all .2s ease}.requirement-input-group .requirement-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.requirement-input-group .requirement-select:hover{background:#f9fafb;border-color:#3b82f6}.set-requirement-btn{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.set-requirement-btn:hover{background:#059669;box-shadow:0 4px 8px #10b9814d;transform:translateY(-1px)}.set-requirement-btn:active{box-shadow:0 2px 4px #10b9814d;transform:translateY(0)}.monthly-set-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#16a34a;font-size:14px;font-weight:500;margin:12px 0 8px;padding:10px 14px}.requirement-note{color:#6b7280;font-size:14px;font-style:italic;margin:0}.date-input .requirement-select:hover{background:#f9fafb;border-color:#3b82f6}.individual-dates-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:24px;padding:20px}.individual-dates-header{align-items:center;display:flex;justify-content:center;margin-bottom:12px}.individual-dates-section h5{color:#374151;font-size:16px;font-weight:600;margin:0}.expand-dates-btn{background:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-left:70px;margin-right:70px;padding:4px 8px;transition:all .2s ease}.expand-dates-btn:hover{background:#2563eb;box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px)}.auto-schedule-calendar-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:0 auto;max-width:500px;overflow:hidden}.calendar-legend{color:#6b7280;font-size:12px;font-weight:500;margin:0 0 8px;padding:8px 12px}.auto-schedule-calendar-header,.calendar-legend{background:#f8fafc;border-bottom:1px solid #e5e7eb}.auto-schedule-calendar-header{display:grid;grid-template-columns:repeat(7,1fr)}.auto-schedule-calendar-header-cell{border-right:1px solid #e5e7eb;color:#374151;font-size:12px;font-weight:600;min-height:24px;padding:6px 4px;text-align:center}.auto-schedule-calendar-header-cell:last-child{border-right:none}.auto-schedule-calendar-grid{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(7,1fr)}.auto-schedule-calendar-cell{align-items:center;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;justify-content:center;min-height:35px;padding:3px;transition:all .2s ease}.auto-schedule-calendar-cell:nth-child(7n){border-right:none}.auto-schedule-date-cell{background:#fff;cursor:pointer}.auto-schedule-date-cell:hover{background:#f8fafc;border-color:#3b82f6}.auto-schedule-empty-cell{background:#f9fafb;border-color:#f3f4f6}.auto-schedule-date-info{margin-bottom:2px}.auto-schedule-date-day{color:#1f2937;font-size:13px;font-weight:700;line-height:1}.auto-schedule-date-input,.auto-schedule-date-input-row{align-items:center;display:flex;gap:2px;justify-content:center;width:100%}.auto-schedule-date-input-row .date-input-unit{color:#6b7280;font-size:10px;font-weight:500}.auto-schedule-date-cell.sunday-cell{background:#f9fafb}.auto-schedule-date-cell.sunday-cell .auto-schedule-date-day{color:#9ca3af}.rest-day-badge{color:#9ca3af;display:block;font-size:9px;margin-top:1px}.auto-schedule-date-input .auto-schedule-requirement-select,.auto-schedule-date-input-row .auto-schedule-requirement-select{background:#fff;border:1px solid #d1d5db;border-radius:3px;color:#374151;cursor:pointer;font-size:11px;max-width:100%;min-height:18px;padding:2px 3px;text-align:center;transition:all .2s ease;width:36px}.auto-schedule-date-input .auto-schedule-requirement-select:focus,.auto-schedule-date-input-row .auto-schedule-requirement-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.auto-schedule-date-input .auto-schedule-requirement-select:hover,.auto-schedule-date-input-row .auto-schedule-requirement-select:hover{background:#f9fafb;border-color:#3b82f6}.priority-number{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:flex;font-size:.9rem;font-weight:600;height:32px;justify-content:center;margin-right:12px;width:32px}.priority-user-info{align-items:center;display:flex;flex:1 1;gap:12px}.priority-username{color:#1f2937;font-weight:600}.priority-nickname{color:#6b7280;font-size:.9rem}.priority-count{background:#dbeafe;border-radius:12px;color:#1e40af;font-size:.8rem;font-weight:500;padding:4px 8px}.priority-drag-handle{color:#9ca3af;cursor:grab;padding:4px}.priority-drag-handle:hover{color:#6b7280}.priority-min-days{align-items:center;display:flex;gap:8px;margin-left:12px}.priority-min-days.no-drag{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.min-days-label{color:#6b7280;font-size:12px;white-space:nowrap}.min-days-select{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;font-size:12px;min-width:50px;padding:4px 6px;transition:all .2s ease}.min-days-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.min-days-select:hover{border-color:#3b82f6}.user-hours-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:24px;padding:20px}.user-hours-section h4{color:#374151;font-size:16px;font-weight:600;margin:0 0 12px}.user-hours-btn{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.user-hours-btn:hover{background:#059669;box-shadow:0 4px 8px #10b9814d;transform:translateY(-1px)}.user-hours-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.user-hours-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:80vh;max-width:800px;overflow:hidden;width:90%}.user-hours-modal .modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px}.user-hours-modal .modal-header h3{color:#1f2937;font-size:18px;font-weight:600;margin:0}.user-hours-modal .close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s ease;width:30px}.user-hours-modal .close-btn:hover{background:#f3f4f6;color:#374151}.user-hours-content{max-height:60vh;overflow-y:auto;padding:20px}.user-hours-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:16px}.user-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.username{color:#1f2937;font-size:16px;font-weight:600}.work-stats{align-items:center;display:flex;gap:16px}.work-stats .days{color:#6b7280;font-size:14px}.work-stats .hours{color:#059669;font-size:14px;font-weight:600}.work-days{margin-top:8px}.work-days-label{color:#6b7280;font-size:12px;margin-bottom:6px}.work-days-list{display:flex;flex-wrap:wrap;gap:6px}.work-day{background:#dbeafe;border-radius:4px;color:#1e40af;font-size:12px;font-weight:500;padding:2px 8px}@media (max-width:1024px){.auto-schedule-modal .modal-content{gap:16px;grid-template-columns:1fr}.generate-section{grid-column:1}}@media (max-width:768px){.auto-schedule-modal{margin:20px;max-width:95vw;width:95vw}.auto-schedule-modal .modal-content{gap:12px;padding:16px}.user-priority-item{align-items:flex-start;flex-direction:column;gap:12px}.priority-control{justify-content:space-between;width:100%}.submission-header{align-items:flex-start;flex-direction:column;gap:8px}.submission-header>span{display:block}}.generate-btn:disabled{overflow:hidden;position:relative}.generate-btn:disabled:after{animation:loading 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes loading{0%{left:-100%}to{left:100%}}.loading-feedback{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:20px 0;padding:20px}.progress-container{align-items:center;display:flex;gap:15px;margin-bottom:10px}.progress-bar{background:#e9ecef;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#4a90e2,#357abd);border-radius:4px;height:100%;position:relative;transition:width .3s ease}.progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-text{color:#4a90e2;font-weight:600;min-width:40px;text-align:right}.loading-step{color:#6c757d;font-size:14px;font-weight:500;text-align:center}.error-feedback,.success-feedback{align-items:center;border-radius:6px;display:flex;font-size:14px;font-weight:500;gap:10px;margin:15px 0;padding:12px 16px}.error-feedback{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.success-feedback{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.error-icon,.success-icon{font-size:16px}.error-text,.success-text{flex:1 1}.generate-btn.loading{background:linear-gradient(135deg,#4a90e2,#357abd);cursor:not-allowed}.btn-loading-content{align-items:center;display:flex;gap:8px;justify-content:center}.spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.employee-list-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.employee-list-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:row;max-height:95vh;max-width:1400px;overflow:hidden;position:relative;width:95%}.employee-list-modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #fff3;box-sizing:border-box;color:#fff;display:flex;height:64px;justify-content:space-between;left:0;padding:18px 24px;position:absolute;right:0;top:0;z-index:10}.employee-list-modal-header h2{font-size:24px;font-weight:600;margin:0}.close-button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:28px;height:36px;justify-content:center;transition:all .2s ease;width:36px}.close-button:hover{background:#ffffff4d;transform:rotate(90deg)}.employee-list-modal-content{flex:1 1;max-width:100%;min-height:500px;overflow-y:auto;padding:90px 32px 32px;transition:max-width .3s ease}.employee-list-modal:has(.employee-detail-sidebar) .employee-list-modal-content{max-width:calc(100% - 380px)}.search-container{margin-bottom:28px;margin-top:0;max-width:100%;position:relative;width:100%}.search-input{background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000d;box-sizing:border-box;color:#111827;font-size:15px;font-weight:400;padding:10px 18px 10px 48px;transition:all .3s ease;width:100%}.search-input::placeholder{color:#9ca3af;font-weight:400}.search-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a,0 2px 8px #00000014;outline:none}.search-input:hover:not(:focus){border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.search-icon{color:#9ca3af;font-size:18px;left:16px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:color .3s ease}.search-input:focus+.search-icon{color:#667eea}.employee-count{color:#6b7280;font-size:14px;font-weight:500;margin-bottom:16px}.employee-list{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));padding-bottom:16px}.employee-item{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;display:flex;gap:16px;justify-content:space-between;min-height:70px;padding:18px 20px;transition:all .2s ease}.employee-item:hover{background:#f3f4f6;border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateX(4px)}.employee-item.selected{background:#eef2ff;border-color:#667eea;box-shadow:0 4px 12px #667eea33}.employee-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;box-shadow:0 2px 8px #0000001a;display:flex;flex-shrink:0;height:56px;justify-content:center;overflow:hidden;width:56px}.employee-avatar img{height:100%;object-fit:cover;width:100%}.avatar-placeholder{align-items:center;color:#fff;display:flex;font-size:24px;font-weight:600;height:100%;justify-content:center;width:100%}.employee-info{flex:1 1;min-width:0}.employee-name{color:#111827;font-size:17px;font-weight:600;line-height:1.4;margin-bottom:6px}.employee-details{color:#6b7280;display:flex;flex-direction:column;font-size:14px;gap:6px;line-height:1.5}.detail-item{display:flex;gap:8px}.detail-item strong{color:#374151;min-width:60px}.employee-badge{align-items:center;display:flex;flex-shrink:0;font-size:20px;justify-content:center}.google-icon{display:block;height:24px;width:24px}.no-results{color:#9ca3af}.loading-message,.no-results{font-size:16px;padding:60px 20px;text-align:center}.loading-message{color:#6b7280}.error-message{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin-bottom:20px;padding:12px 16px}.employee-detail-sidebar{animation:slideIn .3s ease-out;background:#f9fafb;border-left:2px solid #e5e7eb;display:flex;flex-direction:column;flex-shrink:0;max-height:100vh;overflow-y:auto;width:380px}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.sidebar-header{align-items:center;background:#fff;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px;position:sticky;top:0;z-index:5}.sidebar-header h3{color:#111827;font-size:18px;font-weight:600;margin:0}.close-sidebar-button{align-items:center;background:#f3f4f6;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.close-sidebar-button:hover{background:#e5e7eb;color:#374151}.sidebar-content{padding:28px}.detail-section{background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000014;padding:28px}.detail-avatar-large{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:5px solid #e5e7eb;border-radius:50%;box-shadow:0 4px 12px #0000001a;display:flex;height:120px;justify-content:center;margin:0 auto 24px;overflow:hidden;width:120px}.detail-avatar-large img{height:100%;object-fit:cover;width:100%}.avatar-placeholder-large{align-items:center;color:#fff;display:flex;font-size:42px;font-weight:600;height:100%;justify-content:center;width:100%}.detail-info{gap:20px}.detail-info,.detail-row{display:flex;flex-direction:column}.detail-row{gap:4px}.detail-row label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.detail-row span{color:#111827;font-size:16px;line-height:1.6;padding:4px 0;word-break:break-word}.detail-row span.verified{color:#10b981;font-weight:500}.detail-row span.unverified{color:#ef4444;font-weight:500}.role-badge{border-radius:12px;display:inline-block;font-size:13px;font-weight:600;padding:4px 12px;width:fit-content}.role-badge.admin{background:#fef3c7;color:#92400e}.role-badge.user{background:#dbeafe;color:#1e40af}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:1024px){.employee-list{gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.employee-detail-sidebar{width:340px}.employee-list-modal:has(.employee-detail-sidebar) .employee-list-modal-content{max-width:calc(100% - 340px)}}@media (max-width:768px){.employee-list-modal{flex-direction:column;max-height:98vh;width:98%}.employee-detail-sidebar{border-left:none;border-top:2px solid #e5e7eb;max-height:50vh;width:100%}.employee-list-modal-content{max-width:100%;padding:70px 20px 20px}.employee-list{gap:12px;grid-template-columns:1fr}.employee-item{gap:14px;min-height:80px;padding:16px}.employee-avatar{height:48px;width:48px}.avatar-placeholder{font-size:20px}.employee-name{font-size:16px}.employee-details{font-size:13px}.search-container{max-width:100%}}.admin-layout .sidebar-container *{box-sizing:border-box!important}.admin-layout .sidebar-container button{background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;color:inherit!important;cursor:pointer!important;font:inherit!important;line-height:normal!important;margin:0!important;min-height:auto!important;min-width:auto!important;outline:none!important;padding:0!important;text-decoration:none!important;white-space:normal!important}.admin-layout .sidebar-container,.admin-layout .sidebar-container *,.admin-layout .sidebar-container .nav-button,.admin-layout .sidebar-container button{background-color:#fff!important;background:#fff!important;color:#374151!important}.admin-layout .sidebar-container{--primary-color:#374151!important;--primary-hover:#111827!important}.admin-layout .sidebar-container,.admin-layout .sidebar-container *{background:#fff!important;background-attachment:scroll!important;background-clip:padding-box!important;background-color:#f8f9fa!important;background-image:none!important;background-origin:initial!important;background-position:0 0!important;background-repeat:repeat!important;background-size:auto!important}.admin-layout .sidebar-container .nav-button,.admin-layout .sidebar-container .nav-button:hover,.admin-layout .sidebar-container button,.admin-layout .sidebar-container button:hover{background:#fff!important;background-color:#fff!important;background-image:none!important;border:none!important;box-shadow:none!important;color:#374151!important}.admin-layout .sidebar-container{background:#fff!important;border-right:1px solid #e5e7eb!important;box-shadow:0 0 20px #0000001a!important;contain:layout style paint!important;display:flex!important;flex-direction:column!important;height:100vh!important;isolation:isolate!important;left:0!important;overflow:hidden!important;position:fixed!important;top:0!important;width:280px!important;z-index:1000!important}.admin-layout .sidebar-container .sidebar-header{background:#fff!important;border-bottom:1px solid #ccc!important;padding:24px 20px!important}.admin-layout .sidebar-container .sidebar-header h2{background-color:#fff!important;color:#111827!important;font-size:18px!important;font-weight:600!important;letter-spacing:-.025em!important;margin:0 0 8px!important}.admin-layout .sidebar-container .sidebar-header h2:before{color:#6b7280!important;content:"⚡"!important;margin-right:8px!important}.admin-layout .sidebar-container .admin-status{align-items:center!important;background-color:#fff!important;color:#6b7280!important;display:flex!important;font-size:12px!important;font-weight:500!important;gap:8px!important;margin-top:6px!important}.admin-layout .sidebar-container .status-indicator{animation:pulse 2s infinite!important;background:#fff!important;border-radius:50%!important;box-shadow:0 0 4px #10b9814d!important;height:6px!important;width:6px!important}@keyframes pulse{0%,to{opacity:1!important;transform:scale(1)!important}50%{opacity:.7!important;transform:scale(1.1)!important}}.admin-layout .sidebar-container .sidebar-nav{contain:layout style paint!important;flex:1 1!important;max-height:calc(100vh - 200px)!important;overflow-x:hidden!important;overflow-y:auto!important;padding:20px 0!important;position:relative!important;z-index:1!important}.admin-layout .sidebar-container .sidebar-nav::-webkit-scrollbar{width:4px!important}.admin-layout .sidebar-container .sidebar-nav::-webkit-scrollbar-track{background:#f9fafb!important}.admin-layout .sidebar-container .sidebar-nav::-webkit-scrollbar-thumb{background:#d1d5db!important;border-radius:2px!important}.admin-layout .sidebar-container .sidebar-nav::-webkit-scrollbar-thumb:hover{background:#9ca3af!important}.admin-layout .sidebar-container .nav-section{margin-bottom:24px!important;padding:0 8px!important}.admin-layout .sidebar-container .nav-section h3{color:#6b7280!important;font-size:10px!important;font-weight:600!important;letter-spacing:.05em!important;margin:0 0 8px!important;padding:0 20px!important;text-transform:uppercase!important}.admin-layout .sidebar-container .nav-button{align-items:center!important;background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;color:#374151!important;contain:layout style paint!important;cursor:pointer!important;display:flex!important;font-size:14px!important;font-weight:500!important;gap:12px!important;isolation:isolate!important;line-height:normal!important;margin:2px 0!important;min-height:auto!important;min-width:auto!important;padding:12px 20px!important;position:relative!important;text-align:left!important;text-decoration:none!important;transform-origin:left center!important;transition:all .2s ease!important;white-space:normal!important;width:100%!important;will-change:transform,background-color,box-shadow!important}.admin-layout .sidebar-container .nav-button:before{background:#111827!important;content:""!important;height:100%!important;left:0!important;position:absolute!important;top:0!important;transform:scaleY(0)!important;transition:transform .2s ease!important;width:3px!important}.admin-layout .sidebar-container .nav-button:hover:not(:disabled){background:#f3f4f6!important;border-radius:6px!important;box-shadow:0 2px 8px #0000001a!important;color:#111827!important;contain:layout style paint!important;isolation:isolate!important;transform:translateX(2px)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.admin-layout .sidebar-container .nav-button:hover:not(:disabled):before{background:#111827!important;border-radius:0 2px 2px 0!important;transform:scaleY(1)!important;width:4px!important}.admin-layout .sidebar-container .nav-button.active{background:#f3f4f6!important;border-right:3px solid #374151!important;color:#111827!important}.admin-layout .sidebar-container .nav-button.active:before{transform:scaleY(1)!important}.admin-layout .sidebar-container .nav-button.danger{color:#dc2626!important}.admin-layout .sidebar-container .nav-button.danger:hover:not(:disabled){background:#e0a2a2!important;border-radius:6px!important;box-shadow:0 2px 8px #dc262626!important;color:#dc2626!important;contain:layout style paint!important;isolation:isolate!important;transform:translateX(2px)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.admin-layout .sidebar-container .nav-button.danger:hover:not(:disabled):before{background:#dc2626!important;border-radius:0 2px 2px 0!important;transform:scaleY(1)!important;width:4px!important}.admin-layout .sidebar-container .nav-button:disabled{cursor:not-allowed!important;opacity:.4!important}.admin-layout .sidebar-container .nav-icon{align-items:center!important;color:#6b7280!important;display:flex!important;font-size:16px!important;justify-content:center!important;width:20px!important}.admin-layout .sidebar-container .nav-button:hover:not(:disabled) .nav-icon{color:#111827!important;transform:scale(1.05)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.admin-layout .sidebar-container .nav-button.active .nav-icon{color:#111827!important;transform:scale(1.05)!important}.admin-layout .sidebar-container .nav-button.danger .nav-icon{color:#dc2626!important}.admin-layout .sidebar-container .nav-button.danger:hover:not(:disabled) .nav-icon{color:#dc2626!important;transform:scale(1.05)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.admin-layout .sidebar-container .nav-text{background:#0000!important;flex:1 1!important;font-weight:500!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.admin-layout .sidebar-container .nav-button:hover:not(:disabled) .nav-text{color:#111827!important}.admin-layout .sidebar-container .nav-button.danger:hover:not(:disabled) .nav-text,.admin-layout .sidebar-container .nav-button:hover:not(:disabled) .nav-text{background:#0000!important;font-weight:600!important;transform:translateX(1px)!important}.admin-layout .sidebar-container .nav-section{border-bottom:1px solid #eef2f7!important;margin-bottom:16px!important;padding-bottom:14px!important}.admin-layout .sidebar-container .nav-section:last-child{border-bottom:0!important}.admin-layout .sidebar-container .nav-section-save h3{color:#1d4ed8!important}.admin-layout .sidebar-container .nav-section-danger{background:snow!important;border:1px solid #fecaca!important;border-radius:10px!important;margin-top:auto!important;padding:12px 8px!important}.admin-layout .sidebar-container .nav-section-danger,.admin-layout .sidebar-container .nav-section-danger *{background-color:snow!important}.admin-layout .sidebar-container .nav-section-danger h3{color:#b91c1c!important}.admin-layout .sidebar-container .nav-button.nav-button-info{color:#2563eb!important}.admin-layout .sidebar-container .nav-button.nav-button-export{color:#047857!important}.admin-layout .sidebar-container .nav-button.nav-button-save{color:#1d4ed8!important;font-weight:700!important}.admin-layout .sidebar-container .nav-button.nav-button-export:hover:not(:disabled),.admin-layout .sidebar-container .nav-button.nav-button-info:hover:not(:disabled),.admin-layout .sidebar-container .nav-button.nav-button-save:hover:not(:disabled){background:#eff6ff!important}.admin-layout .sidebar-container .nav-button.danger{color:#b91c1c!important}.admin-layout .sidebar-container .nav-button.danger:hover:not(:disabled){background:#fee2e2!important;color:#991b1b!important}.admin-layout .sidebar-container .nav-icon{background:#f3f4f6!important;border-radius:6px!important;color:currentColor!important;font-size:13px!important;height:22px!important;line-height:1!important;width:22px!important}.admin-layout .sidebar-container .danger .nav-icon{background:#fee2e2!important}.admin-layout .sidebar-container .sidebar-footer{background:#fff!important;border-top:1px solid #e5e7eb!important;padding:20px!important}.admin-layout .sidebar-container .current-month{background:#f9fafb!important;border:1px solid #e5e7eb!important;border-radius:8px!important;padding:12px!important;text-align:center!important}.admin-layout .sidebar-container .month-label{color:#6b7280!important;display:block!important;font-size:10px!important;font-weight:600!important;letter-spacing:.05em!important;margin-bottom:4px!important;text-transform:uppercase!important}.admin-layout .sidebar-container .month-value{color:#111827!important;display:block!important;font-size:14px!important;font-weight:600!important;letter-spacing:-.025em!important}.admin-layout .sidebar-container .nav-button:focus{background:#f3f4f6!important;box-shadow:0 0 0 3px #11182733!important;outline:none!important;transform:translateX(2px)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.admin-layout .sidebar-container .nav-button:focus:before{background:#111827!important;border-radius:0 2px 2px 0!important;transform:scaleY(1)!important;width:4px!important}@media (max-width:768px){.admin-layout .sidebar-container{height:auto!important;position:relative!important;width:100%!important;z-index:1001!important}.admin-layout .sidebar-container .sidebar-nav{padding:16px 0!important}.admin-layout .sidebar-container .nav-button{padding:10px 16px!important}.admin-layout .sidebar-container .sidebar-header{padding:20px 16px!important}.admin-layout .sidebar-container .sidebar-footer{padding:16px!important}}@media (max-width:480px){.admin-layout .sidebar-container{width:100%!important}.admin-layout .sidebar-container .nav-button{font-size:13px!important;padding:8px 12px!important}.admin-layout .sidebar-container .sidebar-header h2{font-size:16px!important}}.statistics-page{background:#f5f7fb;box-sizing:border-box;color:#1f2937;min-height:100vh;padding:18px}.statistics-hero{grid-gap:14px;align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 22px #0f172a0f;color:#111827;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;left:auto;margin:0 auto 14px;max-width:1400px;padding:14px 18px;position:static;right:auto;text-align:left;top:auto;width:auto;z-index:auto}.statistics-title-block{min-width:0}.statistics-eyebrow{color:#6366f1;display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.12em;margin-bottom:4px;text-transform:uppercase}.statistics-hero h1{font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:800;line-height:1.15;margin:0 0 4px;text-shadow:none}.statistics-hero p{color:#6b7280;font-size:.92rem;margin:0;max-width:680px}.statistics-back-button,.statistics-filter button{border:0;border-radius:999px;cursor:pointer;font-weight:800;padding:11px 18px}.statistics-back-button{align-self:start;background:#4f46e5;color:#fff;display:inline-flex;justify-self:end;line-height:1.2;margin:0;max-width:max-content;min-height:38px;min-width:0;white-space:nowrap;width:auto}.statistics-filter{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 8px 24px #0f172a0f;display:flex;flex-wrap:wrap;gap:14px;margin:0 auto 20px;max-width:1400px;padding:18px}.statistics-view-toggle{background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;display:inline-flex;gap:4px;padding:4px}.statistics-view-tab{background:#0000;border:0;border-radius:999px;color:#4338ca;cursor:pointer;font-size:.9rem;font-weight:800;line-height:1.2;min-height:40px;padding:10px 18px;width:auto}.statistics-view-tab[aria-selected=true]{background:#4f46e5;box-shadow:0 4px 12px #4f46e559;color:#fff}.statistics-view-tab[aria-selected=false]{opacity:.9}.statistics-filter label{color:#4b5563;display:flex;flex-direction:column;font-size:.82rem;font-weight:800;gap:6px;min-width:140px}.statistics-filter input,.statistics-filter select{background:#fff;border:1px solid #d1d5db;border-radius:12px;color:#111827;font-size:1rem;min-height:42px;padding:0 12px}.statistics-filter-summary{display:flex;flex-direction:column;gap:4px;margin-left:auto;text-align:right}.statistics-filter-summary strong{font-size:1.05rem}.statistics-filter-summary span{color:#6b7280;font-size:.85rem}.statistics-alert{background:#fef2f2;border:1px solid #fecaca;border-radius:14px;color:#991b1b;font-weight:700}.statistics-alert,.statistics-snapshot-notice{margin:0 auto 20px;max-width:1400px;padding:14px 16px}.statistics-snapshot-notice{background:#eef2ff;border:1px solid #a5b4fc;border-radius:14px;color:#312e81;font-size:.95rem;font-weight:600;line-height:1.5}.statistics-card-grid,.statistics-highlight-grid,.statistics-table-card,.statistics-two-col{margin-left:auto;margin-right:auto;max-width:1400px}.statistics-card-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}.statistics-card-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.statistics-card-grid--lifetime{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:900px){.statistics-card-grid--lifetime{grid-template-columns:repeat(4,minmax(0,1fr))}}.statistics-digest{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 10px 28px #0f172a12;margin:0 auto 18px;max-width:1400px;padding:20px 22px}.statistics-digest-title{color:#111827;font-size:1.2rem;margin:0 0 4px}.statistics-digest-hint{color:#6b7280;font-size:.9rem;margin:0 0 16px}.statistics-digest-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.statistics-digest-grid article{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin:0;padding:16px}.statistics-digest-grid h3{color:#4b5563;font-size:.88rem;font-weight:800;margin:0 0 10px}.statistics-digest-grid p{color:#1f2937;font-size:.9rem;line-height:1.5;margin:0 0 8px}.statistics-digest-grid p:last-child{margin-bottom:0}.statistics-employee-search{margin-bottom:16px}.statistics-search-label{color:#4b5563;display:flex;flex-direction:column;font-size:.85rem;font-weight:800;gap:8px;max-width:400px}.statistics-employee-search input{background:#fff;border:1px solid #d1d5db;border-radius:12px;color:#111827;font-size:1rem;min-height:44px;padding:0 14px}.statistics-search-hint{color:#6b7280;font-size:.85rem;margin:10px 0 0}.statistics-search-empty,.statistics-table-placeholder{background:#f9fafb;border-radius:12px;color:#6b7280;font-size:.95rem;margin:0;padding:20px;text-align:center}.statistics-table--compact{min-width:480px}.statistics-card,.statistics-chart-card,.statistics-highlight-grid article,.statistics-table-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 10px 28px #0f172a12}.statistics-card{padding:18px}.statistics-card-label,.statistics-card-note,.statistics-highlight-grid span{color:#6b7280;display:block;font-size:.82rem;font-weight:700}.statistics-card-value{color:#111827;display:block;font-size:1.8rem;line-height:1;margin:8px 0 6px}.statistics-highlight-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.statistics-highlight-grid article{padding:16px}.statistics-highlight-grid strong{color:#111827;display:block;font-size:1rem;margin-top:8px;word-break:break-word}.statistics-two-col{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.statistics-two-col-wide{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}.statistics-chart-card,.statistics-table-card{padding:18px}.statistics-section-heading{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.statistics-section-heading h2{color:#111827;font-size:1.15rem;margin:0}.statistics-section-heading span{color:#6b7280;font-size:.82rem;font-weight:700}.statistics-bar-list{grid-gap:12px;display:grid;gap:12px}.statistics-bar-row{grid-gap:7px;display:grid;gap:7px}.statistics-bar-meta{display:flex;font-size:.92rem;gap:12px;justify-content:space-between}.statistics-bar-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statistics-bar-track{background:#e5e7eb;border-radius:999px;height:10px;overflow:hidden}.statistics-bar-fill{background:linear-gradient(90deg,#4f46e5,#06b6d4);border-radius:inherit;height:100%}.statistics-empty{background:#f9fafb;border-radius:12px;color:#6b7280;margin:0;padding:18px;text-align:center}.statistics-empty-state{grid-gap:18px;align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;color:#1e3a8a;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) auto;margin-bottom:18px;padding:18px}.statistics-empty-state h2{color:#1e3a8a;font-size:1rem;margin:0 0 6px}.statistics-empty-state p{color:#1e40af;line-height:1.5;margin:0}.statistics-empty-state button{background:#2563eb;border:1px solid #2563eb;border-radius:8px;color:#fff;cursor:pointer;flex:0 0 auto;font-weight:800;min-height:42px;padding:0 14px}.statistics-weekday-grid{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:repeat(7,minmax(0,1fr));min-height:230px}.statistics-weekday-item{grid-gap:8px;color:#4b5563;display:grid;font-size:.82rem;gap:8px;justify-items:center}.statistics-weekday-column{align-items:flex-end;background:#e5e7eb;border-radius:999px;display:flex;height:145px;overflow:hidden;width:100%}.statistics-weekday-column div{background:linear-gradient(180deg,#8b5cf6,#3b82f6);border-radius:inherit;width:100%}.statistics-weekday-item strong{color:#111827}.statistics-table-card{margin-bottom:24px}.statistics-table-wrap{overflow-x:auto}.statistics-table{border-collapse:initial;border-spacing:0;font-size:.92rem;min-width:860px;width:100%}.statistics-table td,.statistics-table th{border-bottom:1px solid #e5e7eb;padding:12px 14px;text-align:left;vertical-align:top}.statistics-table thead th{background:#f9fafb;color:#374151;font-size:.78rem;letter-spacing:.04em;position:sticky;text-transform:uppercase;top:0;z-index:1}.statistics-table tbody th{color:#111827;font-weight:800}.statistics-table tbody tr:hover{background:#f9fafb}@media (max-width:1100px){.statistics-card-grid,.statistics-card-grid--compact,.statistics-card-grid--lifetime{grid-template-columns:repeat(2,minmax(0,1fr))}.statistics-digest-grid{grid-template-columns:1fr}.statistics-highlight-grid,.statistics-two-col,.statistics-two-col-wide{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.statistics-empty-state{align-items:stretch;flex-direction:column}.statistics-empty-state button{width:100%}.statistics-page{padding:14px}.statistics-filter{align-items:stretch;flex-direction:column}.statistics-hero{grid-template-columns:1fr}.statistics-back-button{justify-self:start;margin-bottom:0;width:auto}.statistics-filter-summary{margin-left:0;text-align:left}.statistics-card-grid,.statistics-card-grid--compact,.statistics-card-grid--lifetime,.statistics-highlight-grid,.statistics-two-col,.statistics-two-col-wide{grid-template-columns:1fr}.statistics-weekday-grid{min-height:190px}.statistics-weekday-column{height:110px}}.app-container.learning-app-page{display:block;max-width:none;padding:0}.app-container.learning-app-page main.learning-main{background:#0000;border-radius:0;box-shadow:none;margin:0;min-height:100vh;padding:0;width:100%}.learning-page{background:linear-gradient(135deg,#00d0ff14,#0000 34%),linear-gradient(315deg,#9aff501a,#0000 32%),#f7fafc;color:#102032;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;padding:22px}.learning-page *,.learning-page :after,.learning-page :before{box-sizing:border-box}.learning-page button,.learning-page input,.learning-page select,.learning-page textarea{font:inherit}.learning-page button{border:0;cursor:pointer}.learning-page button:disabled{cursor:not-allowed;opacity:.58}.learning-page input,.learning-page select,.learning-page textarea{background:#fff;border:1px solid #d7e1ea;border-radius:8px;color:#102032;outline:none;padding:10px 11px;width:100%}.learning-page button:focus-visible,.learning-page input:focus,.learning-page select:focus,.learning-page textarea:focus{border-color:#00a7d8;box-shadow:0 0 0 3px #00b9ff38}.learning-page__topbar{align-items:center;background:#0000;border-radius:0;box-shadow:none;color:#102032;display:flex;gap:18px;justify-content:space-between;margin:0 auto 18px;max-width:1520px;padding:0;position:static;text-align:left;width:auto}.learning-page__private{color:#0082a8;font-size:12px;font-weight:800;letter-spacing:0;margin:0 0 4px}.learning-page h1{color:#071624;font-size:clamp(30px,4vw,52px);line-height:1;margin:0}.learning-page__back{color:#0082a8;display:inline-block;font-size:13px;font-weight:800;margin-top:8px;text-decoration:none}.learning-page__back:hover{text-decoration:underline}.learning-page__status{align-items:flex-end;color:#5d7082;display:flex;flex-direction:column;font-size:12px;gap:3px}.learning-page__status strong{color:#071624;font-size:16px}.learning-page__error{background:#fff4f4;border:1px solid #ffc6c6;border-left:5px solid #ff4b4b;border-radius:8px;color:#9d1919;font-weight:700;margin:0 auto 14px;max-width:1520px;padding:12px 14px}.learning-page__layout{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(270px,330px) minmax(560px,1fr) minmax(240px,300px);margin:0 auto;max-width:1520px}.learning-page__editor,.learning-page__history,.learning-page__play,.learning-page__source{background:#ffffffeb;border:1px solid #1020321a;border-radius:8px;box-shadow:0 16px 40px #10203214}.learning-page__history,.learning-page__source{align-self:start;padding:14px}.learning-page__tabs{grid-gap:6px;background:#edf4f9;border-radius:8px;display:grid;gap:6px;grid-template-columns:repeat(3,1fr);padding:5px}.learning-page__tabs button{background:#0000;border-radius:6px;color:#5d7082;font-size:12px;font-weight:800;padding:9px 6px}.learning-page__tabs button.is-active{background:#071624;color:#fff}.learning-page__hint,.learning-page__privacy{color:#607487;font-size:13px;line-height:1.45;margin:12px 0}.learning-page__smalltext,.learning-page__textarea{line-height:1.5;min-height:220px;resize:vertical}.learning-page__smalltext{margin-top:12px;min-height:92px}.learning-page__dropzone{background:linear-gradient(180deg,#f7fcff,#fff);border:1px dashed #8cc4d5;border-radius:8px;color:#536b7f;display:grid;min-height:220px;padding:22px;place-items:center;text-align:center}.learning-page__dropzone input{display:none}.learning-page__dropzone strong{color:#102032;max-width:100%;overflow-wrap:anywhere}.learning-page__dropzone small{color:#6c7f91}.learning-page__dropmark{background:#d9fb48;border-radius:50%;box-shadow:0 10px 22px #9bdc1e59;color:#071624;display:inline-grid;font-size:12px;font-weight:900;height:70px;margin-bottom:12px;place-items:center;width:70px}.learning-page__formgrid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:10px}.learning-page__advanced{background:#ffffff8f;border:1px solid #0716241a;border-radius:8px;color:#465c70;margin-top:14px;padding:10px 12px}.learning-page__advanced summary{color:#071624;cursor:pointer;font-size:13px;font-weight:900}.learning-page__advanced-model{margin-top:12px}.learning-page__advanced-model small{color:#6c7f91;font-size:12px;font-weight:700;line-height:1.35}.learning-page__checkbox{align-items:flex-start;display:flex!important;gap:10px!important;grid-template-columns:none!important;margin-top:12px}.learning-page__checkbox input{accent-color:#d9fb48;height:18px;margin-top:2px;width:18px}.learning-page__checkbox span{grid-gap:2px;color:#071624;display:grid;font-size:13px;font-weight:900;gap:2px}.learning-page__checkbox small{color:#6c7f91;font-size:12px;font-weight:700;line-height:1.35}.learning-page__advanced-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:12px}.learning-page__advanced-grid[aria-disabled=true]{opacity:.58}.learning-page__field-wide{grid-column:1/-1}.learning-page label{grid-gap:6px;color:#465c70;display:grid;font-size:12px;font-weight:800;gap:6px}.learning-page__generate{background:#071624;border-radius:8px;color:#fff;font-size:15px;font-weight:900;margin-top:14px;padding:13px 14px;width:100%}.learning-page__generating{grid-gap:12px;align-items:center;background:#ffffffb8;border:1px solid #00a7d838;border-radius:8px;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr);margin-top:12px;padding:12px}.learning-page__generating strong{color:#071624;font-size:13px;font-weight:950}.learning-page__generating small{color:#607487;display:block;font-size:12px;font-weight:750;line-height:1.35;margin-top:2px}.learning-page__generating-orb{height:46px;position:relative;width:46px}.learning-page__generating-orb span{animation:learningGeneratingPulse 1.5s ease-out infinite;background:#d9fb48cc;border-radius:50%;inset:0;position:absolute}.learning-page__generating-orb span:nth-child(2){animation-delay:.22s;background:#00a7d88c}.learning-page__generating-orb span:nth-child(3){animation-delay:.44s;background:#0716242e}.learning-page__workspace{grid-gap:16px;display:grid;gap:16px}.learning-page__play{min-height:430px;overflow:hidden;padding:18px;position:relative}.learning-page__play:before{background:radial-gradient(circle at 86% 14%,#00d0ff29,#0000 28%),linear-gradient(180deg,#fff,#f8fbfd);content:"";inset:0;pointer-events:none;position:absolute}.learning-page__play>*{position:relative}.learning-page__playhead,.learning-page__sectionhead{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.learning-page__playhead span,.learning-page__sectionhead span{color:#0082a8;display:block;font-size:12px;font-weight:900;margin-bottom:3px}.learning-page__playhead strong,.learning-page__sectionhead strong{color:#071624;font-size:18px}.learning-page__playhead small{color:#63788a;display:block;font-size:12px;font-weight:800;margin-top:4px}.learning-page__score{background:#071624;border-radius:8px;color:#fff;display:grid;min-width:72px;padding:9px 10px;place-items:center}.learning-page__score b{font-size:25px;line-height:1}.learning-page__score small{color:#b8c9d6;font-size:11px;font-weight:700}.learning-page__playtools{align-items:center;display:flex;gap:8px;justify-content:flex-end}.learning-page__playtools>button{background:#eaf2f7;border-radius:8px;color:#102032;font-size:13px;font-weight:900;padding:10px 12px}.learning-page__playtools>button:nth-child(2){background:#d9fb48;color:#071624}.learning-page__timer{background:#fff;border:8px solid #d9fb48;border-radius:50%;box-shadow:0 12px 26px #07162414;display:inline-grid;height:76px;margin:28px 0 12px;place-items:center;width:76px}.learning-page__timer span{font-size:24px;font-weight:900}.learning-page__timer small{color:#607487;font-size:11px;font-weight:800}.learning-question-text{grid-gap:12px;display:grid;gap:12px;justify-items:center;margin:8px auto 18px;width:min(100%,980px)}.learning-question-text__passage{grid-gap:7px;background:#fff8ea14;border:1px solid #fff8ea2e;border-radius:10px;display:grid;gap:7px;padding:clamp(14px,2vw,22px);text-align:left;width:min(100%,760px)}.learning-question-text__passage p{color:#fff8ea;font-size:clamp(17px,1.65vw,24px);font-weight:750;line-height:1.45;margin:0;overflow-wrap:anywhere}.learning-question-text__example{background:#fff8ea1f;border:1px solid #fff8ea33;border-radius:10px;color:#fff8ea;font-size:clamp(17px,1.8vw,26px);font-weight:800;line-height:1.42;overflow-wrap:anywhere;padding:clamp(14px,2vw,22px);text-align:left;white-space:pre-line;width:min(100%,760px)}.learning-question-text__example-label{background:#fff8ea2e;border-radius:999px;color:#fff8eac7;display:inline-flex;font-size:.72em;font-weight:900;letter-spacing:.04em;line-height:1;margin-bottom:8px;padding:7px 10px;text-transform:uppercase;width:fit-content}.learning-question-text__example p{margin:0}.learning-vocab-hint{background:#0000;border:0;color:inherit;cursor:help;display:inline;font:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0;position:relative;touch-action:manipulation;vertical-align:initial;white-space:inherit}.learning-vocab-hint__term{background:linear-gradient(#f2b8452e,#f2b8452e) no-repeat 0 100% /100% .95em;border-bottom:2px dotted #f2b845f2;border-radius:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone;display:inline;padding:0 .1em}.learning-vocab-hint:focus .learning-vocab-hint__term,.learning-vocab-hint:focus-visible .learning-vocab-hint__term,.learning-vocab-hint:hover .learning-vocab-hint__term{background-size:100% 100%}.learning-vocab-hint:focus,.learning-vocab-hint:focus-visible{outline:none}.learning-vocab-hint:focus-visible .learning-vocab-hint__term{outline:2px solid #f2b845d9;outline-offset:2px}.learning-vocab-hint__bubble{grid-gap:6px;background:#fff8ea;border:1px solid #fff8ea2e;border-radius:12px;bottom:calc(100% + 12px);box-shadow:0 18px 46px #00000047;color:#173f40;display:grid;font-size:clamp(14px,1.2vw,17px);font-weight:700;gap:6px;left:50%;line-height:1.35;max-width:320px;opacity:0;padding:12px 14px;position:absolute;text-align:left;transform:translateX(-50%) translateY(6px);white-space:normal;width:min(320px,72vw);z-index:80}.learning-vocab-hint__bubble,.learning-vocab-hint__bubble--portal{pointer-events:none;transition:opacity .15s ease,transform .15s ease}.learning-vocab-hint__bubble--portal{opacity:1;position:fixed;z-index:10050}.learning-vocab-hint__bubble--portal.learning-vocab-hint__bubble--above{transform:translate(-50%,-100%)}.learning-vocab-hint__bubble--portal.learning-vocab-hint__bubble--below{transform:translate(-50%)}.learning-vocab-hint__bubble strong{color:#d86f28;font-size:1.05em}.learning-vocab-hint__bubble em,.learning-vocab-hint__bubble span{color:#173f40;font-style:normal}.learning-vocab-hint__bubble em{border-top:1px solid #173f4024;color:#173f40c2;padding-top:6px}.learning-vocab-hint:focus .learning-vocab-hint__bubble:not(.learning-vocab-hint__bubble--portal),.learning-vocab-hint:focus-visible .learning-vocab-hint__bubble:not(.learning-vocab-hint__bubble--portal),.learning-vocab-hint:hover .learning-vocab-hint__bubble:not(.learning-vocab-hint__bubble--portal){opacity:1;transform:translateX(-50%) translateY(0)}.learning-player__question h2,.learning-question-text,.learning-question-text h2,.learning-question-text__example,.learning-question-text__example p,.learning-question-text__passage,.learning-question-text__passage p{overflow:visible}.learning-question-text h2{text-wrap:pretty;font-size:clamp(22px,2.6vw,36px);line-height:1.2;margin:0;max-width:960px;overflow-wrap:anywhere;white-space:pre-line}.learning-question-text.is-long h2{font-size:clamp(20px,2.2vw,30px);line-height:1.24;max-width:780px}.learning-page__read-question{background:#eaf2f7;border-radius:999px;color:#071624;font-size:13px;font-weight:950;justify-self:center;margin:-8px 0 14px;padding:10px 14px}.learning-page__read-question--fullscreen{background:#ffffff24;color:#fff;margin:-10px auto 0}.learning-page__answers{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.learning-page__answer{align-items:flex-start;border-radius:8px;box-shadow:0 12px 24px #1020321f;color:#fff;display:flex;font-size:clamp(15px,1.5vw,17px);font-weight:850;gap:12px;height:auto;line-height:1.32;min-height:76px;overflow-wrap:anywhere;padding:16px;text-align:left;white-space:pre-line;word-break:normal}.learning-page__answer span{background:#ffffff38;border-radius:8px;display:inline-grid;flex:0 0 38px;height:38px;place-items:center;width:38px}.learning-page__answer-copy{background:#0000!important;border-radius:0!important;display:block!important;flex:1 1 auto!important;height:auto!important;min-width:0;overflow-wrap:anywhere;width:auto!important;word-break:normal}.learning-page__answer--a{background:#1976f3}.learning-page__answer--b{background:#13a66b}.learning-page__answer--c{background:#e5ad00}.learning-page__answer--d{background:#e94b4b}.learning-page__answer.is-selected{outline:4px solid #07162438;transform:translateY(-1px)}.learning-page__answer.is-correct{animation:learningCorrectPulse .52s ease-out;box-shadow:0 0 0 4px #d9fb48e0,0 12px 24px #1020321f}.learning-page__answer.is-wrong{animation:learningWrongShake .36s ease-out;box-shadow:0 0 0 4px #ffffffbf,0 0 0 8px #ff43434d}.learning-page__soundplay{background:#071624;border-radius:999px;box-shadow:0 12px 28px #0716242e;color:#d9fb48;font-weight:950;justify-self:center;padding:13px 18px}.learning-page__soundplay--fullscreen,.learning-page__soundplay--player,.learning-page__soundplay--stage{background:#d9fb48;color:#071624}.learning-page__typing-answer,.learning-player__typing{grid-gap:10px;display:grid;gap:10px;margin:0 auto;max-width:780px;width:100%}.learning-page__typing-answer label,.learning-player__typing label{font-weight:900}.learning-page__typing-answer div,.learning-player__typing div{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto}.learning-page__typing-answer input,.learning-player__typing input{border:1px solid #10203229;border-radius:12px;font-size:18px;min-height:52px;padding:0 14px}.learning-page__typing-answer button,.learning-player__typing button{background:#d9fb48;border-radius:12px;color:#071624;font-weight:950;padding:0 18px}.learning-page__typing-answer--fullscreen{color:#fff}.learning-page__explanation{grid-gap:8px;background:#f3fbff;border-left:4px solid #d9fb48;border-radius:8px;display:grid;gap:8px;margin-top:14px;padding:13px}.learning-page__explanation p{color:#3d5368;line-height:1.5;margin:0}.learning-page__actions button,.learning-page__explanation button{background:#00a7d8;border-radius:8px;color:#fff;font-weight:900;padding:10px 12px}.learning-page__empty{grid-gap:8px;color:#607487;display:grid;gap:8px;min-height:300px;place-items:center;text-align:center}.learning-page__empty strong{color:#071624;font-size:20px}.learning-page__editor{padding:14px}.learning-page__host{background:#071624;border:1px solid #1020321a;border-radius:8px;box-shadow:0 18px 46px #07162438;color:#fff;padding:14px}.learning-page__host .learning-page__sectionhead span,.learning-page__host .learning-page__sectionhead strong{color:#fff}.learning-page__hostgrid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:190px 1fr 1fr 1fr;margin-top:14px}.learning-page__hoststate,.learning-page__leaderboard,.learning-page__players,.learning-page__qr{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;padding:12px}.learning-page__qr{grid-gap:8px;color:#c7d5e2;display:grid;gap:8px}.learning-qr-trigger{grid-gap:6px;-webkit-tap-highlight-color:transparent;background:#0000;border:0;border-radius:12px;cursor:zoom-in;display:grid;gap:6px;padding:0;touch-action:manipulation;width:100%}.learning-qr-hint{color:#f0b44d;font-size:12px;font-weight:900;letter-spacing:.04em;text-align:center}.learning-qr-hint--stage{color:#fff9ede0;font-size:clamp(11px,1.2vw,13px)}.learning-qr-trigger:focus-visible img,.learning-qr-trigger:hover img{box-shadow:0 16px 34px #00000038;transform:translateY(-2px) scale(1.015)}.learning-qr-trigger:focus-visible{outline:3px solid #f0b44dc7;outline-offset:4px}.learning-page__qr img{background:#fff;border-radius:8px;padding:8px;transition:transform .16s ease,box-shadow .16s ease;width:100%}.learning-page__qr span{font-size:12px;overflow-wrap:anywhere}.learning-page__hoststate{grid-gap:10px;align-content:start;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.learning-page__hoststate div{grid-gap:6px;background:#ffffff14;border-radius:8px;display:grid;gap:6px;padding:12px}.learning-page__hoststate span,.learning-page__leaderboard em,.learning-page__players em,.learning-page__players small{color:#a9bdce;font-size:12px;font-style:normal;font-weight:800}.learning-page__hoststate b{font-size:26px}.learning-page__leaderboard,.learning-page__players{grid-gap:8px;align-content:start;display:grid;gap:8px}.learning-page__players-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.learning-page__players-head small{background:#ffffff1a;border-radius:999px;padding:4px 7px;white-space:nowrap}.learning-page__mini-roster{grid-gap:7px;display:grid;gap:7px;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));list-style:none;margin:0;max-height:170px;overflow:auto;padding:0 2px 2px 0}.learning-page__mini-student{grid-gap:6px;align-items:center;background:#d9fb4824;border:1px solid #ffffff24;border-radius:14px;color:#eaff8a;display:grid;gap:6px;grid-template-columns:auto minmax(0,1fr);min-width:0;padding:6px 7px}.learning-page__mini-student small,.learning-page__players-empty span{background:#ffffff24;border-radius:9px;color:#fff;display:inline-grid;font-size:11px;font-weight:900;height:26px;place-items:center;width:26px}.learning-page__mini-student span{font-size:12px;font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learning-page__players-empty{grid-gap:8px;align-items:center;border:1px dashed #ffffff2e;border-radius:16px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr);padding:10px}.learning-page__players-more{background:#ffffff14;border-radius:12px;display:block;padding:7px 9px}.learning-page__leaderboard div,.learning-player__leaderboard div{align-items:center;background:#ffffff14;border-radius:8px;display:flex;gap:10px;justify-content:space-between;padding:8px 10px}.learning-page__leaderboard b,.learning-player__leaderboard b{color:#d9fb48}.learning-host-stage{background:radial-gradient(circle at 18% 20%,#00d0ff47,#0000 28%),radial-gradient(circle at 82% 12%,#d9fb4847,#0000 26%),linear-gradient(135deg,#06111d,#071624 52%,#102032);color:#fff;display:grid;grid-template-rows:auto 1fr;inset:0;min-height:100vh;overflow:auto;padding:clamp(14px,2.4vw,28px);position:fixed;z-index:5200}.learning-host-stage:before{background-image:linear-gradient(hsla(0,0%,100%,.045) 1px,#0000 0),linear-gradient(90deg,hsla(0,0%,100%,.045) 1px,#0000 0);background-size:42px 42px;content:"";inset:0;-webkit-mask-image:radial-gradient(circle at center,#000,#0000 78%);mask-image:radial-gradient(circle at center,#000,#0000 78%);pointer-events:none;position:fixed}.learning-host-stage>*{position:relative}.learning-host-stage__exit{background:#0f252beb;border:2px solid #fff8ea47;border-radius:999px;bottom:18px;box-shadow:0 8px 0 #00000029;color:#fff8ea;font-size:12px;font-weight:900;padding:11px 16px;position:fixed;right:14px;top:auto;z-index:20}.learning-host-stage__header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin:0 auto clamp(12px,2vh,18px);max-width:1280px;width:100%}.learning-host-stage__finale>span,.learning-host-stage__header span,.learning-host-stage__waiting span{color:#39d8ff;display:block;font-size:clamp(12px,1.2vw,16px);font-weight:950;letter-spacing:.08em;text-transform:uppercase}.learning-host-stage__header strong{display:block;font-size:clamp(24px,3.8vw,58px);line-height:.96;margin-top:5px;max-width:920px}.learning-host-stage__status{background:#d9fb481a;border:1px solid #d9fb4847;border-radius:22px;display:grid;min-width:110px;padding:12px 16px;place-items:center}.learning-host-stage__status b{color:#d9fb48;font-size:clamp(34px,5vw,72px);line-height:.9}.learning-host-stage__status small{color:#c7d5e2;font-weight:900}.learning-host-stage__finale,.learning-host-stage__lobby,.learning-host-stage__question,.learning-host-stage__reveal{grid-gap:clamp(12px,1.6vw,22px);align-content:center;display:grid;gap:clamp(12px,1.6vw,22px);margin:0 auto;max-width:1280px;width:100%}.learning-host-stage__lobby{align-items:stretch;grid-template-columns:minmax(260px,.82fr) minmax(0,1.65fr)}.learning-host-stage__final-list,.learning-host-stage__joincard,.learning-host-stage__scoreboard,.learning-host-stage__waiting{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff14;border:1px solid #ffffff24;border-radius:30px;box-shadow:0 28px 90px #00000052;min-width:0}.learning-host-stage__joincard{grid-gap:clamp(8px,1.4vw,14px);align-content:center;display:grid;gap:clamp(8px,1.4vw,14px);justify-items:center;overflow:hidden;padding:clamp(16px,2.4vw,26px);text-align:center}.learning-host-stage__joincard span{color:#c7d5e2;font-size:15px;font-weight:900;text-transform:uppercase}.learning-host-stage__joincard strong{color:#d9fb48;display:block;font-size:clamp(48px,7vw,96px);letter-spacing:.01em;line-height:.88;max-width:100%;text-shadow:0 0 34px #d9fb4847;white-space:nowrap}.learning-host-stage__joincard p{color:#a9bdce;font-size:clamp(9px,1vw,12px);font-weight:800;margin:0;max-width:100%;overflow-wrap:anywhere}.learning-host-stage__joincard img{background:#fff;border:8px solid #fff;border-radius:20px;box-shadow:0 24px 60px #00000057;transition:transform .16s ease,box-shadow .16s ease;width:min(100%,260px)}.learning-qr-trigger--stage{align-self:center;justify-items:center;justify-self:center;width:min(100%,260px)}.learning-qr-trigger--stage img{width:100%}.learning-host-stage__waiting{min-height:min(52vh,430px);overflow:hidden;padding:clamp(16px,2.6vw,30px)}.learning-host-stage__finale h2,.learning-host-stage__question h2,.learning-host-stage__reveal h2,.learning-host-stage__waiting h2{font-size:clamp(34px,5.4vw,78px);line-height:.98;margin:0}.learning-host-stage__waiting p{color:#c7d5e2;font-size:clamp(16px,2vw,25px);line-height:1.35;margin:0;max-width:760px}.learning-host-stage__roster-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:18px}.learning-host-stage__roster-head strong{color:#fff;font-size:clamp(18px,2vw,28px);font-weight:950}.learning-host-stage__roster-head small{background:#d9fb481f;border-radius:999px;color:#d9fb48;font-size:clamp(12px,1vw,14px);font-weight:950;padding:7px 10px;white-space:nowrap}.learning-host-stage__roster{grid-gap:10px;display:grid;gap:10px;margin-top:12px;min-height:190px;position:relative}.learning-host-stage__desks{grid-gap:clamp(8px,1vw,12px);display:grid;gap:clamp(8px,1vw,12px);grid-template-columns:repeat(auto-fill,minmax(clamp(126px,13vw,184px),1fr));list-style:none;margin:0;max-height:min(34vh,360px);overflow:auto;padding:0 4px 4px 0}.learning-host-stage__final-list em,.learning-host-stage__marks em,.learning-host-stage__roster em{color:#a9bdce;font-style:normal;font-weight:900}.learning-host-stage__desk-card,.learning-host-stage__empty-desk{background:#ffffff14;border:1px solid #d9fb4838;border-radius:18px 18px 12px 12px;box-shadow:0 8px 0 #00000029;color:#fff;min-width:0}.learning-host-stage__desk-card{grid-gap:4px;align-content:center;animation:learningDeskCardIn .46s ease-out both;display:grid;gap:4px;min-height:74px;padding:12px 12px 13px;position:relative}.learning-host-stage__desk-card:before,.learning-host-stage__empty-desk:before{background:#d9fb48cc;border-radius:18px 18px 0 0;content:"";height:7px;inset:0 0 auto;position:absolute}.learning-host-stage__desk-card small,.learning-host-stage__empty-desk small{color:#d9fb48;font-size:11px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.learning-host-stage__desk-card span{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;font-size:clamp(17px,1.7vw,24px);font-weight:950;line-height:1.05;overflow:hidden;overflow-wrap:anywhere}.learning-host-stage__empty-desk{grid-gap:4px;border-style:dashed;display:grid;gap:4px;justify-self:start;padding:18px 16px 16px;position:relative;width:min(100%,260px)}.learning-host-stage__empty-desk strong{color:#fff;font-size:clamp(22px,2.3vw,34px);line-height:1}.learning-host-stage__empty-desk span{color:#a9bdce;font-weight:850}.learning-host-stage__overflow-note{background:#ffffff14;border-radius:999px;justify-self:start;padding:8px 12px}.learning-host-stage__progress{align-items:center;background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;color:#c7d5e2;display:flex;font-size:clamp(14px,2vw,24px);font-weight:950;gap:14px;justify-content:space-between;padding:12px 16px}.learning-host-stage__progress strong{color:#d9fb48}.learning-host-stage__choices{grid-gap:clamp(12px,1.8vw,22px);display:grid;gap:clamp(12px,1.8vw,22px);grid-template-columns:repeat(2,minmax(0,1fr))}.learning-host-stage__text-answer{grid-gap:10px;background:#d9fb481f;border:1px solid #d9fb4847;border-radius:28px;color:#fff;display:grid;gap:10px;padding:clamp(22px,3vw,40px);text-align:center}.learning-host-stage__text-answer strong{color:#d9fb48;font-size:clamp(34px,7vw,92px);line-height:1}.learning-host-stage__text-answer span{color:#c7d5e2;font-size:clamp(16px,2vw,28px);font-weight:900}.learning-host-stage__choice{align-items:center;border-radius:28px;box-shadow:0 22px 54px #00000042;color:#fff;display:flex;font-size:clamp(20px,3vw,46px);font-weight:950;gap:16px;line-height:1.08;min-height:clamp(72px,9vh,108px);padding:clamp(16px,2.4vw,32px)}.learning-host-stage__choice span{background:#ffffff38;border-radius:22px;display:inline-grid;flex:0 0 clamp(48px,7vw,82px);height:clamp(48px,7vw,82px);place-items:center;width:clamp(48px,7vw,82px)}.learning-host-stage__choice.is-muted{filter:grayscale(.6);opacity:.42}.learning-host-stage__choice.is-correct{box-shadow:0 0 0 14px #d9fb4829,0 22px 54px #00000042;outline:8px solid #d9fb48}.learning-host-stage__scoreboard{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr minmax(280px,420px);padding:clamp(16px,2vw,24px)}.learning-host-stage__explain{grid-gap:8px;align-content:start;display:grid;gap:8px}.learning-host-stage__explain strong,.learning-host-stage__marks>strong{color:#d9fb48;font-size:18px;font-weight:950}.learning-host-stage__explain p{color:#d7e3ee;font-size:clamp(16px,2vw,24px);line-height:1.35;margin:0}.learning-host-stage__marks{grid-gap:8px;display:grid;gap:8px;max-height:300px;overflow:auto}.learning-host-stage__final-list div,.learning-host-stage__marks div{grid-gap:10px;align-items:center;background:#ffffff14;border-radius:16px;display:grid;gap:10px;grid-template-columns:1fr auto auto;padding:10px 12px}.learning-host-stage__marks div.is-correct{background:#d9fb4824}.learning-host-stage__final-list span,.learning-host-stage__marks span{font-weight:900}.learning-host-stage__marks small{color:#a9bdce;font-weight:900}.learning-host-stage__final-list b,.learning-host-stage__marks b{color:#d9fb48;font-size:20px}.learning-host-stage__controls{display:flex;flex-wrap:wrap;gap:12px;grid-column:1/-1;justify-content:center}.learning-host-stage__controls button{background:#d9fb48;border-radius:999px;box-shadow:0 18px 40px #d9fb4833;color:#071624;font-size:clamp(16px,2vw,24px);font-weight:950;min-height:58px;padding:14px 24px}.learning-host-stage__controls button+button{background:#ffffff1f;box-shadow:none;color:#fff}.learning-host-stage__finale{justify-items:center;text-align:center}.learning-host-stage__podium{grid-gap:clamp(10px,2vw,22px);align-items:end;display:grid;gap:clamp(10px,2vw,22px);grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,980px)}.learning-host-stage__podium-card{grid-gap:8px;background:#ffffff1a;border:1px solid #ffffff29;border-radius:28px 28px 10px 10px;display:grid;gap:8px;min-height:190px;padding:22px 14px}.learning-host-stage__podium-card.place-1{background:linear-gradient(180deg,#d9fb4847,#ffffff1a);min-height:260px}.learning-host-stage__podium-card.place-2{min-height:220px}.learning-host-stage__podium-card small{color:#39d8ff;font-size:18px;font-weight:950}.learning-host-stage__podium-card strong{font-size:clamp(20px,3vw,38px);line-height:1.05}.learning-host-stage__podium-card b{color:#d9fb48;font-size:clamp(24px,4vw,52px)}.learning-host-stage__final-list{grid-gap:8px;display:grid;gap:8px;padding:16px;text-align:left;width:min(100%,760px)}.learning-fullscreen{grid-gap:24px;align-content:center;background:radial-gradient(circle at 80% 10%,#00d0ff2e,#0000 24%),radial-gradient(circle at 10% 90%,#d9fb4829,#0000 26%),#071624;color:#fff;display:grid;gap:24px;inset:0;overflow:auto;padding:40px;position:fixed;z-index:5000}.learning-fullscreen__exit{background:#ffffff1f;border-radius:8px;color:#fff;font-weight:900;padding:11px 14px;position:fixed;right:18px;top:18px}.learning-fullscreen__meta{color:#a9bdce;display:flex;font-weight:900;gap:16px;justify-content:space-between;margin:0 auto;max-width:1180px;width:100%}.learning-fullscreen h2{text-wrap:pretty;font-size:clamp(28px,4.6vw,68px);line-height:1.14;margin:0 auto;max-width:1180px;overflow-wrap:anywhere;text-align:center;white-space:pre-line}.learning-fullscreen__answers{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;max-width:1180px;width:100%}.learning-fullscreen__answers .learning-page__answer{font-size:clamp(18px,2.4vw,30px);line-height:1.22;max-height:none;min-height:128px}.learning-fullscreen__result{grid-gap:10px;background:#ffffff1a;border-radius:8px;display:grid;gap:10px;margin:0 auto;max-width:900px;padding:18px;text-align:center}.learning-fullscreen__result.is-correct{box-shadow:0 0 0 4px #d9fb4873}.learning-fullscreen__result.is-wrong{box-shadow:0 0 0 4px #ff434373}.learning-fullscreen__result button{background:#d9fb48;border-radius:8px;color:#071624;font-weight:900;justify-self:center;padding:12px 16px}.learning-page__actions{display:flex;flex-wrap:wrap;gap:8px}.learning-page__actions button:first-child{background:#eaf2f7;color:#102032}.learning-page__questionlist{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:14px}.learning-page__questionlist button{grid-gap:5px;background:#fff;border:1px solid #dbe6ee;border-radius:8px;color:#102032;display:grid;gap:5px;min-height:112px;padding:10px;text-align:left}.learning-page__questionlist button.is-active{background:#f2fbff;border-color:#00a7d8}.learning-page__questionlist span{color:#00a7d8;font-size:12px;font-weight:900}.learning-page__questionlist strong{-webkit-box-orient:vertical;-webkit-line-clamp:3;display:-webkit-box;line-height:1.25;overflow:hidden}.learning-page__questionlist small{color:#607487;font-weight:800}.learning-page__editpanel{grid-gap:12px;border-top:1px solid #edf2f6;display:grid;gap:12px;margin-top:14px;padding-top:14px}.learning-page__editpanel textarea{min-height:84px;resize:vertical}.learning-page__editpanel small{color:#607487;font-size:12px;font-weight:800;line-height:1.4}.learning-page__choiceedit{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.learning-page__soundedit{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto}.learning-page__soundedit button{background:#071624;border-radius:8px;color:#d9fb48;font-weight:900;min-height:42px;padding:0 12px}.learning-page__inline{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.learning-page__sessions{grid-gap:10px;display:grid;gap:10px;margin-top:12px}.learning-page__sessions article{grid-gap:6px;background:#fff;border:1px solid #dce8ef;border-radius:8px;display:grid;gap:6px;padding:9px}.learning-page__sessions article.is-active{background:#f2fbff;border-color:#00a7d8}.learning-page__sessions article>button:first-child{grid-gap:4px;background:#0000;color:#102032;display:grid;gap:4px;padding:0;text-align:left}.learning-page__sessions strong{line-height:1.25}.learning-page__sessions em,.learning-page__sessions small,.learning-page__sessions span{color:#63788a;font-size:12px;font-style:normal;font-weight:700}.learning-page__delete{background:#fff0f0;border-radius:6px;color:#b72424;font-size:12px;font-weight:850;justify-self:start;padding:6px 8px}.learning-page__historyempty{border:1px dashed #c8d7e2;border-radius:8px;color:#607487;line-height:1.4;padding:14px}.learning-join{background:linear-gradient(160deg,#ca8a041f,#0000 36%),linear-gradient(180deg,#1c1917,#0c0a09);color:#fff;min-height:100vh;padding:18px}.learning-join__shell{grid-gap:16px;display:grid;gap:16px;margin:0 auto;max-width:760px}.learning-join__header{background:#0000;box-shadow:none;color:#fff;margin:0;padding:16px 0;position:static;text-align:left;width:auto}.learning-join__header span{color:#eab308;font-size:13px;font-weight:900}.learning-join__header h1{font-size:clamp(30px,10vw,58px);line-height:1;margin:4px 0}.learning-join__header p{color:#facc15;font-size:24px;font-weight:900;margin:0}.learning-join__card,.learning-player{background:#1c1917e0;border:1px solid #facc1529;border-radius:24px;box-shadow:0 18px 46px #00000057;padding:18px}.learning-join__card{grid-gap:12px;display:grid;gap:12px}.learning-join__card strong{font-size:28px}.learning-join__card span{color:#eab308;font-size:13px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.learning-join__card p{color:#c7d5e2;line-height:1.45;margin:0}.learning-join__card input{background:#fffffff5;border-color:#ffffff38;color:#071624;font-size:20px;padding:16px}.learning-join__card button{background:#d9fb48;border-radius:8px;color:#071624;font-size:20px;font-weight:900;padding:16px}.learning-player{grid-gap:16px;display:grid;gap:16px}.learning-player__status{background:#44403c6b;border:1px solid #facc1521;border-radius:18px;display:flex;gap:12px;justify-content:space-between;padding:12px}.learning-player__status div{grid-gap:3px;display:grid;gap:3px}.learning-player__status small{color:#a9bdce;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.learning-player__status strong{font-size:20px}.learning-player__status span{color:#facc15;font-weight:900}.learning-player__finale,.learning-player__leaderboard,.learning-player__question,.learning-player__result,.learning-player__waiting{grid-gap:8px;background:#44403c52;border:1px solid #facc151f;border-radius:22px;display:grid;gap:8px;padding:16px;text-align:center}.learning-player__result strong,.learning-player__waiting b{font-size:30px}.learning-player__finale small,.learning-player__question small,.learning-player__question span,.learning-player__result small,.learning-player__waiting span{color:#a9bdce;font-weight:800}.learning-player__pulse{animation:learningPlayerPulse 1.6s ease-in-out infinite;background:radial-gradient(circle,#facc15 0 30%,#0000 32%),radial-gradient(circle,#facc1538 0 58%,#0000 60%);border-radius:50%;height:78px;justify-self:center;width:78px}.learning-player__question h2{font-size:clamp(28px,8vw,52px);line-height:1.08;margin:0}.learning-player__host-prompt{grid-gap:10px;background:radial-gradient(circle at 50% 0,#facc1529,#0000 58%),#0f172a6b;border:1px solid #facc1538;border-radius:22px;display:grid;gap:10px;justify-items:center;padding:22px 18px;text-align:center}.learning-player__host-prompt-icon{font-size:clamp(36px,10vw,52px);line-height:1}.learning-player__host-prompt h2{font-size:clamp(24px,7vw,38px)}.learning-player__host-prompt p{color:#cbd5e1;font-size:clamp(15px,4.2vw,18px);line-height:1.45;margin:0;max-width:28ch}.learning-player__answers{grid-gap:12px;display:grid;gap:12px}.learning-player__answers .learning-page__answer{border-radius:18px;font-size:19px;min-height:92px;padding:18px}.learning-player__result.is-correct{background:#11b96e38}.learning-player__result.is-wrong{background:#e94b4b38}.learning-player__result span{color:#facc15;font-size:26px;font-weight:900}.learning-player__result p{color:#d7e3ee;line-height:1.45;margin:0}.learning-player__leaderboard{text-align:left}.learning-player__finale{background:radial-gradient(circle at 20% 0,#facc1533,#0000 42%),#44403c57}.learning-player__finale>span{color:#eab308;font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.learning-player__finale strong{color:#facc15;font-size:clamp(48px,18vw,86px);line-height:.95}.learning-player__finale div{grid-gap:7px;display:grid;gap:7px;margin-top:4px}.learning-player__finale b{background:#ffffff14;border-radius:12px;font-weight:900;padding:9px 10px}@keyframes learningCorrectPulse{0%{transform:scale(1)}45%{transform:scale(1.025)}to{transform:scale(1)}}@keyframes learningWrongShake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}55%{transform:translateX(7px)}78%{transform:translateX(-3px)}}@keyframes learningGeneratingPulse{0%{opacity:.9;transform:scale(.35)}70%{opacity:.16;transform:scale(1)}to{opacity:0;transform:scale(1.18)}}@keyframes learningBubbleIn{0%{opacity:0;transform:translateY(18px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learningPlayerPulse{0%,to{opacity:.8;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}@media (max-width:1180px){.learning-page__layout{grid-template-columns:300px minmax(0,1fr)}.learning-page__history{grid-column:1/-1}.learning-page__sessions{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.learning-page__hostgrid{grid-template-columns:190px 1fr}.learning-host-stage__lobby,.learning-host-stage__scoreboard{grid-template-columns:1fr}}@media (max-width:820px){.learning-page{padding:14px}.learning-page__topbar{align-items:flex-start;flex-direction:column}.learning-page__status{align-items:flex-start}.learning-fullscreen__answers,.learning-page__advanced-grid,.learning-page__answers,.learning-page__choiceedit,.learning-page__formgrid,.learning-page__hostgrid,.learning-page__hoststate,.learning-page__inline,.learning-page__layout,.learning-page__soundedit,.learning-page__typing-answer div,.learning-player__typing div{grid-template-columns:1fr}.learning-page__play{min-height:auto}.learning-page__playhead,.learning-page__playtools{align-items:stretch;flex-direction:column}.learning-fullscreen{padding:72px 14px 24px}.learning-join{height:100svh;min-height:100svh;overflow:hidden;padding:10px}.learning-join__shell{grid-gap:8px;display:grid;gap:8px;grid-template-rows:auto minmax(0,1fr);height:100%;max-width:520px}.learning-join__header{padding:4px 0 2px}.learning-join__header span{font-size:10px}.learning-join__header h1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;font-size:clamp(20px,7vw,30px);line-height:1.05;margin:2px 0;overflow:hidden}.learning-join__header p{font-size:18px;line-height:1}.learning-join__card,.learning-player{border-radius:22px;min-height:0;padding:12px}.learning-join__card{align-content:center}.learning-join__card strong{font-size:clamp(28px,10vw,42px);line-height:.98}.learning-join__card button,.learning-join__card input{border-radius:16px;font-size:18px;min-height:54px}.learning-player{grid-gap:10px;display:grid;gap:10px;grid-template-rows:auto minmax(0,1fr);height:100%;overflow:hidden}.learning-player--answering{grid-template-rows:auto minmax(96px,.72fr) minmax(250px,1.28fr)}.learning-player__status{border-radius:18px;min-height:58px;padding:10px}.learning-player__status strong{font-size:17px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learning-player__status span{font-size:17px}.learning-player__finale,.learning-player__leaderboard,.learning-player__question,.learning-player__result,.learning-player__waiting{border-radius:20px;min-height:0}.learning-player__finale,.learning-player__result,.learning-player__waiting{align-content:center;justify-items:center;padding:18px 14px}.learning-player__result strong,.learning-player__waiting b{font-size:clamp(28px,10vw,44px);line-height:.98}.learning-player__finale small,.learning-player__result p,.learning-player__waiting span:not(.learning-player__pulse){font-size:14px;line-height:1.35;max-width:28ch}.learning-player__pulse{height:64px;width:64px}.learning-player__question{align-content:center;display:grid;padding:12px}.learning-player__question h2{display:block;font-size:clamp(20px,6vw,30px);line-height:1.18;max-height:none;overflow:visible}.learning-player__answers{grid-gap:8px;display:grid;gap:8px;grid-template-rows:repeat(4,minmax(0,1fr));min-height:0}.learning-player__answers .learning-page__answer{border-radius:16px;font-size:clamp(14px,4.2vw,18px);line-height:1.12;min-height:0;padding:10px}.learning-player__answers .learning-page__answer span{border-radius:12px;flex:0 0 34px;height:34px;width:34px}.learning-player__result span{font-size:clamp(38px,16vw,72px);line-height:.95}.learning-player__result p{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;margin-top:4px;overflow:hidden}.learning-player__finale strong{font-size:clamp(48px,18vw,78px)}.learning-player__finale div{width:100%}.learning-player__finale b{font-size:13px}.learning-host-stage{padding:68px 12px 18px}.learning-host-stage__header,.learning-host-stage__progress{align-items:stretch;flex-direction:column}.learning-host-stage__status{justify-items:start}.learning-host-stage__waiting{min-height:auto}.learning-host-stage__choices,.learning-host-stage__podium{grid-template-columns:1fr}.learning-host-stage__choice{border-radius:20px;min-height:84px}.learning-host-stage__podium-card,.learning-host-stage__podium-card.place-1,.learning-host-stage__podium-card.place-2{border-radius:22px;min-height:auto}.learning-host-stage__controls button{width:100%}}.learning-host-stage,.learning-join,.learning-page{--class-ink:#20323a;--class-board:#16343a;--class-board-2:#0f252b;--class-paper:#fff8ea;--class-paper-2:#f5ead5;--class-line:#dccaa8;--class-pencil:#e7a93f;--class-orange:#ee7b3a;--class-blue:#3b7dd8;--class-green:#4f9f6e;--class-red:#d95a4e;--class-muted:#6f7d7d}.learning-page{background:linear-gradient(rgba(32,50,58,.035) 1px,#0000 0),linear-gradient(90deg,rgba(32,50,58,.035) 1px,#0000 0),radial-gradient(circle at 18% 12%,#e7a93f24,#0000 28%),#f7efe0;background-size:28px 28px,28px 28px,auto,auto;color:var(--class-ink);font-family:Atkinson Hyperlegible,Trebuchet MS,sans-serif}.learning-host-stage h2,.learning-join h1,.learning-page h1,.learning-page h2,.learning-player__finale strong,.learning-player__result strong,.learning-player__waiting b{font-family:Baloo\ 2,Trebuchet MS,sans-serif}.learning-page__topbar{background:linear-gradient(90deg,#fff8eaf0,#f5ead5eb),var(--class-paper);border:2px solid #20323a1a;border-radius:26px;box-shadow:0 12px 0 #20323a14;margin-bottom:16px;max-width:1380px;padding:18px 20px}.learning-page__playhead span,.learning-page__private,.learning-page__sectionhead span{color:var(--class-orange);letter-spacing:.08em;text-transform:uppercase}.learning-page h1{font-size:clamp(34px,5vw,62px);letter-spacing:-.02em}.learning-page h1,.learning-page__back{color:var(--class-board)}.learning-page__status{background:#fff;border-radius:18px;color:var(--class-muted);padding:10px 14px}.learning-page__layout{gap:18px;grid-template-columns:minmax(280px,340px) minmax(520px,1fr) minmax(240px,290px);max-width:1380px}.learning-page__editor,.learning-page__history,.learning-page__play,.learning-page__source{background:#fff8eaf0;border:2px solid #20323a1f;border-radius:26px;box-shadow:0 14px 0 #20323a12}.learning-page__editor,.learning-page__history,.learning-page__source{padding:16px}.learning-page__tabs{background:#eadcc5;border:2px solid #20323a14;border-radius:18px}.learning-page__tabs button{border-radius:14px;color:#5f665f;transition:background .16s ease,color .16s ease}.learning-page__tabs button.is-active{background:var(--class-board);color:#fff8ea}.learning-page input,.learning-page select,.learning-page textarea{background:#fffdf6;border:2px solid #20323a24;border-radius:16px;color:var(--class-ink)}.learning-page button:focus-visible,.learning-page input:focus,.learning-page select:focus,.learning-page textarea:focus{border-color:var(--class-orange);box-shadow:0 0 0 4px #ee7b3a2e}.learning-page__dropzone{background:linear-gradient(180deg,#ffffff9e,#fff8eaf5),var(--class-paper);border:2px dashed #20323a3d;border-radius:22px}.learning-page__actions button,.learning-page__dropmark,.learning-page__explanation button,.learning-page__generate{background:var(--class-orange);box-shadow:none;color:#fffdf6}.learning-page__actions button,.learning-page__generate,.learning-page__playtools>button{border-radius:999px;font-weight:900;transition:transform .12s ease,filter .16s ease}.learning-page__actions button:hover:not(:disabled),.learning-page__generate:hover:not(:disabled),.learning-page__playtools>button:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.learning-page__play{background:linear-gradient(#ffffff0f 1px,#0000 1px),var(--class-board);background-size:24px 24px,auto;color:#f8f3df;min-height:410px}.learning-page__play:before{background:linear-gradient(180deg,#ffffff0a,#0000)}.learning-page__play h2,.learning-page__playhead strong{color:#fff8ea}.learning-page__score{background:#fff8ea;color:var(--class-board)}.learning-page__score small{color:#6f7d7d}.learning-page__playtools>button{background:#fff8ea;color:var(--class-board)}.learning-page__playtools>button:nth-child(2){background:var(--class-orange);color:#fff8ea}.learning-page__timer{border-color:var(--class-pencil);border-width:6px}.learning-host-stage__choice,.learning-page__answer{border:2px solid #ffffff2e;border-radius:22px;box-shadow:0 8px 0 #00000024}.learning-page__answer--a{background:var(--class-blue)}.learning-page__answer--b{background:var(--class-green)}.learning-page__answer--c{background:var(--class-pencil);color:#1f2c2f}.learning-page__answer--d{background:var(--class-red)}.learning-host-stage__choice.is-correct,.learning-page__answer.is-correct{box-shadow:0 0 0 5px #fff8ea,0 0 0 10px var(--class-pencil),0 8px 0 #00000024}.learning-page__explanation,.learning-page__questionlist button,.learning-page__sessions article{background:#fffdf6;border:2px solid #20323a1a;border-radius:18px}.learning-page__questionlist button.is-active,.learning-page__sessions article.is-active{background:#fff3db;border-color:var(--class-orange)}.learning-page__questionlist span{color:var(--class-orange)}.learning-page__host{background:var(--class-board);border-radius:26px;box-shadow:0 14px 0 #20323a24}.learning-page__hostended,.learning-page__hoststate,.learning-page__leaderboard,.learning-page__players,.learning-page__qr{background:#fff8ea17;border-radius:20px}.learning-page__host.is-ended{grid-gap:14px;display:grid;gap:14px}.learning-page__host.is-ended .learning-page__sectionhead{align-items:center}.learning-page__hostended{grid-gap:14px;display:grid;gap:14px;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);padding:14px}.learning-page__hostended>div:first-child{grid-gap:4px;align-content:center;display:grid;gap:4px}.learning-page__hostended>div:first-child span{color:#f0b44d;font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.learning-page__hostended>div:first-child strong{color:#fff8ea;font-size:clamp(22px,3vw,36px);line-height:1.05}.learning-page__mini-podium{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.learning-page__mini-podium article{grid-gap:4px;background:#fff8ea;border-radius:16px;color:var(--class-board);display:grid;gap:4px;min-width:0;padding:12px}.learning-page__mini-podium small{color:var(--class-orange);font-weight:950}.learning-page__mini-podium strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learning-page__mini-podium b{color:var(--class-orange)}.learning-page__mini-podium em{color:#f5ead5;font-style:normal;font-weight:900;grid-column:1/-1}.learning-page__mini-student{background:#fff8ea;border-color:#fff8ea29;box-shadow:0 4px 0 #0000001f;color:var(--class-board)}.learning-page__mini-student small,.learning-page__players-empty span{background:var(--class-orange);color:#fff8ea}.learning-page__players-empty{border-color:#fff8ea38}.learning-host-stage{background:linear-gradient(hsla(0,0%,100%,.045) 1px,#0000 0),linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,#0000 0),radial-gradient(circle at 78% 18%,#e7a93f29,#0000 30%),linear-gradient(145deg,#173b3f,#10282e 70%);background-size:32px 32px,32px 32px,auto,auto;font-family:Atkinson Hyperlegible,Trebuchet MS,sans-serif;padding-bottom:88px}.learning-host-stage:before{background-image:none}.learning-host-stage__header{background:#0f252bc2;border:2px solid #fff8ea1f;border-radius:24px;box-shadow:0 10px 0 #00000029;padding:14px 18px}.learning-host-stage__finale>span,.learning-host-stage__header span,.learning-host-stage__waiting span{color:#f0b44d}.learning-host-stage__status{background:#fff8ea;border-color:#fff8ea2e;color:var(--class-board)}.learning-host-stage__final-list b,.learning-host-stage__marks b,.learning-host-stage__podium-card b,.learning-host-stage__progress strong,.learning-host-stage__status b{color:var(--class-orange)}.learning-host-stage__final-list,.learning-host-stage__joincard,.learning-host-stage__scoreboard,.learning-host-stage__waiting{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0f252bc7;border:2px solid #fff8ea29;border-radius:24px;box-shadow:0 12px 0 #0000002e}.learning-host-stage__joincard{background:#fff8ea;color:var(--class-board)}.learning-host-stage__joincard p,.learning-host-stage__joincard span{color:#6c5e47}.learning-host-stage__joincard strong{color:var(--class-board);text-shadow:none}.learning-host-stage__joincard img{border-color:var(--class-board);border-radius:16px;box-shadow:none}.learning-host-stage__finale h2,.learning-host-stage__question h2,.learning-host-stage__reveal h2,.learning-host-stage__waiting h2{color:#fff8ea}.learning-host-stage__desk-card,.learning-host-stage__empty-desk{background:#fff8ea;border-color:#fff8ea3d;box-shadow:0 6px 0 #00000029}.learning-host-stage__desk-card:before,.learning-host-stage__empty-desk:before{background:var(--class-orange)}.learning-host-stage__desk-card small,.learning-host-stage__empty-desk small{color:var(--class-orange)}.learning-host-stage__empty-desk strong{color:var(--class-board)}.learning-host-stage__empty-desk span{color:#6c5e47}.learning-host-stage__roster-head small{background:#fff8ea;color:var(--class-board)}.learning-host-stage__overflow-note{background:#fff8ea1f;color:#fff8ea}.learning-host-stage__progress{background:#0f252bb8;border-radius:18px}.learning-host-stage__controls button{background:var(--class-orange);box-shadow:0 8px 0 #0000002e;color:#fff8ea}.learning-host-stage__controls button+button{background:#fff8ea;color:var(--class-board)}.learning-host-stage__choice.is-muted{filter:saturate(.6);opacity:.35}.learning-host-stage__explain p{color:#f5ead5}.learning-host-stage__final-list div,.learning-host-stage__marks div,.learning-host-stage__podium-card{background:#fff8ea1a}.learning-host-stage__marks div.is-correct,.learning-host-stage__podium-card.place-1{background:#ee7b3a38}.learning-host-stage--question,.learning-host-stage--revealed{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.learning-host-stage--question .learning-host-stage__header,.learning-host-stage--revealed .learning-host-stage__header{margin-bottom:12px}.learning-host-stage__question,.learning-host-stage__reveal{grid-gap:clamp(10px,1.4vw,16px);align-content:stretch;display:grid;gap:clamp(10px,1.4vw,16px);grid-template-rows:auto minmax(0,1fr) auto auto;height:100%;min-height:0;overflow:hidden}.learning-host-stage__question .learning-question-text,.learning-host-stage__reveal .learning-question-text{align-self:center;flex:1 1 auto;justify-self:center;max-height:none;min-height:0;overflow:visible;width:100%}.learning-host-stage__question .learning-host-stage__choices,.learning-host-stage__reveal .learning-host-stage__choices{align-content:start;align-self:stretch;flex:0 0 auto;grid-auto-rows:auto;min-height:0}.learning-host-stage__question h2,.learning-host-stage__reveal h2{display:block;font-size:clamp(34px,4.8vw,72px);line-height:1.1;min-height:0;overflow:visible}.learning-host-stage__question .learning-question-text h2,.learning-host-stage__reveal .learning-question-text h2{display:block;font-size:clamp(34px,4.8vw,72px);line-height:1.1;max-height:none;overflow:visible}.learning-host-stage__question .learning-question-text.is-long h2,.learning-host-stage__reveal .learning-question-text.is-long h2{font-size:clamp(28px,3.6vw,52px);line-height:1.16}.learning-host-stage__question .learning-host-stage__choice,.learning-host-stage__reveal .learning-host-stage__choice{align-self:start;border-radius:20px;font-size:clamp(18px,2.2vw,32px);height:auto;min-height:0;padding:clamp(14px,1.6vw,22px)}.learning-host-stage__question .learning-host-stage__choice span,.learning-host-stage__reveal .learning-host-stage__choice span{border-radius:16px;flex-basis:clamp(44px,5.6vw,68px);height:clamp(44px,5.6vw,68px);width:clamp(44px,5.6vw,68px)}.learning-host-stage__reveal .learning-host-stage__scoreboard{min-height:0;overflow:hidden}.learning-host-stage__reveal .learning-host-stage__explain,.learning-host-stage__reveal .learning-host-stage__marks{min-height:0}.learning-host-stage__reveal .learning-host-stage__explain p{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;overflow:hidden}.learning-host-stage__reveal .learning-host-stage__marks{max-height:none;overflow:auto}.learning-host-stage__question .learning-host-stage__controls,.learning-host-stage__reveal .learning-host-stage__controls{align-self:end}.learning-join{background:radial-gradient(circle at 50% 0,#ee7b3a29,#0000 34%),linear-gradient(180deg,#173b3f,#10282e);font-family:Atkinson Hyperlegible,Trebuchet MS,sans-serif}.learning-join__card span,.learning-join__header span,.learning-player__finale>span{color:#f0b44d}.learning-join__card,.learning-player{background:#0f252bdb;border-color:#fff8ea29;box-shadow:0 10px 0 #0000002e}.learning-join__card input{background:#fff8ea;border-color:#fff8ea3d}.learning-join__card button{background:var(--class-orange);color:#fff8ea}.learning-player__finale,.learning-player__question,.learning-player__result,.learning-player__status,.learning-player__waiting{background:#fff8ea14;border-color:#fff8ea29}.learning-player__finale strong,.learning-player__result span,.learning-player__status span{color:#f0b44d}.learning-player__pulse{background:radial-gradient(circle,#f0b44d 0 28%,#0000 30%),radial-gradient(circle,#f0b44d40 0 58%,#0000 60%)}.learning-host-stage,.learning-join,.learning-page{--learn-ease-pop:cubic-bezier(0.2,1.25,0.34,1);--learn-ease-settle:cubic-bezier(0.2,0.85,0.25,1)}.learning-page__round{display:block}.learning-page__round-body,.learning-solo-question{grid-gap:16px;animation:learningSoloQuestionIn .52s var(--learn-ease-settle) both;display:grid;gap:16px}.learning-page__round .learning-page__timer{animation:none}.learning-fullscreen.is-opening .learning-fullscreen__meta,.learning-host-stage__header,.learning-player__status{animation:learningSoftDrop .46s var(--learn-ease-settle) both}.learning-host-stage__finale h2,.learning-host-stage__question h2,.learning-host-stage__reveal h2,.learning-page__round-body .learning-question-text h2,.learning-player__question h2,.learning-solo-question .learning-question-text h2{animation:learningChalkWrite .62s var(--learn-ease-settle) both;transform-origin:left center}.learning-host-stage__choice,.learning-page__answer{overflow:hidden;position:relative;transform-origin:center;transition:transform .16s var(--learn-ease-pop),filter .18s ease,opacity .18s ease,box-shadow .18s ease}.learning-fullscreen__answers .learning-page__answer,.learning-host-stage__choice,.learning-page__round-body .learning-page__answer,.learning-player__answers .learning-page__answer,.learning-solo-question .learning-page__answer{animation:learningChoiceDeal .48s var(--learn-ease-pop) both;animation-delay:0ms;animation-delay:calc(var(--choice-index, 0)*70ms)}.learning-host-stage__choice:before,.learning-page__answer:before{background:linear-gradient(110deg,#0000 0 36%,#fff8ea57 45%,#0000 56% 100%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transform:translateX(-120%)}.learning-host-stage__choice:hover,.learning-page__answer:hover:not(:disabled){transform:translateY(-3px) rotate(-.35deg)}.learning-page__answer:active:not(:disabled),.learning-player__answers .learning-page__answer:active:not(:disabled){box-shadow:0 3px 0 #0000002e;transform:translateY(4px) scale(.985)}.learning-page__answer.is-selected{animation:learningChoiceStamp .26s var(--learn-ease-pop)}.learning-host-stage__choice.is-correct,.learning-page__answer.is-correct{animation:learningCorrectPulse .52s ease-out,learningCorrectGlow 1.1s ease-out}.learning-host-stage__choice.is-correct:before,.learning-page__answer.is-correct:before{animation:learningAnswerShine .78s ease-out 80ms both}.learning-host-stage__choice.is-correct:after,.learning-page__answer.is-correct:after{animation:learningStickerPop .46s var(--learn-ease-pop) both;background:var(--class-orange);border:3px solid #fff8ea;border-radius:999px;box-shadow:0 6px 0 #00000029;color:#fff8ea;content:"✓";display:grid;font-weight:950;height:clamp(30px,4vw,48px);line-height:1;place-items:center;position:absolute;right:12px;top:10px;width:clamp(30px,4vw,48px)}.learning-page__answer.is-wrong{animation:learningWrongShake .36s ease-out,learningWrongSettle .72s ease-out}.learning-page__answer.is-wrong:after{animation:learningStickerPop .36s var(--learn-ease-pop) both;background:#8f2d28;border:3px solid #fff8ea;border-radius:999px;color:#fff8ea;content:"×";display:grid;font-size:28px;font-weight:950;height:36px;line-height:.8;place-items:center;position:absolute;right:12px;top:10px;width:36px}.learning-host-stage__choice.is-muted{animation:learningChoiceDim .42s ease-out both}.learning-fullscreen__result,.learning-page__explanation,.learning-player__result{animation:learningResultCardIn .52s var(--learn-ease-pop) both}.learning-page__leaderboard div,.learning-page__mini-podium article,.learning-page__mini-student{animation:learningListPop .42s var(--learn-ease-pop) both}.learning-page__mini-student{animation-delay:0ms;animation-delay:calc(var(--player-index, 0)*42ms)}.learning-page__leaderboard div{animation-delay:0ms;animation-delay:calc(var(--row-index, 0)*52ms)}.learning-page__mini-podium article{animation-delay:0ms;animation-delay:calc(var(--podium-index, 0)*86ms)}.learning-host-stage__status{animation:learningPlayerCountPulse 1.45s ease-in-out infinite}.learning-host-stage__joincard,.learning-host-stage__waiting{animation:learningStageCardIn .56s var(--learn-ease-settle) both}.learning-host-stage__waiting{animation-delay:90ms}.learning-host-stage__desk-card{will-change:transform,opacity}.learning-host-stage__desk-card:hover{transform:translateY(-3px) rotate(-.6deg)}.learning-host-stage__progress{overflow:hidden;position:relative}.learning-host-stage__progress:after{background:linear-gradient(90deg,var(--class-orange),#fff8ea);border-radius:999px;bottom:0;content:"";height:5px;left:0;position:absolute;transition:width .36s var(--learn-ease-settle);width:0;width:var(--answered-percent,0)}.learning-host-stage__progress strong{animation:learningAnsweredPulse .9s ease-in-out infinite}.learning-host-stage__scoreboard{animation:learningScoreboardIn .54s var(--learn-ease-settle) .16s both}.learning-host-stage__final-list div,.learning-host-stage__marks div{animation:learningScoreRowIn .42s var(--learn-ease-pop) both;animation-delay:.16s;animation-delay:calc(.16s + var(--row-index, 0)*48ms)}.learning-host-stage__marks div.is-correct b{animation:learningScoreBump .58s var(--learn-ease-pop) both}.learning-host-stage__podium-card{animation:learningPodiumRise .72s var(--learn-ease-pop) both;animation-delay:.12s;animation-delay:calc(.12s + var(--podium-index, 0)*.16s);transform-origin:center bottom}.learning-host-stage__podium-card.place-1{animation-name:learningPodiumRiseWinner}.learning-player__round{grid-gap:12px;animation:learningRoundIn .46s var(--learn-ease-settle) both;display:grid;gap:12px;min-height:0}.learning-player__finale,.learning-player__waiting{animation:learningResultCardIn .52s var(--learn-ease-pop) both}.learning-player__waiting--locked{animation:learningLockedBreath 1.8s ease-in-out infinite}.learning-player__waiting--locked .learning-player__pulse{animation-duration:1.05s}.learning-player__result.is-correct{box-shadow:0 0 0 4px #fff8ea33,0 0 0 9px #4f9f6e59}.learning-fullscreen__result.is-correct:before,.learning-player__result.is-correct:before{animation:learningStickerPop .48s var(--learn-ease-pop) both;background:var(--class-green);border-radius:50%;box-shadow:0 8px 0 #00000029;color:#fff8ea;content:"✓";display:grid;font-size:42px;font-weight:950;height:62px;justify-self:center;place-items:center;width:62px}.learning-player__result.is-wrong{animation:learningWrongCardIn .52s ease-out both;box-shadow:0 0 0 4px #fff8ea2e,0 0 0 9px #d95a4e4d}.learning-fullscreen__result.is-wrong:before,.learning-player__result.is-wrong:before{animation:learningStickerPop .42s var(--learn-ease-pop) both;background:var(--class-red);border-radius:50%;box-shadow:0 8px 0 #00000029;color:#fff8ea;content:"×";display:grid;font-size:52px;font-weight:950;height:62px;justify-self:center;line-height:.8;place-items:center;width:62px}.learning-player__finale strong{animation:learningScoreReveal .72s var(--learn-ease-pop) both}.learning-player__finale b{animation:learningScoreRowIn .42s var(--learn-ease-pop) both;animation-delay:0ms;animation-delay:calc(var(--row-index, 0)*70ms)}.learning-fullscreen.is-opening{animation:learningStageFadeIn .36s ease-out both}.learning-solo-question{gap:24px;margin:0 auto;width:min(100%,1180px)}.learning-fullscreen__result{position:relative}@keyframes learningSoloQuestionIn{0%{opacity:0;transform:translateX(26px) scale(.985)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes learningRoundIn{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learningSoftDrop{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes learningChalkWrite{0%{clip-path:inset(0 100% 0 0);opacity:0;transform:translateX(-10px)}to{clip-path:inset(0 0 0 0);opacity:1;transform:translateX(0)}}@keyframes learningChoiceDeal{0%{opacity:0;transform:translateY(24px) rotate(-1.8deg) scale(.94)}70%{opacity:1;transform:translateY(-3px) rotate(.5deg) scale(1.015)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes learningChoiceStamp{0%{transform:scale(1)}55%{transform:scale(.96) rotate(-.8deg)}to{transform:scale(1) rotate(0)}}@keyframes learningCorrectGlow{0%{filter:saturate(1)}45%{filter:saturate(1.28) brightness(1.12)}to{filter:saturate(1)}}@keyframes learningAnswerShine{0%{opacity:0;transform:translateX(-120%)}30%{opacity:1}to{opacity:0;transform:translateX(120%)}}@keyframes learningStickerPop{0%{opacity:0;transform:translateY(-12px) rotate(-14deg) scale(.45)}72%{opacity:1;transform:translateY(2px) rotate(5deg) scale(1.08)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes learningWrongSettle{0%{filter:saturate(1)}50%{filter:saturate(.86) brightness(.96)}to{filter:saturate(1)}}@keyframes learningChoiceDim{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:.35;transform:translateY(4px) scale(.985)}}@keyframes learningResultCardIn{0%{opacity:0;transform:translateY(20px) scale(.96)}72%{opacity:1;transform:translateY(-2px) scale(1.015)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learningWrongCardIn{0%{opacity:0;transform:translateX(0) scale(.96)}28%{opacity:1;transform:translateX(-8px) scale(1.01)}56%{transform:translateX(6px) scale(1)}to{transform:translateX(0) scale(1)}}@keyframes learningListPop{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learningDeskCardIn{0%{opacity:0;transform:translateY(18px) rotate(-1.4deg) scale(.9)}72%{opacity:1;transform:translateY(-3px) rotate(.45deg) scale(1.02)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes learningDeskCardIn3d{0%{opacity:0;transform:translate3d(0,18px,0) scale(.9);transform:translate3d(var(--seat-x,0),calc(var(--seat-y, 0px) + 18px),0) scale(.9)}72%{opacity:1;transform:translate3d(0,-3px,0) scale(1);transform:translate3d(var(--seat-x,0),calc(var(--seat-y, 0px) - 3px),var(--seat-z,0)) scale(var(--seat-scale,1))}to{opacity:1;transform:translateZ(0) scale(1);transform:translate3d(var(--seat-x,0),var(--seat-y,0),var(--seat-z,0)) scale(var(--seat-scale,1))}}@keyframes learningSeatingFloor{0%,to{opacity:.72;transform:rotateX(64deg) translateY(34px)}50%{opacity:.9;transform:rotateX(64deg) translateY(30px)}}@keyframes learningPlayerCountPulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes learningStageCardIn{0%{opacity:0;transform:translateY(18px) rotate(-.5deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes learningAnsweredPulse{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@keyframes learningScoreboardIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes learningScoreRowIn{0%{opacity:0;transform:translateX(16px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes learningScoreBump{0%{transform:scale(.84)}60%{transform:scale(1.16)}to{transform:scale(1)}}@keyframes learningPodiumRise{0%{opacity:0;transform:translateY(72px) scaleY(.72)}72%{opacity:1;transform:translateY(-6px) scaleY(1.03)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes learningPodiumRiseWinner{0%{opacity:0;transform:translateY(92px) scaleY(.68)}70%{opacity:1;transform:translateY(-10px) scaleY(1.05)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes learningLockedBreath{0%,to{box-shadow:0 10px 0 #0000002e;transform:scale(1)}50%{box-shadow:0 13px 0 #00000029;transform:scale(1.015)}}@keyframes learningScoreReveal{0%{opacity:0;transform:translateY(16px) scale(.78)}65%{opacity:1;transform:translateY(-4px) scale(1.08)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learningStageFadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:1180px){.learning-page__layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}}@media (max-width:820px){.learning-page{padding:10px}.learning-page__editor,.learning-page__history,.learning-page__play,.learning-page__source,.learning-page__topbar{border-radius:20px;box-shadow:0 8px 0 #20323a0f}.learning-page__hostended,.learning-page__mini-podium{grid-template-columns:1fr}.learning-page h1{font-size:clamp(30px,11vw,44px)}.learning-host-stage{background:linear-gradient(#ffffff0a 1px,#0000 0),linear-gradient(145deg,#173b3f,#10282e);background-size:24px 24px,auto;padding-bottom:92px}.learning-host-stage__exit{bottom:12px;left:12px;right:12px;width:auto}.learning-host-stage__final-list,.learning-host-stage__joincard,.learning-host-stage__scoreboard,.learning-host-stage__waiting{border-radius:20px;box-shadow:0 8px 0 #00000024}.learning-join{background:linear-gradient(hsla(0,0%,100%,.035) 1px,#0000 0),linear-gradient(180deg,#173b3f,#10282e);background-size:22px 22px,auto}.learning-join__header{color:#fff8ea}.learning-player--answering{grid-template-rows:auto minmax(0,1fr)}.learning-player__round{gap:8px;grid-template-rows:minmax(96px,.72fr) minmax(250px,1.28fr);overflow:hidden}.learning-player__question h2{color:#fff8ea}}@media (prefers-reduced-motion:reduce){.learning-host-stage,.learning-join,.learning-page{scroll-behavior:auto!important}.learning-host-stage *,.learning-host-stage :after,.learning-host-stage :before,.learning-join *,.learning-join :after,.learning-join :before,.learning-page *,.learning-page :after,.learning-page :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.learning-host-stage,.learning-join,.learning-page{--class-ink:#24353c;--class-board:#17383c;--class-paper:#fff9ed;--class-paper-2:#f6ecd9;--class-line:#d9c8a9;--class-pencil:#d99a35;--class-orange:#dd7432;--class-blue:#326fc2;--class-green:#418b63;--class-red:#c95048;--class-muted:#657475}.learning-page{background:linear-gradient(rgba(36,53,60,.028) 1px,#0000 0),linear-gradient(90deg,rgba(36,53,60,.028) 1px,#0000 0),#f6eddd;background-size:30px 30px,30px 30px,auto;padding:clamp(12px,1.8vw,20px)}.learning-page__editor,.learning-page__history,.learning-page__host,.learning-page__play,.learning-page__source,.learning-page__topbar{border-radius:18px;box-shadow:0 6px 0 #24353c0f}.learning-page__topbar{padding:14px 16px}.learning-page h1{font-size:clamp(28px,3.2vw,44px)}.learning-page__layout{gap:14px}.learning-page__play{min-height:360px;padding:16px}.learning-page__play h2{font-size:clamp(22px,2.4vw,32px);line-height:1.18}.learning-page__timer{height:64px;margin-top:18px;width:64px}.learning-page__answer{border-radius:16px;box-shadow:0 4px 0 #0000001f;font-size:15px;line-height:1.28;min-height:64px;padding:12px 14px}.learning-page__answer span{border-radius:10px;flex-basis:32px;height:32px;width:32px}.learning-host-stage__choice:hover,.learning-host-stage__desk-card:hover,.learning-page__answer:hover:not(:disabled){transform:translateY(-1px)}.learning-page__answer.is-selected{outline:3px solid #fff9edcc}.learning-join{background:linear-gradient(rgba(255,249,237,.035) 1px,#0000 0),linear-gradient(180deg,#1f464a,#143136);background-size:28px 28px,auto;padding:14px}.learning-join__shell{gap:12px;max-width:600px}.learning-join__header{padding:10px 0 4px}.learning-join__header h1{font-size:clamp(24px,5.6vw,40px);line-height:1.05}.learning-join__header p{font-size:clamp(18px,4.5vw,24px)}.learning-join__card,.learning-player{background:#122d31eb;border-radius:18px;box-shadow:0 6px 0 #00000029;padding:14px}.learning-join__card strong{font-size:clamp(22px,5vw,30px);line-height:1.08}.learning-join__card span,.learning-join__header span,.learning-player__finale>span{letter-spacing:.06em}.learning-join__field{grid-gap:6px;color:#f5ead5;display:grid;font-size:12px;font-weight:900;gap:6px}.learning-join__card input{border-radius:12px;font-size:16px;min-height:46px;padding:11px 12px}.learning-join__card button,.learning-player__final-actions button{border-radius:12px;font-size:15px;min-height:44px;padding:10px 14px}.learning-player{gap:12px}.learning-player__finale,.learning-player__question,.learning-player__result,.learning-player__status,.learning-player__waiting{border-radius:16px;padding:12px}.learning-player__status strong{font-size:18px}.learning-player__result strong,.learning-player__waiting b{font-size:clamp(22px,6vw,32px)}.learning-player__pulse{height:48px;width:48px}.learning-player__question h2{font-size:clamp(22px,5.8vw,36px);line-height:1.12}.learning-player__answers{gap:9px}.learning-player__answers .learning-page__answer{border-radius:14px;font-size:16px;min-height:70px;padding:11px 12px}.learning-player__result span{font-size:clamp(24px,8vw,40px)}.learning-player__finale{align-content:start;text-align:left}.learning-player__finale strong{font-size:clamp(36px,12vw,58px)}.learning-player__top-list{width:100%}.learning-player__final-actions{grid-gap:10px;display:grid;gap:10px;margin-top:6px;width:100%}.learning-player__final-actions>button{background:#fff9ed;color:var(--class-board);font-weight:900;width:100%}.learning-player__join-another{grid-gap:6px;color:#f5ead5;display:grid;font-size:12px;font-weight:900;gap:6px;width:100%}.learning-player__join-another>div{grid-gap:8px;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.learning-player__join-another input{background:#fff9ed;border:1px solid #fff9ed47;border-radius:12px;color:var(--class-ink);font:inherit;min-height:44px;min-width:0;padding:10px 12px}.learning-player__join-another button{background:var(--class-orange);color:#fff9ed;font-weight:900}.learning-audio-toggle{align-items:center;background:#fff9ed1f;border:1px solid #fff9ed47;border-radius:999px;color:#fff9ed;cursor:pointer;display:inline-flex;font:inherit;font-weight:900;gap:6px;justify-content:center;transition:transform .14s ease,background .16s ease,color .16s ease}.learning-audio-toggle:hover:not(:disabled){transform:translateY(-1px)}.learning-audio-toggle[aria-pressed=true]{background:#fff9ed;color:var(--class-board)}.learning-audio-toggle:disabled{cursor:not-allowed;opacity:.52}.learning-audio-toggle--inline{background:#fff9ed1f;color:#fff9ed;min-width:176px}.learning-host-stage__header-actions{align-items:stretch;display:flex;gap:10px;justify-content:flex-end}.learning-audio-toggle--stage{align-content:center;display:grid;justify-items:start;min-width:178px;padding:9px 13px;text-align:left}.learning-audio-toggle--stage span{color:inherit;font-size:13px;letter-spacing:0;text-transform:none}.learning-audio-toggle--stage small{color:inherit;font-size:11px;font-weight:800;opacity:.72}.learning-qr-overlay{background:radial-gradient(circle at 20% 10%,#f0b44d38,#0000 34%),radial-gradient(circle at 80% 20%,#5cc48a2e,#0000 34%),#071624eb;cursor:zoom-out;display:grid;inset:0;padding:clamp(16px,3vw,40px);place-items:center;position:fixed;z-index:6000}.learning-qr-overlay__card{background:#fff8ea;border:3px solid #fff9ed47;border-radius:clamp(24px,4vw,40px);box-shadow:0 36px 90px #0000006b,0 10px 0 #0000002e;color:var(--class-board);cursor:default;display:grid;justify-items:center;max-height:min(92svh,920px);overflow:auto;padding:clamp(22px,4vw,42px);position:relative;text-align:center;width:min(92vw,720px)}.learning-qr-overlay__close{background:var(--class-board);border:0;border-radius:999px;color:#fff9ed;cursor:pointer;font:inherit;font-size:13px;font-weight:950;min-height:44px;min-width:44px;padding:10px 16px;position:absolute;right:clamp(12px,2vw,20px);top:clamp(12px,2vw,20px);touch-action:manipulation}.learning-qr-overlay__card>span{color:#6c5e47;font-size:clamp(14px,2vw,18px);font-weight:950;letter-spacing:.04em}.learning-qr-overlay__image{padding:clamp(14px,2vw,22px) 0 8px;width:min(74vw,460px)}.learning-qr-overlay__image img{background:#fff;border:clamp(8px,1.6vw,14px) solid var(--class-board);border-radius:clamp(18px,3vw,30px);box-shadow:0 14px 0 #20323a1f;display:block;padding:clamp(10px,2vw,18px);width:100%}.learning-qr-overlay__card strong{color:var(--class-board);font-size:clamp(52px,11vw,116px);letter-spacing:.02em;line-height:.9}.learning-qr-overlay__card p{color:#6c5e47;font-size:clamp(12px,1.7vw,16px);font-weight:900;margin:8px 0 0;max-width:100%;overflow-wrap:anywhere}.learning-qr-overlay__card small{color:#8a7a61;font-size:clamp(12px,1.5vw,15px);font-weight:850;margin-top:8px}.learning-host-stage{background:linear-gradient(rgba(255,249,237,.035) 1px,#0000 0),linear-gradient(145deg,#1f464a,#143136);background-size:30px 30px,auto;padding:clamp(12px,1.8vw,22px) clamp(12px,2vw,24px) 76px}.learning-host-stage__final-list,.learning-host-stage__header,.learning-host-stage__joincard,.learning-host-stage__scoreboard,.learning-host-stage__waiting{border-radius:18px;box-shadow:0 6px 0 #00000024}.learning-host-stage__header{padding:12px 14px}.learning-host-stage__header strong{font-size:clamp(22px,3vw,42px);line-height:1.05}.learning-host-stage__status{border-radius:16px;min-width:86px;padding:9px 12px}.learning-host-stage__status b{font-size:clamp(28px,4vw,48px)}.learning-host-stage__finale,.learning-host-stage__lobby,.learning-host-stage__question,.learning-host-stage__reveal{gap:clamp(10px,1.2vw,16px);max-width:1160px}.learning-host-stage__joincard strong{font-size:clamp(42px,5.6vw,72px)}.learning-host-stage__joincard img{width:min(100%,220px)}.learning-host-stage__waiting{min-height:min(46vh,360px);padding:clamp(14px,2vw,22px)}.learning-host-stage__finale h2,.learning-host-stage__question h2,.learning-host-stage__reveal h2,.learning-host-stage__waiting h2{font-size:clamp(26px,4vw,54px);line-height:1.05}.learning-host-stage__explain p,.learning-host-stage__waiting p{font-size:clamp(14px,1.5vw,20px)}.learning-host-stage__desks{grid-template-columns:repeat(auto-fill,minmax(clamp(110px,11vw,150px),1fr))}.learning-host-stage__desk-card,.learning-host-stage__empty-desk{background:linear-gradient(180deg,#ffffffb8,#fff9edfa),var(--class-paper);border:1px solid #755b3333;border-radius:16px;box-shadow:inset 0 1px 0 #ffffffd1,0 8px 18px #0000001f,0 3px 0 #755b3329;color:var(--class-board)}.learning-host-stage__desk-card{min-height:70px;overflow:visible;padding:13px 12px 12px}.learning-host-stage__desk-card:before,.learning-host-stage__empty-desk:before{background:linear-gradient(90deg,#dd7432d9,#d99a3570,#0000 84%);border-radius:999px;height:3px;inset:7px 12px auto}.learning-host-stage__desk-card small,.learning-host-stage__empty-desk small{align-items:center;background:#ffefd6db;border:1px solid #dd74322e;border-radius:999px;box-shadow:0 1px 0 #ffffffc2;color:#a55325;display:inline-flex;gap:5px;justify-self:start;line-height:1.15;padding:2px 7px}.learning-host-stage__desk-card small:before,.learning-host-stage__empty-desk small:before{background:var(--class-orange);border-radius:50%;box-shadow:0 0 0 2px #dd74321f;content:"";height:5px;width:5px}.learning-host-stage__desk-card span{color:var(--class-board);font-size:clamp(15px,1.3vw,20px);letter-spacing:-.01em}.learning-host-stage__roster{min-height:clamp(220px,32vh,360px);overflow:hidden;padding:10px 6px 4px;perspective:980px;perspective-origin:50% 12%}.learning-host-stage__roster:before{animation:learningSeatingFloor 8s ease-in-out infinite;background:linear-gradient(#fff9ed14 2px,#0000 0),linear-gradient(90deg,#fff9ed12 2px,#0000 0),radial-gradient(ellipse at center,#fff9ed1f,#0f252b3d 68%);background-size:38px 38px,38px 38px,auto;border:2px solid #fff9ed24;border-radius:46% 46% 18px 18px/24% 24% 18px 18px;box-shadow:inset 0 30px 55px #fff9ed0f;content:"";inset:32px 3% 8px;pointer-events:none;position:absolute;transform:rotateX(64deg) translateY(34px);transform-origin:center bottom}.learning-host-stage__desks{align-items:start;gap:clamp(8px,1vw,14px);grid-template-columns:repeat(auto-fill,minmax(clamp(118px,10.8vw,154px),1fr));max-height:min(32vh,340px);min-height:190px;padding:22px 12px 18px;position:relative;scrollbar-color:#fff9ed8c #fff9ed14;transform-style:preserve-3d;z-index:1}.learning-host-stage__desk-card{animation:learningDeskCardIn3d .52s var(--learn-ease-pop) both;animation-delay:var(--delay);transform:translateZ(0) scale(1);transform:translate3d(var(--seat-x,0),var(--seat-y,0),var(--seat-z,0)) scale(var(--seat-scale,1));transform-origin:center bottom}.learning-host-stage__desk-card:hover{transform:translate3d(0,-3px,10px) scale(1);transform:translate3d(var(--seat-x,0),calc(var(--seat-y, 0px) - 3px),calc(var(--seat-z, 0px) + 10px)) scale(var(--seat-scale,1))}.learning-host-stage__desk-card:after{background:#00000024;border-radius:0 0 16px 16px;content:"";filter:blur(6px);height:10px;inset:auto 14px -8px;pointer-events:none;position:absolute;transform:translateZ(-16px)}.learning-host-stage__desk-card:nth-child(6n+2),.learning-host-stage__desk-card:nth-child(6n+5){margin-top:10px}.learning-host-stage__desk-card:nth-child(6n+3),.learning-host-stage__desk-card:nth-child(6n+4){margin-top:20px}.learning-host-stage__empty-desk{transform:translateZ(48px) rotate(-.5deg);z-index:1}.learning-host-stage__choice{border-radius:16px;font-size:clamp(17px,2.1vw,30px);min-height:clamp(76px,9vw,118px);padding:clamp(12px,1.6vw,20px)}.learning-host-stage__choice span{border-radius:14px;flex-basis:clamp(38px,4.8vw,58px);height:clamp(38px,4.8vw,58px);width:clamp(38px,4.8vw,58px)}.learning-host-stage__controls button{box-shadow:0 5px 0 #00000029;font-size:clamp(14px,1.4vw,18px);min-height:46px;padding:11px 18px}.learning-host-stage__podium-card,.learning-host-stage__podium-card.place-1,.learning-host-stage__podium-card.place-2{min-height:150px}.learning-host-stage__podium-card strong{font-size:clamp(18px,2.4vw,28px)}.learning-host-stage__podium-card b{font-size:clamp(20px,3vw,36px)}.learning-host-stage--lobby{overflow-x:hidden}.learning-host-stage__lobby{align-content:stretch;grid-template-columns:minmax(190px,.34fr) minmax(0,1.66fr);max-width:min(100%,1340px);min-height:0}.learning-host-stage__lobby .learning-host-stage__joincard{align-content:start;gap:10px;padding:clamp(12px,1.4vw,18px)}.learning-host-stage__lobby .learning-host-stage__joincard strong{font-size:clamp(38px,4.6vw,62px)}.learning-host-stage__lobby .learning-host-stage__joincard img{width:min(100%,176px)}.learning-host-stage__lobby .learning-host-stage__joincard p{font-size:clamp(9px,.8vw,11px)}.learning-host-stage__lobby .learning-host-stage__waiting{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);min-height:clamp(430px,62vh,650px);padding:clamp(14px,1.8vw,24px)}.learning-host-stage__lobby .learning-host-stage__waiting h2{font-size:clamp(28px,3.7vw,56px)}.learning-host-stage__lobby .learning-host-stage__waiting p{font-size:clamp(14px,1.35vw,19px);max-width:58ch}.learning-host-stage__lobby .learning-host-stage__roster-head{margin-top:clamp(10px,1.4vh,16px)}.learning-host-stage__lobby .learning-host-stage__roster{margin-top:8px;min-height:clamp(300px,45vh,520px);overflow:hidden}.learning-host-stage__roster.is-empty{display:grid;place-items:center}.learning-host-stage__lobby .learning-host-stage__desks{gap:clamp(8px,.9vw,13px);grid-template-columns:repeat(auto-fit,minmax(clamp(104px,8.8vw,146px),1fr));max-height:clamp(290px,43vh,500px);min-height:clamp(250px,38vh,450px);overflow-x:hidden;overflow-y:auto;padding:clamp(20px,3vh,34px) clamp(10px,1.8vw,24px) 20px}.learning-host-stage__ghost-desks{grid-gap:clamp(8px,1.2vw,18px);display:grid;gap:clamp(8px,1.2vw,18px);grid-template-columns:repeat(6,minmax(48px,1fr));list-style:none;margin:0;padding:clamp(42px,6vh,76px) clamp(18px,3vw,56px) clamp(26px,4vh,48px);position:relative;transform:rotateX(13deg);transform-style:preserve-3d;width:min(100%,880px);z-index:1}.learning-host-stage__ghost-desks li{background:linear-gradient(180deg,#fff9ed2e,#fff9ed0f),#0f252b52;border:1px dashed #fff9ed47;border-radius:14px;box-shadow:0 6px 0 #0000001a;min-height:clamp(46px,5.3vw,72px);opacity:.82}.learning-host-stage__ghost-desks li:nth-child(6n+2),.learning-host-stage__ghost-desks li:nth-child(6n+5){transform:translateY(10px)}.learning-host-stage__ghost-desks li:nth-child(n+13){opacity:.55}.learning-host-stage__lobby .learning-host-stage__empty-desk{border-style:solid;left:clamp(14px,2vw,24px);padding:14px 14px 13px;position:absolute;text-align:left;top:clamp(14px,2vw,24px);transform:none;width:min(230px,calc(100% - 28px));z-index:3}.learning-host-stage__lobby .learning-host-stage__empty-desk strong{font-size:clamp(20px,2vw,28px)}.learning-host-stage__lobby .learning-host-stage__empty-desk span{font-size:13px;line-height:1.35}@media (max-width:1180px){.learning-host-stage__lobby{grid-template-columns:1fr}.learning-host-stage__lobby .learning-host-stage__joincard{align-items:center;grid-template-columns:minmax(0,1fr) auto;justify-items:start;text-align:left}.learning-host-stage__lobby .learning-host-stage__joincard img{grid-column:2;grid-row:1/span 3;width:132px}.learning-host-stage__lobby .learning-host-stage__joincard strong{font-size:clamp(36px,8vw,58px)}}@media (max-width:820px){.learning-join{height:auto;min-height:100svh;overflow:auto;padding:10px}.learning-join__shell{gap:8px;height:auto;min-height:calc(100svh - 20px)}.learning-join__header h1{font-size:clamp(20px,6vw,28px)}.learning-join__card,.learning-player{border-radius:16px;padding:11px}.learning-player{height:auto;overflow:visible}.learning-player--answering{min-height:calc(100svh - 82px)}.learning-player__round{grid-template-rows:minmax(84px,.64fr) minmax(220px,1fr)}.learning-player__question h2{font-size:clamp(18px,5.2vw,26px)}.learning-player__answers .learning-page__answer{font-size:clamp(13px,3.9vw,16px);min-height:0;padding:9px}.learning-player__finale{align-content:start;gap:8px;justify-items:stretch}.learning-player__finale strong{font-size:clamp(34px,12vw,52px)}.learning-player__join-another>div{grid-template-columns:1fr}.learning-host-stage{overflow:auto;padding:64px 10px 84px}.learning-host-stage--question,.learning-host-stage--revealed{overflow:auto}.learning-host-stage__question,.learning-host-stage__reveal{height:auto;overflow:visible}.learning-host-stage__question .learning-question-text h2,.learning-host-stage__reveal .learning-question-text h2{display:block;font-size:clamp(21px,6vw,32px);line-height:1.2;overflow:visible}.learning-host-stage__choice{font-size:clamp(15px,4.4vw,21px);min-height:68px}.learning-host-stage__header-actions{justify-content:space-between}.learning-audio-toggle--stage{min-width:0}.learning-host-stage__roster{min-height:210px;padding:4px 0 0;perspective:760px}.learning-host-stage__desks{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));max-height:260px;min-height:176px;padding:18px 8px 16px}.learning-host-stage__desk-card:nth-child(n){margin-top:0}.learning-join{height:100svh;min-height:100svh;overflow:hidden;padding:8px}.learning-join__shell{gap:6px;grid-template-rows:auto minmax(0,1fr);height:calc(100svh - 16px);min-height:0}.learning-join__header{grid-gap:2px;display:grid;gap:2px;padding:0}.learning-join__header span{font-size:9px}.learning-join__header h1{font-size:clamp(18px,5.5vw,24px);margin:0}.learning-join__header p{font-size:16px}.learning-join__card,.learning-player{border-radius:14px;min-height:0;padding:10px}.learning-join__card{align-content:center;gap:9px;height:100%;overflow:hidden}.learning-join__card p{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}.learning-player{gap:8px;grid-template-rows:auto minmax(0,1fr);height:100%;overflow:hidden}.learning-player--answering{min-height:0}.learning-player__status{min-height:48px;padding:8px}.learning-player__status span,.learning-player__status strong{font-size:15px}.learning-player__finale,.learning-player__result,.learning-player__round,.learning-player__waiting{height:100%;min-height:0;overflow:hidden}.learning-player__round{gap:7px;grid-template-rows:minmax(72px,.55fr) minmax(0,1.45fr)}.learning-player__finale,.learning-player__question,.learning-player__result,.learning-player__waiting{padding:9px}.learning-player__question h2{-webkit-line-clamp:4;font-size:clamp(17px,5vw,24px);line-height:1.06}.learning-player__answers{gap:7px;grid-template-rows:repeat(4,minmax(0,1fr));min-height:0}.learning-player__answers .learning-page__answer{border-radius:12px;font-size:clamp(12px,3.7vw,15px);line-height:1.08;min-height:0;padding:8px}.learning-player__answers .learning-page__answer span{flex-basis:30px;height:30px;width:30px}.learning-player__waiting{align-content:center;gap:7px}.learning-player__result strong,.learning-player__waiting b{font-size:clamp(20px,6.4vw,30px)}.learning-player__pulse{height:42px;width:42px}.learning-player__result{align-content:center;gap:7px}.learning-player__result span{font-size:clamp(22px,7vw,34px)}.learning-player__result p{-webkit-box-orient:vertical;-webkit-line-clamp:3;display:-webkit-box;overflow:hidden}.learning-player__finale{align-content:center;gap:6px}.learning-player__finale strong{font-size:clamp(30px,10vw,46px)}.learning-player__top-list{max-height:98px;overflow:hidden}.learning-player__finale b{font-size:12px;padding:7px 8px}.learning-player__final-actions{gap:7px;margin-top:2px}.learning-player__join-another{gap:5px}.learning-player__join-another button,.learning-player__join-another input{border-radius:10px;min-height:38px;padding:8px 10px}}.learning-host-stage .learning-host-stage__exit{background:#fff9ed1f;border:1px solid #fff9ed4d;border-radius:14px;box-shadow:none;color:#fff9ed;font-size:13px;font-weight:900;inset:auto;min-height:44px;padding:9px 12px;position:static;white-space:nowrap}.learning-host-stage .learning-host-stage__exit:hover{background:#fff9ed;color:var(--class-board)}.learning-host-stage__header>div:first-child{min-width:0}.learning-host-stage__header strong{overflow:hidden;text-overflow:ellipsis}.learning-host-stage--lobby{grid-template-rows:auto minmax(0,1fr);height:100svh;min-height:100svh;overflow:hidden;padding:clamp(10px,1.4vw,18px)}.learning-host-stage--lobby .learning-host-stage__header{align-items:center;margin-bottom:10px;max-width:min(100%,1240px);min-height:0;padding:10px 12px;width:100%}.learning-host-stage--lobby .learning-host-stage__header strong{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;font-size:clamp(18px,2.4vw,32px);line-height:1.08}.learning-host-stage--lobby .learning-host-stage__header-actions{align-items:center;flex:0 0 auto;gap:8px}.learning-host-stage--lobby .learning-audio-toggle--stage{min-height:44px;min-width:154px;padding:7px 11px}.learning-host-stage--lobby .learning-audio-toggle--stage small{display:none}.learning-host-stage--lobby .learning-host-stage__status{min-height:44px;min-width:74px;padding:7px 10px}.learning-host-stage--lobby .learning-host-stage__status b{font-size:clamp(24px,3.2vw,40px)}.learning-host-stage--lobby .learning-host-stage__lobby{grid-gap:clamp(10px,1.2vw,14px);align-content:stretch;align-items:stretch;display:grid;gap:clamp(10px,1.2vw,14px);grid-template-columns:minmax(220px,280px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100%;max-width:min(100%,1240px);min-height:0;width:100%}.learning-host-stage__join-actions{display:flex;justify-content:center;width:100%}.learning-host-stage__join-actions button{background:var(--class-orange);border-radius:16px;box-shadow:0 5px 0 #00000029;color:#fff9ed;font-size:clamp(15px,1.35vw,18px);font-weight:950;min-height:48px;padding:11px 18px;width:min(100%,210px)}.learning-host-stage__join-actions button:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px)}.learning-host-stage--lobby .learning-host-stage__joincard{grid-gap:8px;align-content:stretch;display:grid;gap:8px;grid-template-rows:auto auto auto minmax(0,1fr) auto;justify-items:center;min-height:0;padding:clamp(12px,1.4vw,16px)}.learning-host-stage--lobby .learning-host-stage__joincard span{font-size:12px;letter-spacing:.04em}.learning-host-stage--lobby .learning-host-stage__joincard strong{font-size:clamp(34px,4vw,54px);line-height:.95}.learning-host-stage--lobby .learning-host-stage__joincard p{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;font-size:10px;line-height:1.25;overflow:hidden}.learning-host-stage--lobby .learning-host-stage__joincard img{align-self:center;border-radius:14px;border-width:6px;width:min(100%,158px)}.learning-host-stage--lobby .learning-qr-trigger--stage{align-self:center;width:min(100%,158px)}.learning-host-stage--lobby .learning-qr-trigger--stage img{width:100%}.learning-host-stage--lobby .learning-host-stage__waiting{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden;padding:clamp(12px,1.6vw,20px)}.learning-host-stage--lobby .learning-host-stage__waiting h2{font-size:clamp(24px,3.2vw,46px);line-height:1.02}.learning-host-stage--lobby .learning-host-stage__waiting p{font-size:clamp(13px,1.2vw,17px);line-height:1.35;max-width:58ch}.learning-host-stage--lobby .learning-host-stage__roster-head{margin-top:8px}.learning-host-stage--lobby .learning-host-stage__roster-head strong{font-size:clamp(16px,1.7vw,22px)}.learning-host-stage--lobby .learning-host-stage__roster-head small{font-size:12px;padding:5px 9px}.learning-host-stage--lobby .learning-host-stage__roster{height:100%;margin-top:7px;min-height:0;overflow:hidden;padding:8px 8px 4px;perspective:880px;perspective-origin:50% 8%}.learning-host-stage--lobby .learning-host-stage__roster:before{background:linear-gradient(#fff9ed1f 2px,#0000 0),linear-gradient(90deg,#fff9ed1a 2px,#0000 0),radial-gradient(ellipse at center,#fff9ed29,#0f252b57 70%);background-size:34px 34px,34px 34px,auto;border-color:#fff9ed38;inset:10px 3% 2px;opacity:.95;transform:rotateX(58deg) translateY(18px)}.learning-host-stage--lobby .learning-host-stage__desks{align-content:start;gap:clamp(7px,.8vw,12px);grid-template-columns:repeat(auto-fit,minmax(clamp(96px,8vw,134px),1fr));height:100%;max-height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;padding:clamp(18px,3vh,30px) clamp(8px,1.3vw,18px) 16px}.learning-host-stage--lobby .learning-host-stage__desk-card{min-height:62px;padding:12px 10px 10px}.learning-host-stage--lobby .learning-host-stage__desk-card span{font-size:clamp(14px,1.15vw,18px)}.learning-host-stage--lobby .learning-host-stage__ghost-desks{align-self:center;padding:clamp(28px,4vh,48px) clamp(16px,3vw,48px) clamp(20px,3vh,36px);width:min(100%,780px)}.learning-host-stage--lobby .learning-host-stage__ghost-desks li{border-color:#fff9ed5c;min-height:clamp(38px,4.5vw,62px);opacity:.9}.learning-host-stage--lobby .learning-host-stage__empty-desk{border-style:solid;left:50%;padding:13px 14px 12px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:min(230px,calc(100% - 32px));z-index:3}.learning-host-stage--lobby .learning-host-stage__empty-desk strong{font-size:clamp(19px,1.9vw,26px)}.learning-host-stage--lobby .learning-host-stage__empty-desk span{font-size:12px;line-height:1.3}@media (max-width:1180px){.learning-host-stage--lobby{padding:8px 10px}.learning-host-stage--lobby .learning-host-stage__header{margin-bottom:8px;padding:8px 10px}.learning-host-stage--lobby .learning-host-stage__lobby{gap:8px;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.learning-host-stage--lobby .learning-host-stage__joincard{align-items:center;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto auto;justify-items:start;min-height:86px;padding:9px 11px;text-align:left}.learning-host-stage--lobby .learning-host-stage__joincard span{grid-column:1}.learning-host-stage--lobby .learning-host-stage__joincard strong{font-size:clamp(34px,6.8vw,52px);grid-column:1}.learning-host-stage--lobby .learning-host-stage__joincard p{display:none}.learning-host-stage--lobby .learning-host-stage__joincard img{border-width:4px;grid-column:2;grid-row:1/3;width:76px}.learning-host-stage--lobby .learning-qr-trigger--stage{grid-column:2;grid-row:1/3;width:76px}.learning-host-stage--lobby .learning-qr-trigger--stage img{width:100%}.learning-host-stage--lobby .learning-host-stage__join-actions{grid-column:3;grid-row:1/3;width:auto}.learning-host-stage__join-actions button{min-height:44px;padding:9px 16px;width:auto}.learning-host-stage--lobby .learning-host-stage__waiting{grid-template-rows:auto auto minmax(0,1fr);padding:11px 12px}.learning-host-stage--lobby .learning-host-stage__waiting>p,.learning-host-stage--lobby .learning-host-stage__waiting>span{display:none}.learning-host-stage--lobby .learning-host-stage__waiting h2{font-size:clamp(22px,3.5vw,34px)}.learning-host-stage--lobby .learning-host-stage__roster-head{margin-top:3px}.learning-host-stage--lobby .learning-host-stage__roster{margin-top:5px}}@media (max-width:820px){.learning-host-stage--lobby{overflow:auto;padding:10px 10px 12px}.learning-host-stage--lobby .learning-host-stage__header{align-items:stretch}.learning-host-stage--lobby .learning-host-stage__header-actions{flex-wrap:wrap}.learning-host-stage .learning-host-stage__exit,.learning-host-stage--lobby .learning-audio-toggle--stage{flex:1 1 150px}.learning-host-stage--lobby .learning-host-stage__lobby{height:auto;min-height:calc(100svh - 180px)}.learning-host-stage--lobby .learning-host-stage__joincard{grid-template-columns:minmax(0,1fr) auto;min-height:0}.learning-host-stage--lobby .learning-host-stage__join-actions{grid-column:1/-1;grid-row:auto;width:100%}.learning-host-stage--lobby .learning-host-stage__join-actions button{width:100%}.learning-host-stage--lobby .learning-host-stage__roster{min-height:260px}.learning-host-stage--lobby .learning-host-stage__ghost-desks{grid-template-columns:repeat(3,minmax(48px,1fr))}}.learning-page__host-next{color:#fff9edc7;display:block;font-size:13px;font-weight:800;line-height:1.35;margin-top:6px;max-width:58ch}.learning-page__host .learning-page__actions{align-items:center}.learning-page__host .learning-page__actions button{min-height:42px}.learning-audio-toggle:before{background:#fff9ed6b;border-radius:999px;box-shadow:0 0 0 3px #fff9ed14;content:"";height:9px;width:9px}.learning-audio-toggle[aria-pressed=true]:before{background:#418b63;box-shadow:0 0 0 3px #418b632e}.learning-host-stage__control-hint{color:#fff9edd1;flex:1 1 100%;font-size:clamp(13px,1.3vw,16px);font-weight:900;text-align:center}.learning-host-stage--question .learning-host-stage__controls,.learning-host-stage--revealed .learning-host-stage__controls{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#17383ceb;border:1px solid #fff9ed2e;border-radius:22px;bottom:12px;box-shadow:0 12px 30px #0003;margin:0 auto;max-width:min(100%,860px);padding:10px;position:sticky;z-index:10}.learning-host-stage--question .learning-host-stage__controls button:first-of-type,.learning-host-stage--revealed .learning-host-stage__controls button:first-of-type{min-width:min(100%,240px)}.learning-join button{cursor:pointer}.learning-join button:disabled{cursor:not-allowed;opacity:.58}.learning-host-stage button:focus-visible,.learning-join button:focus-visible,.learning-join input:focus{outline:3px solid #fff9edb8;outline-offset:3px}.learning-player__step{background:#fff9ed14;border:1px solid #fff9ed24;border-radius:14px;color:#fff9ed;font-size:13px;font-weight:900;line-height:1.28;margin:0;padding:8px 10px;text-align:center}.learning-player__answers .learning-page__answer:disabled{opacity:.78}@media (max-width:820px){.learning-player,.learning-player--answering{grid-template-rows:auto auto minmax(0,1fr)}.learning-player__step{font-size:12px;padding:6px 8px}.learning-player__finale,.learning-player__result,.learning-player__round,.learning-player__waiting{min-height:0}.learning-player__finale{align-content:center;gap:5px}.learning-player__final-actions{gap:6px}.learning-player__join-another>div{grid-template-columns:minmax(0,1fr) auto}.learning-player__join-another button{white-space:nowrap}.learning-host-stage--question .learning-host-stage__controls,.learning-host-stage--revealed .learning-host-stage__controls{border-radius:18px;bottom:8px;padding:8px}}.learning-page .learning-question-text{color:#fff8ea}.learning-fullscreen .learning-question-text h2,.learning-page .learning-question-text h2{color:#fff8ea;font-size:clamp(22px,2.5vw,34px);letter-spacing:0;line-height:1.22;max-width:min(100%,860px);text-align:center}.learning-host-stage .learning-question-text--host h2{color:#fff8ea;font-size:clamp(34px,4.8vw,72px);letter-spacing:0;line-height:1.1;margin:0 auto;max-width:min(100%,960px);text-align:center}.learning-fullscreen .learning-question-text.is-long h2,.learning-page .learning-question-text.is-long h2{font-size:clamp(20px,2vw,28px);max-width:min(100%,720px)}.learning-host-stage .learning-question-text--host.is-long h2{font-size:clamp(28px,3.6vw,52px);line-height:1.16;max-width:min(100%,860px)}.learning-host-stage .learning-question-text--host .learning-question-text__passage{max-height:min(30vh,260px);overflow:auto}.learning-fullscreen .learning-question-text__example,.learning-fullscreen .learning-question-text__passage,.learning-host-stage .learning-question-text__example,.learning-host-stage .learning-question-text__passage,.learning-page .learning-question-text__example,.learning-page .learning-question-text__passage{background:#fff8ea1a;box-shadow:inset 0 0 0 1px #fff8ea1f;max-width:min(100%,780px)}.learning-fullscreen .learning-question-text{gap:clamp(10px,1.6vw,18px);margin:0 auto;width:min(100%,1080px)}.learning-fullscreen .learning-question-text__example,.learning-fullscreen .learning-question-text__passage{max-height:min(38vh,360px);overflow:auto}.learning-fullscreen .learning-question-text__example,.learning-fullscreen .learning-question-text__passage p,.learning-host-stage .learning-question-text__example,.learning-host-stage .learning-question-text__passage p{font-size:clamp(18px,1.8vw,28px);line-height:1.42}.learning-fullscreen .learning-question-text h2{font-size:clamp(24px,3.2vw,46px);line-height:1.18}.learning-fullscreen .learning-question-text.is-long h2{font-size:clamp(22px,2.6vw,36px)}.learning-fullscreen .learning-fullscreen__answers,.learning-page .learning-page__answers{align-items:stretch}.learning-page .learning-page__answer{height:auto;min-height:82px}.learning-fullscreen .learning-fullscreen__answers .learning-page__answer{font-size:clamp(18px,2vw,28px);line-height:1.25;min-height:clamp(96px,12vh,150px)}.learning-page .learning-page__answer-badge{flex-shrink:0}.learning-page .learning-page__answer-copy{align-self:center}@media (max-width:760px){.learning-fullscreen .learning-question-text__passage,.learning-page .learning-question-text__passage{max-height:none}.learning-fullscreen .learning-question-text h2{font-size:clamp(21px,6vw,32px)}.learning-fullscreen .learning-fullscreen__answers{grid-template-columns:1fr}}.learning-vocab-bubble{background:#fff8ea;border:1px solid #fff8ea38;border-radius:14px;box-shadow:0 20px 50px #00000052;box-sizing:border-box;color:#173f40;display:flex;flex-direction:column;font-family:Atkinson Hyperlegible,Trebuchet MS,sans-serif;font-size:15px;font-weight:600;gap:8px;line-height:1.45;max-width:300px;min-width:220px;padding:14px 16px;pointer-events:none;position:fixed;text-align:left;white-space:normal;width:min(300px,calc(100vw - 24px));word-break:break-word;z-index:10050}.learning-vocab-bubble--above{transform:translate(-50%,-100%)}.learning-vocab-bubble--below{transform:translate(-50%)}.learning-vocab-bubble__title{color:#d86f28;font-size:17px;font-weight:800;line-height:1.25;margin:0}.learning-vocab-bubble__body{color:#173f40;font-size:15px;font-weight:600;line-height:1.45;margin:0}.learning-vocab-bubble__example{border-top:1px solid #173f4024;color:#173f40c7;font-size:14px;font-weight:600;line-height:1.4;margin:0;padding-top:8px}.login-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;box-sizing:border-box;margin:20px auto;max-width:400px;padding:20px;width:90%}.login-container h2{color:#333;margin-bottom:20px;text-align:center}.login-container form>div{margin-bottom:15px}.login-container label{color:#555;display:block;font-weight:500;margin-bottom:5px}.login-container input{-webkit-appearance:none;appearance:none;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:16px;padding:15px;width:100%}.login-container input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.login-container button{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-height:48px;padding:16px;transition:all .3s ease;width:100%}.login-container button:hover{background:#0056b3}.login-container button:disabled{background:#6c757d;cursor:not-allowed}.login-container .error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#dc3545;font-size:.95rem;line-height:1.45;margin-bottom:15px;padding:10px;text-align:left;white-space:pre-wrap;word-break:break-word}.divider{margin:20px 0;position:relative;text-align:center}.divider:before{background:#e9ecef;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#fff;color:#6c757d;font-size:14px;padding:0 15px}.google-login-button{align-items:center;background:#fff!important;border:2px solid #e0e0e0!important;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#333!important;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:12px;justify-content:center;margin-bottom:20px;min-height:48px;padding:16px;transition:all .3s ease;width:100%}.google-login-button:hover{background:#f8f9fa;border-color:#c1c7cd;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.google-login-button:active{background:#f1f3f4;box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.google-login-button:disabled{background:#f8f9fa;border-color:#e8eaed;box-shadow:none;color:#9aa0a6;cursor:not-allowed;transform:none}.google-icon{flex-shrink:0}.forgot-password-section{margin:16px 0;text-align:center}.forgot-password-text{color:#007bff;cursor:pointer;font-size:14px;text-decoration:underline;transition:color .3s ease}.forgot-password-text:hover{color:#0056b3}.register-section{border-top:1px solid #e9ecef;margin-top:20px;padding-top:20px;text-align:center}.register-section p{color:#6c757d;font-size:14px;margin-bottom:15px}.register-button{background:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-height:44px;padding:12px 24px;transition:all .3s ease}.register-button:hover{background:#218838}.register-button:active{background:#1e7e34}@media (max-width:480px){.login-container{border-radius:12px;margin:10px auto;padding:16px;width:95%}.login-container h2{font-size:24px;margin-bottom:24px}.login-container input{border-radius:12px;font-size:18px;padding:18px}.google-login-button,.login-container button{border-radius:12px;font-size:18px;min-height:56px;padding:18px}.google-login-button{font-weight:600}.register-button{font-size:16px;min-height:52px;padding:16px 28px}.register-section{margin-top:24px;padding-top:24px}.register-section p{font-size:16px;margin-bottom:18px}}@media (min-width:481px) and (max-width:768px){.login-container{margin:30px auto;padding:24px;width:85%}.login-container input{padding:16px}.google-login-button,.login-container button{min-height:52px;padding:16px}.google-login-button{font-weight:600}}@media (min-width:769px) and (max-width:1024px){.login-container{margin:40px auto;padding:28px;width:80%}}@media (min-width:1025px){.login-container{margin:50px auto;padding:32px;width:400px}.login-container:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}}@media (hover:none) and (pointer:coarse){.login-container button:active,.register-button:active{background:#0056b3;transform:scale(.98)}.register-button:active{background:#1e7e34}.login-container input:focus{border-color:#0056b3;box-shadow:0 0 0 3px #007bff4d}}.login-container{animation:fadeInUp .6s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-container button,.register-button{overflow:hidden;position:relative}.login-container button:before,.register-button:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.login-container button:active:before,.register-button:active:before{height:300px;width:300px}.register-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:40px auto;max-width:400px;padding:20px}.register-container h2{color:#333}.guide-text,.register-container h2{margin-bottom:20px;text-align:center}.guide-text{color:#666;font-size:1em}.form-field{display:flex;flex-direction:column;margin-bottom:15px}.form-field label{color:#333;font-size:1em;margin-bottom:5px}.form-field input{border:1px solid #ccc;border-radius:4px;font-size:1em;padding:10px}.success{color:green;margin-bottom:10px}button{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1em;padding:10px;transition:background .3s ease;width:100%}button:hover{background:#0056b3}.code-hint{color:#666;display:block;font-size:.85em;font-style:italic;margin-top:5px}@media (max-width:480px){.register-container{margin:20px auto;padding:16px;width:95%}.form-field input{font-size:16px;padding:12px}button{font-size:16px;padding:14px}}.setup-nickname-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:20px}.setup-nickname-card{animation:slideUp .6s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;max-width:480px;padding:40px;text-align:center;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.google-info{margin-bottom:32px}.google-avatar{align-items:center;background:#f8f9fa;border:3px solid #e8eaed;border-radius:50%;display:flex;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.google-icon{height:40px;width:40px}.google-info h2{color:#333;font-size:24px;font-weight:600;margin:0 0 8px}.google-info p{color:#666;font-size:16px;margin:0}.form-group{margin-bottom:24px;text-align:left}.form-group label{color:#333}.required{color:#e74c3c}.form-group input{border:2px solid #e1e5e9;border-radius:12px;padding:16px;transition:all .3s ease}.form-group input:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a}.form-group input:disabled{background:#f8f9fa}.input-hint{color:#6c757d;font-size:12px;margin-top:6px}.validating-hint{color:#4285f4}.validating-hint,.validation-error{align-items:center;display:flex;font-size:12px;gap:4px;margin-top:6px}.validation-error{color:#e74c3c}.error-input{border-color:#e74c3c!important;box-shadow:0 0 0 3px #e74c3c1a!important}.button-group{margin-bottom:24px}.primary-button{background:#4285f4;border-radius:12px;min-height:52px;padding:16px}.primary-button:hover:not(:disabled){background:#3367d6;box-shadow:0 4px 12px #4285f44d}.primary-button:disabled{background:#9aa0a6;box-shadow:none}.error{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;margin-bottom:20px;padding:12px 16px}.help-text{border-top:1px solid #e1e5e9}.help-text p{align-items:center;display:flex;font-size:14px;gap:8px;justify-content:center;margin:0}@media (max-width:480px){.setup-nickname-container{padding:16px}.setup-nickname-card{border-radius:12px;padding:24px}.google-info h2{font-size:20px}.google-info p{font-size:14px}.form-group input,.primary-button{font-size:16px;padding:14px}.primary-button{min-height:48px}}.primary-button{overflow:hidden;position:relative}.primary-button:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.primary-button:active:before{height:300px;width:300px}.forgot-password-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;box-sizing:border-box;margin:20px auto;max-width:400px;padding:20px;width:90%}.forgot-password-card{width:100%}@media (max-width:480px){.forgot-password-container{margin:10px auto;padding:16px;width:95%}.header h2{font-size:20px}.form-group input{font-size:16px;padding:14px 16px}.primary-button{font-size:16px;padding:14px 24px}}.verify-code-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;box-sizing:border-box;margin:20px auto;max-width:400px;padding:20px;width:90%}.verify-code-card{width:100%}.code-input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:18px;font-weight:600;letter-spacing:2px;padding:12px 16px;text-align:center;transition:border-color .3s ease;width:100%}.code-input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.code-input:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.time-left{margin-top:8px;text-align:center}.timer{color:#007bff}.expired,.timer{font-size:14px;font-weight:600}.expired{color:#dc3545}.resend-section{margin-bottom:20px;text-align:center}.resend-button{background:none;border:1px solid #007bff;border-radius:6px;color:#007bff;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .3s ease}.resend-button:hover:not(:disabled){background:#007bff;color:#fff}.resend-button:disabled{border-color:#6c757d;color:#6c757d;cursor:not-allowed}.back-to-forgot{margin-bottom:20px;text-align:center}@media (max-width:480px){.verify-code-container{margin:10px auto;padding:16px;width:95%}.code-input,.header h2{font-size:20px}.code-input{padding:14px 16px}.primary-button{font-size:16px;padding:14px 24px}}.reset-password-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;box-sizing:border-box;margin:20px auto;max-width:400px;padding:20px;width:90%}.reset-password-card{width:100%}.header{margin-bottom:24px;text-align:center}.header h2{color:#333;font-size:24px;margin-bottom:8px}.header p{color:#666;font-size:14px;line-height:1.5}.header strong{color:#007bff;font-weight:600}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-group input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.form-group input:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.password-requirements{background:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;margin-bottom:20px;padding:12px}.password-requirements p{color:#333;font-size:14px;font-weight:600;margin:0 0 8px}.password-requirements ul{margin:0;padding-left:16px}.password-requirements li{font-size:13px;list-style:none;margin:4px 0;position:relative}.password-requirements li:before{content:"✓";font-weight:700;left:-16px;position:absolute}.password-requirements li.valid{color:#28a745}.password-requirements li.valid:before{color:#28a745;content:"✓"}.password-requirements li.invalid{color:#dc3545}.password-requirements li.invalid:before{color:#dc3545;content:"✗"}.button-group{margin-bottom:20px}.primary-button{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease;width:100%}.primary-button:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.primary-button:disabled{background:#6c757d;cursor:not-allowed;transform:none}.back-to-login{margin-bottom:20px;text-align:center}.back-button{background:none;border:none;color:#007bff;cursor:pointer;font-size:14px;text-decoration:underline;transition:color .3s ease}.back-button:hover:not(:disabled){color:#0056b3}.back-button:disabled{color:#6c757d;cursor:not-allowed}.help-text{border-top:1px solid #e9ecef;margin-top:20px;padding-top:20px}.help-text p{color:#6c757d;font-size:12px;line-height:1.4;margin:4px 0}.error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#dc3545}.error,.success{font-size:14px;margin-bottom:15px;padding:10px;text-align:center}.success{background:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724}@media (max-width:480px){.reset-password-container{margin:10px auto;padding:16px;width:95%}.header h2{font-size:20px}.form-group input{font-size:16px;padding:14px 16px}.primary-button{font-size:16px;padding:14px 24px}}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-wrapper{border:0;display:inline-block;padding:0}.react-datepicker{background-color:#fff;border:1px solid #aeaeae;border-radius:.3rem;color:#000;display:inline-block;font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;line-height:normal;position:relative}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{line-height:0;z-index:1}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative;text-align:center}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select{display:inline-block;margin:0 15px}.react-datepicker-time__header,.react-datepicker-year-header,.react-datepicker__current-month{color:#000;font-size:.944rem;font-weight:700;margin-top:0}h2.react-datepicker__current-month{margin:0;padding:0}.react-datepicker-time__header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-datepicker__navigation{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;padding:0;position:absolute;text-align:center;text-indent:-999em;top:2px;width:32px;z-index:1}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{display:block;margin-left:auto;margin-right:auto;position:relative;top:0}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover :before{border-color:#a6a6a6}.react-datepicker__navigation-icon{font-size:20px;position:relative;top:-1px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{left:-7px;transform:rotate(45deg)}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{right:-7px;transform:rotate(225deg)}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__input-time-container{clear:both;float:left;margin:5px 0 10px 15px;text-align:left;width:100%}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{display:inline-block;margin-left:5px}.react-datepicker__time-container{border-left:1px solid #aeaeae;float:right;width:85px}.react-datepicker__time-container--with-today-button{border:1px solid #aeaeae;border-radius:.3rem;display:inline;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{background:#fff;border-bottom-right-radius:.3rem;position:relative}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{border-bottom-right-radius:.3rem;margin:0 auto;overflow-x:hidden;text-align:center;width:85px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{box-sizing:initial;height:calc(195px + .85rem);list-style:none;margin:0;overflow-y:scroll;padding-left:0;padding-right:0;width:100%}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{background-color:#f0f0f0;cursor:pointer}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{background-color:initial;cursor:default}.react-datepicker__week-number{color:#ccc;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__week-number--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{margin-bottom:-8px;white-space:nowrap}.react-datepicker__week{white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name,.react-datepicker__time-name{color:#000;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{background-color:#3dcc4a;border-radius:.3rem;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{background-color:#ff6803;border-radius:.3rem;color:#fff;position:relative}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{background-color:#333;border-radius:4px;bottom:100%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{opacity:1;visibility:visible}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range,.react-datepicker__day--selected,.react-datepicker__month-text--in-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--selected,.react-datepicker__quarter-text--in-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--selected,.react-datepicker__year-text--in-range,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{background-color:#bad9f1;border-radius:.3rem;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{color:#ccc;cursor:default}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{background-color:#333;border-radius:4px;bottom:70%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__input-container{display:inline-block;position:relative;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:initial;padding:.5rem;position:absolute}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__month-read-view,.react-datepicker__month-year-read-view,.react-datepicker__year-read-view{border:1px solid #0000;border-radius:.3rem;position:relative}.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover,.react-datepicker__year-read-view:hover{cursor:pointer}.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{right:-16px;top:0;transform:rotate(135deg)}.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown,.react-datepicker__year-dropdown{background-color:#f0f0f0;border:1px solid #aeaeae;border-radius:.3rem;left:25%;position:absolute;text-align:center;top:30px;width:50%;z-index:1}.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover,.react-datepicker__year-dropdown:hover{cursor:pointer}.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable,.react-datepicker__year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__month-option,.react-datepicker__month-year-option,.react-datepicker__year-option{display:block;line-height:20px;margin-left:auto;margin-right:auto;width:100%}.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type,.react-datepicker__year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type,.react-datepicker__year-option:last-of-type{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem;-webkit-user-select:none;user-select:none}.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover,.react-datepicker__year-option:hover{background-color:#ccc}.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected,.react-datepicker__year-option--selected{left:15px;position:absolute}.react-datepicker__close-icon{background-color:initial;border:0;cursor:pointer;display:table-cell;height:100%;outline:0;padding:0 6px 0 0;position:absolute;right:0;top:0;vertical-align:middle}.react-datepicker__close-icon:after{background-color:#216ba5;border-radius:50%;color:#fff;content:"×";cursor:pointer;display:table-cell;font-size:12px;height:16px;line-height:1;padding:2px;text-align:center;vertical-align:middle;width:16px}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{background-color:#ccc;cursor:default}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;clear:left;cursor:pointer;font-weight:700;padding:5px 0;text-align:center}.react-datepicker__portal{align-items:center;background-color:#000c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2147483647}.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:3rem;width:3rem}@media (max-height:550px),(max-width:400px){.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:2rem;width:2rem}}.react-datepicker__portal .react-datepicker-time__header,.react-datepicker__portal .react-datepicker__current-month{font-size:1.44rem}.react-datepicker__children-container{height:auto;margin:.4rem;padding-left:.2rem;padding-right:.2rem;width:13.8rem}.react-datepicker__aria-live{border:0;clip-path:circle(0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__calendar-icon{height:1em;vertical-align:-.125em;width:1em}.calendar-container{align-items:center;animation:fadeIn .5s ease-out;background-color:var(--white);border:1px solid var(--gray-300);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;margin:0 auto;margin-bottom:var(--spacing-xxl);min-width:100%;padding:var(--spacing-xl);width:100%}.calendar-container h2{color:var(--gray-900);font-size:var(--font-size-xxl);font-weight:600;margin-bottom:var(--spacing-lg);text-align:center}.react-datepicker{background-color:var(--white);border:2px solid var(--gray-300);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);font-family:inherit}.react-datepicker__header{background-color:var(--primary-color);border-bottom:2px solid var(--primary-color);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;padding:var(--spacing-md)}.react-datepicker__current-month{color:var(--white);font-weight:600;margin-bottom:var(--spacing-sm)}.react-datepicker__day-name{color:var(--white);font-weight:500;margin:var(--spacing-xs)}.react-datepicker__day{background-color:var(--white);border-radius:var(--border-radius-md);color:var(--gray-900);cursor:pointer;font-weight:500;margin:var(--spacing-xs);transition:all .3s ease}.react-datepicker__day:hover{background-color:var(--gray-200);color:var(--gray-900);transform:scale(1.05)}.react-datepicker__day--disabled{background-color:var(--gray-200)!important;color:var(--gray-500)!important;cursor:not-allowed!important;transform:none!important}.react-datepicker__day--outside-month{color:var(--gray-400)}.react-datepicker__day-names,.react-datepicker__month{padding-left:0;padding-right:12px}.react-datepicker__day:not(.react-datepicker__day--selected){border:none!important;outline:none!important}.react-datepicker__day--highlighted:not(.react-datepicker__day--selected),.react-datepicker__day--keyboard-selected:not(.react-datepicker__day--selected){background-color:var(--white)!important;border:none!important;box-shadow:none!important;color:var(--gray-900)!important;outline:none!important}.react-datepicker__day:active,.react-datepicker__day:focus{outline:none!important}.react-datepicker__navigation{top:var(--spacing-md)}.react-datepicker__navigation-icon:before{border-color:var(--white);border-width:2px 2px 0 0}.react-datepicker__navigation:hover .react-datepicker__navigation-icon:before{border-color:var(--gray-200)}.react-datepicker__day--selected{border-radius:50%!important;box-shadow:none!important;font-weight:600!important;position:relative!important;transform:none!important;z-index:2!important}.react-datepicker__day--selected:hover{transform:none!important}.react-datepicker__day--selected.react-datepicker__day--original{background-color:var(--success-color)!important;color:var(--white)!important}.react-datepicker__day--selected.react-datepicker__day--new{background-color:var(--warning-color)!important;color:var(--gray-900)!important}.react-datepicker__day--selected:not(.react-datepicker__day--original):not(.react-datepicker__day--new){background-color:var(--success-color)!important;color:var(--white)!important}.calendar-day-hk-holiday{color:#b91c1c;font-weight:600}.react-datepicker__day--selected .calendar-day-hk-holiday{color:#b91c1c!important;font-weight:600}.edit-mode-legend{color:var(--gray-600);font-size:var(--font-size-xs);margin-top:8px;text-align:center}.edit-mode-legend .legend-original{color:var(--success-color)}.edit-mode-legend .legend-new{color:var(--warning-color)}@media (max-width:575.98px){.calendar-container{border-radius:var(--border-radius-md);margin-bottom:var(--spacing-md);max-width:100%;padding:var(--spacing-sm);width:100%}.calendar-container h2{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.react-datepicker{max-width:100%;transform:none;width:100%}.react-datepicker__month-container{width:100%}.react-datepicker__day{font-size:var(--font-size-sm);line-height:2rem;margin:1px;width:2rem}.react-datepicker__day-name{font-size:var(--font-size-xs);line-height:2rem;margin:1px;width:2rem}.react-datepicker__current-month{font-size:var(--font-size-base)}}@media (min-width:576px) and (max-width:767.98px){.calendar-container{max-width:100%;width:95%}.react-datepicker{max-width:100%;width:100%}.react-datepicker__day,.react-datepicker__day-name{line-height:2.2rem;width:2.2rem}}@media (min-width:768px){.calendar-container{max-width:600px}.react-datepicker__day:not(.react-datepicker__day--selected):hover{transform:scale(1.05)}}@media (prefers-contrast:high){.react-datepicker__day--selected{background-color:navy!important;color:#fff!important}}@media (prefers-reduced-motion:reduce){.react-datepicker__day{transition:none}.react-datepicker__day:hover{transform:none}}@keyframes calendarMobileReveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.calendar-container.mobile{align-items:stretch;animation:calendarMobileReveal .38s cubic-bezier(.25,.46,.45,.94) both;background-color:var(--white);border:1px solid var(--gray-300);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;margin:0 auto;margin-bottom:var(--spacing-md);max-width:100%;min-width:0;overflow:hidden;padding:var(--spacing-xs);width:100%}.calendar-container.mobile h2{color:var(--gray-900);font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);text-align:center}.calendar-container.mobile .react-datepicker{background-color:var(--white);border:1px solid var(--gray-300);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);box-sizing:border-box;display:block;font-family:inherit;max-width:100%;overflow:hidden;padding:var(--spacing-xs);width:100%}.calendar-container.mobile .react-datepicker__month,.calendar-container.mobile .react-datepicker__month-container{width:100%}.calendar-container.mobile .react-datepicker__day-names,.calendar-container.mobile .react-datepicker__month{padding-left:0;padding-right:12px}.calendar-container.mobile .react-datepicker__header{background-color:var(--primary-color);border-bottom:none;border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;padding:var(--spacing-sm) var(--spacing-xs)}.calendar-container.mobile .react-datepicker__current-month{color:var(--white);font-size:var(--font-size-base);font-weight:600;margin-bottom:2px}.calendar-container.mobile .react-datepicker__day-names{display:flex;width:100%}.calendar-container.mobile .react-datepicker__day-name{color:#ffffffe6;flex:1 1;font-size:.7rem;font-weight:500;min-width:0;padding:2px 0;text-align:center}.calendar-container.mobile .react-datepicker__month .react-datepicker__week{display:flex;width:100%}.calendar-container.mobile .react-datepicker__day{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1;backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:var(--white);border-radius:50%;box-sizing:border-box;color:var(--gray-900);cursor:pointer;display:flex;flex:1 1;font-size:var(--font-size-base);font-weight:500;justify-content:center;margin:2px;min-width:0;touch-action:manipulation;transition:transform 135ms cubic-bezier(.22,1,.36,1),background-color .11s ease-out,color .11s ease-out,box-shadow 155ms ease-out;-webkit-user-select:none;user-select:none}@media (hover:hover) and (pointer:fine){.calendar-container.mobile .react-datepicker__day:hover:not(.react-datepicker__day--disabled):not(.react-datepicker__day--selected){background-color:var(--gray-200);color:var(--gray-900);transform:scale(1.05);transition-duration:90ms;transition-timing-function:ease-out}}.calendar-container.mobile .react-datepicker__day:not(.react-datepicker__day--disabled):active{transform:scale(.9);transition:transform 45ms cubic-bezier(.33,0,.65,1),background-color 45ms ease-out,box-shadow 45ms ease-out}.calendar-container.mobile .react-datepicker__day--disabled{background-color:var(--gray-100)!important;color:var(--gray-400)!important;cursor:not-allowed!important}.calendar-container.mobile .react-datepicker__day--outside-month{background-color:initial!important;color:var(--gray-300)}.calendar-container.mobile .react-datepicker__day:focus{outline:none!important}.calendar-container.mobile .react-datepicker__day:active:not(.react-datepicker__day--selected){box-shadow:none!important;outline:none!important}.calendar-container.mobile .react-datepicker__day:not(.react-datepicker__day--selected){border:none!important;outline:none!important}.calendar-container.mobile .react-datepicker__day--highlighted:not(.react-datepicker__day--selected),.calendar-container.mobile .react-datepicker__day--keyboard-selected:not(.react-datepicker__day--selected){background-color:var(--white)!important;border:none!important;box-shadow:none!important;color:var(--gray-900)!important;outline:none!important}.calendar-container.mobile .react-datepicker__navigation{top:var(--spacing-md)}.calendar-container.mobile .react-datepicker__navigation-icon:before{border-color:var(--white);border-width:2px 2px 0 0}.calendar-container.mobile .react-datepicker__navigation:hover .react-datepicker__navigation-icon:before{border-color:var(--gray-200)}.calendar-container.mobile .react-datepicker__day--selected{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:50%!important;font-weight:700!important;position:relative!important;transform:scale(1.05) translateZ(0)!important;transition:transform .13s cubic-bezier(.22,1,.36,1),box-shadow 165ms ease-out,background 125ms ease-out,color .11s ease-out!important;z-index:2!important}.calendar-container.mobile .react-datepicker__day--selected:active{transform:scale(.97) translateZ(0)!important;transition:transform 50ms cubic-bezier(.33,0,.65,1),box-shadow 50ms ease-out,background 50ms ease-out!important}.calendar-container.mobile .react-datepicker__day--selected:not(.react-datepicker__day--original):not(.react-datepicker__day--new){background:linear-gradient(160deg,#5bd78c 0,var(--success-color) 48%,#1f7a38 100%)!important;box-shadow:0 6px 18px #28a7456b,0 2px 6px #0000001f,inset 0 1px 0 #ffffff59!important;color:var(--white)!important}.calendar-container.mobile .react-datepicker__day--selected.react-datepicker__day--original{background:linear-gradient(160deg,#5bd78c 0,var(--success-color) 48%,#1f7a38 100%)!important;box-shadow:0 6px 18px #28a7456b,0 2px 6px #0000001f,inset 0 1px 0 #ffffff59,0 0 0 2px #fffffff2,0 0 0 4px #28a74559!important;color:var(--white)!important}.calendar-container.mobile .react-datepicker__day--selected.react-datepicker__day--new{background:linear-gradient(160deg,#ffe082 0,var(--warning-color) 45%,#f59e0b 100%)!important;box-shadow:0 6px 20px #f59e0b73,0 2px 8px #0000001a,inset 0 1px 0 #ffffff8c,0 0 0 2px #fffffffa,0 0 0 4px #f59e0b61!important;color:#1c1917!important}.calendar-container.mobile .react-datepicker__day--selected:active,.calendar-container.mobile .react-datepicker__day--selected:focus{outline:none!important}.calendar-container.mobile .calendar-day-hk-holiday{color:#b91c1c;font-weight:600}.calendar-container.mobile .react-datepicker__day--selected .calendar-day-hk-holiday{color:#b91c1c!important;font-weight:600}.calendar-container.mobile .edit-mode-legend{background:linear-gradient(180deg,#f9fafbf2,#f3f4f6e0);border:1px solid #d1d5dbd9;border-radius:10px;color:var(--gray-700);font-size:.75rem;line-height:1.45;margin-top:10px;padding:8px 12px;text-align:center}.calendar-container.mobile .edit-mode-legend .legend-original{color:var(--success-color)}.calendar-container.mobile .edit-mode-legend .legend-new{color:var(--warning-color)}@media (max-width:480px){.calendar-container.mobile{border-radius:8px;margin-bottom:var(--spacing-sm);padding:4px}.calendar-container.mobile h2{font-size:var(--font-size-base);margin-bottom:6px}.calendar-container.mobile .react-datepicker{padding:2px}.calendar-container.mobile .react-datepicker__day{font-size:.95rem;margin:2px}}@media (prefers-reduced-motion:reduce){.calendar-container.mobile{animation:none}.calendar-container.mobile .react-datepicker__day{transition:background-color .12s ease,color .12s ease}.calendar-container.mobile .react-datepicker__day:not(.react-datepicker__day--disabled):active{transform:none}.calendar-container.mobile .react-datepicker__day--selected{transform:none!important;transition:box-shadow .15s ease,background .15s ease!important}.calendar-container.mobile .react-datepicker__day--selected:active{transform:none!important}@media (hover:hover) and (pointer:fine){.calendar-container.mobile .react-datepicker__day:hover:not(.react-datepicker__day--disabled):not(.react-datepicker__day--selected){transform:none}}}.calendar-container.desktop{align-items:center;animation:fadeIn .5s ease-out;background-color:var(--white);border:1px solid var(--gray-300);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;margin:0 auto;margin-bottom:var(--spacing-xxl);max-width:600px;padding:var(--spacing-xl);width:100%}.calendar-container.desktop h2{color:var(--gray-900);font-size:var(--font-size-xxl);font-weight:600;margin-bottom:var(--spacing-lg);text-align:center}.calendar-container.desktop .react-datepicker{background-color:var(--white);border:2px solid var(--gray-300);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);font-family:inherit}.calendar-container.desktop .react-datepicker__header{background-color:var(--primary-color);border-bottom:2px solid var(--primary-color);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;padding:var(--spacing-md)}.calendar-container.desktop .react-datepicker__current-month{color:var(--white);font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.calendar-container.desktop .react-datepicker__day-name{color:var(--white);font-size:var(--font-size-sm);font-weight:500;line-height:2rem;margin:var(--spacing-xs);width:2rem}.calendar-container.desktop .react-datepicker__day{background-color:var(--white);border-radius:var(--border-radius-md);color:var(--gray-900);cursor:pointer;font-size:var(--font-size-base);font-weight:500;line-height:2rem;margin:var(--spacing-xs);transition:all .3s ease;width:2rem}.calendar-container.desktop .react-datepicker__day:hover{background-color:var(--gray-200);color:var(--gray-900);transform:scale(1.05)}.calendar-container.desktop .react-datepicker__day--disabled{background-color:var(--gray-200)!important;color:var(--gray-500)!important;cursor:not-allowed!important;transform:none!important}.calendar-container.desktop .react-datepicker__day--outside-month{color:var(--gray-400)}.calendar-container.desktop .react-datepicker__day-names,.calendar-container.desktop .react-datepicker__month{padding-left:0;padding-right:12px}.calendar-container.desktop .react-datepicker__navigation{top:var(--spacing-md)}.calendar-container.desktop .react-datepicker__navigation-icon:before{border-color:var(--white);border-width:2px 2px 0 0}.calendar-container.desktop .react-datepicker__navigation:hover .react-datepicker__navigation-icon:before{border-color:var(--gray-200)}.calendar-container.desktop .react-datepicker__day--selected{border-radius:50%!important;box-shadow:none!important;font-weight:600!important;position:relative!important;transform:none!important;z-index:2!important}.calendar-container.desktop .react-datepicker__day--selected:hover{transform:none!important}.calendar-container.desktop .react-datepicker__day--selected.react-datepicker__day--original{background-color:var(--success-color)!important;color:var(--white)!important}.calendar-container.desktop .react-datepicker__day--selected.react-datepicker__day--new{background-color:var(--warning-color)!important;color:var(--gray-900)!important}.calendar-container.desktop .react-datepicker__day--selected:not(.react-datepicker__day--original):not(.react-datepicker__day--new){background-color:var(--success-color)!important;color:var(--white)!important}.calendar-container.desktop .calendar-day-hk-holiday{color:#b91c1c;font-weight:600}.calendar-container.desktop .react-datepicker__day--selected .calendar-day-hk-holiday{color:#b91c1c!important;font-weight:600}.calendar-container.desktop .edit-mode-legend{color:var(--gray-600);font-size:var(--font-size-xs);margin-top:8px;text-align:center}.calendar-container.desktop .edit-mode-legend .legend-original{color:var(--success-color)}.calendar-container.desktop .edit-mode-legend .legend-new{color:var(--warning-color)}@media (min-width:768px){.calendar-container.desktop{max-width:600px}.calendar-container.desktop .react-datepicker__day:not(.react-datepicker__day--selected):hover{transform:scale(1.05)}}.shift-selector{background:#f9f9f9;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1200px;padding:20px;text-align:center;width:95%}.shift-selector h2{color:#333;font-size:1.5em;margin-bottom:10px}.shift-selector p{color:#666;font-size:1.1em;margin-bottom:20px;padding:0 10px}.error{background:#ffebee;color:red;font-weight:700;margin-bottom:10px;padding:5px 10px}.buttons,.error{border-radius:5px}.buttons{background:#fff;box-shadow:0 1px 5px #0000001a;display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin:20px 0;padding:10px}.buttons button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1em;padding:10px 20px;transition:background-color .3s ease,transform .2s ease}.buttons button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.buttons button:hover:not(:disabled){background-color:#0056b3;transform:scale(1.05)}.shift-selector-notice{background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px;font-size:14px;margin-left:auto;margin-right:auto;margin-top:12px;max-width:720px;padding:12px 14px;text-align:left}.shift-selector-notice-title{color:#856404;display:block;margin-bottom:8px}.shift-selector-notice-holiday-line{color:#856404;line-height:1.55;margin:0}.shift-selector-hk-sample{color:#b91c1c;font-weight:600}.shift-selector-notice-subtitle{border-top:1px solid #ffc107;color:#856404;display:block;margin:12px 0 8px;padding-top:10px}.shift-selector-notice-time-row{color:#856404;margin-bottom:6px}.shift-selected-dates{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1000px;padding:15px;width:90%}.shift-selected-dates h3{color:#333;font-size:1.2em;margin-bottom:10px}.shift-selected-dates ul{list-style:none;padding:0;text-align:left}.shift-selected-dates li{border-bottom:1px solid #eee;color:#444;font-size:1em;padding:8px 12px;transition:background-color .2s ease}.shift-selected-dates li:hover{background-color:#f5f5f5;cursor:pointer}@media (min-width:1200px){.shift-selector{max-width:1400px;width:90%}.shift-selected-dates{max-width:1200px;width:85%}}@media (max-width:768px){.shift-selector{padding:10px;width:100%}.shift-selected-dates{padding:10px;width:95%}}@media (max-width:480px){.shift-selector{border-radius:8px;padding:6px;width:100%}.shift-selector h2{font-size:1.25em;margin-bottom:8px}.shift-selector p{font-size:.95em;margin-bottom:12px;padding:0 4px}.shift-selected-dates{padding:8px}}.home-container{margin:0 auto;max-width:1200px;padding:20px}.home-top-actions__buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:20px}.home-top-actions__btn{-webkit-tap-highlight-color:transparent;border:none;cursor:pointer;font-weight:700}.home-top-actions__btn--attendance{background-color:#198754;border-radius:10px;box-shadow:0 2px 8px #0000001f;color:#fff;font-size:16px;padding:14px 22px}.home-top-actions__btn--admin{background-color:#007bff;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:16px;padding:12px 24px}@media (max-width:768px){.home-container{padding:8px}.home-top-actions__buttons{display:none}.month-navigation{flex-direction:column;gap:15px;padding:15px}.nav-button{font-size:14px;padding:10px 20px;width:100%}.month-title{font-size:24px;order:-1}}.month-navigation{align-items:center;background:#f8f9fa;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.nav-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 12px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.nav-button:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.nav-button:active{transform:translateY(0)}.month-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#2d3748;font-size:28px;font-weight:700;margin:0;text-align:center}@media (max-width:480px){.home-container{padding:4px}.month-title{font-size:20px}.nav-button{font-size:12px;padding:8px 16px}}.mobile-bottom-nav{display:none}@media (max-width:768px){.mobile-bottom-nav{background:#0000;border:none;bottom:0;box-shadow:none;box-sizing:border-box;display:block;left:0;margin:0;padding:0 14px calc(10px + env(safe-area-inset-bottom, 0px));pointer-events:none;position:fixed;right:0;z-index:1500}.mobile-bottom-nav__scrim{background:linear-gradient(0deg,#f8fafceb 0,#f8fafc73 45%,#0000);bottom:0;height:calc(120px + env(safe-area-inset-bottom, 0px));left:0;pointer-events:none;position:absolute;right:0;z-index:0}.mobile-bottom-nav__dock{align-items:stretch;backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);background:#ffffffc7;border:1px solid #fffffff2;border-radius:22px;box-shadow:0 4px 6px -1px #0f172a0f,0 18px 40px -12px #0f172a24,inset 0 0 0 1px #0f172a0a;display:grid;min-height:58px;padding:6px;pointer-events:auto;position:relative;z-index:1}.mobile-bottom-nav--admin .mobile-bottom-nav__dock{grid-template-columns:repeat(4,1fr)}.mobile-bottom-nav--staff .mobile-bottom-nav__dock{grid-template-columns:repeat(3,1fr)}.mobile-bottom-nav__item{-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:none;border-radius:16px;color:#64748b;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;font-size:.62rem;font-weight:600;gap:3px;justify-content:center;line-height:1.2;margin:0;min-height:50px;padding:8px 6px;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;transition:color .18s ease,transform .12s ease;z-index:0}.mobile-bottom-nav__item:active{transform:scale(.94)}.mobile-bottom-nav__item--active{color:#1d4ed8;font-weight:700}.mobile-bottom-nav__item--active:before{background:linear-gradient(180deg,#dbeafef2,#bfdbfe8c);border-radius:14px;box-shadow:0 1px 2px #2563eb14,inset 0 1px 0 #ffffffd9;content:"";inset:4px 2px;position:absolute;z-index:-1}.mobile-bottom-nav__item--active .mobile-bottom-nav__icon{filter:drop-shadow(0 2px 6px rgba(37,99,235,.22));transform:translateY(-1px)}.mobile-bottom-nav__item--logout{color:#94a3b8}.mobile-bottom-nav__item--logout:before{display:none}.mobile-bottom-nav__item--logout:active{background:#fee2e28c;color:#dc2626}.mobile-bottom-nav__icon{font-size:1.38rem;line-height:1;transition:transform .18s ease,filter .18s ease}.mobile-bottom-nav__label{letter-spacing:.03em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-container.attendance-embed-page.has-mobile-bottom-nav main,.app-container.has-mobile-bottom-nav main{padding-bottom:calc(92px + env(safe-area-inset-bottom, 0px))}.app-footer{display:none}}@media (prefers-reduced-motion:reduce){.mobile-bottom-nav__icon,.mobile-bottom-nav__item{transition:none}.mobile-bottom-nav__item--active .mobile-bottom-nav__icon,.mobile-bottom-nav__item:active{transform:none}}.att-page{-webkit-tap-highlight-color:transparent;--att-pad-inline:clamp(8px,3.4vw,22px);--att-pad-block:clamp(8px,2.2vmin,16px);--att-gap:clamp(6px,1.8vmin,14px);--att-gap-lg:clamp(8px,2.4vmin,16px);--att-radius-sm:clamp(6px,1.8vmin,12px);--att-radius-md:clamp(9px,2.4vmin,16px);--att-radius-lg:clamp(12px,3vmin,22px);--att-touch:clamp(42px,11.5vmin,60px);--att-touch-sm:clamp(40px,10vmin,52px);--att-fs-title:clamp(1.15em,4.8vmin + 0.55em,1.75em);--att-fs-btn:clamp(0.88em,2.8vmin + 0.35em,1.08em);--att-fs-tab:clamp(0.88em,2.7vmin + 0.32em,1.05em);--att-fs-list:clamp(0.95em,3.1vmin + 0.35em,1.2em);--att-fs-small:clamp(0.72em,2.1vmin + 0.22em,0.92em);--att-fs-hint:clamp(0.68em,1.9vmin + 0.2em,0.85em);--att-stat-num:clamp(0.95em,4.2vmin + 0.4em,1.45em);--att-stat-label:clamp(0.62em,2.2vmin + 0.22em,0.82em);--att-badge-size:clamp(26px,8.2vmin,42px);--att-fs-seat-num:clamp(0.48em,1.45vmin + 0.15em,0.75em);--att-fs-seat-text:clamp(0.52em,1.55vmin + 0.18em,0.82em);--att-seat-pad:clamp(2px,0.6vmin,5px);--att-seat-border:clamp(1.5px,0.45vmin,2.5px);background-color:#f0f4f8;box-sizing:border-box;flex:1 1;font-size:clamp(14px,calc(11px + 1.35vmin),20px);margin:0;max-width:none;min-height:0;padding:max(4px,env(safe-area-inset-top,0px)) 0 max(12px,env(safe-area-inset-bottom,0px));width:100%}.att-poll-hint{background:#e3f2fd;border:1px solid #90caf9;border-radius:var(--att-radius-md);box-sizing:border-box;color:#0d47a1;font-size:var(--att-fs-hint);line-height:1.45;margin:0 var(--att-pad-inline) var(--att-pad-block);padding:var(--att-gap) var(--att-gap-lg)}.att-poll-hint strong{font-weight:700}.att-sync-error-banner{background:#fff3cd;border:1px solid #ffc107;border-radius:var(--att-radius-md);box-sizing:border-box;color:#856404;margin:0 var(--att-pad-inline) var(--att-pad-block);padding:var(--att-gap-lg)}.att-sync-error-banner strong{display:block;font-size:var(--att-fs-list);margin-bottom:var(--att-gap)}.att-sync-error-text{font-size:var(--att-fs-small);margin:0 0 var(--att-gap) 0;white-space:pre-wrap;word-break:break-word}.att-sync-error-hint{font-size:var(--att-fs-hint);margin:0;opacity:.95}.att-sync-error-hint code{background:#0000000f;border-radius:4px;font-size:.9em;padding:.1em .35em}.att-header-row{align-items:stretch;display:flex;flex-direction:column;gap:var(--att-gap-lg);margin-bottom:var(--att-pad-block);padding:0 var(--att-pad-inline)}.att-title{color:#333;font-size:var(--att-fs-title);font-weight:700;line-height:1.25;margin:0;text-align:center}.att-header-actions{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--att-gap);justify-content:center}.att-btn-home{background-color:#e3f2fd;border:1px solid #2196f3;border-radius:clamp(16px,5vmin,24px);color:#1565c0;font-weight:600}.att-btn-holiday,.att-btn-home{cursor:pointer;font-family:inherit;font-size:var(--att-fs-btn);min-height:var(--att-touch);padding:clamp(8px,2vmin,14px) clamp(12px,3.5vw,20px)}.att-btn-holiday{background-color:#e0e0e0;border:none;border-radius:clamp(16px,5vmin,24px);color:#333}.att-btn-holiday.active{background-color:#9c27b0;color:#fff}.att-class-selector{margin-bottom:var(--att-gap);padding:0 var(--att-pad-inline)}.att-class-scroll{-webkit-overflow-scrolling:touch;align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:0;overflow-x:auto;padding-bottom:4px}.att-class-tab{background-color:#fff;border:none;border-radius:clamp(16px,5vmin,22px);color:#666;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:var(--att-fs-tab);margin-right:var(--att-gap);min-height:var(--att-touch-sm);padding:clamp(8px,2vmin,12px) clamp(12px,3.2vw,18px)}.att-class-tab.active{background-color:#2196f3;color:#fff;font-weight:700}.att-class-tab.att-add-class{background-color:#e3f2fd;color:#2196f3;font-size:clamp(.92em,2.9vmin + .35em,1.1em);margin-right:0;padding:clamp(8px,2vmin,12px) clamp(11px,3vw,17px)}.att-view-toggle{background-color:#fff;border-radius:var(--att-radius-md);display:flex;flex-direction:row;gap:0;margin:0 var(--att-pad-inline) var(--att-pad-block);padding:clamp(4px,1.2vmin,8px)}.att-view-toggle button{background:#0000;border:none;border-radius:var(--att-radius-sm);color:#666;cursor:pointer;flex:1 1;font-family:inherit;font-size:clamp(.92em,3vmin + .35em,1.12em);min-height:var(--att-touch);padding:clamp(8px,2vmin,14px) clamp(3px,1vw,8px);text-align:center}.att-view-toggle button.active{background-color:#4caf50;color:#fff;font-weight:700}.att-marking-date-row{align-items:center;background:#fff;border-radius:var(--att-radius-md);box-sizing:border-box;display:flex;flex-wrap:wrap;gap:var(--att-gap);justify-content:center;margin:0 var(--att-pad-inline) var(--att-pad-block);padding:clamp(6px,1.5vmin,10px) clamp(10px,3vw,16px)}.att-marking-date-label{color:#444;font-size:var(--att-fs-small);font-weight:600;text-align:center;width:100%}.att-marking-date-controls{align-items:stretch;display:flex;flex:1 1 100%;flex-wrap:wrap;gap:clamp(4px,1.2vmin,8px);justify-content:center;min-width:0}.att-marking-nav-btn{-webkit-tap-highlight-color:transparent;background:#eceff1;border:1px solid #90a4ae;border-radius:var(--att-radius-sm);color:#37474f;cursor:pointer;flex:0 0 auto;font-family:inherit;font-size:clamp(14px,3.8vmin,20px);font-weight:700;line-height:1;min-height:var(--att-touch-sm);min-width:var(--att-touch-sm);padding:0 clamp(8px,2.5vw,14px)}.att-marking-nav-btn:active{background:#cfd8dc}.att-marking-datepicker-wrap{flex:1 1 auto;max-width:12rem;min-width:0}.att-marking-datepicker{border:1px solid #bdbdbd;box-sizing:border-box;caret-color:#0000;padding:clamp(6px,1.8vmin,10px) clamp(8px,2vw,12px);user-select:none;-webkit-user-select:none;width:100%}.att-marking-datepicker,.att-marking-today-btn{border-radius:var(--att-radius-sm);font-family:inherit;font-size:var(--att-fs-small)}.att-marking-today-btn{-webkit-tap-highlight-color:transparent;background:#e3f2fd;border:1px solid #2196f3;color:#1565c0;cursor:pointer;flex:0 0 auto;font-weight:600;min-height:var(--att-touch-sm);padding:clamp(6px,1.6vmin,10px) clamp(12px,3vw,18px)}.att-stats{grid-gap:var(--att-gap);box-sizing:border-box;display:grid;gap:var(--att-gap);grid-template-columns:repeat(4,minmax(0,1fr));margin:0 var(--att-pad-inline) var(--att-pad-block);max-width:100%;width:calc(100% - var(--att-pad-inline)*2)}.att-stat-box{align-items:center;background-color:#fff;border:1px solid #0000000f;border-radius:var(--att-radius-md);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:clamp(56px,16vmin,88px);min-width:0;padding:clamp(6px,1.8vmin,12px) clamp(3px,1vw,6px);text-align:center}.att-stat-box.present{background-color:#e8f5e9}.att-stat-box.unset{background-color:#eceff1}.att-stat-box.explicit-absent{background-color:#fff9c4}.att-stat-box.rate{background-color:#e3f2fd}.att-stat-num{color:#333;display:block;font-size:var(--att-stat-num);font-weight:700;line-height:1.15;word-break:keep-all}.att-stat-box.present .att-stat-num{color:#4caf50}.att-stat-box.unset .att-stat-num{color:#546e7a}.att-stat-box.explicit-absent .att-stat-num{color:#f9a825}.att-stat-box.rate .att-stat-num{color:#2196f3}.att-stat-label{color:#546e7a;font-size:var(--att-stat-label);font-weight:600;letter-spacing:.02em;margin-top:2px}.att-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--att-gap);justify-content:center;margin:0 var(--att-pad-inline) var(--att-pad-block)}.att-action-btn{border:none;border-radius:var(--att-radius-md);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--att-fs-btn);font-weight:700;min-height:var(--att-touch);padding-left:clamp(10px,3.2vw,18px);padding-right:clamp(10px,3.2vw,18px)}.att-action-btn.green{background-color:#4caf50}.att-action-btn.green,.att-action-btn.purple{padding-bottom:clamp(8px,2.2vmin,14px);padding-top:clamp(8px,2.2vmin,14px)}.att-action-btn.purple{background-color:#9c27b0}.att-action-btn.orange{background-color:#ff9800;padding-bottom:clamp(8px,2.2vmin,14px);padding-top:clamp(8px,2.2vmin,14px)}.att-action-btn.orange.active{background-color:#4caf50}.att-action-btn.gray{background-color:#9e9e9e}.att-action-btn.blue,.att-action-btn.gray{padding-bottom:clamp(8px,2.2vmin,14px);padding-top:clamp(8px,2.2vmin,14px)}.att-action-btn.blue{background-color:#2196f3}.att-action-btn.excel{background-color:#1d6f42;padding-bottom:clamp(8px,2.2vmin,14px);padding-top:clamp(8px,2.2vmin,14px)}.att-list{background-color:#fff;border-radius:var(--att-radius-lg);box-sizing:border-box;flex:1 1;margin:0 var(--att-pad-inline);padding:var(--att-pad-block)}.att-empty{color:#999;font-size:var(--att-fs-list);margin-top:clamp(18px,6vmin,36px);text-align:center}.att-student-row{align-items:center;background:#fff;border:none;border-bottom:1px solid #eee;border-radius:var(--att-radius-md);box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;font-family:inherit;justify-content:space-between;margin-bottom:clamp(4px,1.2vmin,8px);padding:clamp(10px,3.2vmin,18px);text-align:left;width:100%}.att-student-row.present{background-color:#e8f5e9}.att-student-row.absent-marked{background-color:#fffde7}.att-student-card{align-items:stretch;border-radius:var(--att-radius-md);box-shadow:0 1px 3px #00000014;display:flex;flex-direction:row;margin-bottom:var(--att-gap);overflow:hidden}.att-student-card.present .att-student-main{background-color:#e8f5e9}.att-student-card.absent-marked .att-student-main{background-color:#fffde7}.att-student-main{background-color:#fff;border:none;cursor:pointer;flex:1 1;font-family:inherit;justify-content:space-between;min-height:clamp(46px,13vmin,62px);padding:clamp(10px,3vmin,16px) clamp(10px,2.8vw,16px);text-align:left}.att-student-main,.att-student-main .att-student-inner{align-items:center;display:flex;flex-direction:row;min-width:0}.att-student-main .att-student-inner{flex:1 1;gap:clamp(8px,2.4vw,14px)}.att-seat-badge{background-color:#e3f2fd;border-radius:50%;color:#2196f3;font-size:clamp(.78em,2.4vmin + .25em,.95em);font-weight:700;height:var(--att-badge-size);line-height:var(--att-badge-size);min-width:var(--att-badge-size);text-align:center;width:var(--att-badge-size)}.att-student-name{color:#333;flex:1 1;font-size:var(--att-fs-list);min-width:0;text-align:left}.att-student-name.present{color:#4caf50;font-weight:700}.att-student-name.absent-marked{color:#f57f17;font-weight:700}.att-status{color:#999;flex-shrink:0;font-size:var(--att-fs-small);padding:0 clamp(6px,1.8vw,10px)}.att-student-card.present .att-status.is-present{color:#4caf50;font-weight:700}.att-student-card.absent-marked .att-status.is-absent{color:#f9a825;font-weight:700}.att-row-actions{display:flex;flex-direction:column;flex-shrink:0;justify-content:center}.att-row-actions.att-row-actions--list{align-self:stretch;background:linear-gradient(90deg,#00000005,#0000);border-left:1px solid #00000012;border-radius:0 var(--att-radius-md) var(--att-radius-md) 0;flex-direction:column;justify-content:stretch;min-width:clamp(58px,17vmin,80px);overflow:hidden}.att-btn-edit-student,.att-btn-transfer-room{-webkit-tap-highlight-color:transparent;align-items:center;border:none;color:#fff;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:clamp(3px,.8vmin,6px);justify-content:center;min-height:var(--att-touch-sm);padding:clamp(8px,2.2vmin,14px) clamp(6px,1.6vw,10px);transition:filter .15s ease,transform .1s ease}.att-btn-edit-student{background:linear-gradient(165deg,#8b9ff0,#5c6bc0 42%,#3949ab);box-shadow:inset 0 1px 0 #ffffff47}.att-btn-edit-student:active{filter:brightness(.94);transform:scale(.98)}.att-btn-edit-student:focus-visible{outline:2px solid #5c6bc0;outline-offset:-2px;z-index:1}.att-btn-edit-student__glyph{font-size:clamp(1.05em,3vmin,1.4em);font-weight:600;line-height:1;text-shadow:0 1px 2px #0000002e}.att-btn-edit-student__text{font-size:var(--att-fs-hint);font-weight:700;letter-spacing:.06em;opacity:.96}.att-btn-transfer-room{background:linear-gradient(165deg,#4dd0e1,#0097a7 46%,#006064);border-top:1px solid #0000001a;box-shadow:inset 0 1px 0 #ffffff38}.att-btn-transfer-room:active{filter:brightness(.94);transform:scale(.98)}.att-btn-transfer-room:focus-visible{outline:2px solid #0097a7;outline-offset:-2px;z-index:1}.att-btn-transfer-room__glyph{filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));font-size:clamp(1em,2.8vmin,1.25em);line-height:1}.att-btn-transfer-room__text{font-size:var(--att-fs-hint);font-weight:700;letter-spacing:.06em;opacity:.96}.att-btn-delete-student{background:linear-gradient(165deg,#ff8a80,#e53935 45%,#b71c1c);border-top:1px solid #0000001a;box-shadow:inset 0 1px 0 #fff3}.att-btn-delete-student:active{filter:brightness(.94);transform:scale(.98)}.att-btn-delete-student:focus-visible{outline:2px solid #e53935;outline-offset:-2px;z-index:1}.att-btn-delete-student__glyph{filter:drop-shadow(0 1px 1px rgba(0,0,0,.2));font-size:clamp(1em,2.8vmin,1.25em);line-height:1}.att-btn-delete-student__text{font-size:var(--att-fs-hint);font-weight:700;letter-spacing:.06em;opacity:.96}.att-mini-btn{align-items:center;background-color:#007aff;border:none;border-radius:0;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;font-size:var(--att-fs-small);font-weight:600;gap:2px;justify-content:center;min-height:var(--att-touch-sm);min-width:clamp(48px,14vmin,64px);padding:clamp(6px,1.8vmin,10px) clamp(8px,2.2vw,12px)}.att-mini-btn.danger{background-color:#ff3b30}.att-student-info{align-items:flex-start;display:flex;flex-direction:column}.att-class-code{color:#999;font-size:var(--att-fs-small);margin-top:2px}.att-hint{color:#999;font-size:var(--att-fs-hint);margin-bottom:clamp(12px,4vmin,24px);margin-top:clamp(10px,3vmin,20px);text-align:center}.att-seating-wrap{--att-fs-seat-num:clamp(0.52em,1.55vmin + 0.18em,0.82em);--att-fs-seat-text:clamp(0.56em,1.72vmin + 0.22em,0.93em);--att-seat-pad:clamp(3px,0.9vmin,7px);background-color:#fff;border-radius:var(--att-radius-lg);box-sizing:border-box;flex:1 1;margin:0 max(0px,calc(var(--att-pad-inline) - clamp(3px, 1.2vw, 10px)));padding:clamp(8px,2.2vmin,14px) clamp(4px,1.8vw,12px)}@media (max-width:420px){.att-seating-wrap{--att-fs-seat-num:clamp(0.47em,1.35vmin + 0.15em,0.72em);--att-fs-seat-text:clamp(0.51em,1.48vmin + 0.17em,0.84em)}}.att-seating-wrap .att-seating-grid{gap:clamp(5px,1.65vmin,10px)}.att-seating-wrap .att-seating-row{gap:clamp(4px,1.15vmin,8px)}.att-seating-wrap .att-seat,.att-seating-wrap .att-seat-dnd-cell,.att-seating-wrap .att-seat-dnd-cell--static{aspect-ratio:.78}.att-unassigned{background-color:#fff3e0;border-radius:var(--att-radius-md);margin-bottom:clamp(10px,3vmin,18px);padding:var(--att-pad-block)}.att-unassigned-title{color:#e65100;font-size:var(--att-fs-small);font-weight:700;margin-bottom:var(--att-gap);margin-top:0}.att-chip-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}.att-chip{background-color:#ff9800;border:none;border-radius:clamp(12px,3.5vmin,18px);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--att-fs-small);margin-right:var(--att-gap);padding:clamp(5px,1.5vmin,9px) clamp(10px,2.8vw,14px)}.att-seating-grid{display:flex;flex-direction:column;gap:clamp(4px,1.4vmin,8px)}.att-seating-row{display:flex;flex-direction:row;gap:clamp(3px,1vmin,6px)}.att-seat-dnd-cell,.att-seat-dnd-cell--static{aspect-ratio:.85;display:flex;flex:1 1;min-width:0;position:relative}.att-seat-dnd-cell .att-seat{aspect-ratio:unset;flex:1 1;height:100%;min-height:0;width:100%}.att-seat-drop-over .att-seat{border-color:#2196f3!important;box-shadow:0 0 0 2px #2196f373}.att-seat.att-seat--draggable{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.att-seat.att-seat--draggable:active{cursor:grabbing}.att-seat.att-seat--draggable.is-dragging{cursor:grabbing;opacity:.5}.att-chip-draggable{cursor:grab;touch-action:none}.att-chip-draggable.is-dragging{cursor:grabbing;opacity:.5}.att-dnd-overlay-mirror{display:flex;filter:drop-shadow(0 8px 20px rgba(0,0,0,.2));flex-direction:column;position:relative;touch-action:none}.att-dnd-overlay-mirror,.att-dnd-overlay-mirror-inner{box-sizing:border-box;cursor:grabbing;min-height:0;min-width:0}.att-dnd-overlay-mirror-inner{aspect-ratio:unset!important;flex:1 1 auto;height:100%;pointer-events:none;width:100%}.att-dnd-overlay-mirror .att-seat{flex:1 1 auto}.att-dnd-overlay-mirror-chip.att-chip{align-items:center;display:flex;justify-content:center;margin-right:0}.att-dnd-overlay-aim{background:radial-gradient(circle at 30% 30%,#66bb6a,#2e7d32);border-radius:50%;box-shadow:0 0 0 2px #fff,0 1px 4px #00000038;height:clamp(9px,2.6vmin,15px);left:clamp(2px,.8vmin,5px);pointer-events:none;position:absolute;top:clamp(2px,.8vmin,5px);width:clamp(9px,2.6vmin,15px);z-index:4}.att-seat{align-items:center;aspect-ratio:.85;background-color:#f5f5f5;border:var(--att-seat-border) solid #e0e0e0;border-radius:var(--att-radius-sm);box-sizing:border-box;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;justify-content:center;min-width:0;padding:var(--att-seat-pad);position:relative}.att-seat.small{aspect-ratio:.85;min-height:0}.att-seat.occupied{background-color:#ffebee;border-color:#ffcdd2}.att-seat.occupied.seat-unset{background-color:#eceff1;border-color:#b0bec5}.att-seat.seat-present{background-color:#c8e6c9;border-color:#81c784}.att-seat.seat-absent{background-color:#fff9c4;border-color:#fbc02d}.att-seat.current{background-color:#fff9c4;border-color:#f9a825;border-style:dashed}.att-seat-num{color:#999;font-size:var(--att-fs-seat-num);left:clamp(2px,.8vmin,6px);position:absolute;top:clamp(1px,.5vmin,4px)}.att-seat-name{color:#333;font-size:var(--att-fs-seat-text);font-weight:500;line-height:1.2;max-width:100%;overflow:hidden;padding:0 clamp(1px,.38vmin,4px);text-align:center;text-overflow:ellipsis;white-space:nowrap}.att-seat-name.present{color:#2e7d32;font-weight:700}.att-seat-name.absent-marked{color:#e65100;font-weight:700}.att-seat-flag{font-size:var(--att-fs-seat-text);margin-top:1px}.att-seat-empty{color:#ccc;font-size:clamp(.85em,3.5vmin + .3em,1.2em)}.att-move-name{color:#333;font-size:var(--att-fs-seat-text);margin-top:1px;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.att-move-grid{margin-bottom:clamp(10px,3vmin,18px);max-height:min(50dvh,50vh);overflow-y:auto}.att-modal-overlay{align-items:center;background-color:#00000080;box-sizing:border-box;display:flex;inset:0;justify-content:center;padding:clamp(10px,3.5vw,22px);position:fixed;z-index:2000}.att-modal{background-color:#fff;border-radius:var(--att-radius-lg);box-sizing:border-box;max-height:min(85vh,100dvh - 24px);overflow-y:auto;padding:clamp(14px,4vmin,24px) clamp(12px,3.5vw,20px);width:min(calc(100vw - var(--att-pad-inline)*2),420px)}.att-modal,.att-modal-wide{max-width:calc(100vw - 16px)}.att-modal h2{color:#333;font-size:var(--att-fs-title);font-weight:700;margin:0 0 clamp(12px,3.5vmin,22px);text-align:center}.att-input,.att-textarea{border:1px solid #ddd;border-radius:var(--att-radius-md);box-sizing:border-box;font-family:inherit;font-size:var(--att-fs-list);margin-bottom:clamp(10px,2.8vmin,18px);padding:clamp(10px,3vmin,18px);width:100%}.att-textarea{line-height:1.4;min-height:clamp(140px,38vmin,220px);resize:vertical}.att-import-hint{color:#666;font-size:var(--att-fs-small);line-height:1.45;margin-bottom:var(--att-gap);white-space:pre-line}.att-modal-btns{display:flex;flex-direction:row;gap:clamp(10px,3vmin,18px)}.att-modal-cancel,.att-modal-ok{border:none;border-radius:var(--att-radius-md);cursor:pointer;flex:1 1;font-family:inherit;font-size:var(--att-fs-list);font-weight:700;min-height:var(--att-touch-sm);padding:clamp(10px,3vmin,18px) 0;text-align:center}.att-modal-cancel{background-color:#9e9e9e;color:#fff}.att-modal-ok{background-color:#4caf50;color:#fff}.att-modal-cancel.full,.att-modal-ok.full{flex:none;margin-top:var(--att-gap);width:100%}.att-modal .att-danger-btn{margin-bottom:0}.att-danger-btn{background-color:#f44336;border:none;border-radius:var(--att-radius-md);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--att-fs-list);font-weight:700;margin-bottom:var(--att-gap);margin-top:var(--att-gap);min-height:var(--att-touch-sm);padding:clamp(10px,3vmin,18px);width:100%}.att-class-list{margin-bottom:clamp(10px,3vmin,18px);max-height:min(45vh,300px);overflow-y:auto}.att-class-item{align-items:center;background-color:#f9f9f9;border:1px solid #eee;border-radius:var(--att-radius-md);box-sizing:border-box;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:var(--att-gap);padding:clamp(10px,3vmin,18px)}.att-class-item-name{color:#333;font-size:clamp(1em,3.4vmin + .4em,1.2em);font-weight:700}.att-class-item-date{color:#999;font-size:var(--att-fs-small);margin-top:2px}.att-class-item-actions{display:flex;flex-direction:row;gap:var(--att-gap)}.att-class-item-actions button{border:none;border-radius:var(--att-radius-sm);cursor:pointer;font-size:var(--att-fs-list);line-height:1;padding:clamp(8px,2.2vmin,12px)}.att-class-item-actions button:first-of-type{background-color:#e3f2fd}.att-class-item-actions button:last-of-type{background-color:#ffebee}.att-picker-list{margin-bottom:clamp(10px,3vmin,18px);max-height:min(45vh,300px);overflow-y:auto}.att-picker-item{background-color:#f9f9f9;border:none;border-bottom:1px solid #eee;border-radius:var(--att-radius-sm);box-sizing:border-box;color:#333;cursor:pointer;font-family:inherit;font-size:var(--att-fs-list);margin-bottom:clamp(4px,1.2vmin,8px);padding:clamp(10px,3vmin,18px);text-align:left;width:100%}.att-page .att-view-toggle>button,.att-page button.att-action-btn,.att-page button.att-add-class,.att-page button.att-btn-edit-student,.att-page button.att-btn-holiday,.att-page button.att-btn-home,.att-page button.att-btn-transfer-room,.att-page button.att-chip,.att-page button.att-class-tab,.att-page button.att-mini-btn,.att-page button.att-seat,.att-page button.att-student-main{align-self:auto;margin-bottom:0;width:auto}.att-page .att-modal button.att-modal-cancel.full,.att-page .att-modal button.att-modal-ok.full,.att-page button.att-danger-btn,.att-page button.att-picker-item,.att-page button.att-student-row{box-sizing:border-box;width:100%}.att-header-actions{flex-shrink:0;max-width:100%}.att-header-actions button{flex-shrink:0;white-space:nowrap}@media (max-width:768px){.app-container.has-mobile-bottom-nav .att-btn-home{display:none!important}}