@font-face{font-display:swap;font-family:Vazirmatn;font-style:normal;font-weight:400;src:url(../fonts/vazirmatn-v15-arabic_latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Vazirmatn;font-style:normal;font-weight:700;src:url(../fonts/vazirmatn-v15-arabic_latin-700.woff2) format("woff2")}:root{--font-family-main: "Vazirmatn", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--color-primary: #007bff;--color-primary-hover: #0056b3;--color-secondary: #6c757d;--color-secondary-hover: #5a6268;--color-success: #28a745;--color-success-hover: #218838;--color-warning: #ffc107;--color-strong-warning: #d9534f;--color-warning-hover: #e0a800;--color-text-dark: #333;--color-text-light: #fff;--color-text-muted: #555;--color-background: #f4f4f9;--color-surface: #fff;--color-border: #ddd;--color-toast-bg: #323232;--color-toast-action: #bb86fc;--border-radius-main: 5px}body{font-family:var(--font-family-main);max-width:600px;margin:auto;padding:20px 20px 5rem;background-color:var(--color-background);transition:background-color .4s ease}body.demo-mode-active{--color-background: #ffebab}h1,h2{color:var(--color-text-dark)}h3{padding-bottom:5px;margin-top:0}.action-column-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--color-border);padding-bottom:10px;margin-bottom:20px}.action-column-header h3{margin:0;border:none;flex-grow:1}.student-search-container{position:relative;width:40%}input[type=text]:not(.animated-search-input),input[type=number],textarea{font-family:var(--font-family-main);padding:10px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--border-radius-main);box-sizing:border-box}input[type=text]:not(.animated-search-input),input[type=number]{text-align:center}input::placeholder,textarea::placeholder{font-size:.8em;color:#aaa}input::placeholder{text-align:center}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{font-size:.8em;color:#aaa}input::-moz-placeholder,textarea::-moz-placeholder{font-size:.8em;color:#aaa}textarea{width:100%;min-height:100px;resize:vertical}ul{list-style-type:none;padding:0}.page{display:none}.page.active{display:block;animation:fadeIn .3s ease-in-out}.app-header{text-align:center;margin-bottom:20px}.input-group{display:flex;margin-bottom:10px;gap:10px}.input-group input[type=text]{width:100%}.centered-input-group{justify-content:center}.separator{margin:20px 0}.section-title{margin-top:40px}.divider-text{margin:20px 0;text-align:center}.form-actions{margin-top:20px}button{font-family:var(--font-family-main);padding:5px 14px;font-size:15px;cursor:pointer;background-color:var(--color-primary);color:var(--color-text-light);border:none;border-radius:var(--border-radius-main);-webkit-tap-highlight-color:transparent}.back-to-classes-btn,#back-to-sessions-btn{margin-bottom:10px}button:disabled,button:disabled:hover{background-color:var(--color-secondary);border-color:var(--color-secondary);opacity:.65;cursor:not-allowed}.btn-secondary{background-color:var(--color-secondary);width:100%}.btn-secondary:hover{background-color:var(--color-secondary-hover)}.btn-success{background-color:var(--color-success)}.btn-success:hover{background-color:var(--color-success-hover)}.btn-warning{background-color:var(--color-warning);color:var(--color-text-dark)}.btn-warning:hover{background-color:var(--color-warning-hover)}.btn-icon{background:none;background-color:transparent;padding:0 5px;font-size:20px;color:var(--color-secondary);opacity:100%;transition:all .2s ease-in-out}.btn-icon:hover{background:none;color:var(--color-text-dark);background-color:transparent;transform:scale(1.2)}.btn-icon.is-disabled{visibility:hidden;transform:scale(1)}.btn-large{font-size:20px;padding:10px;width:100%}#select-student-btn{font-size:20px;padding:10px}.list-container{padding-right:0}.list-container li{padding:12px;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.list-container li:nth-child(2){border-top-left-radius:var(--border-radius-main);border-top-right-radius:var(--border-radius-main)}.list-container li:last-child{border-bottom:none;border-bottom-left-radius:var(--border-radius-main);border-bottom-right-radius:var(--border-radius-main)}.list-container li.context-menu-target{background-color:#e0eafc}.preview-item{display:flex;align-items:center;gap:10px}.accordion-toggle{cursor:pointer;display:flex;align-items:center;gap:10px;-webkit-user-select:none;user-select:none}.accordion-toggle.open .arrow{transform:rotate(180deg)}.accordion-content{max-height:0;overflow:hidden;background-color:var(--color-surface);padding:0 15px;border-radius:0 0 var(--border-radius-main) var(--border-radius-main);box-shadow:0 2px 4px #0000000d}.accordion-content.open{max-height:1000px;padding:20px 15px}.category-container{margin-bottom:15px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.category-btn.active{background-color:var(--color-primary-hover);border:2px solid var(--color-primary)}.session-actions{margin-bottom:20px}.status-button-container{margin-top:15px;display:flex;gap:10px;justify-content:center}.status-button{background-color:#f8f9fa;color:#495057;border:1px solid #ced4da;box-shadow:0 2px 2px #0000001a}.status-button.active{background-color:var(--color-secondary);color:var(--color-text-light);border-color:var(--color-secondary-hover);box-shadow:inset 0 2px 4px #0003;transform:translateY(1px)}.status-button.issue-btn.active{background-color:var(--color-warning);border-color:var(--color-warning);color:var(--color-text-dark)}.status-button.exit-btn.active{background-color:var(--color-strong-warning);border-color:var(--color-strong-warning);color:var(--color-text-dark)}.hidden-input{display:none}.toast-base{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(150%);background-color:var(--color-toast-bg);color:var(--color-text-light);padding:14px 20px;border-radius:8px;box-shadow:0 4px 12px #0003;z-index:4500;width:max-content;max-width:65%;text-align:center}.undo-toast{display:flex;align-items:center;gap:20px;transition:all .3s ease}.undo-toast button{background:none;border:none;color:var(--color-toast-action);font-weight:700;font-size:14px;cursor:pointer;padding:0;margin:0}.accordion-toggle .arrow,.accordion-content,.undo-toast,.status-button{transition:all .3s ease}.undo-toast{transform:translate(-50%) translateY(150%)}.undo-toast.show{transform:translate(-50%) translateY(0)}.notification-toast{transition:transform .4s ease,visibility .4s ease;visibility:hidden}.notification-toast.show{transform:translate(-50%) translateY(0);visibility:visible}#class-list li:hover,#session-list li:hover,#settings-student-list li:hover,#category-list li:hover{background-color:#e9ecef;cursor:pointer}#class-list li,#session-list li{-webkit-tap-highlight-color:transparent}#select-student-btn-wrapper,#select-student-btn-wrapper.disabled-wrapper{position:sticky;top:48px;z-index:999;background-color:var(--color-surface);padding:15px 20px;margin-left:-20px;margin-right:-20px}#select-student-btn-wrapper.disabled-wrapper{cursor:not-allowed}#select-student-btn-wrapper.disabled-wrapper>button{background-color:var(--color-secondary);opacity:.65;pointer-events:none}#select-student-btn-wrapper.disabled-wrapper:hover:after{content:"ابتدا یک دسته‌بندی انتخاب کنید";position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:8px 12px;border-radius:5px;font-size:14px;white-space:nowrap;margin-bottom:5px;z-index:10}.composite-input{display:flex;align-items:center;flex-grow:1;border:1px solid var(--color-border);border-radius:var(--border-radius-main);background-color:#fff;overflow:hidden;flex-direction:row-reverse}.composite-input:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px #007bff40}.class-type-selection{display:flex;align-items:center;gap:15px;padding:0 15px;border-right:1px solid var(--color-border)}.class-type-selection label{white-space:nowrap;display:flex;align-items:center;gap:5px;cursor:pointer;font-size:15px;color:var(--color-text-muted);-webkit-tap-highlight-color:transparent}#new-class-name{padding:10px;border:none;outline:none;flex-grow:1;background:none;width:100%}#add-class-btn{margin-right:10px;flex-shrink:0}.type-badge{font-size:12px;font-weight:700;padding:4px 8px;border-radius:var(--border-radius-main);color:var(--color-text-light);margin:0 5px;min-width:60px;text-align:center}.cancelled-badge{background-color:var(--color-strong-warning);color:var(--color-text-light)}.type-badge.online{background-color:var(--color-primary)}.type-badge.in-person{background-color:var(--color-warning);color:var(--color-text-dark)}.day-badge{background-color:var(--color-secondary)}.list-item-buttons{display:flex}.result-display{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;min-height:250px;height:auto;text-align:center;font-size:22px;margin-top:40px;font-weight:700;color:var(--color-success);border:1px solid transparent;border-radius:var(--border-radius-main);transition:all .3s ease}.winner-name{text-align:center}.winner-name-container{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.student-details-container{display:flex;flex-direction:row;justify-content:space-between;gap:20px;width:100%;margin-top:20px;padding-top:7px;border-top:1px solid var(--color-border)}.student-details-scores,.student-details-notes{flex:1;font-size:14px;font-weight:400;color:var(--color-text-dark)}.student-details-container h4{font-size:15px;margin-top:0;margin-bottom:10px;color:var(--color-text-muted);border-bottom:1px solid #eee;padding-bottom:5px;text-align:center}.scores-list{list-style:none;padding:10px;margin:0;background-color:#f8f9fa;border-radius:var(--border-radius-main);min-height:30px;display:flex;flex-direction:column}.scores-list li{display:flex;justify-content:space-between;padding:4px 0;border:none;background:none;direction:ltr}.skill-name{font-weight:700}.skill-scores{font-family:monospace;direction:ltr;text-align:left}.notes-list{list-style:none;padding:10px;margin:0;min-height:30px;overflow-y:auto;background-color:#f8f9fa;border-radius:var(--border-radius-main);display:flex;flex-direction:column}.notes-list li{font-size:14px;line-height:1.5;white-space:pre-wrap;padding:5px 0;border-bottom:1px solid #f0f0c9;background:none;border:none;display:block;text-align:start}.notes-list li:last-child{border-bottom:none}.no-content-message{color:var(--color-text-muted);font-style:italic;font-size:13px;direction:rtl;flex-grow:1;display:flex;align-items:center;justify-content:center}.result-display.absent{background-color:var(--color-warning-bg);color:var(--color-warning-text)}.dashboard-container{display:flex;flex-direction:column;gap:30px}.action-column,.info-column{background-color:var(--color-surface);padding:20px}.category-pills{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:25px;justify-content:center}.pill{background-color:#e9ecef;color:#495057;padding:8px 16px;border-radius:50px;font-size:12px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;position:relative;-webkit-tap-highlight-color:transparent}.pill:hover{background-color:#d3d9df}.pill.active{background-color:var(--color-primary);color:var(--color-text-light);font-weight:700;border-color:var(--color-primary-hover)}.pill.disabled{opacity:.6;cursor:not-allowed;background-color:#f0f0f0}.pill.disabled:hover{background-color:#f0f0f0;transform:none}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:125%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:8px 12px;border-radius:5px;font-size:13px;white-space:nowrap;z-index:10;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}[data-tooltip]:hover:after{opacity:1;visibility:visible}.tooltip-container{position:relative}.absent-student-name{text-decoration:line-through;opacity:.7}.action-column>h3:first-child,.info-column>h3:first-child{margin-top:0}.attendance-list-item{display:flex;flex-direction:column;padding:0;background-color:var(--color-surface);border-bottom:4px solid var(--color-background)}.att-row-1{display:flex;align-items:center;gap:15px;padding:12px 15px;border-bottom:1px solid #f0f0f0}.att-row-1 .student-name{font-weight:700;font-size:16px;flex-grow:1;line-height:1.3}.att-row-1 .mass-comment-checkbox{display:none;width:22px;height:22px;margin:0;cursor:pointer}#attendance-list.selection-mode-active .att-row-1 .mass-comment-checkbox{display:block;animation:fadeIn .2s ease-in-out}.att-row-2{display:flex;justify-content:center;align-items:center;gap:15px;padding:12px 15px}.homework-controls{display:flex;align-items:center;gap:10px;margin:0}.att-row-3{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:8px 15px;background-color:#fafafa;border-top:1px solid #f0f0f0}.attendance-list-item .absence-info,.attendance-list-item .homework-info{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.attendance-status-btn{width:80px;height:38px;font-size:14px}.homework-status-btn{font-size:24px}.homework-controls .btn-icon{font-size:20px;padding:8px}.attendance-status-btn{max-width:57px;max-height:33px;border:1px solid var(--color-border);border-radius:var(--border-radius-main);cursor:pointer;font-size:14px;transition:all .2s ease-in-out}.attendance-status-btn.present.active{background-color:var(--color-success);color:var(--color-text-light)}.attendance-status-btn.absent.active{background-color:var(--color-warning);border-color:var(--color-warning-hover);color:var(--color-text-dark)}.makeup-absence{color:var(--color-warning);font-weight:700}.student-search-container{position:relative}.search-icon{font-size:x-large;position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent}.search-results-dropdown{display:none;position:absolute;top:100%;left:0;width:100%;background-color:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--border-radius-main) var(--border-radius-main);box-shadow:0 4px 8px #0000001a;z-index:100;max-height:200px;overflow-y:auto}.search-results-dropdown div{padding:12px 15px;cursor:pointer}.search-results-dropdown div:hover{background-color:#e9ecef}.search-results-dropdown .no-results{padding:12px 15px;color:var(--color-text-muted);cursor:default}#new-score-value{width:150px;text-align:center}.profile-content-container{display:flex;flex-direction:column;gap:30px}.scoring-section,.history-section{background-color:var(--color-surface);padding:20px;border-radius:var(--border-radius-main);box-shadow:0 4px 12px #0000000d}.stats-summary-box{background-color:#f8f9fa;padding:15px;border-radius:var(--border-radius-main);border:1px solid var(--color-border)}.stats-summary-box p{margin:8px 0;display:flex;justify-content:space-between}.score-history-item,.note-history-item{display:flex;justify-content:space-between;align-items:center;flex-direction:row;padding:15px}.item-content{flex-grow:1;width:100%}.delete-item-btn{flex-shrink:0;margin-right:15px;opacity:.3;transition:opacity .2s ease}.score-history-item:hover .delete-item-btn,.note-history-item:hover .delete-item-btn{opacity:1}.score-info{display:flex;justify-content:flex-start;align-items:center;gap:20px;margin-bottom:10px}.score-skill-badge{background-color:var(--color-secondary);color:var(--color-text-light);padding:4px 10px;border-radius:50px;font-size:13px}.score-value{font-size:16px}.score-date{font-size:13px;color:var(--color-text-muted)}.score-comment{display:flex;gap:5px;align-items:baseline;margin:0;padding-top:10px;font-size:14px;color:#333;white-space:pre-wrap;text-align:start}.score-comment:hover,.note-content:hover{cursor:pointer;background-color:#f1f1f1;border-radius:3px}.score-comment .comment-ltr{margin-right:auto}.note-history-item{flex-direction:column;align-items:stretch;padding:15px;background-color:#fdfde9}.note-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--color-text-muted)}.note-content{margin:0;font-size:14px;color:#333;white-space:pre-wrap;text-align:start}.history-section-header{display:flex;justify-content:space-between;align-items:center}.history-section-header h3{margin:0}.status-button.profile-btn{background-color:var(--color-success);color:#fff}.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;justify-content:center;align-items:flex-start;z-index:2000;padding:20px;box-sizing:border-box}.modal-content{background-color:var(--color-surface);padding:30px;border-radius:var(--border-radius-main);box-shadow:0 5px 15px #0000004d;text-align:justify;max-width:400px;width:100%;box-sizing:border-box}#secure-confirm-code{text-align:center}.modal-content p{margin-top:0;margin-bottom:25px;font-size:18px;line-height:1.6;color:var(--color-text-dark)}.modal-actions{display:flex;justify-content:center;gap:15px}.modal-actions button{padding:12px;font-size:16px;width:120px;white-space:nowrap;min-width:100px}#add-note-modal .modal-content{max-width:500px}#add-note-modal textarea{width:100%;min-height:150px;margin-bottom:20px}.secure-code-display{font-size:32px;font-weight:700;color:var(--color-primary);letter-spacing:8px;margin:15px 0;padding:10px;background-color:#e9ecef;border-radius:var(--border-radius-main);-webkit-user-select:none;user-select:none}#secure-confirm-input{width:100%;padding:12px;font-size:18px;text-align:center;letter-spacing:4px;margin-bottom:20px}.attendance-list-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.attendance-list-header .student-search-container{flex-grow:1;max-width:50%}.inline-search-input{width:100%;padding:6px 10px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--border-radius-main);box-sizing:border-box}.header-labels-container{display:flex;align-items:center;flex-shrink:0}.header-label{font-size:13px;font-weight:700;color:var(--color-text-muted);text-align:center;flex-shrink:0;flex-basis:95px}.header-label:last-child{flex-basis:60px}.attendance-list-item .student-name{font-weight:700;cursor:pointer;transition:color .2s ease}.attendance-list-item .student-name:hover{color:var(--color-primary);text-decoration:underline}.attendance-list-item .absence-info,.attendance-list-item .homework-info{font-size:.85em;color:var(--color-text-muted)}.incomplete-homework{color:var(--color-strong-warning);font-weight:700}.homework-status-btn{font-size:20px;cursor:pointer;transition:all .2s ease-in-out;background-color:transparent}.homework-status-btn:hover{transform:scale(1.3)}.homework-status-btn:before{color:#fff}.homework-status-btn.complete:before{content:"✅"}.homework-status-btn.incomplete:before{content:"⚠️"}.homework-status-btn.none:before{content:"❌";filter:grayscale(.1);opacity:.6}.class-stats-row{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:13px;color:var(--color-text-muted)}.student-count-badge{white-space:nowrap;color:var(--color-secondary)}.class-stats-row>span:not(:last-child):after{content:"|";margin-left:8px;margin-right:8px;color:var(--color-secondary);opacity:.5}.session-count-badge{color:var(--color-secondary);white-space:nowrap}.app-header{display:flex;justify-content:space-between;align-items:center}.app-header h1{margin:0;font-size:24px}#hamburger-menu-btn{font-size:28px;padding:0 10px;-webkit-tap-highlight-color:transparent}.header-placeholder{width:40px}#profile-student-name-header{cursor:pointer;transition:color .2s ease-in-out}#profile-student-name-header:hover{color:var(--color-primary)}#profile-student-name-header:hover:after{content:" ✏️";font-size:.8em;vertical-align:middle}.side-nav{height:100%;width:0;position:fixed;z-index:3000;top:0;right:0;background-color:#fff;overflow-x:hidden;transition:.4s;padding-top:60px;box-shadow:-2px 0 8px #00000026}.side-nav .nav-btn{padding:15px 20px;text-decoration:none;font-size:18px;color:var(--color-text-dark);display:block;transition:.3s;background-color:transparent;width:100%;text-align:right;border:none}.side-nav .nav-btn:hover{background-color:#f1f1f1}.side-nav .close-btn{position:absolute;top:0;left:15px;font-size:36px;margin-right:50px;color:var(--color-text-muted);text-decoration:none}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;z-index:2500;display:none;transition:opacity .4s}@media screen and (min-width: 640px){.side-nav{right:calc((100vw - 640px)/2)}}@keyframes heartbeat{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.heartbeat-animation{animation:heartbeat .2s ease-in-out}.global-search-container{margin:5px 0;display:flex;justify-content:flex-end;align-items:center;min-height:40px}.animated-search-container{display:flex;justify-content:flex-end;align-items:center;position:relative}.action-column-header .animated-search-container{width:40%}.global-search-container .animated-search-container{width:100%}.animated-search-container .search-icon{position:static;transform:none;margin-right:8px;cursor:pointer;padding:5px;border-radius:50%;transition:background-color .2s ease}.animated-search-container .search-icon:hover{background-color:#f0f0f0}.animated-search-input{font-family:var(--font-family-main);font-size:16px;width:0;opacity:0;padding:5px 0;border-bottom:1px solid transparent;transition:width .2s ease-in-out,opacity .2s ease-in-out,padding .2s ease}.animated-search-container.search-active .animated-search-input{width:100%;opacity:1;padding:5px 10px;border-bottom:1px solid var(--color-primary)}.global-search-container .animated-search-container.search-active .animated-search-input{width:25%}.search-results-dropdown .global-search-result{display:flex;flex-direction:column;align-items:flex-start;line-height:1.4;padding:10px 15px}.search-results-dropdown .global-search-result .class-name{cursor:pointer;font-size:.7em;margin-top:.7em}.search-results-dropdown .global-search-result .class-name:hover{text-decoration:underline;color:var(--color-primary)}.category-options{display:flex;align-items:center;gap:5px;margin:0 4px;white-space:nowrap}.category-options label{font-size:14px;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}#is-graded-checkbox{cursor:pointer}.name-and-badge-container{display:flex;align-items:center;flex-grow:1;gap:10px}.category-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:10px;background-color:var(--color-success);color:var(--color-text-light)}#profile-student-name-header{position:sticky;top:0;background-color:var(--color-surface);z-index:100;padding:20px 15px;margin-top:0;border-bottom:1px solid var(--color-border)}.input-wrapper{flex-grow:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-overlay.modal-visible{display:flex;animation:fadeInBackground .3s ease-out forwards}.modal-overlay.modal-closing{animation:fadeOutBackground .3s ease-in forwards}.modal-overlay.modal-visible .modal-content{animation:slideUp .3s ease-out}@keyframes slideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(30px);opacity:0}}.modal-overlay.modal-closing .modal-content{animation:slideDown .3s ease-in;animation-fill-mode:forwards}@keyframes fadeInBackground{0%{background-color:#0000}to{background-color:#0009}}@keyframes fadeOutBackground{0%{background-color:#0009}to{background-color:#0000}}#quick-grade-form-wrapper{display:flex;gap:10px;align-items:center;margin-top:20px;margin-bottom:10px}#quick-score-input:focus,#quick-note-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #007bff40}#quick-score-input{width:60px;flex-shrink:0;max-height:43px}#quick-note-textarea{flex-grow:1;resize:vertical;min-height:0px;height:43px}#quick-note-textarea::placeholder{font-size:10px;text-align:right}#quick-grade-submit-btn{flex-shrink:0;max-width:53px;height:43px}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}#quick-note-textarea::-webkit-outer-spin-button,#quick-note-textarea::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#quick-note-textarea{-moz-appearance:textfield}.has-unfinished-session{border-right:4px solid var(--color-strong-warning);padding-right:8px}.warning-badge{background-color:var(--color-strong-warning);color:var(--color-text-light);padding:4px 10px;margin-right:10px;border-radius:var(--border-radius-main);font-size:12px;font-weight:700;white-space:nowrap}.list-item-badges{display:flex;align-items:center;flex-wrap:wrap;gap:5px;justify-content:flex-end}.list-item-badges .type-badge,.list-item-badges .warning-badge{margin:0!important}body{-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow-y:scroll}input,textarea,.note-content,.score-comment{-webkit-user-select:text;-ms-user-select:text;user-select:text}#quick-grade-form-wrapper :disabled{opacity:.5;cursor:not-allowed}@keyframes shake-horizontal{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.shake-animation{animation:shake-horizontal .2s ease-in-out}.context-menu{visibility:hidden;position:fixed;z-index:4000;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-main);box-shadow:0 5px 15px #00000026;padding:5px 0;min-width:180px;opacity:0;transform:scale(.95);transition:opacity .15s ease-out,transform .15s ease-out,visibility 0s linear .15s}.context-menu.visible{visibility:visible;opacity:1;transform:scale(1);transition-delay:0s}.context-menu ul{list-style:none;padding:0;margin:0}.context-menu li{display:flex;align-items:center;gap:10px;padding:10px 15px;font-size:15px;color:var(--color-text-dark);cursor:pointer;-webkit-user-select:none;user-select:none}.context-menu li:hover{background-color:#e9ecef}.context-menu li .icon{font-size:16px;width:20px;text-align:center}.context-menu .separator{height:1px;background-color:var(--color-border);margin:5px 0}.context-menu li.danger{color:var(--color-strong-warning)}#log-modal .modal-content{max-width:550px;max-height:80vh;display:flex;flex-direction:column}#log-list{flex-grow:1;overflow-y:auto;margin-bottom:20px}.log-entry{display:flex;flex-direction:column;align-items:flex-start;padding:12px;gap:5px}.log-timestamp{font-size:12px;color:var(--color-text-muted);background-color:#f0f0f0;padding:2px 6px;border-radius:4px}.log-message{font-size:15px}.log-action-link{color:var(--color-primary);text-decoration:underline;cursor:pointer}#student-stats-table-container{overflow-x:auto;overflow-y:auto;max-height:60vh;border:1px solid var(--color-border);border-radius:var(--border-radius-main)}.student-stats-table{width:100%;border-collapse:collapse;white-space:nowrap}.student-stats-table th,.student-stats-table td{padding:10px 12px;border:1px solid var(--color-border);text-align:center;vertical-align:middle}.student-stats-table th{background-color:#f8f9fa;font-weight:700;position:sticky;top:0;z-index:10}.student-stats-table tbody tr:hover{background-color:#f1f1f1}.student-stats-table th:first-child,.student-stats-table td:first-child{position:sticky;right:0;background-color:var(--color-surface);z-index:5;text-align:start;padding-right:15px;max-width:100px;overflow:hidden;text-overflow:ellipsis;transition:max-width .3s ease-in-out}.student-stats-table th:first-child{background-color:#f8f9fa;z-index:15}.student-stats-table tbody tr:hover td:first-child{background-color:#f1f1f1}.student-stats-table tbody tr.absent-row-highlight,.student-stats-table tbody tr.absent-row-highlight td:first-child{background-color:#fff3cd}.student-stats-table tbody tr.absent-row-highlight:hover,.student-stats-table tbody tr.absent-row-highlight:hover td:first-child{background-color:#fbeaba}.student-stats-table tbody tr.current-winner-highlight,.student-stats-table tbody tr.current-winner-highlight td:first-child{background-color:#e6ffed}.student-stats-table tbody tr.current-winner-highlight:hover,.student-stats-table tbody tr.current-winner-highlight:hover td:first-child{background-color:#d1f7e0}.student-stats-table th:first-child{cursor:pointer;-webkit-user-select:none;user-select:none}.student-stats-table.name-column-expanded th:first-child,.student-stats-table.name-column-expanded td:first-child{max-width:500px}@media screen and (max-width: 600px){.action-column,.info-column{margin-left:-20px;margin-right:-20px}}.absentees-summary{background-color:#fff3cd;border:1px solid var(--color-warning);border-radius:var(--border-radius-main);padding:15px;margin-top:20px;box-sizing:border-box;transform:translateY(20px);opacity:0;visibility:hidden;transition:all .3s ease-in-out}.absentees-summary.visible{transform:translateY(0);opacity:1;visibility:visible}.absentees-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.absentees-summary-header h4{margin:0;font-size:16px;color:var(--color-text-dark)}.summary-list{display:flex;flex-wrap:wrap;gap:10px 15px;justify-content:center}.summary-name{cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-main);background-color:#0000000d;transition:all .2s ease;font-size:15px}.summary-name:hover{background-color:var(--color-strong-warning);color:var(--color-text-light);text-decoration:line-through}.summary-name.fading-out{opacity:0;transform:scale(.9)}.student-name-link{cursor:pointer;color:inherit;text-decoration:none;transition:color .2s ease-in-out}.student-stats-table tbody tr:hover .student-name-link,.student-name-link:hover{color:var(--color-primary);text-decoration:underline}#attendance-class-name-header,#profile-student-name-header,#class-name-header,#session-class-name-header{font-size:.9em;text-align:center}#student-stats-header{display:flex;flex-direction:column;align-items:center;gap:5px}#student-stats-header:after{content:"تعداد: " attr(data-student-count);font-size:.6em;color:var(--color-text-muted)}.stats-breakdown{max-height:0;overflow:hidden;padding-top:0;margin-top:0;padding-right:15px;border-top:1px solid #e0e0e0;transition:all .3s ease-in-out}.stats-breakdown.open{max-height:1000px;padding-top:10px;margin-top:10px}.stats-summary-box p.collapsible-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding-right:20px}.stats-summary-box p.collapsible-toggle:before{content:"▼";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:10px;color:var(--color-primary);transition:transform .3s ease}.stats-summary-box p.collapsible-toggle.open:before{transform:translateY(-50%) rotate(180deg)}.stats-breakdown .stats-breakdown-item{margin:5px 0;font-size:.9em;color:var(--color-text-muted)}.restore-point-card{display:flex;flex-direction:column;gap:8px;padding:15px;background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.restore-card-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.restore-date{font-weight:700;font-size:16px;color:var(--color-text-dark)}.restore-size{font-size:12px;background-color:#e9ecef;padding:2px 8px;border-radius:10px;color:var(--color-text-muted)}.restore-desc{font-size:13px;color:var(--color-text-muted)}.restore-actions{display:flex;justify-content:flex-end;margin-top:5px}.btn-restore-action{background-color:var(--color-primary);color:#fff;font-size:13px;padding:6px 15px;border-radius:var(--border-radius-main);border:none}.breadcrumb-container{display:none;align-items:center;padding:10px 0;margin-bottom:15px;font-size:14px;flex-wrap:wrap}.breadcrumb-item{color:var(--color-primary);text-decoration:none;cursor:pointer}.breadcrumb-item:hover{text-decoration:underline}.breadcrumb-separator{margin:0 8px;color:var(--color-text-muted)}.breadcrumb-item.active{color:var(--color-text-dark);font-weight:700;cursor:default;text-decoration:none}#move-student-class-select{width:100%;height:2.5rem;text-align:center;font-family:var(--font-family-main);margin-top:1rem;margin-bottom:2rem;font-size:16px;border:1px solid var(--color-border);border-radius:var(--border-radius-main);background-color:#fff}.demo-banner{display:none;position:sticky;top:0;left:0;background-color:var(--color-warning);color:var(--color-text-dark);padding:8px 15px;text-align:center;z-index:1500;font-size:14px;font-weight:700;box-shadow:0 2px 5px #0003;align-items:center;justify-content:center;gap:15px}.demo-banner.visible{display:flex}.demo-banner button{background-color:#fff;color:var(--color-text-dark);border:1px solid var(--color-text-dark);padding:4px 10px;font-size:13px;border-radius:5px}.category-modal-options{display:flex;align-items:center;gap:8px;margin-top:15px;justify-content:center}.add-category-pill{font-weight:700;font-size:20px;padding:2px 15px;line-height:30px;background-color:var(--color-success);color:var(--color-text-light);border:1px solid var(--color-success-hover)}.add-category-pill:hover{background-color:var(--color-success-hover)}#append-checkbox-label{margin-bottom:2rem;margin-top:1rem}#attendance-mass-actions-container{display:none;position:sticky;bottom:60px;max-width:600px;z-index:1000;padding:10px 20px;background-color:var(--color-background);width:100%;box-sizing:border-box;border-top:1px solid var(--color-border)}#attendance-mass-actions-container button{width:100%}.new-student-badge{font-size:14px;font-weight:700;color:var(--color-success);background-color:#e6ffed;padding:4px 10px;border-radius:var(--border-radius-main);margin-top:5px;border:1px solid var(--color-success)}.screen-saver{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000;z-index:9999;display:none;justify-content:center;align-items:center;opacity:0;transition:opacity .5s ease;cursor:pointer}.screen-saver.visible{display:flex;opacity:1}.screen-saver-content{text-align:center}.screen-saver-text{font-size:80px;animation:float-icon 7s ease-in-out infinite}.screen-saver-app-name{font-size:24px;color:#ffffffd9;margin-top:20px;animation:float-text 6s ease-in-out infinite}.screen-saver-version{font-size:14px;color:#fff9;margin-top:15px;font-family:monospace;animation:float-version 8s ease-in-out infinite}@keyframes float-icon{0%{transform:translate(0)}25%{transform:translate(5px,10px)}50%{transform:translate(-5px,-5px)}75%{transform:translateY(5px)}to{transform:translate(0)}}@keyframes float-text{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes float-version{0%{transform:translate(0)}50%{transform:translate(15px)}to{transform:translate(0)}}.checkbox-label{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.checkbox-label input[type=checkbox]{width:15px;height:15px;cursor:pointer;flex-shrink:0}.nav-separator{border:none;border-top:1px solid var(--color-border);margin:5px 20px}.class-stats-summary{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:20px;color:var(--color-text-muted);font-size:14px}@media screen and (max-width: 400px){.class-stats-summary{flex-direction:column;gap:5px;align-items:center}.class-stats-summary .main-stats{display:flex;justify-content:center;align-items:center;gap:10px}.class-stats-summary .backup-stat{display:flex;justify-content:center}}.dashboard-tabs{display:flex;border-bottom:2px solid var(--color-border);margin-bottom:20px;position:sticky;top:0;background-color:var(--color-background);z-index:1000}.tab-btn{flex-grow:1;padding:15px 10px;cursor:pointer;background-color:transparent;border:none;border-bottom:3px solid transparent;font-size:16px;font-weight:700;color:var(--color-text-muted);transition:all .2s ease-in-out}.tab-btn:hover{background-color:#f8f9fa;color:var(--color-text-dark)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-pane{display:none}.tab-pane.active{display:block;animation:fadeIn .4s ease-in-out}.profile-modal-content{margin:0 auto;width:100%;max-width:600px;height:100%;max-height:100vh;border-radius:0;padding:0;display:flex;flex-direction:column}.profile-modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.profile-modal-header h2{margin:0;font-size:20px}#modal-profile-close-btn{font-size:36px;padding:0;color:var(--color-text-muted);background:none;border:none}#modal-profile-content-container{flex-grow:1;overflow-y:auto;padding:20px}.dashboard-header{margin-bottom:15px}#modal-profile-student-name:hover{color:var(--color-primary)}#modal-profile-student-name:hover:after{content:" ✏️";font-size:.8em;vertical-align:middle}body.modal-active{overflow:hidden}.mass-selection-checkbox{display:none;margin-left:10px}#class-list.selection-mode-active .mass-selection-checkbox{display:inline-block}.class-type-selection.no-border{border:none;padding:0}@media screen and (max-width: 480px){#class-management-page .composite-input{flex-direction:column}#class-management-page .class-type-selection{display:none}#class-management-page .composite-input:focus-within .class-type-selection{display:flex;border-right:none;border-top:1px solid var(--color-border);justify-content:center;padding-top:10px;padding-bottom:10px}}.page-header-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;min-height:30px}.breadcrumb-container{flex-grow:1;margin-bottom:0}#header-settings-btn{flex-shrink:0;font-size:18px;visibility:hidden}.profile-header-actions{display:flex;gap:5px}.btn-icon-label{display:flex;align-items:center;gap:5px;font-size:13px;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--border-radius-main);background-color:#f8f9fa;color:var(--color-text-dark)}.btn-icon-label span:first-child{font-size:16px;line-height:1}.btn-icon-label:hover{transform:none;background-color:#e9ecef;color:var(--color-text-dark)}.btn-icon-label[title="حذف دانش‌آموز"]{color:var(--color-strong-warning);border-color:#f5c6cb}.btn-icon-label[title="حذف دانش‌آموز"]:hover{background-color:#f8d7da;color:var(--color-strong-warning)}.student-stats-table th.current-category-highlight,.student-stats-table td.current-category-highlight,.student-stats-table th:first-child.current-category-highlight,.student-stats-table td:first-child.current-category-highlight{background-color:#e6ffed}.student-stats-table tbody tr:hover th.current-category-highlight,.student-stats-table tbody tr:hover td.current-category-highlight,.student-stats-table tbody tr:hover td:first-child.current-category-highlight{background-color:#d1f7e0}.session-list-title{font-size:16px;font-weight:700;color:var(--color-text-dark);display:block;margin-bottom:2px}#session-list .type-badge{font-size:11px;padding:2px 6px;font-weight:400;opacity:.9}#session-list .day-badge{background-color:transparent;border:1px solid var(--color-border);color:var(--color-text-muted)}#session-list .finished-badge{background-color:transparent;border:1px solid var(--color-secondary);color:var(--color-secondary)}#session-list .cancelled-badge{background-color:transparent;border:1px solid var(--color-strong-warning);color:var(--color-strong-warning);font-weight:700}#session-list .makeup-badge{background-color:transparent;border:1px solid var(--color-warning-hover);color:var(--color-warning-hover);font-weight:700}.class-name-display{font-size:16px;font-weight:700;color:var(--color-text-dark);display:block;margin-bottom:4px}#class-list .type-badge{font-size:11px;padding:2px 8px;font-weight:400;background-color:transparent!important}#class-list .type-badge.online{border:1px solid var(--color-primary);color:var(--color-primary)}#class-list .type-badge.in-person{border:1px solid var(--color-warning-hover);color:var(--color-warning-hover)}#class-list .type-badge.cancelled-badge{border:1px solid var(--color-strong-warning);color:var(--color-strong-warning);font-weight:700}#class-list .type-badge.conflict-badge{border:1px solid #fd7e14;color:#fd7e14;font-weight:700}.active-class-card{background-color:#e6ffed!important;border-left:5px solid var(--color-success)!important}@media screen and (min-width: 600px){.attendance-list-item{flex-direction:row;flex-wrap:wrap;align-items:center}.att-row-1{flex:1 1 auto;border-bottom:none;padding-right:15px;padding-bottom:12px}.att-row-2{flex:0 0 auto;border-bottom:none;justify-content:flex-end;padding-left:15px;padding-top:12px;padding-bottom:12px}.att-row-3{flex-basis:100%;width:100%;order:3;margin-top:0;background-color:#f8f9fa;border-radius:0 0 var(--border-radius-main) var(--border-radius-main)}}.date-select{flex-grow:1;padding:10px 5px;font-size:16px;border:1px solid var(--color-border);border-radius:var(--border-radius-main);background-color:#fff;text-align:center;font-family:var(--font-family-main);direction:rtl;-webkit-appearance:none}#dp-day{flex:1}#dp-month{flex:2}#dp-year{flex:1.5}
