@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes floatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulseRing{0%{transform:scale(1);opacity:.6}to{transform:scale(2.2);opacity:0}}@keyframes slideRight{0%{width:0}to{width:100%}}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #2a9d8f4d}50%{box-shadow:0 0 0 8px #2a9d8f00}}:root{--bg-color: #f4efe7;--card-bg: #fbf8f2;--text-color: #16161f;--text-secondary: #6b6459;--text-muted: #a89f8e;--primary-color: #2a9d8f;--teal: #2a9d8f;--teal-soft: rgba(42, 157, 143, .12);--copper: #b9714c;--copper-soft: rgba(185, 113, 76, .14);--ink: #16161f;--ink-light: #3a3a44;--parchment: #f4efe7;--parchment-dark: #ddd3c2;--sage: #7c9885;--sage-soft: rgba(124, 152, 133, .16);--error: #c0573f;--error-soft: rgba(192, 87, 63, .12);--white: #fbf8f2;--overlay: rgba(22, 22, 31, .55);--color-blue: #2a9d8f;--color-green: #2a9d8f;--color-red: #c0573f;--color-yellow: #b9714c;--color-purple: #7c9885;--border-color: #ddd3c2;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 2px 12px rgba(22, 22, 31, .04);--shadow-md: 0 10px 24px rgba(22, 22, 31, .08)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{margin:0;min-height:100%}body{min-width:320px;background:var(--bg-color);color:var(--text-color);font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::selection{background:var(--teal-soft);color:var(--text-color)}h1,h2,h3,h4,h5,h6,p{margin-top:0}button,input,textarea,select{font:inherit}input:not([type=checkbox]):not([type=radio]),textarea,select{width:100%;padding:12px 16px;border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-color);font-family:"Source Serif 4",Georgia,serif;font-size:15px;outline:none;transition:border-color .2s ease}input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2a9d8f1f}textarea{resize:vertical}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4cfc5;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b8b2a6}[data-theme=dark]{--bg-color: #2c2c2c;--card-bg: #363636;--text-color: #e4e4e4;--text-secondary: #bcbcbc;--text-muted: #999999;--border-color: #484848;--primary-color: #a8dadc;--teal: #a8dadc;--teal-soft: rgba(168, 218, 220, .18);--copper: #ffc1cc;--copper-soft: rgba(255, 193, 204, .18);--ink: #e4e4e4;--ink-light: #cccccc;--parchment: #2c2c2c;--parchment-dark: #484848;--sage: #b39cd0;--sage-soft: rgba(179, 156, 208, .18);--error: #f28b82;--error-soft: rgba(242, 139, 130, .18);--white: #363636;--overlay: rgba(0, 0, 0, .65);--color-blue: #a8dadc;--color-green: #a8dadc;--color-red: #f28b82;--color-yellow: #ffc1cc;--color-purple: #b39cd0;--shadow-sm: 0 2px 12px rgba(0, 0, 0, .3);--shadow-md: 0 10px 24px rgba(0, 0, 0, .4)}[data-theme=dark] body{background:var(--bg-color);color:var(--text-color)}[data-theme=dark] input:not([type=checkbox]):not([type=radio]),[data-theme=dark] textarea,[data-theme=dark] select{background:#363636;color:#e4e4e4;border-color:#484848}[data-theme=dark] input:not([type=checkbox]):not([type=radio]):focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #a8dadc38}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#585858}[data-theme=dark] button:not(:disabled):hover{filter:saturate(3) brightness(1.35)}[data-theme=dark] [role=button]{transition:filter .22s ease,transform .25s ease,box-shadow .25s ease!important}[data-theme=dark] [role=button]:hover{filter:saturate(2.2) brightness(1.2)}@media(max-width:768px){body{font-size:14px}.lesson-editor-grid,.student-history-grid{grid-template-columns:1fr!important}.progress-table-header,.progress-table-row{grid-template-columns:1fr 70px 60px 60px!important}}
